pax_global_header00006660000000000000000000000064140163002350014504gustar00rootroot0000000000000052 comment=1a8dc9bdaae90fc833495d38b36f99e1daff6a6b gjots2-3.1.9/000077500000000000000000000000001401630023500127265ustar00rootroot00000000000000gjots2-3.1.9/AUTHORS000066400000000000000000000000671401630023500140010ustar00rootroot00000000000000Bob Hepple, bhepple@freeshell.org - initial developmentgjots2-3.1.9/COPYING000066400000000000000000000353701401630023500137710ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. gjots2-3.1.9/ChangeLog000066400000000000000000000344541401630023500145120ustar00rootroot000000000000002020-06-24 3.1.9 ui/about.ui: remove redundant translater credits - seems to have no effect here fix: some environments don't always show images in buttons add tooltip for Find button fix: printDialog needed import gi, os; was using old mktemp Change popup dialogs type to 'top-level' instead of 'popup'!!! - as documented on GtkWindow page - avoids the message: Window 0x560942cc2d60 is a temporary window without parent, application will not be able to position it on screen. 2020-06-24 3.1.8 gpg-agent no longer uses GPG_AGENT_INFO updated French translation (Frederic Muller ) repair menubar find functions fix: forward search not finding regex in newly selected item. fix: Backward search in root wrapping to end of root item. 2020-05-14 3.1.7 fix popup context menus (right click on tree) fix locale_dir when running from source tree add LC_ALL=zh_TW translation accomodate installation to any $prefix with setup.py fix tree_select_all fine tune python version requirement to >= 3.6.8 for epel8 try for gtksourceview4 and failover to gtksourceview3 2020-05-03 3.1.6 response to RHBZ#1823599 2020-05-02 3.1.5 response to RHBZ#1823599 2020-04-19 3.1.4 Update more FSF addresses Change shebangs to absolute paths (fedora required) Change appdata to metainfo 2020-04-17 3.1.3 Update FSF address 2020-03-14 3.1.3 enable writing to file with spaces in the name 2020-03-09 3.1.2 when writing to org file, output goes to stdout rather than the file! 2020-03-08 3.1.1 doco goes in /usr/share/doc/gjots2 ie not versioned update tools to python3 merge patches and .spec file from fedora-30 srpm 2020-03-02 3.1.0 Change to python3 Change secondary windows to be of type 'popup' so they don't tile in swaywm Change Gdk.KEY_* to gi.repository.Gdk.Key_* 2020-02-18 3.0.3 specify python2 2017-12-23 3.0.3 display messages in title bar so we can dispense with status bar 2017-08-10 3.0.3 on_quit(): popping up a dialog to ask if a save should be done on_gjots_focus_out_event() which did the save anyway! Result was that the save was done irrespective and then again if the user pressed OK!! So just save the thing - if the user wants to exit without saving then kill the process. 2017-08-10 3.0.2 release 3.0.2 2017-05-17 3.0.2 gjots2org: don't use regex when looking for marker in column 1 2017-01-11 3.0.2 * fix paste to be able to do both primary or clipboard * bind Shift-Insert to 'paste primary' 2016-12-07 3.0.2 * remove setting changes in 'find' combobox - it was recursive * untabify 2016-02-27 3.0.2 * remove separate readonly timeout 2016-02-05 3.0.2 * give readonly feature its own alarm 2015-09-01 3.0.1 * port to PyGObject (requires Fedora-21 or Centos-7) * fix external editor function * derive tempfile from original filename * promote item in combox to pole position on re-use * improve alarm (use GObject.timeout_add * when the file is changed underneath us, move the new version aside * in _do_move_up do the removal backwards as there is breakage in gtk3-3.16.7-1.fc22.x86_64 * fix _do_tree_paste * fix _do_tree_copy - it was disabled in readonly mode * fix tree sort - gtk+-3.16 does not export reorder to python - see https://bugzilla.gnome.org/show_bug.cgi?id=757796. Added a python reorder to work around it. 2015-02-20 Version 2.4.4 * Find dialog should revert to 'forwards' at startup 2014-12-29 * Added xdg-open and kate as external editors 2014-12-18 Version 2.4.3 * Added gjots2org, org2gjots and ability to open .org files * Added a test version of gjots.el based on org-mode for emacs (see doco) 2014-06-27 * Add ^t accelerator for timestamp 2014-05-24 * Add ^Insert accelerator for NewPage * add appdata file 2014-05-19 * Use {xdg,gnome,kde,exo}-open to open URL's if available 2014-04-01 Version 2.4.2 * 2.4.2 released 2014-01-06 * Added localisation support for glade3 * Allow timeouts up to 1hr 2013-12-30 * Fixed %files in spec file to add default final param * Installation in /bin is now working (f-19/20) * fold Redhat packaging improvements * add messages about versions of sourceview and glade being used 2013-10-30 Version 2.4.1 * 2.4.1 released * Add support for gtk.builder (glade-3, fedora-18) in addition to gtk.xml (glade-2, Centos6) * Add a combobox on the find entry in the menubar with associated gconf entries. * Support gtksourceview3 as well as gtksourceview2 and gtksourceview * "move treeitem up/down" can now jump to adjacent parents * use a secondary treestore for cut & paste intead of a temporary file. A little more secure. * Fix gpg2 support * Added AutoSave after N seconds * Added last_file so that fileselect dialog can be primed * Added auto_read_only_timeout 2013-02-24 Version 2.3.16 * Add Swedish translation by Morgan Antonsson * Added ^R shortcut for read-only flag * Prevent drag & drop to before root item * Use xdg-open/gnome-open as URL handlers * rename gui's self.trace to debug to match the commandline option * Add support for gpg2 and gpg agent * if initial load fails then exit rather than display a blank * Support gedit as default external editor * Give focus to menubar_find_entry on find-next/find-prev and select all. * Jump to next/prev item on PgDn/PgUp at end/start of textBuffer * workaround GtkTextBuffer abherent behaviour on middle-button paste - see https://bugzilla.gnome.org/show_bug.cgi?id=673760 * re.I doesn't work on unicode strings somehow. At least not at the moment. Maybe it's a bug in python, maybe it'll get fixed, who knows. Meanwhile, this fixes the problem for russian, at least. * Enable utf-8 in find/replace * Fix crash on: create new page, drag'n'drop, type data * add a pop-up to remind user to install pygtksourceview to get undo 2011-07-14 Version 2.3.15 * Added find entry in menubar - needs gtk-2.16 or later 2011-07-11 Version 2.3.15 * Added German translation thanks to Uwe Steinmann 2011-07-06 Version 2.3.14 * Add "Find Previous" menu item S-C-g * "Find Previous" and "find Next" now set/unset the 'backwards' flag in 'preferences' 2011-07-04 Version 2.3.14 * Finish implemention of backwards search * Tighten regex for browser to look for xulrunner-2/.*firefox- 2011-06-18 Version 2.3.14 * MOD2_MASK was being set on all kb events - mask it out in treeview handler * ^End now goes to absolute last element. ^PgDn now goes to last visible element. * backwards search is implemented - it's backwards in tree but still forwards in text which is actually rather nice 2011-05-10 Version 2.3.13 * Fixed plain text, match-case find * Added Slovenian translation (thanks to Aleksa Šušulić) 2011-01-03 Version 2.3.12 * Spanish translation finalised 2010-12-19 Version 2.3.11 * Initial work on Spanish language support * Recent files support * Read-only mode makes inoperative tool buttons disappear * Set font dialog fixed * Preferences moved under Edit menu item * RPMs are installable on RHEL/Centos-5.5 (ie use md5 etc) * Dialogs now respond better to keyboard eg Enter = OK * If a file's timestamp changes while gjots2 is editing it then you are told about it and asked to confirm an overwrite. * 'Find' of an item now scrolls the treeview to that item * Add 'Find Next' menu item (^G) 2010-06-28 Version 2.3.10 * gtksourceview2 is supported. Smaller toolbar logos are used. 2009-08-10 Version 2.3.9 * An Undo/Redo function was added for the text buffer using gtksourceview. 2008-11-08 Version 2.3.8 * Updated dependency list in gjots2.gjots * Add -1 -2 -4 options to gjots2lpr * When `find' dialog pops up, make the 'search for' text selected so that it can be overwritten by just typing - no need to select and clear it. * Clean up 'invoke browser on url double-click' * Extend gjots2html to 8 levels (and cleanup) * Fix bugs reported by Redhat: * https://bugzilla.redhat.com/show_bug.cgi?id=464476: If gjots2 is not attached to a terminal (i.e. started from the Gnome menu as opposed to a command shell), it is not possible to open a gpg encrypted file. * https://bugzilla.redhat.com/show_bug.cgi?id=464510: vulnerability when processing a password. 2007-07-28 Version 2.3.7 * Changed to using glade-3 for UI - gjots.glade3 is now the XML file to load - this fixed the problems in the toolbar and menu icons * On double-clicking a http[s] URL, a browser is sought and run - preference is given to the setting of the BROWSER environment variable if set, then to an already running browser from the list "firefox", "konqueror", "epiphany", "opera", "dillo" and finally, to a runnable browser from the list. The URL is selected. * Removed the "New Page" and "Open" buttons from the top toolbar as they are not the most useful * Improved the coverage of the manual a little * Added a script to simplify printing a bit - gjots2lpr * Fixed a scoping problem when constructing the manual file name with a locale 2007-07-09 Version 2.3.6 * Added trace function enabled with the -t/--trace option 2007-07-08 * Fixed bug in get_linear_next function that caused _find_next to stop searching too soon 2007-06-07 Bob Hepple Version 2.3.5 * various crashes fixed in gui.py * gjots2emacs added * Czech translation by Martin Sin 2006-03-05 Bob Hepple Version 2.3.4 * Italian translation by Raimondo Giammanco 2006-02-26 Bob Hepple Version 2.3.4 * fix bug when accessing manual 2006-01-24 Bob Hepple Version 2.3.3 * First Russian version (LANG=ru). Translator is Sergey Bezdenezhnyh * Add no/nb versions of gjots2.gjots 2006-01-19 Bob Hepple Version 2.3.2 * First Norwegian version (LANG=nb_NO.utf8). Translator is Robert Emil Berge 2006-01-08 Bob Hepple Version 2.3.1 * First French version using message and manual files from Rui Nibau (RNB) rui.nibau@omacronides.com 2006-01-03 Bob Hepple Version 2.3.0 * Internationalisation (I18N) support. Translators are invited to contact the author. Note that French and Hungarian are already under way. 2005-12-22 Bob Hepple Version 2.2.1 * Bug 1250753 fixed - gjots crashes when demoting a newly created item * Bug 1376011 fixed - Merge destroys the tree. * Bug 1387036 fixed - UTF-8 encoding required in gjots2html output 2005-06-19 Gabriel Munoz Version 2.2.0 * The menus and toolbars have been re-organized for consistency. * Added different icons for many of the tool buttons. * Added options for viewing icons/text/both on the toolbars. * A context menu has been added when right-clicking the tree. * Tree sorting and text sorting has been separated. * The cut, copy, and paste commands have been consolidated to do the right thing with tree items and text based on what has the user focus. * We are now using a clipboard that will make copying and pasting from other applications into gjots2 and within gjots2 easier (and as it should be expected). * Made it easier for people to run gjots2 from its source directory. * Fixed hiding the toolbars to remove them from the screen, rather than just removing the icons and leaving dead screen space. * Fixed the export dialog cancel button to actually cancel the operation. * Fixed to handle the window manager close event so that gjots2 will always have a clean exit and no changes will be lost. * Lots of code cleanup, e.g. removal of dead code. * Added a "Gjots FAQ" section to the documentation. * Many bug fixes for stability were made. 2004-12-09 Version 2.1.1 * setup.py fixed * Installation doco improved * The sort dialog is not able to restore its settings - a bug in libglade? 2004-11-30 Version 2.1.0 * Added "Merge Items" - combine selected items into one * Added "Split Item" - split item into 2 * Added "Sort" function - sort items or text * Added "Print" function - print selected text or items * Added "Show All" function - explode the tree * Added "Hide All" function - implode the tree * "Remember password" option - no need to type the password (twice) when saving an encrypted file 2004-06-01 Version 2.0.1 * (Bug & fix (thanks!) sent in by Andreas Reimer) gui.py:434: self._warp(newnode) Caused an error message on "New Item", changed it to self._warp(new_child) * (Bug & fix (thanks!) sent in by Andreas Reimer) gui.py:1081 was: self.gui.msg("No changes to save"), changed to self.msg("...") * (Bug sent in by Andreas Reimer & Thomas Zajic): file.py:228: on write_file() a reference to body[-1] caused an error. changed to: if body and not body[-1] == '\n' * (Bug sent in by Thomas Zajic): hard-coded references to "/usr" should be replaced with something more adjustable to allow installation "anywhere". Also added setup.py and uninstall.sh for systems without RPM or emerge. * Added setup.py and uninstall.sh for non-RPM, non-emerge systems * Reduced python requirement to 2.2 (untested - please confirm if it works for you!) 2004-05-22 Version 2.0.0 * Initial release of gjots2 for Python/GTK-2 gjots2-3.1.9/INSTALL000066400000000000000000000000761401630023500137620ustar00rootroot00000000000000Please see the file gjots2.gjots for installation instructionsgjots2-3.1.9/README000066400000000000000000000001541401630023500136060ustar00rootroot00000000000000gjots2 is a fairly simple jotter application for your desktop. See gjots2.gjots for installation details. gjots2-3.1.9/bin/000077500000000000000000000000001401630023500134765ustar00rootroot00000000000000gjots2-3.1.9/bin/docbook2gjots000077500000000000000000000111031401630023500161710ustar00rootroot00000000000000#!/usr/bin/bash # # Copyright (C) 1997-2002 Bob Hepple # # A simple script to convert a gjots file to an HTML page - with table of contents # etc # # 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 # # A quick hack, that's all. I thought it would be truly hideous but # it's turned out only moderately ugly. Of course, it doesn't do a # thorough job on the XML/SGML/DOCBOOK syntax but it seems to cover # most practical cases. usage() { echo "Usage: $PROG [ filename ] Converts a DOCBOOK XML file to gjots format (on stdout). gjots items and folders are created on the following DOCBOOK elements: preface, chapter, section, sect1, sect2, sect3, sect4 Presently, the DOCBOOK elements _must_ have a title eg.: any text to form the title Similarly the end of each section must live on its own line: Invalid XML will break this program - no checking of XML syntax or validation against the DTD is done. Make sure the DOCBOOK file is valid before processing with $PROG - perhaps by passing through jade(1) or nsgmls(1) without errors." } abend() { echo "$PROG: $1" >&2 echo "(Use -h for usage)" >&2 exit 1 } PROG=`basename $0` DOC_TYPE='"unknown"' ADD_PARA='"yes"' HAS_PREFACE='""' ENCODE_SPECIALS='"yes"' ARGS=`getopt -o h -- "$@"` [ $? != 0 ] && echo "use -h for usage" >&2 && exit 1 eval set -- "$ARGS" while true; do case $1 in -h) usage; exit 0;; --) shift; break;; *) echo "$PROG: internal error" >&2 ; exit 1;; esac done FILENAME="" [ -r $1 ] && FILENAME=$1 writeBody() { AWKFILE=/tmp/docbook2gjots.tmp$$.awk # Leave the here-document terminator unquoted to enable shell variable expansion: # $ \ ` and , need escaping with \: cat >$AWKFILE < level) { printf("\\\\EndFolder\\n", level) folder_open-- } while (folder_open < level) { printf("\\\\NewFolder\\n", level) folder_open++ } } { while (\$0) { if (\$0 ~ folder_start_regexp) { #print "folder_start:",\$0 left = gensub(folder_start_regexp, "\\\\1", 1) if (left) print left manage_folder() \$0 = gensub(folder_start_regexp, "\\\\3", 1) need_title = 1 level++ } else if (\$0 ~ folder_end_regexp) { #print "folder_end:",\$0 left = gensub(folder_end_regexp, "\\\\1", 1) if (left) print left level-- if (level < 0) { print "XML error" exit 1 } \$0 = gensub(folder_end_regexp, "\\\\3", 1) } else if (need_title && \$0 ~ title_start_regexp) { #print "title_start:",\$0 # dubius XML parsing here - we need to assume that the # title text comes immediately after the etc tag # and is all on one line (although not necessarily on the # same line as the or tags. This is a # quick and dirty hack after all, not a proper XML parsing # effort. left = gensub(title_start_regexp, "\\\\1", 1) if (left) print left \$0 = gensub(title_start_regexp, "\\\\3", 1) title="" while (\$0 !~ title_end_regexp) { if (!title) title = gensub("^[ ]*(.*)[ ]*", "\\\\1", 1) getline } if (!title) title = gensub(title_end_regexp, "\\\\1", 1) \$0 = gensub(title_end_regexp, "\\\\3", 1) printf("\\\\NewEntry\\n%s\\n\\n", title) need_title = 0 } else { print gensub("^[ ]*(.*)$", "\\\\1", 1) \$0 = "" } } } END { } EOF # NB - we are using gawk in order to access the gensub() function: cat $FILENAME | gawk -f $AWKFILE rm $AWKFILE } # writeBody # This is the main program (!): ( writeBody ) gjots2-3.1.9/bin/gjots2000077500000000000000000000107121401630023500146350ustar00rootroot00000000000000#!/usr/bin/python3 import sys, os, getopt import linecache from distutils.sysconfig import get_python_lib def traceit(frame, event, arg): if event == "line" or event == "call": lineno = frame.f_lineno filename = frame.f_globals["__file__"] if (filename.endswith(".pyc") or filename.endswith(".pyo")): filename = filename[:-1] name = frame.f_globals["__name__"] line = linecache.getline(filename, lineno) print("%s:%s:%s: %s" % (event, name, lineno, line.rstrip())) return traceit def ver2str(ver): return ".".join(map(str,ver)) def usage(): print(_("""Usage: gjots [OPTIONS] [FILENAME] A gtk/X11 jotter OPTIONS: -h, --help: this help -d, --debug: debug to stdout -t, --trace: trace lines as they execute -g 123x456, --geometry=123x456: initial geometry (X x Y) -p, --purge-password don't remember password -r, --readonly: no editing (or locking) -V, --version: print the version and exit FILENAME: gjots data filename (default is $HOME/.gjotsfile) """)) if __name__ == '__main__': dirName, progName = os.path.split(sys.argv[0]) prefix = sys.prefix # /usr or /usr/local or ??? # maybe we're installed somewhere weird like ~/foo/bar/bin d, b = os.path.split(dirName) if b == "bin": prefix = d # # Add the library path to the system load path # # developer should use local version executed from the current directory: localdir = os.curdir + "/lib" if os.access(localdir, os.F_OK) and os.access("ui/gjots.ui", os.F_OK): prefix = localdir sys.path = [ localdir ] + sys.path sys.stderr.write("%s: Warning: running modules from %s\n" % (progName, localdir)) locale_dir = os.curdir + "/po" else: p = get_python_lib() if p.startswith(sys.prefix): p = p[len(sys.prefix):] p = prefix + "/" + p sys.path = [ p + '/gjots2' ] + sys.path locale_dir = prefix + "/share/locale" # i18n support import gettext import locale # Locale setting in Gtk.Builder appears somewhat broken under Python. See: # https://bugzilla.gnome.org/show_bug.cgi?id=574520 locale_domain = "gjots2" gettext.bindtextdomain(locale_domain, locale_dir) locale.setlocale(locale.LC_ALL, '') gettext.textdomain(locale_domain) gettext.install(locale_domain, localedir=locale_dir) try: locale.bindtextdomain(locale_domain, locale_dir) locale.bind_textdomain_codeset(locale_domain, 'UTF-8') except locale.Error: print("Couldn't bind the translation domain. Some translations won't work.") _ = gettext.gettext # # python version # pyver = (3,6,8) if sys.version_info[:3] < pyver: sys.stderr.write(_("%s requires python%s or higher.") % (progName, ver2str(pyver))) sys.exit(1) import gi gi.require_version("Gtk", "3.0") from gui import * from version import * try: opts, args = getopt.getopt(sys.argv[1:], "hdrtg:V", ["help", "debug", "readonly", "trace", "geometry=", "version"]) except getopt.GetoptError as errmsg: sys.stderr.write("%s: %s\n" % (progName, errmsg)) sys.stderr.write(_("Use -h for help\n")) sys.exit(2) readonly = 0 output = None geometry = "" prefs = "" debug = 0 purge_password = 0 for o, a in opts: if o in ("-h", "--help"): usage() sys.exit(0) if o in ("-V", "--version"): print(_("%s version %s") % (progName, gjots_version)) sys.exit(0) if o in ("-p", "--purge-password"): purge_password = 1 if o in ("-r", "--readonly"): readonly = 1 if o in ("-g", "--geometry"): geometry = a if o in ("-d", "--debug"): debug = 1 if o in ("-t", "--trace"): sys.settrace(traceit) if len(args): filename = args[0] else: filename = os.environ["HOME"]+"/.gjotsfile" if not os.access(filename, os.R_OK): os.system("touch " + filename) gui = gjots_gui(prefix, progName, geometry, filename, readonly, debug, purge_password) Gtk.main() # Local variables: # eval:(setq compile-command "./gjots2 test.gjots") # eval:(setq-default indent-tabs-mode nil) # eval:(setq tab-width 4) # eval:(setq python-indent 4) # End: gjots2-3.1.9/bin/gjots2docbook000077500000000000000000000116261401630023500162030ustar00rootroot00000000000000#!/usr/bin/bash # # Copyright (C) 1997-2002 Bob Hepple # # A simple script to convert a gjots file to an HTML page - with table of contents # etc # # 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 # usage() { echo "Usage: $PROG -a | -b [-e] [-P] [-p] [ filename ] Converts a gjots file to DOCBOOK XML (on stdout) -a: make an article -b: make a book -e: don't encode special characters eg < -> < -p: don't change blank lines to markers -P: first section is a preface rather than a chapter (book only) Either -a or -b must be given but not both. Items in the root element should contain or . If the file does not start with then appropriate lines will be added. The -e and -p options are provided in case your gjots file is already partially in docbook format. If properly installed, the docbook utilities can then be used to create HTML, man, ps, pdf etc files eg: $PROG -b ~/.gjotsfile >gjotsfile.xml docbook2pdf gjotsfile.xml It may be necessary to fine-tune the docbook formatting to access all features." } abend() { echo "$PROG: $1" >&2 echo "(Use -h for usage)" >&2 exit 1 } PROG=`basename $0` DOC_TYPE='"unknown"' ADD_PARA='"yes"' HAS_PREFACE='""' ENCODE_SPECIALS='"yes"' ARGS=`getopt -o abepPh -- "$@"` [ $? != 0 ] && echo "use -h for usage" >&2 && exit 1 eval set -- "$ARGS" while true; do case $1 in -a) DOC_TYPE='"article"'; shift;; -b) DOC_TYPE='"book"'; shift;; -e) ENCODE_SPECIALS='""'; shift;; -p) ADD_PARA='""'; shift;; -P) HAS_PREFACE='"yes"'; shift;; -h) usage; exit 0;; --) shift; break;; *) echo "$PROG: internal error" >&2 ; exit 1;; esac done if [ "$DOC_TYPE" = '"unknown"' ]; then abend "must give either -a or -b options" fi if [ "$DOC_TYPE" = '"article"' ] ; then if [ "$HAS_PREFACE" = '"yes"' ]; then abend "-P option is only valid with -b" fi fi FILENAME="" [ -r $1 ] && FILENAME=$1 writeBody() { AWKFILE=/tmp/gjots2docbook.tmp$$.awk # Leave the here-document terminator unquoted to enable shell variable expansion: # $ \ ` and , need escaping with \: cat >$AWKFILE <" while (title_open >= level) { title_element = "section" if (doc_type == "book") { if ( title_open == 1 ) { if ( has_preface ) { title_element = "preface" } else { title_element = "chapter" } } } print_indent() printf("\\n", title_element) title_open--; } has_preface = 0 } function open_title(title) { if (title_open) { close_title() } title_element = "section" if (doc_type == "book") { if ( level == 1 ) { if ( has_preface ) { title_element = "preface" } else { title_element = "chapter" } } } print_indent() printf("<%s>%s\\n", title_element, title) print_indent() print "" title_open = level } { if ( ! xml_done ) { xml_done = 1 if ( \$0 ~ "<\\?xml" || \$0 ~ "<\\?XML" ) { print \$0 next } else { print "" } } if ( ! docbook_done) { docbook_done = 1 if ( \$0 ~ "\n",doc_type) } } if (!main_element) { main_element=1 printf("<%s>\\n", doc_type) } if (\$0 ~ /^\\\\NewEntry/) { print_title=1 } else if (\$0 ~ /^\\\\NewFolder/) { level++ } else if (\$0 ~ /^\\\\EndFolder/) { level-- } else { if (encode_specials) { gsub(/&/,"\\\\&") gsub(/"/,"\\\\"") gsub(//,"\\\\>") } if (print_title) { open_title(\$0) print_title=0 } else if ( add_para && \$0 ~ "^[ ]*\$") { print_indent() print "" } else { print_indent() print } } } END { while (level) { close_title() level--; } printf("\n",doc_type) } EOF cat $FILENAME | awk -f $AWKFILE rm $AWKFILE } # writeBody # This is the main program (!): ( writeBody ) gjots2-3.1.9/bin/gjots2emacs000077500000000000000000000046041401630023500156510ustar00rootroot00000000000000#!/usr/bin/bash # # Copyright (C) 1997-2015 Bob Hepple # # A simple script to convert a gjots file to emacs outline # # 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 usage() { echo "Usage: $PROG [filename] Converts a gjots file to emacs outline mode (on stdout). The emacs outline-regexp is defaulted to ===>+ -b base: base string for outline-regexp (default '===') -F char: marker for headers in outline-regexp (default '>') " } PROG=$( basename $0 ) BASE="===" MARKER=">" ARGS=$( getopt -o b:F:h -- "$@" ) [ $? != 0 ] && echo "use -h for usage" >&2 && exit 1 eval set -- "$ARGS" while true; do case $1 in -h) usage; exit 0;; -b) BASE="$2"; shift 2;; -F) MARKER="$2"; shift 2;; --) shift; break;; *) echo "$PROG: internal error" >&2 ; exit 1;; esac done FILENAME="" [ -r $1 ] && FILENAME=$1 writeBody() { exec < $FILENAME awk -v marker="$MARKER" -v base="$BASE" 'BEGIN { level = 1 level_hdr = base marker print_title = 0 } { if ($0 ~ /^\\NewEntry/) { print_title = 1 } else if ($0 ~ /^\\NewFolder/) { level++ level_hdr = level_hdr marker } else if ($0 ~ /^\\EndFolder/) { if (level > 1) { level-- level_hdr = substr(level_hdr, 1, length(level_hdr) - 1) } } else { if (print_title) { printf("%s %s\n",level_hdr, $0) print_title = 0 } else { print } } }' } writeTrailer() { cat < lines after each section -t \"title\": adds a title to the page " } PROG=`basename $0` ADD_HR='' ADD_CLINK='' ADD_TITLE='' LEVEL="100" ARGS=`getopt -o chi:lt: -- "$@"` [ $? != 0 ] && echo "use -h for usage" >&2 && exit 1 eval set -- "$ARGS" while true; do case $1 in -c) ADD_CLINK='yes'; shift;; -i) LEVEL="$2"; shift 2;; -l) ADD_HR='yes'; shift;; -t) ADD_TITLE="$2"; shift 2;; -h) usage; exit 0;; --) shift; break;; *) echo "$PROG: internal error" >&2 ; exit 1;; esac done #echo "ADD_HR=$ADD_HR" >&2 #echo "ADD_CLINK=$ADD_CLINK" >&2 #echo "ADD_TITLE=$ADD_TITLE" >&2 #echo "ARGS=$@" >&2 #exit 0 FILENAME="" [ -r $1 ] && FILENAME=$1 writeHeader() { # Quote the here-document terminator word to disable shell variable expansion: cat <<"EOF" m4_divert(-1) m4_changecom(`[[[[')m4_dnl to protect the # character m4_changequote({{{{,}}}}) m4_define({{{{_Start_TOC}}}},{{{{

    m4_divert(-1) m4_define({{{{_H1_num}}}},0) m4_define({{{{_H2_num}}}},0) m4_define({{{{_H3_num}}}},0) m4_define({{{{_H4_num}}}},0) m4_define({{{{_H5_num}}}},0) m4_define({{{{_H6_num}}}},0) m4_define({{{{_H7_num}}}},) m4_define({{{{_H8_num}}}},) m4_define({{{{_H1_end}}}},) m4_define({{{{_H2_end}}}},) m4_define({{{{_H3_end}}}},) m4_define({{{{_H4_end}}}},) m4_define({{{{_H5_end}}}},) m4_define({{{{_H6_end}}}},) m4_define({{{{_H7_end}}}},) m4_define({{{{_H8_end}}}},) m4_divert(1)}}}}) m4_define({{{{_H1}}}}, {{{{m4_divert(-1) m4_define({{{{_H1_num}}}},m4_incr(_H1_num))m4_dnl m4_define({{{{_H2_num}}}},0) m4_define({{{{_H3_num}}}},0) m4_define({{{{_H4_num}}}},0) m4_define({{{{_H5_num}}}},0) m4_define({{{{_H6_num}}}},0) m4_define({{{{_H7_num}}}},0) m4_define({{{{_H8_num}}}},0) m4_define({{{{_TOC_label}}}},{{{{_H1_num. $1}}}}) m4_divert(0)m4_dnl _H8_end()m4_define({{{{_H8_end}}}},)m4_dnl _H7_end()m4_define({{{{_H7_end}}}},)m4_dnl _H6_end()m4_define({{{{_H6_end}}}},)m4_dnl _H5_end()m4_define({{{{_H5_end}}}},)m4_dnl _H4_end()m4_define({{{{_H4_end}}}},)m4_dnl _H3_end()m4_define({{{{_H3_end}}}},)m4_dnl _H2_end()m4_define({{{{_H2_end}}}},)m4_dnl
  • _TOC_label m4_divert(1)

    _TOC_label

    }}}}) m4_define({{{{_H2}}}}, {{{{m4_divert(-1) m4_define({{{{_H2_end}}}},m4_ifelse(m4_eval(_LEVEL>=2),1,{{{{
}}}},)) m4_define({{{{_H2_start}}}},m4_ifelse(_H2_num,0,{{{{
    }}}},)) m4_define({{{{_H2_num}}}},m4_incr(_H2_num)) m4_define({{{{_H3_num}}}},0) m4_define({{{{_H4_num}}}},0) m4_define({{{{_H5_num}}}},0) m4_define({{{{_H6_num}}}},0) m4_define({{{{_H7_num}}}},0) m4_define({{{{_H8_num}}}},0) m4_define({{{{_TOC_label}}}},{{{{_H1_num._H2_num $1}}}}) m4_divert(0)m4_dnl _H8_end()m4_define({{{{_H8_end}}}},)m4_dnl _H7_end()m4_define({{{{_H7_end}}}},)m4_dnl _H6_end()m4_define({{{{_H6_end}}}},)m4_dnl _H5_end()m4_define({{{{_H5_end}}}},)m4_dnl _H4_end()m4_define({{{{_H4_end}}}},)m4_dnl _H3_end()m4_define({{{{_H3_end}}}},)m4_dnl m4_ifelse(m4_eval(_LEVEL>=2),1,{{{{_H2_start
  • _TOC_label }}}})m4_divert(1)

    _TOC_label

    }}}}) m4_define({{{{_H3}}}}, {{{{m4_divert(-1) m4_define({{{{_H3_end}}}},m4_ifelse(m4_eval(_LEVEL>=3),1,{{{{
}}}},)) m4_define({{{{_H3_start}}}},m4_ifelse(_H3_num,0,{{{{
    }}}},)) m4_define({{{{_H3_num}}}},m4_incr(_H3_num)) m4_define({{{{_H4_num}}}},0) m4_define({{{{_H5_num}}}},0) m4_define({{{{_H6_num}}}},0) m4_define({{{{_H7_num}}}},0) m4_define({{{{_H8_num}}}},0) m4_define({{{{_TOC_label}}}},{{{{_H1_num._H2_num._H3_num $1}}}}) m4_divert(0)m4_dnl _H8_end()m4_define({{{{_H8_end}}}},)m4_dnl _H7_end()m4_define({{{{_H7_end}}}},)m4_dnl _H6_end()m4_define({{{{_H6_end}}}},)m4_dnl _H5_end()m4_define({{{{_H5_end}}}},)m4_dnl _H4_end()m4_define({{{{_H4_end}}}},)m4_dnl m4_ifelse(m4_eval(_LEVEL>=3),1,{{{{_H3_start
  • _TOC_label }}}})m4_divert(1)

    _TOC_label

    }}}}) m4_define({{{{_H4}}}}, {{{{m4_divert(-1) m4_define({{{{_H4_end}}}},m4_ifelse(m4_eval(_LEVEL>=4),1,{{{{
}}}},)) m4_define({{{{_H4_start}}}},m4_ifelse(_H4_num,0,{{{{
    }}}},)) m4_define({{{{_H4_num}}}},m4_incr(_H4_num)) m4_define({{{{_H5_num}}}},0) m4_define({{{{_H6_num}}}},0) m4_define({{{{_H7_num}}}},0) m4_define({{{{_H8_num}}}},0) m4_define({{{{_TOC_label}}}},{{{{_H1_num._H2_num._H3_num._H4_num $1}}}}) m4_divert(0)m4_dnl _H8_end()m4_define({{{{_H8_end}}}},)m4_dnl _H7_end()m4_define({{{{_H7_end}}}},)m4_dnl _H6_end()m4_define({{{{_H6_end}}}},)m4_dnl _H5_end()m4_define({{{{_H5_end}}}},)m4_dnl m4_ifelse(m4_eval(_LEVEL>=4),1,{{{{_H4_start
  • _TOC_label }}}})m4_divert(1)
    _TOC_label
    }}}}) m4_define({{{{_H5}}}}, {{{{m4_divert(-1) m4_define({{{{_H5_end}}}},m4_ifelse(m4_eval(_LEVEL>=5),1,{{{{
}}}},)) m4_define({{{{_H5_start}}}},m4_ifelse(_H5_num,0,{{{{
    }}}},)) m4_define({{{{_H5_num}}}},m4_incr(_H5_num)) m4_define({{{{_H6_num}}}},0) m4_define({{{{_H7_num}}}},0) m4_define({{{{_H8_num}}}},0) m4_define({{{{_TOC_label}}}},{{{{_H1_num._H2_num._H3_num._H4_num._H5_num $1}}}}) m4_divert(0)m4_dnl _H8_end()m4_define({{{{_H8_end}}}},)m4_dnl _H7_end()m4_define({{{{_H7_end}}}},)m4_dnl _H6_end()m4_define({{{{_H6_end}}}},)m4_dnl m4_ifelse(m4_eval(_LEVEL>=5),1,{{{{_H5_start
  • _TOC_label }}}})m4_divert(1)
    _TOC_label
    }}}}) m4_define({{{{_H6}}}}, {{{{m4_divert(-1) m4_define({{{{_H6_end}}}},m4_ifelse(m4_eval(_LEVEL>=6),1,{{{{
}}}},)) m4_define({{{{_H6_start}}}},m4_ifelse(_H6_num,0,{{{{
    }}}},)) m4_define({{{{_H6_num}}}},m4_incr(_H6_num)) m4_define({{{{_H7_num}}}},0) m4_define({{{{_H8_num}}}},0) m4_define({{{{_TOC_label}}}},{{{{_H1_num._H2_num._H3_num._H4_num._H5_num._H6_num $1}}}}) m4_divert(0)m4_dnl _H8_end()m4_define({{{{_H8_end}}}},)m4_dnl _H7_end()m4_define({{{{_H7_end}}}},)m4_dnl m4_ifelse(m4_eval(_LEVEL>=6),1,{{{{_H6_start
  • _TOC_label }}}})m4_divert(1)_TOC_label}}}}) m4_define({{{{_H7}}}}, {{{{m4_divert(-1) m4_define({{{{_H7_end}}}},m4_ifelse(m4_eval(_LEVEL>=7),1,{{{{
}}}},)) m4_define({{{{_H7_start}}}},m4_ifelse(_H7_num,0,{{{{
    }}}},)) m4_define({{{{_H7_num}}}},m4_incr(_H7_num)) m4_define({{{{_H8_num}}}},0) m4_define({{{{_TOC_label}}}},{{{{_H1_num._H2_num._H3_num._H4_num._H5_num._H6_num._H7_num $1}}}}) m4_divert(0)m4_dnl _H8_end()m4_define({{{{_H8_end}}}},)m4_dnl m4_ifelse(m4_eval(_LEVEL>=7),1,{{{{_H7_start
  • _TOC_label }}}})m4_divert(1)_TOC_label}}}}) m4_define({{{{_H8}}}}, {{{{m4_divert(-1) m4_define({{{{_H8_end}}}},m4_ifelse(m4_eval(_LEVEL>=7),1,{{{{
}}}},)) m4_define({{{{_H8_start}}}},m4_ifelse(_H8_num,0,{{{{
    }}}},)) m4_define({{{{_H8_num}}}},m4_incr(_H8_num)) m4_define({{{{_TOC_label}}}},{{{{_H1_num._H2_num._H3_num._H4_num._H5_num._H6_num._H7_num._H8_num $1}}}}) m4_divert(0) m4_ifelse(m4_eval(_LEVEL>=8),1,{{{{_H8_start
  • _TOC_label }}}})m4_divert(1)_TOC_label}}}}) m4_define({{{{_End_TOC}}}},{{{{m4_divert(0)m4_dnl m4_ifelse(_H8_num,0,,{{{{
}}}})m4_dnl m4_ifelse(_H7_num,0,,{{{{ }}}})m4_dnl m4_ifelse(_H6_num,0,,{{{{ }}}})m4_dnl m4_ifelse(_H5_num,0,,{{{{ }}}})m4_dnl m4_ifelse(_H4_num,0,,{{{{ }}}})m4_dnl m4_ifelse(_H3_num,0,,{{{{ }}}})m4_dnl m4_ifelse(_H2_num,0,,{{{{ }}}})m4_dnl

}}}}) m4_divert m4_dnl EOF cat <$FILENAME EOF } # writeHeader writeBody() { TMP="/tmp/gjots2html.$$.awk" trap "rm -f $TMP" EXIT cat > $TMP <<'EOF' BEGIN { level = 1 print_title=1 #printf("add_hr=%s\n", add_hr) | "cat 1>&2" #printf("add_clink=%s\n", add_clink) | "cat 1>&2" #printf("add_title=%s\n", add_title) | "cat 1>&2" if (add_title != "") { printf("

%s

\n", add_title) } print "Contents

_Start_TOC\n

\n"
}

{
    if ($0 ~ /^\\NewEntry/) { 
        print_title=1
    } else if ($0 ~ /^\\NewFolder/) { 
        level++
        if (level > 8) {
            print "gjots2html: Too many levels of folder for this poor utility. Bailing out!" >"/dev/stderr"
            exit 1
        }
    } else if ($0 ~ /^\\EndFolder/) { 
        level--
    } else {
        gsub(/&/,"\\&")
        gsub(/"/,"\\"")
        gsub(//,"\\>")
        if (print_title) {
            # the first line is the title:
            printf("
\n") if (add_clink == "yes") { printf("

Contents

") } if (add_hr == "yes") { printf("


\n") } printf("_H%d(%s)\n
\n",level, $0)
            print_title=0
        } else {
            print
        }
    }
}

END { print "
\n"; } EOF awk -v add_hr="$ADD_HR" -v add_clink="$ADD_CLINK" \ -v add_title="$ADD_TITLE" -f $TMP $FILENAME } # writeBody writeTrailer() { cat <<"EOF" _End_TOC EOF } # writeTrailer # This is the main program (!): ( writeHeader writeBody writeTrailer ) | m4 -P -D_LEVEL=$LEVEL gjots2-3.1.9/bin/gjots2html.py000077500000000000000000000345051401630023500161570ustar00rootroot00000000000000#!/usr/bin/python3 # TODO: # 1) Add option to generate the html file in chunks # 2) Increase number of levels to max supported by HTML (9?) # --> Is this a bit extreme? # 3) -r N, --rule=N:
for all levels up to N # --> I am not sure what this is??? # 4) -t title: Provide centered title before toc # --> This should also be simple, just add a branch for a centered # title. # # http://www.python.org/doc/current/lib/module-textwrap.html # import textwrap requires Python >= 2.3 """ From: "Munoz, Gabriel Aneceto" To: Subject: Gjots2 - inquire about development status Date: Wed, 9 Jun 2004 22:26:31 -0500 Hello again, I sent an email last week about the status of Gjots2, and now I have re-worked gjots2html while I was learning Python. I attached a current version of it to this email. I do not know if you, or anyone else was also working on changing this program, but hopefully no work is duplicated. The attached version of gjots2html is coded in Python, and has all the functionality that the previous version had, plus a few more things. I added the following functionality: embedding the output into an existing HTML template, no table of contents (from your development notes), '-o file' for output to a specified file, adding a link to a cascading style sheet, and wrapping the text at a specified length without requiring the source gjots file to be wrapped. The HTML output is in valid XHTML v1.1. I also added the functionality to allow for an arbitrary number of levels in the hierarchy to be supported. You can see examples of these formats here: http://blackhole.cs.uwec.edu/~munozga/docs/ I have successfully used this program to convert a rather large gjots file to html, one which was not fully convertible by the old version (I think due to the number of levels my gjots file had). Please let me know any thoughts and concerns. I would like to add the functionality for the other options you mentioned in the development notes, but I would need some more explanation as to what exactly is wanted. Gabe """ import re, os, getopt, sys, textwrap # Global variables for program preferences VERSION = '0.1' CONTENTS = CHUNKS = LINE = False PRINT_TOC = True EMBED = OUTPUT = WRAP = None FILENAME = STYLESHEET = '' WRAPPER = None TITLE = "Contents" STDOUT = sys.stdout # Regular expressions for parsing the gjots file format newEntry = re.compile(r'^\\NewEntry$') newFolder = re.compile(r'^\\NewFolder$') endFolder = re.compile(r'^\\EndFolder$') # Reg ex's for replacing special characters trailDot = re.compile('\.$') # For printNode() number beautification link = re.compile('\s|\/|,|\+|"|=|~|\(|\)|>|<|&') amp = re.compile('&') quot = re.compile('"') lt = re.compile('<') gt = re.compile('>') fslash = re.compile('/') gjotsEmbed = re.compile('^INSERT GJOTS TEXT HERE$') # # Prints out usage information to stdout # def usage(): global STDOUT print('Usage: ' + os.path.basename(sys.argv[0]) + \ """ [-c] [-e template] [-h] [-k] [-l] [-n] [-o out] [-s css] [-t title] [-v] [-w length] gjots_file -c, --contents Adds a link to the Table Of Contents after each section. Turned off by default. -e template, --embed template Embed the output of this program a pre-existing HTML template file. -h, --help Prints this usage information. -k, --chunks Output the HTML file in chunks. The default is a single HTML file. -l, --lines Adds
lines after each section. -n, --no-toc Suppress the table of contents. -o out, --output out Output the HTML to specified file/dir. -s css, --style-sheet css Add a link to the specified Cascading Style Sheet (in relation to your HTML root). -t title, --title title Adds a title to the page. The default is the name of the gjots file. -v, --version Prints the version of this utility. -w length, --wrap length Wrap the HTML output at the specified character length. Description: Converts a gjots file to html (on stdout)""", file=STDOUT) # # Shifts off the last number in `node', and increments the new last # number in the list by one. The current HTML heading is reduced (if # necessary) to the next level lower and returned by this function. # def removeNode(node): node.pop() node[len(node) - 1] = node[len(node) - 1] + 1 return headingValue(node) # # Pushes a new node number (default 1) onto the node list. A new HTML # heading is incremented (if necessary) and returned. # def addNode(node): node.append(1) return headingValue(node) # # Increments the last number in the list `node' by one. # def incrementNode(node): node[len(node) - 1] = node[len(node) - 1] + 1 # # Returns the current HTML heading level based upon the node list. This # function keeps the range between 2 (based on our discretion) and 6 # (based on the lowest level by the HTML standard). # def headingValue(node): if len(node) + 1 > 6: result = 6 else: result = len(node) + 1 return result # # Returns a string representation of a the current node number. `node' # is a list of numbers, and the string returned consists of each element # seperated by a period (e.g. 1.1, 2.3.4, etc). # def printNode(node): result = '' for n in node: result += str(n) + '.' if len(node) > 1: result = trailDot.sub('', result) return result # # Formats the plain text in buffer by changing special characters to # their HTML format (see an ascii table for values). # def format(buffer): buffer = amp.sub('&', buffer) buffer = quot.sub('"', buffer) buffer = lt.sub('<', buffer) buffer = gt.sub('>', buffer) buffer = fslash.sub('/', buffer) return buffer # # Formats a string to be a valid link # def formatLink(l): return link.sub('', l) def main(): global STDOUT, WRAPPER global VERSION, CONTENTS, CHUNKS, LINE, EMBED, OUTPUT, TITLE, WRAP global FILENAME, STYLESHEET, PRINT_TOC # Parse the command line options try: opts, args = getopt.getopt(sys.argv[1:], 'ce:hklno:s:t:vw:', \ ['contents', 'embed=', 'help', 'chunks', 'line', 'no-toc=', \ 'output=', 'style-sheet=', 'title=', 'version', 'wrap=']) except getopt.GetoptError: STDOUT = sys.stderr print('error: Invalid Option(s)', file=STDOUT) usage() sys.exit(1) for o, a in opts: if o in ('-c', '--contents'): CONTENTS = True elif o in ('-e', '--embed'): EMBED = a elif o in ('-h', '--help'): usage() sys.exit() elif o in ('-k', '--chunks'): CHUNKS = True elif o in ('-l', '--lines'): LINE = True elif o in ('-n', '--no-toc'): PRINT_TOC = False elif o in ('-o', '--output'): OUTPUT = a elif o in ('-s', '--style-sheet'): STYLESHEET = a elif o in ('-t', '--title'): TITLE = a elif o in ('-v', '--version'): print(os.path.basename(sys.argv[0]) + ' version ' + VERSION) sys.exit() elif o in ('-w', '--wrap'): WRAP = a WRAPPER = textwrap.TextWrapper(width=int(WRAP), \ expand_tabs=False, replace_whitespace=False, \ initial_indent='', subsequent_indent='', \ fix_sentence_endings=False, break_long_words=False) # Make sure the last argument exists (should be a gjots file) if not os.path.isfile(sys.argv[len(sys.argv) - 1]) or \ len(sys.argv) <= 1: STDOUT = sys.stderr print('error: You must specify a gjots file to convert', file=STDOUT) usage() sys.exit(1) FILENAME = sys.argv[len(sys.argv) - 1] # Set the title if not specified at the command line if not TITLE: TITLE = os.path.basename(FILENAME) # Re-direct output to a file if specified at the command line if OUTPUT: if not os.path.isfile(OUTPUT): STDOUT = open(OUTPUT, 'w') else: STDOUT = sys.stderr print('error: Invalid output file - file already exists', file=STDOUT) usage() sys.exit(1) # Read in the HTML from a specified template file and output the new # file with text before and after the marked region (INSERT GJOTS TEXT # HERE). before = '' after = None if EMBED: if not os.path.isabs(EMBED): EMBED = os.path.abspath(EMBED) if os.path.isfile(EMBED): embedfile = open(EMBED, 'r') for line in embedfile: if gjotsEmbed.match(line): after = '' elif after != None: after += line else: before += line embedfile.close() print(before, file=STDOUT) else: STDOUT = sys.stderr print("error: Invalid output file - file doesn't exist", file=STDOUT) usage() sys.exit(1) # Pre-parse file for keyword order - NOTE: This is not efficient keywords = ['\\NewEntry', '\\NewFolder', '\\EndFolder'] keys = [] file = open(FILENAME, 'r') for line in file: line = line.rstrip() if line in keywords: keys.append(line) file.close() # Print the header HTML information if not EMBED: print('', file=STDOUT) print('\n\n' + TITLE + '', file=STDOUT) if STYLESHEET: print('', file=STDOUT) print('\n\n', file=STDOUT) print('

' + TITLE + '\n

', file=STDOUT) if PRINT_TOC: print('
    ', file=STDOUT) # Parse file for the actual conversion node = [1] # Start at node number 1 body = '' # Holds the persistent, formatted HTML output until end buffer = '' # Holds temporary parsed buffer H = 2 # The HTML heading level (default) file = open(FILENAME, 'r') line = (file.readline()).rstrip() for lookahead in file: lookahead = lookahead.rstrip() if line == '\\NewEntry' and lookahead not in keywords: buffer = format(buffer) body += '
    \n' + buffer + '
    \n\n' if CONTENTS: body += 'Contents' if LINE: body += '
    ' body += '' + \ '' + printNode(node) + ' ' + \ format(lookahead) + '\n' buffer = '' if PRINT_TOC: print('
  • ' + printNode(node) + ' ' + format(lookahead) + '', file=STDOUT) keys.pop(0) if PRINT_TOC and len(keys) != 0 and keys[0] != '\\NewFolder': print('
  • ', file=STDOUT) if len(keys) != 0 and keys[0] == '\\NewEntry': incrementNode(node) elif line == '\\NewFolder': if PRINT_TOC: print('
      ', file=STDOUT) H = addNode(node) keys.pop(0) elif line == '\\EndFolder': if PRINT_TOC: print('
    ', file=STDOUT) H = removeNode(node) keys.pop(0) elif lookahead not in keywords: if WRAP and len(lookahead) > 72: buffer += WRAPPER.fill(lookahead) + '\n' else: buffer += lookahead + '\n' line = lookahead file.close() # Process any valid keywords and flush the buffer if PRINT_TOC: print('
\n\n

', file=STDOUT) if WRAP and len(lookahead) > 72: buffer += WRAPPER.fill(lookahead) buffer = format(buffer) body += '
\n' + buffer + '
\n' if CONTENTS: body += 'Contents' # Output the previously formatted body of the gjots file print(body, file=STDOUT) if not EMBED: print('\n', file=STDOUT) if EMBED: print(after, file=STDOUT) STDOUT.close() elif OUTPUT: STDOUT.close() if __name__ == "__main__": main() gjots2-3.1.9/bin/gjots2lpr000077500000000000000000000136241401630023500153600ustar00rootroot00000000000000#!/usr/bin/bash # # Copyright (C) 1997-2007 Bob Hepple # # A simple script to print some ascii text - if possible by conversion # to PS or PDF and then invoking a suitable viewer. Otherwise, just # print through pr # $Id: gjots2lpr,v 1.2 2009-06-23 06:21:46 bhepple Exp $ # 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 usage() { echo "Usage: $PROG [-pt ] [ filename ... ] Prints a text file - if possible using postscript or PDF and available pre-viewers and printer dialog. It looks for and uses whatever utilities it can find on the system. If 'filename' is not given then STDIN is printed. -1: 1 page per sheet -2: 2 page per sheet -4: 4 page per sheet -p: convert to PDF rather than PS -t: stick to ASCII text - don't convert to postscript The following environment parameters are recognised and have default values: GJOTS_LPR: xpp, gtklp, kprinter or lpr GJOTS_TXT2PS: \"$A2PS_DEFAULTS\", \"$MPAGE_DEFAULTS\" or \"$ENSCRIPT_DEFAULTS\" GJOTS_PS2PDF: ps2pdf GJOTS_PSVIEWER: gv, kghostview, ggv or ghostview GJOTS_PDFVIEWER: acroread, kpdf or xpdf GJOTS_PRETTY: \"$PR_DEFAULTS\" GJOTS_TXTVIEWER: \"$XDIALOG_DEFAULTS\" or \"$XMESSAGE_DEFAULTS\" " } check_env() { # note that we cleverly check only $1 in case there's a bunch of options: RET="" if [ "$1" ]; then if type $1 >/dev/null 2>&1; then RET="$@" else RET="" fi fi echo $RET } PROG=`basename $0` TEXTONLY="" PDFONLY="" TEMP="/tmp/.tmp.$$" RM_LIST="" trap "rm -f \$RM_LIST" EXIT PAGE_UP=-2 ARGS=`getopt -o 124htp -- "$@"` DO_USAGE="" [ $? != 0 ] && echo "use -h for usage" >&2 && exit 1 eval set -- "$ARGS" while true; do case $1 in -[124]) PAGE_UP=$1; shift;; -t) TEXTONLY="true"; shift;; -p) PDFONLY="true"; shift;; -h) usage; DO_USAGE="yes"; break;; --) shift; break;; *) echo "$PROG: internal error" >&2 ; exit 1;; esac done MPAGE_DEFAULTS="mpage -f $PAGE_UP -I1 -P-" ENSCRIPT_DEFAULTS="enscript -p - $PAGE_UP -I1" A2PS_DEFAULTS="a2ps --margin=1 -B $PAGE_UP -o -" PR_DEFAULTS="pr -o 1 -T" XDIALOG_DEFAULTS="Xdialog --ok-label Print --textbox - 80 120" XMESSAGE_DEFAULTS="xmessage -buttons Cancel:1,Print:0 -file -" GJOTS_LPR=$(check_env $GJOTS_LPR) GJOTS_TXT2PS=$(check_env $GJOTS_TXT2PS) GJOTS_PS2PDF=$(check_env $GJOTS_PS2PDF) GJOTS_PSVIEWER=$(check_env $GJOTS_PSVIEWER) GJOTS_PDFVIEWER=$(check_env $GJOTS_PDFVIEWER) GJOTS_TXTVIEWER=$(check_env $GJOTS_TXTVIEWER) GJOTS_PRETTY=$(check_env $GJOTS_PRETTY) [ "$DO_USAGE" ] && usage && exit 0 # Get input files TTXT=$TEMP.txt RM_LIST="$TTXT" cat $@ >$TTXT # Find a printing program LPR=lpr if [ "$GJOTS_LPR" ]; then LPR="$GJOTS_LPR" else if [ "$DISPLAY" ]; then if type xpp >/dev/null 2>&1; then LPR=xpp elif type gtklp >/dev/null 2>&1; then LPR=gtklp elif type kprinter >/dev/null 2>&1; then LPR=kprinter fi fi fi # Find a text to postscript converter: if [ "$GJOTS_TXT2PS" ]; then TXT2PS="$GJOTS_TXT2PS" else TXT2PS="" if type a2ps >/dev/null 2>&1; then TXT2PS="$A2PS_DEFAULTS" elif type mpage >/dev/null 2>&1; then TXT2PS="$MPAGE_DEFAULTS" elif type enscript >/dev/null 2>&1; then TXT2PS="$ENSCRIPT_DEFAULTS" fi fi # Find a PS previewer: if [ "$GJOTS_LPR" ]; then PSVIEWER="$GJOTS_PSVIEWER" else PSVIEWER="" if [ "$DISPLAY" -a -z "$TEXTONLY" ] ; then if type gv >/dev/null 2>&1; then PSVIEWER="gv" elif type kghostview >/dev/null 2>&1; then PSVIEWER=kghostview elif type kpdf >/dev/null 2>&1; then PSVIEWER=kpdf elif type ggv >/dev/null 2>&1; then PSVIEWER="ggv" elif type ghostview >/dev/null 2>&1; then PSVIEWER=ghostview fi fi fi # If there's no PS viewer, maybe we can convert to pdf PDFVIEWER="" PS2PDF="" if [ "$DISPLAY" -a -z "$TEXTONLY" -a -n "$TXT2PS" ] ; then # We need a PS to PDF converter: if [ "$GJOTS_PS2PDF" ]; then PS2PDF="$GJOTS_PS2PDF" else if type ps2pdf >/dev/null 2>&1; then PS2PDF=ps2pdf fi fi # find a PS previewer: if [ -n "$PS2PDF" ]; then if [ "$GJOTS_PDFVIEWER" ]; then PDFVIEWER="$GJOTS_PDFVIEWER" else if type acroread >/dev/null 2>&1; then PDFVIEWER=acroread elif type kpdf >/dev/null 2>&1; then PDFVIEWER=kpdf elif type xpdf >/dev/null 2>&1; then PDFVIEWER=xpdf fi fi fi fi if [ "$PDFONLY" -a "$PDFVIEWER" ]; then PSVIEWER="" fi # Convert text to postscript & fire up a viewer if possible: if [ -z "$TEXTONLY" -a "$TXT2PS" ]; then TPS=$TEMP.ps TPDF=$TEMP.pdf RM_LIST="$RM_LIST $TPS $TPDF" $TXT2PS $TTXT > $TPS if [ "$PSVIEWER" ]; then $PSVIEWER $TPS elif [ "$PDFVIEWER" -a "$PS2PDF" ]; then # Convert to pdf & fire up a pdf viewer: $PS2PDF $TPS $TPDF $PDFVIEWER $TPDF else # if all else fails, just print the PS file $LPR $TPS fi exit 0 fi # We can't convert to postscript, just use text: PRETTY="cat" if type pr >/dev/null 2>&1; then PRETTY="$PR_DEFAULTS" fi if [ "$DISPLAY" ]; then # find a text previewer that can return 0 for "Print" and something else # for Cancel: if [ "$GJOTS_TXTVIEWER" ]; then TXTVIEWER="$GJOTS_TXTVIEWER" else if type Xdialog >/dev/null 2>&1; then TXTVIEWER="$XDIALOG_DEFAULTS" elif type xmessage >/dev/null 2>&1; then TXTVIEWER="$XMESSAGE_DEFAULTS" fi fi if [ "$TXTVIEWER" ]; then cat $TTXT |$TXTVIEWER if [ $? = 0 ]; then $PRETTY $TTXT | $LPR fi exit 0 fi fi # if all else fails, just print the thing: $PRETTY $TTXT | $LPR # Local variables # fill-column 79 gjots2-3.1.9/bin/gjots2org000077500000000000000000000041231401630023500153440ustar00rootroot00000000000000#!/usr/bin/bash # Copyright (C) 1997-2015 Bob Hepple # # A simple script to convert a gjots file to emacs outline # # 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 usage() { echo "Usage: $PROG [filename] Converts a gjots file to emacs org-mode (on stdout). -F char: marker for headers in outline-regexp (default '*') " } PROG=$( basename $0 ) MARKER="*" ARGS=$( getopt -o F:h -n $PROG -- "$@" ) || { echo "use -h for usage" >&2 exit 1 } eval set -- "$ARGS" while true; do case $1 in -h) usage; exit 0;; -F) MARKER="$2"; shift 2;; --) shift; break;; *) echo "$PROG: internal error" >&2 ; exit 1;; esac done FILENAME="" [ -r $1 ] && FILENAME=$1 writeBody() { [[ "$FILENAME" ]] && exec < $FILENAME awk -v marker="$MARKER" ' BEGIN { level = 1 level_hdr = marker print_title = 0 } { if ($0 ~ /^\\NewEntry/) { print_title = 1 } else if ($0 ~ /^\\NewFolder/) { level++ level_hdr = level_hdr marker } else if ($0 ~ /^\\EndFolder/) { if (level > 1) { level-- level_hdr = substr(level_hdr, 1, length(level_hdr) - 1) } } else { if (print_title) { printf("%s %s\n",level_hdr, $0) print_title = 0 } else { if (substr($0,0,1) == marker) { printf("\\") } print } } }' } # main: writeBody # Local Variables: # mode: shell-script gjots2-3.1.9/bin/org2gjots000077500000000000000000000042171401630023500153500ustar00rootroot00000000000000#!/usr/bin/bash # Copyright (C) 1997-2015 Bob Hepple # # A simple script to convert a emacs outline file to gjots # # 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 usage() { echo "Usage: $PROG [filename] Converts an emacs org-mode to gjots (on stdout). -F char: marker for headers in outline-regexp (default '*') " } PROG=$( basename $0 ) MARKER="*" ARGS=$( getopt -o F:h -n $PROG -- "$@" ) || { echo "use -h for usage" >&2 exit 1 } eval set -- "$ARGS" while true; do case $1 in -h) usage; exit 0;; -F) MARKER="$2"; shift 2;; --) shift; break;; *) echo "$PROG: internal error" >&2 ; exit 1;; esac done FILENAME="" [ -r $1 ] && FILENAME=$1 [[ "$FILENAME" ]] && exec < $FILENAME awk -v marker="$MARKER" ' BEGIN { current_level = marker " " pattern = "^" marker "+ " escaped_marker = "\\" marker } { if ($0 ~ pattern) { tag = $1 " " body = substr($0, length(tag) + 1) delta = length(tag) - length(current_level) while (delta < 0) { print "\\EndFolder" delta++ } while (delta > 0) { print "\\NewFolder" delta-- } print "\\NewEntry" print body current_level = tag } else if (substr($0, 1, 2) == escaped_marker) { print substr($0, 2) } else { print $0 } } END { while (length(current_level) > 2) { current_level = substr(current_level, 2) print "\\EndFolder" } }' # Local Variables: # mode: shell-script gjots2-3.1.9/doc/000077500000000000000000000000001401630023500134735ustar00rootroot00000000000000gjots2-3.1.9/doc/gjots2.en_US.gjots000066400000000000000000001227761401630023500170020ustar00rootroot00000000000000GJOTS2 MANUAL (en_US) g j o t s 2 By Bob Hepple Brisbane Queensland Australia Version _VERSION_ bob.hepple@gmail.com http://bhepple.com//doku/doku.php?id=gjots \NewEntry Introduction gjots2 is a jotter application for your desktop. Why do we need yet another jotter program? Well, when my faithful old Psion-5 organiser died I needed to move all my bits and pieces onto Linux and I started to look around for software to fill that need. I found lots of software for diary and I already wrote a beaut calculator (gdcalc) but somehow nothing was quite right for the jotter. Other packages that I looked at were either: * much too simplistic (eg. a single level hierarchy), * too complex (too many components like Corba, SQL or suchlike) * web based * unable to display & work on the tree at the same time as the text entries * too messy - throwing windows up like 3M yellow stickers all over the screen Then there were the ones I couldn't get to work or which just plain bombed. Nonetheless, there are many fine packages around but none really suited my needs. kjots seemed at the time to be the best of the lot. Anyhow, I needed to learn how to do GTK trees and practise glade - and so gjots was born and lives still. It was originally written in C (now Python), glade and gtk, was pretty fast and is still something I use every day. Judging by the emails I've been sent it is quite useful to others too, which is nice. There was even a Japanese version created from an early cut of gjots (0.3?) but the code was never contributed back to the mainstream which is a shame. However the world doesn't stop still and GTK-2 came along and there was an increasing number of people who wanted LOTE (Languages Other Than English) including myself. I also wanted to learn about python and hence the current python version of gjots - gjots2 or "son of gjots" came into being. Being written in an interpreted language it isn't quite so fast to start up as the original gjots* but it offers heaps more features: Like Goldilocks said about the chairs, porridge and beds, gjots2 is "just right". * this was true when I wrote this in about 2004. In 2012, my i7 brings it up practically instantly. \NewEntry Installing If possible, use dnf/yum/rpm or apt - better package management than setup.py \NewFolder \NewEntry RPM-based systems fedora includes gjots2 but is often out of date - better get the latest package from the homepage VERSION=_VERSION_ wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}-1.noarch.rpm dnf install gjots2 There are builds on COPR: https://copr.fedorainfracloud.org/coprs/wef/gjots2/ \NewEntry From the tarball source VERSION=_VERSION_ wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.tgz If installing from the tarball, after unpacking the tar file and cd'ing to it do this: python setup.py install [ --prefix=/usr/... ] glib-compile-schemas $prefix/share/glib-2.0/schemas Uninstall with the uninstall.sh script provided here. On some systems, you may have permission problems with system-wide installations from source. All new directories installed should have permissions 0755, and all installed files should have permissions 0644, with the exception of 'docbook2gjots', 'gjots2', 'gjots2docbook', 'gjots2emacs', 'gjots2org' and 'gjots2html', which should have permissions 0755. \NewFolder \NewEntry Prerequisites Let yum/dnf/apt take the strain ... otherwise ... Version 3.1.0+: Install sourceview4 Install gtk3 Install python3-gobject Earlier versions: Install pygtksourceview to enable Undo/Redo For gjots2-2.x.x: (Fedora <= 20 Centos <= 6) python gnome-python2 pygtk2-libglade gnome-python2-gconf For gjots2-3.x.x: (Fedora-21+ Centos-7+) You may need to install (or re-install) libglade, pygtk, or gtk for your current version of python or possibly you can just set your PYTHONPATH eg. export PYTHONPATH=/usr/local/lib/python2.7/site-packages/ gjots2 was written with glade-3 so if you want to change or fix the code you will need to install it too. Otherwise, it's just python! \EndFolder \EndFolder \NewEntry Contributing We have two mailing lists setup for development and support of gjots: Gjots Developers : http://lists.sourceforge.net/lists/listinfo/gjots2-devel Gjots Users : http://lists.sourceforge.net/mailman/listinfo/gjots2-users Bug fixes are very welcome! If anyone wants to translate this into another language please get in touch and I will provide an internationalised version and message catalogs. I will incorporate any new features that people want to contribute provided I like them too. If you want to add something to the mainstream development please drop me a line first and I will make sure no-one else is working on that area. Please use diff -ru to create the patch, and send it as a gzipped file attachment. If I choose not to incorporate your favourite feature, feel free to fork the development but please choose a different name for the program. This is GPL code after all. Note that to protect the GPL license I will need to include your name and email address in the Authors and License section. If you want to contribute please get in touch with me at bob.hepple@gmail.com, to make sure work is not duplicated. For general ideas, please see "Planned Features". \NewEntry USER MANUAL \NewFolder \NewEntry Startup Just start it as "gjots2" - it will save anything in $HOME/.gjotsfile Or use an argument - gjots2 accepts a single file, eg: gjots2 todo.gjots These options are available: -h, --help: this help -d, --debug: debug to stdout -2, --glade2: use glade-2 gui if available -t, --trace: trace lines as they execute -g 123x456, --geometry=123x456: initial geometry (X x Y) -p, --purge-password don't remember password -r, --readonly: no editing (or locking) -V, --version: print the version and exit For supported languages other than English, you can use eg: LC_ALL=de_DE.utf8 gjots2 or (eg fedora-16+): LANGUAGE=de_DE.utf8 gjots2 To see what languages are currently supported: ls /usr/{,local/}share/locale/*/LC_MESSAGES/gjots2.mo \NewEntry Open and save Open and save do the usual and operate on gjots-format text files (see below). Unless readonly mode is in effect, gjots2 will create a lockfile to enforce single-writer but allow multiple readers. If a file is opened while it is already locked then a popup window will offer "Try Again" or "Readonly". The "Try Again" option allows you to exit the program which is locking the file. The lock file is a simple file called .#filename, where filename is the name of the gjots2 file being edited. It is in the same directory as the original gjots2 file and it contains just the process identifier (pid) of the locking process. If the locking process dies without cleaning up the lockfile then gjots2 can detect it on the next open. Thus, locking is viable even on an NFS mounted volume. Files opened "readonly" have no locking applied. There is a menu item under "Files" which allows the readonly status of the program to be toggled. It also takes care of locking and unlocking the file as above. When gjots2 saves a file it moves any prior version of the file to a backup in the manner of emacs ie. if saving to "file.gjots" which already exists, the old version would get saved to "file.gjots~" If your filename ends in ".cpt", gjots will attempt to decrypt and encrypt the file using ccrypt(1). If ccrypt is not installed (it is not a standard part of all Linux distributions) the IO will fail. Similiarly, .ssl will be opened using (DES3) openssl and .gpg will be opened with (DES3) gpg. Install ccrypt, openssl or gpg for good security! As of version 2.4.3 *.org files are supported for intercourse with emacs org-mode. \NewEntry Controls The screen has a menubar and toolbar at the top which should be fairly self-explanatory. The toolbar on the left controls the tree hierarchy. Just play around with it and you'll soon get the hang of it. "New Page" create a new sibling of the current page. "New Child" creates a new child of the current item. "Up" Moves the current selection to before the previous sibling. "Down" does the opposite of Up. "Back" makes the currently selected item(s) into children of their grandparent (or, if you prefer, siblings of their parent). "Forward" makes the current items(s) into children of the sibling immediately before them. "Split item" takes the currently selected text (in the right hand panel) and moves it into a new item. "Merge Items" merges the text of all currently selected items into one big item (separated by a newline character) "Hide All" collapses the view of the tree to just the children of the root item. "Show All" expands all the children of the currently selected items (recursively). "Sort Tree" brings up the sort dialog box where you can sort elements based on a given criteria. When a folder loses all of its child items it gets automatically demoted to a plain item. On the top toolbar, we have: "Save" is the usual thing. The 'Print' button pops up the Print dialog. See the "Printing" item one level up from here. The "Undo" and "Redo" functions only operate on the text buffer, not on the tree. They are only available if the gtksourceview library is available. "Cut", "Paste" and "Copy" have dual functionality, thus, they operate on both text and tree items based on whether the text or tree panels are selected. The "Wrap" button formats the current paragraph according to the line length set in the preferences dialog (also activated by ^L) The "Ext.Ed" button invokes an external editor according to the command string in the Preferences dialog. The default string is either 'nedit %s', 'xedit %s' or 'xterm -e vi %s' - depending on what is installed on the system - the %s is replaced by the temporary filename. Any other editor can be used as long as it can accept a filename as an argument - personally, I prefer "emacsclient %s". The "Date" button puts a date stamp into the file at the current position. You can adjust the format of the date stamp in the Preferences dialog - it uses the date format from strftime(3) - please check the manual for full details. Some popular choices: %F : (2002-11-03) ... this is the default %c : Sun 03 Nov 2002 10:33:22 AM EST (%d %b %y) : (03 Nov 02) %d/%m/%Y : 28/07/2007 The "Find" button pops up the find & replace dialog. "Sort" pops up the sort dialog. "Prefs" button will pop up the preferences dialog. \NewEntry Find & Replace ^F, Edit->Find or the Find button in the top toolbar popup the find & replace dialog. The top toolbar also holds the most recent find string and quick forward and back search buttons. There is a drop-down of recent searches to the right of this. ^G is a shortcut for 'next' and Shift-^G is for 'previous'. The operation should be intuitive - type in what you want to find into the Find & Replace dialog Find entry and press the Find button. To replace one occurance put the new text in the Replace entry box and press the Replace button. The program will search forward - press it again and it will and replace the text and search forward again. To replace all occurances (from the current position to the end of file) press the Replace All button. The Close and Cancel button both hide the find dialog - the close button saves any new settings for future use (except for the Find and Replace strings). The Clear button just clears the Find & Replace entries. Any errors appear both in the area immediately below the button and also in the main program status bar. Options appear below the Find & Replace buttons and include "Match Case" to limit the search to the same upper and lower case. "Global" is the default and allows the search to take place across the whole file. The alternative is to limit the search to the current item. "Regular Expression" permits the use of POSIX Extended Regular Expressions as defined in "man 7 regex" (ie as used in egrep). A quick reference to regular expressions (note that gjots2 uses Python's re package - see the Python docs for full details, it is rather simpler than the regex used in the C version of gjots): . any character ^ start of line (only as the first item in the RE) $ end of line (only as the last item in the RE) * zero or more repetitions of the previous RE + one or more repetitions of the previous RE ? zero or one repetitions of the previous RE {n} exactly n repetitions of the previous RE {n,} n or more repetitions of the previous RE {n,m} n to m repetitions of the previous RE [ ] matches any character in the set. Ranges are eg. [a-z] [^ ] matches any character not in the set ( ) forms a 'remembered' pattern | pattern alternation eg. x|y means "matches x or y" \n n is 1 to 9 - a backreference to a previous pattern \b start or end of a word \d a digit == [0-9] \s whitespace == [ \t\n\r\f\v] \S non-whitespace \w alphanumeric \W non-alphanumeric To match one of the 'magic' characters ^.[$()|*+?{\ escape it with \ For the replacement pattern the following sequences are available: \& paste the entire found string \1..\9 paste the nth found sub-pattern (defined with (...) ) \n insert a newline \NewEntry Printing The Print dialog lets you select "what to print": the current page, the current selection or the whole thing and a few enhancements: page feed after every gjots item and auto numbering (not actually implemented yet) The print command that ships with 2.3.7 and later is "gjots2lpr" which is a simple script to try to find useful printing tools and to use them. The default operation is to pass the text through "a2ps" and to view the result with "gv". If these programs are not installed, others are sought - see "gjots2lpr -h" for more details. Before 2.6.7 the default print comman was rather long, but it expanded to the following which is supposed to do something similar: if type gv; then GV='gv -seascape' else if type ggv; then GV=ggv; else lpr $1 exit fi fi T=/tmp/.tmp.$$ mpage -f -2 -I1 -P- $1 > $T ($GV $T; rm $T)& Some possible suggestions for the "Print command" instead of the default: To simply send the raw output directly to the printer: lpr $1 \NewEntry Preferences The following items can be selected as preferences by gconf: Text formatter - default is "fmt -w %d" Text line length - used in paragraph formating, (65) External Editor - editor to use with the Ext.Ed. button eg.: nedit %s xedit %s xterm -e vi %s emacsclient %s Date format - format string to feed to strftime(3) for use in date stamp. Do a "man strftime" for details. e.g.: %F : (2002-11-03) ... this is the default %c : Sun 03 Nov 2002 10:33:22 AM EST (%d %b %y) : (03 Nov 02) %d/%m/%Y : 28/07/2007 Font - the font to be used for the text display. The controls and tree still use the default GTK-2 fonts. \NewEntry Keyboard operation Most of the key shortcuts are the usual. In the text display, the normal GTK-2 key mappings apply (slightly different to the C/GTK-1 version of gjots): ^a Select all text home goto start of line end goto end of line left move back one place right move forward one place ^left move one word left ^right move one word right down move to next line up move to previous line ^home/end goto start/end of text delete delete one char backspace delete one char backwards ^L paragraph re-format or "wrap" Shift and mark the region. Plus the following work: ^x cut ^c copy ^v paste Key mappings in the tree: In general, plain keys just move around the tree. Control keys manipulate the tree. up goto previous item down goto next item ^up move the current item(s) up the tree ^down move the current item(s) down the tree shift-up/down extend the selection left ascend the tree right descend the tree ^left promote items ^right demote items home goto to the first item at the present level end goto to the last item at the present level ^home goto the very first item ^end goto the very last (expanded) item Global key mappings: ^s does save ^q does quit ^f Popup the find dialog ^g find next shift-^g find previous \NewEntry Import and export You can bring data in and out of gjots2 using the import and export functions. These operate on the currently selected item so you can control exactly what gets saved. The format of the file is the normal gjots2 format. \NewEntry gjots2 file format The same as gjots which is plain text but with a hierarchy introduced by some keywords: \NewEntry title1 this is the stuff that goes into title1 \NewFolder \NewEntry title2 this is title2's stuff \NewEntry title3 title 3's stuff \EndFolder The \keywords need to be at the start of the line to be recognised. \NewEntry emacs org-mode As of 2.4.3 emacs' the header/sub-heading structures of org-mode is also recognised. A file written with a .org filename extension will be saved in org-mode format: text * heading ** sub-heading more text ** sub-heading * etc etc Extended features of org-mode such as tables, links, agendas etc are not recognised by gjots2. gjots2org and org2gjots are also provided. \NewFolder \NewEntry gjots.el This major mode for emacs is in testing: ; GJOTS MODE - remaining problems: ; you must show-all before saving ; it prompts for coding. default raw-text is OK (setq format-alist (cons '(gjots "gjots" nil "gjots2org" "org2gjots" t nil) format-alist)) (define-derived-mode gjots-mode org-mode "gjots" "Major mode for editing gjots files." (format-decode-buffer 'gjots) (hide-sublevels '1)) (autoload 'gjots-mode "gjots-mode" "Major mode to edit gjots files." t) (setq auto-mode-alist (cons '("\\.gjots$" . gjots-mode) auto-mode-alist)) \EndFolder \NewEntry Encryption gjots2 can encrypt and decrypt files using the ccrypt(1), openssl(1), gpg2(1) or gpg(1) packages. If the gpg-agent is detected (ie if the GPG_AGENT_INFO variable is set) then it is used for passwords. Files are saved with encryption according to the file suffix you provide: .cpt ccrypt .ssl openssl .gpg gpg gjots2 prompts for passwords where needed. Make sure you have ccrypt, openssl, gpg2 or gpg installed if you want to use this feature. Don't lose your password - I can't help you recover lost passwords!! \NewEntry Security gjots2 has not been audited for security, so don't assume it is secure. That said, it's probably secure enough for most private use. The static, encrypted files on disc are as good as gpg/openssl/ccrypt, ie pretty good, (the default algorithm and key lengths are used in each encryption program). For encryption in ccrypt, I've used the equivalent of: {write cleartext} | KEYWORD=password ccencrypt -E KEYWORD >filename.cpt This exposes the password briefly as an environment parameter although it is 'scrubbed' and removed from the gjots2 process environment immediately after use. According to the ccrypt man page, "on most modern systems" the ps command protects environment parameters from ordinary users. Under Linux, you can 'cat /proc/PID/environ' to see the environment parameters of any process that you own - only root can spy on another's environment so using -E is no less secure than your login password and root's login password. The only other way to do this (AFAICS) would be: {write cleartext} >file.gjot echo password |ccencrypt -k - file.gjot ... while this provides better protection for the password, this (briefly) exposes the cleartext as a file - as bad as or worse than exposing the key as an environment parameter! Decrypting is much easier - I use stdin to pass in the password: echo password |ccdecrypt -c -k - filename.cpt | {read from pipe} A supplementary channel (eg. stdin=0, stdout=1 stderr=3 stdpasswd=3) for ccrypt to read passwords would be a better solution (but ccrypt does not provide it). \NewEntry URL handling If you double-click on a URL then your browser is activated and the URL is selected. Only http[s]://... URLs are recognised. The browser that gets started or activated is the first from: An already-running browser from the list below is activated. Failing that, the BROWSER environment parameter is obeyed Failing that, the gnome prefered browser is run. Failing that, then the first one from the list that can be found is run. xdg-open gnome-open firefox4 chrome firefox konqueror epiphany opera dillo \NewEntry Utilities \NewFolder \NewEntry gjots2html gjots2html converts a gjots2 file into HTML together with a table of contents which looks remarkably like the subject tree. See the man page for more details. gjots2html.py is a python version of the same utility which may be more reliable. \NewEntry gjots2docbook converts a gjots2 file into DOCBOOK XML format. See the man page for more details. \NewEntry docbook2gjots Converts DOCBOOK XML into gjots2 - see the man page for full details See the man page for more details. \NewEntry gjots2emacs gjots2emacs converts a gjotsfile to a format more or less suitable for emacs' outline mode. Usage: gjots2emacs [filename] Converts a gjots file to emacs outline mode (on stdout). The emacs outline-regexp is defaulted to ===>+ -b base: base string for outline-regexp (default '===') -F char: marker for headers in outline-regexp (default '>') \NewEntry gjots2org, org2gjots gjots2org converts a gjotsfile to and from a format more or less suitable for emacs' org mode. Usage: gjots2org [filename] Converts a gjots file to emacs org mode (on stdout). -F char: marker for headers in outline-regexp (default '*') \EndFolder \EndFolder \NewEntry Development status If you have ideas on how to improve gjots2, please email to bob.hepple@gmail.com \NewFolder \NewEntry Planned features What gets added will be limited to the design goal of "fast and lightweight", but might include: Localisation ============ As of version 2.3.0, gjots2 is internationalized and ready for translations. If you would like to see your language supported, please contact the mailing list on bob.hepple@gmail.com Check the webpage for localisations already complete. gjots2 ====== Add timestamp to every item & display in appbar when selected autosort on/off for folders Edit->Clear, Properties, Settings->preferences autosave Support for item options: \Options including: open/closed para details ...? gjots2html ========== gjots2html is undergoing some possible changes. There is a new script marked as beta written in Python, and supports the following features: 1) Add
lines after each section. 2) Adds a link to the Table of Contents after each section. 3) Specify a title to the page. 4) Embed the output of gjots2html.py into a pre-existing HTML template file. 5) Suppress the table of contents section. 6) Output the HTML to a specified file. 7) Add a link to a specified Cascading Style Sheet. 8) Wrap the gjots2 text at a specified width. It also supports an arbitrary number of levels in the hierarchy, even though HTML only supports 9. Add options: -r N, --rule=N:
for all levels up to N \NewEntry Known bugs None known, of course, other than: Inappropriate error messages if can't open a gjots2 file on initial startup. The sort dialog can't set itself to the values stored in gconf. \NewEntry Platforms Tested on the following platforms: Fedora-31 Older version were tested on: Gentoo Linux i386 Mandrake 10.1 Fedora Core 3, 4 Novell Linux Desktop 9 SUSE 9.2, 9.3 Ubuntu Feisty Some of these platforms may require updated packages. Refer to our FAQ for a discussion of these issues. \EndFolder \NewEntry Gjots FAQ Frequently Asked Questions regarding gjots2. If you ever have any questions that aren't answered here, please contact the gjots2 users list . \NewFolder \NewEntry Q: The icons in the left toolbar look squashed. A: You are using a buggy version of libglade2. Upgrade libglade to a version >= 2.4.1. We recommed you update this package through your distribution package manager. \NewEntry Q: I receive the error ImportError: No module named distutils.core when building gjots2 from source. A: Your distribution has effectively *broken* the python installation by not including the distutils modules, which are part of the python core package. Install python correctly to fix this issue. This is known to happen in: Ubuntu (5.10), NLD9, SUSE 9.2. Ubuntu 5.10 fix: # apt-get install pythonX.X-dev \NewEntry Q: I receive the error ImportError: No module named gconf A: Install gnome-python-2. This package will contain the Python bindings for gconf and is located here: http://www.pygtk.org/ You should be able to find pre-built packages for these such as the following. Mandrake 10.1: # rpm -ivh gnome-python-gconf-2.0.3-1mdk.i586.rpm Fedora Core 3: # rpm -ivh gnome-python2-gconf-2.6.0-3.i386.rpm \NewEntry Q: How do you get gjots2 to run under Novell Linux Desktop? A: You will have to install gnome-python (and its dependencies). \NewEntry Q: What's the difference between the old C version (gjots-0.X) and the new python version gjots-2.X.X A: At the 2.0.0 release, these were the differences (for development since then see the CHANGES logs): Unicode support in the data files - so I can make notes in Russian - maybe Turkish, Arabic, who knows what will work. Reports solicited and most welcome! The potential for LOTE support in the program itself - any volunteers for I18N and L10N? Drag and Drop in the tree view to simplify organisation. gconf support with GTK-2 themes. Sorting items and/or text Merging items Spliting items Printing \NewEntry Q: Why do the Undo and Redo functions not work? A: Have you got the gtksourceview libraries installed? \EndFolder \NewEntry Authors & Licence \NewFolder \NewEntry Authors Written by: Bob Hepple Assistance from: Gabriel Munoz Jiahua Huang Logo by: DSP Popeck , 2002 French translation by: Rui Nibau Norwegian translation by: Robert Emil Berge Russian tranlsation by: Sergey Bezdenezhnyh Italian tranlation by: Raimondo Giammanco Czech translation by: Martin Sin Spanish translation by: Cecilio Salmeron Slovenian translation by: Aleksa Šušulić German translation by: Uwe Steinmann \NewEntry Licence (GPL) Copyright (C) 2007 Robert Hepple Copyright (C) 2002 DSP Popeck GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS \EndFolder gjots2-3.1.9/doc/gjots2.es.gjots000066400000000000000000001266421401630023500163740ustar00rootroot00000000000000MANUAL DE GJOTS2 g j o t s 2 Bob Hepple Brisbane Queensland Australia Versión 3.1.9 bhepple@freeshell.org http://bhepple.freeshell.org/gjots \NewEntry Introducción gjots2 es un programa para guardar y ordenar notas. ¿Para qué se necesita otro programa de gestión de notas? Bueno, cuando mi queriod organizador Psion-5 dejó de funcionar tuve que llevar mis notas a Linux y comencé a buscar software para gestionarlas. Encontré varios programas para llevar diarios y escribí uno para realizar cálculos (gdcalc) pero no encontré nada para gestionar un block de notas. Los paquetes que encontré eran: * demasiado simples (ej. sólo un nivel de notas), * demasiado complejos (demasiados componentes tales como Corba, SQL o similares) * basados en web * no permitían trabajar sobre el índice a la vez que sobre la jerarquía de notas * muy engorrosos - mostrando ventanas por todas partes, similares a las notas amarillas de quita y pon de 3M. Habia algunos que no logré hacer funcionar y otros que directamente no funcionaban. Sin embargo, aunque encontré algunos buenos programas, ninguno encajaba en mis necesidades. De entre ellos, kjots era el que más se parecía a lo que necesitaba. De todas formas, por aquella época quería aprender a hacer árboles en GTK y practicar glade - y nació gjots y todavía sobrevive. Fue escrito, originalmente, en C (ahora está en Python), glade y gtk, era muy rápido y es una aplicación que todavía uso diariamente. Juzgando por los emails que recibo creo que también es útil para muchas otras personas, lo que es agradable. Hubo incluso una versión en Japonés creada de un fork de gjots (0.3?) pero nunca enviaron el código para integrarlo con el código base, lo que es una pena. Sin embargo, el mundo no se detuvo, apareció GTK-2 y hubo un número importante de personas que querían LOTE (Languages Other Than English - Idiomas distintos del Inglés) incluyéndome a mi. También quería aprender python y de ahí que la actual versión de gjots - gjots2 o "hijo de gjots" - viniera al mundo. Al estar escrita en un lenguaje interpretado no es tán rápida al arrancar como la anterior versión; sin embrago ofrece muchas más funcionalidades. Como dijo Goldilocks sobre las sillas, las camas y las gachas, gjots2 es "justo lo necesario". \NewEntry Instalación Si puede, utilce RPM o emerge (Gentoo) - permiten una desinstalación sencilla y una mejor gestión de paquetes que setup.py \NewFolder \NewEntry Sistemas basados en RPM Simplemente haga lo siguiente: VERSION=3.1.9 wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}-1.noarch.rpm yum install gjots2-${VERSION}-1.noarch.rpm \NewEntry Prerequisitos Deje que rpm se encargue de todo ... alternativamente ... Necesitará instalar (o re-instalar) libglade, pygtk, gnome-python, o gtk para su versión actual de python o posiblemente valga con dar valor a la variable de entorno PYTHONPATH eg. export PYTHONPATH=/usr/local/lib/python2.6/site-packages/ En el momento de escribir este texto (gjots-2.3.11), tengo lo siguiente instalado (on Fedora-13): glade3-libgladeui gnome-python2 gnome-python2-gconf gtk2 gtksourceview libglade2 libgnome libgnomecanvas libgnomeui pygtk2 pygtk2-libglade pygtksourceview Asegúrsese de que los paquetes de python están instalados en el directorio site-packages de la versión de python que se esté usando (ejecute "python -V" para averiguar la versión en uso): /usr/lib/pythonX.X/site-packages Si los paquetes no están ahí posiblemente los tendrá que reinstalar - por ejemplo, a mí me sucedió que al actualizar python desde la 2.2 a la 2.3, el directorio /usr/lib/python2.X/site-packages directory no se actualizó automáticamente. Entonces tve que hacer (en gentoo) lo siguiente: emerge unmerge libglade pygtk gnome-python bonobo-python pyorbit emerge libglade pygtk gnome-python bonobo-python pyorbit gjots2 está escrito con glade-3 así que si quiere modificar a arreglar algo en el código necesitará instalar también glade-3. En caso contrario es suficiente con tener python! \NewEntry Gentoo Nota: la versión 2.6.8 y las anteriores fueron probadas en gentoo. La 2.6.9 y todas las siguientes no. Hasta que gjots2 tenga un ebuild oficial (busque en /usr/portage/app-office) tendrá que hacer lo siguiente: Los paquetes necesarios en gentoo son (en orden de dependencia - puede resultar menos problemático si se instalan siguieno la lista de derececha a izquierda, dejando que el sistema de gestión de dependencias de Gentoo se encargue de los módulos listados a la izquierda - pero yo nunca lo he probado): >=gtk+-2 >=libglade-2 >=pygtk-2 gnome-python-2 >=pyorbit-2 Asegúrese de que en su archivo /etc/make.conf haya una línea como la siguiente: PORTDIR_OVERLAY=/usr/local/portage También se precisa incluir la siguiente línea en /etc/portage/packages.keywords: app-office/gjots2 ~x86 Realizado esto, hacer: VERSION=3.1.9 CAT=/usr/local/portage/app-office/gjots2 cd /usr/portage/distfiles wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.tgz mkdir -p ${CAT} cd ${CAT} wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.ebuild ebuild ${CAT}/gjots2-${VERSION}.ebuild digest emerge gjots2 \NewEntry Desde fuente en un tarball VERSION=3.1.9 wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.tgz Si se instala desde un tarball, despues de extraer el contenido del archivo tar y de hacer cd en el contenido, hay que hacer lo siguiente: python setup.py install [ --prefix=/usr/... ] Pra desinstalar usar el script uninstall.sh que viene en el tar. En algunos sistemas pueden producirse problemas de permisos en la instalación system-wide desde fuentes. Todos los nuevos directorios instalados deberían tener permisos 0775, y todos los archivos 0644, con excepción de 'docbook2gjots', 'gjots2', 'gjots2docbook', 'gjots2emacs' y 'gjots2html', que deberán tener permisos 0755. \EndFolder \NewEntry Contribuir Hay una lista de correo para desarrollo y soporte de gjots: Gjots Developers : http://lists.sourceforge.net/lists/listinfo/gjots2-devel Gjots Users : http://lists.sourceforge.net/mailman/listinfo/gjots2-users ¡Correcciones e informes de errores son bienvenidos! Si alguien quiere traducir esto a otro idioma por favor, que contacte conmigo y le proporcionaré una versión internacionalizada y el catálogo de mensajes. Incorporaré todas aquellas funcionalidades que me envíen como contribuciones, siempre que me parezcan adecuadas. Si va a trabajar en añadir algo a la rama principal de desarrollo, por favor, envíeme un email y me aseguraré de que nadie más esté ya trabajando en ello. Por favor use diff -ru para crear el 'patch', y adjúntelo como un archivo gzip. Si decido no incorporar su funcionalidad favorita, es usted libre de crear un 'fork' del programa pero, por favor, utilice un nombre distinto para su programa. Después de todo, este programa es GPL. Para cumplir con la licencia GPL necesitaré incluir su nombre y su dirección de email en las secciones de Autores y Licencia. Si quiere contribuir, escríbame a bhepple@freeshell.org, para asegurar que el trabajo no se duplica. Para ideas generales, por favor, mire la sección "Funcionalidades previstas". \NewEntry MANUAL DE USUARIO \NewFolder \NewEntry Comenzar Ejecute el programa tecleando "gjots2" - guardará todas stus notas en $HOME/.gjotsfile O utilice un parámetro - gjots2 accepta el nombre de un archivo, ej: gjots2 todo.gjots Estas opciones está disponibles: -h, --help: esta ayuda -d, --debug: envía info. de depurar a stdout -t, --trace: rastrea lineas a medida que las ejecuta -g 123x456, --geometry=123x456: tamaño inicial de ventana (X x Y) -p, --purge-password borrar contraseña tan pronto como se use -r, --readonly: no editar (ni bloquear) -V, --version: imprimir la versión y salir \NewEntry Abrir y guardar Abrir y guardar hacen lo esperado y operan sobre un archivo gjots en texto plano (ver 'Formato de loa archivos gjots2'). A menos que el indicador 'sólo lectura' esté activado, gjots2 crea un archivo de bloqueo (lockfile) para forzar a que sólo pueda modificarse por un usuario pero pueda ser leido concurrentemente por muchos. Si se intenta abrir un archivo que ya está abierto por otro usuario, aparece una ventana emergente con un mensaje y las opciones "Inténtelo de nuevo" ("Try Again") o "Sólo lectura" ("Readonly"). La opción "Inténtelo de nuevo" permite dar tiempo a que el usuario que tiene bloqueado el archivo lo libere. El archivo de bloqueo (lock file) es un archivo con el nombre .#filename, donde 'filename' es el mismo nombre que el archivo gjots2 que quiere editarse. El archivo de bloqueo está en el mismo directorio que el archivo gjots2 que se edita y contiene sólo el identificador del proceso (pid) que tiene bloqueado el archivo. Si ese proceso se cancela sin eliminar este archivo de bloqueo gjots2 lo detectará en el siguiente arranque. Por ello, el bloqueo es posible incluso en volúmenes NTFS. A los archivos abiertos como "sólo lectura" no se les aplica ningún bloqueo (lock). Hay un item en el menú "Archivos" que permite cambiar el indicador de 'sólo lectura'. También afecta al bloqueo y desbloqueo del archivo, como se ha comentado antes. Cuando gjots2 guarda un archivo, salva un backup de la versión anterior, siguiendo el mismo esquema que emacs; por ejemplo, si se está guardando el archivo "file.gjots" que ya existe, la versión anterior se salva como "file.gjots~" Si el archivo termina en ".cpt", gjots tratará de cifrarlo y descifrarlo usando ccrypt(1). Si ccrypt no está instalado (no es estandar en todas las distribuciones Linux) la operación de abrir/cerra el archivo fallará. Igualmente, los archivos con extensión .ssl wserán abiertos con (DES3) openssl y los .gpg con (DES3) gpg. Instale ccrypt, openssl o gpg para disponer de más seguridad. \NewEntry Menús e iconos La ventana principal tiene una barra de menú y otra de herramientas, que deberían ser auto-explicativas. La barra de herramientas (a la izquierda) contiene iconos para organizar la jerarquía de notas. Juega un poco con esos iconos y enseguida te darás cuenta de lo que hacen. Son los siguientes: "Nueva página" crea un nuevo hijo colgando de la página actual. "Nuevo hijo" crea un nuevo hijo colgando del item actual. "Arriba" Mueve la selección delante de la anterior de su mismo nivel. "Abajo" hace lo contrario que Arriba. "Atras" transforma el/los elemento(s) seleccionado(s) en hijos de sus abuelos (o, si lo prefiere, los hermanos de su padre). "Adelante" transforma los elementos seleccionads en hijos de los hermanos inmediatamente anteriores. "Dividir item" corta el texto seleccionado (en el panel de la derecha) y crea un nuevo elemento con ese texto. "Mezclar" fusiona el texto de todos los elementos seleccionados, creando un solo texto con ellos (separadas por un carácter de nueva línea). "Ocultar todo" colapsa la vista del árbol dejando visibles sólo los hijos del elemento raíz. "Mostrar todos" expande todos los niños del elemento seleccionado (recursivamente). "Ordenar árbol" muestra el cuadro de diálogo donde se puedn especificar las opciones para ordenar los elementos. Cuando una carpeta pierde todos los hijos se transforma automáticamente en un tema sencillo. En la barra de herramientas superior están los siguientes iconos: "Guardar" es lo habitual. "Imprimir" muestra el cuadro de diálogo Imprimir. Vea la sección "Imprimir". "Deshacer" y "Rehacer" son funciones que sólo operan en el búfer de texto, no en el árbol. Sólo están disponibles si la biblioteca gtksourceview está instalada. "Cortar", "Pegar" y "copiar" tienen una doble función, ya que operan tanto en los elementos de texto y como en el árbol. En cada caso actáun sobre la parte seleccionada, el panel de texto o el panel de árbol. El botón de formato divide elpárrafo actual en líneas, conforme a la longitud de línea que se haya establecido en el diálogo de preferencias (también se activa con ^L) El botón "Ext.Ed" invoca un editor externo. Para ello se ejecuta la orden que se haya introducido en el diálogo Preferencias. La orden predeterminada es '%s nedit', 's xedit% "o" xterm-e vi %s "- en función de lo que se haya instalado en el sistema - %s se sustituye por el nombre de archivo temporal. Cualquier otro editor se puede utilizar siempre y cuando puede aceptar un nombre de archivo como argumento - personalmente, prefiero "Emacsclient %s". El botón "Fecha" pone la fecha en el archivo, en la posición actual del cursor. El formato de la fecha puede definirse en el diálogo Preferencias - se usa el formato de fecha de strftime (3) - por favor, consulte el manual de strftime para más detalles. Algunas opciones comunes: % F: (11/03/2002) ... este es el valor predeterminado % C: Jue 03 de noviembre 2002 10:33:22 CEST (% D% b% Y): (03 02 de noviembre) m% d /% /% Y: 28/07/2007 "Buscar" muestra el cuadro de diálogo Buscar y reemplazar. "Ordenar" muestra el cuadro de diálogo de ordenación. "Preferencias" abre el diálogo de preferencias. \NewEntry Buscar y reemplazar ^B, Editar->Buscar o el botón Bucar en la barra superior de herramientas, muestran el diálogo de buscar y reemplazar. La operativa debería ser intuitiva - teclee el texto a buscar y pulse uno de los botones de búsqueda. Para reemplazar una ocurrencia del texto, introduzca el nuevo texto en el cuadro de 'reemplazar por' y pulse el botón Reemplazar. El programa buscará hacia adelante, desde la posición del cursor. Púlselo de nuevo y segurá buscando la siguiente ocurrencia. Para reemplazar todas las ocurrencias (desde la posición actual en el archivo) pulse el botón Reeemplazar todo. Los botones de Cerrar y Cancelar cierran el diálogo de buscar y reemplazar- El de Cerrar guarda, además, todas las opciones seleccionadas salvo los textos de búsqueda y de reemplazo. El botón Limpiar borra el contenido de los campos de buscar y reemplazar. Cualquier error que ocurra se muestra en el área inmediatamente dejajo del botón y también en la barra de estado del programa. A continuación, una guía rápida de los elementos para construir expresiones regulares de búsqueda. Nota: gjots2 usa el paquete 're' de Python. Vea la documentación de Python para detalles (las expresiones regulares son más sencillas que las de la versión regex de las versiones C de gjots): . cualquier carácter ^ comienzo de línea (sólo válido como primer carácter de una expresión RE) $ Fin de línea (sólo válido como último caractere de una expresión RE) * cero o más ocurrencias del caracter RE previo + una o más ocurrencias ? cero o una ocurrencia {n} exactamente, n ocurrencias {n,} n o más ocurrencias {n,m} entre n y m ocurrencias [ ] empareja cualquier carater del conjunto delimitado. Por ejemplo [a-z] [^ ] empareja cualquier carater que no esté en el conjunto delimitado. ( ) forma un patrón a 'recordar' | alternativas en un patrón. Ej.: x|y indica "empareja con x o con y" \n n es un dígito 1 a 9 - es una refernecia a un patrón previo \b comienzo o fin de palabra \d un digit0 == [0-9] \s un caracter en blanco == [ \t\n\r\f\v] \S un caracter distinto de los considerados caracteres en blanco \w alfnumérico \W no alfanumérico Para emparejar uno de los caracteres usados como marcadores ^.[$()|*+?{\ hay que precederlos con \ Para definir los patrones de reemplazo: \& pegar todo el texto encontrado \1..\9 pegar el patrón enésimo (definido con (...) ) \n insertar un caracter de nueva línea \NewEntry Imprimir El diálogo de imprimir permite seleccionar qué imprimir:: la página actual, la selección actual, o el tema entero Y permite algunas opciones: Incluir un salto de página tras cada item, y auto-numeración (todavía no está implementado) La orden de imprimir está implementadoa, en la versión 2.3.7 y siguientes, con "gjots2lpr. La idea es buscar herramientas existentes y usarlas. La operativa por defecto es paser el texto a imprimir mediante "a2ps" y ver el resultado con "gv". Si estos programas no están instalados, hay otros - vea "gjots2lpr -h" para más detalles. Antes de la 2.6.7 la orden de imprimir era bsatnate larga, pero se xepandía en el siguiente código: if type gv; then GV='gv -seascape' else if type ggv; then GV=ggv; else lpr $1 exit fi fi T=/tmp/.tmp.$$ mpage -f -2 -I1 -P- $1 > $T ($GV $T; rm $T)& Algunas sugerencias para la orden "Imprimir" en vez de lo que viene por defecto: Para enviar una copia, tal cual, directamente a la impresora: directly to the printer: lpr $1 \NewEntry Preferencias gjots puede personalizarse eligiendo las siguientes opciones: Formateador de texto - por defecto se usa "fmt -w %d" Tamaño de línea - se usa para formatear párrafos. Por defecto 65 Editor externo - editor a utilizar cuando se pulsa el botón "Ed.Ext." Ejemplos de valores para esta opción: nedit %s xedit %s xterm -e vi %s emacsclient %s Formato de fecha - formato de fecha a utilizar con strftime(3) para la función "Fecha". Consulte "man strftime" para información sobre posibles formatos. Ejemplos: %F : (2002-11-03) ... este es el valor por defecto %c : Sun 03 Nov 2002 10:33:22 AM EST (%d %b %y) : (03 Nov 02) %d/%m/%Y : 28/07/2007 Fuente - El cuerpo de letra a utilizar en el texto. Los controles y el arbol con el índice siempre usan los valores por defecto de GTK-2. \NewEntry Ordenes con el teclado La mayoría de los atajos con teclas son los habituales. En la ventana de texto se usan los habituales en GTK-2 (ligeramente diferentes de las versiones C/GTK-1 de gjots): ^a Seleccionar todo el texto Inicio ir a inicio de línea Fin ir a fin de línea izquierda retroceder un carácter derecha avanzar un carácter ^izquierda retroceder una palabra ^derecha avanzar una palabra abajo avanzar a la siguiente línea up retroceder a la línea anterior ^Inicio/Fin Ir a inicio/final del texto Supr borrar el carácter actual backspace borra el caracter anterior ^L reformatera el párrafo ("wrap") Mayúsculas + marcan el texto para seleccionarlo. Además, se pueden usar las siguientes: ^x cortar ^c copiar ^v pegar En la ventana de árbol están definidas las siguientes teclas: En general la pulsación de una tecla sirve para moverse por el árbol. Y las teclas de control permiten manipular el árbol: arriba ir al item previo abajo ir al siguiente item ^arriba mover el item(s) actual hacia arriba ^abajo mover el item(s) actual hacia abajo mayúsculas+arriba/abajo amplian la selección izquierda ascender por el árbol derecha descender por el árbol ^izquierda promocionar (disminuir nivel) items ^derecha aumentar nivel de los items Inicio ir al primer item del nivel actual Fin ir al último item del nivel actual ^Inicio ir al primer item del árbol ^Fin ir al último item del árbol Atajos globales: ^s guardar el archivo ^q salir del programa ^f mostrar el diálogo de 'buscar y reemplazar' \NewEntry Importar y exportar Puede traer textos desde otros sitios o llevarlos a otros programas mediante las órdenes Importar y Exportar. Operan sobre el item o items que estén seleccionados, de forma que usted pueda controlar con precisión qué es lo que se exporta. El formato del archivo creado es el mismo que el que usa gjots2 para sus archivos. \NewEntry Formato de los archivos gjots2 El mismo que el que usaba gjots: texto plano con marcadores que definen la jerarquía de notas: \NewEntry título1 esto es el texto que va bajo la entrada 'título1' \NewFolder \NewEntry título2 y este el que va bajo 'título2' \NewEntry título3 texto para 'título3' \EndFolder Los \marcadores necesitan estar al comienzo de las líneas para ser reconocidos. \NewEntry Cifrado gjots2 puede cifrar y descifrar archivos usando los paquetes ccrypt(1), openssl(1) o gpg(1). Los archivos se criptografían con uno de ellos en función de la extensión que se ponga al archivo: .cpt ccrypt .ssl openssl .gpg gpg gjots2 pregunta por la contraseña cuando se necesita. Si quiere hacer uso de esta funcionalidad asegúrese que tiene instalado en su equipo ccrypt, openssl o gpg. No pierda la contraseña - No puedo hacer nada para ayudarle a recuperarla si la pierde. \NewEntry Seguridad Para cifrar con ccrypt, se usa el equivalente a: {write cleartext} | KEYWORD=password ccencrypt -E KEYWORD >filename.cpt Ello da lugar a que la contraseña quede comprometida durante unos instantes ya que se guarda en una variable de entorno, aunque es destruida y eliminada inmediatamente tras su uso. Según la página man ccrypt, "en la mayoría de los sistemas modernos" la orden 'ps' protege los parámetros de entorno de ser accedidos por usuarios con permisos normales. Bajo Linux, se puede hacer 'cat /proc/PID/environ' para ver los valores de entorno usados por cualquier proceso del que se sea propietario. Pero sólo el usuario root puede espiar los valores de otros usuarios. Por ello, usar -E no es menos seguro que su contraseña de login o la de root. La única forma alternativa de hacer esto (AFAICS) sería: {write cleartext} >file.gjot echo password |ccencrypt -k - file.gjot ... aunque esto mejora la protección de la contraseña, expone el texto claro (brevemente) en un archivo - es por tanto tan malo o tan bueno como exponer la contraseña en una variable de entorno. El descifrado es mucho más sencillo - gjots2 utiliza stdin para pasar la contraseña: echo password |ccdecrypt -c -k - filename.cpt | {read from pipe} Un canal adicional (eg. stdin=0, stdout=1 stderr=3 stdpasswd=3) para que ccrypt lea las contraseñas sería una solución mucho mejor (pero ccrypt no lo proporciona). \NewEntry URLs en el texto Si haces doble clic en una URL, gjots abrirá en tu navegador web esa URL. Sólo las URLs de la forma 'http[s]://...' son reconocidas por gjots2. La variable de entorno BROWSER se usa para elegir el navegador con el que acceder a internet. Si esta variable no está creada/inicializada se usará el navegador que esté arrancado, probando con los de la siguiente lista: firefox konqueror epiphany opera dillo Si ninguno de ellos estuviera arrancado, gjots usara'el primero de ellos que encuentre y pueda arrancar. \NewEntry Utilidades \NewFolder \NewEntry gjots2html gjots2html convierte un archivo gjots2 a HTML e incluye un índice con el mismo aspecto visual que el arbol de items. Vea la página man para más detalles. gjots2html.py es una versión python de esta misma utilidad que, posiblemente, sea más fiable. \NewEntry gjots2docbook convierte un archivo gjots2 a otro en formato DOCBOOK XML. Vea la página man para más detalles. \NewEntry docbook2gjots convierte un archivo DOCBOOK XML a otro en formato gjots2. Vea la página man para más detalles. \NewEntry gjots2emacs gjots2emacs convierte un archivo gjots a un formato más o menos utilizable para emacs (en modo 'outline'). Uso: gjots2emacs [filename] convierte un archivo gjots a emacs en modo 'outline' (en stdout). Como expresión regex de emacs por defecto se usa ===>+ -b base: el texto base para la expresión outline-regexp (por defecto '===') -F char: marcador para las cabeceras de la expresión outline-regexp (por defecto '>') \EndFolder \EndFolder \NewEntry Estado de desarrollo Cualquier idea para mejorar gjots2 es bienvenida. Por favor, escíbame a bhepple@freeshell.org \NewFolder \NewEntry Funcionalidades previstas What gets added will be limited to the design goal of "fast and lightweight", but might include: Localisation ============ As of version 2.3.0, gjots2 is internationalized and ready for translations. If you would like to see your language supported, please contact the mailing list on bhepple@freeshell.org Check the webpage for localisations already complete. gjots2 ====== Add timestamp to every item & display in appbar when selected autosort on/off for folders Edit->Clear, Properties, Settings->preferences autosave Support for item options: \Options including: open/closed para details ...? gjots2html ========== gjots2html is undergoing some possible changes. There is a new script marked as beta written in Python, and supports the following features: 1) Add
lines after each section. 2) Adds a link to the Table of Contents after each section. 3) Specify a title to the page. 4) Embed the output of gjots2html.py into a pre-existing HTML template file. 5) Suppress the table of contents section. 6) Output the HTML to a specified file. 7) Add a link to a specified Cascading Style Sheet. 8) Wrap the gjots2 text at a specified width. It also supports an arbitrary number of levels in the hierarchy, even though HTML only supports 9. Add options: -r N, --rule=N:
for all levels up to N \NewEntry Problemas conocidos Ninguno conocido salvo: Mensajes de error extraños si no se puede abrir gjots2 al arrancar. El diálogo 'ordenar' (sort) no se inicializa con los valores guardados en gconf. \NewEntry Platforms Tested on the following platforms: Fedora-13 Older version were tested on: Gentoo Linux i386 Mandrake 10.1 Fedora Core 3, 4 Novell Linux Desktop 9 SUSE 9.2, 9.3 Ubuntu Feisty Some of these platforms may require updated packages. Refer to our FAQ for a discussion of these issues. \EndFolder \NewEntry Preguntas frecuentes (FAQ) Preguntas frecuentes relativas a gjots2. Si tiene alguna pregunta que no etś respondida en esta sección, por favor, contacte con la lista . \NewFolder \NewEntry P: Los iconos de la barra de la izquierda parecen deformados. R: Su equipo usa una versión defectuosa de libglade2. Actualice libglade a 2.4.1 o superior. Mi recomendación es actualizar ese paquete mediante el gestor de paquetes de su distribución Linux. \NewEntry P: Se procude el error "ImportError: No module named distutils.core" cuando trato de montar gjots2 desde fuentes. R: Su distribución Linux tiene 'rota' la instalación de python ya que faltan algunos módulos de distutils que son parte del núcleo de python. Instale python correctamente para solucionar este problema. Este es un problema conocido en: Ubuntu (5.10), NLD9, SUSE 9.2. Para arrglarlo en Ubuntu 5.10 : # apt-get install pythonX.X-dev \NewEntry P: Recibo el error "ImportError: No module named gconf" R: Instale gnome-python-2. Este paquete contiene los enlaces necesarios para gconf y puede encontrarlo aquí: http://www.pygtk.org/ Debería buscar un paquete pre-construido, tal como uno de los siguientes: Mandrake 10.1: # rpm -ivh gnome-python-gconf-2.0.3-1mdk.i586.rpm Fedora Core 3: # rpm -ivh gnome-python2-gconf-2.6.0-3.i386.rpm \NewEntry P: ¿Cómo hago para usar gjots2 en Novell Linux Desktop? R: Tendrá que instalar gnome-python (y sus dependencias). \NewEntry P: ¿Cuál es la diferencia entre la antigua versión C (gjots-0.X) y la nueva versión python gjots-2.X.X ? R: Para la versión 2.0.0 las diferencias eran las siguientes (para cambios posteriores, consulte el archivo CHANGES): - Soporte Unicode en los archivos - de forma que pudieran incluirse textos en Ruso - y posiblemente en Turco, Arabe, ... ¡quién sabe si funciona! Si pueden informarme al respecto, lo agradecería. - La potencialidad de incluir soporte para LOTE - ¿algún voluntario para I18N y L10N? - 'Arrastrar y soltar' en el árbol, para facilitar su reorganización. - soporte para gconf con temas de GTK-2. - Ordenación de items y textos. - Mezcla de items - División de items - Imprimir \NewEntry P: ¿Por qué 'Deshacer' y 'Rehacer' no funcionan? R: ¿Están instaladas las librerías gtksourceview ? \EndFolder \NewEntry Autores y licencia \NewFolder \NewEntry Autores Programado por: Bob Hepple Ayuda de: Gabriel Munoz Jiahua Huang Logotipo de: DSP Popeck , 2002 Traducción al Francés: Rui Nibau Traducción al Noruego: Robert Emil Berge Traducción al Ruso: Sergey Bezdenezhnyh Traducción al Italiano: Raimondo Giammanco Traducción al Checo: Martin Sin Traducción al Español: Cecilio Salmerón \NewEntry Licencia (GPL) Copyright (C) 2007 Robert Hepple Copyright (C) 2002 DSP Popeck GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS \EndFolder gjots2-3.1.9/doc/gjots2.fr.gjots000066400000000000000000001261601401630023500163670ustar00rootroot00000000000000MANUEL GJOTS2 g j o t s 2 Par Bob Hepple Brisbane Queensland Australie Version _VERSION bhepple@freeshell.org http://bhepple.freeshell.org/gjots Traduction : Rui Nibau (RNB) rui.nibau@omacronides.com \NewEntry Introduction gjots2 est un éditeur de notes pour le bureau Gnome. Pourquoi aurions-nous besoin d'un autre programme de prise de notes ? Et bien, lorsque mon cher et vieux organiseur Psion-5 a rendu l'âme, j'ai dû transférer toutes mes données sous Linux et j'ai commencé à rechercher des logiciels répondant à mes besoins. J'en ai trouvé plusieurs agenda et j'ai même écrit une calculatricer (gdcalc), mais rien de vraiment adapté à la prise de notes. Les programmes que j'ai essayé étaient : * trop simples (un seul niveau de hiérarchisation), * trop complexes (trop de composants comme Cobra, SQL ou équivalents) * basé sur une interface web * incapables d'afficher l'arborescence et de travailler en même temps sur les notes * trop fouilli - créant une multitude de fenêtres type post-it sur tout l'écran Et puis il y avait ceux que je n'arraivais pas à faire fonctionner. Au final, il y avait de nombreux et d'excellents programmes, mais aucun qui répondait totalement à mes besoins. Kjots semblait être à ce moment là le meilleur de la catégorie. J'avais de toute façon besoin d'apprendre à créer des arborescences GTK et à utiliser Glade - et Gjots est donc né, et poursuit son chemin depuis. Il a d'abord été écrit en C (maintenant en Python), glade et gtk, était assez rapide et je l'utilise tous les jours. A en juger par les e-mails que j'ai reçu, il est aussi utile à beaucoup d'autres, ce qui est très bien. Il y a même eu une version japonaise du premier gjots (0.3?) mais le code n'a jamais été intégré à la branche principale de développement, ce qui est fort dommage. Quoi qu'il en soit, le monde ne s'est pas arrêté et GTK-2 est apparu et de nombreuses personnes voulaient des LOTE (Languages Other Than English, ou Langues autre que l'anglais), y compris moi-même. Je voulais aussi apprendre la programmation python et l'actuelle version de gjots - gjots2 ou "le fils de gjots" a vu le jour. Une version écrite en language interprété fût plus compliquée à mettre en route que le gjots original, mais cela permet d'avoir de plus grandes fonctionnalités : Like Goldilocks said about the chairs, porridge and beds, gjots2 is "just right". (Là, si quelqu'un comprend cette citation, qu'il me fasse signe. NdT) \NewEntry Installation Utilisez de préférences les paquetages rpm ou emerge (Gentoo) plutôt que setup.py. Ils permettent une meilleur gestion des dépendances et de la désinstallation. \NewFolder \NewEntry Prerequis Vous pourriez avoir besoin d'installer (ou de ré-installer) libglade, pygtk, gnome-python, bonobo-python, pyorbit ou gtk pour votre version de python ou plus simplement d'ajuster le chemin de Python comme ci-dessous : export PYTHONPATH=/usr/local/lib/python2.3/site-packages/ A l'heure où j'écris ses lignes, ma configuration est la suivante (sur une Gentoo) : x11-libs/gtk+-2.6.10-r1 gnome-base/libglade-2.5.1 dev-python/pygtk-2.6.2 dev-python/gnome-python-2.10.0 (pulls in pyorbit) dev-python/pyorbit-2.0.1 Les distributions à base de rpm (RedHat, Mandrake/Mandriva, SuSE) ont certainement des paquetages similaires (m'avertir si ce n'est pas le cas). Apparemement, Fedora nécessite en plus gnome-python2-gconf. Assurez-vous que les paquetages python sont installés dans le répertoire "site-packages" de la version de python que vous utilisez (faites un "python -V" pour trouver cette version) : /usr/lib/pythonX.X/site-packages Si ce n'est pas le cas, vous devrez les ré-installer - cela m'est par exemple arrivé lors du passage de la version 2.2 à la version 2.3 de python - le répertoire /usr/lib/python2.X/site-packages n'est pas automatiquement mis à jour. J'ai donc du faire : emerge unmerge libglade pygtk gnome-python bonobo-python pyorbit emerge libglade pygtk gnome-python bonobo-python pyorbit Gjots2 a été écrit avec glade-2 donc si vous souhaitez modifier ou corriger le code, il faudra l'installer aussi. Sinon, c'est juste du python ! \NewEntry Sur une Gentoo Tant que Gjots2 n'a pas de paquetage officiel ebuild (regardez dans /usr/portage/app-office) vous devrez faire ce qui suit : Les paquetages nécessaires sous Gentoo (par ordre de dépendance - il y aura sans doute moins de problèmes d'installation en partant de la droite de cette liste et en laissant Gentoo s'occuper des dépendances des modules) : >=gtk+-2 >=libglade-2 >=pygtk-2 gnome-python-2 >=pyorbit-2 Assurez-vous que vous avez une ligne identique à ce qui suit dans /etc/make.conf : PORTDIR_OVERLAY=/usr/local/portage Vous aurez besoin de la ligne suivante dans /etc/portage/packages.keywords : app-office/gjots2 ~x86 Puis : VERSION=_VERSION CAT=/usr/local/portage/app-office/gjots2 cd /usr/portage/distfiles wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.tgz mkdir -p ${CAT} cd ${CAT} wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.ebuild ebuild ${CAT}/gjots2-${VERSION}.ebuild digest emerge gjots2 \NewEntry Avec les paquetages RPM Faîtes simplement ce qui suit : VERSION=_VERSION wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}-1.noarch.rpm rpm -i gjots2-${VERSION}-1.noarch.rpm Vous devrez bien-sur installer toutes les dépendances comme pygtk, libglade, etc. Sur ma Fedora core 4, voici les dépendances listées : gtk2-2.6.7-4 libglade2-2.5.1-2 pygtk2-2.6.0-2 gnome-python2-2.10.0-1 gnome-python2-gconf-2.10.0-1 pyorbit-2.0.1-4 \NewEntry A partir des sources VERSION=_VERSION wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.tgz Si vous installez à partir de l'archive tarball, placez-vous dans le répertoire des sources après l'extraction de l'archive puis : python setup.py install [ --prefix=/usr/... ] Désinstallez avec le script uninstall.sh fournit. Sur certains systèmes, vous pourriez avoir des problèmes de permissions. Tous les répertoires installés doivent avoir les permissions 0755 et tous les fichiers installés les permissions 0644, à l'exception de 'docbook2gjots', 'gjots2', 'gjots2docbook' et 'gjots2html', qui doivent avoir les permissions 0755. \EndFolder \NewEntry Contribuer Nous avons deux listes de discussion, pour le développement et pour l'utilisation de gjots : Gjots Developers : http://lists.sourceforge.net/lists/listinfo/gjots2-devel Gjots Users : http://lists.sourceforge.net/mailman/listinfo/gjots2-users Les corrections de bugs sont les bienvenus ! Si quelqu'un veut traduire gjots dans une autre langue, contactez-moi et je vous fournirais une version traduisible et les catalogues de message. J'ajouterai toute nouvelle fonctionnalité à laquelle les utilisateurs veulent contribuer si je l'aime aussi. Si vous souhaitez participer au développement principal du code, contactez-moi d'abord pour être sur que d'autres personnes ne travaillent pas sur le même sujet. S'il vous plait, utilisez diff -ru pour créer un patch, et envoyez-le sous forme d'archive compressée gzip en pièce attachée. Si je décide de ne pas incoprorer votre fonctionnalité, vous êtes libre de créer un fork, mais s'il vous plait choisissez un nom différent pour votre programme. Il s'agit de code sous GPL après tout. Notez que pour respecter la licence GPL, je devrais inclure vos nom et e-mail dans la section Auteurs & Licence. Si vous souhaitez contribuer, contactez la liste de diffusion du développement , pour être sur qu'il n'y a pas de doublons dans le travail. Pour des questions plus générales, lisez "Fonctionnalités prévues". \NewEntry MANUEL UTILISATEUR \NewFolder \NewEntry Démarrage Lancez juste "gjots2" - cela sauvegradera tout dans le fichier $HOME/.gjotsfile Ou ajoutez un argument - gjots2 s'ouvre avec un fichier uniquement : gjots2 fichier.gjots Voici les options disponibles : --help Affiche l'aide -g, --geometry LARGEURxHAUTEUR[+X+Y] Taille initiale de la fenêtre. X et Y sont pour le moment ignorés. -r, --readonly Ouvre un fichier en lecture seule -d, --debug Affiche des informations pour le déboguage \NewEntry Ouvrir et enregistrer Ouvrir et enregistrer ont la même fonction que partout ailleurs, pour des fichiers au format gjots (voir plus bas). A moins que l'option Lecture seule soit active, gjots2 créé un fichier verrouillé à chaque ouverture pour assurer qu'un seul utilisateur puisse y écrire, tout en permettant de multiples lecteurs. Si un fichier est ouvert alors qu'il est déjà verrouillé, un petit message d'alerte donnera à choisir entre "lecture seule" et "ré-essayer". L'option "ré-essayer" permet de quitter le programme qui verrouille le fichier. Le fichier verrouillé est un fichier nommé .#nom_fichier, ou "nom_fichier" est le nom du fichier en train d'être édité. Il se situe dans le même répertoire que le fichier gjots2 original et il contient juste l'identifiant du processus (pid) qui le verrouille. Si le processus qui verrouille s'arrête sans nettoyer ce fichier, alors gjots2 pourrait le détecter à la prochaine ouverture. Le verrouillage est valable même sur un volume NFS. Un fichier ouvert en lecture seule n'est pas verrouillé. Il existe une entrée dans le menu "fichiers" qui permet d'activer l'option "Lecture seule". Elle prend aussi soin de verrouiller ou de déverrouiller le fichier. Quand Gjots2 enregistre un fichier, il enregistre aussi la version précédente dans un fichier de sauvegarde, à la manière d'emacs. Si vous enregistrez un fichier "fichier.gjots", alors la version sauvegardée s'appelera "fichier.gjots~". Si l'extension du fichier est ".cpt", gjots essayera de chiffrer et déchiffrer le fichier en utilisant ccrypt(1). Si ccrypt n'est pas installé (il ne l'est pas par défaut dans de nombreuses distributions Linux), l'enregistrement échouera. De la même manière, les fichiers .ssl seront ouvert avec (DES3) openssl et les fichiers .gpg avec (DES3) gpg. Installer ccrypt, openssl or gpg pour une meilleure sécurité ! \NewEntry Contrôles La fenêtre possède une barre de menus et une barre d'outils suffisamment explicites. La barre d'outil sur la gauche contrôle la hiérarchie de l'arborescence. Amusez-vous un peu avec les boutons et vous verrez vite comment les utiliser. "Nouvelle Page" créé une nouvelle note soeur de la note courante. "Nouvel Enfant" créé une note fille de la note courante. "Haut" place la sélection avant la note précédente. "Bas" fait exactement le contraire. "Remonter" fait remonter les notes sélectionnées d'un niveau dans la hiérarchie. "descendre" fait descendre d'une niveau les notes sélectionnées. "Scinder la note" prend le texte sélectionné (dans la fenêtre d'édition, à droite) et le place dans une nouvelle note "Fusionnez les notes" prend le texte et les notes sélectionnés pour les fusionner en une seule note. "Masquer Tout" masque l'arborescence de l'arbre pour ne garder les notes filles de la note racine. "Montrer Tout" affiche toute l'arborescence de la note courante. "Trier l'arbre" affiche la fenêtre de tri avec différents critères pour modifier l'organisation. Lorsqu'une note ou dossier perd toutes ces notes filles, elle redevient une note simple. Dans la barre d'outils principale : "Nouvelle Page", "Ouvrir" et "Enregistrer" font ce qui est habituel. Le bouton "Impression" affiche la fenêtre d'impression. "Couper", "Coller" et "Copier" ont une double fonctionnalité puisqu'ils agissent à la fois sur le texte et sur l'arborescence, en fonction de ce qui est sélectionné. Le bouton "Retour" formate le paragraphe courant en coupant la ligne à la longueur spécifier dans les préférences. (activer par le raccourci-clavier CTRL+L) Le bouton "Ed.Ext." ouvre l'éditeur de texte définit dans les préférences. La commande par défaut est 'nedit %s', 'xedit %s' ou 'xterm -e vi %s' - en fonction de votre distribution - le %s étant remplacé par le nom du fichier temporaire. Tout autre éditeur peut être utilisé s'il accepte un nom de fichier comme argument - personnellement, je préfère "emacsclient %s". Le bouton "Date" insère le date/l'heure à la position du curseur. vous pouvez spécifier le format de cette insertion dans les préférences. Le bouton "Chercher" ouvre la fenêtre chercher/remplacer. Le bouton "Trier" affiche la fenêtre de tri. Le bouton "Prefs" affiche la fenêtre des préférences. \NewEntry Cherchez et Remplacer Ctrl+F, Edition->Rechercher ou le bouton "Chercher" dans la barre d'outils principale affichent la fenêtre de recherche. Son utilisation est assez intuitive : tapez le mot à rechercher dans le champ "Chercher" est cliquez sur le bouton "Chercher". Pour remplacer une occurence, tapez le nouveau texte dans le champ "Remplacer" et cliquez sur le bouton "Remplacer". Le programme cherche cette première occurence. Cliquez sur le bouton de nouveau et elle sera remplacée et l'occurence suivante sera trouvée. Pour remplacer toutes les occurences, utilisez le bouton "Remplacer Tout". Les boutons "Fermer" et "Annuler" ferment tout deux la fenêtre de recherche - le bouton "Fermer" sauvegarde tous les nouveaux paramètres pour une utilisation ultérieure (à l'exception des chaînes à chercher et à remplacer). Le bouton "Effacer" efface juste les champs "Chercher" et "Remplacer". Toutes les erreurs apparaissent dans la zone directement au dessous du bouton et dans la barre d'état de gjots2. Les options sous les boutons sont : - "sensible à la casse", pour limiter la recherche en fonction de la casse - "Global" permet d'effectuer les opérations sur tout le fichier; sinon, elles se font sur la note courante - "Expression régulière" permet d'utiliser les expressions régulières (ER) étendues POSIX. Ces expressions sont définies dans "man 7 regex" (utilisées de la même manière dans egrep). Voici une rapide introduction aux expressions régulières (notez que gjots2 utilise les paquetages python - consultez la documentation python pour plus de détails, c'est beaucoup plus simple que regex utilisé dans la version en C de gjots) : . n'importe quel caractère ^ Début de ligne (si placer au début de l'ER) $ Fin de ligne (si placer en fin d'ER) * répétitions 0 ou plusieurs fois du caractère précédent + répétition une ou plusieurs fois du caractère précédent ? présence ou absence du caratère précédent {n} le caractère précédent doit être répété n fois {n,} le caractère précédent doit être répété n fois ou plus {n,m} le caractère précédent est répété entre n et m fois [ ] trouver n'importe quel caractère situé entre les crochets. ex. [a-z] [^ ] Les caractères entre crochets ne doivent pas être dans l'expression recherchée ( ) Définition d'un groupe | le "ou" : x|y signifie "trouver x ou y" \n n de 1 à 9 - référence aux groupes définis avant \b Début ou fin de mot \d tout caractère numérique == [0-9] \s n'importe quel espace (fin de ligne, tabulation, etc.) == [ \t\n\r\f\v] \S Tout caractère qui n'est pas un espace \w caractère alphanumerique \W caractère non-alphanumerique Pour trouver un des caractères "magiques" ^.[$()|*+?{\ il faut le faire précéder d'un \ Pour remplacer l'expression, les fonctions suivantes sont disponibles : \& coller toute la chaîne trouvée \1..\9 coller le groupe désigné (de 1 à 9), défini par (...) \n insérer une nouvelle ligne \NewEntry Impression La fenêtre d'impression vous permet de choisir ce que vous voulez imprimer : la page courante, la sélection ou tout le fichier Quelques petites personnalisations : alimenter l'imprimante avec une nouvelle page après chaque note et numérotation des pages (pas encore fonctionnelle) Les réglages actuels de la commande "Impression" essayent d'imprimer par l'intermédiaire du programme de pré-visualisation de votre système tel que : if type gv; then GV='gv -seascape' else if type ggv; then GV=ggv else # no preview command found, just print it lpr $1 exit fi fi T=/tmp/.tmp.$$ mpage -f -2 -I1 -P- $1 > $T ($GV $T; rm $T)& En plus d'être un peu compliqué, ce script souffre de ne pouvoir reconnaître d'autres visionneurs postscripts (kghostview, evince, etc) ou des incompatibiltés de versions, comme gv-3.6.1 qui ne comprend pas -seascape, il nécessite --seascape. Jusqu'à ce qu'il y ait un système standardisé pour pré-visualiser une impression dans X (pour Kde, Gnome et les autres!!), nous nous en remettons à vous, aimables utilisateurs, pour personnaliser le script afin qu'il convienne à votre configuration. Quelques suggestions pouvant remplacer le script par défaut : Envoyer simplement les données vers l'imprimante : lpr $1 Pour utiliser un programme de pré-visualisation, ajustez la commande "Impression" comme suit : GV='gv -seascape'; T=/tmp/.tmp.$$;mpage -f -2 -I1 -P- $1 > $T;($GV $T; rm $T)& Cela suppose que vous ayez gv-3.5.8. Pour utiliser un autre programme ou des options différentes, modifiez les paramètres de GV comme suit : # pour utiliser gv-3.6.1: GV='gv --seascape' # pour utiliser ggv: GV='ggv' # pour utiliser kghostview: GV='kghostview' # pour utiliser evince (non testé): GV='evince' Remarquez que ggv, kghostview et evince (?) n'ont pas d'option en ligne de commande pour inverser l'image, vous devrez donc le faire avec la souris. C'est fou non ? Moi ? J'utilise gv. \NewEntry Préférences Les données suivantes peuvent être personnalisées et utilisées par gconf : Formatteur de texte - par défaut, "fmt -w %d" Longueur de ligne - Utiliser dans le formatage d'un paragraphe, (65) Editeur externer - éditeur à utiliser avec le bouton "Ed.Ext.". Exemples : nedit %s xedit %s xterm -e vi %s emacsclient %s Format Date - chaîne à adresser à strftime(3) pour insérer la date/l'heure. Faites un "man strftime" pour comprendre la syntaxe. Exemples : %F : (2002-11-03) %c : Sun 03 Nov 2002 10:33:22 AM EST (%d %b %y) : (03 Nov 02) Police - Police à utiliser pour afficher le texte. Les boutons et l'arbre utilisent les polices par défaut de GTK-2. \NewEntry Raccourcis clavier La plupart des raccourcis clavier de gjots sont ceux utilisés ailleurs. Dans la fenêtre d'édition du texte, les raccourcis GTK-2 sont utilisés (quelque peu différents de ceux de la version C/GTK-1 de gjots): Ctrl+a Selectionner tout le texte home Retour en début de ligne fin Aller en fin de ligne gauche retour en arrière d'un caractère droite Avancer d'un caractère Ctrl+gauche Reculer d'un mot Ctrl+droite Avancer d'un mot bas Aller à la ligne suivante haut Remonter d'un ligne Ctrl+home/fin Aller au début/à la fin du texte suppr supprimer un caractère retour Supprimer le caractère précédent Ctrl+L Formater le paragraphe La touche Maj et les flèches permettent de selectionner le texte. Ces raccourcis clavier fonctionnent aussi: Ctrl+x couper Ctrl+c copier Ctrl+v coller Les raccourcis dans l'arbre: En général, les touches simples permettent de se déplacer dans l'arbre. La touche Contrôle manipule l'arbre. haut Aller à la note précédente bas Aller à la note suivante Ctrl+haut Déplace la note courante vers le haut Ctrl+bas Déplace la note courante vers le bas maj-haut/bas Etend la sélection gauche ascend the tree right descend the tree Ctrl+gauche Remonte la sélection dans l'arborescence Ctrl+bas Descend la sélection dans l'arborescence home Aller à la première note du niveau courant end Aller à la dernière note du niveau courant Ctrl+home Aller à la toute première note Ctrl+fin Aller à la toute dernière note (visible) Raccourcis clavier globaux: Ctrl+s Enregistrer Ctrl+q Quitter Ctrl+f Fenêtre de recherche \NewEntry Importer and exporter Vous pouvez importer ou exporter des données dans gjots en utilisant les fonctions dédiées à cet effet. L'opération s'effectue dans la note courante donc vous pouvez contrôler ce qui sera enregistré. Le format des fichier est le format habituel de gjots2. \NewEntry Format des fichier gjots2 Le même que celui de gjots, qui est le même que celui de kjots, avec la hiérachie en plus : \NewEntry titre1 Texte qui appartient à la note de titre1 \NewFolder \NewEntry titre2 Texte de la note titre2, fille de titre1 \NewEntry titre3 Texte de la note titre3, toujours fille de titre1 \EndFolder Les mots-clés \mots-clés doivent être en début de ligne pour qu'ils soient reconnus. \NewEntry Chiffrement gjots2 peut chiffrer et déchiffrer des fichiers en utilisant les paquetages ccrypt(1), openssl(1) et gpg(1). Les fichiers sont enregistrés avec un chiffrement qui dépend du suffixe utilisé : .cpt ccrypt .ssl openssl .gpg gpg gjots2 demandera un mot de passe quand cela est nécessaire. Assurez-vous d'avoir installé ccrypt, openssl ou gpg si vous voulez utiliser ces fonctionnalités. Ne perdez pas votre mot de passe - je ne pourrais pas vous aider à le retrouver. \NewEntry Sécurité Pour le chiffrement avec ccrypt, j'ai utilisé l'équivalent de : {write cleartext} | KEYWORD=password ccencrypt -E KEYWORD >filename.cpt Ceci expose brièvement le mot de passe en tant que paramètre d'environnement bien qu'il soit 'ré-écrit' et supprimé du processus de gjots2 juste après son utilisation. D'après le manuel de ccrypt, "sur la plupart des systèmes modernes", la commande ps protège les paramètres d'environnement des utilisateurs. Sous Linux, vous pouvez faire un 'cat/proc/PID/environ' pour voir les paramètres d'environnement qui vous appartiennent - seul le root peut espionner les autres environnements donc utiliser -E n'est pas moins sécurisé que votre mot de passe de session ou le mot de passe du root. L'unique autre manière de faire cela (AFAICS) serait : {write cleartext} >file.gjot echo password |ccencrypt -k - file.gjot ... alors que cela offre une meilleure protection du mot de passe, cela expose aussi (brièvement) le cleartext en tant que fichier - tout aussi mauvais que d'exposer la clé en tant que paramètre d'environnement ! Le déchiffrement est plus simple - j'utilise stdin pour transmettre le mot de passe : echo password |ccdecrypt -c -k - filename.cpt | {read from pipe} Une voie supplémentaire (ex. stdin=0, stdout=1 stderr=3 stdpasswd=3) pour que ccrypt lise les mots de passe pourrait être une meilleure solution (mais ccrypt ne le permet pas). \NewEntry Utilitaires \NewFolder \NewEntry gjots2html gjots2html convertit les fichiers gjots2 en fichier HTML avec un sommaire qui ressemble à l'arborescence du fichier. Lisez la page man dédiée pour en savoir plus. gjots2html.py est une version python du même utilitaire sans doute plus digne de confiance. \NewEntry gjots2docbook Convertit le fichier gjots2 au format XML DOCBOOK. Lisez la page man dédiée pour plus de détails. \NewEntry docbook2gjots Convertit un fichier XML DOCBOOK en fichier gjots2. Lisez la page man dédiée pour plus de détails. \EndFolder \EndFolder \NewEntry Etat du projet Si vous avez des idées pour améliorer gjots2, envoyez un e-mail à gjots2-users@lists.sourceforge.net \NewFolder \NewEntry Fonctionnalités prévues Ce qu'il reste à ajouter se limitera au niveau du design à ce qui est "rapide et léger", mais pourra inclure : Traduction ============ Depuis la version _VERSION, gjots2 est prêt pour d'éventuelles traductions. Si vous souhaitez avoir une version de gjots dans votre langue, contactez la liste de diffusion consacrée au développement gjots2 ====== Ajouter la date/l'heure à toutes les notes. Tri automatique on/off Edition->Effacer, Propriétés, Paramètres->préferences Enregistrement automatique Supportpour des options su les notes: \les options incluant: fermer/ouvrir détails des paramètres ...? gjots2html ========== gjots2html pourrait être modifié. Il y a un script python encore en phase beta qui permet : 1) d'ajouter un
après chaque section. 2) d'ajouter un lien vers le sommaire après chaque section. 3) de définir un titre pour la page. 4) d'insérer le résultat de la conversion par gjots2html.py dans un modèle de page HTML. 5) de supprimer le sommaire des sections. 6) d'ajouter le contenu dans un fichier HTML spécifié. 7) d'ajouter un lien vers une feuille de styles en cascade. 8) de couper le texte de gjots2 à une largeur définie. Il permet aussi un nombre de niveaux hiérarchiques arbitraires, même si HTML n'en possède que 6. Ajouter les options: -r N, --rule=N:
pour tous les niveaux supérieurs à N \NewEntry Bugs connus Aucun de connu, bien sur, à part : Message d'erreur innaproprié s'il est impossible d'ouvrir un fichier gjots2 au premier lancement The sort dialog can't set itself to the values stored in gconf. \NewEntry Plateformes Tester sur les plateformes suivantes : Gentoo Linux i386 Ubuntu 5.10 Mandrake 10.1 Fedora Core 3, 4 Novell Linux Desktop 9 SUSE 9.2, 9.3 Nous sommes toujours à la recherche de personnes capables de tester gjots2 sur leur distribution favorite. Laissez-nous un message à et nous serons heureux d'ajouter votre distribution dans la liste des plateformes testées. Certaines de ces distributions nécessitent peut-être une mise à jour de certains paquetages. Voyez la FAQ pour plus de détails. \EndFolder \NewEntry FAQ Gjots Foire Aux Questions ou questions fréquemment posées sur Gjots2 Si vous avez une question qui n'est pas listée ci-dessous, laissez un message sur la liste de discussion des utilisateurs de gjots2 . \NewFolder \NewEntry Q: Les icones de la barre d'outils latérales sont écrasées. R: vous utilisez une version buguer de libglade2. Mettez à jour votre système avec une version >= 2.4.1. Nous vous conseillons de le faire par l'intermédiaire du gestionnaire de paquetages de votre distribution. \NewEntry Q: Je reçois le message d'erreur suivant: ImportError: No module named distutils.core when building gjots2 from source. R: Votre distribution n'a pas inclut les modules distutils lors de l'installation des paquetages python. Installez python correctement pour résoudre le problème. Cela arrive pour Ubuntu (5.10), NLD9, SUSE 9.2. Correction pour Ubuntu 5.10: # apt-get install pythonX.X-dev \NewEntry Q: Je reçois le message d'erreur suivant: ImportError: No module named gconf R: Installez gnome-python-2. Ce paquetage contient les liens Python pour gconf. Vous pouvez le trouver ici : http://www.pygtk.org/ Vous devriez trouver des paquetages déjà construit comme les suivants. Mandrake 10.1: # rpm -ivh gnome-python-gconf-2.0.3-1mdk.i586.rpm Fedora Core 3: # rpm -ivh gnome-python2-gconf-2.6.0-3.i386.rpm \NewEntry Q: Comment utilisez gjots2 sur une distribution Novell Linux Desktop? R: Vous devrez installer gnome-python (et toutes ses dépendances). \NewEntry Q: Quelles sont les différences entre l'ancienne version en C (gjots-0.X) et la nouvelle version en python (gjots-2.X.X) R: Pour la version 2.0.0, voici les différences (pour les versions ultérieures, lisez le CHANGES logs): Support de l'Unicode - je peux donc écrire des notes en Russe - peut-être en turque, en arabe, qui sait comment ca marchera. Toutes remarques à ce sujet sont les bienvenues ! Support pour LOTE (langues autre que l'anglais). Des volontaires pour I18N et L10N? Glisser-déposer dans l'arborescence pour faciliter l'organisation. Support gconf avec les thèmes GTK-2. Tri du texte ou des notes Fusion des notes Scinder les notes Impression \EndFolder \NewEntry Auteurs & Licence \NewFolder \NewEntry Auteurs Ecrit par : Bob Hepple Gabriel Munoz Logo par : DSP Popeck , 2002 Traduction française par : Rui Nibau , 2005 \NewEntry Licence (GPL) - français Vous pouvez trouver une traduction française de la GNU GPL ici : http://fsffrance.org/gpl/gpl-fr.fr.html Attention : seule la version originale, en anglais, reproduite ci-dessous, à valeur juridique. La traduction française n'est là que pour mieux vous aidez à comprendre le sens de cette licence. \NewEntry Licence (GPL) Copyright (C) 2005 Robert Hepple Copyright (C) 2002 DSP Popeck GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS \EndFolder gjots2-3.1.9/doc/gjots2.gjots000066400000000000000000001227521401630023500157640ustar00rootroot00000000000000GJOTS2 MANUAL g j o t s 2 By Bob Hepple Brisbane Queensland Australia Version 3.1.9 bob.hepple@gmail.com http://bhepple.com//doku/doku.php?id=gjots \NewEntry Introduction gjots2 is a jotter application for your desktop. Why do we need yet another jotter program? Well, when my faithful old Psion-5 organiser died I needed to move all my bits and pieces onto Linux and I started to look around for software to fill that need. I found lots of software for diary and I already wrote a beaut calculator (gdcalc) but somehow nothing was quite right for the jotter. Other packages that I looked at were either: * much too simplistic (eg. a single level hierarchy), * too complex (too many components like Corba, SQL or suchlike) * web based * unable to display & work on the tree at the same time as the text entries * too messy - throwing windows up like 3M yellow stickers all over the screen Then there were the ones I couldn't get to work or which just plain bombed. Nonetheless, there are many fine packages around but none really suited my needs. kjots seemed at the time to be the best of the lot. Anyhow, I needed to learn how to do GTK trees and practise glade - and so gjots was born and lives still. It was originally written in C (now Python), glade and gtk, was pretty fast and is still something I use every day. Judging by the emails I've been sent it is quite useful to others too, which is nice. There was even a Japanese version created from an early cut of gjots (0.3?) but the code was never contributed back to the mainstream which is a shame. However the world doesn't stop still and GTK-2 came along and there was an increasing number of people who wanted LOTE (Languages Other Than English) including myself. I also wanted to learn about python and hence the current python version of gjots - gjots2 or "son of gjots" came into being. Being written in an interpreted language it isn't quite so fast to start up as the original gjots* but it offers heaps more features: Like Goldilocks said about the chairs, porridge and beds, gjots2 is "just right". * this was true when I wrote this in about 2004. In 2012, my i7 brings it up practically instantly. \NewEntry Installing If possible, use dnf/yum/rpm or apt - better package management than setup.py \NewFolder \NewEntry RPM-based systems fedora includes gjots2 but is often out of date - better get the latest package from the homepage VERSION=3.1.9 wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}-1.noarch.rpm dnf install gjots2 There are builds on COPR: https://copr.fedorainfracloud.org/coprs/wef/gjots2/ \NewEntry From the tarball source VERSION=3.1.9 wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.tgz If installing from the tarball, after unpacking the tar file and cd'ing to it do this: python setup.py install [ --prefix=/usr/... ] glib-compile-schemas $prefix/share/glib-2.0/schemas Uninstall with the uninstall.sh script provided here. On some systems, you may have permission problems with system-wide installations from source. All new directories installed should have permissions 0755, and all installed files should have permissions 0644, with the exception of 'docbook2gjots', 'gjots2', 'gjots2docbook', 'gjots2emacs', 'gjots2org' and 'gjots2html', which should have permissions 0755. \NewFolder \NewEntry Prerequisites Let yum/dnf/apt take the strain ... otherwise ... Version 3.1.0+: Install sourceview4 Install gtk3 Install python3-gobject Earlier versions: Install pygtksourceview to enable Undo/Redo For gjots2-2.x.x: (Fedora <= 20 Centos <= 6) python gnome-python2 pygtk2-libglade gnome-python2-gconf For gjots2-3.x.x: (Fedora-21+ Centos-7+) You may need to install (or re-install) libglade, pygtk, or gtk for your current version of python or possibly you can just set your PYTHONPATH eg. export PYTHONPATH=/usr/local/lib/python2.7/site-packages/ gjots2 was written with glade-3 so if you want to change or fix the code you will need to install it too. Otherwise, it's just python! \EndFolder \EndFolder \NewEntry Contributing We have two mailing lists setup for development and support of gjots: Gjots Developers : http://lists.sourceforge.net/lists/listinfo/gjots2-devel Gjots Users : http://lists.sourceforge.net/mailman/listinfo/gjots2-users Bug fixes are very welcome! If anyone wants to translate this into another language please get in touch and I will provide an internationalised version and message catalogs. I will incorporate any new features that people want to contribute provided I like them too. If you want to add something to the mainstream development please drop me a line first and I will make sure no-one else is working on that area. Please use diff -ru to create the patch, and send it as a gzipped file attachment. If I choose not to incorporate your favourite feature, feel free to fork the development but please choose a different name for the program. This is GPL code after all. Note that to protect the GPL license I will need to include your name and email address in the Authors and License section. If you want to contribute please get in touch with me at bob.hepple@gmail.com, to make sure work is not duplicated. For general ideas, please see "Planned Features". \NewEntry USER MANUAL \NewFolder \NewEntry Startup Just start it as "gjots2" - it will save anything in $HOME/.gjotsfile Or use an argument - gjots2 accepts a single file, eg: gjots2 todo.gjots These options are available: -h, --help: this help -d, --debug: debug to stdout -2, --glade2: use glade-2 gui if available -t, --trace: trace lines as they execute -g 123x456, --geometry=123x456: initial geometry (X x Y) -p, --purge-password don't remember password -r, --readonly: no editing (or locking) -V, --version: print the version and exit For supported languages other than English, you can use eg: LC_ALL=de_DE.utf8 gjots2 or (eg fedora-16+): LANGUAGE=de_DE.utf8 gjots2 To see what languages are currently supported: ls /usr/{,local/}share/locale/*/LC_MESSAGES/gjots2.mo \NewEntry Open and save Open and save do the usual and operate on gjots-format text files (see below). Unless readonly mode is in effect, gjots2 will create a lockfile to enforce single-writer but allow multiple readers. If a file is opened while it is already locked then a popup window will offer "Try Again" or "Readonly". The "Try Again" option allows you to exit the program which is locking the file. The lock file is a simple file called .#filename, where filename is the name of the gjots2 file being edited. It is in the same directory as the original gjots2 file and it contains just the process identifier (pid) of the locking process. If the locking process dies without cleaning up the lockfile then gjots2 can detect it on the next open. Thus, locking is viable even on an NFS mounted volume. Files opened "readonly" have no locking applied. There is a menu item under "Files" which allows the readonly status of the program to be toggled. It also takes care of locking and unlocking the file as above. When gjots2 saves a file it moves any prior version of the file to a backup in the manner of emacs ie. if saving to "file.gjots" which already exists, the old version would get saved to "file.gjots~" If your filename ends in ".cpt", gjots will attempt to decrypt and encrypt the file using ccrypt(1). If ccrypt is not installed (it is not a standard part of all Linux distributions) the IO will fail. Similiarly, .ssl will be opened using (DES3) openssl and .gpg will be opened with (DES3) gpg. Install ccrypt, openssl or gpg for good security! As of version 2.4.3 *.org files are supported for intercourse with emacs org-mode. \NewEntry Controls The screen has a menubar and toolbar at the top which should be fairly self-explanatory. The toolbar on the left controls the tree hierarchy. Just play around with it and you'll soon get the hang of it. "New Page" create a new sibling of the current page. "New Child" creates a new child of the current item. "Up" Moves the current selection to before the previous sibling. "Down" does the opposite of Up. "Back" makes the currently selected item(s) into children of their grandparent (or, if you prefer, siblings of their parent). "Forward" makes the current items(s) into children of the sibling immediately before them. "Split item" takes the currently selected text (in the right hand panel) and moves it into a new item. "Merge Items" merges the text of all currently selected items into one big item (separated by a newline character) "Hide All" collapses the view of the tree to just the children of the root item. "Show All" expands all the children of the currently selected items (recursively). "Sort Tree" brings up the sort dialog box where you can sort elements based on a given criteria. When a folder loses all of its child items it gets automatically demoted to a plain item. On the top toolbar, we have: "Save" is the usual thing. The 'Print' button pops up the Print dialog. See the "Printing" item one level up from here. The "Undo" and "Redo" functions only operate on the text buffer, not on the tree. They are only available if the gtksourceview library is available. "Cut", "Paste" and "Copy" have dual functionality, thus, they operate on both text and tree items based on whether the text or tree panels are selected. The "Wrap" button formats the current paragraph according to the line length set in the preferences dialog (also activated by ^L) The "Ext.Ed" button invokes an external editor according to the command string in the Preferences dialog. The default string is either 'nedit %s', 'xedit %s' or 'xterm -e vi %s' - depending on what is installed on the system - the %s is replaced by the temporary filename. Any other editor can be used as long as it can accept a filename as an argument - personally, I prefer "emacsclient %s". The "Date" button puts a date stamp into the file at the current position. You can adjust the format of the date stamp in the Preferences dialog - it uses the date format from strftime(3) - please check the manual for full details. Some popular choices: %F : (2002-11-03) ... this is the default %c : Sun 03 Nov 2002 10:33:22 AM EST (%d %b %y) : (03 Nov 02) %d/%m/%Y : 28/07/2007 The "Find" button pops up the find & replace dialog. "Sort" pops up the sort dialog. "Prefs" button will pop up the preferences dialog. \NewEntry Find & Replace ^F, Edit->Find or the Find button in the top toolbar popup the find & replace dialog. The top toolbar also holds the most recent find string and quick forward and back search buttons. There is a drop-down of recent searches to the right of this. ^G is a shortcut for 'next' and Shift-^G is for 'previous'. The operation should be intuitive - type in what you want to find into the Find & Replace dialog Find entry and press the Find button. To replace one occurance put the new text in the Replace entry box and press the Replace button. The program will search forward - press it again and it will and replace the text and search forward again. To replace all occurances (from the current position to the end of file) press the Replace All button. The Close and Cancel button both hide the find dialog - the close button saves any new settings for future use (except for the Find and Replace strings). The Clear button just clears the Find & Replace entries. Any errors appear both in the area immediately below the button and also in the main program status bar. Options appear below the Find & Replace buttons and include "Match Case" to limit the search to the same upper and lower case. "Global" is the default and allows the search to take place across the whole file. The alternative is to limit the search to the current item. "Regular Expression" permits the use of POSIX Extended Regular Expressions as defined in "man 7 regex" (ie as used in egrep). A quick reference to regular expressions (note that gjots2 uses Python's re package - see the Python docs for full details, it is rather simpler than the regex used in the C version of gjots): . any character ^ start of line (only as the first item in the RE) $ end of line (only as the last item in the RE) * zero or more repetitions of the previous RE + one or more repetitions of the previous RE ? zero or one repetitions of the previous RE {n} exactly n repetitions of the previous RE {n,} n or more repetitions of the previous RE {n,m} n to m repetitions of the previous RE [ ] matches any character in the set. Ranges are eg. [a-z] [^ ] matches any character not in the set ( ) forms a 'remembered' pattern | pattern alternation eg. x|y means "matches x or y" \n n is 1 to 9 - a backreference to a previous pattern \b start or end of a word \d a digit == [0-9] \s whitespace == [ \t\n\r\f\v] \S non-whitespace \w alphanumeric \W non-alphanumeric To match one of the 'magic' characters ^.[$()|*+?{\ escape it with \ For the replacement pattern the following sequences are available: \& paste the entire found string \1..\9 paste the nth found sub-pattern (defined with (...) ) \n insert a newline \NewEntry Printing The Print dialog lets you select "what to print": the current page, the current selection or the whole thing and a few enhancements: page feed after every gjots item and auto numbering (not actually implemented yet) The print command that ships with 2.3.7 and later is "gjots2lpr" which is a simple script to try to find useful printing tools and to use them. The default operation is to pass the text through "a2ps" and to view the result with "gv". If these programs are not installed, others are sought - see "gjots2lpr -h" for more details. Before 2.6.7 the default print comman was rather long, but it expanded to the following which is supposed to do something similar: if type gv; then GV='gv -seascape' else if type ggv; then GV=ggv; else lpr $1 exit fi fi T=/tmp/.tmp.$$ mpage -f -2 -I1 -P- $1 > $T ($GV $T; rm $T)& Some possible suggestions for the "Print command" instead of the default: To simply send the raw output directly to the printer: lpr $1 \NewEntry Preferences The following items can be selected as preferences by gconf: Text formatter - default is "fmt -w %d" Text line length - used in paragraph formating, (65) External Editor - editor to use with the Ext.Ed. button eg.: nedit %s xedit %s xterm -e vi %s emacsclient %s Date format - format string to feed to strftime(3) for use in date stamp. Do a "man strftime" for details. e.g.: %F : (2002-11-03) ... this is the default %c : Sun 03 Nov 2002 10:33:22 AM EST (%d %b %y) : (03 Nov 02) %d/%m/%Y : 28/07/2007 Font - the font to be used for the text display. The controls and tree still use the default GTK-2 fonts. \NewEntry Keyboard operation Most of the key shortcuts are the usual. In the text display, the normal GTK-2 key mappings apply (slightly different to the C/GTK-1 version of gjots): ^a Select all text home goto start of line end goto end of line left move back one place right move forward one place ^left move one word left ^right move one word right down move to next line up move to previous line ^home/end goto start/end of text delete delete one char backspace delete one char backwards ^L paragraph re-format or "wrap" Shift and mark the region. Plus the following work: ^x cut ^c copy ^v paste Key mappings in the tree: In general, plain keys just move around the tree. Control keys manipulate the tree. up goto previous item down goto next item ^up move the current item(s) up the tree ^down move the current item(s) down the tree shift-up/down extend the selection left ascend the tree right descend the tree ^left promote items ^right demote items home goto to the first item at the present level end goto to the last item at the present level ^home goto the very first item ^end goto the very last (expanded) item Global key mappings: ^s does save ^q does quit ^f Popup the find dialog ^g find next shift-^g find previous \NewEntry Import and export You can bring data in and out of gjots2 using the import and export functions. These operate on the currently selected item so you can control exactly what gets saved. The format of the file is the normal gjots2 format. \NewEntry gjots2 file format The same as gjots which is plain text but with a hierarchy introduced by some keywords: \NewEntry title1 this is the stuff that goes into title1 \NewFolder \NewEntry title2 this is title2's stuff \NewEntry title3 title 3's stuff \EndFolder The \keywords need to be at the start of the line to be recognised. \NewEntry emacs org-mode As of 2.4.3 emacs' the header/sub-heading structures of org-mode is also recognised. A file written with a .org filename extension will be saved in org-mode format: text * heading ** sub-heading more text ** sub-heading * etc etc Extended features of org-mode such as tables, links, agendas etc are not recognised by gjots2. gjots2org and org2gjots are also provided. \NewFolder \NewEntry gjots.el This major mode for emacs is in testing: ; GJOTS MODE - remaining problems: ; you must show-all before saving ; it prompts for coding. default raw-text is OK (setq format-alist (cons '(gjots "gjots" nil "gjots2org" "org2gjots" t nil) format-alist)) (define-derived-mode gjots-mode org-mode "gjots" "Major mode for editing gjots files." (format-decode-buffer 'gjots) (hide-sublevels '1)) (autoload 'gjots-mode "gjots-mode" "Major mode to edit gjots files." t) (setq auto-mode-alist (cons '("\\.gjots$" . gjots-mode) auto-mode-alist)) \EndFolder \NewEntry Encryption gjots2 can encrypt and decrypt files using the ccrypt(1), openssl(1), gpg2(1) or gpg(1) packages. If the gpg-agent is detected (ie if the GPG_AGENT_INFO variable is set) then it is used for passwords. Files are saved with encryption according to the file suffix you provide: .cpt ccrypt .ssl openssl .gpg gpg gjots2 prompts for passwords where needed. Make sure you have ccrypt, openssl, gpg2 or gpg installed if you want to use this feature. Don't lose your password - I can't help you recover lost passwords!! \NewEntry Security gjots2 has not been audited for security, so don't assume it is secure. That said, it's probably secure enough for most private use. The static, encrypted files on disc are as good as gpg/openssl/ccrypt, ie pretty good, (the default algorithm and key lengths are used in each encryption program). For encryption in ccrypt, I've used the equivalent of: {write cleartext} | KEYWORD=password ccencrypt -E KEYWORD >filename.cpt This exposes the password briefly as an environment parameter although it is 'scrubbed' and removed from the gjots2 process environment immediately after use. According to the ccrypt man page, "on most modern systems" the ps command protects environment parameters from ordinary users. Under Linux, you can 'cat /proc/PID/environ' to see the environment parameters of any process that you own - only root can spy on another's environment so using -E is no less secure than your login password and root's login password. The only other way to do this (AFAICS) would be: {write cleartext} >file.gjot echo password |ccencrypt -k - file.gjot ... while this provides better protection for the password, this (briefly) exposes the cleartext as a file - as bad as or worse than exposing the key as an environment parameter! Decrypting is much easier - I use stdin to pass in the password: echo password |ccdecrypt -c -k - filename.cpt | {read from pipe} A supplementary channel (eg. stdin=0, stdout=1 stderr=3 stdpasswd=3) for ccrypt to read passwords would be a better solution (but ccrypt does not provide it). \NewEntry URL handling If you double-click on a URL then your browser is activated and the URL is selected. Only http[s]://... URLs are recognised. The browser that gets started or activated is the first from: An already-running browser from the list below is activated. Failing that, the BROWSER environment parameter is obeyed Failing that, the gnome prefered browser is run. Failing that, then the first one from the list that can be found is run. xdg-open gnome-open firefox4 chrome firefox konqueror epiphany opera dillo \NewEntry Utilities \NewFolder \NewEntry gjots2html gjots2html converts a gjots2 file into HTML together with a table of contents which looks remarkably like the subject tree. See the man page for more details. gjots2html.py is a python version of the same utility which may be more reliable. \NewEntry gjots2docbook converts a gjots2 file into DOCBOOK XML format. See the man page for more details. \NewEntry docbook2gjots Converts DOCBOOK XML into gjots2 - see the man page for full details See the man page for more details. \NewEntry gjots2emacs gjots2emacs converts a gjotsfile to a format more or less suitable for emacs' outline mode. Usage: gjots2emacs [filename] Converts a gjots file to emacs outline mode (on stdout). The emacs outline-regexp is defaulted to ===>+ -b base: base string for outline-regexp (default '===') -F char: marker for headers in outline-regexp (default '>') \NewEntry gjots2org, org2gjots gjots2org converts a gjotsfile to and from a format more or less suitable for emacs' org mode. Usage: gjots2org [filename] Converts a gjots file to emacs org mode (on stdout). -F char: marker for headers in outline-regexp (default '*') \EndFolder \EndFolder \NewEntry Development status If you have ideas on how to improve gjots2, please email to bob.hepple@gmail.com \NewFolder \NewEntry Planned features What gets added will be limited to the design goal of "fast and lightweight", but might include: Localisation ============ As of version 2.3.0, gjots2 is internationalized and ready for translations. If you would like to see your language supported, please contact the mailing list on bob.hepple@gmail.com Check the webpage for localisations already complete. gjots2 ====== Add timestamp to every item & display in appbar when selected autosort on/off for folders Edit->Clear, Properties, Settings->preferences autosave Support for item options: \Options including: open/closed para details ...? gjots2html ========== gjots2html is undergoing some possible changes. There is a new script marked as beta written in Python, and supports the following features: 1) Add
lines after each section. 2) Adds a link to the Table of Contents after each section. 3) Specify a title to the page. 4) Embed the output of gjots2html.py into a pre-existing HTML template file. 5) Suppress the table of contents section. 6) Output the HTML to a specified file. 7) Add a link to a specified Cascading Style Sheet. 8) Wrap the gjots2 text at a specified width. It also supports an arbitrary number of levels in the hierarchy, even though HTML only supports 9. Add options: -r N, --rule=N:
for all levels up to N \NewEntry Known bugs None known, of course, other than: Inappropriate error messages if can't open a gjots2 file on initial startup. The sort dialog can't set itself to the values stored in gconf. \NewEntry Platforms Tested on the following platforms: Fedora-31 Older version were tested on: Gentoo Linux i386 Mandrake 10.1 Fedora Core 3, 4 Novell Linux Desktop 9 SUSE 9.2, 9.3 Ubuntu Feisty Some of these platforms may require updated packages. Refer to our FAQ for a discussion of these issues. \EndFolder \NewEntry Gjots FAQ Frequently Asked Questions regarding gjots2. If you ever have any questions that aren't answered here, please contact the gjots2 users list . \NewFolder \NewEntry Q: The icons in the left toolbar look squashed. A: You are using a buggy version of libglade2. Upgrade libglade to a version >= 2.4.1. We recommed you update this package through your distribution package manager. \NewEntry Q: I receive the error ImportError: No module named distutils.core when building gjots2 from source. A: Your distribution has effectively *broken* the python installation by not including the distutils modules, which are part of the python core package. Install python correctly to fix this issue. This is known to happen in: Ubuntu (5.10), NLD9, SUSE 9.2. Ubuntu 5.10 fix: # apt-get install pythonX.X-dev \NewEntry Q: I receive the error ImportError: No module named gconf A: Install gnome-python-2. This package will contain the Python bindings for gconf and is located here: http://www.pygtk.org/ You should be able to find pre-built packages for these such as the following. Mandrake 10.1: # rpm -ivh gnome-python-gconf-2.0.3-1mdk.i586.rpm Fedora Core 3: # rpm -ivh gnome-python2-gconf-2.6.0-3.i386.rpm \NewEntry Q: How do you get gjots2 to run under Novell Linux Desktop? A: You will have to install gnome-python (and its dependencies). \NewEntry Q: What's the difference between the old C version (gjots-0.X) and the new python version gjots-2.X.X A: At the 2.0.0 release, these were the differences (for development since then see the CHANGES logs): Unicode support in the data files - so I can make notes in Russian - maybe Turkish, Arabic, who knows what will work. Reports solicited and most welcome! The potential for LOTE support in the program itself - any volunteers for I18N and L10N? Drag and Drop in the tree view to simplify organisation. gconf support with GTK-2 themes. Sorting items and/or text Merging items Spliting items Printing \NewEntry Q: Why do the Undo and Redo functions not work? A: Have you got the gtksourceview libraries installed? \EndFolder \NewEntry Authors & Licence \NewFolder \NewEntry Authors Written by: Bob Hepple Assistance from: Gabriel Munoz Jiahua Huang Logo by: DSP Popeck , 2002 French translation by: Rui Nibau Norwegian translation by: Robert Emil Berge Russian tranlsation by: Sergey Bezdenezhnyh Italian tranlation by: Raimondo Giammanco Czech translation by: Martin Sin Spanish translation by: Cecilio Salmeron Slovenian translation by: Aleksa Šušulić German translation by: Uwe Steinmann \NewEntry Licence (GPL) Copyright (C) 2007 Robert Hepple Copyright (C) 2002 DSP Popeck GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS \EndFolder gjots2-3.1.9/doc/gjots2.nb.gjots000066400000000000000000001606551401630023500163660ustar00rootroot00000000000000GJOTS2 MANUAL g j o t s 2 AV Bob Hepple Brisbane Queensland Australia Versjon 3.1.9 bhepple@freeshell.org http://bhepple.freeshell.org/gjots \NewEntry Introduksjon gjots2 er et jotter-program for din datamaskin. Hvorfor trenger vi enda et jotter-program? Vel, da min gamle trofaste Psion-5-planlegger døde, måtte jeg flytte all informasjonen over til Linux, så jeg begynte å lete etter programvare som kunne utfylte behovene mine i henhold til dette. Jeg fant massevis av programvare for dagbøker, og jeg hadde allerede skrevet et fint kalkulatorprogram (gdcalc), men jeg fant ingenting som passet helt til en jotter. Andre programpakker jeg så på var: * altfor enkle (f.eks bare et nivås hierarki), * for komplekse (for mange komponenter som i Cobra, SQL eller liknende) * web-baserte * ikke i stand til å vise og arbeide på treet samtidig som på tekstelementene * for rotete - slang opp vinduer som postit-lapper over hele skjermen Så var det de som jeg ikke kunne få til å virke eller bare krasjet. Når det er sagt så finnes det mange gode programpakker der ute, men ingen som passet akkurat til mine behov. Kjots virket som det beste av dem. Uansett så trengte jeg å lære hvordan man lager GTK-trær, og å øve på å bruke glade - så dermed ble gjots født, og lever ennå. Det ble først skrevet i C (nå i Python), glade og gtk, var ganske raskt, og er fortsatt noe jeg bruker hver dag. Utifra e-posten jeg har mottatt så er det temmelig brukbart for andre også, noe som er fint. Det var til og med en japansk versjon, laget utifra en tidlig versjon av gjots (0.3?), men koden ble aldri gitt tilbake til hovedprogrammet, noe som er synd. Uansett, verden stopper ikke opp, og GTK-2 kom, og det var flere og flere som ønsket LOTE (Languages Other Than English = Andre språk enn engelsk), meg medberegnet. Jeg hadde også lyst til å lære om python og dermed ble denne nåværende versjon av gjots til - gjots2 eller "sønn av gjots". Siden det er skrevet i et tolket språk, er det ikke fullt så kjapt til å starte opp som orginalen gjots, men det har haugevis av nye funksjoner: Som Goldilocks sa om stoler, grøt og senger; gjots2 er "helt riktig". \NewEntry Installasjon Hvis mulig, bruk RPM eller emerge (Gentoo) - de gjør det lett å avinstallere, og bedre pakkehåndtering enn setup.py \NewFolder \NewEntry Før installasjonen Det er mulig du må intallere (eller reinstallere) libglade, pygtk, gnome-python, bonobo-python, pyorbit eller gtk for din versjon av python, eller så kan du muligens sette PYTHONPATH til f.eks: export PYTHONPATH=/usr/local/lib/python2.3/site-packages/ I skrivende stund har jeg følgende installert (i Gentoo): dev-python/gnome-python-2.22.0 (2) dev-python/gnome-python-desktop-2.22.0 (0) gnome-base/gnome-common-2.20.0 (3) gnome-base/gnome-keyring-2.22.3 (0) gnome-base/gnome-mime-data-2.18.0 (0) gnome-base/gnome-vfs-2.22.0 (2) gnome-base/libgnome-2.22.0 (0) gnome-base/libgnomecanvas-2.20.1.1 (0) gnome-base/libgnomeui-2.22.1 (0) x11-themes/gnome-icon-theme-2.22.0 (0) dev-python/pygtk-2.12.1-r2 (2) x11-libs/gtk+-2.12.11 (2) gnome-base/libglade-2.6.3 (2.0) dev-python/pyorbit-2.14.3 (0) gnome-base/orbit-2.14.13 (2) rpm-baserte systemer (RedHat, Mandrake/Mandriva, SuSE) er antakligvis likeledes (gi innspill). Fedora trenger tilsynelatende også gnome-python2-gconf. Make sure the python packages are installed in the site-packages directory for the version of python that you are using (do a "python -V" to find out the version): Vær sikker på at python-pakkene er installert i site-packages- mappen for den versjonen av python du bruker (skriv "python -V" for å finne ut av versjonen): /usr/lib/pythonX.X/site-packages Hvis de ikke er det, kan du være nødt til å resintallere dem - f.eks, skjedde det for meg når python bel oppgradert fra 2.2 til 2.3 - /usr/lib/python2.X/site-packages mappen blir ikke oppdatert automatisk. Da måtte jeg emerge unmerge libglade pygtk gnome-python bonobo-python pyorbit emerge libglade pygtk gnome-python bonobo-python pyorbit gjots2 er skrevet med glade-2, så hvis du vil forandre eller rette på koden, så må du installere det også. Ellers så er det bare python! \NewEntry Gentoo Inntil og om ikke gjots2 har et offisielt ebuild (se i /usr/portage/app-office), så må du gjøre dette: Pakker som trengs i gentoo er (i avhengighetsrekkefølge - det er muligens mindre trøbbel å installer dem fra høyresiden av denne listen, og la Gentoo ta seg av modulene på venstre side - men jeg har ikke prøvd det): >=gtk+-2 >=libglade-2 >=pygtk-2 gnome-python-2 >=pyorbit-2 Pass på at du har en linje som følger i /etc/make.conf: PORTDIR_OVERLAY=/usr/local/portage Du kommer til å trenge følgende linje i /etc/portage/packages.keywords: app-office/gjots2 ~x86 Så: VERSION=3.1.9 CAT=/usr/local/portage/app-office/gjots2 cd /usr/portage/distfiles wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.tgz mkdir -p ${CAT} cd ${CAT} wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.ebuild ebuild ${CAT}/gjots2-${VERSION}.ebuild digest emerge gjots2 \NewEntry RPM-baserte systemer Bare gjør dette: VERSION=3.1.9 wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}-1.noarch.rpm rpm -i gjots2-${VERSION}-1.noarch.rpm Sølfølgelig kan du trenge å installere nødvendige programpakker først, slik som pygtk, libglade, etc På mitt Fedora core 4 system, må jeg ha disse pakkene: gtk2-2.6.7-4 libglade2-2.5.1-2 pygtk2-2.6.0-2 gnome-python2-2.10.0-1 gnome-python2-gconf-2.10.0-1 pyorbit-2.0.1-4 \NewEntry Fra tar-kildekoden VERSION=3.1.9 wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.tgz Hvis du installerer fra tar-kildekoden, dekomprimer først tar- filen, og cd inn i mappen og gjør dette: python setup.py install [ --prefix=/usr/... ] Avinstaller med uninstall.sh som også ligger der. På noen systemer kan du få tilgangsproblemer med innstallasjon i hovedsystemet fra kildekoden. Alle nye mapper som blir innstallert burde ha 0755 som tilgangskode, og alle filer burede ha 0644, bortsett fra 'docbook2gjots', 'gjots2', 'gjots2docbook', og 'gjots2html', som burde ha 0755. \EndFolder \NewEntry Hjelpe til Vi har satt opp to epost-lister for utvikling og support av gjots: Gjots utviklere : http://lists.sourceforge.net/lists/listinfo/gjots2-devel Gjots brukere : http://lists.sourceforge.net/mailman/listinfo/gjots2-users Programfeilrettinger er svært velkomne! Hvis noen ønsker å oversette dette til et annet språk, ta kontakt, så vil jeg sende en internasjonalisert versjon og beskjed-katalog. Jeg vil inkorporere alle nye funksjoner som folk tilbyr, så lenge jeg også liker dem. Hvis du vil legge til noe til hoved- utviklingen, send meg en beskjed om det først, så jeg kan si ifra om noen andre holder på med det samme. Bruk diff -ru for å lage en patch, og send det som et gzipped fil-vedlegg. Hvis jeg ikke velger å inkorporere din favorittfunskjon, så er du velkommen til å splitte opp utviklingen av programmet, men vær så snill å velg et nytt navn. Alt tatt i betraktning, så er jo dette GPL-kode. Merk at for å beskytte GPL-lisensen, er jeg nødt til å ta med navnet og epost-adressen din i seksjonene Authors og License. Hvis du ønsker å tilføre noe, ta kontakt med epost-listen for utviklere , for å sjekke at du ikke utfører dobbelt arbeid. For generelle idéer, se "Planlagte funksjoner" \NewEntry BRUKERHÅNDBOK \NewFolder \NewEntry Oppstart Bare start det med "gjots2" - det vil lagre alt i $HOME/.gjotsfile Eller bruk et argument - gjots2 tar imot en enkelt fil, f.eks: gjots2 ågjøre.gjots Disse valgene er tilgjenglige: --help Skriver ut standard hjelp for gjots2 -g, --geometry BREDDExHØYDE[+X+Y] Vindustørrelse i oppstart for gjots2. Merk at X- og Y- komponentene blir ignorert for øyeblikket. -r, --readonly Åpner filen i uskrivbar modus (ingen låsing blir utført) -d, --debug Lag utførlig informasjon for avlusing \NewEntry Åpne og lagre Åpne og lagre gjør det vanlige, og opererer på gjots-formaterte tekstfiler (se nedenfor). Hvis ikke uskrivbar modus er i effekt, lager gjots2 en låsefil for å sikre at bare en bruker kan skrive til filen, men mange kan lese den. Hvis en fil blir åpnet som allerede er låst, vil et dialogvindu gi valgene "Prøv igjen" eller "Uskrivbar". "Prøv igjen"-valget gir deg mulighet til å avslutte programmet som har låst fila. Låsefila er en enkel fil med navn .#filnavn, hvor filenavn er det samme som gjots2-filen som blir redigert. Det befinner seg i samme mappe som en originale gjots2-filen, og det inneholder bare prosess-koden til prosessen. Hvis prosessen som har låst fila dør uten å slette låsefila, kan gjots2 oppdage det neste gang en fil åpnes. På den måten virker låsing til og med på disker montert over NFS. Filer som blir åpnet som uskrivbare blir ikke låst. I Fil-menyen er det et valg som gjør det mulig å slå uskrivbar- statusen til programmet av og på. Det sørger også for låsing og opplåsing av filen som beskrevet ovenfor. Når gjots2 lagrer en fil, flyttes den gamle versjonen av fila til en sikkerhetskopi på samme måte som emacs. Hvis man lagrer til "fil.gjots" og den allerede finnes, blir den gamle versjonen lagret til "fil.gjots~" Hvis filnavnet slutter på ".cpt", vil gjotst forsøke å kryptere og dekryptere filen med ccrypt(1). Hvis ccrypt ikke er innstallert (det er ikke en standard del av alle Linux-distribusjoner) vil ikke overføringen bli utført. På samme måte vil .ssl-filer bli åpnet med (DES3) openssl og .gpg bli åpnet med (DES3) gpg. Installer ccrypt, openssl og gpg for god sikkerhet! \NewEntry Kontroller Skjermen har en menylinje og en verktøylinje på toppen som burde være temmelig selvforklarende. Verktøylinjen tin venstre kontrollerer tre-hierarkiet. Bare prøv det ut, så vil du raskt finne ut av det. "Nytt element" lager et nytt element på samme nivå som gjeldene element. "Nytt underelement" lager et nytt underelement til gjeldende element. "Opp" flytter gjeldene utvalg foran elementet før på samme nivå. "Ned" gjør det motsatte av "Opp" "Tilbake" flytter gjeldene utvalg til nivået over. "Fram" gjør gjeldene utvalg til underelementer av elementet rett før dem. "Del element" tar utvalget (i høyre panel) og flytter det til et nytt element. "Slå sammen elementer" slår sammen teksten i alle de valgte elementene til et stort element (separert med linjeskift) "Skjul alt" kollapser treet så bare de øverste elementene, under rot-elementet synes. "Vis alt" ekspanderer alle underelementer til de valgte elementer (rekursivt). "Sorter treet" åpner dialogvinduet for å sortere treet basert på gitte kriterier. Når et overelement mister alle sine underelementer blir det automatisk til et normalt element. På den øverste verktøylinjen har vi: "Nytt element", "Åpne" og "Lagre" gjør alle det vanlige. "Skriv ut"-knappen åpner dialogvinduet for utskrift. "Klipp ut", "Lim inn" og "Kopier" har to funksjoner hver, de opererer både på valgt tekstvinduet til høyre og på tre-elementer, basert på om tekst eller tre-elementer er valgt. "Bryt"-knappen formatterer gjeldene avsnitt til linjelengden som er satt i innstillingene (også aktivert med ^L). "Rediger eksternt"-knappen starter et eksternt skriveprogram ut ifra kommandolinjen i instillingene. Standardkommandoen er enten 'nedit %s', 'xedit %s' eller 'xterm -e vi %s' - etter som hva som er innstallert på systemet - %s blir byttet ut med et midlertidig filnavn. Hvilket som helst annet skriveprogram kan brukes, så lenge det det aksepterer et filnavn som argument - personlig foretrekker jeg "emacsclient %s". "Dato"-knappen setter inn et datostempel i filen på gjeldende posisjon. Du kan forandre formatet for datostemplet i instillingene. "Finn"-knappen åpner dialogvinduet for "Finn og erstatt". "Sorter" åpner dialogvinduet for sortering. "Innstillinger" åpner dialogvinduet for instillinger. \NewEntry Finn of Erstatt ^F, Rediger->Finn eller Finn-knappen i øverste verktøylinje åpner dialogvinduet for finn og erstatt. Virkemåten bør være intuitiv - skriv inn det du ønsker å finne i finn-linjen, og trykk på finn-knappen. For å erstatte en forekomst, sett inn den nye teksten i erstatt- linjen, og trykk på erstatt-knappen. Programmet søker så forover, trykk erstatt igjen, og det vil erstatte og søke forover igjen. For å erstatte alle forekomster (fra gjeldende posisjon til slutten av filen), trykk på "erstatt alle"-knappen. Både Lukk- og Avbryt-knappene lukker søk- og erstatt-dialogvinduet - Lukk-knappen lagrer nye innstillinger for senere bruk (bortsett fra Finn- og Erstatt-tekstene). Nullstill-knappen, nullstiller Finn- og Erstatt-tekstene. Alle feil dukker opp både i området rett under knappen, og i status- linjen i hovedvinduet. Under Finn- og Erstatt-knappene kan man sette noen innstillinger. "Bruk kapitalisering" gjør at søket blir begrenset til uttrykk der store og små bokstaver stemmer overens. "Globalt" gjør det søkes gjennom hele filen. Alternativet er å begrense søket til gjeldene element. "Regulært uttrykk" gjør at man kan bruke POSIX utvidede regulære uttrykk som definert i "man 7 regex" (f.eks. som brukt i egrep). En rask referanse til regulære utrykk (merk at gjots2 bruker Pythons re-pakke - se Python-dokumentasjon for fullstendige detaljer, den er en del enklere en den regex som ble brukt i C- versjonen av gjots): . hvilket som helst tegn ^ begynnelsen på linjen (bare som det første tegnet i det RE) $ slutten på linjen (bare som det siste tegnet i det RE) * ingen eller flere repetisjoner av forige RE + en eller flere repetisjoner av forige RE ? ingen eller en repetisjon av forige RE {n} nøyaktig n repetisjoner av forige RE {n,} n eller flere repetisjoner av forige RE {n,m} n til m repetisjoner av forige RE [ ] treffer på hvilket som helst tegn i settet. Områder er f.eks. [a-z] [^ ] treffer på hvilket som helst tegn som ikke er i settet. ( ) Danner et 'husket' mønster | Mønster alterasjon, f.eks. x|y betyr "treffer på x eller y" \n n er 1 til 9 - tilbakereferanse til tidligere mønster \b begynnelse eller slutt av et ord \d et siffer == [0-9] \s tomrom == [ \t\n\r\f\v] \S ikke tomrom \w alfanumerisk \W ikke alfanumerisk For å bruke en av de 'magiske' tegnene ^.[$()|*+?{\, så sett en \ foran. For erstatningsmønstret er følgende sekvenser tilgjengelige: \& lim inn hele den funnede teksten \1..\9 lim inn det nth funnede undermønstret (definert med (...) ) \n sett inn linjeskift \NewEntry Utskrift "Skriv ut"-dialogvinduet lar deg velge "hva som skal skrives ut": Gjeldene element, Utvalg eller alt sammen og noen forbedringer: Mate ut en side etter hvert element og Autonumrering (ikke egentlig implementert ennå) Standarden for "Skriv ut"-kommandoen er å forsøke å skrive ut via et forhåndsvisningsprogram, og kommandoen ser slik ut: if type gv; then GV='gv -seascape' else if type ggv; then GV=ggv else # no preview command found, just print it lpr $1 exit fi fi T=/tmp/.tmp.$$ mpage -f -2 -I1 -P- $1 > $T ($GV $T; rm $T)&B Bortsett fra å være noe kompleks for en enlinjes kommando, lider den også av å ikke vite noe om postscript-visere (f.eks. kghostview, evince etc.) eller om nye inkompatible versjoner, f.eks, gv-3.6.1 kjenner ikke -seascape, den forstår bare --seascape. Før det finnes noen standard mekanisme for å forhåndsvise utskrifter i X (i både kde, gnome og andre!!) vil vi stole på at du, kjære bruker, stiller inn dette til å passe dine egene behov og ditt system. Noen mulige forslag for "Utskriftskommando" istedet for standarden: For helt enkelt å sende rå utdata direkte til skriveren: lpr $1 For å bruke en forhåndsviser, set "Utskriftskommando" slik: GV='gv -seascape'; T=/tmp/.tmp.$$;mpage -f -2 -I1 -P- $1 > $T;($GV $T; rm $T)& Den antar at du har gv-3.5.8 innstallert. For å bruke en annen forhåndsviser eller andre innstillinger, modifiser GV-parameterne slik: # for å bruke gv-3.6.1 som forhåndsviser: GV='gv --seascape' # for å bruke gvv som foråndsviser: GV='ggv' # for å bruke kghostview som forhåndsviser: GV='kghostview' # for å bruke evince som forhåndsviser(ikke utprøvd): GV='evince' Merk at gvv, kghostview og evince (?) ikke har kommandolinjeparametere for å invertere bildet, så du må gjøre det ved å peke og klikke. Dumt, ikke sant? Hva med meg? Jeg bruker gv. \NewEntry Innstillinger Følgende ting kan velges som innstillinger med gconf: Tekstformatering - standard er "fmt -w %d" Linjelengde for tekst - blir brukt når avsnitt formateres, (65) Eksternt skriveprogram - skriveprogram som skal brukes for "Rediger eksternt" f.eks.: nedit %s xedit %s xterm -e vi %s emacsclient %s Datoformat - formatteskt å mate til strftime(3) til bruk i datostempel. Prøv "man strftime" for detaljer. (%F) f.eks.: %F : (2002-11-03) %c : Sun 03 Nov 2002 10:33:22 AM EST (%d %b %y) : (03 Nov 02) Skrifttype - skrifttypen som skal brukes til å vise tekst. Kontroller og treet bruker fortsatt standard GTK-2 skrifttyper. \NewEntry Tasteoperasjoner De fleste tastesnarveiene er som normalt. I tekstvinduet gjelder det normale GTK-2 tasteoppsettet (noe forskjellig fra C/GTK-1-versjonen av gjots): ^a Velg all teksten home gå til begynnelsen av linjen end gå til slutten av linjen venstre gå tilbake et tegn høyre gå fram et tegn ^venstre gå et ord til venstre ^høyre gå et ord til høyre ned gå til neste linje opp gå til forige linje ^home/end gå til begynnelsen/slutten av teksten delete slett tegnet etter markøren slettetast slett tegnet før markøren ^L omformater avsnittet, eller "linjebryt" Shift og markerer et utvalg. I tillegg virker følgende: ^x klipp ut ^c kopier ^v lim inn Tasteoppsett i treet: Generelt beveger de deg runt i treet med normale taster. Sammen med kontrolltasten manipulerer du treet. opp gå til forige element ned gå til neste element ^opp flytt valgte element(er) oppover i treet ^ned flytt valgte element(er) nedover i treet shift-opp/ned utvid utvalget venstre gå til overelementer høyre gå til underelementer ^venstre forfrem element(er) ^høyre degrader element(er) home gå til det første elementet på gjeldende nivå end gå til det siste elementet på gjeldende nivå ^home gå til det aller første elementet ^end gå til det siste (viste) elementet Globalt tasteoppsett: ^s Lagre ^q Avslutte ^f Åpner dialogvinduet for Finn og erstatt \NewEntry Importer og eksporter Du kan føre data inn og ut av gjots2 med importer- og eksporter-' funksjonene. Disse opererer på det valgte elementet, så du kan kontrollere nøyaktig hva som blir lagret. Filformatet er det normale gjots2-formatet. \NewEntry gjots2 filformat Det er det samme som for gjots, men med et hierarki. \NewEntry tittel1 det er dette som finnes i tittel1 \NewFolder \NewEntry tittel2 dette er skrift i tittel2 \NewEntry title3 og tittel3s tekst \EndFolder \nøkkelordene må være på begynnelsen av linjen for å bli gjenkjent. \NewEntry Kryptering gjots2 kan kryptere og dekryptere file med ccrypt(1), openssl(1) eller gpg(1). Filene blir lagret med kryptering i henhold til fil-etternavnet du gir: .cpt ccrypt .ssl openssl .gpg gpg gjots2 spør etter passord der det trengs. Pass på at du har ccrypt, openssl eller gpg installert hvis du ønsker å bruke denne funksjonen. Ikke mist passordet - Jeg kan ikke hjelpe deg med å finne tapte passord. \NewEntry Sikkerhet For kryptering i ccrypt, har jeg brukt tilsvardende som: {write klartekst} | KEYWORD=passord ccencrypt -E KEYWORD >filnavn.cpt Dette avslører passordet et kort øyeblikk i en miljø- parameter, men den blir slettet fra gjots2-prosessen med en gang den er brukt. ccrypts man-side sier at "på de fleste moderne systemer", så beskytter ps-kommandoen miljøparametere fra vanlige brukere. I Linux kan du skrive 'cat /proc/PID/environ' for å se miljøparameterne til prosesser som du selv eien - bare root kan spionere på noen andres milje, så det å bruke -E er ikke mindre sikkert enn ditt eget innloggingspassord og roots innloggingspassord. Den eneste alternative måten å gjøre dette på, som jeg kan ser, ville være: {write klartekst} >fil.gjot echo passord |ccencrypt -k - fil.gjot ... selv om dette gir bedre beskyttelse av passordet, så eksponerer det (for et kort øyeblikk) filen som klartekst - like ille, eller verre enn å eksponere nøkkelens som en miljøparameter! Dekryptering er mye lettere - Jeg bruker stdin til å gi passordet: echo passord |ccdecrypt -c -k - filnavn.cpt | {les fra pipe} En tilleggskanal (f.eks. stdin=0, stdout=1 stderr=3 stdpasswd=3= for ccrypt for å lese passord ville vært en bedre løsning (men ccrypt har ikke støtte for det). \NewEntry Verktøysprogrammer \NewFolder \NewEntry gjots2html gjots2html konverterer en gjots2-fil til HTML, sammen med en innholdsfortegnelse som ser besynderlig ut som et tema-tre. Se man-siden for flere detaljer. gjots2html.py er en python-versjon av det samme programmet som kan være mer stabilt. \NewEntry gjots2docbook konverterer en gjots2-fil til DOCBOOK XML-format. Les man-siden for en mer detaljert beskrivelse. \NewEntry docbook2gjots Konverterer DOCBOOK XML til gjots2 - les man-siden for fullstendig beksrivelse. \EndFolder \EndFolder \NewEntry Development status Hvis du har idéer om hvordan gjots2 kan bli forbedret, send en epost til gjots2-users@lists.sourceforge.net \NewFolder \NewEntry Planlagte funksjoner Det som blir lagt til vil være begrenset av design-målet om å være "raskt og lett", men kan inneholde: Lokalisering ============ Fra og med versjon 2.3.0 er gjots2 internasjonalisert og klar for oversettelser. Hvis du ønsker å se støtte for ditt språk, kontakt epost-listen på gjots2 ====== Legg til tidsstempel på hvert element og vis det i statuslinjen nå de er valgt. autosortert av/på for mapper Rediger->Tøm, Egenskaper, Innstillinger->Brukervalg autosave Støtte for innstillger per element: \Options åpent/lukket para detaljer ...? gjots2html ========== gjots2html går gjennom noen positive forandringer. Det er et nytt script markert som beta skrevet i Python, som støtter følgende: 1) Legg til
-linjer etter hver seksjon. 2) Legger til en lenke til Innholdsfortegnelsen etter hver seksjon. 3) Spesifiserer en tittel på siden. 4) Legg inn resultatet fra gjots2html.py inn i en eksisterende HTML mal. 5) Ikke ta med innholdsfortegneslen. 6) Skriv HTML til en spesifisert fil. 7) Legg til en link til en spesifisert CSS-fil. 8) Bryt gjots2-teksten på en spesifisert linjelengde. Den har også støtte for et ubestemt antall nivåer i hierarkiet, selv om HTML bare har støtte for 9. Legg til parametere: -r N, --rule=N:
for alle nivåer oppt til N \NewEntry Kjente programfeil Ingen kjente, selvfølgelig, utenom: Feilaktige feilmeldinger hvis det ikke er mulig å åpne en gjots2- fil ved oppstart. Dialogvinduet for sortering kan ikke sette seg selv til verdiene lagret i gconf. \NewEntry Platformer Testet på følgende platformer: Gentoo Linux i386 Ubuntu 4.10 Mandrake 10.1 Fedora Core 3, 4 Novell Linux Desktop 9 SUSE 9.2, 9.3 Vi ser alltid etter hjelp av folk som kan teste gjots-versjoner på sine favorittdistribusjoner. Gi en beskjed i og vil bli glade for å legge til din testede distribusjon. Noen av disse platformene kan trenge oppdaterte pakker. Referer til vår OSS (ofte spurte spørsmål) for en diskusjon om dette. \EndFolder \NewEntry Gjots OSS Ofte spurte sprørsmål om gjots2 Hvis du har spørsmål som ikke er svart på her, kontakt epostlisten for gjots2-brukere . \NewFolder \NewEntry Sp: Ikonene til venstre ser krønsjet ut. Sv: Du bruker en dårlig versjon av libglade2. Oppgrader libglade til vesjon >= 2.4.1. Vi anbefaler at du oppdater denne pakken ved hjelp av din distribusjons pakkehåndterer. \NewEntry Sp: Jeg får feilmeldingen, ImportError: No module named distutils.core når jeg bygger gjots2 fra kildekoden. Sv: Distribusjonen din har effektivt *ødelagt* python-installasjonen ved å ikke inkludere distutils-modulene, som er en del av pythons kjernepakke. Installer python slik det skal være for å ordne opp. Vi kjenner til at dette skjer i: Ubuntu (5.10), NLD9, SUSE 9.2. Ubuntu 5.10 fiks: # apt-get install pythonX.X-dev \NewEntry Sp: Jeg får feilmeldingen, ImprtError: No module named gconf Sv: Installer gnome-python.2. Denne pakken vil inneholde Python- bindingene for gconf og finnes her: http://www.pygtk.org/ Du burde være i stand til å finne forhåndsbygde pakker for disse, slik som følgende: Mandrake 10.1: # rpm -ivh gnome-python-gconf-2.0.3-1mdk.i586.rpm Fedora Core 3: # rpm -ivh gnome-python2-gconf-2.6.0-3.i386.rpm \NewEntry Sp: Hvordan får du gjots2 til å kjøre på Novell Linux Desktop? Sv: Nå må installere gnome-python (og de pakkene den er avhengig av) \NewEntry Sp: Hva er forskjellen på en gamle C-versjonen (gjots-0.X) og den nye python-versjonen, gjots-2.X.X? Sv: Ved 2.0.0 utgivelsen, var det disse forskjellene (for utvikling siden da, se CHANGES logger): Støtte for Unicode i datafilene, så jeg kan lage notater på russisk, kanskje tyrkisk, arabisk, hvem vet hva som vil fungere. Rapporter er velkomne. Mulighet for andre språk enn engelsk i selve programmet. Er det noen frivillige for I18N og L10N? Dra og slipp i tre-vinduet, for enkel organisering. Støtte for gconf med GTK-2 temaer. Sortering av elementer og/eller tekst Slå sammen elementer Dele opp elementer Utskrift \EndFolder \NewEntry Forfattere & Lisens \NewFolder \NewEntry Forfattere Skrevet av: Bob Hepple Gabriel Munoz Logo av: DSP Popeck , 2002 Fransk oversettelse av: Rui Nibau , 2005 Norsk oversettelse av: Robert Emil Berge , 2006 \NewEntry Lisens (GPL) Copyright (C) 2005 Robert Hepple Copyright (C) 2002 DSP Popeck Her kommer først en uoffisiell oversettelse av GPL. Lisensen som gjelder for dette programmet står på engelsk under. GNU GENERAL PUBLIC LICENCE * Forord * LOVER OG REGLER FOR KOPIERING, DISTRIBUSJON OG MODIFISERING * Hvordan du kan legge til disse reglene til dine nye programmer GNU GENERAL PUBLIC LICENCE (GNU GENERELL OFFENTLIG LISENS) Versjon 2, juni 1991, oversatt januar 2004; oppdatert juli 2005. Opphavsrett © 1989, 1991 Free Software Foundation 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Alle har lov til å kopiere og distribuere umodifiserte kopier av dette lisensdokumentet, men å endre det er forbudt. Forord De fleste programvarelisenser er laget for å ta vekk din frihet til å dele og endre programvaren. GNU General Public Licence vil som en konstrast garantere din frihet til å dele og endre fri programvare -- og gjøre det sikkert at programvaren er fri for alle dets brukere. Denne GNU General Public Licence gjelder for mesteparten av Free Software Foundations programvare og til alle andre programmer som er laget av folk som vil bruke den (Noen andre av Free Software Foundation sin programvare er dekket av GNU Library General Public Licence isteden.). Du kan legge den til dine programmer, også. Når en snakker om fri programvare, refererer en til frihet, ikke pris. Våre lisenser er laget for å forsikre at du har frihet til å distribuere kopier av fri programvare (og ta deg betalt for tjenesten om du ønsker), som du mottar kildekoden til eller kan få hvis du vil ha den, slik at du kan endre programvaren eller bruke deler av den i nye, frie programmer, og at du vet at du kan gjøe dette. For å beskytte dine rettigheter, må det være regler som forbyr noen å nekte deg disse rettighetene eller be deg om å gi dem fra deg. Disse reglene betyr en del ansvar for deg hvis du distribuerer kopier av programvaren, eller endrer den. For eksempel, hvis du distribuerer kopier av et slikt program, enten gratis eller for penger, må du gi mottakeren alle de rettighetene du har. Du må være sikker på at de også, mottar eller kan få kildekoden. Og du må vise dem disse reglene slik at de vet hvilke rettigheter de har. GNU GPL beskytter rettighetene dine i to steg: (1) Gir deg opphavsrett til programvaren, og (2) tilby deg denne lisensen som gir deg lovlig tilatelse til å kopiere, distribuere og/eller endre programvaren. Også, for hver forfatters beskyttelse og våres, vil en forsikre seg om at alle forstår at det ikke er noen garanti for denne frie programvaren. Dersom programvaren er endret av noen andre og gitt videre, vil de at mottakeren skal vite at det de har fått, ikke er originalen, slik at problemer introdusert av andre ikke vil reflektere den originale forfatterens rykter. Til slutt, ethvert fritt program er konstant truet av programvarepatenter. De ønsker å unngå faren som redistributører av frie programmer vil individuelt ta patenter, noe som gjør at programvaren blir eiendom. For å unngå dette,har de gjort det klart at enhver patent må være lisensert for alles fri bruk eller ikke lisensert i det hele tatt. De presise lovene og reglene for kopiering, distribusjon og modifisering er under. LOVER OG REGLER FOR KOPIERING, DISTRIBUSJON OG MODIFISERING 0. Lisensen gjelder for ethvert program eller annet verk som inneholderen notis plassert ved opphavsrettholderen som sier at det kan bli distribuert under lovene av denne General Public Licence. "Programmet", under, refererer til et slikt program eller verk, og et "verk basert på programmet" betyr enten Programmet eller noe som helst underliggende verk under copyright loven: det betyr, et verk som inneholder Programmet eller en del av det, enten umodifisert eller med modifikasjoner og/eller oversatt til et annet språk. (Heretter er oversettelse inkludert uten begrensninger innenfor uttrykket "modifikasjon"). Hver lisensier er addressert som "deg". Aktiviteter annet en kopiering, distribuering og modifisering er ikke dekket av denne Lisensen; de er utenfor dette. Det å kjøre et program er det ikke noen restriksjoner på, og utskrift fra programmet er dekket kun dersom innholdet baserer seg på et verk basert på Programmet (uavhengig av om det har blitt laget av det kjørende Programmet). Enten det er sant eller ikke avhenger av hva programmet gjør. 1. Du kan kopiere og distribuere umodifiserte kopier av Programmets kildekode så lenge du mottar det, i hvilket som helst medium, gitt at du lett synlig og korrekt ved hver kopi legger en riktig opphavsrettnotis og informasjon om garanti; ha i takt alle notisene som refererer til denne Lisensen og at det ikke finnes noen som helst form for garanti; og gi alle andre mottakere av Programmet en kopi av denne Lisensen ved Programmet. 2. Du kan modifisere din kopi eller kopier av Programmet eller hvilken som helst den av den, følgende forme et verk basert på Programmet, og kopiere og distribuere slike typer av modifikasjoner og verk under regler i Seksjon 1 over, gitt at du også oppfyller alle disse krav: a) Du må sørge for at de modifiserte filene har viktige notiser som sier at du endret filene til den tiden og den datoen du gjorde endringer. b) Du må sørge for at ethvert verk du distribuerer eller publiserer, som i sin helhet eller deler av er tatt fra Programmet eller enhver del derav, blir lisensiert helhetlig uten kostnader til alle tredjeparter under reglene i denne Lisensen. c) Dersom det modifiserte programmet normalt sett leser kommandoer interaktivt når det kjører, må du sørge for at det, når det starter å kjøre interaktivt på den mest ordinære måten, skriver ut eller viser en passende opphavsrettnotis og en notis som sier at det ikke er noen garanti (eller, som sier at du selv tilbyr en garanti) og at brukere kan redistribuere programmene under disse betingelsene, og fortelle brukeren hvordan det er mulig å vise en kopi av denne Lisensen. (Unntak: Dersom Programmet i seg selv er interaktivt, men normalt sett ikke skriver en slik notis, trenger ikke ditt verk basert på Programmet å skrive ut en slik notis.) Disse betingelsene gjelder for det hele modifiserte verket. Dersom identifiserbare seksjoner av det verket ikke er fra Programmet, og kan bli fornuftig ansett som uavhengig og et separat verk i seg selv, ikke legg til de seksjonene når du distribuerer dem som separate verk. Men når du distribuerer den samme seksjonen som del av et helt verk som er basert på Programmet, må hele distribusjonen være på betingelsene i denne Lisensen, hvis rettigheter for andre lisenser utvider til det hele, og følgende til hver og en del uavhengig av hvem som skrev det. Følgende er det ikke meningen i denne seksjonen å kreve rettigheter eller konkurrere dine rettigheter til verk laget bare av deg; isteden er meningen å utøve retten til å kontrollere distribusjonen av utspringere eller samlebare verk basert på Programmet. I tillegg, små uviktige biter av et annet verk som ikke er basert på Programmet med Programmet (eller et verk basert på Programmet) på et lagringsmedium bringer ikke det andre verket under denne lisensen. 3. Du kan kopiere og distribuere Programmet (eller et verk basert på det, under Seksjon 2) i objektkode eller kompilert form under reglene i Seksjon 1 og 2 over gitt at du gjør ett av følgende: a) Legger ved komplett korresponderende maskinleselig kildekode, som må være distribuert under reglene i Seksjon 1 og 2 på et medium spesielt brukt for programvareutgivelse; eller: b) Legge ved et skriftlig tilbud, gyldig for minst tre år, om å gi ethvert tredjeparti, for en sum mindre enn å fysisk utføre kildekodedistribusjon, en komplett maskinleselig kopi av den korresponderende kildekoden, for å bli distribuert under reglene i Seksjon 1 og 2 over på et medium spesielt brukt for programvareutgivelse; eller: c) Legge ved informasjon du mottok som tilbudet til å distribuere korresponderende kildekode. (Dette alternativet er kun tillatt for ikke-kommersiell distribusjon og kun dersom du mottok programmet i objektkode eller kompilert form med et slikt tilbud, i følge Underseksjon b over.) Kildekoden for et verk betyr den foretrukne formen av verket for å modifisere det. For et kjørbart arbeid, betyr komplett kildekode all kildekode for alle modulene det inneholder, pluss alle tilhørende grensesnittsdefinisjonsfiler, pluss skriptene som brukes til å kontrollere kompilering og installasjon av det kjørbare programmet. Men, som et spesielt unntak, kildekoden som blir distribuert trenger ikke å inkludere noe som vanligvis er distribuert (i enten kilde eller binær form) med viktige komponenter (kompilator, kjerne og så videre) av operativsystemet til det systemet som det kjørbare programmet kjører på, med mindre den komponenten i seg selv akkompagnierer det kjørbare programmet. Dersom distribusjonen av maskinkoden eller objektkoden er laget for å tilby tilgang til å kopiere fra en bestemt plass, da vil det å tilby tilsvarende tilgang til å kopiere kildekode fra den samme plassen telle som distribusjon av kildekoden, selv om tredjepartier ikke er påbudt å kopiere kildekoden ved objektkoden. 4. Du kan ikke kopiere, modifisere, underlisensere, eller distribuere Programmet på andre måter enn slik som er uttrykt i denne Lisensen. Ethvert forsøk på å kopiere, modifisere, underlisensere eller distribuere Programmet er ugyldig og du vil automatisk få fratatt dine rettigheter under denne Lisensen. Men, partier som ikke har mottatt kopier, eller rettigheter, fra deg under denne Lisensen vil ikke få deres rettigheter fratatt så lenge slike partier fortsatt følger reglene. 5. Du er ikke påkrevd å akseptere denne Lisensen, siden du ikke har signert den. Men, ingenting annet gir deg rett til å modifisere eller distribuere Programmet eller programmer som stammer fra det. Disse handlingene er forbudt ved lov dersom du ikke aksepterer denne Lisensen. Derfor, ved å modifisere eller distribuere Programmet (eller ethvert verk basert på Programmet), indikerer du at du aksepterer denne Lisensen til å gjøre det, og alle dets regler og retningslinjer for å kopiere eller modifisere Programmet eller verk basert på det. 6. Hver gang du redistribuerer Programmet (eller et arbeid basert på Programmet), vil mottakeren automatisk motta en lisens fra den originale forfatteren til å kopiere, distribuere eller modifiserere Programmet ettre disse reglene. Du kan ikke påtvinge videre restriksjoner for mottakerens rettigheter gitt her. Du er ikke ansvarlig for å påtvinge at tredjepartier aksepterer denne Lisensen. 6. Hver gang du redistribuerer Programmet (eller et arbeid basert på Programmet), vil mottakeren automatisk motta en lisens fra den originale forfatteren til å kopiere, distribuere eller modifiserere Programmet etter disse reglene. Du kan ikke påtvinge videre restriksjoner for mottakerens rettigheter gitt her. Du er ikke ansvarlig for å påtvinge at tredjepartier aksepterer denne Lisensen. 7. Dersom, som en konsekvens av en dom fra retten eller en patent som begrenser dine rettigheter eller for enhver annen grunn (ikke begrenset til patentsaker), gjør at du er påtvunget (enten av en dommer, en avtale eller annet) til å gå mot reglene til denne Lisensen, unnskylder de deg ikke fra reglene i denne Lisensen. Dersom du ikke kan distribuere for så å tilfredsstille sammenhengene, dine obligasjoner under denne Lisensen og enhver relevant obligasjon, vil du som en konsekvens ikke kunne distribuere Programmet i det hele tatt. For eksempel, dersom en patent lisens ikke tillater fri redistribusjon av Programmet av alle som mottar kopiere direkte eller indirekte gjennom deg, da er den eneste måten du kan tilfredsstille den og denne Lisensen å totalt frastå fra distribuering av Programmet. Dersom noen del av denne seksjonen blir holdt ugyldig eller anses som ikke-påtvingbar, er balansen av denne seksjonen er ment til å gjelde og seksjonen som en helhet er ment å gjelde i andre situasjoner. Det er ikke meningen i denne seksjonen å få deg til å oppgi patenter eller andre eiendomsretter eller få deg til å ugyldiggjøre dem; denne seksjonen har som intensjon å beskytte integriteten av det frie programvaredistribusjonssystem, som er implementert av offentlige lisensutøvere. Mange folk har kommet med generøse deltakelser i det store spekter av programvare distribuert gjennom systemet i avhengighet av konsistent gjennomføring av systemet, det er opp til forfatteren/donoren å bestemme om vedkommende er villig til å distribuere programvare gjennom et annet system og en som har en lisens kan ikke ta den avgjørelsen. Denne seksjonen er ment for å gjøre det klart hva som er trodd å være en konsekvens av resten av denne Lisensen. 8. Dersom distribusjonen og/eller bruk av Programmet har restriksjoner i bestemte land eller patenter eller av opphavsrett, kan den orignale opphavsrettinnehaveren som plasserer Programmet under denne lisensen legge til geografiske distribusjonsbegrensninger, slik at distribusjon er tillatt bare i eller mellom land som ikke er ekskludert. I slike tilfeller, blir denne Lisensen del av begreninsningen slik som skrevet i kroppen av denne Lisensen. 9. Free Software Foundation kan utgi reviderte og/eller nye versjoner av General Public Licence-dokumentet fra tid til annen. Slike nye versjoner vil bli værelike i ånd til den nåværende versjonen, men kan endre seg når det gjelder adresse. Enhver versjon er gitt et versjonnummer. Dersom Programmet spesifiserer et versjonnummer av denne Lisensen som legger til det og "enhver senere versjon" ("any later version"), har du valget mellom de følgende reglene enten den versjonen eller enhver senere versjon publisert av Free Software Foundation. Dersom Programmet ikke spesifeiserer et versjonnummer av denne Lisensen, kan du velge enhver versjon noen gang utgitt av Free Software Foundation. 10. Dersom du vil legge til deler av Programmet inn i alle gratis programmer hvis distribusjonsregler er forskjellige, skriv til forfatteren og spør om tillatelse. For programvare som er copyrightet av Free Software Foundation, skriv til Free Software Foundation, de gjør noen ganger unntak for dette. Deres avgjørelse vil bli veiledet av de to målene om å beholde den frie statusen av alt som stammer fra deres frie programvare og for å bemerke deling og gjenbruk av programvare generelt sett. INGEN GARANTI 11. FORDI DETTE PROGRAMMET ER LISENSERT GRATIS, ER DET INGEN GARANTI FOR PROGRAMET, MED MINDRE FORLENGET AV LOVEN. UNNTATT NÅR DET ER UTTRYKT ANNERLEDES I SKRIVET OPPHAVSRETTINNEHAVEREN OG/ELLER ANDRE PARTIER TILBYR PROGRAMMET "SOM DET ER" UTEN GARANTI AV NOE SLAG, ENTEN UTTRYKT ELLER PÅTVUNGET, INKLUDERT, MEN IKKE BEGRENSET TIL, GARANTIER AV UTGIVING FOR DET BESTEMTE FORMÅLET. HELE RISIKOEN OG KVALITETEN OG UTFØRINGEN AV PROGRAMMET ER MED DEG. SKULLE PROGRAMMET VISE SEG Å VÆRE DEFEKT, MÅ DU SELV BETALE ALLE KOSTNADENE FOR NØDVENDIG SERVICE, REPARERING ELLER KORRIGERING. 12. I INGEN SITUASJON PÅKREVD AV LOV ELLER AVTALT TIL I SKRIVET VIL ENHVER OPPHAVSRETTINNEHAVER, ELLER ET ANNET PARTI SOM KAN MODIFISERE OG/ELLER REDISTRIBUERE PROGRAMMET SOM TILLATT OVER, VÆRE ANSVARLIG FOR DINE SKADER, INKLUDERT ETHVERT GENERELT, SPESIELT, VIKTIG, ELLER KONSEKVENTE SKADER SOM KOMMER AV BRUK ELLER AT DET IKKE ER MULIG Å BRUKE PROGRAMMET (INKLUDERT MEN IKKE BEGRENSET TIL TAP AV DATA ELLER DATA SOM BLIR LAGET UNØYAKTIG ELLER TAP FORÅRSAKET AV DEG ELLER TREDJEPARTIER ELLER AT PROGRAMMET FEILER I Å OPERERE MED ANDRE PROGRAMMER). SELV OM SLIKE INNEHAVERE ELLER ANDRE PARTIER HAR BLITT FORTALT OM SANNSYNLIGHETEN FOR SLIKE SKADER. Slutt på regler Her kommer den offisielle GPL på engelsk, som gjelder for dette programmet. GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS \EndFolder gjots2-3.1.9/doc/gjots2.no.gjots000066400000000000000000001606231401630023500163760ustar00rootroot00000000000000GJOTS2 MANUAL g j o t s 2 AV Bob Hepple Brisbane Queensland Australia Versjon 3.1.9 bhepple@freeshell.org http://bhepple.freeshell.org/gjots \NewEntry Introduksjon gjots2 er et jotter-program for din datamaskin. Hvorfor trenger vi enda et jotter-program? Vel, da min gamle trofaste Psion-5-planlegger døde, måtte jeg flytte all informasjonen over til Linux, så jeg begynte å lete etter programvare som kunne utfylte behovene mine i henhold til dette. Jeg fant massevis av programvare for dagbøker, og jeg hadde allerede skrevet et fint kalkulatorprogram (gdcalc), men jeg fant ingenting som passet helt til en jotter. Andre programpakker jeg så på var: * altfor enkle (f.eks bare et nivås hierarki), * for komplekse (for mange komponenter som i Cobra, SQL eller liknende) * web-baserte * ikke i stand til å vise og arbeide på treet samtidig som på tekstelementene * for rotete - slang opp vinduer som postit-lapper over hele skjermen Så var det de som jeg ikke kunne få til å virke eller bare krasjet. Når det er sagt så finnes det mange gode programpakker der ute, men ingen som passet akkurat til mine behov. Kjots virket som det beste av dem. Uansett så trengte jeg å lære hvordan man lager GTK-trær, og å øve på å bruke glade - så dermed ble gjots født, og lever ennå. Det ble først skrevet i C (nå i Python), glade og gtk, var ganske raskt, og er fortsatt noe jeg bruker hver dag. Utifra e-posten jeg har mottatt så er det temmelig brukbart for andre også, noe som er fint. Det var til og med en japansk versjon, laget utifra en tidlig versjon av gjots (0.3?), men koden ble aldri gitt tilbake til hovedprogrammet, noe som er synd. Uansett, verden stopper ikke opp, og GTK-2 kom, og det var flere og flere som ønsket LOTE (Languages Other Than English = Andre språk enn engelsk), meg medberegnet. Jeg hadde også lyst til å lære om python og dermed ble denne nåværende versjon av gjots til - gjots2 eller "sønn av gjots". Siden det er skrevet i et tolket språk, er det ikke fullt så kjapt til å starte opp som orginalen gjots, men det har haugevis av nye funksjoner: Som Goldilocks sa om stoler, grøt og senger; gjots2 er "helt riktig". \NewEntry Installasjon Hvis mulig, bruk RPM eller emerge (Gentoo) - de gjør det lett å avinstallere, og bedre pakkehåndtering enn setup.py \NewFolder \NewEntry Før installasjonen Det er mulig du må intallere (eller reinstallere) libglade, pygtk, gnome-python, bonobo-python, pyorbit eller gtk for din versjon av python, eller så kan du muligens sette PYTHONPATH til f.eks: export PYTHONPATH=/usr/local/lib/python2.3/site-packages/ I skrivende stund har jeg følgende installert (i Gentoo): dev-python/gnome-python-2.22.0 (2) dev-python/gnome-python-desktop-2.22.0 (0) gnome-base/gnome-common-2.20.0 (3) gnome-base/gnome-keyring-2.22.3 (0) gnome-base/gnome-mime-data-2.18.0 (0) gnome-base/gnome-vfs-2.22.0 (2) gnome-base/libgnome-2.22.0 (0) gnome-base/libgnomecanvas-2.20.1.1 (0) gnome-base/libgnomeui-2.22.1 (0) x11-themes/gnome-icon-theme-2.22.0 (0) dev-python/pygtk-2.12.1-r2 (2) x11-libs/gtk+-2.12.11 (2) gnome-base/libglade-2.6.3 (2.0) dev-python/pyorbit-2.14.3 (0) gnome-base/orbit-2.14.13 (2) rpm-baserte systemer (RedHat, Mandrake/Mandriva, SuSE) er antakligvis likeledes (gi innspill). Fedora trenger tilsynelatende også gnome-python2-gconf. Make sure the python packages are installed in the site-packages directory for the version of python that you are using (do a "python -V" to find out the version): Vær sikker på at python-pakkene er installert i site-packages- mappen for den versjonen av python du bruker (skriv "python -V" for å finne ut av versjonen): /usr/lib/pythonX.X/site-packages Hvis de ikke er det, kan du være nødt til å resintallere dem - f.eks, skjedde det for meg når python bel oppgradert fra 2.2 til 2.3 - /usr/lib/python2.X/site-packages mappen blir ikke oppdatert automatisk. Da måtte jeg emerge unmerge libglade pygtk gnome-python bonobo-python pyorbit emerge libglade pygtk gnome-python bonobo-python pyorbit gjots2 er skrevet med glade-2, så hvis du vil forandre eller rette på koden, så må du installere det også. Ellers så er det bare python! \NewEntry Gentoo Inntil og om ikke gjots2 har et offisielt ebuild (se i /usr/portage/app-office), så må du gjøre dette: Pakker som trengs i gentoo er (i avhengighetsrekkefølge - det er muligens mindre trøbbel å installer dem fra høyresiden av denne listen, og la Gentoo ta seg av modulene på venstre side - men jeg har ikke prøvd det): >=gtk+-2 >=libglade-2 >=pygtk-2 gnome-python-2 >=pyorbit-2 Pass på at du har en linje som følger i /etc/make.conf: PORTDIR_OVERLAY=/usr/local/portage Du kommer til å trenge følgende linje i /etc/portage/packages.keywords: app-office/gjots2 ~x86 Så: VERSION=3.1.9 CAT=/usr/local/portage/app-office/gjots2 cd /usr/portage/distfiles wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.tgz mkdir -p ${CAT} cd ${CAT} wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.ebuild ebuild ${CAT}/gjots2-${VERSION}.ebuild digest emerge gjots2 \NewEntry RPM-baserte systemer Bare gjør dette: VERSION=3.1.9 wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}-1.noarch.rpm rpm -i gjots2-${VERSION}-1.noarch.rpm Sølfølgelig kan du trenge å installere nødvendige programpakker først, slik som pygtk, libglade, etc På mitt Fedora core 4 system, må jeg ha disse pakkene: gtk2-2.6.7-4 libglade2-2.5.1-2 pygtk2-2.6.0-2 gnome-python2-2.10.0-1 gnome-python2-gconf-2.10.0-1 pyorbit-2.0.1-4 \NewEntry Fra tar-kildekoden VERSION=3.1.9 wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.tgz Hvis du installerer fra tar-kildekoden, dekomprimer først tar- filen, og cd inn i mappen og gjør dette: python setup.py install [ --prefix=/usr/... ] Avinstaller med uninstall.sh som også ligger der. På noen systemer kan du få tilgangsproblemer med innstallasjon i hovedsystemet fra kildekoden. Alle nye mapper som blir innstallert burde ha 0755 som tilgangskode, og alle filer burede ha 0644, bortsett fra 'docbook2gjots', 'gjots2', 'gjots2docbook', og 'gjots2html', som burde ha 0755. \EndFolder \NewEntry Hjelpe til Vi har satt opp to epost-lister for utvikling og support av gjots: Gjots utviklere : http://lists.sourceforge.net/lists/listinfo/gjots2-devel Gjots brukere : http://lists.sourceforge.net/mailman/listinfo/gjots2-users Programfeilrettinger er svært velkomne! Hvis noen ønsker å oversette dette til et annet språk, ta kontakt, så vil jeg sende en internasjonalisert versjon og beskjed-katalog. Jeg vil inkorporere alle nye funksjoner som folk tilbyr, så lenge jeg også liker dem. Hvis du vil legge til noe til hoved- utviklingen, send meg en beskjed om det først, så jeg kan si ifra om noen andre holder på med det samme. Bruk diff -ru for å lage en patch, og send det som et gzipped fil-vedlegg. Hvis jeg ikke velger å inkorporere din favorittfunskjon, så er du velkommen til å splitte opp utviklingen av programmet, men vær så snill å velg et nytt navn. Alt tatt i betraktning, så er jo dette GPL-kode. Merk at for å beskytte GPL-lisensen, er jeg nødt til å ta med navnet og epost-adressen din i seksjonene Authors og License. Hvis du ønsker å tilføre noe, ta kontakt med epost-listen for utviklere , for å sjekke at du ikke utfører dobbelt arbeid. For generelle idéer, se "Planlagte funksjoner" \NewEntry BRUKERHÅNDBOK \NewFolder \NewEntry Oppstart Bare start det med "gjots2" - det vil lagre alt i $HOME/.gjotsfile Eller bruk et argument - gjots2 tar imot en enkelt fil, f.eks: gjots2 ågjøre.gjots Disse valgene er tilgjenglige: --help Skriver ut standard hjelp for gjots2 -g, --geometry BREDDExHØYDE[+X+Y] Vindustørrelse i oppstart for gjots2. Merk at X- og Y- komponentene blir ignorert for øyeblikket. -r, --readonly Åpner filen i uskrivbar modus (ingen låsing blir utført) -d, --debug Lag utførlig informasjon for avlusing \NewEntry Åpne og lagre Åpne og lagre gjør det vanlige, og opererer på gjots-formaterte tekstfiler (se nedenfor). Hvis ikke uskrivbar modus er i effekt, lager gjots2 en låsefil for å sikre at bare en bruker kan skrive til filen, men mange kan lese den. Hvis en fil blir åpnet som allerede er låst, vil et dialogvindu gi valgene "Prøv igjen" eller "Uskrivbar". "Prøv igjen"-valget gir deg mulighet til å avslutte programmet som har låst fila. Låsefila er en enkel fil med navn .#filnavn, hvor filenavn er det samme som gjots2-filen som blir redigert. Det befinner seg i samme mappe som en originale gjots2-filen, og det inneholder bare prosess-koden til prosessen. Hvis prosessen som har låst fila dør uten å slette låsefila, kan gjots2 oppdage det neste gang en fil åpnes. På den måten virker låsing til og med på disker montert over NFS. Filer som blir åpnet som uskrivbare blir ikke låst. I Fil-menyen er det et valg som gjør det mulig å slå uskrivbar- statusen til programmet av og på. Det sørger også for låsing og opplåsing av filen som beskrevet ovenfor. Når gjots2 lagrer en fil, flyttes den gamle versjonen av fila til en sikkerhetskopi på samme måte som emacs. Hvis man lagrer til "fil.gjots" og den allerede finnes, blir den gamle versjonen lagret til "fil.gjots~" Hvis filnavnet slutter på ".cpt", vil gjotst forsøke å kryptere og dekryptere filen med ccrypt(1). Hvis ccrypt ikke er innstallert (det er ikke en standard del av alle Linux-distribusjoner) vil ikke overføringen bli utført. På samme måte vil .ssl-filer bli åpnet med (DES3) openssl og .gpg bli åpnet med (DES3) gpg. Installer ccrypt, openssl og gpg for god sikkerhet! \NewEntry Kontroller Skjermen har en menylinje og en verktøylinje på toppen som burde være temmelig selvforklarende. Verktøylinjen tin venstre kontrollerer tre-hierarkiet. Bare prøv det ut, så vil du raskt finne ut av det. "Nytt element" lager et nytt element på samme nivå som gjeldene element. "Nytt underelement" lager et nytt underelement til gjeldende element. "Opp" flytter gjeldene utvalg foran elementet før på samme nivå. "Ned" gjør det motsatte av "Opp" "Tilbake" flytter gjeldene utvalg til nivået over. "Fram" gjør gjeldene utvalg til underelementer av elementet rett før dem. "Del element" tar utvalget (i høyre panel) og flytter det til et nytt element. "Slå sammen elementer" slår sammen teksten i alle de valgte elementene til et stort element (separert med linjeskift) "Skjul alt" kollapser treet så bare de øverste elementene, under rot-elementet synes. "Vis alt" ekspanderer alle underelementer til de valgte elementer (rekursivt). "Sorter treet" åpner dialogvinduet for å sortere treet basert på gitte kriterier. Når et overelement mister alle sine underelementer blir det automatisk til et normalt element. På den øverste verktøylinjen har vi: "Nytt element", "Åpne" og "Lagre" gjør alle det vanlige. "Skriv ut"-knappen åpner dialogvinduet for utskrift. "Klipp ut", "Lim inn" og "Kopier" har to funksjoner hver, de opererer både på valgt tekstvinduet til høyre og på tre-elementer, basert på om tekst eller tre-elementer er valgt. "Bryt"-knappen formatterer gjeldene avsnitt til linjelengden som er satt i innstillingene (også aktivert med ^L). "Rediger eksternt"-knappen starter et eksternt skriveprogram ut ifra kommandolinjen i instillingene. Standardkommandoen er enten 'nedit %s', 'xedit %s' eller 'xterm -e vi %s' - etter som hva som er innstallert på systemet - %s blir byttet ut med et midlertidig filnavn. Hvilket som helst annet skriveprogram kan brukes, så lenge det det aksepterer et filnavn som argument - personlig foretrekker jeg "emacsclient %s". "Dato"-knappen setter inn et datostempel i filen på gjeldende posisjon. Du kan forandre formatet for datostemplet i instillingene. "Finn"-knappen åpner dialogvinduet for "Finn og erstatt". "Sorter" åpner dialogvinduet for sortering. "Innstillinger" åpner dialogvinduet for instillinger. \NewEntry Finn of Erstatt ^F, Rediger->Finn eller Finn-knappen i øverste verktøylinje åpner dialogvinduet for finn og erstatt. Virkemåten bør være intuitiv - skriv inn det du ønsker å finne i finn-linjen, og trykk på finn-knappen. For å erstatte en forekomst, sett inn den nye teksten i erstatt- linjen, og trykk på erstatt-knappen. Programmet søker så forover, trykk erstatt igjen, og det vil erstatte og søke forover igjen. For å erstatte alle forekomster (fra gjeldende posisjon til slutten av filen), trykk på "erstatt alle"-knappen. Både Lukk- og Avbryt-knappene lukker søk- og erstatt-dialogvinduet - Lukk-knappen lagrer nye innstillinger for senere bruk (bortsett fra Finn- og Erstatt-tekstene). Nullstill-knappen, nullstiller Finn- og Erstatt-tekstene. Alle feil dukker opp både i området rett under knappen, og i status- linjen i hovedvinduet. Under Finn- og Erstatt-knappene kan man sette noen innstillinger. "Bruk kapitalisering" gjør at søket blir begrenset til uttrykk der store og små bokstaver stemmer overens. "Globalt" gjør det søkes gjennom hele filen. Alternativet er å begrense søket til gjeldene element. "Regulært uttrykk" gjør at man kan bruke POSIX utvidede regulære uttrykk som definert i "man 7 regex" (f.eks. som brukt i egrep). En rask referanse til regulære utrykk (merk at gjots2 bruker Pythons re-pakke - se Python-dokumentasjon for fullstendige detaljer, den er en del enklere en den regex som ble brukt i C- versjonen av gjots): . hvilket som helst tegn ^ begynnelsen på linjen (bare som det første tegnet i det RE) $ slutten på linjen (bare som det siste tegnet i det RE) * ingen eller flere repetisjoner av forige RE + en eller flere repetisjoner av forige RE ? ingen eller en repetisjon av forige RE {n} nøyaktig n repetisjoner av forige RE {n,} n eller flere repetisjoner av forige RE {n,m} n til m repetisjoner av forige RE [ ] treffer på hvilket som helst tegn i settet. Områder er f.eks. [a-z] [^ ] treffer på hvilket som helst tegn som ikke er i settet. ( ) Danner et 'husket' mønster | Mønster alterasjon, f.eks. x|y betyr "treffer på x eller y" \n n er 1 til 9 - tilbakereferanse til tidligere mønster \b begynnelse eller slutt av et ord \d et siffer == [0-9] \s tomrom == [ \t\n\r\f\v] \S ikke tomrom \w alfanumerisk \W ikke alfanumerisk For å bruke en av de 'magiske' tegnene ^.[$()|*+?{\, så sett en \ foran. For erstatningsmønstret er følgende sekvenser tilgjengelige: \& lim inn hele den funnede teksten \1..\9 lim inn det nth funnede undermønstret (definert med (...) ) \n sett inn linjeskift \NewEntry Utskrift "Skriv ut"-dialogvinduet lar deg velge "hva som skal skrives ut": Gjeldene element, Utvalg eller alt sammen og noen forbedringer: Mate ut en side etter hvert element og Autonumrering (ikke egentlig implementert ennå) Standarden for "Skriv ut"-kommandoen er å forsøke å skrive ut via et forhåndsvisningsprogram, og kommandoen ser slik ut: if type gv; then GV='gv -seascape' else if type ggv; then GV=ggv else # no preview command found, just print it lpr $1 exit fi fi T=/tmp/.tmp.$$ mpage -f -2 -I1 -P- $1 > $T ($GV $T; rm $T)&B Bortsett fra å være noe kompleks for en enlinjes kommando, lider den også av å ikke vite noe om postscript-visere (f.eks. kghostview, evince etc.) eller om nye inkompatible versjoner, f.eks, gv-3.6.1 kjenner ikke -seascape, den forstår bare --seascape. Før det finnes noen standard mekanisme for å forhåndsvise utskrifter i X (i både kde, gnome og andre!!) vil vi stole på at du, kjære bruker, stiller inn dette til å passe dine egene behov og ditt system. Noen mulige forslag for "Utskriftskommando" istedet for standarden: For helt enkelt å sende rå utdata direkte til skriveren: lpr $1 For å bruke en forhåndsviser, set "Utskriftskommando" slik: GV='gv -seascape'; T=/tmp/.tmp.$$;mpage -f -2 -I1 -P- $1 > $T;($GV $T; rm $T)& Den antar at du har gv-3.5.8 innstallert. For å bruke en annen forhåndsviser eller andre innstillinger, modifiser GV-parameterne slik: # for å bruke gv-3.6.1 som forhåndsviser: GV='gv --seascape' # for å bruke gvv som foråndsviser: GV='ggv' # for å bruke kghostview som forhåndsviser: GV='kghostview' # for å bruke evince som forhåndsviser(ikke utprøvd): GV='evince' Merk at gvv, kghostview og evince (?) ikke har kommandolinjeparametere for å invertere bildet, så du må gjøre det ved å peke og klikke. Dumt, ikke sant? Hva med meg? Jeg bruker gv. \NewEntry Innstillinger Følgende ting kan velges som innstillinger med gconf: Tekstformatering - standard er "fmt -w %d" Linjelengde for tekst - blir brukt når avsnitt formateres, (65) Eksternt skriveprogram - skriveprogram som skal brukes for "Rediger eksternt" f.eks.: nedit %s xedit %s xterm -e vi %s emacsclient %s Datoformat - formatteskt å mate til strftime(3) til bruk i datostempel. Prøv "man strftime" for detaljer. (%F) f.eks.: %F : (2002-11-03) %c : Sun 03 Nov 2002 10:33:22 AM EST (%d %b %y) : (03 Nov 02) Skrifttype - skrifttypen som skal brukes til å vise tekst. Kontroller og treet bruker fortsatt standard GTK-2 skrifttyper. \NewEntry Tasteoperasjoner De fleste tastesnarveiene er som normalt. I tekstvinduet gjelder det normale GTK-2 tasteoppsettet (noe forskjellig fra C/GTK-1-versjonen av gjots): ^a Velg all teksten home gå til begynnelsen av linjen end gå til slutten av linjen venstre gå tilbake et tegn høyre gå fram et tegn ^venstre gå et ord til venstre ^høyre gå et ord til høyre ned gå til neste linje opp gå til forige linje ^home/end gå til begynnelsen/slutten av teksten delete slett tegnet etter markøren slettetast slett tegnet før markøren ^L omformater avsnittet, eller "linjebryt" Shift og markerer et utvalg. I tillegg virker følgende: ^x klipp ut ^c kopier ^v lim inn Tasteoppsett i treet: Generelt beveger de deg runt i treet med normale taster. Sammen med kontrolltasten manipulerer du treet. opp gå til forige element ned gå til neste element ^opp flytt valgte element(er) oppover i treet ^ned flytt valgte element(er) nedover i treet shift-opp/ned utvid utvalget venstre gå til overelementer høyre gå til underelementer ^venstre forfrem element(er) ^høyre degrader element(er) home gå til det første elementet på gjeldende nivå end gå til det siste elementet på gjeldende nivå ^home gå til det aller første elementet ^end gå til det siste (viste) elementet Globalt tasteoppsett: ^s Lagre ^q Avslutte ^f Åpner dialogvinduet for Finn og erstatt \NewEntry Importer og eksporter Du kan føre data inn og ut av gjots2 med importer- og eksporter-' funksjonene. Disse opererer på det valgte elementet, så du kan kontrollere nøyaktig hva som blir lagret. Filformatet er det normale gjots2-formatet. \NewEntry gjots2 filformat Det er det samme som for gjots, men med et hierarki. \NewEntry tittel1 det er dette som finnes i tittel1 \NewFolder \NewEntry tittel2 dette er skrift i tittel2 \NewEntry title3 og tittel3s tekst \EndFolder \nøkkelordene må være på begynnelsen av linjen for å bli gjenkjent. \NewEntry Kryptering gjots2 kan kryptere og dekryptere file med ccrypt(1), openssl(1) eller gpg(1). Filene blir lagret med kryptering i henhold til fil-etternavnet du gir: .cpt ccrypt .ssl openssl .gpg gpg gjots2 spør etter passord der det trengs. Pass på at du har ccrypt, openssl eller gpg installert hvis du ønsker å bruke denne funksjonen. Ikke mist passordet - Jeg kan ikke hjelpe deg med å finne tapte passord. \NewEntry Sikkerhet For kryptering i ccrypt, har jeg brukt tilsvardende som: {write klartekst} | KEYWORD=passord ccencrypt -E KEYWORD >filnavn.cpt Dette avslører passordet et kort øyeblikk i en miljø- parameter, men den blir slettet fra gjots2-prosessen med en gang den er brukt. ccrypts man-side sier at "på de fleste moderne systemer", så beskytter ps-kommandoen miljøparametere fra vanlige brukere. I Linux kan du skrive 'cat /proc/PID/environ' for å se miljøparameterne til prosesser som du selv eien - bare root kan spionere på noen andres milje, så det å bruke -E er ikke mindre sikkert enn ditt eget innloggingspassord og roots innloggingspassord. Den eneste alternative måten å gjøre dette på, som jeg kan ser, ville være: {write klartekst} >fil.gjot echo passord |ccencrypt -k - fil.gjot ... selv om dette gir bedre beskyttelse av passordet, så eksponerer det (for et kort øyeblikk) filen som klartekst - like ille, eller verre enn å eksponere nøkkelens som en miljøparameter! Dekryptering er mye lettere - Jeg bruker stdin til å gi passordet: echo passord |ccdecrypt -c -k - filnavn.cpt | {les fra pipe} En tilleggskanal (f.eks. stdin=0, stdout=1 stderr=3 stdpasswd=3= for ccrypt for å lese passord ville vært en bedre løsning (men ccrypt har ikke støtte for det). \NewEntry Verktøysprogrammer \NewFolder \NewEntry gjots2html gjots2html konverterer en gjots2-fil til HTML, sammen med en innholdsfortegnelse som ser besynderlig ut som et tema-tre. Se man-siden for flere detaljer. gjots2html.py er en python-versjon av det samme programmet som kan være mer stabilt. \NewEntry gjots2docbook konverterer en gjots2-fil til DOCBOOK XML-format. Les man-siden for en mer detaljert beskrivelse. \NewEntry docbook2gjots Konverterer DOCBOOK XML til gjots2 - les man-siden for fullstendig beksrivelse. \EndFolder \EndFolder \NewEntry Development status Hvis du har idéer om hvordan gjots2 kan bli forbedret, send en epost til gjots2-users@lists.sourceforge.net \NewFolder \NewEntry Planlagte funksjoner Det som blir lagt til vil være begrenset av design-målet om å være "raskt og lett", men kan inneholde: Lokalisering ============ Fra og med versjon 2.3.0 er gjots2 internasjonalisert og klar for oversettelser. Hvis du ønsker å se støtte for ditt språk, kontakt epost-listen på gjots2 ====== Legg til tidsstempel på hvert element og vis det i statuslinjen nå de er valgt. autosortert av/på for mapper Rediger->Tøm, Egenskaper, Innstillinger->Brukervalg autosave Støtte for innstillger per element: \Options åpent/lukket para detaljer ...? gjots2html ========== gjots2html går gjennom noen positive forandringer. Det er et nytt script markert som beta skrevet i Python, som støtter følgende: 1) Legg til
-linjer etter hver seksjon. 2) Legger til en lenke til Innholdsfortegnelsen etter hver seksjon. 3) Spesifiserer en tittel på siden. 4) Legg inn resultatet fra gjots2html.py inn i en eksisterende HTML mal. 5) Ikke ta med innholdsfortegneslen. 6) Skriv HTML til en spesifisert fil. 7) Legg til en link til en spesifisert CSS-fil. 8) Bryt gjots2-teksten på en spesifisert linjelengde. Den har også støtte for et ubestemt antall nivåer i hierarkiet, selv om HTML bare har støtte for 9. Legg til parametere: -r N, --rule=N:
for alle nivåer oppt til N \NewEntry Kjente programfeil Ingen kjente, selvfølgelig, utenom: Feilaktige feilmeldinger hvis det ikke er mulig å åpne en gjots2- fil ved oppstart. Dialogvinduet for sortering kan ikke sette seg selv til verdiene lagret i gconf. \NewEntry Platformer Testet på følgende platformer: Gentoo Linux i386 Ubuntu 4.10 Mandrake 10.1 Fedora Core 3, 4 Novell Linux Desktop 9 SUSE 9.2, 9.3 Vi ser alltid etter hjelp av folk som kan teste gjots-versjoner på sine favorittdistribusjoner. Gi en beskjed i og vil bli glade for å legge til din testede distribusjon. Noen av disse platformene kan trenge oppdaterte pakker. Referer til vår OSS (ofte spurte spørsmål) for en diskusjon om dette. \EndFolder \NewEntry Gjots OSS Ofte spurte sprørsmål om gjots2 Hvis du har spørsmål som ikke er svart på her, kontakt epostlisten for gjots2-brukere . \NewFolder \NewEntry Sp: Ikonene til venstre ser krønsjet ut. Sv: Du bruker en dårlig versjon av libglade2. Oppgrader libglade til vesjon >= 2.4.1. Vi anbefaler at du oppdater denne pakken ved hjelp av din distribusjons pakkehåndterer. \NewEntry Sp: Jeg får feilmeldingen, ImportError: No module named distutils.core når jeg bygger gjots2 fra kildekoden. Sv: Distribusjonen din har effektivt *ødelagt* python-installasjonen ved å ikke inkludere distutils-modulene, som er en del av pythons kjernepakke. Installer python slik det skal være for å ordne opp. Vi kjenner til at dette skjer i: Ubuntu (5.10), NLD9, SUSE 9.2. Ubuntu 5.10 fiks: # apt-get install pythonX.X-dev \NewEntry Sp: Jeg får feilmeldingen, ImprtError: No module named gconf Sv: Installer gnome-python.2. Denne pakken vil inneholde Python- bindingene for gconf og finnes her: http://www.pygtk.org/ Du burde være i stand til å finne forhåndsbygde pakker for disse, slik som følgende: Mandrake 10.1: # rpm -ivh gnome-python-gconf-2.0.3-1mdk.i586.rpm Fedora Core 3: # rpm -ivh gnome-python2-gconf-2.6.0-3.i386.rpm \NewEntry Sp: Hvordan får du gjots2 til å kjøre på Novell Linux Desktop? Sv: Nå må installere gnome-python (og de pakkene den er avhengig av) \NewEntry Sp: Hva er forskjellen på en gamle C-versjonen (gjots-0.X) og den nye python-versjonen, gjots-2.X.X? Sv: Ved 2.0.0 utgivelsen, var det disse forskjellene (for utvikling siden da, se CHANGES logger): Støtte for Unicode i datafilene, så jeg kan lage notater på russisk, kanskje tyrkisk, arabisk, hvem vet hva som vil fungere. Rapporter er velkomne. Mulighet for andre språk enn engelsk i selve programmet. Er det noen frivillige for I18N og L10N? Dra og slipp i tre-vinduet, for enkel organisering. Støtte for gconf med GTK-2 temaer. Sortering av elementer og/eller tekst Slå sammen elementer Dele opp elementer Utskrift \EndFolder \NewEntry Forfattere & Lisens \NewFolder \NewEntry Forfattere Skrevet av: Bob Hepple Gabriel Munoz Logo av: DSP Popeck , 2002 Fransk oversettelse av: Rui Nibau , 2005 Norsk oversettelse av: Robert Emil Berge , 2006 \NewEntry Lisens (GPL) Copyright (C) 2005 Robert Hepple Copyright (C) 2002 DSP Popeck Her kommer først en uoffisiell oversettelse av GPL. Lisensen som gjelder for dette programmet står på engelsk under. GNU GENERAL PUBLIC LICENCE * Forord * LOVER OG REGLER FOR KOPIERING, DISTRIBUSJON OG MODIFISERING * Hvordan du kan legge til disse reglene til dine nye programmer GNU GENERAL PUBLIC LICENCE (GNU GENERELL OFFENTLIG LISENS) Versjon 2, juni 1991, oversatt januar 2004; oppdatert juli 2005. Opphavsrett © 1989, 1991 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Alle har lov til å kopiere og distribuere umodifiserte kopier av dette lisensdokumentet, men å endre det er forbudt. Forord De fleste programvarelisenser er laget for å ta vekk din frihet til å dele og endre programvaren. GNU General Public Licence vil som en konstrast garantere din frihet til å dele og endre fri programvare -- og gjøre det sikkert at programvaren er fri for alle dets brukere. Denne GNU General Public Licence gjelder for mesteparten av Free Software Foundations programvare og til alle andre programmer som er laget av folk som vil bruke den (Noen andre av Free Software Foundation sin programvare er dekket av GNU Library General Public Licence isteden.). Du kan legge den til dine programmer, også. Når en snakker om fri programvare, refererer en til frihet, ikke pris. Våre lisenser er laget for å forsikre at du har frihet til å distribuere kopier av fri programvare (og ta deg betalt for tjenesten om du ønsker), som du mottar kildekoden til eller kan få hvis du vil ha den, slik at du kan endre programvaren eller bruke deler av den i nye, frie programmer, og at du vet at du kan gjøe dette. For å beskytte dine rettigheter, må det være regler som forbyr noen å nekte deg disse rettighetene eller be deg om å gi dem fra deg. Disse reglene betyr en del ansvar for deg hvis du distribuerer kopier av programvaren, eller endrer den. For eksempel, hvis du distribuerer kopier av et slikt program, enten gratis eller for penger, må du gi mottakeren alle de rettighetene du har. Du må være sikker på at de også, mottar eller kan få kildekoden. Og du må vise dem disse reglene slik at de vet hvilke rettigheter de har. GNU GPL beskytter rettighetene dine i to steg: (1) Gir deg opphavsrett til programvaren, og (2) tilby deg denne lisensen som gir deg lovlig tilatelse til å kopiere, distribuere og/eller endre programvaren. Også, for hver forfatters beskyttelse og våres, vil en forsikre seg om at alle forstår at det ikke er noen garanti for denne frie programvaren. Dersom programvaren er endret av noen andre og gitt videre, vil de at mottakeren skal vite at det de har fått, ikke er originalen, slik at problemer introdusert av andre ikke vil reflektere den originale forfatterens rykter. Til slutt, ethvert fritt program er konstant truet av programvarepatenter. De ønsker å unngå faren som redistributører av frie programmer vil individuelt ta patenter, noe som gjør at programvaren blir eiendom. For å unngå dette,har de gjort det klart at enhver patent må være lisensert for alles fri bruk eller ikke lisensert i det hele tatt. De presise lovene og reglene for kopiering, distribusjon og modifisering er under. LOVER OG REGLER FOR KOPIERING, DISTRIBUSJON OG MODIFISERING 0. Lisensen gjelder for ethvert program eller annet verk som inneholderen notis plassert ved opphavsrettholderen som sier at det kan bli distribuert under lovene av denne General Public Licence. "Programmet", under, refererer til et slikt program eller verk, og et "verk basert på programmet" betyr enten Programmet eller noe som helst underliggende verk under copyright loven: det betyr, et verk som inneholder Programmet eller en del av det, enten umodifisert eller med modifikasjoner og/eller oversatt til et annet språk. (Heretter er oversettelse inkludert uten begrensninger innenfor uttrykket "modifikasjon"). Hver lisensier er addressert som "deg". Aktiviteter annet en kopiering, distribuering og modifisering er ikke dekket av denne Lisensen; de er utenfor dette. Det å kjøre et program er det ikke noen restriksjoner på, og utskrift fra programmet er dekket kun dersom innholdet baserer seg på et verk basert på Programmet (uavhengig av om det har blitt laget av det kjørende Programmet). Enten det er sant eller ikke avhenger av hva programmet gjør. 1. Du kan kopiere og distribuere umodifiserte kopier av Programmets kildekode så lenge du mottar det, i hvilket som helst medium, gitt at du lett synlig og korrekt ved hver kopi legger en riktig opphavsrettnotis og informasjon om garanti; ha i takt alle notisene som refererer til denne Lisensen og at det ikke finnes noen som helst form for garanti; og gi alle andre mottakere av Programmet en kopi av denne Lisensen ved Programmet. 2. Du kan modifisere din kopi eller kopier av Programmet eller hvilken som helst den av den, følgende forme et verk basert på Programmet, og kopiere og distribuere slike typer av modifikasjoner og verk under regler i Seksjon 1 over, gitt at du også oppfyller alle disse krav: a) Du må sørge for at de modifiserte filene har viktige notiser som sier at du endret filene til den tiden og den datoen du gjorde endringer. b) Du må sørge for at ethvert verk du distribuerer eller publiserer, som i sin helhet eller deler av er tatt fra Programmet eller enhver del derav, blir lisensiert helhetlig uten kostnader til alle tredjeparter under reglene i denne Lisensen. c) Dersom det modifiserte programmet normalt sett leser kommandoer interaktivt når det kjører, må du sørge for at det, når det starter å kjøre interaktivt på den mest ordinære måten, skriver ut eller viser en passende opphavsrettnotis og en notis som sier at det ikke er noen garanti (eller, som sier at du selv tilbyr en garanti) og at brukere kan redistribuere programmene under disse betingelsene, og fortelle brukeren hvordan det er mulig å vise en kopi av denne Lisensen. (Unntak: Dersom Programmet i seg selv er interaktivt, men normalt sett ikke skriver en slik notis, trenger ikke ditt verk basert på Programmet å skrive ut en slik notis.) Disse betingelsene gjelder for det hele modifiserte verket. Dersom identifiserbare seksjoner av det verket ikke er fra Programmet, og kan bli fornuftig ansett som uavhengig og et separat verk i seg selv, ikke legg til de seksjonene når du distribuerer dem som separate verk. Men når du distribuerer den samme seksjonen som del av et helt verk som er basert på Programmet, må hele distribusjonen være på betingelsene i denne Lisensen, hvis rettigheter for andre lisenser utvider til det hele, og følgende til hver og en del uavhengig av hvem som skrev det. Følgende er det ikke meningen i denne seksjonen å kreve rettigheter eller konkurrere dine rettigheter til verk laget bare av deg; isteden er meningen å utøve retten til å kontrollere distribusjonen av utspringere eller samlebare verk basert på Programmet. I tillegg, små uviktige biter av et annet verk som ikke er basert på Programmet med Programmet (eller et verk basert på Programmet) på et lagringsmedium bringer ikke det andre verket under denne lisensen. 3. Du kan kopiere og distribuere Programmet (eller et verk basert på det, under Seksjon 2) i objektkode eller kompilert form under reglene i Seksjon 1 og 2 over gitt at du gjør ett av følgende: a) Legger ved komplett korresponderende maskinleselig kildekode, som må være distribuert under reglene i Seksjon 1 og 2 på et medium spesielt brukt for programvareutgivelse; eller: b) Legge ved et skriftlig tilbud, gyldig for minst tre år, om å gi ethvert tredjeparti, for en sum mindre enn å fysisk utføre kildekodedistribusjon, en komplett maskinleselig kopi av den korresponderende kildekoden, for å bli distribuert under reglene i Seksjon 1 og 2 over på et medium spesielt brukt for programvareutgivelse; eller: c) Legge ved informasjon du mottok som tilbudet til å distribuere korresponderende kildekode. (Dette alternativet er kun tillatt for ikke-kommersiell distribusjon og kun dersom du mottok programmet i objektkode eller kompilert form med et slikt tilbud, i følge Underseksjon b over.) Kildekoden for et verk betyr den foretrukne formen av verket for å modifisere det. For et kjørbart arbeid, betyr komplett kildekode all kildekode for alle modulene det inneholder, pluss alle tilhørende grensesnittsdefinisjonsfiler, pluss skriptene som brukes til å kontrollere kompilering og installasjon av det kjørbare programmet. Men, som et spesielt unntak, kildekoden som blir distribuert trenger ikke å inkludere noe som vanligvis er distribuert (i enten kilde eller binær form) med viktige komponenter (kompilator, kjerne og så videre) av operativsystemet til det systemet som det kjørbare programmet kjører på, med mindre den komponenten i seg selv akkompagnierer det kjørbare programmet. Dersom distribusjonen av maskinkoden eller objektkoden er laget for å tilby tilgang til å kopiere fra en bestemt plass, da vil det å tilby tilsvarende tilgang til å kopiere kildekode fra den samme plassen telle som distribusjon av kildekoden, selv om tredjepartier ikke er påbudt å kopiere kildekoden ved objektkoden. 4. Du kan ikke kopiere, modifisere, underlisensere, eller distribuere Programmet på andre måter enn slik som er uttrykt i denne Lisensen. Ethvert forsøk på å kopiere, modifisere, underlisensere eller distribuere Programmet er ugyldig og du vil automatisk få fratatt dine rettigheter under denne Lisensen. Men, partier som ikke har mottatt kopier, eller rettigheter, fra deg under denne Lisensen vil ikke få deres rettigheter fratatt så lenge slike partier fortsatt følger reglene. 5. Du er ikke påkrevd å akseptere denne Lisensen, siden du ikke har signert den. Men, ingenting annet gir deg rett til å modifisere eller distribuere Programmet eller programmer som stammer fra det. Disse handlingene er forbudt ved lov dersom du ikke aksepterer denne Lisensen. Derfor, ved å modifisere eller distribuere Programmet (eller ethvert verk basert på Programmet), indikerer du at du aksepterer denne Lisensen til å gjøre det, og alle dets regler og retningslinjer for å kopiere eller modifisere Programmet eller verk basert på det. 6. Hver gang du redistribuerer Programmet (eller et arbeid basert på Programmet), vil mottakeren automatisk motta en lisens fra den originale forfatteren til å kopiere, distribuere eller modifiserere Programmet ettre disse reglene. Du kan ikke påtvinge videre restriksjoner for mottakerens rettigheter gitt her. Du er ikke ansvarlig for å påtvinge at tredjepartier aksepterer denne Lisensen. 6. Hver gang du redistribuerer Programmet (eller et arbeid basert på Programmet), vil mottakeren automatisk motta en lisens fra den originale forfatteren til å kopiere, distribuere eller modifiserere Programmet etter disse reglene. Du kan ikke påtvinge videre restriksjoner for mottakerens rettigheter gitt her. Du er ikke ansvarlig for å påtvinge at tredjepartier aksepterer denne Lisensen. 7. Dersom, som en konsekvens av en dom fra retten eller en patent som begrenser dine rettigheter eller for enhver annen grunn (ikke begrenset til patentsaker), gjør at du er påtvunget (enten av en dommer, en avtale eller annet) til å gå mot reglene til denne Lisensen, unnskylder de deg ikke fra reglene i denne Lisensen. Dersom du ikke kan distribuere for så å tilfredsstille sammenhengene, dine obligasjoner under denne Lisensen og enhver relevant obligasjon, vil du som en konsekvens ikke kunne distribuere Programmet i det hele tatt. For eksempel, dersom en patent lisens ikke tillater fri redistribusjon av Programmet av alle som mottar kopiere direkte eller indirekte gjennom deg, da er den eneste måten du kan tilfredsstille den og denne Lisensen å totalt frastå fra distribuering av Programmet. Dersom noen del av denne seksjonen blir holdt ugyldig eller anses som ikke-påtvingbar, er balansen av denne seksjonen er ment til å gjelde og seksjonen som en helhet er ment å gjelde i andre situasjoner. Det er ikke meningen i denne seksjonen å få deg til å oppgi patenter eller andre eiendomsretter eller få deg til å ugyldiggjøre dem; denne seksjonen har som intensjon å beskytte integriteten av det frie programvaredistribusjonssystem, som er implementert av offentlige lisensutøvere. Mange folk har kommet med generøse deltakelser i det store spekter av programvare distribuert gjennom systemet i avhengighet av konsistent gjennomføring av systemet, det er opp til forfatteren/donoren å bestemme om vedkommende er villig til å distribuere programvare gjennom et annet system og en som har en lisens kan ikke ta den avgjørelsen. Denne seksjonen er ment for å gjøre det klart hva som er trodd å være en konsekvens av resten av denne Lisensen. 8. Dersom distribusjonen og/eller bruk av Programmet har restriksjoner i bestemte land eller patenter eller av opphavsrett, kan den orignale opphavsrettinnehaveren som plasserer Programmet under denne lisensen legge til geografiske distribusjonsbegrensninger, slik at distribusjon er tillatt bare i eller mellom land som ikke er ekskludert. I slike tilfeller, blir denne Lisensen del av begreninsningen slik som skrevet i kroppen av denne Lisensen. 9. Free Software Foundation kan utgi reviderte og/eller nye versjoner av General Public Licence-dokumentet fra tid til annen. Slike nye versjoner vil bli værelike i ånd til den nåværende versjonen, men kan endre seg når det gjelder adresse. Enhver versjon er gitt et versjonnummer. Dersom Programmet spesifiserer et versjonnummer av denne Lisensen som legger til det og "enhver senere versjon" ("any later version"), har du valget mellom de følgende reglene enten den versjonen eller enhver senere versjon publisert av Free Software Foundation. Dersom Programmet ikke spesifeiserer et versjonnummer av denne Lisensen, kan du velge enhver versjon noen gang utgitt av Free Software Foundation. 10. Dersom du vil legge til deler av Programmet inn i alle gratis programmer hvis distribusjonsregler er forskjellige, skriv til forfatteren og spør om tillatelse. For programvare som er copyrightet av Free Software Foundation, skriv til Free Software Foundation, de gjør noen ganger unntak for dette. Deres avgjørelse vil bli veiledet av de to målene om å beholde den frie statusen av alt som stammer fra deres frie programvare og for å bemerke deling og gjenbruk av programvare generelt sett. INGEN GARANTI 11. FORDI DETTE PROGRAMMET ER LISENSERT GRATIS, ER DET INGEN GARANTI FOR PROGRAMET, MED MINDRE FORLENGET AV LOVEN. UNNTATT NÅR DET ER UTTRYKT ANNERLEDES I SKRIVET OPPHAVSRETTINNEHAVEREN OG/ELLER ANDRE PARTIER TILBYR PROGRAMMET "SOM DET ER" UTEN GARANTI AV NOE SLAG, ENTEN UTTRYKT ELLER PÅTVUNGET, INKLUDERT, MEN IKKE BEGRENSET TIL, GARANTIER AV UTGIVING FOR DET BESTEMTE FORMÅLET. HELE RISIKOEN OG KVALITETEN OG UTFØRINGEN AV PROGRAMMET ER MED DEG. SKULLE PROGRAMMET VISE SEG Å VÆRE DEFEKT, MÅ DU SELV BETALE ALLE KOSTNADENE FOR NØDVENDIG SERVICE, REPARERING ELLER KORRIGERING. 12. I INGEN SITUASJON PÅKREVD AV LOV ELLER AVTALT TIL I SKRIVET VIL ENHVER OPPHAVSRETTINNEHAVER, ELLER ET ANNET PARTI SOM KAN MODIFISERE OG/ELLER REDISTRIBUERE PROGRAMMET SOM TILLATT OVER, VÆRE ANSVARLIG FOR DINE SKADER, INKLUDERT ETHVERT GENERELT, SPESIELT, VIKTIG, ELLER KONSEKVENTE SKADER SOM KOMMER AV BRUK ELLER AT DET IKKE ER MULIG Å BRUKE PROGRAMMET (INKLUDERT MEN IKKE BEGRENSET TIL TAP AV DATA ELLER DATA SOM BLIR LAGET UNØYAKTIG ELLER TAP FORÅRSAKET AV DEG ELLER TREDJEPARTIER ELLER AT PROGRAMMET FEILER I Å OPERERE MED ANDRE PROGRAMMER). SELV OM SLIKE INNEHAVERE ELLER ANDRE PARTIER HAR BLITT FORTALT OM SANNSYNLIGHETEN FOR SLIKE SKADER. Slutt på regler Her kommer den offisielle GPL på engelsk, som gjelder for dette programmet. GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS \EndFolder gjots2-3.1.9/doc/gjots2.ru.gjots000066400000000000000000001624411401630023500164100ustar00rootroot00000000000000РУКОВОДСТВО GJOTS2 g j o t s 2 Боб Хеппле Брисбон Куинсленд Австралия Версия 3.1.9 bhepple@freeshell.org http://bhepple.freeshell.org/gjots \NewEntry Введение gjots2 - это блокнот для Вашего рабочего стола. Зачем нам нужен еще один блокнот? Когда сломался мой старый верный органайзер Psion-5, мне потребовалось перенести все мои заметки и записки в Linux, и я начал поиск подходящего ПО. В то время я нашел множество различных ежедневников и закончил написание калькулятора (gdcalc), но все это слабо походило на блокнот. Другие пакеты, которые я нашел оказались: * слишком простые (напр., с одним уровнем иерархии); * слишком сложные (включали такие компоненты, как Corba и SQL); * веб-ориентированные * неспособны одновременно отображать дерево и работать с текстом; * слишком беспорядочными – наподобие желтых бумажек Post-it по всему экрану. Хотя существовало множество программ, не было ни одной такой, которая бы удовлетворяла моим требованиям. Из всех программ, которые я тогда нашел, лучшей, наверное, была kjots. Так или иначе, мне пришлось изучить, как использовать деревья в GTK и попрактиковаться в использовании glade, – так появился gjots, который жив и по сей день. Первоначально он был написан на C (теперь на Python) c использованием gtk и glade и получился довольно быстрым. Судя по письмам, блокнот получился достаточно полезным не только для меня, это было здорово. Была даже японская версия, процесс разработки которой отделился от gjots (0.3?). Однако мир не стоит на месте: появился GTK-2, и набралось достаточно большое количество пользователей, которые хотели использовать программу на разных языках. Я же хотел подучить python, так появилась новая версия gjots, написанная на python - gjots2. Написанный на интерпретируемом языке gjots2 не так быстр, как предшественник, но предлагает гораздо больше функций. \NewEntry Установка Если возможно, используйте RPM или emerge (Gentoo) - они позволяют легко деинсталлировать программу, а также обеспечивают более гибкие возможности по управлению пакетами по сравнению с setup.py. \NewFolder \NewEntry Зависимости Вам может потребоваться установить (или переустановить) libglade, pygtk, gnome-python, bonobo-python, pyorbit или gtk для установленной версии python или, возможно, просто установить переменную PYTHONPATH, например: export PYTHONPATH=/usr/local/lib/python2.3/site-packages/ Во время написания программы, у меня были установлены пакеты (на Gentoo): dev-python/gnome-python-2.22.0 (2) dev-python/gnome-python-desktop-2.22.0 (0) gnome-base/gnome-common-2.20.0 (3) gnome-base/gnome-keyring-2.22.3 (0) gnome-base/gnome-mime-data-2.18.0 (0) gnome-base/gnome-vfs-2.22.0 (2) gnome-base/libgnome-2.22.0 (0) gnome-base/libgnomecanvas-2.20.1.1 (0) gnome-base/libgnomeui-2.22.1 (0) x11-themes/gnome-icon-theme-2.22.0 (0) dev-python/pygtk-2.12.1-r2 (2) x11-libs/gtk+-2.12.11 (2) gnome-base/libglade-2.6.3 (2.0) dev-python/pyorbit-2.14.3 (0) gnome-base/orbit-2.14.13 (2) Скорее всего, в системах, основанных на пакетах rpm (RedHat, Mandrake/Mandriva, SuSE), все будет похоже (пожалуйста, сообщите). Fedora Core требует наличия пакета gnome-python2-gconf. Убедитесь, что пакеты python установлены в директории site-packages используемой вами версии python (введите "python -V", чтобы узнать версию): /usr/lib/pythonX.X/site-packages Если пакетов там нет, потребуется переустановить их. Это случилось со мной, когда я обновил версию python с 2.2 на 2.3. При этом каталог /usr/lib/python2.X/site-packages автоматически не обновился. Тогда я сделал следующее: emerge unmerge libglade pygtk gnome-python bonobo-python pyorbit emerge libglade pygtk gnome-python bonobo-python pyorbit gjots2 был написан с использованием glade-2, так что если вы хотите изменить или поправить код, придется установить и его. \NewEntry Gentoo До тех пор пока gjots2 имеет официальный ebuild (см. в /usr/portage/app-office), вам потребуется сделать следующее: пакеты, необходимые в gentoo (в порядке зависимости): >=gtk+-2 >=libglade-2 >=pygtk-2 gnome-python-2 >=pyorbit-2 Убедитесь, что у Вас в фалйе /etc/make.conf есть строчка наподобие: PORTDIR_OVERLAY=/usr/local/portage Также в файле /etc/portage/packages.keywords у Вас должна быть строка: app-office/gjots2 ~x86 После этого: VERSION=3.1.9 CAT=/usr/local/portage/app-office/gjots2 cd /usr/portage/distfiles wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.tgz mkdir -p ${CAT} cd ${CAT} wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.ebuild ebuild ${CAT}/gjots2-${VERSION}.ebuild digest emerge gjots2 \NewEntry Системы, основанные на RPM Просто сделайте следующее: VERSION=3.1.9 wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}-1.noarch.rpm rpm -i gjots2-${VERSION}-1.noarch.rpm Безусловно, вам предварительно потребуется удовлетворить все зависимости, такие как pygtk, libglade, и т.д. На моей системе Fedora Сore 4 были следующие зависимости: gtk2-2.6.7-4 libglade2-2.5.1-2 pygtk2-2.6.0-2 gnome-python2-2.10.0-1 gnome-python2-gconf-2.10.0-1 pyorbit-2.0.1-4 \NewEntry Из исходных кодов VERSION=3.1.9 wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.tgz При установке из исходных кодов, после разархивирования tar архива и входа в каталог программы, введите: python setup.py install [ --prefix=/usr/... ] Для удаления используйте скрипт uninstall.sh, находящийся там же. На некоторых системах при установке из исходных кодов у вас могут возникнуть проблемы с правами доступа. Все новые каталоги должны иметь разрешения 0755, а файлы - разрешения 0644, за исключением файлов 'docbook2gjots', 'gjots2', 'gjots2docbook', и 'gjots2html', у которых должны быть разрешения 0755. \EndFolder \NewEntry Содействие У нас есть две почтовых рассылки для разработчиков и пользователей gjots: Разработчики Gjots : http://lists.sourceforge.net/lists/listinfo/gjots2-devel Пользователи Gjots : http://lists.sourceforge.net/mailman/listinfo/gjots2-users Исправление ошибок всегда приветствуется! Если кто-то хочет перевести эту программу на другие языки, пожалуйста, напишите мне письмо, и я вышлю интернациональную версию каталога сообщений. Я приму все новые дополнения к коду только при условии что они мне понравятся. Если Вы хотите добавить что-то к основной ветке разработки, пожалуйста напишите мне, чтобы убедиться, что никто не работает уже над этой проблемой. Чтобы создать заплатку, желательно использовать команду diff -ru, посылать ее лучше в приложениях к письму в архивах .gz . Если я не захочу включить Ваши изменения, не бойтесь создать ответвление от этого проекта, однако при этом используйте другое название программы. В конце концов, этот код попадает под лицензию GPL. Хочу заметить, чтобы защитить Ваш труд лицензией GPL мне придется внести ваше имя и адрес электронной почты в раздел "Авторы и лицензии". Ели вы хотите участвовать в проекте, подпишитесь на список рассылки разработчиков , чтобы избежать дублирования труда. Если у вас есть глобальные мысли по поводу изменений в проекте, прочитайте раздел "Запланированные функции". \NewEntry РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ \NewFolder \NewEntry Запуск Просто запустите "gjots2", при этом все будет сохранено в файле $HOME/.gjotsfile Вы можете использовать аргумент, чтобы указать имя файла, например: gjots2 заметки.gjots Доступны следующие опции: --help Выводит справку по опциям. -g, --geometry ШИРИНАxВЫСОТА[+X+Y] Положение окна gjots2 при запуске. Внимание, параметры X и Y в настоящее время игнорируются. -r, --readonly Открыть файл в режиме только для чтения (без блокировки) -d, --debug Выводить всевозможную отладочную информацию \NewEntry Открытие и сохранение Открытие и сохранение это обычные действия над текстовыми файлами (см. дальше). За исключением режима «только для чтения», gjots2 создает файл блокировки, чтобы только один пользователь мог записывать в файл, но читать могли все. Если открыть файл, и программа найдет файл блокировки, появится диалог, вопрошающий: «Попытаться снова» и «Только для чтения». Выбор «Попытаться снова» позволяет выйти из программы, которая блокировала файл. Файл блокировки – это обычный файл, имеющий название .#имяфайла, где имя файла – это имя редактируемого файла. Он находиться в том же каталоге, что и редактируемый файл и содержит номер процесса (pid), блокирующего файл. Таким образом, если процесс, блокирующий файл, завершится не удалив файл блокировки, при следующем запуске программа сможет это обнаружить. Поэтому блокировка работает даже на сетевых томах NFS. При открытии фалов только для чтения, файл блокировки не создается. В меню «Файл» существует элемент, позволяющий изменять статус фала «только чтение». Он также следит за файлом блокировки, описанным выше. Когда gjots2 сохраняет файл, он перемещает предыдущую версию файла в резерв на подобии emacs. К примеру, при сохранении файла "кошки.gjots", предыдущая версия сохранится в файле "кошки.gjots~". Если файл имеет расширение ".cpt", gjots попробует расшифровать, а затем зашифровать его, с помощью программы ccrypt(1). Если программа ccrypt не найдена (она не входит в стандартный набор программ), произойдет ошибка ввода-вывода. Тоже самое будет при открытии файлов .ssl с помощью программы (DES3) openssl и файлов .gpg с помощью программы (DES3) gpg. Чтобы достичь лучшей безопасности, установите программы ccrypt, openssl и gpg. \NewEntry Управление Вверху окна программы есть меню и панель инструментов, способ их использования интуитивно понятен. Панель инструментов слева управляет деревом элементов. Попробуйте понажимать на кнопки и вскоре вы поймете что к чему. "Новая страница" - создает новую страницу на текущем уровне дерева. "Новый подэлемент" - создает новую страницу под выбранным элементом. "Вверх" - перемещает выбранный элемент на текущем уровне вверх. "Вниз" - перемещает выбранный элемент на текущем уровне вниз. "Назад" - поднимает выбранный элемент(ы) в дереве до уровня родителя. "Вперед" - делает выбранный элемент(ы) в дереве дочерним элементу непосредственно находящемуся перед ним. "Разбить" - копирует выделенный текст (в правой панели) и помещает его на новую страницу. "Объединить" - объединяет текст выбранных элементов в один большой элемент (разделенный параграфами). "Спрятать все" - сворачивает все ветви дерева до уровня корневого элемента. "Показать все" - раскрывает все ветви дерева, начиная с выбранного элемента (рекурсивно). "Сортировать" - показывает диалог сортировки, с помощью которого можно отсортировать элементы дерева по заданному критерию. Если элемент теряет все свои подэлементы, он автоматически становится простой страницей. На главной панели инструментов находятся кнопки: "Новая страница", "Открыть" и "Сохранить" - понятно без разъяснений. Кнопка "Напечатать" вызывает диалог "Печать". "Вырезать", "Вставить" и "Копировать" действуют по разному в зависимости от того, что выбрано текст или элементы дерева. Кнопка "Выровнять" выравнивает длину строки в параграфе в соответствии со значением, указанным в диалоге параметров (вызывается нажатием ^L). Кнопка "Внешн.ред." запускает внешний редактор, указанный в диалоге параметров в виде командной строки. По умолчанию в зависимости от системы она содержит строку 'nedit %s', 'xedit %s' или 'xterm -e vi %s' , при этом %s заменяется именем временного файла. Теоретически может использоватся любой редактор, главное, чтобы он открывал файлы из аргумента командной строки, лично я предпочитаю "emacsclient %s". Кнопка "Дата" на месте текущего положения курсора вставляет дату. Вы можете настроить формат даты в диалоге Параметры. Кнопка "Найти" открывает диалог "Найти и заменить". "Сортировать" открывает диалог сортировки текста. Кнопка "Параметры" вызывает диалог "Параметры". \NewEntry Поиск и замена ^F, Правка->Найти или кнопка "Найти" на главной панели инструментов, вызывает диалог "Найти и заменить". Эта операция интуитивно понятная - введите то, что вам нужно найти в поле диалоге "Найти и заменить", а затем нажмите кнопку "Найти". Чтобы заменить выражение, введите его в поле "Заменить", а затем нажмите кнопку "Заменить". Программы найдет и заменит ближайшее, встреченное ниже по тексту выражение, нажмете снова - поиск и замена повторится. Чтобы заменить все встречающиеся выражения (начиная с текущей позиции), нажмите кнопку "Заменить все". Обе кнопки "Закрыть" и "Отменить" - закрывают диалог, однако кнопка "Закрыть" сохраняет все установки для последующего их использования (за исключением содержания полей "Найти" и "Заменить"). Кнопка "Очистить" - очищает содержание полей "Найти" и "Заменить". Любые ошибки отражаются непосредственно под кнопкой, а также в строке состояния программы. В параметрах, находящихся под кнопками "Найти" и "Заменить", есть опция "Учитывать регистр" - она позволяет ограничить область поиска путем сравнения регистра букв в целевом и исходном выражениях. Опция "Искать везде" включена по умолчанию и позволяет производить поиск по всему документу, если ее отключить поиск будет производиться только по открытой странице. Опция "Регулярное выражение" позволяет использовать расширяемые Регулярные выражения (РВ) POSIX, описанные в "man 7 regex". Краткий обзор Регулярных выражений (замечу, что gjots2 использует пакеты Python, это намного проще нежели regex, используемый в С версии gjots): . любой символ ^ начало строки (только как первый элемент в РВ) $ конец строки (только как последний элемент в РВ) * ноль или больше повторений предыдущего РВ + одно или больше повторений предыдущего РВ ? ноль или одно повторение предыдущего РВ {n} точно n повторений предыдущего РВ {n,} n или больше повторений предыдущего РВ {n,m} от n до m повторений предыдущего РВ [ ] соответствует любому символу из набора. Пример набора: [а-я] [^ ] соответствует любому символу не из набора. ( ) формирует "хранимый" шаблон | чередование шаблона напр. а|б означает "соответствует а или б" \n n - это число от 1 до 9 - повторение предыдущего шаблона \b начало или конец слова \d цифра == [0-9] \s пробел == [ \t\n\r\f\v] \S не пробел \w буквенно-цифровое \W не буквенно-цифровое Чтобы задать один из 'волшебных' символов ^.[$()|*+?{\ поставьте перед ним \ Для шаблона замены доступны следующие выражения: \& полностью вставляет найденную строку \1..\9 вставляет подшаблон с номером n (определенный с помощью (...) ) \n вставляет новую строку \NewEntry Печать Диалог "Печать" позволяет Вам выбрать, что печатать: текущую страницу, текущее выделение или документ полностью и несколько усовершенствований: прогон страницы, после каждого элемента gjots автонумерацию (еще не до конца реализована) В настоящее время по умолчанию "Команда печати" имеет вид: if type gv; then GV='gv -seascape' else if type ggv; then GV=ggv else # no preview command found, just print it lpr $1 exit fi fi T=/tmp/.tmp.$$ mpage -f -2 -I1 -P- $1 > $T ($GV $T; rm $T)& Хотя этот код немного великоват для одной строки, он позволяет не заботиться о программах просмотра postscript (таких как: kghostview, evince и т.д.) и об их новых несовместимых версиях. Например, gv-3.6.1 больше на распознает опцию -seascape, теперь только --seascape. До тех пор пока в X есть стандартные механизмы предпросмотра вывода печати (включая Gnome, kde и других!!), мы полагаемся на тебя, о, образованный пользователь! Дабы ты сам изменил и оптимизировал этот код под свои нужды. Вот несколько вариантов замены "Команды печати": Чтобы просто направить поток текста на принтер: lpr $1 Чтобы использовать программу предпросмотра, задайте следующую "Команду печати": GV='gv -seascape'; T=/tmp/.tmp.$$;mpage -f -2 -I1 -P- $1 > $T;($GV $T; rm $T)& Этот вариант использует gv-3.5.8. Дабы использовать другую программу предпросмотра или другие опции, модифицируйте параметр GV как показано ниже: # чтобы использовать gv-3.6.1 как программу предпросмотра: GV='gv --seascape' # чтобы использовать ggv как программу предпросмотра: GV='ggv' # чтобы использовать ggv как программу предпросмотра: GV='kghostview' # чтобы использовать evince как программу предпросмотра: GV='evince' Хочу заметить, что ggv, kghostview и evince не имеют параметров, позволяющих инвертировать изображение, по этой причине Вам придется делать это самому вручную. Ну чего молчите? Я? Я использую gv. \NewEntry Параметры Перечисленные ниже элементы могут быть установлены при помощи gconf как параметры: Обработчик текста -по умолчанию это "fmt -w %d" Длина строки используется при выравнивании параграфа, (65) Внешний редактор - редактор, который будет запускаться по нажатию кнопки "Внешн.ред", например : nedit %s xedit %s xterm -e vi %s emacsclient %s Формат даты - строка, передающаяся функции strftime(3), возвращает дату определенного таким образом формата. Чтобы узнать больше обратитесь к страницам man программы strftime. (%F), напр.: %F : (2002-11-03) %c : Sun 03 Nov 2002 10:33:22 AM EST (%d %b %y) : (03 Nov 02) Шрифт - шрифт, который используется для отображения текста. Элементы управления и дерево элементов используют системный шрифт GTK-2. \NewEntry Комбинации клавиш Большинство комбинаций клавиш такие же, как везде. В панели текста используется обычная раскладка клавиш GTK-2 (немного отличающаяся от C/GTK-1 версии gjots): ^a Выбрать весь текст home перейти в начало строки end перейти в конец строки влево переместить курсор на позицию назад вправо переместить курсор на позицию вперед ^влево переместить курсор на одно слово влево ^вправо переместить курсор на одно слово вправо вниз перейти к следующей строке вверх перейти к предыдущей строке ^home/end перейти в начало/в конец текста delete удалить символ после курсора backspace удалить символ перед курсором ^L переформатирование параграфа или "Перенос" Клавиша Shift и клавиши перемещения выделяют область. Дополнительные комбинации клавиш для работы: ^x вырезать ^c копировать ^v вставить Комбинации клавиш в дереве элементов: Клавиши навигации позволяют перемещаться по дереву, с зажатой клавишей Ctrl, они управляют деревом. вверх перейти к предыдущему элементу вниз перейти к следующему элементу ^вверх переместить выделенный элемент(ы) вверх ^вниз переместить выделенный элемент(ы) вниз shift-вверх/вниз увеличить выделение влево развернуть ветвь вправо свернуть ветвь ^влево повысить элементы ^вправо понизить элементы home перейти к первому элементу на текущем уровне end перейти к последнему элементу на текущем уровне ^home перейти к самому первому элементу ^end перейти к самому последнему (раскрытому) элементу Глобальные комбинации клавиш: ^s сохраниться ^q выйти ^f показать диалог "Найти и заменить" \NewEntry Импорт и экспорт Вы можете перемещать данные в/из gjots2 с помощью функций импорта/экспорта. Эти действия осуществляются над выделенным в этот момент элементом, так что Вы можете полностью контролировать, что будет сохранено. Формат файла обычно - формат gjots2. \NewEntry Формат файла gjots Такой же, как в gjots и такой же как в kjots, но с иерархией: \NewEntry заголовок 1 текст под заголовком 1 \NewFolder \NewEntry заголовок 2 текст под заголовком 2 \NewEntry заголовок 3 текст под заголовком 3 \EndFolder Чтобы распознавались ключевые слова, они должны находиться в начале строки. \NewEntry Шифрование gjots2 может шифровать и дешифровать файлы с использованием пакетов ccrypt(1), openssl(1) и gpg(1). Файлы сохраняются с шифрованием, в соответствии с присвоенным файлу расширением: .cpt ccrypt .ssl openssl .gpg gpg Когда необходимо, gjots2 уточняет у Вас пароль. Убедитесь, что у вас установлены программы ccrypt, openssl или gpg, если Вы хотите использовать эти функции. Не потеряйте свой пароль - я не смогу помочь Вам восстановить забытый или утерянный пароль. \NewEntry Безопасность Для шифрования в ccrypt, я использовал эквивалент: {write cleartext} | KEYWORD=пароль ccencrypt -E KEYWORD >имяфала.cpt Эта строка ненадолго раскрывает пароль, как переменную окружения, несмотря на то, что это снижает уровень безопасности, и сразу после использования удаляет его из переменных окружения gjots2. В соответствии со страницами руководства ccrypt "на большинстве современных систем команда ps защищает переменные окружения от обычных пользователей. Под Linux Вы можете использовать команду 'cat /proc/PID/environ', чтобы просмотреть переменные окружения любого процесса, которым Вы владеете, и только администратор имеет право просматривать переменные окружения других пользователей, так что использование параметра -E не менее безопасно, чем использование Вашего пароля на вход в систему. Единственный другой путь сделать это (AFAICS) : {write cleartext} >file.gjot echo password |ccencrypt -k - file.gjot ... это обеспечивает лучшую защиту пароля, однако (ненадолго) раскрывает текст как файл - это не намного лучше, чем открывать пароль в переменной окружения! Дешифровка производится намного проще - я использовал stdin для ввода пароля: echo password |ccdecrypt -c -k - имяфайла.cpt | {read from pipe} Использование дополнительного канала (напр. stdin=0, stdout=1 stderr=3 stdpasswd=3) для ccrypt при вводе паролей было бы хорошим решением (однако ccrypt не поддерживает их). \NewEntry Утилиты \NewFolder \NewEntry gjots2html gjots2html конвертирует файл gjots2 в HTML, вместе с таблицей содержания, которая выглядит как дерево. Чтобы узнать больше, смотри страницы man. gjots2html.py это версия той-же утилиты, написанная на python. \NewEntry gjots2docbook Конвертирует файлы gjots2 в формат DOCBOOK XML format. Чтобы узнать больше, смотри страницы man. \NewEntry docbook2gjots Конвертирует DOCBOOK XML в gjots2 - подробней, смотри страницы man \EndFolder \EndFolder \NewEntry Состояние разработки Если у Вас есть какие-нибудь идеи, как улучшить gjots2, напишите электронное письмо по адресу gjots2-users@lists.sourceforge.net. \NewFolder \NewEntry Запланированные функции То что будет добавлено, ограничивается девизом проекта "быстрый и легкий", но вскоре могут быть добавлены некоторые функции: Локализация ============ Начиная с версии 2.3.0, gjots2 интернационализирован и готов для перевода. Если Вы хотите использовать программу на своем языке, обратитесь к списку рассылки gjots2 ====== Добавить дату к каждому элементу при выборе автосортировка вкл/выкл для дерева Правка->Отчистить, Параметры, Установки->Параметры автосоханение Поддержка опций: \Опции включая: открыть/закрыть para details ...? gjots2html ========== В gjots2html будет несколько коренных изменений. Это будет новый скрипт написанный в Python и поддерживающий следующие функции: 1) Добавление
линии после каждой секции. 2) Добавление ссылки на Содержание после каждой секции. 3) Определение названия страницы в теге . 4) Возможность направить вывод gjots2html.py в существующий шаблон файла HTML 5) Удаление секции Содержание. 6) Вывод HTML в определенный файл. 7) Добавление ссылок на каскадные таблицы силей(CSS). 8) Перенос текста gjots2 по заданной ширине. Так же он будет поддерживать произвольное количество уровней в иерархии, так как сейчас он поддерживает всего 9. Будуит добавлены опции: -r N, --rule=N: <HR> for all levels up to N \NewEntry Известные ошибки Не найдено, за исключением: Несущественные сообщения об ошибках при первом запуске gjots2. Диалог сортировки, не может сам установить значения, хранящиеся в gconf. \NewEntry Платформы Программа протестирована на следующих системах: Gentoo Linux i386 Ubuntu 4.10 Mandrake 10.1 Fedora Core 3, 4 Novell Linux Desktop 9 SUSE 9.2, 9.3 Мы всегда с радостью принимаем помощь людей, которые тестирую gjots на своих системах. Ждем от них весточки по адресу <gjots2-devel@lists.sourceforge.net>, и их система будет добавлена в список протестированных. Некторые из этих систем могут потребовать обновления пакетов. Обратитесь к ЧАВО, чтобы узнать больше. \EndFolder \NewEntry Gjots ЧАВО Часто Задаваемые ВОпросы, относящиеся к gjots2. Если у Вас есть вопрос, на который тут нет ответа, Вы можете получить консультацию в почтовой рассылке пользователей gjots2 <gjots2-users@lists.sourceforge.net>. \NewFolder \NewEntry В: Иконки на панели дерева элементов залазят одна на другую. О: Вы используете старую версию библиотеки libglade2. Обновите библиотеку libglade до версии >= 2.4.1. Мы рекомендуем обновить этот пакет через менеджер пакетов Вашего дистрибутива. \NewEntry В: У меня возникает ошибка ImportError: No module named distutils.core when building gjots2 from source. О: В вашей системе неправильно установлен python - отсутствуют модули distutils, входящие в стандартную поставку python. Чтобы избавиться от этой ошибки - установите python правильно. Эта ошибка возникала на: Ubuntu (5.10), NLD9, SUSE 9.2. Решение проблемы на Ubuntu 5.10: # apt-get install pythonX.X-dev \NewEntry В:У меня возникает ошибка ImportError: No module named gconf О: Установите пакет gnome-python-2. Этот пакет содержит модули для работы с gconf, они находятся по адресу: http://www.pygtk.org/ Вы можете найти двоичные пакет для своего дистрибутива: Mandrake 10.1: # rpm -ivh gnome-python-gconf-2.0.3-1mdk.i586.rpm Fedora Core 3: # rpm -ivh gnome-python2-gconf-2.6.0-3.i386.rpm \NewEntry В: Где найти gjots2 работающий под Novell Linux Desktop? О: Для того, чтобы установить gjots на Novell Linux Desktop, достаточно установить gnome-python и все его зависимости. \NewEntry В: Какие различия между старой C версией (gjots-0.X) и новой версией на python (gjots-2.X.X) О: В версии 2.0.0, были следующие отличия (разработчики могут найти подробную информацию в файле CHANGES): Поддержка Unicode - так, что я смог делать заметки на русском, турецком и арабском. Сообщения об этом приветствуются! Потенциальная поддержка интернационализации в программе - есть добровольцы для I18N и L10N? Поддержка технологии "Drag and Drop" в дереве для упрощения работы. Поддержка gconf тем GTK-2. Сортировка элементов и/или текста Объединение элементов Возможность разделения элементов Печать \EndFolder \NewEntry Авторы и лицензии \NewFolder \NewEntry Авторы Программа написана: Bob Hepple <bhepple@freeshell.org> Gabriel Munoz <munozga@gmail.com> Логотип создал: DSP Popeck <wokoglopulator@yahoo.com>, 2002 Французский перевод: Rui Nibau <rui.nibau@omacronides.com>, 2005 Русский перевод: Сергей Безденежных <sib-mail@mtu-net.ru>, 2006 \NewEntry Лицензия (GPL) Copyright (C) 2005 Robert Hepple Copyright (C) 2002 DSP Popeck GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS \EndFolder �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/doc/man/�������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0014246�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/doc/man/man1/��������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0015102�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/doc/man/man1/docbook2gjots.1�����������������������������������������������������������0000664�0000000�0000000�00000004100�14016300235�0017730�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Copyright (c) 2002-2020 Robert Hepple .TH DOCBOOK2GJOTS 1 \" -*- nroff -*- .SH NAME docbook2gjots \- Convert a DOCBOOK file to gjots format (on .BR stdout ) .SH SYNOPSIS .hy 0 .na .B docbook2gjots [ .I DOCBOOK-file ] .ad b .hy 1 .SH DESCRIPTION .B docbook2gjots converts a DOCBOOK XML file into gjots format. .P .B docbook2gjots uses .BR gawk (1) to perform the conversion. .P .BR <preface> , .BR <chapter> , .BR <section> , .BR <sect1> , .BR <sect2> , .BR <sect3> and .BR <sect4> tags are used to define .B NewEntry and .B NewFolder boundaries. They should definitely have .BR <title> tags. .P This is a quick and dirty hack using .BR gawk (1) and does no formal checking of XML or SGML syntax nor does it validate against the DOCBOOK DTD. Consequently, if the syntax of the file is broken the conversion will probably fail. .P It is intended that a round-trip can be made so that .BR gjots (1) can be used as a tool at all stages of DOCBOOK production - mainly as an outline processor to help the author organise and order the work. A document may well start its life in .BR gjots (1) as the initial thoughts are marshalled. As the document forms up, it can be converted to DOCBOOK with the following command which automatically adds tags such as .BR <?xml...> , .B <para> etc: .P .RS .nf .ft CW gjots2docbook -b file.gjots >file.xml .br docbook2pdf file.xml .fi .RE .P Or, starting with an existing DOCBOOK file: .P .RS .nf .ft CW docbook2gjots file.xml >file.gjots .fi .RE .P In the latter case, the document will already have a lot of DOCBOOK tags so to convert back to docbook, add the -e and -p options: .P .RS .nf .ft CW gjots2docbook -b -p -e file.gjots >file.xml .br docbook2pdf file.xml .fi .RE .P .SH "AUTHOR" Written by Bob Hepple <bhepple@freeshell.org> .P .RB http://bhepple.freeshell.org/gjots .SH "COPYRIGHT" Copyright (c) 2002 Robert Hepple .br This is free software; see the source for copying condi tions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. .SH "SEE ALSO" .BR gjots (1), .BR gjots2html (1), .BR gjots2docbook (1) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/doc/man/man1/gjots2.1������������������������������������������������������������������0000664�0000000�0000000�00000010063�14016300235�0016374�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Copyright (c) 2004-2020 Robert Hepple .\" $Id: gjots2.1,v 1.4.4.3 2011-01-02 23:34:04 bhepple Exp $ .TH GJOTS2 1 \" -*- nroff -*- .SH NAME gjots2 \- A gnome-2/X11 jotter .SH SYNOPSIS .hy 0 .na .B gjots2 .RB "[\|" "options" "\|]" .I gjotsfile .ad b .hy 0 .SH DESCRIPTION .B gjots2 is a fairly simple jotter application for your desktop. It displays your data organised in a tree with each leaf being your text. .P Getting data into .BR gjots2 is fairly easy - you can type it in, cut and paste text or use an editor to convert other text files to the simple .B gjots2 format (see below for details). You can also convert an existing DOCBOOK file into .B gjots2 format with .BR docbook2gjots (1). .P .B gjots2 files can be simply converted into HTML using .BR gjots2html (1) or into DOCBOOK with .BR gjots2docbook (1) .P Sensitive data can be encrypted by .BR ccrypt "(1), " openssl "(1) or " gpg (1) simply by saving with an appropriate file suffix and providing a password: .P .RS .TP 10 .B ccrypt .cpt .TP 10 .B openssl .ssl .TP 10 .B gpg .gpg .RE .P Don't forget your passwords. Obviously, the appropriate encryption utility must have been installed. .P Simple text formatting is provided with the usual cut & paste operations and paragraph formatting (line wrapping) according to the line length set in .I "Settings->Preferences." Lines are formatted by pressing the .I Wrap button or ^L. This requires the .BR fmt (1) command which is in the .I coreutils package in .B fedora and in the .I sys-apps/textutils directory on .BR Gentoo . .P An external editor (configured in .IR "Settings->Preferences" ) can be invoked by pressing the .B "Ext.Ed" button. .B gjots2 is suspended while the editing is carried on. .P File locking is implemented by a lockfile .RI ( .#filename ) in the same directory as the file being edited. Multiple users can open the file readonly but only one user can open the file for writing. Since the locking is done with a lockfile even NFS-mounted files can be protected. .SH OPTIONS .TP .B \-\-help Prints help. .TP \fB\-g\fR, \fB\-\-geometry\fR \fIWIDTHxHEIGHT\fR[\fI+X+Y\fR] Initial window geometry for .B gjots2. Note that the X and Y components are presently ignored. .TP \fB\-p\fR, \fB\-\-purge-password\fR When opening an encrypted file, .B gjots now remembers the password for subsequent writes. To restore the old behaviour where .B gjots purged the password, use this option. .TP \fB\-r\fR, \fB\-\-readonly\fR Opens the gjotsfile in readonly mode (with no locking and no ability to write) .TP \fB\-d\fR, \fB\-\-debug\fR debug to stdout .TP \fB\-t\fR, \fB\-\-trace\fR trace lines as they execute .TP \fB\-V\fR, \fB\-\-version\fR Print the version and quit .SH "FILES" .BI $HOME/.gjotsfile The default data file .TP \&`\fBdirname \fP\fIfilename\fP`\fI/.#\fP`\fBbasename\fP \fIfilename\fP` The lock file for the file called .IR filename . .SH "FILE FORMAT" .B gjots2 uses a simple text file format with the addition of a hierarchy of items introduced by keywords. The keywords need to be at the start of line to be recognised. Only 3 keywords are presently used: .TP 15 \fB\\NewEntry\fR Starts a new entry .TP 15 \fB\\NewFolder\fR Promotes the current item to a folder .TP 15 \fB\\EndFolder\fR Ends a folder .P The first line in every entry is used as the 'title' for the tree. .P In a future release the \fB\\Option\fR keyword may be added. .SH "EXAMPLE" .nf \\NewEntry title1 this is the stuff that goes into title1 \\NewFolder \\NewEntry title3 title 3's stuff \\EndFolder .fi .SH "AUTHOR" Written by Bob Hepple <bhepple@freeshell.org> .P .RB http://bhepple.freeshell.org/gjots .SH "COPYRIGHT" Copyright (c) 2002-2011 Robert Hepple .br This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. .SH "SEE ALSO" .BR gjots2html (1), .BR gjots2docbook (1), .BR docbook2gjots (1). .P Also, see the .BR gjots2 (1) README, probably as something like: .P .RS .nf .ft CW gjots /usr/share/doc/gjots-0.8/gjots2.gjots .ft .RE .P or .P .RS .nf .ft CW netscape /usr/share/doc/gjots-0.8/gjots2.html .ft .fi .RE .P �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/doc/man/man1/gjots2docbook.1�����������������������������������������������������������0000664�0000000�0000000�00000003746�14016300235�0017747�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Copyright (c) 2002-2020 Robert Hepple .TH GJOTS2DOCBOOK 1 \" -*- nroff -*- .SH NAME gjots2docbook \- Convert a gjotsfile to DOCBOOK (on .BR stdout ) .SH SYNOPSIS .hy 0 .na .B gjots2docbook .BR \-a | \-b [ .B \-e ] [ .B \-P ] [ .B \-p ] [ .I gjotsfile ] .ad b .hy 1 .SH DESCRIPTION .B gjots2docbook converts a gjotsfile into DOCBOOK XML. .P .B gjots2docbook uses .BR awk (1) to perform the conversion. .P .B gjots2docbook does not create them so the first element in the file should contain any <bookinfo> or <artheader> element. Similarly, <bibliographic> elements are not created. In fact the output is very simplistic with item titles in the .B gjotsfile being converted to chapter or section headings in DOCBOOK. There is no reason why your gjotsfile should not contain valid DOCBOOK XML - and that is why the -e and -p options are provided. .P If the file does not start with <?xml ...> then appropriate lines will be added as follows: .P .RS .nf .ft CW <?xml version="1.0" encoding="UTF-8"?> .br <!DOCTYPE doc_type PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"> .fi .RE .P If properly installed, the docbook utilities can then be used to create HTML, man, ps, pdf etc files eg: .P .RS .nf .ft CW gjots2docbook -b ~/.gjotsfile >gjotsfile.xml .br docbook2pdf gjotsfile.xml .fi .RE .P It may be necessary to fine-tune the docbook formatting to access all features. .SH OPTIONS .TP .B \-a makes a DOCBOOK article .TP .B \-b makes a DOCBOOK book .TP .B \-e don't encode special characters eg < -> < .TP .B \-p don't change blank lines to </para><para> markers .TP .B \-P first section is a preface rather than a chapter (book only) .SH "AUTHOR" Written by Bob Hepple <bhepple@freeshell.org> .P .RB http://bhepple.freeshell.org/gjots .SH "COPYRIGHT" Copyright (c) 2002 Robert Hepple .br This is free software; see the source for copying condi tions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. .SH "SEE ALSO" .BR gjots (1), .BR gjots2html (1), .BR docbook2gjots (1)��������������������������gjots2-3.1.9/doc/man/man1/gjots2html.1��������������������������������������������������������������0000664�0000000�0000000�00000002245�14016300235�0017264�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Copyright (c) 2002-2011 Robert Hepple .TH GJOTS2HTML 1 \" -*- nroff -*- .SH NAME gjots2html \- Convert a gjotsfile to HTML (on .BR stdout ) .SH SYNOPSIS .hy 0 .na .B gjots2html { .B \-lc ] [ .BI \-t " title" ] [ .BI \-i " level" } [ .I gjotsfile ] .ad b .hy 1 .SH DESCRIPTION .B gjots2html converts a gjotsfile into HTML with a table of contents. .P Presently up to 8 levels of table of contents subject tree are supported. .P .B gjotsfile uses .BR m4 (1) and .BR awk (1) .SH OPTIONS .TP .B \-l adds .I <HR> lines after each section. .TP .B \-c adds a link to the TABLE OF CONTENTS after each section. .TP .BI \-t " title" adds a title to the page .TP .BI \-i " level" Creates the table of contents down to that level of heading. The default is to include all headings. .SH "AUTHOR" Written by Bob Hepple <bhepple@freeshell.org> .P .RB http://bhepple.freeshell.org/gjots .SH "COPYRIGHT" Copyright (c) 2002-2011 Robert Hepple .br This is free software; see the source for copying condi tions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. .SH "SEE ALSO" .BR gjots (1), .BR gjots2docbook (1), .BR docbook2gjots (1), .BR gjots2html.py (1) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/gjots2-3.1.9.ebuild��������������������������������������������������������������������0000664�0000000�0000000�00000005050�14016300235�0015772�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright 1999-2004 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 # $Header: /home/bhepple/fun/sf/g/gjots/gjots2.ebuild,v 1.7.2.23 2012-06-02 12:42:57 bhepple Exp $ #### NOT TESTED FOR _AGES_ - I no longer have a gentoo system - if #### anyone wants to support this, please let me know. inherit python gnome.org DESCRIPTION="A graphical (GNOME 2) jotter tool" HOMEPAGE="http://bhepple.freeshell.org/gjots/" SRC_URI="http://bhepple.freeshell.org/gjots/${P}.tgz" LICENSE="GPL-2" SLOT="0" KEYWORDS="~x86" IUSE="" DEPEND=">=dev-lang/python-2.3.4 >=gnome-base/libglade-2.4.0 >=gnome-base/libgnome-2 >=dev-python/pygtk-2.4.1 >=dev-python/pyorbit-2.0.0 dev-python/libgnome-python dev-python/gconf-python" MAKEOPTS="${MAKEOPTS} -j1" #src_compile() { # emake || die "make failed" #} src_install() { cd ${S} dobin bin/gjots2 bin/gjots2html bin/gjots2html.py bin/gjots2docbook bin/docbook2gjots bin/gjots2emacs bin/gjots2lpr insinto /usr/lib/gjots2 doins lib/*.py insinto /usr/share/gjots2/ui doins ui/*.ui insinto /usr/share/gjots2/pixmaps doins pixmaps/*.png insinto /usr/share/applications doins gjots2.desktop insinto /usr/share/man/man1 doins doc/man/man1/*.1 dodoc README AUTHORS COPYING INSTALL ChangeLog insinto /usr/share/doc/${PF} doins gjots2.gjots doins gjots2.en_US.gjots doins gjots2.fr.gjots doins gjots2.no.gjots doins gjots2.nb.gjots doins gjots2.ru.gjots doins gjots2.es.gjots # not available: # doins gjots2.it.gjots # doins gjots2.cs.gjots insinto /usr/share/locale/en_US/LC_MESSAGES doins po/en_US/LC_MESSAGES/gjots2.mo insinto /usr/share/locale/fr/LC_MESSAGES doins po/fr/LC_MESSAGES/gjots2.mo insinto /usr/share/locale/no/LC_MESSAGES doins po/no/LC_MESSAGES/gjots2.mo insinto /usr/share/locale/nb/LC_MESSAGES doins po/nb/LC_MESSAGES/gjots2.mo insinto /usr/share/locale/ru/LC_MESSAGES doins po/ru/LC_MESSAGES/gjots2.mo insinto /usr/share/locale/it/LC_MESSAGES doins po/it/LC_MESSAGES/gjots2.mo insinto /usr/share/locale/cs/LC_MESSAGES doins po/cs/LC_MESSAGES/gjots2.mo insinto /usr/share/locale/es/LC_MESSAGES doins po/es/LC_MESSAGES/gjots2.mo insinto /usr/share/locale/sl/LC_MESSAGES doins po/sl/LC_MESSAGES/gjots2.mo insinto /usr/share/locale/de_DE/LC_MESSAGES doins po/de_DE/LC_MESSAGES/gjots2.mo insinto /usr/share/locale/zh_TW/LC_MESSAGES doins po/zh_TW/LC_MESSAGES/gjots2.mo insinto /usr/share/locale/sv/LC_MESSAGES doins po/sv/LC_MESSAGES/gjots2.mo } pkg_postinst() { python_mod_optimize /usr/lib/gjots2 } pkg_postrm() { python_mod_cleanup /usr/lib/gjots2 } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/gjots2.desktop�������������������������������������������������������������������������0000664�0000000�0000000�00000000256�14016300235�0015534�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������[Desktop Entry] Name=Gjots2 Jotter Comment=Store and organise your random notes Exec=gjots2 Terminal=false Type=Application Icon=gjots2 Categories=GNOME;Application;Utility; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/gjots2.metainfo.xml��������������������������������������������������������������������0000664�0000000�0000000�00000007510�14016300235�0016464�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright 2015 Bob Hepple <bob.hepple@gmail.com> --> <component type="desktop-application"> <id>org.freeshell.bhepple.gjots2</id> <launchable type="desktop-id">gjots2.desktop</launchable> <metadata_licence>FSFAP</metadata_licence> <project_license>GPL-2.0</project_license> <name>gjots2</name> <summary>A hierarchical note jotter - organise your ideas, notes, facts in a tree</summary> <description> <p> gjots2(1) is a simple jotter application for your desktop - an outline processor. You can use gjots2(1) to organise your jottings into a tree structure, adding thoughts and miscellany as you go. You can get it to spit out HTML, XML, postscript, pdf, man etc etc (see the online manual for an example of the HTML conversion). </p> <p> You can use it to "mind-map" your compositions - write down all your thoughts and then start organising them into a tree. By manipulating the tree you can easily reorder your thoughts and structure them appropriately. I use it for all my notes on Unix, my personal bits and pieces, recipes and even PINs and passwords. I also use it to write DOCBOOK XML documents. </p> <p> gjots2(1) supports the use of ccrypt(1), gpg(1) and openssl(1) to encrypt and decrypt files. Just make sure the encryption packages that you want to use are installed as they are not all a standard part of all Linux distributions. </p> </description> <screenshots> <screenshot type="default" width="802" height="473">https://a.fsdn.com/con/app/proj/gjots2/screenshots/screenshot.png</screenshot> </screenshots> <url type="homepage">http://sourceforge.net/projects/gjots2</url> <update_contact>bob.hepple@gmail.com</update_contact> <releases> <release version="3.1.9" date="2020-07-06"> <description> <p>ui/about.ui: remove redundant translater credits - seems to have no effect here</p> <p>fix: some environments don't always show images in buttons</p> <p>add tooltip for Find button</p> <p>fix: printDialog needed import gi, os; was using old mktemp</p> <p>Change popup dialogs type to 'top-level' instead of 'popup'!!! - as documented on GtkWindow page - avoids the message: Window 0x560942cc2d60 is a temporary window without parent, application will not be able to position it on screen.</p> </description> </release> <release version="3.1.8" date="2020-06-29"> <description> <p>gpg-agent no longer uses GPG_AGENT_INFO</p> <p>updated French translation (Frederic Muller <fred@cm17.com>)</p> <p>repair menubar find functions</p> <p>fix: forward search not finding regex in newly selected item.</p> <p>fix: Backward search in root wrapping to end of root item.</p> </description> </release> <release version="3.1.7" date="2020-06-18"> <description> <p>fix popup context menus (right click on tree)</p> <p>fix locale_dir when running from source tree</p> <p>add LC_ALL=zh_TW translation</p> <p>accomodate installation to any $prefix with setup.py</p> <p>fix tree_select_all</p> <p>fine tune python version requirement to >= 3.6.8 for epel8</p> <p>try for gtksourceview4 and failover to gtksourceview3</p> </description> </release> <release version="3.1.6" date="2020-05-03"> <description> <p>Fix issues in RHBZ#1823599</p> </description> </release> <release version="3.1.5" date="2020-05-02"> <description> <p>Fix issues in RHBZ#1823599</p> </description> </release> <release version="3.1.4" date="2020-04-19"> <description> <p>Fix issues in RHBZ#1823599</p> <p>Update more FSF addresses</p> <p>Change shebangs to absolute paths (fedora required)</p> <p>Change appdata to metainfo</p> </description> </release> </releases> </component> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/gjots2.spec����������������������������������������������������������������������������0000664�0000000�0000000�00000010541�14016300235�0015013�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*-Mode: rpm-spec -*- Name: gjots2 Version: 3.1.9 Release: 1%{?dist} Summary: A hierarchical note jotter - organize your ideas, notes, facts in a tree License: GPLv2 URL: http://bhepple.freeshell.org/gjots Source0: https://downloads.sourceforge.net/%{name}/%{name}-%{version}.tgz BuildArch: noarch BuildRequires: python3-devel BuildRequires: libappstream-glib BuildRequires: desktop-file-utils Requires: python3-gobject Requires: gtk3 # epel has gtksourceview3 only. f-31/2 also have gtksourceview4. Maybe use weak dependencies? Requires: gtksourceview3 %description gjots2 ("gee-jots" or, if you prefer, "gyachts"!) is a way to marshal and organize your text notes in a convenient, hierarchical way. For example, use it for all your notes on Unix, personal bits and pieces, recipes and even PINs and passwords (encrypted with ccrypt(1), gpg(1) or openssl(1)). You can also use it to "mind-map" your compositions - write down all your thoughts and then start to organize them into a tree. By manipulating the tree you can easily reorder your thoughts and structure them appropriately. %prep %autosetup -p1 # Convert to utf-8 for file in doc/man/man1/*.1; do iconv -f ISO-8859-1 -t UTF-8 -o $file.new $file && \ touch -r $file $file.new && \ mv $file.new $file done %build %py3_build %install %py3_install rm -rf %{buildroot}%{_datadir}/doc/gjots2-%{version}/ for file in $(find po/ -name gjots2.mo | sed 's|po/||') ; do install -Dpm0644 po/$file %{buildroot}%{_datadir}/locale/$file done %find_lang %{name} desktop-file-install \ --dir %{buildroot}%{_datadir}/applications \ --remove-category Application \ %{name}.desktop %check appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.metainfo.xml %files -f gjots2.lang %license COPYING %doc AUTHORS ChangeLog README doc/gjots2.gjots %doc %lang(en_US) doc/gjots2.en_US.gjots %doc %lang(fr) doc/gjots2.fr.gjots %doc %lang(nb) doc/gjots2.nb.gjots %doc %lang(no) doc/gjots2.no.gjots %doc %lang(ru) doc/gjots2.ru.gjots %doc %lang(es) doc/gjots2.es.gjots %{_bindir}/gjots2 %{_bindir}/gjots2org %{_bindir}/org2gjots %{_bindir}/gjots2html* %{_bindir}/gjots2docbook %{_bindir}/docbook2gjots %{_bindir}/gjots2emacs %{_bindir}/gjots2lpr %{python3_sitelib}/%{name}/ %{python3_sitelib}/%{name}-%{version}-py%{python3_version}.egg-info %{_datadir}/%{name}/ %{_datadir}/pixmaps/gjots2.png %{_datadir}/metainfo/gjots2.metainfo.xml %{_datadir}/applications/*gjots2.desktop %{_datadir}/glib-2.0/schemas/org.gtk.gjots2.gschema.xml %{_mandir}/man1/%{name}* %{_mandir}/man1/docbook2gjots* %changelog * Mon Jul 06 2020 Bob Hepple <bob.hepple@gmail.com> - 3.1.9-1 - ui/about.ui: remove redundant translater credits - seems to have no effect here - fix: some environments don't always show images in buttons - add tooltip for Find button - fix: printDialog needed import gi, os; was using old mktemp - Change popup dialogs type to 'top-level' instead of 'popup'!!! - - as documented on GtkWindow page - avoids the message: Window 0x560942cc2d60 is a temporary window without parent, application will not be able to position it on screen. * Mon Jun 29 2020 Bob Hepple <bob.hepple@gmail.com> - 3.1.8-1 - fix popup context menus (right click on tree) - fix locale_dir when running from source tree - add LC_ALL=zh_TW translation - accomodate installation to any $prefix with setup.py - fix tree_select_all - fine tune python version requirement to >= 3.6.8 for epel8 - try for gtksourceview4 and failover to gtksourceview3 * Wed Jun 24 2020 Bob Hepple <bob.hepple@gmail.com> - 3.1.7-1 - new version * Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 3.1.6-3 - Rebuilt for Python 3.9 * Sun May 03 2020 Bob Hepple <bob.hepple@gmail.com> - 3.1.6-2 - remove BR for python3-setuptools * Sun May 03 2020 Bob Hepple <bob.hepple@gmail.com> - 3.1.6-1 - rebuilt in response to RHBZ#1823599 * Sat May 02 2020 Bob Hepple <bob.hepple@gmail.com> - 3.1.5-1 - in response to RHBZ#1823599 * Sun Apr 19 2020 <bob.hepple@gmail.com> - 3.1.4-1 - Update more FSF addresses - Change shebangs to absolute paths (fedora required) - Change appdata to metainfo * Fri Apr 17 2020 <bob.hepple@gmail.com> - 3.1.3-1 - new version upstream - fixed FSF address * Sun Mar 08 2020 <bob.hepple@gmail.com> - 3.1.2-2 - minor spec file fixes * Sun Mar 08 2020 <bob.hepple@gmail.com> - 3.1.2-1 - merged fedora-30 spec file ���������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/lib/�����������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0013474�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/lib/__init__.py������������������������������������������������������������������������0000664�0000000�0000000�00000000000�14016300235�0015573�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/lib/common.py��������������������������������������������������������������������������0000664�0000000�0000000�00000000147�14016300235�0015340�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WAITING = 1 YES = 1<<1 OK = 1<<2 NO = 1<<3 CANCEL = 1<<4 TRYAGAIN = 1<<5 READONLY = 1<<6 �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/lib/file.py����������������������������������������������������������������������������0000664�0000000�0000000�00000075046�14016300235�0015001�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������import os, re import tempfile, fcntl import inspect from gi.repository import Gtk import gui from general import * from common import * import time # for strftime import shutil import string class PasswordError(Exception): def __init__(self): pass class LockingError(Exception): def __init__(self): pass class gjotsfile: def _make_lockfile_name(self, filename): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) dirname, basename = os.path.split(filename) if dirname and len(dirname) and dirname[-1] != "/": dirname = dirname + "/" name = dirname + ".#" + basename return name def lock_file(self, filename): """ Returns (reason, pid) where reason is: 0: OK 1: no permission to create lockfile 2: already locked by another process pid is the pid of the locking process or 0 on success """ if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) if not filename or len(filename) == 0: filename = self.filename lockfile = self._make_lockfile_name(filename) if self.gui.debug: print("lock_file: lockfile name =", lockfile) pid = 0 if os.access(lockfile, os.F_OK): # file already exists - see if it was ours if not os.access(lockfile, os.W_OK): return (1, 0) try: fd = open(lockfile, "r", 0o644) except IOError: return (1, 0) # fcntl.flock() returns None!! Error through exception? IOError? fcntl.flock(fd, fcntl.LOCK_EX) try: line = fd.readline() m = re.match(r"(\d+)", line) if m and m.group: pid = int(m.group(1)) except: pass if self.gui.debug: print("lock: pid = %d\n" % pid) if pid > 0: if pid == os.getpid(): # we already own this lock: fcntl.flock(fd, fcntl.LOCK_UN) fd.close() return (0, pid) # hmmm - there's no getpgid() call in python if os.system("ps -ef |awk '{print $2}'|grep %d >/dev/null 2>&1" % pid) == 0: # locking process still exists: fcntl.flock(fd, fcntl.LOCK_UN) fd.close() return (2, pid) # nothing read from lockfile or process no longer exists: if self.gui.debug: print("lock_file: locking to pid", os.getpid()) try: fd = open(lockfile, "w") fd.write("%d\n" % os.getpid()) fcntl.flock(fd, fcntl.LOCK_UN) fd.close() except IOError: return (1, 0) return (0, 0) def unlock_file(self, filename): """ Returns 0 on success, 1 on fail """ if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) if not filename or len(filename) == 0: return 1 # make sure we locked this file: lockfile = self._make_lockfile_name(filename) try: fd = open(lockfile, "r") except IOError: return 0 fcntl.flock(fd, fcntl.LOCK_EX) pid = 0 try: line = fd.readline() m = re.match(r"(\d+)", line) if m and m.group: pid = int(m.group(1)) except: # nothing read - harmless pass retval = 1 if pid == 0 or pid == os.getpid(): # yes - it's ours - or it's corrupt os.unlink(lockfile) retval = 0 fcntl.flock(fd, fcntl.LOCK_UN) fd.close() return retval def wrapItem(self, sibling, parent, title, body): """ Make new node after sibling. sibling=None means insert at end. "title" goes into the tree (left panel). "body" goes into the right panel. parent=None is a special case - it is creating the root of the tree """ # Too verbose to trace this #if self.gui.debug: # print inspect.getframeinfo(inspect.currentframe())[2], vars() newNode = None if title or body: if title and title[-1] == '\n': title = title[0:-1] newNode = self.gui.new_node(parent, sibling, title, ''.join(body)) return newNode def readItem(self, f, start, parent, title = ""): """ Read lines from f, populating parent, starting after "start" or at the end of parent if null. "title" is used to override the title of the first item - generally because it's the filename. If parent=None then we're creating the root item - further items are inserted there. Return the last item inserted. """ # Too verbose to trace this #if self.gui.debug: # print inspect.getframeinfo(inspect.currentframe())[2], vars() body = [] while 1: line = f.readline() if not line or line == "": # ie EOF break if line.find("\\NewEntry") == 0: if title or body: start = self.wrapItem(start, parent, title, body) if parent == None: # we created the root item - put everything else inside there parent = start start = None title = "" body = [] continue if line.find("\\NewFolder") == 0: if title or body: start = self.wrapItem(start, parent, title, body) if parent == None: parent = start start = None title = "" body = [] self.readItem(f, start=None, parent=start) continue if line.find("\\EndFolder") == 0: break # Normal (non-special) lines: if not title: title = line body.append(line) if title or body: start = self.wrapItem(start, parent, title, body) return start def writeItem(self, f, treeiter, first): """ Write node to file f recursively. first=suppress printing first level \\NewEntry and \\NewFolder - we're doing root """ # Too verbose to trace this #if self.gui.debug: # print inspect.getframeinfo(inspect.currentframe())[2], vars() if not first: f.write("\\NewEntry\n") body = self.gui.get_node_value(treeiter) if body: f.write(body) if not body[-1] == '\n': f.write('\n') treeiter = self.gui.get_first_child(treeiter) if treeiter: if not first: f.write("\\NewFolder\n") while treeiter: self.writeItem(f, treeiter, 0) treeiter = self.gui.get_next(treeiter) if not first: f.write("\\EndFolder\n") def get_password(self, num_fields, filename, mode, password): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) secretp = 1 feedback = " " confirm = password dirname, basename = os.path.split(filename) prompt = _("Enter password for ") + basename while 1: general = general_dialog(self.gui, self.gui.progName + _(": Enter Password"), prompt, OK|CANCEL, num_fields, secretp, feedback, _("Password: "), password, _("Confirm: "), confirm) if not general.get_value() == OK: raise PasswordError password = general.get_field1() confirm = general.get_field2() if mode == "r" or password == confirm: break feedback = _("Password was not confirmed") return password def ccrypt_open(self, filename, mode = "r", reuse_password = 0): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) if os.system("type ccdecrypt >/dev/null 2>&1") != 0: self.gui.err_msg(_("Could not find the ccrypt program - please install it and try again")) raise PasswordError # get a password: if mode == "w": num_fields = 2 else: num_fields = 1 if not reuse_password or self.gui.password == None or self.gui.password == "": self.gui.password = self.get_password(num_fields, filename, mode, self.gui.password) envname = "DH665" # or anything you like! os.environ[envname] = self.gui.password if mode == "r": f = os.popen("ccdecrypt -c -E " + envname + " '" + filename + "'", "r") else: f = os.popen("ccencrypt -E " + envname + "> '" + filename + "'", "w") # Note - I don't think the following actually scrubs the memory for local variables - need something mutable... blank = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" os.environ[envname] = blank if self.gui.purge_password: self.gui.password = blank self.gui.password = "" return f def gpg_open(self, filename, mode = "r", reuse_password = 0): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) prog = "gpg2" if os.system("type " + prog + " >/dev/null 2>&1") != 0: prog = "gpg" if os.system("type " + prog + " >/dev/null 2>&1") != 0: self.gui.err_msg(_("Neither gpg2 nor gpg are available - please install one (perhaps package gnupg2) and try again")) raise PasswordError if mode == "r": f = os.popen(prog + " --batch --no-tty --decrypt --use-agent " + "'" + filename + "' 2>/dev/null", "r") else: scratch = tempfile.mkstemp(text=True)[1] cmd = "cat > " + scratch + "; " + prog + " --batch --no-tty -o - --symmetric " + scratch + "> '" + filename + "' 2>/dev/null; rm " + scratch f = os.popen(cmd, "w") blank = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" if self.gui.purge_password: self.gui.password = blank self.gui.password = "" return f def ssl_open(self, filename, mode = "r", reuse_password = 0): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) if os.system("type openssl >/dev/null 2>&1") != 0: self.gui.err_msg(_("No openssl program - please install it and try again")) raise PasswordError # get a password: if mode == "w": num_fields = 2 else: num_fields = 1 if not reuse_password or self.gui.password == None or self.gui.password == "": self.gui.password = self.get_password(num_fields, filename, mode, self.gui.password) if mode == "r": f = os.popen("echo \"" + self.gui.password + "\" | openssl des3 -d -pass stdin -in '" + filename + "' 2>&1", "r") else: scratch = tempfile.mkstemp(text=True)[1] f = os.popen("cat > " + scratch + "; echo \"" + self.gui.password + "\" | openssl des3 -pass stdin -in " + scratch + " -out '" + filename + "' 2>&1; rm " + scratch, "w") blank = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" if self.gui.purge_password: self.gui.password = blank self.gui.password = "" return f def org_open(self, filename, mode = "r", reuse_password = 0): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) if os.system("type org2gjots >/dev/null 2>&1") != 0: self.gui.err_msg(_("No org2gjots program - please install it and try again")) raise PasswordError if mode == "r": f = os.popen("org2gjots '" + filename + "' 2>&1", "r") else: f = os.popen("gjots2org - > '" + filename + "'", "w") return f def close(self): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if self.filename: self.unlock_file(self.filename) def _general_open(self, filename, mode, reuse_password = 0): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) self.last_file = filename if mode == "w": try: backup_file = filename + "~" s = os.stat(filename) os.system("cp -f '" + filename + "' '" + backup_file + "'") os.utime(backup_file, (s.st_atime, s.st_mtime)) os.chmod(backup_file, s.st_mode) # os.chown(backup_file, s.st_uid, s.st_gid) ... not permitted!! except OSError: pass exti = filename.rfind(".cpt") if not exti == -1: return self.ccrypt_open(filename, mode = mode, reuse_password = reuse_password) exti = filename.rfind(".gpg2") if not exti == -1: return self.gpg_open(filename, mode = mode, reuse_password = reuse_password) exti = filename.rfind(".gpg") if not exti == -1: return self.gpg_open(filename, mode = mode, reuse_password = reuse_password) exti = filename.rfind(".ssl") if not exti == -1: return self.ssl_open(filename, mode = mode, reuse_password = reuse_password) exti = filename.rfind(".org") if not exti == -1: return self.org_open(filename, mode = mode, reuse_password = reuse_password) return open(filename, mode) def _do_load(self, filename, import_after): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) dirname, basename = os.path.split(filename) try: f = self._general_open(filename, "r") except IOError: self.gui.msg(_('Can\'t open "') + basename + '"') return "" except PasswordError: self.gui.msg(_("Bad password")) return "" except LockingError: self.gui.err_msg(_("File cannot be locked")) return "" if import_after: self.readItem(f, None, import_after, None) else: self.gui.flush_tree() # needs a try/except: self.readItem(f, None, None, basename) self.filename = filename self.gui.show_tree() if f.close() != None: self.gui.err_msg(_("failed!")) return "" return self.filename def _do_store(self, filename, selection, reuse_password = 0): """ Internal storage routine - no prompting, locking or other checking. Save entire tree unless selection is set - in which we are "exporting". Return filename on success, "" on error """ if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) if not filename: return "" dirname, basename = os.path.split(filename) try: f = self._general_open(filename, "w", reuse_password = reuse_password) except IOError: dirname, basename = os.path.split(filename) self.gui.msg(_("Not saved.")) self.gui.err_msg(_("Can't write to ") + basename) return "" except LockingError: self.gui.err_msg(_("Can't lock file")) return "" if selection: first_selected = self.gui.get_first_selected_iter() if not first_selected: self.gui.err_msg(_("Nothing selected")) return "" last_selected = self.gui.get_last_selected_iter() if not last_selected: self.gui.err_msg(_("Nothing selected")) return "" this = first_selected count = 0 while this: count = count + 1 next = self.gui.treestore.iter_next(this) if self.gui.same_iter(this, last_selected): next = None self.writeItem(f, this, 0) this = next else: treeiter = self.gui.get_root() # needs a try/except: for IO errors, eg. out of space, network failed ... self.writeItem(f, treeiter, 1) if f.close() != None: self.gui.err_msg(_("failed!")) return "" return filename def destroy(self): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.file_get_widget(self.name).destroy() def on_fileselection_key_press_event(self, widget, event): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) # Nothing is needed here - return & escape work as expected pass def on_fileselectionCancelButton_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.prompt_filename = None self.fileselectionValue = CANCEL def on_fileselectionOkButton_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.prompt_filename = self.fileselection_dialog.get_filename() self.fileselectionValue = OK self.fileselection_readonly = self.file_get_widget("fileselectionReadonly").get_active() def get_value(self): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) return self.prompt_filename def _file_dialog(self, title, mode): """ File selection dialog """ if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) callbacks = { # File selector popup: "on_fileselection_key_press_event": self.on_fileselection_key_press_event, "on_fileselectionCancelButton_clicked": self.on_fileselectionCancelButton_clicked, "on_fileselectionOkButton_clicked": self.on_fileselectionOkButton_clicked, } self.name = "fileselection" self.gui.builder.add_from_file(self.gui.sharedir + "ui/fileDialog.ui") self.gui.builder.connect_signals(callbacks) self.file_get_widget = self.gui.gui_get_widget self.fileselection_dialog = self.file_get_widget(self.name) self.fileselection_dialog.set_title(title) self.fileselection_dialog.add_filter(self.gui.file_filter) if self.last_file == None: self.last_file = os.environ["HOME"] self.last_file = self.gui.backtick(("readlink -n -m " + self.last_file).encode()) self.fileselection_dialog.set_filename(self.last_file) all_filter = Gtk.FileFilter() all_filter.add_pattern("*") all_filter.set_name("All files") self.fileselection_dialog.add_filter(all_filter) self.fileselection_dialog.set_action(mode) self.fileselection_dialog.show() self.fileselectionValue = WAITING if mode == Gtk.FileChooserAction.SAVE: self.fileselection_dialog.set_do_overwrite_confirmation(True) self.file_get_widget("fileselectionReadonly").hide() self.gui.builder.connect_signals(callbacks) while self.fileselectionValue == WAITING: Gtk.main_iteration() self.fileselection_dialog.destroy() def read_file(self, prompt, filename, readonly, import_after): """ Top level file reading - with prompting and locking of files. Reads items in after "import_after" if set, otherwise to root. Returns filename read in or "" """ if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) if prompt and not filename: self._file_dialog(prompt, Gtk.FileChooserAction.OPEN) if self.fileselectionValue != OK or not self.prompt_filename: return "" else: if not filename: filename = os.environ["HOME"]+"/.gjotsfile" self.prompt_filename = filename dirname, basename = os.path.split(self.prompt_filename) if import_after or self.fileselection_readonly: readonly = 1 if not os.access(self.prompt_filename, os.R_OK): self.gui.err_msg(_("%s is not readable") % basename) return "" rd = Gtk.RecentData() rd.mime_type = "application/gjots" rd.app_name = "gjots2" rd.app_exec = "gjots2" Gtk.RecentManager.get_default().add_full("file://" + self.prompt_filename, rd) # lock the file while not readonly: reason, pid = self.lock_file(self.prompt_filename) if reason == 0: # it's locked, all in order... break if reason == 1: msg = _("%s: no permission") % basename else: msg = _("%s: locked by process number %d") % (basename, pid) general = general_dialog(self.gui, title = self.gui.progName + _(": can't lock file."), prompt = msg, buttons = TRYAGAIN | CANCEL | READONLY, secretp = 0, feedback = "", field1_label = "", field1_default = "", field2_label = "", field2_default = "") if general.get_value() == CANCEL: raise LockingError if general.get_value() == READONLY: self.gui.set_readonly(1, quietly=1) readonly = 1 retval = self._do_load(self.prompt_filename, import_after) self.filename_timestamp = 0 if retval: if not import_after: self.filename = self.prompt_filename self.filename_timestamp = os.stat(self.filename).st_mtime if readonly: self.gui.set_readonly(1, quietly=1) else: self.unlock_file(self.prompt_filename) self.filename = "" self.gui.set_readonly(0, quietly=1) return retval # see if the file has changed since we read it - maybe something else wrote to it: def _check_timestamp(self): if self.filename_timestamp: dirname, basename = os.path.split(self.filename) try: s = os.stat(self.filename) except: return 0 if s.st_mtime > self.filename_timestamp: timestamp = time.strftime("%Y%m%d%H%M%S", time.localtime(s.st_mtime)) c = string.split(basename, ".gjots") newfilename = string.join([ c[0], timestamp, "gjots" ], ".") if len(c) > 1: newfilename += c[1] # add suffix, if any newfilename = os.path.join(dirname, newfilename) shutil.copy(self.filename, newfilename) if self.gui.debug: print("copied %s to %s\n" % ( basename, newfilename)) return newfilename return 0 def write_file(self, prompt = "", exporting=0, reuse_password=1): """ Top level file writing - with prompting if necessary. If no prompt just use the default file and don't check about overwriting it. Always lock the file before writing - leave it locked (and remove any other locks) unless exporting. If exporting then only write the current selection - no need to change the default filename to this one; otherwise, write the root item and change the default filename to this one. If we already know the password and reuse_password is 0 then just save the sucker. Return filename on success, "" on error """ if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) if self.gui.readonly or not self.filename: if not prompt or len(prompt) == 0: prompt = _("Save as ...") retval = "" while 1: # use 'while' simply so that we can use break: if prompt: self._file_dialog(prompt, Gtk.FileChooserAction.SAVE) if self.fileselectionValue == OK and self.prompt_filename: dirname, basename = os.path.split(self.prompt_filename) # we may need to use "fully expanded name" here: if self.filename == self.prompt_filename: if exporting: self.gui.err_msg(_("That file is already open!")) return "" timestamped_file = self._check_timestamp() retval = self._do_store(self.filename, selection = exporting, reuse_password = reuse_password) if timestamped_file: general_dialog(self.gui, self.gui.progName + _(": file has changed"), _("File changed since it was read - copied to %s ") % timestamped_file, OK, 0, 0, "", "", "", "", "") if not exporting: try: s = os.stat(self.filename) self.filename_timestamp = s.st_mtime except: pass break reason, pid = self.lock_file(self.prompt_filename) if reason == 2: self.gui.err_msg(_("%s is locked by pid %d") % (basename, pid)) return "" if reason == 1: self.gui.err_msg(_("Can't make a lockfile in ") + dirname) return "" # We know that the directory is writable, so we can # create a file here. See if it already exists, if so, # is it writable, if so should we overwrite it?: try: f = open(self.prompt_filename) f.close() if not os.access(self.prompt_filename, os.W_OK): self.unlock_file(self.prompt_filename) self.gui.err_msg(_("%s is not writable") % basename) return "" general = general_dialog(self.gui, self.gui.progName + _(": %s already exists.") % basename, _("overwrite %s?") % basename, YES|CANCEL, 0, 0, "", "", "", "", "") if not general.get_value() == OK: self.unlock_file(self.prompt_filename) return "" except IOError: pass retval = self._do_store(self.prompt_filename, selection = exporting, reuse_password = reuse_password) if exporting: self.unlock_file(self.prompt_filename) else: if retval: self.close() self.filename = self.prompt_filename self.gui.set_title(basename) try: s = os.stat(self.filename) self.filename_timestamp = s.st_mtime except: pass break else: # self.fileselectionValue != OK return "" else: # just save the sucker # assert exporting == 0 timestamped_file = self._check_timestamp() retval = self._do_store(self.filename, selection = exporting, reuse_password = reuse_password) if timestamped_file: general_dialog(self.gui, self.gui.progName + _(": file has changed"), _("File changed since it was read - so it was copied to %s ") % timestamped_file, OK, 0, 0, "", "", "", "", "") try: s = os.stat(self.filename) self.filename_timestamp = s.st_mtime except: pass break # developers may want to enable this to check the before & after file images: # if self.gui.dev: # os.system("meld " + self.prompt_filename + " " + self.prompt_filename + "~") rd = Gtk.RecentData() rd.mime_type = "application/gjots" rd.app_name = "gjots2" rd.app_exec = "gjots2" Gtk.RecentManager.get_default().add_full("file://" + self.filename, rd) return retval def __init__(self, gui): self.gui = gui if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.prompt_filename = "" self.filename = "" self.fileselectionValue = OK self.fileselection_readonly = False self.file_filter = None self.last_file = None # Local variables: # eval:(setq compile-command "cd ..; ./gjots2 test.gjots") # eval:(setq indent-tabs-mode nil) # eval:(setq tab-width 4) # eval:(setq python-indent 4) # End: ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/lib/find.py����������������������������������������������������������������������������0000664�0000000�0000000�00000016452�14016300235�0014776�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������import inspect class find_dialog: def destroy(self): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.find_get_widget(self.name).destroy() self.gui.remove_tag() def saveSettings(self): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) w = self.find_get_widget("caseCheckbutton") if w: self.gui.settings.set_boolean("find-match-case", w.get_active()) w = self.find_get_widget("globalCheckbutton") if w: self.gui.settings.set_boolean("find-global", w.get_active()) w = self.find_get_widget("regexCheckbutton") if w: self.gui.settings.set_boolean("find-regex", w.get_active()) w = self.find_get_widget("backwardsCheckbutton") if w: self.gui.settings.set_boolean("find-backwards", w.get_active()) self.gui.add_string_to_combobox(self.find_get_widget("findEntry").get_text(), True) self.gui.update_settings_from_combobox() w = self.find_get_widget("replaceEntry") if w: self.gui.settings.set_string("replace-text", w.get_text()) return def on_findDialog_destroy(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.gui.find_dialog = None return def on_replaceEntry_key_press_event(self, widget, key_event): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) if key_event.keyval == gi.repository.Gdk.KEY_Return or key_event.keyval == gi.repository.Gdk.KEY_KP_Enter: self.on_replaceStartButton_clicked(widget) if key_event.keyval == gi.repository.Gdk.KEY_Escape: self.on_findCancelButton_clicked(widget) return def feedback(self, msg): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) w = self.find_get_widget("findFeedback") if w: w.set_text(msg) return def on_findStartButton_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.gui.sync_text_buffer() self.saveSettings() self.feedback("") if not self.gui.find_next(): self.feedback(_("Not found")) else: self.feedback(_("Found")) w = self.find_get_widget("findEntry") if w: w.grab_focus() def on_findCloseButton_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.saveSettings() self.destroy() return def on_replaceStartButton_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.gui.sync_text_buffer() self.saveSettings() self.feedback("") if not self.gui.replace_next(): self.feedback(_("Not found")) return self.feedback(_("Replace?")) w = self.find_get_widget("findEntry") if w: w.grab_focus() return def on_replaceAllButton_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.gui.sync_text_buffer() self.saveSettings() total = 0 i = 1 while i: i = self.gui.replace_next() total = total + i self.feedback(_("%d substitutions") % total) w = self.find_get_widget("findEntry") if w: w.grab_focus() return def on_findCancelButton_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.destroy() return def on_findClearButton_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) w = self.find_get_widget("findEntry") if w: w.set_text("") w.grab_focus() w = self.find_get_widget("replaceEntry") if w: w.set_text("") return def _set_readonly(self, mode): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if mode: w = self.find_get_widget("replaceStartButton") w.hide() w = self.find_get_widget("replaceEntry") w.hide() w = self.find_get_widget("replaceLabel") w.hide() w = self.find_get_widget("replaceAllButton") w.hide() else: w = self.find_get_widget("replaceStartButton") w.show() w = self.find_get_widget("replaceEntry") w.show() w = self.find_get_widget("replaceLabel") w.show() w = self.find_get_widget("replaceAllButton") w.show() def __init__(self, gui): """ Find dialog """ self.gui = gui if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) callbacks = { "on_findDialog_destroy": self.on_findDialog_destroy, "on_replaceEntry_key_press_event": self.on_replaceEntry_key_press_event, "on_findStartButton_clicked": self.on_findStartButton_clicked, "on_findCloseButton_clicked": self.on_findCloseButton_clicked, "on_replaceStartButton_clicked": self.on_replaceStartButton_clicked, "on_replaceAllButton_clicked": self.on_replaceAllButton_clicked, "on_findCancelButton_clicked": self.on_findCancelButton_clicked, "on_findClearButton_clicked": self.on_findClearButton_clicked } self.name = "findDialog" self.gui.builder.add_from_file(self.gui.sharedir + "ui/findDialog.ui") self.gui.builder.connect_signals(callbacks) self.find_get_widget = self.gui.gui_get_widget w = self.find_get_widget("caseCheckbutton") if w: w.set_active(self.gui.settings.get_boolean("find-match-case")) w = self.find_get_widget("globalCheckbutton") if w: w.set_active(self.gui.settings.get_boolean("find-global")) w = self.find_get_widget("regexCheckbutton") if w: w.set_active(self.gui.settings.get_boolean("find-regex")) w = self.find_get_widget("backwardsCheckbutton") if w: w.set_active(self.gui.settings.get_boolean("find-backwards")) w = self.find_get_widget("findEntry") if w: current_search_text = self.gui.get_active_item_from_combobox() if current_search_text: w.set_text(current_search_text) else: w.set_text("") w = self.find_get_widget("replaceEntry") if w: w.set_text(self.gui.settings.get_string("replace-text")) self.feedback("") self._set_readonly(self.gui.readonly) # find_dialog # Local variables: # eval:(setq compile-command "cd ..; ./gjots2 test.gjots") # eval:(setq indent-tabs-mode nil) # eval:(setq tab-width 4) # eval:(setq python-indent 4) # End: ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/lib/general.py�������������������������������������������������������������������������0000664�0000000�0000000�00000016405�14016300235�0015471�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������from gi.repository import Gtk import inspect from common import * class general_dialog: def destroy(self): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.general_get_widget(self.name).destroy() def on_generalField1_key_press_event(self, widget, event): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if event.keyval == 65307: # Escape self.generalValue = CANCEL; return 1 if event.keyval == 65289: # tab if self.generalNumFields > 1: self.general_get_widget("generalField2").grab_focus() return 1 if event.keyval == 65421 or event.keyval == 65293: # KP_Enter / Return if self.generalNumFields > 1: #generalDialog = gtk_widget_get_toplevel(widget); self.general_get_widget("generalField2").grab_focus() else: self.generalValue = OK; return 1 return 0 def on_generalField2_key_press_event(self, widget, event): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if event.keyval == 65307: # Escape self.generalValue = CANCEL; return 1 if event.keyval == 65289: # tab self.general_get_widget("generalField1").grab_focus() return 1 if event.keyval == 65421 or event.keyval == 65293: # KP_Enter / Return self.generalValue = OK; return 1 return 0 def on_generalOK_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.generalValue = OK def on_generalNo_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.generalValue = NO def on_generalCancel_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.generalValue = CANCEL def on_generalTryagain_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.generalValue = TRYAGAIN def on_generalReadonly_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.generalValue = READONLY def get_field1(self): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) return self.field1 def get_field2(self): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) return self.field2 def get_value(self): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) return self.generalValue def __init__(self, gui, title, prompt, buttons, num_fields = 0, secretp = 0, feedback = "", field1_label = "", field1_default = "", field2_label = "", field2_default = ""): self.gui = gui if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) callbacks = { # General popup: "on_generalField1_key_press_event": self.on_generalField1_key_press_event, "on_generalField2_key_press_event": self.on_generalField2_key_press_event, "on_generalOK_clicked": self.on_generalOK_clicked, "on_generalNo_clicked": self.on_generalNo_clicked, "on_generalCancel_clicked": self.on_generalCancel_clicked, "on_generalTryagain_clicked": self.on_generalTryagain_clicked, "on_generalReadonly_clicked": self.on_generalReadonly_clicked, } self.field1 = field1_default self.field2 = field2_default self.generalNumFields = num_fields self.name = "generalDialog" self.filename = self.gui.sharedir + "ui/generalDialog.ui" self.gui.builder.add_from_file(self.filename) self.gui.builder.connect_signals(callbacks) self.general_get_widget = self.gui.gui_get_widget self.general_dialog = self.general_get_widget(self.name) #Gtk.Widget.show(self) self.general_dialog.set_transient_for(self.gui.gjots) self.general_dialog.set_title(title) self.general_get_widget("generalPromptLabel").set_label(prompt) if num_fields < 1: self.general_get_widget("generalLabel1").hide() self.general_get_widget("generalField1").hide() else: self.general_get_widget("generalLabel1").set_label(field1_label) self.general_get_widget("generalLabel1").show() self.general_get_widget("generalField1").set_text(field1_default) self.general_get_widget("generalField1").set_visibility(not secretp) self.general_get_widget("generalField1").show() if num_fields < 2: self.general_get_widget("generalLabel2").hide() self.general_get_widget("generalField2").hide() else: self.general_get_widget("generalLabel2").set_label(field2_label) self.general_get_widget("generalLabel2").show() self.general_get_widget("generalField2").set_text(field2_default) self.general_get_widget("generalField2").set_visibility(not secretp) self.general_get_widget("generalField2").show() if feedback: self.general_get_widget("generalFeedback").set_label(feedback) self.general_get_widget("generalFeedback").show() else: self.general_get_widget("generalFeedback").hide() if (buttons & YES or buttons & OK): self.general_get_widget("generalOK").show() if (buttons & YES): self.general_get_widget("generalOK").set_label(_("Yes")) else: self.general_get_widget("generalOK").hide() if (buttons & NO): self.general_get_widget("generalNo").show() else: self.general_get_widget("generalNo").hide() if (buttons & CANCEL): self.general_get_widget("generalCancel").show() else: self.general_get_widget("generalCancel").hide() if (buttons & READONLY): self.general_get_widget("generalReadonly").show() else: self.general_get_widget("generalReadonly").hide() if (buttons & TRYAGAIN): self.general_get_widget("generalTryagain").show() else: self.general_get_widget("generalTryagain").hide() self.generalValue = WAITING while self.generalValue == WAITING: Gtk.main_iteration() if self.generalValue == OK: if num_fields > 1: self.field2 = self.general_get_widget("generalField2").get_text() if num_fields > 0: self.field1 = self.general_get_widget("generalField1").get_text() self.general_get_widget(self.name).destroy() # Local variables: # eval:(setq compile-command "cd ..; ./gjots2 test.gjots") # eval:(setq indent-tabs-mode nil) # eval:(setq tab-width 4) # eval:(setq python-indent 4) # End: �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/lib/gui.py�����������������������������������������������������������������������������0000664�0000000�0000000�00000354024�14016300235�0014642�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- coding: utf-8 -*- import os, sys import gi try: gi.require_version('GtkSource', '4') except: gi.require_version('GtkSource', '3.0') from gi.repository import GObject, Gio, Gtk, Gdk, GdkPixbuf, GLib import tempfile from gi.repository import Pango import time # for strftime import pipes import inspect from file import * from prefs import * from general import * from common import * from find import * from printDialog import * from sortDialog import * from version import * """ Notes: Recall that a GtkTreeStore implements GtkTreeModel - so all treemodel methods apply to treestore According to file:///usr/share/gtk-doc/html/gtk/GtkTreeModel.html, tree_row_references are not necessary as "some models guarantee that an iterator is valid for as long as the node it refers to is valid (most notably the GtkTreeStore and GtkListStore)." Note that every selection is constrained to be of siblings only at the time the selection changes - so we can always make that assumption. TODO: replace self._iter_prev/next with self.treestore.iter_previous/next """ def _insert_primary_callback(clipboard, text, user_data): self, x, y = user_data if text and not self.readonly: result, hit_iter = self.textView.get_iter_at_location(x, y) self.textBuffer.place_cursor(hit_iter) self.textBuffer.insert_at_cursor(text) clipboard.set_text(text, -1) self.msg(_("Text pasted")) def _autosave_alarm_handler(myself): if myself.debug: print("autosave alarm!") if myself.dirtyflag: myself._do_save(reuse_password = 1) myself.set_readonly(1, 1) myself.autosave_timeout_tag = False return False class gjots_gui: def set_autosave_timeout(self): if self.autosave_timeout_tag: self._cancel_autosave_timeout() timeout = self.settings.get_int("auto-save-interval") if timeout > 0: if self.debug: print("autosave alarm set at %i sec" % timeout) self.autosave_timeout_tag = GObject.timeout_add(timeout * 1000, _autosave_alarm_handler, self) def _cancel_autosave_timeout(self): if self.autosave_timeout_tag: GObject.source_remove(self.autosave_timeout_tag) self.autosave_timeout_tag = False def _set_dirtyflag(self): self.dirtyflag = "* " self.set_autosave_timeout() def _start_of_para(self): """ Para marker is \n\n """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) cursor_mark = self.textBuffer.get_insert() start_iter = self.textBuffer.get_iter_at_mark(cursor_mark) back_one = self.textBuffer.get_iter_at_mark(cursor_mark) if not back_one.backward_char(): return start_iter if start_iter.ends_line() and back_one.ends_line(): return start_iter back_one = self.textBuffer.get_iter_at_mark(cursor_mark) back_two = self.textBuffer.get_iter_at_mark(cursor_mark) back_two.backward_char() while 1: if not back_one.backward_char(): return start_iter if not back_two.backward_char(): return back_one if back_one.ends_line() and back_two.ends_line(): return start_iter start_iter.backward_char() def _end_of_para(self): """ Para marker is \n\n or Unicode equiv (I suppose ???) """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) cursor_mark = self.textBuffer.get_insert() next_iter = self.textBuffer.get_iter_at_mark(cursor_mark) end_iter = self.textBuffer.get_iter_at_mark(cursor_mark) if end_iter.ends_line(): return end_iter while 1: if not next_iter.forward_char(): return end_iter if end_iter.ends_line() and next_iter.ends_line(): return end_iter end_iter.forward_char() def _start_of_url(self): """ Look for a continuous sequence of characters in a single line that might be a url. Word marker is \n \t or space. Returns a TextBuffer iterator. """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) cursor_mark = self.textBuffer.get_insert() start_iter = self.textBuffer.get_iter_at_mark(cursor_mark) this_char = start_iter.get_char() if this_char == ' ' or this_char == '\t' or this_char == '\n': return start_iter while 1: if start_iter.starts_line(): return start_iter if not start_iter.backward_char(): return start_iter this_char = start_iter.get_char() if this_char == ' ' or this_char == '\t' or this_char == '\n': start_iter.forward_char() return start_iter def _end_of_url(self): """ Word marker is \n \t or space """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) cursor_mark = self.textBuffer.get_insert() end_iter = self.textBuffer.get_iter_at_mark(cursor_mark) next_char = end_iter.get_char() if next_char == ' ' or next_char == '\t' or next_char == '\n': return end_iter while 1: if end_iter.ends_line(): return end_iter if not end_iter.forward_char(): return end_iter next_char = end_iter.get_char() if next_char == ' ' or next_char == '\t' or next_char == '\n': return end_iter def do_format_paragraph(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) text_formatter=self.settings.get_string("text-formatter") r = text_formatter.find(" ") if r: bin = text_formatter[0:r] else: bin = text_formatter if os.system("type %s >/dev/null 2>&1" % bin): self.err_msg(_("External formatter \"%s\" is not installed - can't format") % bin) return start_iter = self._start_of_para() end_iter = self._end_of_para() para = self.textBuffer.get_text(start_iter, end_iter, False) t = pipes.Template() if text_formatter.find("%d") >= 0: runstring = text_formatter % self.settings.get_int("line-length") else: runstring = text_formatter t.append(runstring, "--") scratch = tempfile.NamedTemporaryFile(mode='r+', delete = False) f = t.open(scratch.name, "w") f.write(para) f.close() para = open(scratch.name, "r").read() os.unlink(scratch.name) scratch.close() if para and para[-1] == '\n': para = para[0:-1] if self.debug: print(("\"%s\"\n" % para)) self.textBuffer.place_cursor(start_iter) self.textBuffer.delete(start_iter, end_iter) self.textBuffer.insert(start_iter, para, len(para)) # move to next para: if start_iter.forward_char(): start_iter.forward_char() self.textBuffer.place_cursor(start_iter) return def do_time_stamp(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) format = self.settings.get_string("date-format") newstring = time.strftime(format) self.textBuffer.insert_at_cursor(newstring, len(newstring)) return def on_settings_find_text_changed(self, settings, key, label): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) print("find_text=", list(settings.get_value("find-text"))) self.update_combobox_from_settings() return def on_gjots_focus_out_event(self, arg1, arg2): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) def on_combobox_changed(self, combobox): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.update_settings_from_combobox() return 0 def on_settings_text_font_changed(self, settings, key, label): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) print("text_font=", settings.get_string("text-font")) font_desc = Pango.FontDescription(settings.get_string("text-font")) self.textView.modify_font(font_desc) return def on_settings_top_toolbar_changed(self, settings, key, label): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) value = settings.get_boolean("top-toolbar") w = self.gui_get_widget("topToolbar") if w: if value: w.show() else: w.hide() # how come this doesn't create an infinite loop - doesn't the # GtkMenuChecklist item get a notification? w = self.gui_get_widget("topToolbarCheckMenuItem") if w: w.set_active(value) return def on_settings_side_toolbar_changed(self, settings, key, label): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) value = settings.get_boolean("side-toolbar") w = self.gui_get_widget("treeToolbar") if w: if value: w.show() else: w.hide() # how come this doesn't create an infinite loop - doesn't the # GtkMenuChecklist item get a notification? w = self.gui_get_widget("treeToolbarCheckMenuItem") if w: w.set_active(value) return def on_settings_show_icon_text_changed(self, settings, key, label): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if settings.get_boolean("show-icon-text"): self.gui_get_widget("topToolbar").set_style(Gtk.ToolbarStyle.BOTH) self.gui_get_widget("treeToolbar").set_style(Gtk.ToolbarStyle.BOTH) else: self.gui_get_widget("topToolbar").set_style(Gtk.ToolbarStyle.ICONS) self.gui_get_widget("treeToolbar").set_style(Gtk.ToolbarStyle.ICONS) self.gui_get_widget("showIconTextCheckMenuItem").set_active(self.settings.get_boolean("show-icon-text")) return def on_settings_status_bar_changed(self, settings, key, label): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if settings.get_boolean("status-bar"): self.gui_get_widget("appbar").show() else: self.gui_get_widget("appbar").hide() self.gui_get_widget("statusBarMenuItem").set_active(settings.get_boolean("status-bar")) return def on_settings_pane_position_changed(self, settings, key, label): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.gui_get_widget("treeTextPane").set_position(settings.get_int("pane-position")) return def _initialise_settings(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) try: self.settings = Gio.Settings.new("org.gtk.gjots2") except: print("You need to run 'glib-compile-schemas $prefix/share/glib-2.0/schemas'") sys.exit(1) # handle startup defaults: self.update_combobox_from_settings() font_desc = Pango.FontDescription(self.settings.get_string("text-font")) self.textView.modify_font(font_desc) # set this off at startup: self.settings.set_boolean("find-backwards", 0) self.on_settings_top_toolbar_changed(self.settings, 0, 0) self.on_settings_side_toolbar_changed(self.settings, 0, 0) self.on_settings_show_icon_text_changed(self.settings, 0, 0) self.on_settings_status_bar_changed(self.settings, 0, 0) self.on_settings_pane_position_changed(self.settings, 0, 0) # setup notifiers: self.global_find_index = 0 return def _create_empty_tree(self): # create an empty tree: if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.gjotsfile = gjotsfile(self) self.flush_tree() self.new_node(None, None, self.progName, "") self.show_tree() def flush_tree(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.treestore = Gtk.TreeStore( GObject.TYPE_STRING, # title == first line of body except for root, which is filename GObject.TYPE_STRING, # body GObject.TYPE_INT) # body_temp_flag - used after creating new items def set_title(self, message): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) dirname, basename = os.path.split(self.gjotsfile.filename) self.gjots.set_title(self.progName + ": " + basename + ": " + message) def show_tree(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) # remove the old column, if there: column = self.treeView.get_column(0) if column: self.treeView.remove_column(column) self.treeView.set_model(self.treestore) renderer = Gtk.CellRendererText() column = Gtk.TreeViewColumn(self.progName, renderer, text=0) self.column = column self.treeView.append_column(column) self.set_title("") self.treeView.get_selection().set_mode(Gtk.SelectionMode.MULTIPLE) self.treeView.show() return def get_node_value(self, treeiter): "Get the text value of the node at location 'treeiter'" if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) return self.treestore.get_value(treeiter, 1) def get_node_title(self, treeiter): "Get the title value of the node at location 'treeiter'" if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) body = self.treestore.get_value(treeiter, 1) eol = body.find("\n") if eol >= 0: title = body[0:eol] else: title = body return title def get_first_child(self, treeiter): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) return self.treestore.iter_nth_child(treeiter, 0) def get_root(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) return self.treestore.get_iter_first() def get_next(self, treeiter): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) return self.treestore.iter_next(treeiter) def _get_deepest_child(self, iter): """ if current has no children return it. Otherwise recurse down the tree and return the last (deepest) child """ while 1: num_children = self.treestore.iter_n_children(iter) if num_children == 0: return iter iter = self.treestore.iter_nth_child(iter, num_children - 1) def get_linear_prev(self, iter): """ Get the previous tree item - if current has a previous sibling, return its last (deepest) child. If no more siblings, get the last (deepest) child of the previous sibling of the parent. """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if self.same_iter(iter, self.get_root()): return None prev = self.treestore.iter_previous(iter) if prev: return self._get_deepest_child(prev) while iter: iter = self.treestore.iter_parent(iter) if not iter: return self.treestore.get_iter_first() prev = self.treestore.iter_previous(iter) if prev: return self._get_deepest_child(prev) return iter def get_linear_next(self, iter): """ Get the very next tree item - if current has a child, return it. Otherwise, return the next sibling. If no more siblings, get the next sibling of the parent recursively. """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) next = self.treestore.iter_children(iter) if next: return next next = self.treestore.iter_next(iter) if next: return next while iter: iter = self.treestore.iter_parent(iter) if not iter: return None next = self.treestore.iter_next(iter) if next: return next return iter def new_node(self, parent, sibling, title, body): # bit too verbose to trace: #if self.debug: # print inspect.getframeinfo(inspect.currentframe())[2], vars() if sibling: treeiter = self.treestore.insert_after(parent, sibling) else: treeiter = self.treestore.insert_before(parent, None) # None means insert at end! self.treestore.set_value(treeiter, 0, title) self.treestore.set_value(treeiter, 1, body) self.treestore.set_value(treeiter, 2, 0) # temp_flag return treeiter def _do_new_page(self): """ Inserts a new blank item into the tree after the last one selected. Make the new item the selection. """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) sibling = self.get_last_selected_iter() if not sibling or self.same_iter(sibling, self.get_root()): # nothing selected or tree is empty or root is selected - insert at end parent = self.get_root() newnode = self.treestore.insert_before(parent, None) else: parent = self.treestore.iter_parent(sibling) newnode = self.treestore.insert_after(parent, sibling) self.treestore.set_value(newnode, 0, self.temp_text) self.treestore.set_value(newnode, 1, self.temp_text) self.treestore.set_value(newnode, 2, 1) # body is temporary # Make sure new item is visible: # self.treeView.expand_to_path(self.treestore.get_path(newnode)) ... not in pygtk-2.0 parent_path = self.treestore.get_path(parent) self.treeView.expand_row(parent_path, 0) # narrow the selection to the new item: self._warp(newnode) # Now put the cursor into the right place self.textView.grab_focus() self._set_dirtyflag() def _do_new_child(self): """ Inserts a new blank item as a child of the last one selected. """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self._set_dirtyflag() parent = self.get_last_selected_iter() if not parent: # nothing selected or tree is empty - just add an new page self._do_new_page() return new_child = self.treestore.insert_before(parent, None) self.treestore.set_value(new_child, 0, self.temp_text) self.treestore.set_value(new_child, 1, self.temp_text) self.treestore.set_value(new_child, 2, 1) # body is temporary # Make sure new item is visible: parent_path = self.treestore.get_path(parent) self.treeView.expand_row(parent_path, 0) # narrow the selection to the new child: self._warp(new_child) # Now put the cursor into the right place self.textView.grab_focus() def _do_move_up(self): """ Move the current selection before the first's sibling, if any. """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") first_selected = self.get_first_selected_iter() if not first_selected: self.msg(_("Nothing selected")) return parent = self.treestore.iter_parent(first_selected) if not parent: self.msg(_("No parent!")) return this = self.treestore.iter_children(parent) # returns first sibling of first_selected if not this: self.msg(_("No child!")) return if self.same_iter(this, first_selected): # we're at the end of this level - see if we can push into # the parents prev sibling: new_parent = self._iter_prev(parent) if not new_parent: self.msg(_("Can't go any further")) return this = first_selected new_selection_start = new_selection_end = None while this: if not self.treeView.get_selection().iter_is_selected(this): break next = self.treestore.iter_next(this) new_selection_end = self._copy_subtree(self.treestore, this, self.treestore, new_parent, -1) if not new_selection_start: new_selection_start = new_selection_end self._set_dirtyflag() this = next # do the removal backwards as there is breakage in gtk3-3.16.7-1.fc22.x86_64: this = self.get_last_selected_iter() while this: if not self.treeView.get_selection().iter_is_selected(this): break prev = self._iter_prev(this) self.treestore.remove(this) self._set_dirtyflag() this = prev parent_path = self.treestore.get_path(new_parent) self.treeView.expand_row(parent_path, 0) self._select_range(new_selection_start, new_selection_end) return # scan the siblings until we get to the first_selected: while (this): next = self.treestore.iter_next(this) if not next: self.msg(_("Internal error!")) return if self.same_iter(next, first_selected): pivot = this # now scan again, this time looking for selected items and moving before pivot this = self.treestore.iter_children(parent) # returns first child while this: if self.treeView.get_selection().iter_is_selected(this): self.treestore.move_before(this, pivot) # gtk 2.2+ only this = self.treestore.iter_next(this) self._set_dirtyflag() return this = next def _copy_subtree(self, from_treestore, from_iter, to_treestore, to_parent, position, after = False): """ position = 0 means to the start position =-1 means to the end position = otherwise _before_ that position (or _after_ if 'after' is set) """ title = from_treestore.get_value(from_iter, 0) text = from_treestore.get_value(from_iter, 1) if (type(position) == type(to_parent)): if after: new = to_treestore.insert_after(to_parent, position) else: new = to_treestore.insert_before(to_parent, position) else: if position == -1: position = to_treestore.iter_n_children(to_parent) + 1 new = to_treestore.insert(to_parent, position) to_treestore.set_value(new, 0, title) to_treestore.set_value(new, 1, text) this = from_treestore.iter_nth_child(from_iter, 0) while this: self._copy_subtree(from_treestore, this, to_treestore, new, -1) this = from_treestore.iter_next(this) return new def _select_range(self, start, end): # temporarily disconnect selection updating as structure is unstable (bug 1250753): self.treeView.get_selection().handler_block(self.on_tree_selection_changed_handler) self.treeView.get_selection().select_range(self.treestore.get_path(start), self.treestore.get_path(end)) # disabled, so we also need to manually set self.current_item!): self.current_item = start self.treeView.get_selection().handler_unblock(self.on_tree_selection_changed_handler) #self.on_tree_selection_changed_handler = self.treeView.get_selection().connect("changed", self.on_tree_selection_changed) def _do_move_down(self): """ Move the current selection after the last's sibling, if any. """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") first_selected = self.get_first_selected_iter() if not first_selected: self.msg(_("Nothing selected")) return last_selected = self.get_last_selected_iter() if not last_selected: self.msg(_("Nothing selected")) return parent = self.treestore.iter_parent(last_selected) if not parent: self.msg(_("No parent!")) return pivot = self.treestore.iter_next(last_selected) if not pivot: # we're at the end of this level - see if we can push into # the parents next sibling: new_parent = self.treestore.iter_next(parent) if not new_parent: self.msg(_("Can't go any further")) return this = last_selected new_selection_start = new_selection_end = None while this: prev = self._iter_prev(this) if self.same_iter(this, first_selected): prev = None new_selection_start = self._copy_subtree(self.treestore, this, self.treestore, new_parent, 0) if not new_selection_end: new_selection_end = new_selection_start self.treestore.remove(this) self._set_dirtyflag() this = prev parent_path = self.treestore.get_path(new_parent) self.treeView.expand_row(parent_path, 0) self._select_range(new_selection_start, new_selection_end) return # now scan siblings looking for selected items and moving after pivot this = self.treestore.iter_children(parent) # returns first sibling of last_selected if not this: self.msg(_("No child!")) return while this: next = self.treestore.iter_next(this) if self.treeView.get_selection().iter_is_selected(this): self.treestore.move_after(this, pivot) # gtk 2.2 only self._set_dirtyflag() this = next def _do_move_left(self): """ "Promote" - selection becomes a sibling of its parent - treestore.move_after() only operates within one level so we can't use it here - instead, it looks like we have to write all items out to disc and then read them back in at the right position. Sigh. """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self.sync_text_buffer() first_selected = self.get_first_selected_iter() if not first_selected: self.msg(_("Nothing selected")) return last_selected = self.get_last_selected_iter() if not last_selected: self.msg(_("Nothing selected")) return parent = self.treestore.iter_parent(last_selected) if not parent: self.msg(_("No parent!")) return grandparent = self.treestore.iter_parent(parent) if not grandparent: self.msg(_("Can't go further!")) return # temporarily disconnect selection updating as structure is unstable (bug 1250753): # self.treeView.get_selection().disconnect(self.on_tree_selection_changed_handler) self.treeView.get_selection().handler_block(self.on_tree_selection_changed_handler) f = tempfile.TemporaryFile(mode='r+') this = first_selected while this: next = self.treestore.iter_next(this) if self.same_iter(this, last_selected): next = None self.gjotsfile.writeItem(f, this, 0) if not self.treestore.remove(this): # returns false if at end next = None this = next f.flush() f.seek(0, 0) last_selected = self.gjotsfile.readItem(f, start=parent, parent=grandparent) f.close() # Now, reselect the items (on_tree_selection_changed is # disabled, so we also need to manually set self.current_item!): self.current_item = None this = self.treestore.iter_next(parent) while this: if not self.current_item: self.current_item = this next = self.treestore.iter_next(this) if self.same_iter(this, last_selected): next = None self.treeView.get_selection().select_iter(this) this = next #self.on_tree_selection_changed_handler = self.treeView.get_selection().connect("changed", self.on_tree_selection_changed) self.treeView.get_selection().handler_unblock(self.on_tree_selection_changed_handler) self._set_dirtyflag() def _do_move_right(self): """ "Demote" - selected items become children of the previous item, if any. treestore.move_after() only operates within one level so we can't use it here - instead, it looks like we have to write all items out to disc and then read them back in at the right position. Sigh. """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self.sync_text_buffer() first_selected = self.get_first_selected_iter() if not first_selected: self.msg(_("Nothing selected")) return last_selected = self.get_last_selected_iter() if not last_selected: self.msg(_("Nothing selected")) return parent = self.treestore.iter_parent(last_selected) if not parent: self.msg(_("No parent!")) return newParent = self.treestore.iter_children(parent) # returns first sibling of selected items if self.same_iter(first_selected, newParent): # create a new node for this lot to sit under: newParent = self.treestore.insert_after(parent, None) self.treestore.set_value(newParent, 0, self.temp_text) self.treestore.set_value(newParent, 1, self.temp_text) self.treestore.set_value(newParent, 2, 1) # temp_flag else: # scan forward for prior item: while newParent: next = self.treestore.iter_next(newParent) if self.same_iter(next, first_selected): break; newParent = next if not newParent: self.msg(_("Internal error!")) return # write out items to temporary file: f = tempfile.TemporaryFile(mode='r+') this = first_selected # temporarily disconnect selection updating as structure is unstable (bug 1250753): #self.treeView.get_selection().disconnect(self.on_tree_selection_changed_handler) self.treeView.get_selection().handler_block(self.on_tree_selection_changed_handler) while this: next = self.treestore.iter_next(this) if self.same_iter(this, last_selected): next = None self.gjotsfile.writeItem(f, this, 0) if not self.treestore.remove(this): # returns false if no more items next = None this = next # Now read them into the right place: f.flush() f.seek(0, 0) # what is last item in newParent? Used to compute new selection. last_item = None num_children = self.treestore.iter_n_children(newParent) if num_children > 0: last_item = self.treestore.iter_nth_child(newParent, num_children - 1) # read into end of newParent last_selected = self.gjotsfile.readItem(f, None, newParent) f.close() # make sure new parent is visible: parent_path = self.treestore.get_path(newParent) self.treeView.expand_row(parent_path, 0) # Now, reselect the items (on_tree_selection_changed is # disabled, so we also need to manually set self.current_item!): if last_item: this = self.treestore.iter_next(last_item) else: this = self.treestore.iter_children(newParent) self.treeView.get_selection().unselect_all() self.current_item = None while this: if not self.current_item: self.current_item = this next = self.treestore.iter_next(this) if self.same_iter(this, last_selected): next = None self.treeView.get_selection().select_iter(this) this = next self.treeView.get_selection().handler_unblock(self.on_tree_selection_changed_handler) #self.on_tree_selection_changed_handler = self.treeView.get_selection().connect("changed", self.on_tree_selection_changed) self._set_dirtyflag() def _new_tree_cutbuffer(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) # TODO: How do I enable/disable the paste button for both tree and # text operations??? #self._disable_tree_paste() self.tree_cutbuffer = Gtk.TreeStore( GObject.TYPE_STRING, # title == first line of body except for root, which is filename GObject.TYPE_STRING, # body GObject.TYPE_INT) # body_temp_flag - used after creating new items # create a root: self.tree_cutbuffer_root = self.tree_cutbuffer.insert(None, 0) def _iter_prev(self, this): """ This is not provided by gtk2 !! This is the obvious implementation but it doesn't work - this_path.prev() barfs with: AttributeError: 'tuple' object has no attribute 'prev' this_path = self.treestore.get_path(this) if this_path.prev(): return self.treestore.get_iter(this_path) else: return None """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if not this: return None parent = self.treestore.iter_parent(this) if not parent: self.msg(_("No parent!")) return iter = self.treestore.iter_children(parent) if self.same_iter(iter, this): return parent while iter: next = self.treestore.iter_next(iter) if not next: return None if self.same_iter(next, this): return iter iter = next return None def get_selected_text(self): """ Returns (text, insert, selection_bound) """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) insert = self.textBuffer.get_iter_at_mark(self.textBuffer.get_insert()) selection_bound = self.textBuffer.get_iter_at_mark(self.textBuffer.get_selection_bound()) if insert and selection_bound: return (self.textBuffer.get_text(insert, selection_bound, False), insert, selection_bound) else: return (None, None, None) def _do_text_cut(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") text, insert, select_bound = self.get_selected_text() if text and len(text): if self.clipboard: self.textBuffer.cut_clipboard(self.clipboard, self.textView.get_editable()) self.msg(_("Text cut")) return def _do_text_copy(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") text, insert, select_bound = self.get_selected_text() if text and len(text): if self.clipboard: self.textBuffer.copy_clipboard(self.clipboard) self.msg(_("Text copied")) return def _do_text_paste(self, clipboard): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if not self.readonly: self.msg("") if clipboard: cursor_mark = self.textBuffer.get_insert() insert_iter = self.textBuffer.get_iter_at_mark(cursor_mark) self.textBuffer.paste_clipboard(clipboard, insert_iter, self.textView.get_editable()) self.msg(_("Text pasted")) return def _do_text_select_all(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self.textBuffer.select_range(self.textBuffer.get_start_iter(), self.textBuffer.get_end_iter()) self.msg(_("All text selected")) return def _do_tree_select_all(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self.treeView.get_selection().handler_block(self.on_tree_selection_changed_handler) self.treeView.get_selection().select_all() self.treeView.get_selection().handler_unblock(self.on_tree_selection_changed_handler) self.msg(_("All tree items selected")) def _do_split_item(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") body, start_iter, end_iter = self.get_selected_text() if not body: self.msg(_("Nothing selected!")) return self.textBuffer.delete(start_iter, end_iter) self.sync_text_buffer() eol = body.find("\n") if eol >= 0: title = body[0:eol] else: title = body self._do_new_page() self.textBuffer.insert_at_cursor(body, len(body)) self._set_dirtyflag() return def _do_merge_items(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") first_selected = self.get_first_selected_iter() if not first_selected: self.msg(_("Nothing selected")) return if self.same_iter(first_selected, self.get_root()): self.msg(_("Can't merge the root item")) return last_selected = self.get_last_selected_iter() if not last_selected: self.msg(_("Nothing selected")) return if self.same_iter(first_selected, last_selected): self.msg(_("Nothing to merge")) return # First, make sure nothing has a child: this = first_selected while this: if self.treestore.iter_children(this): self.msg(_("Can't merge items that have children")) return if self.same_iter(this, last_selected): break this = self.treestore.iter_next(this) # Copy the text into the first one selected: this = first_selected count = 0 this = self.treestore.iter_next(this) while this: count = count + 1 body = self.treestore.get_value(first_selected, 1) + "\n" + self.get_node_value(this) self.treestore.set_value(first_selected, 1, body) if self.same_iter(this, last_selected): break this = self.treestore.iter_next(this) # Now delete all except the first one selected: this = first_selected this = self.treestore.iter_next(this) while this: next = self.treestore.iter_next(this) if self.same_iter(this, last_selected): next = 0 if not self.treestore.remove(this): # returns false if no more items break this = next self._set_dirtyflag() self.msg(_("%d items merged") % count) return def _show_all(self, item): """ Recursively open child below this point. """ if not item: return child = self.treestore.iter_children(item) if not child: return path = self.treestore.get_path(item) self.treeView.expand_row(path, 0) while child: self._show_all(child) child = self.get_next(child) def _do_show_all(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") if self.current_item: self._show_all(self.current_item) return def _do_hide_all(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self.treeView.collapse_all() item = self.get_root() path = self.treestore.get_path(item) self.treeView.expand_row(path, 0) return def _do_tree_cut(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if self.readonly: return self.msg("") first_selected = self.get_first_selected_iter() if not first_selected: self.msg(_("Nothing selected")) return if self.same_iter(first_selected, self.get_root()): self.msg(_("Can't delete the root item")) return last_selected = self.get_last_selected_iter() if not last_selected: self.msg(_("Nothing selected")) return new_selection = self.treestore.iter_next(last_selected) if not new_selection: new_selection = self._iter_prev(first_selected) if not new_selection: new_selection = self.treestore.iter_parent(first_selected) self._new_tree_cutbuffer() this = first_selected count = 0 while this: count = count + 1 next = self.treestore.iter_next(this) if self.same_iter(this, last_selected): next = None self._copy_subtree( self.treestore, this, self.tree_cutbuffer, self.tree_cutbuffer_root, -1) if not self.treestore.remove(this): # returns false if no more items next = None this = next #self._enable_tree_paste() if new_selection: self.treeView.get_selection().select_iter(new_selection) self._set_dirtyflag() self.msg(_("%d tree items cut") % count) def _do_tree_copy(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") first_selected = self.get_first_selected_iter() if not first_selected: self.msg(_("Nothing selected")) return last_selected = self.get_last_selected_iter() if not last_selected: self.msg(_("Nothing selected")) return self._new_tree_cutbuffer() this = first_selected count = 0 while this: count = count + 1 next = self.treestore.iter_next(this) if self.same_iter(this, last_selected): next = None self._copy_subtree( self.treestore, this, self.tree_cutbuffer, self.tree_cutbuffer_root, -1) this = next #self._enable_tree_paste() self.msg(_("%d tree items copied") % count) def _do_tree_paste(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if self.readonly: return self.msg("") if not self.tree_cutbuffer: self.msg(_("Nothing to paste")) return insertion_point = self.get_first_selected_iter() if not insertion_point: self.msg(_("Nothing selected")) return parent = self.treestore.iter_parent(insertion_point) if not parent: self.msg(_("No parent!")) return this = self.tree_cutbuffer.iter_children(self.tree_cutbuffer_root) after = False while this: insertion_point = self._copy_subtree(self.tree_cutbuffer, this, self.treestore, parent, insertion_point, after) this = self.tree_cutbuffer.iter_next(this) after = True self._set_dirtyflag() self.msg(_("Tree items pasted")) def _do_external_edit(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") first_selected = self.get_first_selected_iter() if not first_selected: self.msg("Nothing selected") return self.sync_text_buffer() body = self.get_node_value(first_selected) if not body: return try: f = tempfile.NamedTemporaryFile(mode='r+', delete = False) f.write(body) scratch = f.name f.close() except IOError: self.msg(_("Can't write tempfile")) return external_editor = self.settings.get_string("external-editor") if external_editor.find("%s") >= 0: ext_ed_string = (external_editor % scratch) else: ext_ed_string = (external_editor + " %s" % scratch) if self.debug: print("Running: '%s'" % ( ext_ed_string )) import subprocess self.msg("Waiting for external editor: '%s'" %( ext_ed_string )) self.gjots.set_sensitive(0) p = subprocess.Popen(ext_ed_string, shell = True) while p.poll() == None: Gtk.main_iteration() stat = p.returncode self.gjots.set_sensitive(1) self.gjots.present() if stat != 0: self.err_msg(_("Can't run '%s'") % ext_ed_string) return try: f = open(scratch, "r") newbody = ''.join(f.readlines()) f.close() os.unlink(scratch) except: self.msg(_("Can't read tempfile " + scratch)) return if newbody != body: self.textBuffer.set_text(newbody, len(newbody)) self.current_dirty = 1 self._set_dirtyflag() self.msg(_("text changed by external editor")) else: self.msg(_("text not changed by external editor")) def msg(self, message): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) # print "msg: \"" + message + "\"" # this optimisation really speeds up typing in the textbuffer - gui.msg("") is called for every keystroke message = self.dirtyflag + message if message == self.last_message: return self.appbar.pop(self.appbar.get_context_id("main")) self.appbar.push(self.appbar.get_context_id("main"), message) self.set_title(message) self.last_message = message def err_msg(self, message): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) general = general_dialog(self, self.progName + _(": Error"), message, OK) def set_readonly(self, readonly, quietly): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) if readonly: self.gjotsfile.unlock_file(self.gjotsfile.filename) else: failed, pid = self.gjotsfile.lock_file("") if failed: readonly = 1 if not quietly: self.err_msg(_("Can't lock file %s: already locked by process %d") % (self.gjotsfile.filename, pid)) self.readonly = readonly writeable = not readonly if writeable: self._enable_tree_paste() else: self._disable_tree_paste() w = self.gui_get_widget("cutButton") if writeable: w.show() else: w.hide() w = self.gui_get_widget("pasteButton") if writeable: w.show() else: w.hide() w = self.gui_get_widget("wrapButton") if writeable: w.show() else: w.hide() w = self.gui_get_widget("externalEditButton") if writeable: w.show() else: w.hide() w = self.gui_get_widget("timeStampButton") if writeable: w.show() else: w.hide() w = self.gui_get_widget("newChildButton") if writeable: w.show() else: w.hide() w = self.gui_get_widget("newPageButton") if writeable: w.show() else: w.hide() w = self.gui_get_widget("upButton") if writeable: w.show() else: w.hide() w = self.gui_get_widget("downButton") if writeable: w.show() else: w.hide() w = self.gui_get_widget("promoteButton") if writeable: w.show() else: w.hide() w = self.gui_get_widget("demoteButton") if writeable: w.show() else: w.hide() w = self.gui_get_widget("saveButton") if writeable: w.show() else: w.hide() w = self.gui_get_widget("sortTreeButton") if writeable: w.show() else: w.hide() w = self.gui_get_widget("importMenuItem") w.set_sensitive(writeable) w = self.gui_get_widget("saveMenuItem") w.set_sensitive(writeable) w = self.gui_get_widget("newPageMenuItem") w.set_sensitive(writeable) w = self.gui_get_widget("upMenuItem") w.set_sensitive(writeable) w = self.gui_get_widget("downMenuItem") w.set_sensitive(writeable) w = self.gui_get_widget("newChildMenuItem") w.set_sensitive(writeable) w = self.gui_get_widget("promoteMenuItem") w.set_sensitive(writeable) w = self.gui_get_widget("demoteMenuItem") w.set_sensitive(writeable) w = self.gui_get_widget("undoMenuItem") if self.has_gtksourceview: w.set_sensitive(writeable) else: w.set_sensitive(0) w = self.gui_get_widget("redoMenuItem") if self.has_gtksourceview: w.set_sensitive(writeable) else: w.set_sensitive(0) w = self.gui_get_widget("cutMenuItem") w.set_sensitive(writeable) w = self.gui_get_widget("pasteMenuItem") w.set_sensitive(writeable) w = self.gui_get_widget("formatMenuItem") w.set_sensitive(writeable) w = self.gui_get_widget("externalEditMenuItem") w.set_sensitive(writeable) w = self.gui_get_widget("timeStampMenuItem") w.set_sensitive(writeable) w = self.gui_get_widget("splitItemButton") if writeable: w.show() else: w.hide() w = self.gui_get_widget("mergeItemsButton") if writeable: w.show() else: w.hide() w = self.gui_get_widget("sortButton") if writeable: w.show() else: w.hide() w = self.gui_get_widget("splitItemMenuItem") if writeable: w.show() else: w.hide() w = self.gui_get_widget("mergeItemsMenuItem") if writeable: w.show() else: w.hide() w = self.gui_get_widget("sortTreeMenuItem") if writeable: w.show() else: w.hide() w = self.gui_get_widget("sortTextMenuItem") if writeable: w.show() else: w.hide() self.textView.set_editable(writeable) self.gui_get_widget("cutContextMenuItem").set_sensitive(writeable) self.gui_get_widget("pasteContextMenuItem").set_sensitive(writeable) self.gui_get_widget("newPageContextMenuItem").set_sensitive(writeable) self.gui_get_widget("newChildContextMenuItem").set_sensitive(writeable) self.gui_get_widget("upContextMenuItem").set_sensitive(writeable) self.gui_get_widget("downContextMenuItem").set_sensitive(writeable) self.gui_get_widget("promoteContextMenuItem").set_sensitive(writeable) self.gui_get_widget("demoteContextMenuItem").set_sensitive(writeable) self.gui_get_widget("mergeItemsContextMenuItem").set_sensitive(writeable) self.gui_get_widget("sortTreeContextMenuItem").set_sensitive(writeable) self.gui_get_widget("importContextMenuItem").set_sensitive(writeable) # Need to disconnect temporarily to prevent looping: # self.readOnly_widget.disconnect(self.readOnly_handler) w = self.gui_get_widget("readOnlyMenuItem") if self.on_readOnly_handler: w.handler_block(self.on_readOnly_handler) w.set_active(not writeable) if self.on_readOnly_handler: w.handler_unblock(self.on_readOnly_handler) #self.readOnly_handler = self.readOnly_widget.connect("activate", self.on_readOnly_trigger) def _enable_tree_paste(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) w = self.gui_get_widget("pasteButton") w.set_sensitive(1) def _disable_tree_paste(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) w = self.gui_get_widget("pasteButton") w.set_sensitive(0) def _save_if_dirty(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if self.dirtyflag: general = general_dialog(self, self.progName + _(": Save?"), _("Save current work?"), YES|NO|CANCEL, 0, 0, "", "", "", "", "") if general.get_value() == CANCEL: return CANCEL if general.get_value() == OK: if self.gjotsfile.write_file(prompt="", exporting=0): self.dirtyflag = "" return OK # File menu callbacks: def on_new_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.sync_text_buffer() if self._save_if_dirty() == CANCEL: return self._create_empty_tree() self.dirtyflag = "" self.msg(_("New file")) def on_open_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self._do_open(None) def on_recent_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) uri = widget.get_current_item().get_uri() # Strip 'file://' from the beginning of the uri file_to_open = uri[7:] self._do_open(file_to_open) def _do_open(self, file_to_open): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self.sync_text_buffer() if self._save_if_dirty() == CANCEL: return self.gjotsfile.close() # does python have a destructor mechanism? self.gjotsfile = gjotsfile(self) if self.gjotsfile.read_file(_("Open file ..."), file_to_open, self.readonly, import_after=None): self.dirtyflag = "" self._do_goto_root() self._do_tree_selection_changed() def _do_save(self, reuse_password = 0): self._cancel_autosave_timeout() if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self.sync_text_buffer() if not self.dirtyflag: self.msg(_("No changes to save")) return if self.gjotsfile.write_file(prompt="", exporting=0, reuse_password=reuse_password): self.dirtyflag = "" self.msg(_("Saved.")) else: self.msg(_("Not saved.")) return def on_save_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self._do_save() def on_saveAs_trigger(self, widget): self._cancel_autosave_timeout() if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self.sync_text_buffer() if not self.gjotsfile: self.msg(_("Nothing to save")) return if self.gjotsfile.write_file(_("Save as ..."), exporting=0): self.dirtyflag = "" self.msg(_("Saved.")) else: self.msg(_("Not saved.")) return def on_import_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.sync_text_buffer() self.msg("") import_after = self.get_last_selected_iter() if import_after: if self.gjotsfile.read_file(_("Import from ..."), None, 1, import_after): self._set_dirtyflag() else: self.msg(_("Nothing selected")) return def on_export_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.sync_text_buffer() self.msg("") self.gjotsfile.write_file(_("Export to ..."), exporting=1) return def on_print_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") # TODO: Which line is the right one??? #print_dialog(self) print_d = print_dialog(self) def on_readOnly_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") w = self.gui_get_widget("readOnlyMenuItem") self.set_readonly(w.get_active(), quietly=0) return def on_quit_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self.sync_text_buffer() if self._save_if_dirty() == CANCEL: return True self._wrangle_geometry() self.gjotsfile.close() # Save the paned widget position self.settings.set_int("pane-position", self.gui_get_widget("treeTextPane").get_position()) Gtk.main_quit() def delete_event(self, widget, event, data=None): """ Delete event signal sent by closing the gjots window through the window manager. This takes a different number of arguments than the quit signal emitted by a menu or button, so this method simply wraps the main 'on_quit_trigger'. """ return self.on_quit_trigger(widget) # Edit menu callbacks: def on_undo_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") if self.textView.is_focus(): self.textBuffer.undo() def on_redo_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") if self.textView.is_focus(): self.textBuffer.redo() def on_cut_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if self.readonly: return self.msg("") self.sync_text_buffer() if self.textView.is_focus(): self._do_text_cut() elif self.treeView.is_focus(): self._do_tree_cut() def on_copy_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self.sync_text_buffer() if self.textView.is_focus(): self._do_text_copy() elif self.treeView.is_focus(): self._do_tree_copy() def on_paste_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if self.readonly: return self.msg("") if self.textView.is_focus(): self._do_text_paste(self.clipboard) elif self.treeView.is_focus(): self._do_tree_paste() def on_selectAll_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") if self.textView.is_focus(): self._do_text_select_all() elif self.treeView.is_focus(): self._do_tree_select_all() def on_find_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self.find_dialog = find_dialog(self) def on_findAgain_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self.settings.set_boolean("find-backwards", 0) if self.find_next(): self.msg("Found") else: self.msg("Not found") def on_findAgainBackwards_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self.settings.set_boolean("find-backwards", 1) if self.find_next(): self.msg("Found") else: self.msg("Not found") def on_prev_button_clicked(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.on_findAgainBackwards_trigger(widget) def on_next_button_clicked(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.on_findAgain_trigger(widget) def on_menubar_find_combobox_key_release_event(self, widget, key): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if key.keyval == gi.repository.Gdk.KEY_Return or key.keyval == gi.repository.Gdk.KEY_KP_Enter: search_string = self.get_active_item_from_combobox() if search_string: self.add_string_to_combobox(search_string, prepend = True) self.update_settings_from_combobox() if self.find_next(): self.msg("Found") else: self.msg("Not found") # View menu callbacks: def on_topToolbarCheck_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") w = self.gui_get_widget("topToolbarCheckMenuItem") if w: value = w.get_active() self.settings.set_boolean("top-toolbar", value) return def on_treeToolbarCheck_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") w = self.gui_get_widget("treeToolbarCheckMenuItem") if w: value = w.get_active() self.settings.set_boolean("side-toolbar", value) return def on_showIconText_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") w = self.gui_get_widget("showIconTextCheckMenuItem") if w: value = w.get_active() self.settings.set_boolean("show-icon-text", value) return def on_statusBarMenuItem_trigger(self, widget): self.msg("") self.settings.set_boolean("status-bar", self.gui_get_widget("statusBarMenuItem").get_active()) return def on_showAll_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self._do_show_all() def on_hideAll_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self._do_hide_all() # Tree menu callbacks: def on_newPage_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self._do_new_page() def on_newChild_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self._do_new_child() def on_up_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self._do_move_up() def on_down_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self._do_move_down() def on_promote_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self._do_move_left() def on_demote_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self._do_move_right() def on_splitItem_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("on_splitItem_trigger") self._do_split_item() def on_mergeItems_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self._do_merge_items() def on_sort_trigger(self, widget): """ This is a generic trigger that will auto-detect whether the text view or the tree view is focused, and it will call the more specific handler to open a sort dialog for the detected context. """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") if self.gui_get_widget("textView").is_focus(): self.on_sortText_trigger(widget) elif self.gui_get_widget("treeView").is_focus(): self.on_sortTree_trigger(widget) def on_sortTree_trigger(self, widget): self.msg("") sort_dialog(self, "tree") def on_sortText_trigger(self, widget): self.msg("") sort_dialog(self, "text") # Text menu callbacks: def on_format_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self.do_format_paragraph() def on_timeStamp_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self.do_time_stamp() def on_externalEdit_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") self._do_external_edit() return # Settings menu callbacks: def on_prefs_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") prefs = prefs_dialog(self) # Help menu callbacks: def on_readManual_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") # Check to see if we are running from the tarball, cvs, or system. # Determine the gjots2 binary path. if os.access("./gjots2", os.R_OK | os.X_OK): gjots_cmd = "./gjots2 -r " elif os.access("./bin/gjots2", os.R_OK | os.X_OK): gjots_cmd = "./bin/gjots2 -r " else: # run from system share directory gjots_cmd = "gjots2 -r " # Determine the path for the gjots2.gjots documentation file to # open. gjots_file = "" if os.access("./gjots2.gjots", os.R_OK): gjots_file = "./gjots2.gjots" sys.stderr.write(_("%s: Warning: opening gjots2 manual from %s\n") % ("gjots2", gjots_file)) elif os.access("./doc/gjots2.gjots", os.R_OK): gjots_file = "./doc/gjots2.gjots" sys.stderr.write(_("%s: Warning: opening gjots2 manual from %s\n") % ("gjots2", gjots_file)) else: # run from the system share directory gjots_file_base = self.prefix + "/share/doc/gjots2/gjots2" for env in "LANGUAGE", "LC_ALL", "LC_MESSAGES", "LANG": locale_lang = "" try: locale = os.environ[env] locale_lang = locale[0:2] gjots_file = gjots_file_base + "." + locale_lang + ".gjots" if os.access(gjots_file, os.R_OK): break else: gjots_file="" except KeyError: gjots_file="" pass if gjots_file == "": gjots_file = gjots_file_base + ".gjots" # Execute gjots to open its documentation. if os.access(gjots_file, os.R_OK): gjots_cmd += gjots_file + "&" os.system(gjots_cmd) return def on_about_trigger(self, widget): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") dlg = Gtk.AboutDialog() dlg.set_version(gjots_version) dlg.set_name("Gjots2") dlg.set_authors(["Bob Hepple", "Gabriel Munoz"]) dlg.set_copyright("Copyright Bob Hepple 2002-2020") dlg.set_website("http://bhepple.freeshell.org/gjots2") dlg.set_translator_credits("""Rui Nibau (fr) <rui.nibau@omacronides.com> Frederic Muller (fr) <fred@cm17.com> Robert Emil Berge (no, nb) <filoktetes@linuxophic.org> Sergey Bezdenezhnyh (ru) <sib-mail@mtu-net.ru> Raimondo Giammanco (it) <rongten@member.fsf.org> Martin Sin (cs) <martin.sin@zshk.cz> Cecilio Salmeron (es) <s.cecilio@gmail.com> Aleksa Šušulić (sl) <susulic@gmail.com> Uwe Steinmann (de) <uwe@steinmann.cx> Morgan Antonsson (sv) <morgan.antonsson@gmail.com> 曹晉維 (Michael Tsao) (zh_TW) <cwtsao@sce.pccu.edu.tw>""") def close(w, res): #if res == Gtk.ResponseType.CANCEL: w.hide() dlg.connect("response", close) dlg.show() # Text display callbacks: def on_textView_key_press_event(self, widget, key_event): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) print("keyval=", key_event.keyval) print("state=", key_event.get_state()) self.msg("") if key_event.keyval == gi.repository.Gdk.KEY_F12: self.treeView.grab_focus() return 1 if key_event.keyval == gi.repository.Gdk.KEY_Page_Up: if self.textBuffer.get_iter_at_mark(self.textBuffer.get_insert()).is_start(): self.sync_text_buffer() current_item = self.get_linear_prev(self.current_item) if not current_item: return 0 self.current_item = current_item current_tree_path = self.treestore.get_path(self.current_item) self.treeView.expand_to_path(current_tree_path) self.treeView.get_selection().unselect_all() self.treeView.get_selection().select_iter(self.current_item) self.treeView.scroll_to_cell(current_tree_path, None, 1, 0.5, 0.5) return 1 if key_event.keyval == gi.repository.Gdk.KEY_Page_Down: if self.textBuffer.get_iter_at_mark(self.textBuffer.get_insert()).is_end(): self.sync_text_buffer() current_item = self.get_linear_next(self.current_item) if not current_item: return 0 self.current_item = current_item current_tree_path = self.treestore.get_path(self.current_item) self.treeView.expand_to_path(current_tree_path) self.treeView.get_selection().unselect_all() self.treeView.get_selection().select_iter(self.current_item) self.treeView.scroll_to_cell(current_tree_path, None, 1, 0.5, 0.5) self.textBuffer.place_cursor(self.textBuffer.get_start_iter()) return 1 if key_event.keyval == gi.repository.Gdk.KEY_Insert and key_event.get_state() & Gdk.ModifierType.SHIFT_MASK: if self.debug: print("Got Shift-Insert") self._do_text_paste(self.primary) #if key_event.keyval == gi.repository.Gdk.KEY_Insert and key_event.get_state() & Gdk.ModifierType.SHIFT_MASK: # print "Got Shift-Insert" # self._do_text_paste() # widget.signal_emit_by_name("paste-cipboard") return 0 # allow further signal propagation def backtick(self, command): """ Equivalent of Bourne shell's backtick See http://www.python.org/doc/2.5.1/lib/node534.html """ from subprocess import Popen, PIPE #print "backtick: command='%s'\n" % command value = Popen(["sh", "-c", command], stdout=PIPE).communicate()[0].rstrip() #print "returning '%s'\n" % value return(value) def _get_browser(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if self.browser: return self.browser browser_list = { # reminder: this list's order means nothing: # <name of executable>:<what to search for in ps -ef list> "firefox4": "/[x]ulrunner-2/.*firefox-", "google-chrome": "[/]chrome ", "firefox": "/[x]ulrunner/", "konqueror": "[k]onqueror", "epiphany": "[e]piphany", "opera": "[o]pera", "dillo": "[d]illo" } # see if there's one already running for this user: for browser in list(browser_list.keys()): if browser_list[browser]: if os.system("ps -U " + os.getenv("USER") + " -o args | grep -q " + browser_list[browser]) == 0: self.browser = browser if self.debug: print("using a running browser: ", browser) break # see if there's something we can use in $BROWSER if not self.browser: browser = os.getenv("BROWSER") if browser and os.system("type " + browser + " >/dev/null 2>&1") == 0: self.browser = browser if self.debug: print("using the setting from BROWSER: ", browser) # see if there's a preferred one in gnome: if not self.browser: self.browser = self.backtick("xdg-open %s 2>/dev/null").split()[0] if self.debug: print("using xdg-preferred browser: ", self.browser) if not self.browser: # see if there's an executable one: for browser in list(browser_list.keys()): if os.system("type " + browser + " >/dev/null 2>&1") == 0: self.browser = browser if self.debug: print("using executable browser: ", browser) break return self.browser def _run_browser_on(self, url): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) open_list = [ "xdg-open", "gnome-open", "kde-open", "exo-open" ] for opener in open_list: if os.system("type " + opener + " >/dev/null 2>&1") == 0: os.system(opener + " '" + url + "' &") return 0 browser = self._get_browser() if browser: os.system(browser + " '" + url + "' &") else: self.msg("Can't run a browser") return 0 def on_textView_button_press_event(self, widget, key_event): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) print(key_event) if key_event.button == 2: # "middle button" is paste - but (unlike GtkEntry, emacs, # firefox and kde apps like 'kate') # GtkTextView/GtkTextBuffer don't move the mark to the # location of the paste - also, the PRIMARY is wiped after # one use. This sucks majorly - so until they fix it # (logged as bug # https://bugzilla.gnome.org/show_bug.cgi?id=673760) # here's a little hack to place the cursor in the right # place and to remember the previous copy: x, y = self.textView.window_to_buffer_coords( self.textView.get_window_type( self.textView.get_window(Gtk.TextWindowType.TEXT)), int(key_event.x), int(key_event.y)) self.primary.request_text(_insert_primary_callback, (self, x, y)) return 1 if key_event.type == Gdk.EventType._2BUTTON_PRESS: cursor_mark = self.textBuffer.get_insert() start_iter = self._start_of_url() end_iter = self._end_of_url() word = self.textBuffer.get_text(start_iter, end_iter, False) # print ("word=\"%s\"\n" % word) matchobj = re.compile("^https*://").search(word) if matchobj: self.textBuffer.select_range(end_iter, start_iter) self._run_browser_on(word) return 1 return 0 # allow further signal propagation def on_textView_button_release_event(self, widget, key_event): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) return 0 # allow further signal propagation def on_textView_move_cursor(self, widget, event, x, y): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.msg("") def same_iter(self, treeiter1, treeiter2): "Check if 2 iterators point to the same item" if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if treeiter1 == None and treeiter2 == None: return 0 if treeiter1 == None or treeiter2 == None: return 1 return self.treestore.get_path(treeiter1) == self.treestore.get_path(treeiter2) def _check_title(self, treeiter, body): """ Make sure the title and the first line of the text are in sync. But don't change the root title - it is the filename. """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if self.same_iter(treeiter, self.get_root()): return eol = body.find("\n") if eol >= 0: title = body[0:eol] else: title = body #old_title = self.get_node_value(treeiter) #if not title == old_title self.treestore.set_value(treeiter, 0, title) def _foreach_findfirst(self, model, path, iter, self2): if self.first_selected == None: self.first_selected = iter def get_first_selected_iter(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.first_selected = None selection = self.treeView.get_selection() if not selection: return None selection.selected_foreach(self._foreach_findfirst, self) return self.first_selected def get_cursor_iter(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) path, column = self.treeView.get_cursor() print("get_cursor_iter: path = ", path) if not path: return None return self.treestore.get_iter(path) def _foreach_findlast(self, model, path, iter, self2): self.last_selected = iter def get_last_selected_iter(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.last_selected = None self.treeView.get_selection().selected_foreach(self._foreach_findlast, self) return self.last_selected def on_textBuffer_changed(self, widget): """ If temp flag is set on this item then erase all the text except for the new stuff """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self._set_dirtyflag() self.msg("") self.current_dirty = 1 if not self.current_item: return body = self.textBuffer.get_text(self.textBuffer.get_start_iter(), self.textBuffer.get_end_iter(), False) try: temp_flag = self.treestore.get_value(self.current_item, 2) except: temp_flag = False if temp_flag: # body = [left]New...[right] temp_text_pos = body.find(self.temp_text) if temp_text_pos >= 0: if temp_text_pos > 0: left = body[0:temp_text_pos] else: left = "" right = body[temp_text_pos + len(self.temp_text):] body = left + right self.treestore.set_value(self.current_item, 2, 0) # temp_flag if self.textBuffer_changed_handler: #self.textBuffer.disconnect(self.textBuffer_changed_handler) self.textBuffer.handler_block(self.textBuffer_changed_handler) self.textBuffer.set_text(body, len(body)) #self.textBuffer_changed_handler = self.textBuffer.connect("changed", self.on_textBuffer_changed) self.textBuffer.handler_unblock(self.textBuffer_changed_handler) self.treestore.set_value(self.current_item, 1, body) body = self.textBuffer.get_text(self.textBuffer.get_start_iter(), self.textBuffer.get_end_iter(), False) self._check_title(self.current_item, body) def sync_text_buffer(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if self.current_item and self.current_dirty: if self.debug: print("sync_text_buffer: syncing dirty data") body = self.textBuffer.get_text(self.textBuffer.get_start_iter(), self.textBuffer.get_end_iter(), False) self.treestore.set_value(self.current_item, 1, body) self.current_dirty = 0 def on_tree_selection_changed(self, widget): """ Save off any changes. Always display the first one selected Always put the cursor at the start of text. Check that selection is legal - ie all are siblings of first_selected """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) print("widget =", widget) print("rows =", self.treeView.get_selection().count_selected_rows()) self.treeView.get_selection().handler_block(self.on_tree_selection_changed_handler) self._do_tree_selection_changed() self.treeView.get_selection().handler_unblock(self.on_tree_selection_changed_handler) def _do_tree_selection_changed(self): #self.msg("") # zaps startup message! Is it really needed here? self.sync_text_buffer() treeiter = self.get_first_selected_iter() if treeiter and self.treestore: if self.debug: print("treestore = ", self.treestore) print("treeiter = ", treeiter) print("Title = ", self.treestore.get_value(treeiter, 0)) text = self.treestore.get_value(treeiter, 1) if self.textBuffer_changed_handler: #self.textBuffer.disconnect(self.textBuffer_changed_handler) self.textBuffer.handler_block(self.textBuffer_changed_handler) self.textBuffer.set_text(text, len(text)) text_iter = self.textBuffer.get_iter_at_offset(0) self.textBuffer.place_cursor(text_iter) self.textBuffer.handler_unblock(self.textBuffer_changed_handler) #self.textBuffer_changed_handler = self.textBuffer.connect("changed", self.on_textBuffer_changed) # Now enforce the rule that all other selected items must be siblings: # NB with 2 items selected, selection_list is: # (<Gtk.TreeStore object (GtkTreeStore) at 0x404f14b4>, [(0, 1), (0, 2)]) first_selected = self.get_first_selected_iter() if not first_selected: return selection = self.treeView.get_selection() selection_list = selection.get_selected_rows() # Bug fix to check for a null selection list to prevent GTK from # segfaulting. if selection_list == None or selection_list[1] == None: print(_("gjots2: warning: selection list is NULL. Skipping tree selection changed \nevent.")) return path_list = selection_list[1] parent = self.treestore.iter_parent(first_selected) # unselect any that don't have the same parent: for path in path_list: iter = self.treestore.get_iter(path) if not self.same_iter(first_selected, iter): iter_parent = self.treestore.iter_parent(iter) if parent == None or not self.same_iter(iter_parent, parent): selection.unselect_iter(iter) # this doesn't work as expected: #if parent == None: # path = self.treestore.get_path(treeiter) # self.treeView.set_cursor(path, None, 0) self.current_item = treeiter self.current_dirty = 0 # Now put the cursor into the right place #self.textView.grab_focus() #startIter = self.textBuffer.get_start_iter() #self.textBuffer.place_cursor(startIter) def on_tree_drag_drop(self, widget, drag_context, x, y, time): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) path, position = self.treeView.get_dest_row_at_pos(x, y) # path = (0, 2) on non-root items and (0,) on the root item if len(path) < 2 and position == Gtk.TreeViewDropPosition.BEFORE: return 1 self._set_dirtyflag() self.current_item = None return def _warp(self, iter): """ Make iter the only selected row and the cursor. Also scroll so that it's visible. For some reason the scrolling is not working whether or not we set use_align. Maybe we should also expand iter's parent ...? """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) if not iter: return path = self.treestore.get_path(iter) selection = self.treeView.get_selection() selection.unselect_all() selection.select_path(path) self.treeView.set_cursor(path, None, 0) self.treeView.scroll_to_cell(path, None, 1, 0.5, 0.5) text_iter = self.textBuffer.get_iter_at_offset(0) self.textBuffer.place_cursor(text_iter) def _do_goto_first_sibling(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) first_selected = self.get_first_selected_iter() if not first_selected: self.msg(_("Nothing selected")) return parent = self.treestore.iter_parent(first_selected) if not parent: self.msg(_("No parent!")) return iter = self.treestore.iter_children(parent) if iter == None or self.same_iter(iter, first_selected): self.msg(_("Can't go further")) return None self._warp(iter) def _do_goto_last_sibling(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) last_selected = self.get_last_selected_iter() if not last_selected: self.msg(_("Nothing selected")) return iter = last_selected while iter: next = iter next = self.treestore.iter_next(next) if not next: self._warp(iter) return iter = next def _do_goto_root(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) iter = self.treestore.get_iter_first() if not iter: self.msg(_("Tree is empty!")) return self._warp(iter) def _do_goto_last_visible(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) last_selected = self.get_last_selected_iter() if not last_selected: self.msg(_("Nothing selected")) return iter = last_selected while 1: next = iter next = self.treestore.iter_next(next) if not next: if self.treestore.iter_children(iter): path = self.treestore.get_path(iter) if self.treeView.row_expanded(path): iter = self.treestore.iter_children(iter) continue self._warp(iter) return iter = next def _do_goto_last_absolute(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) self._do_show_all() self._do_goto_root() self._do_goto_last_visible() def _do_toggle_expand(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) iter = self.current_item if not iter: self.msg(_("Nothing selected")) return path = self.treestore.get_path(iter) if self.treeView.row_expanded(path): self.treeView.collapse_row(path) else: self.treeView.expand_row(path, 0) def on_tree_key_press_event(self, widget, key_event): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) print("key_event.keyval=", key_event.keyval) print("key_event.get_state()=", key_event.get_state(), "gi.repository.Gdk.KEY_End=", gi.repository.Gdk.KEY_End) modifier = key_event.get_state() & Gdk.ModifierType.MODIFIER_MASK # why is MOD2_MASK being set? It's 'hyper'. Ignore it. Hmmm, # this only happens on raita. wassup with that? modifier &= ~Gdk.ModifierType.MOD2_MASK if modifier & Gdk.ModifierType.CONTROL_MASK: if key_event.keyval == gi.repository.Gdk.KEY_Up: self._do_move_up() return 1 if key_event.keyval == gi.repository.Gdk.KEY_Down: self._do_move_down() return 1 if key_event.keyval == gi.repository.Gdk.KEY_Left: self._do_move_left() return 1 if key_event.keyval == gi.repository.Gdk.KEY_Right: self._do_move_right() return 1 if key_event.keyval == gi.repository.Gdk.KEY_Home: self._do_goto_root() return 1 if key_event.keyval == gi.repository.Gdk.KEY_End: self._do_goto_last_absolute() return 1 if key_event.keyval == gi.repository.Gdk.KEY_Page_Down: self._do_goto_last_sibling() return 1 if key_event.keyval == gi.repository.Gdk.KEY_Page_Up: self._do_goto_first_sibling() return 1 # hmmm - these never get a chance because of the 'global' accelerators: if key_event.keyval == gi.repository.Gdk.KEY_X: self._do_tree_cut() return 1 if key_event.keyval == gi.repository.Gdk.KEY_C: self._do_tree_cut() return 1 if key_event.keyval == gi.repository.Gdk.KEY_V: self._do_tree_paste() return 1 elif modifier == 0: # plain keys if key_event.keyval == gi.repository.Gdk.KEY_Home: self._do_goto_first_sibling() return 1 if key_event.keyval == gi.repository.Gdk.KEY_End: self._do_goto_last_sibling() return 1 if key_event.keyval == gi.repository.Gdk.KEY_F12: self.textView.grab_focus() return 1 if key_event.keyval == gi.repository.Gdk.KEY_Return or key_event.keyval == gi.repository.Gdk.KEY_KP_Enter: self._do_toggle_expand() return 1 return 0 # allow further signal propagation def on_tree_button_press_event(self, treeview, event): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) print("event.button=", event.button) print("event.get_state()=", event.get_state()) # event.button 1 left-click # event.button 2 middle-click # event.button 3 right-click # Need to popup menu on right-click - also on Shift-F10 apparently if event.button == 3: x = int(event.x) y = int(event.y) time = event.time pthinfo = treeview.get_path_at_pos(x, y) if pthinfo != None: path, col, cellx, celly = pthinfo # If $path is not in current selection. De-select current # selection and select $path, which is what the user just # right-clicked on. selection = treeview.get_selection() model, selected = selection.get_selected_rows() for row in selected: if row == path: treeview.grab_focus() self.treeContextMenu_get_widget("treeContextMenu").popup(None, None, None, event.button, time, Gtk.get_current_event_time()) return 1 # If we get here, then we need to de-select the current # selection and select the path that has been right-clicked. selection.unselect_all() selection.select_path(path) treeview.grab_focus() self.treeContextMenu_get_widget("treeContextMenu").popup(None, None, None, event.button, time, Gtk.get_current_event_time()) return 1 return 0 # allow further signal propagation def remove_tag(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if self.hit_end != -1 and self.hit_start != -1: hit_start_iter = self.textBuffer.get_iter_at_offset( self.start_offset + self.hit_start) hit_end_iter = self.textBuffer.get_iter_at_offset( self.start_offset + self.hit_end) self.textBuffer.remove_tag(self.found_tag, hit_start_iter, hit_end_iter) def add_string_to_combobox(self, s, prepend): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) print("s=", s) combobox = self.gui_get_widget("menubar_find_combobox"); if combobox: model = combobox.get_model() # liststore # see if it's already there iter = model.get_iter_first() num_items = 0 while iter: if s == model.get_value(iter, 0): # move it to first item model.remove(iter) break iter = model.iter_next(iter) num_items += 1 if self.on_combobox_handler: combobox.handler_block(self.on_combobox_handler) if prepend: model.prepend([s]) else: model.append([s]) combobox.set_active(0) num_items += 1 while model.iter_n_children(None) > self.combobox_max_lines_to_save: # trim them back model.remove(model.iter_nth_child(None, self.combobox_max_lines_to_save)) num_items -= 1 if self.on_combobox_handler: combobox.handler_unblock(self.on_combobox_handler) def update_combobox_from_settings(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) combobox = self.gui_get_widget("menubar_find_combobox"); if combobox: model = combobox.get_model() # liststore iter = model.get_iter_first() if self.on_combobox_handler: combobox.handler_block(self.on_combobox_handler) while iter: model.remove(iter) iter = model.iter_next(iter) if self.on_combobox_handler: combobox.handler_unblock(self.on_combobox_handler) strings = list(self.settings.get_value("find-text")) for s in strings[0:self.combobox_max_lines_to_save]: self.add_string_to_combobox(s, prepend = False) def update_settings_from_combobox(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) combobox = self.gui_get_widget("menubar_find_combobox"); if combobox: model = combobox.get_model() # liststore iter = model.get_iter_first() s = [ ] while iter: value = model.get_value(iter, 0) if not value: value = "" s += [ value ] iter = model.iter_next(iter) # self.settings.handler_block(self.on_settings_handler) self.settings.set_value("find-text", GLib.Variant('as', s)) # self.settings.handler_unblock(self.on_settings_handler) def get_active_item_from_combobox(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) combobox = self.gui_get_widget("menubar_find_combobox") return combobox.get_child().get_text() def find_next(self): """ Returns textBuffer iters for the start and end of the next match within the text from the "insert" mark and the end (or beginning) of the element (or -1 if none). For regex matches, sets self.match May move to the next item in the tree if "global_bool" is set. Returns 1 if something found; else 0. """ #self.debug = True if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.remove_tag() self.hit_start = self.hit_end = -1 # set this to 0 when we can't find anything in the current item: look_in_current_item = 1 current_tree_iter = self.get_first_selected_iter() while self.hit_start == -1: if look_in_current_item: if self.settings.get_boolean("find-backwards"): start_iter = self.textBuffer.get_start_iter() end_mark = self.textBuffer.get_insert() end_iter = self.textBuffer.get_iter_at_mark(end_mark) self.start_offset = 0 else: start_mark = self.textBuffer.get_insert() start_iter = self.textBuffer.get_iter_at_mark(start_mark) end_iter = self.textBuffer.get_end_iter() self.start_offset = start_iter.get_offset() zone = self.textBuffer.get_text(start_iter, end_iter, False) else: if not self.settings.get_boolean("find-global"): return 0 # we need the next tree item: if self.settings.get_boolean("find-backwards"): current_tree_iter = self.get_linear_prev(current_tree_iter) else: current_tree_iter = self.get_linear_next(current_tree_iter) if not current_tree_iter: return 0 zone = self.get_node_value(current_tree_iter) self.start_offset = 0 search_regex = self.get_active_item_from_combobox() if self.debug: print("Searching for: ", search_regex) self.add_string_to_combobox(search_regex, prepend = True) self.update_settings_from_combobox() # py2: search_regex = search_regex.decode("utf-8") # py2: zone = zone.decode("utf-8") if not self.settings.get_boolean("find-regex"): search_regex = re.escape(search_regex) if not self.settings.get_boolean("find-match-case"): options = re.IGNORECASE try: self.pattern = re.compile(search_regex, options) except: self.err_msg(_("Bad regular expression")) return self.match = None if self.settings.get_boolean("find-backwards"): # accept the last match: for self.match in self.pattern.finditer(zone): pass else: self.match = self.pattern.search(zone) if self.match: self.hit_start = self.match.start() self.hit_end = self.match.end() else: look_in_current_item = 0 continue # OK - we got one, now return: if not look_in_current_item: current_tree_path = self.treestore.get_path(current_tree_iter) self.treeView.expand_to_path(current_tree_path) self.treeView.get_selection().unselect_all() self.treeView.get_selection().select_iter(current_tree_iter) self.treeView.scroll_to_cell(current_tree_path, None, 1, 0.5, 0.5) hit_start_iter = self.textBuffer.get_iter_at_offset( self.start_offset + self.hit_start) hit_end_iter = self.textBuffer.get_iter_at_offset( self.start_offset + self.hit_end) #self.textBuffer.move_mark_by_name("selection_bound", hit_start_iter) self.textBuffer.apply_tag(self.found_tag, hit_start_iter, hit_end_iter) if self.settings.get_boolean("find-backwards"): self.textBuffer.place_cursor(hit_start_iter) else: self.textBuffer.place_cursor(hit_end_iter) start_mark = self.textBuffer.get_insert() self.textView.scroll_to_mark(start_mark, 0.0 , 1, 1.0, 0.5) return 1 def replace_next(self): """ Returns 1 if something found; else 0 """ if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.sync_text_buffer() if self.hit_start == -1: return self.find_next() hit_start_iter = self.textBuffer.get_iter_at_offset( self.start_offset + self.hit_start) hit_end_iter = self.textBuffer.get_iter_at_offset( self.start_offset + self.hit_end) if self.settings.get_boolean("find-regex"): new_text = self.pattern.sub( self.settings.get_string("replace-text"), self.textBuffer.get_text(hit_start_iter, hit_end_iter, False)) else: new_text = self.settings.get_string("replace-text") self.textBuffer.place_cursor(hit_end_iter) self.textBuffer.delete(hit_start_iter, hit_end_iter) self.textBuffer.insert_at_cursor(new_text) # "insert" mark is now at the _end_ of the replaced text. # Now place the "selection" mark at the start of the replaced text: start_mark = self.textBuffer.get_insert() start_iter = self.textBuffer.get_iter_at_mark(start_mark) self.start_offset = start_iter.get_offset() new_selection_bound_iter = self.textBuffer.get_iter_at_offset( self.start_offset - len(new_text)) self.textBuffer.move_mark_by_name("selection_bound", new_selection_bound_iter) # now find the next one: return self.find_next() def _wrangle_geometry(self): if self.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) if not self.has_set_size: self.has_set_size = 1 width = height = 0 if self.geometry and len(self.geometry) > 0: m = re.match(r"(\d+)x(\d+)", self.geometry) if m and m.group: width = int(m.group(1)) height = int(m.group(2)) else: sys.stderr.write(_("%s: bad geometry specification: %s\n") % (self.progName, self.geometry)) sys.exit(1) self.geometry = "" if height == 0 and width == 0 and self.settings: width = self.settings.get_int("width") height = self.settings.get_int("height") if height > 0 and width > 0: # print "setting size to", width, height self.gjots.resize(width, height) else: width, height = self.gjots.get_size() self.settings.set_int("width", width) self.settings.set_int("height", height) return def _init_icons(self): """ Registers all of the required images as stock items for easy use within the gjots2 ui file. """ for stock_name, file in self.icons.items(): factory = Gtk.IconFactory() pixbuf = GdkPixbuf.Pixbuf.new_from_file(file) iconset = Gtk.IconSet.new_from_pixbuf(pixbuf) factory.add(stock_name, iconset) factory.add_default() def init_gui(self, prefix, progName, geometry): """ In this init we are going to display the main gjots window """ # create widget tree ... self.has_set_size = 0 self.progName = progName self.geometry = geometry # Try ./ first (if one local development file exists, then assume # all others exists) - developer's version, else goto site-packages. self.sharedir = "./" self.password = "" self.prefix = prefix # Format is 'stock-name':'file-name' self.icons = { 'gjots2-new-page' : 'gjots2-new-page.png', 'gjots2-new-child' : 'gjots2-new-child.png', 'gjots2-merge-items' : 'gjots2-merge-items.png', 'gjots2-split-item' : 'gjots2-split-item.png', 'gjots2-hide-all' : 'gjots2-hide-all.png', 'gjots2-show-all' : 'gjots2-show-all.png', 'gjots2-clock' : 'gjots2-clock.png'} # Perform more developer checks. If running from CVS or local # tarball, then register local icons, otherwise look in the system # data directory (e.g. /usr/share/gjots2). gui_file = "ui/gjots.ui" self.gui_filename = self.sharedir + gui_file if not os.access(self.gui_filename, os.F_OK): self.sharedir = prefix + "/share/gjots2/" self.gui_filename = self.sharedir + gui_file for name, file in self.icons.items(): self.icons[name] = self.sharedir + "pixmaps/" + self.icons[name] self._init_icons() from gi.repository import Gtk, Gio Gtk.Window.set_default_icon_name("gjots2") self.builder = Gtk.Builder() self.builder.set_translation_domain('gjots2') self.builder.add_from_file(self.gui_filename) self.builder.add_from_file(self.sharedir + "ui/treeContextMenu.ui") self.gui_get_widget = self.builder.get_object self.treeContextMenu_get_widget = self.builder.get_object self.treestore = None self.gjots = self.gui_get_widget("gjots") # Connect the window manager close window event to our callback self.gjots.connect("delete_event", self.delete_event) self.textView = self.gui_get_widget("textView") self.treeView = self.gui_get_widget("treeView") self.appbar = self.gui_get_widget("appbar") self.last_message = "" #self.appbar.set_default(self.last_message) self.dirtyflag = "" self._create_empty_tree() self.temp_text = _("New...>>>") # must be odd enough to never be in the user's text - problem when documenting gjots itself?? self.tree_cutbuffer = None self.current_item = None self.combobox_max_lines_to_save = 10 # this flag is used to reduce overhead on every keystroke - it # is set when the textBuffer is out of sync with the current # treestore item. It needs to be checked and sync'd # (sync_text_buffer()) before the current item is used eg in # any save, cut, copy, export and before exit. It is auto # sync'd on change of selection. There must be a nicer way to # do this with signals ... self.current_dirty = 0 self.has_gtksourceview = 1 self.sourceview_err_msg = "" self.sourceview_msg = " using gtksourceview" try: from gi.repository import GtkSource self.textBuffer = GtkSource.Buffer() self.textBuffer.set_text = lambda *args: not not ( self.textBuffer.begin_not_undoable_action(), GtkSource.Buffer.set_text(*[self.textBuffer] + list(args)), self.textBuffer.end_not_undoable_action(), ) self.sourceview_msg += GtkSource._version except: try: import gtksourceview self.textBuffer = gtksourceview.SourceBuffer() self.textBuffer.set_text = lambda *args: not not ( self.textBuffer.begin_not_undoable_action(), gtksourceview.Buffer.set_text(*[self.textBuffer] + list(args)), self.textBuffer.end_not_undoable_action(), ) except: self.sourceview_err_msg = _("Install gtksourceview to enable undo/redo") self.textBuffer = Gtk.TextBuffer() self.has_gtksourceview = 0 self.sourceview_msg = " no gtksourceview!!" self.textView.set_buffer(self.textBuffer) self.textBuffer.set_text("", 0) self.hit_start = self.hit_end = -1 self.found_tag = self.textBuffer.create_tag(None, background="lightblue") # add a model to make the combobox == combobox_with_text (can't do it in glade2 or 3) self.on_combobox_handler = None self.combobox = self.gui_get_widget("menubar_find_combobox"); if self.combobox: liststore = Gtk.ListStore(GObject.TYPE_STRING) self.combobox.set_model(liststore) cell = Gtk.CellRendererText() self.combobox.pack_start(cell, True) for label in ["prev_button", "next_button", "find_button"]: w = self.gui_get_widget(label) image = w.get_image() w.set_label("") w.set_image(image) w.set_always_show_image(True) self._initialise_settings() self._wrangle_geometry() self.cut_text = None self.browser = None self.find_dialog = None self.file_filter = Gtk.FileFilter() self.file_filter_pattern = [ "*.gjots*", "*.org" ] for p in self.file_filter_pattern: self.file_filter.add_pattern(p) self.file_filter.set_name("All gjots files *.gjots* *.org") # Init the clipboard to use the system default "CLIPBOARD" self.clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD) if not self.clipboard: print("No clipboard") sys.exit(3) self.primary = Gtk.Clipboard.get(Gdk.SELECTION_PRIMARY) if not self.primary: print("No primary clipboard") sys.exit(3) self._disable_tree_paste() callbacks = { # File menu: "on_new_trigger": self.on_new_trigger, "on_open_trigger": self.on_open_trigger, "on_save_trigger": self.on_save_trigger, "on_saveAs_trigger": self.on_saveAs_trigger, "on_import_trigger": self.on_import_trigger, "on_export_trigger": self.on_export_trigger, "on_print_trigger": self.on_print_trigger, # do this one manually: # "on_readOnly_trigger": self.on_readOnly_trigger, "on_quit_trigger": self.on_quit_trigger, # Edit menu: "on_undo_trigger": self.on_undo_trigger, "on_redo_trigger": self.on_redo_trigger, "on_cut_trigger": self.on_cut_trigger, "on_copy_trigger": self.on_copy_trigger, "on_paste_trigger": self.on_paste_trigger, "on_selectAll_trigger": self.on_selectAll_trigger, "on_find_trigger": self.on_find_trigger, "on_findAgain_trigger": self.on_findAgain_trigger, "on_findAgainBackwards_trigger": self.on_findAgainBackwards_trigger, # View menu: "on_topToolbarCheck_trigger": self.on_topToolbarCheck_trigger, "on_treeToolbarCheck_trigger": self.on_treeToolbarCheck_trigger, "on_showIconText_trigger": self.on_showIconText_trigger, "on_statusBarMenuItem_trigger": self.on_statusBarMenuItem_trigger, "on_showAll_trigger": self.on_showAll_trigger, "on_hideAll_trigger": self.on_hideAll_trigger, # Tree menu: "on_newPage_trigger": self.on_newPage_trigger, "on_newChild_trigger": self.on_newChild_trigger, "on_up_trigger": self.on_up_trigger, "on_down_trigger": self.on_down_trigger, "on_promote_trigger": self.on_promote_trigger, "on_demote_trigger": self.on_demote_trigger, "on_splitItem_trigger": self.on_splitItem_trigger, "on_mergeItems_trigger": self.on_mergeItems_trigger, "on_sortTree_trigger": self.on_sortTree_trigger, # Text menu: "on_format_trigger": self.on_format_trigger, "on_timeStamp_trigger": self.on_timeStamp_trigger, "on_externalEdit_trigger": self.on_externalEdit_trigger, "on_sortText_trigger": self.on_sortText_trigger, # Setting menu: "on_prefs_trigger": self.on_prefs_trigger, # Help menu: "on_readManual_trigger": self.on_readManual_trigger, "on_about_trigger": self.on_about_trigger, # Special, context-sensitive triggers: "on_sort_trigger": self.on_sort_trigger, # text display callbacks: "on_textView_key_press_event": self.on_textView_key_press_event, "on_textView_button_release_event": self.on_textView_button_release_event, "on_textView_button_press_event": self.on_textView_button_press_event, "on_textView_move_cursor": self.on_textView_move_cursor, # tree callbacks "on_tree_selection_changed": self.on_tree_selection_changed, "on_tree_drag_drop": self.on_tree_drag_drop, "on_tree_key_press_event": self.on_tree_key_press_event, "on_tree_button_press_event": self.on_tree_button_press_event, # menutoolbar callbacks "on_prev_button_clicked": self.on_prev_button_clicked, "on_next_button_clicked": self.on_next_button_clicked, "on_menubar_find_combobox_key_release_event": self.on_menubar_find_combobox_key_release_event, "on_gjots_focus_out_event": self.on_gjots_focus_out_event, } self.builder.connect_signals(callbacks) self.textBuffer_changed_handler = self.textBuffer.connect("changed", self.on_textBuffer_changed) self.on_tree_selection_changed_handler = self.treeView.get_selection().connect("changed", self.on_tree_selection_changed) #self.on_combobox_handler = self.gui_get_widget("menubar_find_combobox").connect("changed", self.on_combobox_changed) self.on_readOnly_handler = self.gui_get_widget("readOnlyMenuItem").connect("activate", self.on_readOnly_trigger) # self.on_settings_handler = self.settings.connect("changed::find-text", self.on_settings_find_text_changed, self.gjots) self.settings.connect("changed::text-font", self.on_settings_text_font_changed, self.gjots) self.settings.connect("changed::top-toolbar", self.on_settings_top_toolbar_changed, self.gjots) self.settings.connect("changed::side-toolbar", self.on_settings_side_toolbar_changed, self.gjots) self.settings.connect("changed::show-icon-text", self.on_settings_show_icon_text_changed, self.gjots) self.settings.connect("changed::status-bar", self.on_settings_status_bar_changed, self.gjots) self.settings.connect("changed::pane-position", self.on_settings_pane_position_changed, self.gjots) return def __init__(self, prefix, progName, geometry, filename, readonly, debug, purge_password): if debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) self.debug = 1 #sys.settrace(self.debugfunc) else: self.debug = 0 self.purge_password = purge_password self.init_gui(prefix, progName, geometry) if not self.gjotsfile.read_file("", filename, readonly, import_after=None): sys.exit(1) root_path = self.treestore.get_path(self.get_root()) self.treeView.expand_row(root_path, 0) self._warp(self.get_root()) #self.treeView.get_selection().select_path(root_path) self.msg(progName + _(": version ") + gjots_version + self.sourceview_msg + " + glade3 (libglade)") self.treeView.grab_focus() self.gjots.show() if self.sourceview_err_msg != "": self.err_msg(self.sourceview_err_msg) self.autosave_timeout_tag = False self.set_readonly(readonly, quietly=1) self._do_goto_root() return # Local variables: # eval:(setq compile-command "cd ..; ./gjots2 test.gjots") # eval:(setq indent-tabs-mode nil) # eval:(setq tab-width 4) # eval:(setq python-indent 4) # eval:(which-function-mode -1) ; turn it off - this file is too big # End: ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/lib/prefs.py���������������������������������������������������������������������������0000664�0000000�0000000�00000017347�14016300235�0015201�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������import gi gi.require_version("Gtk", "3.0") from gi.repository import Gtk import gi import inspect from common import * class font_dialog: def destroy(self): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.fonts_get_widget(self.name).destroy() def on_fontCancel_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.value = CANCEL def on_fontApply_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.value = OK def on_fontOK_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.value = OK def __init__(self, gui): """ Font dialog """ self.gui = gui if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) callbacks = { "on_fontCancel_clicked": self.on_fontCancel_clicked, "on_fontApply_clicked": self.on_fontApply_clicked, "on_fontOK_clicked": self.on_fontOK_clicked, } self.name = "fontselectiondialog" self.gui.builder.add_from_file(self.gui.sharedir + "ui/fontDialog.ui") self.gui.builder.connect_signals(callbacks) self.fonts_get_widget = self.gui.gui_get_widget self.fontselectiondialog = self.fonts_get_widget("fontselectiondialog") self.fontselectiondialog.set_font_name(self.gui.settings.get_string("text-font")) self.value = WAITING while self.value == WAITING: Gtk.main_iteration() class prefs_dialog: def destroy(self): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.prefs_get_widget(self.name).destroy() def on_fontButton_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) f = font_dialog(self.gui) if f.value == OK: self.fontName_entry.set_text(f.fontselectiondialog.get_font_name()) f.destroy() def on_prefsOK_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.gui.settings.set_int("line-length", self.lineLength_spinbutton.get_value_as_int()) self.gui.settings.set_string("text-formatter", self.textFormatter_entry.get_text()) self.gui.settings.set_string("external-editor", self.externalEditor_entry.get_text()) self.gui.settings.set_string("date-format", self.dateFormat_entry.get_text()) self.gui.settings.set_string("text-font", self.fontName_entry.get_text()) self.gui.settings.set_int("auto-save-interval", self.autoSaveInterval_spinbutton.get_value_as_int()) self.gui.set_autosave_timeout() self.destroy() def on_prefsCancel_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.destroy() def on_textFormatter_key_press_event(self, widget, key_event): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) if key_event.keyval == gi.repository.Gdk.KEY_Return or key_event.keyval == gi.repository.Gdk.KEY_KP_Enter: self.on_prefsOK_clicked(widget) if key_event.keyval == gi.repository.Gdk.KEY_Escape: self.on_prefsCancel_clicked(widget) return def on_lineLength_key_press_event(self, widget, key_event): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) if key_event.keyval == gi.repository.Gdk.KEY_Return or key_event.keyval == gi.repository.Gdk.KEY_KP_Enter: self.on_prefsOK_clicked(widget) if key_event.keyval == gi.repository.Gdk.KEY_Escape: self.on_prefsCancel_clicked(widget) return def on_externalEditor_key_press_event(self, widget, key_event): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) if key_event.keyval == gi.repository.Gdk.KEY_Return or key_event.keyval == gi.repository.Gdk.KEY_KP_Enter: self.on_prefsOK_clicked(widget) if key_event.keyval == gi.repository.Gdk.KEY_Escape: self.on_prefsCancel_clicked(widget) return def on_dateFormat_key_press_event(self, widget, key_event): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) if key_event.keyval == gi.repository.Gdk.KEY_Return or key_event.keyval == gi.repository.Gdk.KEY_KP_Enter: self.on_prefsOK_clicked(widget) if key_event.keyval == gi.repository.Gdk.KEY_Escape: self.on_prefsCancel_clicked(widget) return def on_fontName_key_press_event(self, widget, key_event): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) if key_event.keyval == gi.repository.Gdk.KEY_Return or key_event.keyval == gi.repository.Gdk.KEY_KP_Enter: self.on_prefsOK_clicked(widget) if key_event.keyval == gi.repository.Gdk.KEY_Escape: self.on_prefsCancel_clicked(widget) return def __init__(self, gui): """ Prefs dialog """ self.gui = gui if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) callbacks = { "on_fontButton_clicked": self.on_fontButton_clicked, "on_prefsOK_clicked": self.on_prefsOK_clicked, "on_prefsCancel_clicked": self.on_prefsCancel_clicked, "on_textFormatter_key_press_event": self.on_textFormatter_key_press_event, "on_lineLength_key_press_event": self.on_lineLength_key_press_event, "on_externalEditor_key_press_event": self.on_externalEditor_key_press_event, "on_dateFormat_key_press_event": self.on_dateFormat_key_press_event, "on_fontName_key_press_event": self.on_fontName_key_press_event, } self.name = "prefsDialog" self.gui.builder.add_from_file(self.gui.sharedir + "ui/prefsDialog.ui") self.gui.builder.connect_signals(callbacks) self.prefs_get_widget = self.gui.gui_get_widget self.lineLength_spinbutton = self.prefs_get_widget("lineLength") self.autoSaveInterval_spinbutton = self.prefs_get_widget("autoSaveInterval") self.autoSaveInterval_spinbutton.set_range(0, 3600) self.textFormatter_entry = self.prefs_get_widget("textFormatter") self.externalEditor_entry = self.prefs_get_widget("externalEditor") self.dateFormat_entry = self.prefs_get_widget("dateFormat") self.fontName_entry = self.prefs_get_widget("fontName") self.lineLength_spinbutton.set_value(self.gui.settings.get_int ("line-length")) self.textFormatter_entry.set_text (self.gui.settings.get_string("text-formatter")) self.externalEditor_entry.set_text (self.gui.settings.get_string("external-editor")) self.dateFormat_entry.set_text (self.gui.settings.get_string("date-format")) self.fontName_entry.set_text (self.gui.settings.get_string("text-font")) self.autoSaveInterval_spinbutton.set_value(self.gui.settings.get_int("auto-save-interval")) # Local variables: # eval:(setq compile-command "cd ..; ./gjots2 test.gjots") # eval:(setq indent-tabs-mode nil) # eval:(setq tab-width 4) # eval:(setq python-indent 4) # End: �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/lib/printDialog.py���������������������������������������������������������������������0000664�0000000�0000000�00000015667�14016300235�0016341�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������import re import inspect import tempfile import pipes import gi import os class print_dialog: def destroy(self): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.print_get_widget(self.name).destroy() def saveSettings(self): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) w = self.print_get_widget("printPageRadioButton") if w: self.gui.settings.set_boolean("print-page", w.get_active()) w = self.print_get_widget("printSelectionRadioButton") if w: self.gui.settings.set_boolean("print-selection", w.get_active()) w = self.print_get_widget("printAllRadioButton") if w: self.gui.settings.set_boolean("print-all", w.get_active()) w = self.print_get_widget("printPageFeedButton") if w: self.gui.settings.set_boolean("print-page-feed", w.get_active()) w = self.print_get_widget("printBoldTitlesButton") if w: self.gui.settings.set_boolean("print-bold-title", w.get_active()) w = self.print_get_widget("printCommandEntry") if w: self.gui.settings.set_string("print-command", w.get_text()) return def on_printDialog_destroy(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) return def on_printCommandEntry_key_press_event(self, widget, key_event): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) # to get all keysyms see gdk/gdkkeysyms.h if key_event.keyval == gi.repository.Gdk.KEY_Return or key_event.keyval == gi.repository.Gdk.KEY_KP_Enter: self.on_printOKButton_clicked(widget) if key_event.keyval == gi.repository.Gdk.KEY_Escape: self.on_printCancelButton_clicked(widget) return def _get_settings(self): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) print_page = print_selection = print_all = page_feed = bold_titles = 0 print_command = "" w = self.print_get_widget("printPageRadioButton") if w: print_page = w.get_active() if not print_page: w = self.print_get_widget("printSelectionRadioButton") if w: print_selection = w.get_active() if not print_selection: print_all = 1 w = self.print_get_widget("printPageFeedButton") if w: page_feed = w.get_active() w = self.print_get_widget("printBoldTitlesButton") if w: bold_titles = w.get_active() w = self.print_get_widget("printCommandEntry") if w: print_command = w.get_text() return print_page, print_selection, print_all, page_feed, bold_titles, print_command def on_printOKButton_clicked(self, widget): """ if print_all is set then print all the pages else If print_page is set then print the page else if 1 tree item is selected then print the selected text else print all the selected pages. """ if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.gui.sync_text_buffer() self.saveSettings() print_page, print_selection, print_all, page_feed, bold_titles, print_command = self._get_settings() if print_all: this_iter = self.gui.get_root() else: this_iter = self.gui.get_first_selected_iter() if not this_iter: self.gui.msg(_("Nothing selected")) return last_selected = self.gui.get_last_selected_iter() if not last_selected: self.gui.msg(_("Nothing selected")) return t = pipes.Template() t.append(print_command, "-.") scratch = tempfile.mkstemp(text = True)[1] f = t.open(scratch, "w") single_page = 0 if print_page or ( print_selection and self.gui.same_iter(this_iter, last_selected) ): single_page = 1 while (1): if print_selection and single_page: body, insertion_point, selection_bound = self.gui.get_selected_text() else: body = self.gui.get_node_value(this_iter) if body: f.write(body) if single_page: break if print_selection: if self.gui.same_iter(this_iter, last_selected): break this_iter = self.gui.get_linear_next(this_iter) if not this_iter: break if page_feed: f.write(' ') f.close() os.unlink(scratch) self.destroy() return def on_printCancelButton_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.destroy() return def __init__(self, gui): """ Print dialog """ self.gui = gui if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) callbacks = { "on_printDialog_destroy": self.on_printDialog_destroy, "on_printCommandEntry_key_press_event": self.on_printCommandEntry_key_press_event, "on_printOKButton_clicked": self.on_printOKButton_clicked, "on_printCancelButton_clicked": self.on_printCancelButton_clicked, } self.name = "printDialog" self.gui.builder.add_from_file(self.gui.sharedir + "ui/printDialog.ui") self.gui.builder.connect_signals(callbacks) self.print_get_widget = self.gui.gui_get_widget w = self.print_get_widget("printPageRadioButton") if w: w.set_active(self.gui.settings.get_boolean("print-page")) w = self.print_get_widget("printSelectionRadioButton") if w: w.set_active(self.gui.settings.get_boolean("print-selection")) w = self.print_get_widget("printAllRadioButton") if w: w.set_active(self.gui.settings.get_boolean("print-all")) w = self.print_get_widget("printPageFeedButton") if w: w.set_active(self.gui.settings.get_boolean("print-page-feed")) w = self.print_get_widget("printBoldTitlesButton") if w: w.set_active(self.gui.settings.get_boolean("print-bold-title")) w = self.print_get_widget("printCommandEntry") if w: w.set_text(self.gui.settings.get_string("print-command")) return # print_dialog # Local variables: # eval:(setq compile-command "cd ..; ./gjots2 test.gjots") # eval:(setq indent-tabs-mode nil) # eval:(setq tab-width 4) # eval:(setq python-indent 4) # End: �������������������������������������������������������������������������gjots2-3.1.9/lib/sortDialog.py����������������������������������������������������������������������0000664�0000000�0000000�00000035556�14016300235�0016173�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������import re import inspect import tempfile import pipes import string from gi.repository import GObject, Gtk """ We'll actually sort a list of list, each element of which is [ row, title, value ] "value" is only used for numeric sorts and is extracted by the _safe_float routine. """ # from: https://docs.python.org/3/howto/sorting.html def cmp_to_key(mycmp): 'Convert a cmp= function into a key= function' class K: def __init__(self, obj, *args): self.obj = obj def __lt__(self, other): return mycmp(self.obj, other.obj) < 0 def __gt__(self, other): return mycmp(self.obj, other.obj) > 0 def __eq__(self, other): return mycmp(self.obj, other.obj) == 0 def __le__(self, other): return mycmp(self.obj, other.obj) <= 0 def __ge__(self, other): return mycmp(self.obj, other.obj) >= 0 def __ne__(self, other): return mycmp(self.obj, other.obj) != 0 return K def cmp(a, b): return (a > b) - (a < b) def _sort_function_alpha_asc(x, y): return cmp(x[1].lower(), y[1].lower()) def _sort_function_alpha_des(x, y): return -cmp(x[1].lower(), y[1].lower()) def _safe_float(xin): """ Hopefully, this will barf on nothing, unlike a bare "float" - always returns a number or None if "not a number" """ x = xin if not x or x == "": return None m = re.search('[-+]?(\d+(\.\d*)?|\d*\.\d+)([eE][-+]?\d+)?', x) if m: return(float(x[m.start():m.end()])) else: return None def _num_cmp(xin, yin): x = _safe_float(xin) y = _safe_float(yin) if x == y: # could both be "None" return 0 if x == None: return -1; if y == None: return 1; if x < y: return -1 return 1 def _sort_function_num_asc(x, y): return _num_cmp(x[1], y[1]) def _sort_function_num_des(x, y): return -_num_cmp(x[1], y[1]) class sort_dialog: def destroy(self): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.sort_get_widget(self.name).destroy() def saveSettings(self): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) w = self.sort_get_widget("sortAscendingRadioButton") if w: self.gui.settings.set_boolean("sort-ascending", w.get_active()) else: print("Cant find sortAscendingRadioButton") w = self.sort_get_widget("sortAlphabeticRadioButton") if w: self.gui.settings.set_boolean("sort-alpha", w.get_active()) w = self.sort_get_widget("sortSublevelsSpinButton") if w: self.gui.settings.set_int("sort-sublevels", w.get_value_as_int()) return def on_sortDialog_destroy(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) return def on_sortCommandEntry_key_press_event(self, widget, key_event): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) # to get all keysyms see gdk/gdkkeysyms.h if key_event.keyval == gi.repository.Gdk.KEY_Return or key_event.keyval == gi.repository.Gdk.KEY_KP_Enter: self.on_sortOKButton_clicked(widget) if key_event.keyval == gi.repository.Gdk.KEY_Escape: self.on_sortCancelButton_clicked(widget) return def _get_settings(self): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) sort_ascending = sort_alpha = sort_items = sort_sublevels = 0 w = self.sort_get_widget("sortAscendingRadioButton") if w: sort_ascending = w.get_active() else: print(_("_get_settings: Cant find sortAscendingRadioButton")) w = self.sort_get_widget("sortAlphabeticRadioButton") if w: sort_alpha = w.get_active() w = self.sort_get_widget("sortSublevelsSpinButton") if w: sort_sublevels = w.get_value_as_int() if self.type == "tree": sort_items = True return sort_ascending, sort_alpha, sort_items, sort_sublevels def _sort_item(self, item, start_iter, end_iter, sort_ascending, sort_alpha, sort_sublevels, level): """ Sort the children of the current item, starting at start_iter, ending at end_iter (0,0 mean first & last). Always sort one level. If sublevels, then sort children recursively up to sort_sublevels deep (<0 for all). Sorting only takes place on the title, not on the body. """ if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2], vars()) print("Item = ", self.gui.treestore.get_value(item, 0)) item_path = self.gui.treestore.get_path(item) item_was_expanded = self.gui.treeView.row_expanded(item_path) child = self.gui.treestore.iter_children(item) if not child: return if start_iter == 0: start_iter = child else: while not self.gui.same_iter(child, start_iter): child = self.gui.treestore.iter_next(child) if not child: self.gui.msg(_("Internal error")) return if end_iter == 0: next = end_iter = start_iter while next: end_iter = next next = self.gui.treestore.iter_next(end_iter) # contruct the sort list sort_list = [ ] child = self.gui.treestore.iter_children(item) selection_start = -1 selection_end = -1 count = 0 while child: if selection_start == -1 and self.gui.same_iter(child, start_iter): selection_start = count if selection_start != -1 and selection_end == -1: sort_list.append([count, self.gui.get_node_title(child)]) if sort_sublevels < 0 or level < sort_sublevels: if selection_start != -1 and count >= selection_start and ( selection_end == -1 or count <= selection_end ): if self.gui.treestore.iter_children(child): self._sort_item(child, 0, 0, sort_ascending, sort_alpha, sort_sublevels, level + 1) if selection_end == -1 and self.gui.same_iter(child, end_iter): selection_end = count child = self.gui.treestore.iter_next(child) count = count + 1 #print "sort_list before sort = ", sort_list # Do the sort if sort_alpha: if sort_ascending: sort_list.sort(key=cmp_to_key(_sort_function_alpha_asc)) else: sort_list.sort(key=cmp_to_key(_sort_function_alpha_des)) else: if sort_ascending: sort_list.sort(key=cmp_to_key(_sort_function_num_asc)) else: sort_list.sort(key=cmp_to_key(_sort_function_num_des)) #print "sort_list after sort = ", sort_list # Extract a reorder list from the sorted list child = self.gui.treestore.iter_children(item) count = 0 reorder_list = [ ] while count < selection_start: reorder_list.append(count) child = self.gui.treestore.iter_next(child) count = count + 1 sorted_count = 0 while child and count <= selection_end: reorder_list.append(sort_list[sorted_count].pop(0)) child = self.gui.treestore.iter_next(child) count = count + 1 sorted_count = sorted_count + 1 while child: reorder_list.append(count) child = self.gui.treestore.iter_next(child) count = count + 1 #print "reorder_list = ", reorder_list try: self.gui.treestore.reorder(item, reorder_list) except: # gtk+-3.16 does not export reorder to python # https://bugzilla.gnome.org/show_bug.cgi?id=757796 # a homebrew reorder # create a temporary treestore: temp_treestore = Gtk.TreeStore( GObject.TYPE_STRING, # title == first line of body except for root, which is filename GObject.TYPE_STRING, # body GObject.TYPE_INT) # body_temp_flag - used after creating new items temp_treestore_root = temp_treestore.insert(None, 0) first_unselected = self.gui.treestore.iter_next(end_iter) # maybe None #print "start_iter = ", self.gui.treestore.get_value(start_iter, 0) #print "end_iter = ", self.gui.treestore.get_value(end_iter, 0) #print "first_unselected = ", self.gui.treestore.get_value(first_unselected, 0) if first_unselected else "None" # make a copy of the selected items and remove them from the treestore: this = start_iter while this: #print "copying ", self.gui.treestore.get_value(this, 0) next = self.gui.treestore.iter_next(this) if self.gui.same_iter(this, end_iter): next = None self.gui._copy_subtree( self.gui.treestore, this, temp_treestore, temp_treestore_root, -1) if not self.gui.treestore.remove(this): # returns false if no more items next = None this = next # now copy them back in the right order: this = first_unselected if first_unselected else -1 after = False # print "reorder_list = ", reorder_list count = 0 for iter in reorder_list: if iter >= selection_start and iter <= selection_end: # print "iter = ", iter this = self.gui._copy_subtree( temp_treestore, temp_treestore.iter_nth_child(temp_treestore_root, iter - selection_start), self.gui.treestore, item, this, after) count = count + 1 after = True # expand item: if item_was_expanded: self.gui.treeView.expand_row(item_path, 0) return def on_sortOKButton_clicked(self, widget): """ """ if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.gui.sync_text_buffer() self.saveSettings() sort_ascending, sort_alpha, sort_items, sort_sublevels = self._get_settings() if not sort_items: # then sort lines body, start_text, end_text = self.gui.get_selected_text() if not body: start_text = self.gui.textBuffer.get_start_iter() end_text = self.gui.textBuffer.get_end_iter() body = self.gui.textBuffer.get_text(start_text, end_text, False) if not body: self.gui.msg(_("Nothing to sort!")) return text_list = body.split('\n') if sort_alpha: if sort_ascending: text_list.sort(key=str.lower) else: text_list.sort(key=str.lower, reverse=True) else: if sort_ascending: text_list.sort() else: text_list.sort(reverse=True) body = "\n".join(text_list) self.gui.textBuffer.delete(start_text, end_text) self.gui.textBuffer.insert(start_text, body, len(body)) self.gui._set_dirtyflag() return """ Sorting items - if only one item selected then sort its children. Otherwise sort the selected items """ first_selected = self.gui.get_first_selected_iter() if not first_selected: self.gui.msg(_("Nothing selected")) return last_selected = self.gui.get_last_selected_iter() if not last_selected: self.gui.msg(_("Nothing selected")) return if self.gui.same_iter(first_selected, last_selected): # Only one item selected self._sort_item(first_selected, 0, 0, sort_ascending, sort_alpha, sort_sublevels, 0) self.gui._set_dirtyflag() return parent = self.gui.treestore.iter_parent(first_selected) if not parent: self.gui.msg(_("No parent!")) return self._sort_item(parent, first_selected, last_selected, sort_ascending, sort_alpha, sort_sublevels, 0) self.gui._set_dirtyflag() return def on_sortCancelButton_clicked(self, widget): if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) self.destroy() return def __init__(self, gui, type): """ Print dialog """ # if type == "tree": # gui.err_msg("tree sort is unavailable until GtkTreeStore.reorder() in gtk+ is fixed") # return self.gui = gui if self.gui.debug: print(inspect.getframeinfo(inspect.currentframe())[2]) callbacks = { "on_sortDialog_destroy": self.on_sortDialog_destroy, "on_sortCommandEntry_key_press_event": self.on_sortCommandEntry_key_press_event, "on_sortOKButton_clicked": self.on_sortOKButton_clicked, "on_sortCancelButton_clicked": self.on_sortCancelButton_clicked, } self.name = "sortDialog" self.gui.builder.add_from_file(self.gui.sharedir + "ui/sortDialog.ui") self.gui.builder.connect_signals(callbacks) self.sort_get_widget = self.gui.gui_get_widget # Initialize the GUI state of the radio buttons and spin button # based on the type of sort ('tree', 'text', or 'both') # TODO: Shouldn't we be setting each radio button??? w = self.sort_get_widget("sortAscendingRadioButton") w.set_active(self.gui.settings.get_boolean("sort-ascending")) w = self.sort_get_widget("sortAlphabeticRadioButton") w.set_active(self.gui.settings.get_boolean("sort-alpha")) if type == "tree": self.type = "tree" self.sort_get_widget("sortSublevelsSpinButton").set_sensitive(True) self.sort_get_widget("sortDialog").set_title(_("Sort Tree")) elif type == "text": self.type = "text" self.sort_get_widget("sortRangeFrame").hide() self.sort_get_widget("sortDialog").set_title(_("Sort Text")) return # sort_dialog # Local variables: # eval:(setq compile-command "cd ..; ./gjots2 test.gjots") # eval:(setq indent-tabs-mode nil) # eval:(setq tab-width 4) # eval:(setq python-indent 4) # End: ��������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/lib/version.py�������������������������������������������������������������������������0000664�0000000�0000000�00000000026�14016300235�0015531�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots_version="3.1.9" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/org.gtk.gjots2.gschema.xml�������������������������������������������������������������0000664�0000000�0000000�00000012564�14016300235�0017650�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <schemalist> <schema id="org.gtk.gjots2" path="/org/gtk/gjots2/"> <key type="i" name="line-length"> <default>70</default> <summary>line width</summary> <description>text line width for wrapping</description> </key> <key type="i" name="auto-save-interval"> <default>0</default> <summary>auto save interval</summary> <description>data will be auto saved after this time in seconds</description> </key> <key type="i" name="auto-readonly-timeout"> <default>0</default> <summary>auto readonly timeout</summary> <description>data will be made read only after this time in seconds</description> </key> <key type="s" name="text-formatter"> <default>"fmt -w %d"</default> <summary>text formatter</summary> <description>external command to format text</description> </key> <key type="s" name="external-editor"> <default>"xdg-open %s"</default> <summary>external editor</summary> <description>external editor</description> </key> <key type="s" name="date-format"> <default>"%F"</default> <summary>date format</summary> <description>date format ('man date' for values)</description> </key> <key type="s" name="text-font"> <default>"Courier 10 Pitch 10"</default> <summary>text font</summary> <description>text font</description> </key> <key type="b" name="top-toolbar"> <default>true</default> <summary>top toolbar</summary> <description>top toolbar</description> </key> <key type="b" name="side-toolbar"> <default>true</default> <summary>side toolbar</summary> <description>side toolbar</description> </key> <key type="b" name="show-icon-text"> <default>false</default> <summary>show icon text</summary> <description>show text with icons in the user interface</description> </key> <key type="b" name="status-bar"> <default>false</default> <summary>status bar</summary> <description>display status bar</description> </key> <key type="i" name="pane-position"> <default>211</default> <summary>pane position</summary> <description>pane position</description> </key> <key type="b" name="initialised"> <default>false</default> <summary>initialised</summary> <description>initialised</description> </key> <key type="as" name="find-text"> <default>[""]</default> <summary>find-text</summary> <description>find-text</description> </key> <key type="s" name="replace-text"> <default>""</default> <summary>replace-text</summary> <description>replace-text</description> </key> <key type="b" name="find-match-case"> <default>false</default> <summary>find-match-case</summary> <description>find-match-case</description> </key> <key type="b" name="find-global"> <default>true</default> <summary>find-global</summary> <description>find-global</description> </key> <key type="b" name="find-regex"> <default>false</default> <summary>find-regex</summary> <description>find-regex</description> </key> <key type="b" name="find-backwards"> <default>false</default> <summary>find-backwards</summary> <description>find-backwards</description> </key> <key type="i" name="width"> <default>0</default> <summary>width</summary> <description>width</description> </key> <key type="i" name="height"> <default>0</default> <summary>height</summary> <description>height</description> </key> <key type="b" name="print-page"> <default>true</default> <summary>print-page</summary> <description>print-page</description> </key> <key type="b" name="print-selection"> <default>false</default> <summary>print-selection</summary> <description>print-selection</description> </key> <key type="b" name="print-all"> <default>false</default> <summary>print-all</summary> <description>print-all</description> </key> <key type="s" name="print-command"> <default>"gjots2lpr $1"</default> <summary>print-command</summary> <description>print-command</description> </key> <key type="b" name="print-page-feed"> <default>false</default> <summary>print-page-feed</summary> <description>print-page-feed</description> </key> <key type="b" name="print-bold-title"> <default>false</default> <summary>print-bold-title</summary> <description>print-bold-title</description> </key> <key type="b" name="sort-ascending"> <default>true</default> <summary>sort-ascending</summary> <description>sort-ascending</description> </key> <key type="b" name="sort-alpha"> <default>true</default> <summary>sort-alpha</summary> <description>sort-alpha</description> </key> <key type="b" name="sort-items"> <default>true</default> <summary>sort-items</summary> <description>sort-items</description> </key> <key type="i" name="sort-sublevels"> <default>1</default> <summary>sort-sublevels</summary> <description>sort-sublevels</description> </key> </schema> </schemalist> ��������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/pixmaps/�������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0014407�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/pixmaps/gjots2-clock.png���������������������������������������������������������������0000664�0000000�0000000�00000002746�14016300235�0017427�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���������w=���bKGD������ pHYs���H���H�Fk>��IDATHǽ[lW%k{qY7McZG!LBոMxHi+UH<@yIyB1A׮ZRLcދw^fggi <0ߑw滜&90#RTkm7;JJe…5رFUxU zt>iyE3|:RQɯɭx5kdW{qqݣ^=kzhq=y?MB{[+sXlP^y}#_  /;eaz+LNL1>?ϫs_e1 hQuqxo%TW!qrU ?4E L]U=.]Z*E׾G~sk=_WM38, 4ExtTR G CB$fjjgxLٙ5] đ'vǣ8;I}DJꥲ%\bÝ "i{{;?P\m;|Wᾯ7�BJĆ"?3N|}h4 xϓL$i{|c�Wۛ@U\ȍH.F*F .3piy;;Qೇ[.EUTO_ MsGL8BTUɧ8p+?3i<a֋”mk+*eUX!r"hoogߧqD뺸 x4\pXxp\kkx4 D~kfLNLϕ+WɖR"@QT))ebBU�qL.S,!D$o_~3#ebbӧOsY|>�BO'#\R[Z){ Ts V::: Fٻ>mmmΐ\Tb*, P(fn-# ضTfaTUEtv~Ab1:6NP,SSfӺ(Fw_ /,%N,O-/.NC5vg޼˻i9y{Hl;8N5RL#[T*sg1YZ[ /oQ:Btfm[UfhHEe{3GUU\%k?²J%[q3rr9 恈>-gZ[y"urPĮ8M\:cT:$rjiw>f7cz,RcGL�4t/~!4Kdkd%[y{an0DBZv|)%xgCP+f »Lf<�n7: k5[_ҫ7P����IENDB`��������������������������gjots2-3.1.9/pixmaps/gjots2-hide-all.png������������������������������������������������������������0000664�0000000�0000000�00000001071�14016300235�0020001�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���������w=���bKGD������C��IDATxՕ@?gW`Cd )L>=%KICB'$uҸ"!BVƎ=A$4{f.V V}}B}ZR*"MPH*7mVLo7D\ېT⑦:5 i0hp#Ac|>Viq }Th]Cd|WZL,#0o#e_1z}<ϲ,}VimFF۶m 8L c˥>bvNy4M0$ CZ&C^gR/jSxsV$Ig@�rJXnCp8o Hs( dπ_$8ׅ7Y~�^FD9:'bDH_bjYq U%g#.pGReY@hRw Zvign9wL޻A@|����IENDB`�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/pixmaps/gjots2-merge-items.png���������������������������������������������������������0000664�0000000�0000000�00000002213�14016300235�0020537�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���������w=���sRGB����bKGD������ pHYs�� �� ����tIME  tr�� IDATHՕAlTU;M;LG,ڨZ1H&DT41Ѹ4.D6hX7 RI\hM(1 P)B MKB!@3y=.ƔRʛŻRs?{>c�n9& C._gOO X,vJ�D0::G8uw ދVjZsRinܸpzu '�k:t'Ng2833vjͽp0zƘ- ?O>-wS;�e{_ "BRAӣ-[4@2Dj5"I�$X(VR)I:;;ÍBFs Zk4{eEDr֚immcѣG9$ � xZ{֑;ִo߾ O ]*#'''1%FQ])Z0&9GZ)co{Lګ5roX{cLи`jRJ) scpΩG[aLLis.HQCC\nVax3)jh)WeúU D\iMޒ$pno0T1 féƜ�I�6<k}R,9WqLr5dždLוRaL&H)6fVEc, $#Izw}0333;>ccc ###8u11IbSAX@$J-*J~ М^Һ&!V㜣yA%k%ENe0FZˎqm;n?XO8Q*cl "0 m|n#'ma_ѿ jze׮] f2+0Ƌc},;٣7zyXt�D/Wz_w^[%ѱr&޾ٝIݲ (q_`yA9i^<&q�._7xhͲvc ����IENDB`�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/pixmaps/gjots2-new-child.png�����������������������������������������������������������0000664�0000000�0000000�00000000336�14016300235�0020177�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���������k���sRGB���� PLTE�����؇���tRNS�@f���bKGD�H��� pHYs�� �� ����tIME ���AIDATc` ZB#mP *�DAP j8!LVMM� C�7\����IENDB`��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/pixmaps/gjots2-new-page.png������������������������������������������������������������0000664�0000000�0000000�00000002104�14016300235�0020023�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���������w=���gAMA�� a���bKGD������ pHYs�� �� @S���tIME  (g8:��IDATxڽ]h\Esh6M)A+ɃYGK<Eh9`[}Ч*HDLt XSЇTښ%DT6`6{s޽s|ݛ*80Μ?g [۶e溮LNNJWW�_Q@mrRl&Hܕ7cccI$ ,9 +7m."Z.tF<!K@V *;?xT*EGG�&8>S9hOOaΞ=0:z r " b"Bss3?}xxqVDk-KyR,⺎8R`%[l*Nő̓V>u6vlY Es{A�q~L\< GWIrN"5νFP`׮d2tvWiDѣhMp^w޿xS^b~& r՚p]DAXТI&87' ? g_ ~~� BTa Wb^5RW4ܚB�JٹYD!r6v75Q,uq̅ !fd4S7jWmǎ=PPRDOKKg�CXV;,h$B* A/rT)ߝK_280ecDRߚ}<$;w2::ӽ 0Mlt:E( n<yCO133㺤IӬ!IDD%oBb(,Z4Xp8VAڔX,~B*gV8Ƭ1PJ!"e}d9!d+}D@3 5JuQI씦<W* j]V`r<oŒ**JyPWUwT7}[ţYhX&@-Cq[7k%Ay����IENDB`������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/pixmaps/gjots2-show-all.png������������������������������������������������������������0000664�0000000�0000000�00000001044�14016300235�0020050�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���������w=���bKGD�����IDATxՕOnPDZ-%;X^p� p"U=\ `wD("it5!1H<M1v737.�,sU'""YUɺO=:skm6� 0L�>'#_)1Qn�8+9A t* CdЪ֦ IW"aZmJuCUWw(k| 0v-eYR,˼Ϫ6AQc ~p8$M-uuN$+c( )yoU 8tp_ (Ѧh? h|oS"ܰZTO]c-`=^�OGv4y5*#ZkeQCkZql(ڍR;r . a(Z֕Z{El6+ `RittvH`����IENDB`��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/pixmaps/gjots2-split-item.png����������������������������������������������������������0000664�0000000�0000000�00000002223�14016300235�0020411�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���������w=���sRGB����bKGD������ pHYs�� �� ����tIME ;��IDATHǽ_he?wmsRQ[D YPR &2]4 fw.,]@]D(7uQ$VmyŞLMo:pxޗϗ={O|{pjZ ZV'===hJR�DZ<i@!X#""~"NchED200 �5_j{(6c)˒,H.۸|#@@歗w?EAf$I4m l'V`%h](`OײNm I#ʲyD ֚ ]!p "'R.(KRT@P&Ȳ 5Ɣhm0D)ϛe!Ib :8{xEFQh֠uI~1kkraѕ</(Fk ie|KRqLKK."iNkLoooQ?��l$ED0Fcu.[So7nscHӌJ%$ +TU*U* YEds(`ѺԩSŋزe(vC`8)U566kmFR]}netvKA͛7ٴW1\t"v"ZTiw=1vmfp8vG i(rDDI6@PeW� q26(N7&j4E)c˛ʷ@\& lyFS2-xO47W æl夡6`R,K)ҕVR>V1IgE[T"P9Yc:::X|gp竔Eƞ[?_"L'q?eyeƊ]d YȽV(kP\zz6΁%4e 6 а^O?J͎Q Vg&c"8}W?9 hqU| :| sB<SL0FWd ˆ����IENDB`�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/pixmaps/gjots2.png���������������������������������������������������������������������0000664�0000000�0000000�00000002257�14016300235�0016333�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���0���0���W���sRGB����bKGD������ pHYs�� �� ~���tIME 5[6���tEXtComment�Created with GIMPW�� IDAThZa }333~Dchc((;-wc�#-nf7v53Ώ3(w toMl͛]h gyxCZlH[f7?e:I0#)l[!6}\:hH[uW5ہdE029դTSeVU5"2AE30p1U1'L\w":�PUcfwE�qYxmgf61T!"s`hvͺ , o+`0Zwa}�lqy:,dM!g�VA2tLY:aI_XU7NyPZj:RG[zi] ׊GL騣�jQ s-Jz�g5z~ i@-Aͨ524AAX6%Hݖg(,Nh%x@!~<y\'y~72UHj8ksա@݄e؁5hÒ<jiҳ(P::yNthYADH)տ-"btW�0y1yqjTZ?kI=:Y "^H5;gɂS)D <�h�P?!$~ ߣol,7%ۛyjNBŪ˅R8\ (K&v_ G۹u~B @zc˚M5N5LdfkP(fUn'Q;#2N^4*&nY%`}}#F} +m6[R}|Q:,67' q@~Qת\ΥۉӍ� }}f{sR F$]dȽ13,׬._)8vuUշ @.7Hi{Я>M׬#q?8}װo7|?>C?y@PKCxU*;{]X;TMpo�җv����IENDB`�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/������������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0013344�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/cs.po�������������������������������������������������������������������������������0000664�0000000�0000000�00000065064�14016300235�0014324�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Messages master file for gjots2. # Copyright (C) 2005-2006 Bob Hepple # This file is distributed under the same license as the gjots2 package. # Bob Hepple <bhepple@freeshell.org>, 2005. # msgid "" msgstr "" "Project-Id-Version: gjots2 2.3.4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-30 18:18+1000\n" "PO-Revision-Date: 2007-02-26 10:08+0100\n" "Last-Translator: Martin Sin <martin.sin@zshk.cz>\n" "Language-Team: Czech\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/about.ui:12 #, fuzzy msgid "Copyright Bob Hepple 2002-2020" msgstr "Copyright Bob Hepple 2002-2006" #: ../ui/about.ui:13 msgid "http://bhepple.freeshell.org/gjots2" msgstr "http://bhepple.freeshell.org/gjots2" #: ../ui/about.ui:25 msgid "\n" msgstr "" #: ../ui/fileDialog.ui:69 #, fuzzy msgid "Open file read only" msgstr "Otevřít soubor ..." #: ../ui/fileDialog.ui:73 msgid "To open the file in read-only mode." msgstr "" #: ../ui/findDialog.ui:8 msgid "Find & replace" msgstr "Najít & nahradit" #: ../ui/findDialog.ui:34 msgid "Find:" msgstr "Najít:" #: ../ui/findDialog.ui:47 msgid "Replace:" msgstr "Nahradit:" #: ../ui/findDialog.ui:64 msgid "String to search for" msgstr "Hledaný výraz" #: ../ui/findDialog.ui:80 msgid "String to replace" msgstr "Nahradit za" #: ../ui/findDialog.ui:114 ../ui/gjots.ui:844 msgid "Find" msgstr "Najít" #: ../ui/findDialog.ui:130 msgid "Close" msgstr "Zavřít" #: ../ui/findDialog.ui:146 msgid "Replace" msgstr "Nahradit" #: ../ui/findDialog.ui:162 msgid "Replace All" msgstr "Nahradit vše" #: ../ui/findDialog.ui:178 msgid "Cancel" msgstr "Zrušit" #: ../ui/findDialog.ui:197 msgid "Clear" msgstr "Vymazat" #: ../ui/findDialog.ui:257 msgid "Match case" msgstr "Porovnat velikost" #: ../ui/findDialog.ui:261 msgid "Don't ignore case" msgstr "Dbát na velikost" #: ../ui/findDialog.ui:271 msgid "Regular Expression" msgstr "Regulární výraz" #: ../ui/findDialog.ui:275 msgid "Find string is a regular expression (see 'man 7 regex')" msgstr "Nalezne řetězec odpovídající regulárnímu výrazu ('man 7 regex')" #: ../ui/findDialog.ui:287 msgid "Backwards" msgstr "Zpětně" #: ../ui/findDialog.ui:291 msgid "Search backwards" msgstr "Hledá zpětně" #: ../ui/findDialog.ui:306 msgid "Global" msgstr "Celý" #: ../ui/findDialog.ui:310 msgid "Searches entire file not just this entry" msgstr "Prohledá celý soubor ne pouze aktuální položku" #: ../ui/findDialog.ui:327 msgid " Options " msgstr " Nastavení " #: ../ui/fontDialog.ui:9 msgid "Select Font" msgstr "Zvolit písmo" #: ../ui/generalDialog.ui:9 msgid "window1" msgstr "window1" #: ../ui/generalDialog.ui:22 ../ui/generalDialog.ui:60 #: ../ui/generalDialog.ui:115 msgid "label1" msgstr "label1" #: ../ui/generalDialog.ui:46 msgid "label2" msgstr "label2" #: ../ui/generalDialog.ui:193 msgid "Try again" msgstr "Zkusit znova" #: ../ui/generalDialog.ui:209 msgid "Read only" msgstr "Pouze pro čtení" #: ../ui/gjots.ui:24 msgid "_File" msgstr "" #: ../ui/gjots.ui:88 msgid "_Import" msgstr "_Importovat" #: ../ui/gjots.ui:91 msgid "Import items from a gjots file" msgstr "Importuje položky ze souboru gjots" #: ../ui/gjots.ui:99 msgid "_Export" msgstr "_Exportovat" #: ../ui/gjots.ui:102 msgid "Export selected items to a gjots file" msgstr "Exportuje vybrané položky do souboru gjots" #: ../ui/gjots.ui:135 msgid "Toggle the read-only flag if possible" msgstr "Přepne značku pouze pro čtení" #: ../ui/gjots.ui:136 msgid "_Read-only" msgstr "_Pouze pro čtení" #: ../ui/gjots.ui:152 #, fuzzy msgid "Exit gjots2" msgstr "Ukončí gjots" #: ../ui/gjots.ui:167 msgid "_Edit" msgstr "" #: ../ui/gjots.ui:263 #, fuzzy msgid "Find Next" msgstr "Najít" #: ../ui/gjots.ui:273 msgid "Find Previous" msgstr "" #: ../ui/gjots.ui:299 msgid "_View" msgstr "" #: ../ui/gjots.ui:307 msgid "_Show All" msgstr "_Zobrazit vše" #: ../ui/gjots.ui:310 ../ui/gjots.ui:1085 msgid "Show all items below the current item" msgstr "Zobrazí všechny položky pod aktuální zvolenou" #: ../ui/gjots.ui:318 msgid "_Hide All" msgstr "_Skrýt vše" #: ../ui/gjots.ui:321 msgid "Hide all items except the top level" msgstr "Skryje všechny položky kromě položek nejvyšší úrovně" #: ../ui/gjots.ui:337 msgid "Toggles the main toolbar" msgstr "Zobrazí hlavní panel nástrojů" #: ../ui/gjots.ui:338 msgid "To_p Toolbar" msgstr "_Horní panel" #: ../ui/gjots.ui:347 msgid "Toggles tree tool bar" msgstr "Zobrazí stromový panel nástrojů" #: ../ui/gjots.ui:348 msgid "Tre_e Toolbar" msgstr "_Stromový panel" #: ../ui/gjots.ui:357 msgid "Show the related icon text" msgstr "Zobrazí ikony s textem" #: ../ui/gjots.ui:358 msgid "Show _Icon Text" msgstr "_Zobrazit text ikon" #: ../ui/gjots.ui:367 msgid "Status _Bar" msgstr "Stavový _Pruh" #: ../ui/gjots.ui:380 msgid "_Tree" msgstr "_Strom" #: ../ui/gjots.ui:388 msgid "_New Page" msgstr "Nová _stránka" #: ../ui/gjots.ui:391 msgid "Create a new page" msgstr "Vytvoří novou stránku" #: ../ui/gjots.ui:400 msgid "New _Child" msgstr "Nový _následník" #: ../ui/gjots.ui:403 ../ui/gjots.ui:920 msgid "Create a new child" msgstr "Vytvoří nového potomka" #: ../ui/gjots.ui:420 ../ui/gjots.ui:950 msgid "Move selection up" msgstr "Přesune výběr nahoru" #: ../ui/gjots.ui:431 ../ui/gjots.ui:965 msgid "Move selection down" msgstr "Přesune výběr dolů" #: ../ui/gjots.ui:439 msgid "P_romote" msgstr "_Zvýšit" #: ../ui/gjots.ui:442 ../ui/gjots.ui:980 msgid "Selection becomes a sibling to their parent" msgstr "Výběr se přesune na úroveň svého rodiče" #: ../ui/gjots.ui:450 msgid "D_emote" msgstr "_Snížit" #: ../ui/gjots.ui:453 ../ui/gjots.ui:995 msgid "Selection becomes a child of the previous item" msgstr "Výběr se stane potomkem předchozí položky" #: ../ui/gjots.ui:467 msgid "_Split Item" msgstr "_Rozdělit položku" #: ../ui/gjots.ui:470 msgid "Make a new item from the current selection" msgstr "Z aktuálního výběru vytvoří novou položku" #: ../ui/gjots.ui:478 msgid "_Merge Items" msgstr "S_pojit položky" #: ../ui/gjots.ui:481 msgid "Merge current items into the first one" msgstr "Spojí aktuální položky do té první" #: ../ui/gjots.ui:489 msgid "S_ort Tree" msgstr "S_etřídit strom" #: ../ui/gjots.ui:492 ../ui/gjots.ui:1100 msgid "Popup the sort tree dialog" msgstr "Zobrazí dialog setřídění" #: ../ui/gjots.ui:506 msgid "Te_xt" msgstr "Te_xt" #: ../ui/gjots.ui:514 msgid "_Format" msgstr "_Formátovat" #: ../ui/gjots.ui:517 msgid "Format the current paragraph" msgstr "Naformátuje aktuální odstavec" #: ../ui/gjots.ui:526 msgid "_Time stamp" msgstr "_Časové razítko" #: ../ui/gjots.ui:529 msgid "Add a time/date stamp (see preferences)" msgstr "Přidá čas/datum (podívejte se na nastavení)" #: ../ui/gjots.ui:538 msgid "_External Edit" msgstr "_Externí editor" #: ../ui/gjots.ui:541 msgid "Edit current item in an external editor" msgstr "Upraví aktuální položku v externím editoru" #: ../ui/gjots.ui:549 msgid "_Sort Text" msgstr "_Setřídit text" #: ../ui/gjots.ui:552 msgid "Popup the sort text dialog" msgstr "Zobrazí dialogové okno setřídění" #: ../ui/gjots.ui:566 msgid "_Help" msgstr "" #: ../ui/gjots.ui:574 #, fuzzy msgid "_Read Manual" msgstr "Čís_t manuál" #: ../ui/gjots.ui:577 msgid "Read the online manual (using gjots)" msgstr "Přečte online manuál (pomocí gjots)" #: ../ui/gjots.ui:621 msgid "Popup the 'Find'menu" msgstr "" #: ../ui/gjots.ui:651 msgid "Find the previous occurance" msgstr "" #: ../ui/gjots.ui:667 msgid "Find the next occurance" msgstr "" #: ../ui/gjots.ui:693 msgid "Save gjots document" msgstr "Uloží dokument gjots" #: ../ui/gjots.ui:694 msgid "Save" msgstr "Uložit" #: ../ui/gjots.ui:708 msgid "Print this document" msgstr "Vytiskne tento dokument" #: ../ui/gjots.ui:709 ../ui/printDialog.ui:8 msgid "Print" msgstr "Tisknout" #: ../ui/gjots.ui:738 msgid "Cut selected items" msgstr "Vyjme vybrané položky" #: ../ui/gjots.ui:739 msgid "Cut" msgstr "Vyjmout" #: ../ui/gjots.ui:753 msgid "Copy selected items" msgstr "Zkopíruje vybrané položky" #: ../ui/gjots.ui:754 msgid "Copy" msgstr "Kopírovat" #: ../ui/gjots.ui:768 msgid "Paste selected items" msgstr "Vloží vybrané položky" #: ../ui/gjots.ui:769 msgid "Paste" msgstr "Vložit" #: ../ui/gjots.ui:798 msgid "Wrap the current paragraph to the current line length" msgstr "Nastaví zalomení řádku na zvolenou délku" #: ../ui/gjots.ui:799 msgid "Wrap" msgstr "Zalomit" #: ../ui/gjots.ui:813 msgid "Invoke an external editor on the current item" msgstr "Zobrazí aktuální položku v externím editoru" #: ../ui/gjots.ui:814 msgid "Ext.Ed." msgstr "Editor" #: ../ui/gjots.ui:828 msgid "Add a time/date stamp (see prefs)" msgstr "Přidá datum/čas (podívejte se na nastavení)" #: ../ui/gjots.ui:829 msgid "Date" msgstr "Datum" #: ../ui/gjots.ui:843 msgid "Popup the find and replace dialog" msgstr "Zobrazí okno najít a nahradit" #: ../ui/gjots.ui:858 msgid "Popup the sort dialog" msgstr "Zobrazí dialog setřídit" #: ../ui/gjots.ui:859 ../ui/sortDialog.ui:15 msgid "Sort" msgstr "Setřídit" #: ../ui/gjots.ui:873 msgid "Open gjots preferences window" msgstr "Otevře okno s nastavením gjots" #: ../ui/gjots.ui:874 msgid "Prefs" msgstr "Nastavení" #: ../ui/gjots.ui:905 msgid "Create a new item" msgstr "Vytvoří novou položku" #: ../ui/gjots.ui:906 ../ui/treeContextMenu.ui:45 msgid "New Page" msgstr "Nová stránka" #: ../ui/gjots.ui:921 ../ui/treeContextMenu.ui:52 msgid "New Child" msgstr "Nový potomek" #: ../ui/gjots.ui:951 msgid "Up" msgstr "Nahoru" #: ../ui/gjots.ui:966 msgid "Down" msgstr "Dolů" #: ../ui/gjots.ui:981 ../ui/treeContextMenu.ui:74 msgid "Promote" msgstr "Zvýšit" #: ../ui/gjots.ui:996 ../ui/treeContextMenu.ui:82 msgid "Demote" msgstr "Snížit" #: ../ui/gjots.ui:1025 msgid "Split the text selection into a new item" msgstr "Rozdělí textový výběr do nové položky" #: ../ui/gjots.ui:1026 msgid "Split Item" msgstr "Rozdělit položku" #: ../ui/gjots.ui:1040 msgid "Merge selected items together" msgstr "Spojí vybrané položky dohromady" #: ../ui/gjots.ui:1041 ../ui/treeContextMenu.ui:89 msgid "Merge Items" msgstr "Spojit položky" #: ../ui/gjots.ui:1070 msgid "Hide all items except for the top level" msgstr "Skryje všechny položky kromě nejvyšší úrovně" #: ../ui/gjots.ui:1071 ../ui/treeContextMenu.ui:103 msgid "Hide All" msgstr "Skrýt vše" #: ../ui/gjots.ui:1086 ../ui/treeContextMenu.ui:96 msgid "Show All" msgstr "Zobrazit vše" #: ../ui/gjots.ui:1101 ../ui/treeContextMenu.ui:110 ../lib/sortDialog.py:394 msgid "Sort Tree" msgstr "Setřídit strom" #: ../ui/prefsDialog.ui:20 msgid "gjots: preferences" msgstr "gjots: nastavení" #: ../ui/prefsDialog.ui:49 msgid "Choose a font for the text panel" msgstr "Zvolí písmo textového panelu" #: ../ui/prefsDialog.ui:65 msgid "Date format:" msgstr "Formát data:" #: ../ui/prefsDialog.ui:79 #, fuzzy msgid "Format for the timestamp function (see strftime(3)) eg %F" msgstr "Formát pro vložení časové značky (podívejte se na strftime(3))" #: ../ui/prefsDialog.ui:80 msgid "%F" msgstr "%d.%m.%Y" #: ../ui/prefsDialog.ui:99 #, fuzzy msgid "" "External program to edit a page (%s is replaced by the name of the temporary " "edit file) eg xterm -e vi %s" msgstr "" "Externí program pro úpravu stránky (%s bude nahrazeno jménem dočasně " "vytvořeného souboru)" #: ../ui/prefsDialog.ui:100 msgid "xterm -e vi %s" msgstr "xterm -e vi %s" #: ../ui/prefsDialog.ui:120 msgid "External editor" msgstr "Externí editor" #: ../ui/prefsDialog.ui:135 msgid "Text Line Length: " msgstr "Délka řádku s textem: " #: ../ui/prefsDialog.ui:149 msgid "Line length for paragraph wrapping" msgstr "Délka řádku pro jeho zalomení" #: ../ui/prefsDialog.ui:172 msgid "Text formatter: " msgstr "Formátovač textu: " #: ../ui/prefsDialog.ui:184 #, fuzzy msgid "" "External program to pipe text for formatting (%d is replaced by the current " "line width) eg fmt -w %d " msgstr "" "Externí program pro spojení textu při formátování (%d je nahrazeno aktuální " "délkou řádku)" #: ../ui/prefsDialog.ui:185 msgid "fmt -w %d " msgstr "fmt -w %d " #: ../ui/prefsDialog.ui:202 msgid "Current text font" msgstr "Aktuální písmo textu" #: ../ui/prefsDialog.ui:204 msgid "Courier 10 Pitch 10" msgstr "Courier 10 Pitch 10" #: ../ui/prefsDialog.ui:224 msgid "AutoSave interval:" msgstr "" #: ../ui/prefsDialog.ui:238 msgid "Seconds of inactivity to trigger an AutoSave (0 = no AutoSave)" msgstr "" #: ../ui/printDialog.ui:38 msgid "e.g. lpr: " msgstr "např. lpr: " #: ../ui/printDialog.ui:54 msgid "print command (can be a shell expression)" msgstr "příkaz k tisku (může být příkaz shellu)" #: ../ui/printDialog.ui:76 msgid " Print command " msgstr " Příkaz tisku " #: ../ui/printDialog.ui:104 msgid "Page" msgstr "Stránka" #: ../ui/printDialog.ui:108 msgid "Print the current page" msgstr "Vytiskne aktuální stránku" #: ../ui/printDialog.ui:120 msgid "Selection" msgstr "Výběr" #: ../ui/printDialog.ui:124 msgid "Print the selected pages or text" msgstr "Vytiskne vybrané stránky nebo text" #: ../ui/printDialog.ui:137 msgid "All" msgstr "Vše" #: ../ui/printDialog.ui:141 msgid "Print the entire gjots file" msgstr "Vytiskne celý soubor gjots" #: ../ui/printDialog.ui:160 msgid " Print Range " msgstr " Tisk oblasti " #: ../ui/printDialog.ui:193 msgid "Page feeds" msgstr "Posun stránky" #: ../ui/printDialog.ui:197 msgid "Feeds a page before every new gjots item" msgstr "Vyjede stránku před každou novou položkou gjots" #: ../ui/printDialog.ui:209 msgid "Bold titles" msgstr "Tituly tučně" #: ../ui/printDialog.ui:212 msgid "Print the gjots item titles in bold" msgstr "Tučně vytiskne tituly gjots" #: ../ui/printDialog.ui:224 msgid "Auto Number" msgstr "Automatické číslování" #: ../ui/printDialog.ui:251 msgid "Auto-number format: " msgstr "Automatické formát čísel" #: ../ui/printDialog.ui:262 msgid "eg. 1 for 1.2.1, a" msgstr "např. 1 pro 1.2.1, a" #: ../ui/printDialog.ui:289 msgid " Print formatting " msgstr " Formátování tisku " #: ../ui/sortDialog.ui:43 msgid "Ascending" msgstr "Vzestupně" #: ../ui/sortDialog.ui:47 msgid "Sort in ascending order" msgstr "Setřídí v vzestupném pořadí" #: ../ui/sortDialog.ui:58 msgid "Descending" msgstr "Sestupně" #: ../ui/sortDialog.ui:62 msgid "Sort in descending order" msgstr "Setřídí v sestupném pořadí" #: ../ui/sortDialog.ui:76 msgid "Alphabetic" msgstr "Abecedně" #: ../ui/sortDialog.ui:80 msgid "Sort in alphabetic order" msgstr "Setřídí v abecedním pořadí" #: ../ui/sortDialog.ui:93 msgid "Numeric" msgstr "Číselně" #: ../ui/sortDialog.ui:97 msgid "Sort in numeric order" msgstr "Setřídí v číselném pořadí" #: ../ui/sortDialog.ui:119 msgid " Sort Parameters " msgstr " Parametry třídění " #: ../ui/sortDialog.ui:149 msgid "How many sublevels to sort (0 for none; -1 for 'all')" msgstr "Kolik podúrovní se má třídit (0 pro žádnou; -1 pro 'všechny')" #: ../ui/sortDialog.ui:171 msgid " Sort Sublevels " msgstr " Počet podúrovní " #: ../ui/treeContextMenu.ui:30 #, fuzzy msgid "Select _All" msgstr "Vybrat soubor1" #: ../ui/treeContextMenu.ui:117 msgid "Import" msgstr "Importovat" #: ../ui/treeContextMenu.ui:124 msgid "Export" msgstr "Exportovat" #: ../gjots2:23 #, fuzzy msgid "" "Usage: gjots [OPTIONS] [FILENAME]\n" "A gtk/X11 jotter\n" "\n" "OPTIONS:\n" "-h, --help: this help\n" "-d, --debug: debug to stdout\n" "-t, --trace: trace lines as they execute\n" "-g 123x456, --geometry=123x456: initial geometry (X x Y)\n" "-p, --purge-password don't remember password\n" "-r, --readonly: no editing (or locking)\n" "-V, --version: print the version and exit\n" "\n" "FILENAME:\n" " gjots data filename (default is $HOME/.gjotsfile)\n" msgstr "" "Užití: gjots [VOLBY] [SOUBOR]\n" "Zápisník pro gnome-2/X11\n" "\n" "VOLBY:\n" "-h, --help: tato nápověda\n" "-d, --debug: ladící výstup\n" "-g 123x456, --geometry=123x456: výchozí velikost (X x Y)\n" "-p, --purge-password \t\t\t\tnepamatovat heslo\n" "-r, --readonly: bez úprav (zamčení)\n" "-V, --version: vytisknout verzi a konec\n" "\n" "SOUBOR:\n" "\tdatový soubor gjots (výchozí je $HOME/.gjotsfile)\n" #: ../gjots2:89 #, python-format msgid "%s requires python%s or higher." msgstr "%s vyžaduje python%s nebo vyšší." #: ../gjots2:102 msgid "Use -h for help\n" msgstr "Pro nápovědu zadejte -h\n" #: ../gjots2:116 #, python-format msgid "%s version %s" msgstr "%s verze %s" #: ../lib/gui.py:51 ../lib/gui.py:996 msgid "Text pasted" msgstr "Text vložen" #: ../lib/gui.py:179 #, python-format msgid "External formatter \"%s\" is not installed - can't format" msgstr "" "Externí formátovací program \"%s\" není nainstalován - nelze formátovat" #: ../lib/gui.py:564 ../lib/gui.py:675 ../lib/gui.py:679 ../lib/gui.py:745 #: ../lib/gui.py:749 ../lib/gui.py:812 ../lib/gui.py:817 ../lib/gui.py:1043 #: ../lib/gui.py:1052 ../lib/gui.py:1138 ../lib/gui.py:1147 ../lib/gui.py:1183 #: ../lib/gui.py:1188 ../lib/gui.py:1219 ../lib/gui.py:1608 ../lib/gui.py:2382 #: ../lib/gui.py:2401 ../lib/gui.py:2430 ../lib/gui.py:2461 ../lib/file.py:466 #: ../lib/file.py:471 ../lib/sortDialog.py:329 ../lib/sortDialog.py:334 #: ../lib/printDialog.py:110 ../lib/printDialog.py:115 msgid "Nothing selected" msgstr "Nic není vybráno" #: ../lib/gui.py:568 ../lib/gui.py:684 ../lib/gui.py:753 ../lib/gui.py:822 #: ../lib/gui.py:934 ../lib/gui.py:1224 ../lib/gui.py:2386 #: ../lib/sortDialog.py:345 msgid "No parent!" msgstr "Není rodič!" #: ../lib/gui.py:572 ../lib/gui.py:719 msgid "No child!" msgstr "Není potomek!" #: ../lib/gui.py:580 ../lib/gui.py:693 msgid "Can't go any further" msgstr "Nemohu pokračovat" #: ../lib/gui.py:616 ../lib/gui.py:840 msgid "Internal error!" msgstr "Interní chyba!" #: ../lib/gui.py:757 msgid "Can't go further!" msgstr "Nemohu pokračovat!" #: ../lib/gui.py:973 msgid "Text cut" msgstr "Vyjmout text" #: ../lib/gui.py:984 msgid "Text copied" msgstr "Text zkopírován" #: ../lib/gui.py:1005 msgid "All text selected" msgstr "Celý text vybrán" #: ../lib/gui.py:1015 msgid "All tree items selected" msgstr "Všechny položky stromu vybrány" #: ../lib/gui.py:1023 msgid "Nothing selected!" msgstr "Nic není vybráno!" #: ../lib/gui.py:1047 msgid "Can't merge the root item" msgstr "Nemohu spojit kořenové položky" #: ../lib/gui.py:1056 msgid "Nothing to merge" msgstr "Nic ke sloučení" #: ../lib/gui.py:1063 msgid "Can't merge items that have children" msgstr "Nemohu sloučit položky, které obsahují potomky" #: ../lib/gui.py:1093 #, python-format msgid "%d items merged" msgstr "%d položek sloučeno" #: ../lib/gui.py:1142 msgid "Can't delete the root item" msgstr "Nemohu smazat kořenovou položku" #: ../lib/gui.py:1175 #, python-format msgid "%d tree items cut" msgstr "%d položek stromu vyjmuto" #: ../lib/gui.py:1205 #, python-format msgid "%d tree items copied" msgstr "%d položek stromu zkopírováno" #: ../lib/gui.py:1214 msgid "Nothing to paste" msgstr "Nic k vložení" #: ../lib/gui.py:1237 msgid "Tree items pasted" msgstr "Položky stromu vloženy" #: ../lib/gui.py:1258 #, fuzzy msgid "Can't write tempfile" msgstr "Nemohu zapisovat " #: ../lib/gui.py:1278 #, python-format msgid "Can't run '%s'" msgstr "Nemohu spustit '%s'" #: ../lib/gui.py:1287 #, fuzzy msgid "Can't read tempfile " msgstr "Nemohu číst " #: ../lib/gui.py:1293 msgid "text changed by external editor" msgstr "text změněn pomocí externího editoru" #: ../lib/gui.py:1295 msgid "text not changed by external editor" msgstr "text nebyl změněn pomocí externího editoru" #: ../lib/gui.py:1314 msgid ": Error" msgstr ": Chyba" #: ../lib/gui.py:1327 #, python-format msgid "Can't lock file %s: already locked by process %d" msgstr "Nemohu zamknout soubor %s: již zamčen procesem %d" #: ../lib/gui.py:1510 msgid ": Save?" msgstr ": Uložit?" #: ../lib/gui.py:1511 msgid "Save current work?" msgstr "Uložit současnou práci?" #: ../lib/gui.py:1532 msgid "New file" msgstr "Nový soubor" #: ../lib/gui.py:1556 msgid "Open file ..." msgstr "Otevřít soubor ..." #: ../lib/gui.py:1568 msgid "No changes to save" msgstr "Žádné změny k uložení" #: ../lib/gui.py:1572 ../lib/gui.py:1593 msgid "Saved." msgstr "Uloženo." #: ../lib/gui.py:1574 ../lib/gui.py:1595 ../lib/file.py:456 msgid "Not saved." msgstr "Nebylo uloženo." #: ../lib/gui.py:1589 msgid "Nothing to save" msgstr "Nic k uložení" #: ../lib/gui.py:1591 ../lib/file.py:693 msgid "Save as ..." msgstr "Uložit jako ..." #: ../lib/gui.py:1605 msgid "Import from ..." msgstr "Importovat z ..." #: ../lib/gui.py:1616 msgid "Export to ..." msgstr "Exportovat do ..." #: ../lib/gui.py:1930 ../lib/gui.py:1933 #, python-format msgid "%s: Warning: opening gjots2 manual from %s\n" msgstr "%s: Varování: otevření manuálu gjots2 z %s\n" #: ../lib/gui.py:2317 msgid "" "gjots2: warning: selection list is NULL. Skipping tree selection changed \n" "event." msgstr "" "gjots2: varování: výběr seznamu je prázdný. Přeskakuji událost změny \n" "stromu." #: ../lib/gui.py:2390 msgid "Can't go further" msgstr "Nemohu pokračovat" #: ../lib/gui.py:2419 msgid "Tree is empty!" msgstr "Strom je prázdný!" #: ../lib/gui.py:2716 msgid "Bad regular expression" msgstr "Špatný regulární výraz" #: ../lib/gui.py:2808 #, python-format msgid "%s: bad geometry specification: %s\n" msgstr "%s: špatná specifikace rozměru: %s\n" #: ../lib/gui.py:2899 msgid "New...>>>" msgstr "Nová...>>>" #: ../lib/gui.py:2936 msgid "Install gtksourceview to enable undo/redo" msgstr "" #: ../lib/gui.py:3102 msgid ": version " msgstr ": verze " #: ../lib/find.py:70 ../lib/find.py:93 msgid "Not found" msgstr "Nenalezeno" #: ../lib/find.py:72 msgid "Found" msgstr "Nalezeno" #: ../lib/find.py:96 msgid "Replace?" msgstr "Nahradit?" #: ../lib/find.py:113 #, python-format msgid "%d substitutions" msgstr "%d substitucí" #: ../lib/file.py:255 msgid "Enter password for " msgstr "Zadejte heslo pro " #: ../lib/file.py:257 #, fuzzy msgid ": Enter Password" msgstr "gjots: Zadat heslo" #: ../lib/file.py:259 msgid "Password: " msgstr "Heslo: " #: ../lib/file.py:260 msgid "Confirm: " msgstr "Potvrdit: " #: ../lib/file.py:268 msgid "Password was not confirmed" msgstr "Hesla si nesouhlasí" #: ../lib/file.py:275 msgid "Could not find the ccrypt program - please install it and try again" msgstr "Nemohu najít program ccrypt - nainstalujte ho prosím a zkuste to znovu" #: ../lib/file.py:308 msgid "" "Neither gpg2 nor gpg are available - please install one (perhaps package " "gnupg2) and try again" msgstr "" #: ../lib/file.py:328 #, fuzzy msgid "No openssl program - please install it and try again" msgstr "" "Nemohu nalézt program openssl - nainstalujte ho prosím a zkuste to znovu" #: ../lib/file.py:354 #, fuzzy msgid "No org2gjots program - please install it and try again" msgstr "" "Nemohu nalézt program openssl - nainstalujte ho prosím a zkuste to znovu" #: ../lib/file.py:412 msgid "Can't open \"" msgstr "Nemohu otevřít \"" #: ../lib/file.py:415 msgid "Bad password" msgstr "Špatné heslo" #: ../lib/file.py:418 msgid "File cannot be locked" msgstr "Soubor není možné uzamknout" #: ../lib/file.py:431 ../lib/file.py:489 msgid "failed!" msgstr "" #: ../lib/file.py:457 msgid "Can't write to " msgstr "Nemohu zapisovat do " #: ../lib/file.py:460 msgid "Can't lock file" msgstr "Nemohu zamknout soubor" #: ../lib/file.py:597 #, python-format msgid "%s is not readable" msgstr "%s není čitelný" #: ../lib/file.py:613 #, python-format msgid "%s: no permission" msgstr "%s: bez oprávnění" #: ../lib/file.py:615 #, python-format msgid "%s: locked by process number %d" msgstr "%s: zamčen procesem číslo %d" #: ../lib/file.py:617 #, fuzzy msgid ": can't lock file." msgstr "gjots: nemohu zamknout soubor." #: ../lib/file.py:705 msgid "That file is already open!" msgstr "Tento soubor je již otevřen!" #: ../lib/file.py:713 ../lib/file.py:787 #, fuzzy msgid ": file has changed" msgstr "gjots: %s již existuje." #: ../lib/file.py:714 #, python-format msgid "File changed since it was read - copied to %s " msgstr "" #: ../lib/file.py:731 #, python-format msgid "%s is locked by pid %d" msgstr "%s je zamčen pid %d" #: ../lib/file.py:735 msgid "Can't make a lockfile in " msgstr "Nemohu provést zamčení " #: ../lib/file.py:748 #, python-format msgid "%s is not writable" msgstr "do %s není možné zapisovat" #: ../lib/file.py:751 #, fuzzy, python-format msgid ": %s already exists." msgstr "gjots: %s již existuje." #: ../lib/file.py:752 #, python-format msgid "overwrite %s?" msgstr "přepsat %s?" #: ../lib/file.py:788 #, python-format msgid "File changed since it was read - so it was copied to %s " msgstr "" #: ../lib/sortDialog.py:125 msgid "_get_settings: Cant find sortAscendingRadioButton" msgstr "_get_settings: Nemohu nalézt sortAscendingRadioButton" #: ../lib/sortDialog.py:165 msgid "Internal error" msgstr "Interní chyba" #: ../lib/sortDialog.py:303 msgid "Nothing to sort!" msgstr "Nic k setřídění!" #: ../lib/sortDialog.py:398 msgid "Sort Text" msgstr "Setřídit text" #~ msgid "Exit gjots" #~ msgstr "Ukončí gjots" #~ msgid "Create a new child " #~ msgstr "Vytvoří nového následníka" #, fuzzy #~ msgid "About gjots2" #~ msgstr "Ukončí gjots" #, fuzzy #~ msgid " Find: " #~ msgstr "Najít:" #~ msgid "abcdefghijk ABCDEFGHIJK" #~ msgstr "abcdefghijk ABCDEFGHIJK" #, fuzzy, python-format #~ msgid "%s requires pygtk-%s.\n" #~ msgstr "%s vyžaduje pygtk-%s." #~ msgid "not initialised" #~ msgstr "není inicializováno" #~ msgid "pygtk-2.2 is required for this application!" #~ msgstr "Tato aplikace vyžaduje pygtk-2.2!" #~ msgid "Store and organise your random notes" #~ msgstr "Ukládá a organizuje náhodné poznámky" #~ msgid "Gjots2 Jotter" #~ msgstr "Zápisník Gjots2" #~ msgid "gjots" #~ msgstr "gjots" #~ msgid "_New" #~ msgstr "_Nový" #~ msgid "_Quit" #~ msgstr "_Konec" #~ msgid "_Toolbars" #~ msgstr "_Panely nástrojů" #~ msgid "_Up" #~ msgstr "_Nahoru" #~ msgid "_Down" #~ msgstr "_Dolů" #~ msgid "Create a new gjots document" #~ msgstr "Vytvoří nový dokument gjots" #~ msgid "Open an existing gjots document" #~ msgstr "Otevře stávající dokument gjots" #~ msgid "Open" #~ msgstr "Otevřít" #~ msgid "Back" #~ msgstr "Zpět" #~ msgid "Forward" #~ msgstr "Další" #~ msgid "translator_credits" #~ msgstr "Martin Šín" #~ msgid "%s: Warning: running modules from %s\n" #~ msgstr "%s: Varování: běžící moduly z %s\n" #~ msgid "Could not find the gpg program - please install it and try again" #~ msgstr "Nemohu najít program gpg - nainstalujte ho prosím a zkuste to znovu" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/cs/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0013751�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/cs/LC_MESSAGES/���������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0015536�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/cs/LC_MESSAGES/gjots2.mo������������������������������������������������������������0000664�0000000�0000000�00000034424�14016300235�0017312�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������,��3��<�������� ��� �� ��������!�����1�����D�����V�����g�����j�����z�������������������������������� �����+�����#���I�����m����������������� �����'�����!�������������������� ���2�� ���=�� ���G�����S�� ���h�� ���r������� ������������������������������0��������6��$���P�����u�� �������������������� ��������������� ���������������C��������V�����j�����}�������������������������������� ���������� ���������������'��� �����5�����I��%���P�� ���v������������7�����(��������������������7���'�����_�����e�����������������'�����#�����5�������������!�����1�����P�����_��-���o��"�����*����� ����� �����&��������)�����G�����[�� ���m�����w�� ���������� ���������� ����� ����� ����� ���������������������������� �����0�����A�� ���I�����W�����u�����~�� ���������� ���������������!������������������"�����=�����C�����I�����`��#���|�� ��������������� �����$�������� ������� ���'�����3�����<�� ���E�����P�� ���U�����a�����t������������(����� ����� �����.�����+��������:�����C��%���S�����y������� ����� ������������������������� ��� ��(��� �� ���A �����M �����_ �����t �����z �� ��� ����� ����� �� ��� ����� �� ��� ��%��� ����� !�����&!�� ���<!�����J!�����Y!�� ���k!�����u!�����x!�����!��5���!�����!�����!�����!�� ���!�����!�� ���!�� ���"�� ��� "�� ���"�� ���!"�� ���,"�� ���8"�����D"��1���J"�� ���|"�����"�� ���"��P���"�����"��#��� #�����-#�����4#�� ���;#��)���I#�����s#��#���#�����#�����#�� ��#�� ���$�����$�����$�����%�����%�����6%�����K%�����T%�����j%�� ���y%�����%�����%�����%�����%��$���%�� ��� &��0���,&��&���]&�����&�����&�����&�� ���&�����&��0���&��0���'�����7'�����<'��!���O'�� ���q'�� ���{'�����'�����'�����'�����'�����'�����'��!���(�����#(�����6(�����I(�����](��3���t(�����(��2���(��!���(�����)�����+)�����?)�����T)�����\)�����|)�����)�� ���)�� ���)�����)��H���)����� *�����*�����7*�����P*�����i*�����*�����*�� ���*�����*�� ���*�����*�� ���*�����*�����*��/���*�����+�� ���-+��,���8+�����e+�����w+�����~+��K���+��3���+�����,�����-,�����4,��G���F,�����,�� ���,�����,�����,�� ���,��4���,��=���-��E���E-�� ���-�����-��#���-�����-�����-��0���-��!���.��0���=.�����n.�����.��(���.��"���.�����.�����.�� ��� /�����/�����(/�� ���;/�� ���H/�����T/�����p/�� ���/�� ���/�����/�����/�����/�����/�����/�����/�����0�� ���0�����"0�� ���70�� ���X0�����b0�����k0�����z0�����0�����0�����0�����0�����0��&���0�����1�� ���91�����D1�����M1�����j1�����1��$���1�����1�����1�����1��'���1�����$2�����72�� ���@2�� ���N2�� ���X2�����b2�����t2�����|2�����2�����2�� ���2�����2��3���2�� ��� 3�����3��.���#3��.���R3�� ���3�����3��2���3�����3�� ���3�����3����� 4�� ���4��!���;4�� ���]4��!���~4�����4��,���4�����4�� ���4�����4����� 5�����5�����+5�� ���=5�����J5�� ���_5�����l5�� ���5��!���5��!���5��#���5�����6�����6�����&6�� ���?6�����L6�����S6�����n6��-���v6�� ���6�����6�� ���6�� ���6�� ���6�����6�����6�����7�����7�����*7�����;7�����O7�����b7��6���i7�� ���7�����7�� ���7��V���7�����%8��#���78�����[8�����b8�� ���i8��.���v8��(���8��.���8�����8�����9�����y���Z������������������������!��� ���C��������������Y���u������������� ����������������������A�������d���?���U���x���g��� ���"���F��������������p������/������*���������m������������������������������������=���;���6������+�������������c�������������b���4������0�������������������������������������������������������@������������������������������ ���,���]�����������'��������������3��������������&���9����������G��������������������n���l������L��������������������q������)����������w�����������������������5���������������������V���������������t������������ ���B������\���}������-������H���J�������������R�������P������>�����������f������o���Q����������������I���S���M�����������������z��������������������W���������������������������:�������������������� ������8�������7������������������������������T���j���1���������������.���{����������N�����������[�������e�������D���k���������������������������v���h�������~�����������������_���r�������i���$���������������K���#�������O�������������������������s������������|���2���E������`�������������������X�����������<���%���������������a����������^���(���� Options � Print Range � Print command � Print formatting � Sort Parameters � Sort Sublevels �%F�%d items merged�%d substitutions�%d tree items copied�%d tree items cut�%s is locked by pid %d�%s is not readable�%s is not writable�%s requires python%s or higher.�%s version %s�%s: Warning: opening gjots2 manual from %s �%s: bad geometry specification: %s �%s: locked by process number %d�%s: no permission�: Error�: Save?�: version �Add a time/date stamp (see preferences)�Add a time/date stamp (see prefs)�All�All text selected�All tree items selected�Alphabetic�Ascending�Auto Number�Auto-number format: �Backwards�Bad password�Bad regular expression�Bold titles�Can't delete the root item�Can't go any further�Can't go further�Can't go further!�Can't lock file�Can't lock file %s: already locked by process %d�Can't make a lockfile in �Can't merge items that have children�Can't merge the root item�Can't open "�Can't run '%s'�Can't write to �Cancel�Choose a font for the text panel�Clear�Close�Confirm: �Copy�Copy selected items�Could not find the ccrypt program - please install it and try again�Courier 10 Pitch 10�Create a new child�Create a new item�Create a new page�Current text font�Cut�Cut selected items�D_emote�Date�Date format:�Demote�Descending�Don't ignore case�Down�Edit current item in an external editor�Enter password for �Export�Export selected items to a gjots file�Export to ...�Ext.Ed.�External editor�External formatter "%s" is not installed - can't format�Feeds a page before every new gjots item�File cannot be locked�Find�Find & replace�Find string is a regular expression (see 'man 7 regex')�Find:�Format the current paragraph�Found�Global�Hide All�Hide all items except for the top level�Hide all items except the top level�How many sublevels to sort (0 for none; -1 for 'all')�Import�Import from ...�Import items from a gjots file�Internal error�Internal error!�Invoke an external editor on the current item�Line length for paragraph wrapping�Make a new item from the current selection�Match case�Merge Items�Merge current items into the first one�Merge selected items together�Move selection down�Move selection up�New Child�New Page�New _Child�New file�New...>>>�No changes to save�No child!�No parent!�Not found�Not saved.�Nothing selected�Nothing selected!�Nothing to merge�Nothing to paste�Nothing to save�Nothing to sort!�Numeric�Open file ...�Open gjots preferences window�P_romote�Page�Page feeds�Password was not confirmed�Password: �Paste�Paste selected items�Popup the find and replace dialog�Popup the sort dialog�Popup the sort text dialog�Popup the sort tree dialog�Prefs�Print�Print the current page�Print the entire gjots file�Print the gjots item titles in bold�Print the selected pages or text�Print this document�Promote�Read only�Read the online manual (using gjots)�Regular Expression�Replace�Replace All�Replace:�Replace?�S_ort Tree�Save�Save as ...�Save current work?�Save gjots document�Saved.�Search backwards�Searches entire file not just this entry�Select Font�Selection�Selection becomes a child of the previous item�Selection becomes a sibling to their parent�Show All�Show _Icon Text�Show all items below the current item�Show the related icon text�Sort�Sort Text�Sort Tree�Sort in alphabetic order�Sort in ascending order�Sort in descending order�Sort in numeric order�Split Item�Split the text selection into a new item�Status _Bar�String to replace�String to search for�Te_xt�Text Line Length: �Text copied�Text cut�Text formatter: �Text pasted�That file is already open!�To_p Toolbar�Toggle the read-only flag if possible�Toggles the main toolbar�Toggles tree tool bar�Tre_e Toolbar�Tree is empty!�Tree items pasted�Try again�Up�Use -h for help �Wrap�Wrap the current paragraph to the current line length�_Export�_External Edit�_Format�_Hide All�_Import�_Merge Items�_New Page�_Read-only�_Show All�_Sort Text�_Split Item�_Time stamp�_Tree�_get_settings: Cant find sortAscendingRadioButton�e.g. lpr: �eg. 1 for 1.2.1, a�fmt -w %d �gjots2: warning: selection list is NULL. Skipping tree selection changed event.�gjots: preferences�http://bhepple.freeshell.org/gjots2�label1�label2�overwrite %s?�print command (can be a shell expression)�text changed by external editor�text not changed by external editor�window1�xterm -e vi %s�Project-Id-Version: gjots2 2.3.4 Report-Msgid-Bugs-To: PO-Revision-Date: 2007-02-26 10:08+0100 Last-Translator: Martin Sin <martin.sin@zshk.cz> Language-Team: Czech Language: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit � Nastavení � Tisk oblasti � Příkaz tisku � Formátování tisku � Parametry třídění � Počet podúrovní �%d.%m.%Y�%d položek sloučeno�%d substitucí�%d položek stromu zkopírováno�%d položek stromu vyjmuto�%s je zamčen pid %d�%s není čitelný�do %s není možné zapisovat�%s vyžaduje python%s nebo vyšší.�%s verze %s�%s: Varování: otevření manuálu gjots2 z %s �%s: špatná specifikace rozměru: %s �%s: zamčen procesem číslo %d�%s: bez oprávnění�: Chyba�: Uložit?�: verze �Přidá čas/datum (podívejte se na nastavení)�Přidá datum/čas (podívejte se na nastavení)�Vše�Celý text vybrán�Všechny položky stromu vybrány�Abecedně�Vzestupně�Automatické číslování�Automatické formát čísel�Zpětně�Špatné heslo�Špatný regulární výraz�Tituly tučně�Nemohu smazat kořenovou položku�Nemohu pokračovat�Nemohu pokračovat�Nemohu pokračovat!�Nemohu zamknout soubor�Nemohu zamknout soubor %s: již zamčen procesem %d�Nemohu provést zamčení �Nemohu sloučit položky, které obsahují potomky�Nemohu spojit kořenové položky�Nemohu otevřít "�Nemohu spustit '%s'�Nemohu zapisovat do �Zrušit�Zvolí písmo textového panelu�Vymazat�Zavřít�Potvrdit: �Kopírovat�Zkopíruje vybrané položky�Nemohu najít program ccrypt - nainstalujte ho prosím a zkuste to znovu�Courier 10 Pitch 10�Vytvoří nového potomka�Vytvoří novou položku�Vytvoří novou stránku�Aktuální písmo textu�Vyjmout�Vyjme vybrané položky�_Snížit�Datum�Formát data:�Snížit�Sestupně�Dbát na velikost�Dolů�Upraví aktuální položku v externím editoru�Zadejte heslo pro �Exportovat�Exportuje vybrané položky do souboru gjots�Exportovat do ...�Editor�Externí editor�Externí formátovací program "%s" není nainstalován - nelze formátovat�Vyjede stránku před každou novou položkou gjots�Soubor není možné uzamknout�Najít�Najít & nahradit�Nalezne řetězec odpovídající regulárnímu výrazu ('man 7 regex')�Najít:�Naformátuje aktuální odstavec�Nalezeno�Celý�Skrýt vše�Skryje všechny položky kromě nejvyšší úrovně�Skryje všechny položky kromě položek nejvyšší úrovně�Kolik podúrovní se má třídit (0 pro žádnou; -1 pro 'všechny')�Importovat�Importovat z ...�Importuje položky ze souboru gjots�Interní chyba�Interní chyba!�Zobrazí aktuální položku v externím editoru�Délka řádku pro jeho zalomení�Z aktuálního výběru vytvoří novou položku�Porovnat velikost�Spojit položky�Spojí aktuální položky do té první�Spojí vybrané položky dohromady�Přesune výběr dolů�Přesune výběr nahoru�Nový potomek�Nová stránka�Nový _následník�Nový soubor�Nová...>>>�Žádné změny k uložení�Není potomek!�Není rodič!�Nenalezeno�Nebylo uloženo.�Nic není vybráno�Nic není vybráno!�Nic ke sloučení�Nic k vložení�Nic k uložení�Nic k setřídění!�Číselně�Otevřít soubor ...�Otevře okno s nastavením gjots�_Zvýšit�Stránka�Posun stránky�Hesla si nesouhlasí�Heslo: �Vložit�Vloží vybrané položky�Zobrazí okno najít a nahradit�Zobrazí dialog setřídit�Zobrazí dialogové okno setřídění�Zobrazí dialog setřídění�Nastavení�Tisknout�Vytiskne aktuální stránku�Vytiskne celý soubor gjots�Tučně vytiskne tituly gjots�Vytiskne vybrané stránky nebo text�Vytiskne tento dokument�Zvýšit�Pouze pro čtení�Přečte online manuál (pomocí gjots)�Regulární výraz�Nahradit�Nahradit vše�Nahradit:�Nahradit?�S_etřídit strom�Uložit�Uložit jako ...�Uložit současnou práci?�Uloží dokument gjots�Uloženo.�Hledá zpětně�Prohledá celý soubor ne pouze aktuální položku�Zvolit písmo�Výběr�Výběr se stane potomkem předchozí položky�Výběr se přesune na úroveň svého rodiče�Zobrazit vše�_Zobrazit text ikon�Zobrazí všechny položky pod aktuální zvolenou�Zobrazí ikony s textem�Setřídit�Setřídit text�Setřídit strom�Setřídí v abecedním pořadí�Setřídí v vzestupném pořadí�Setřídí v sestupném pořadí�Setřídí v číselném pořadí�Rozdělit položku�Rozdělí textový výběr do nové položky�Stavový _Pruh�Nahradit za�Hledaný výraz�Te_xt�Délka řádku s textem: �Text zkopírován�Vyjmout text�Formátovač textu: �Text vložen�Tento soubor je již otevřen!�_Horní panel�Přepne značku pouze pro čtení�Zobrazí hlavní panel nástrojů�Zobrazí stromový panel nástrojů�_Stromový panel�Strom je prázdný!�Položky stromu vloženy�Zkusit znova�Nahoru�Pro nápovědu zadejte -h �Zalomit�Nastaví zalomení řádku na zvolenou délku�_Exportovat�_Externí editor�_Formátovat�_Skrýt vše�_Importovat�S_pojit položky�Nová _stránka�_Pouze pro čtení�_Zobrazit vše�_Setřídit text�_Rozdělit položku�_Časové razítko�_Strom�_get_settings: Nemohu nalézt sortAscendingRadioButton�např. lpr: �např. 1 pro 1.2.1, a�fmt -w %d �gjots2: varování: výběr seznamu je prázdný. Přeskakuji událost změny stromu.�gjots: nastavení�http://bhepple.freeshell.org/gjots2�label1�label2�přepsat %s?�příkaz k tisku (může být příkaz shellu)�text změněn pomocí externího editoru�text nebyl změněn pomocí externího editoru�window1�xterm -e vi %s���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/de_DE.po����������������������������������������������������������������������������0000664�0000000�0000000�00000071737�14016300235�0014663�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-30 18:18+1000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/about.ui:12 #, fuzzy msgid "Copyright Bob Hepple 2002-2020" msgstr "Copyright Bob Hepple 2002-2012" #: ../ui/about.ui:13 msgid "http://bhepple.freeshell.org/gjots2" msgstr "http://bhepple.freeshell.org/gjots2" #: ../ui/about.ui:25 msgid "\n" msgstr "" #: ../ui/fileDialog.ui:69 msgid "Open file read only" msgstr "Datei im Nur-Lese-Modus öffnen" #: ../ui/fileDialog.ui:73 msgid "To open the file in read-only mode." msgstr "Auswählen, um die Datei nur lesend zu öffnen" #: ../ui/findDialog.ui:8 msgid "Find & replace" msgstr "Suchen & Ersetzen" #: ../ui/findDialog.ui:34 msgid "Find:" msgstr "Suchen:" #: ../ui/findDialog.ui:47 msgid "Replace:" msgstr "Ersetzen:" #: ../ui/findDialog.ui:64 msgid "String to search for" msgstr "Text, nach dem gesucht werden soll" #: ../ui/findDialog.ui:80 msgid "String to replace" msgstr "Ersetzungstext" #: ../ui/findDialog.ui:114 ../ui/gjots.ui:844 msgid "Find" msgstr "Suchen" #: ../ui/findDialog.ui:130 msgid "Close" msgstr "Schließen" #: ../ui/findDialog.ui:146 msgid "Replace" msgstr "Ersetzen" #: ../ui/findDialog.ui:162 msgid "Replace All" msgstr "Alles Ersetzen" #: ../ui/findDialog.ui:178 msgid "Cancel" msgstr "Abbruch" #: ../ui/findDialog.ui:197 msgid "Clear" msgstr "Löschen" #: ../ui/findDialog.ui:257 msgid "Match case" msgstr "Groß-/Kleinschreibung beachten" #: ../ui/findDialog.ui:261 msgid "Don't ignore case" msgstr "Groß-/Kleinschreibung beachten" #: ../ui/findDialog.ui:271 msgid "Regular Expression" msgstr "Regulärer Ausdruck" #: ../ui/findDialog.ui:275 msgid "Find string is a regular expression (see 'man 7 regex')" msgstr "Suchtext ist ein regulärer Ausdruck (siehe 'man 7 regex')" #: ../ui/findDialog.ui:287 msgid "Backwards" msgstr "Rückwärts suchen" #: ../ui/findDialog.ui:291 msgid "Search backwards" msgstr "Rückwärts suchen" #: ../ui/findDialog.ui:306 msgid "Global" msgstr "Über alles suchen" #: ../ui/findDialog.ui:310 msgid "Searches entire file not just this entry" msgstr "Sucht in der gesamten Datei, nicht nur auf der aktuellen Seite" #: ../ui/findDialog.ui:327 msgid " Options " msgstr "Einstellungen" #: ../ui/fontDialog.ui:9 msgid "Select Font" msgstr "Schrift auswählen" #: ../ui/generalDialog.ui:9 msgid "window1" msgstr "Fenster1" #: ../ui/generalDialog.ui:22 ../ui/generalDialog.ui:60 #: ../ui/generalDialog.ui:115 msgid "label1" msgstr "Marke1" #: ../ui/generalDialog.ui:46 msgid "label2" msgstr "Marke2" #: ../ui/generalDialog.ui:193 msgid "Try again" msgstr "Nochmal versuchen" #: ../ui/generalDialog.ui:209 msgid "Read only" msgstr "Nur lesen" #: ../ui/gjots.ui:24 msgid "_File" msgstr "_Datei" #: ../ui/gjots.ui:88 msgid "_Import" msgstr "_Importieren" #: ../ui/gjots.ui:91 msgid "Import items from a gjots file" msgstr "Importiere Seiten aus gjots Datei" #: ../ui/gjots.ui:99 msgid "_Export" msgstr "_Exportieren" #: ../ui/gjots.ui:102 msgid "Export selected items to a gjots file" msgstr "Exportiere ausgewählte Seiten in gjots Datei" #: ../ui/gjots.ui:135 msgid "Toggle the read-only flag if possible" msgstr "Wenn möglich in den Nur-Lese-Modus wechseln" #: ../ui/gjots.ui:136 msgid "_Read-only" msgstr "_Lesemodus" #: ../ui/gjots.ui:152 #, fuzzy msgid "Exit gjots2" msgstr "gjots beenden" #: ../ui/gjots.ui:167 msgid "_Edit" msgstr "_Bearbeiten" #: ../ui/gjots.ui:263 msgid "Find Next" msgstr "Weiter suchen" #: ../ui/gjots.ui:273 msgid "Find Previous" msgstr "Rückwärts suchen" #: ../ui/gjots.ui:299 msgid "_View" msgstr "_Ansehen" #: ../ui/gjots.ui:307 msgid "_Show All" msgstr "Seiten _anzeigen" #: ../ui/gjots.ui:310 ../ui/gjots.ui:1085 msgid "Show all items below the current item" msgstr "Zeige alle Seiten unterhalb der aktuellen Seite an" #: ../ui/gjots.ui:318 msgid "_Hide All" msgstr "Seiten _verbergen" #: ../ui/gjots.ui:321 msgid "Hide all items except the top level" msgstr "Verberge alle Seiten mit Ausnahme des obersten Seite" #: ../ui/gjots.ui:337 msgid "Toggles the main toolbar" msgstr "Hauptsymbolleiste ein-/ausschalten" #: ../ui/gjots.ui:338 msgid "To_p Toolbar" msgstr "_Hauptsymbolleiste" #: ../ui/gjots.ui:347 msgid "Toggles tree tool bar" msgstr "Baumsymbolleiste ein-/ausschalten" #: ../ui/gjots.ui:348 msgid "Tre_e Toolbar" msgstr "_Baumsymbolleiste" #: ../ui/gjots.ui:357 msgid "Show the related icon text" msgstr "Text unter Symbolen anzeigen" #: ../ui/gjots.ui:358 msgid "Show _Icon Text" msgstr "Text unter Symbolen" #: ../ui/gjots.ui:367 msgid "Status _Bar" msgstr "_Statusleiste" #: ../ui/gjots.ui:380 msgid "_Tree" msgstr "_Baum" #: ../ui/gjots.ui:388 msgid "_New Page" msgstr "_Neue Seite" #: ../ui/gjots.ui:391 msgid "Create a new page" msgstr "Erzeuge eine neue Seite" #: ../ui/gjots.ui:400 msgid "New _Child" msgstr "Neue _Unterseite" #: ../ui/gjots.ui:403 ../ui/gjots.ui:920 msgid "Create a new child" msgstr "Eine neue Unterseite erzeugen" #: ../ui/gjots.ui:420 ../ui/gjots.ui:950 msgid "Move selection up" msgstr "Auswählte Seiten nach oben schieben" #: ../ui/gjots.ui:431 ../ui/gjots.ui:965 msgid "Move selection down" msgstr "Ausgewählte Seiten noch unten schieben" #: ../ui/gjots.ui:439 msgid "P_romote" msgstr "Eine Ebene höher" #: ../ui/gjots.ui:442 ../ui/gjots.ui:980 msgid "Selection becomes a sibling to their parent" msgstr "Ausgewählte Seiten auf die Ebene der Elternseite verschieben" #: ../ui/gjots.ui:450 msgid "D_emote" msgstr "In _Unterebene verschieben" #: ../ui/gjots.ui:453 ../ui/gjots.ui:995 msgid "Selection becomes a child of the previous item" msgstr "" "Ausgewählte Seiten werden zu Unterseiten der darüber befindlichen Seite" #: ../ui/gjots.ui:467 msgid "_Split Item" msgstr "Seite _aufteilen" #: ../ui/gjots.ui:470 msgid "Make a new item from the current selection" msgstr "Neue Seite aus der aktuellen Auswahl erstellen" #: ../ui/gjots.ui:478 msgid "_Merge Items" msgstr "Seiten verbinden" #: ../ui/gjots.ui:481 msgid "Merge current items into the first one" msgstr "Ausgewählte Seiten mit der ersten ausgewählten Seite verbinden" #: ../ui/gjots.ui:489 msgid "S_ort Tree" msgstr "Baum _sortieren" #: ../ui/gjots.ui:492 ../ui/gjots.ui:1100 msgid "Popup the sort tree dialog" msgstr "Dialog zur Sortierung des Baums öffnen" #: ../ui/gjots.ui:506 msgid "Te_xt" msgstr "Te_xt" #: ../ui/gjots.ui:514 msgid "_Format" msgstr "_Format" #: ../ui/gjots.ui:517 msgid "Format the current paragraph" msgstr "Formatiere Absatz" #: ../ui/gjots.ui:526 msgid "_Time stamp" msgstr "_Zeitstempel" #: ../ui/gjots.ui:529 msgid "Add a time/date stamp (see preferences)" msgstr "Zeitstempel einfügen (siehe Einstellungen)" #: ../ui/gjots.ui:538 msgid "_External Edit" msgstr "Im _Editor aufrufen" #: ../ui/gjots.ui:541 msgid "Edit current item in an external editor" msgstr "Inhalt der aktuellen Seite im einem externen Editor aufrufen" #: ../ui/gjots.ui:549 msgid "_Sort Text" msgstr "_Sortiere Text" #: ../ui/gjots.ui:552 msgid "Popup the sort text dialog" msgstr "Dialog zur Sortierung des Textes aufrufen" #: ../ui/gjots.ui:566 msgid "_Help" msgstr "_Hilfe" #: ../ui/gjots.ui:574 msgid "_Read Manual" msgstr "_Anleitung lesen" #: ../ui/gjots.ui:577 msgid "Read the online manual (using gjots)" msgstr "Die Anleitung mit gjots lesen" #: ../ui/gjots.ui:621 msgid "Popup the 'Find'menu" msgstr "" #: ../ui/gjots.ui:651 #, fuzzy msgid "Find the previous occurance" msgstr "Rückwärts suchen" #: ../ui/gjots.ui:667 msgid "Find the next occurance" msgstr "" #: ../ui/gjots.ui:693 msgid "Save gjots document" msgstr "gjots Dokument speichern" #: ../ui/gjots.ui:694 msgid "Save" msgstr "Speichern" #: ../ui/gjots.ui:708 msgid "Print this document" msgstr "Dokument drucken" #: ../ui/gjots.ui:709 ../ui/printDialog.ui:8 msgid "Print" msgstr "Drucken" #: ../ui/gjots.ui:738 msgid "Cut selected items" msgstr "Ausgewählte Seiten ausschneiden" #: ../ui/gjots.ui:739 msgid "Cut" msgstr "Ausschneiden" #: ../ui/gjots.ui:753 msgid "Copy selected items" msgstr "Ausgewählte Seiten kopieren" #: ../ui/gjots.ui:754 msgid "Copy" msgstr "Kopieren" #: ../ui/gjots.ui:768 msgid "Paste selected items" msgstr "Ausgewählte Seiten einfügen" #: ../ui/gjots.ui:769 msgid "Paste" msgstr "Einfügen" #: ../ui/gjots.ui:798 msgid "Wrap the current paragraph to the current line length" msgstr "Absatz auf Zeilenbreite umbrechen" #: ../ui/gjots.ui:799 msgid "Wrap" msgstr "Umbrechen" #: ../ui/gjots.ui:813 msgid "Invoke an external editor on the current item" msgstr "Externen Editor mit Inhalt der Seite öffnen" #: ../ui/gjots.ui:814 msgid "Ext.Ed." msgstr "Ext. Ed." #: ../ui/gjots.ui:828 msgid "Add a time/date stamp (see prefs)" msgstr "Zeit/Datum einfügen (siehe Einstellungen)" #: ../ui/gjots.ui:829 msgid "Date" msgstr "Datum" #: ../ui/gjots.ui:843 msgid "Popup the find and replace dialog" msgstr "Dialog zum Suchen und Ersetzen öffnen" #: ../ui/gjots.ui:858 msgid "Popup the sort dialog" msgstr "Dialog zum Sortieren öffnen" #: ../ui/gjots.ui:859 ../ui/sortDialog.ui:15 msgid "Sort" msgstr "Sortieren" #: ../ui/gjots.ui:873 msgid "Open gjots preferences window" msgstr "Einstellungsdialog öffnen" #: ../ui/gjots.ui:874 msgid "Prefs" msgstr "Einstellungen" #: ../ui/gjots.ui:905 msgid "Create a new item" msgstr "Eine neue Seite erzeugen" #: ../ui/gjots.ui:906 ../ui/treeContextMenu.ui:45 msgid "New Page" msgstr "Neue Seite" #: ../ui/gjots.ui:921 ../ui/treeContextMenu.ui:52 msgid "New Child" msgstr "Neue Unterseite" #: ../ui/gjots.ui:951 msgid "Up" msgstr "Hoch" #: ../ui/gjots.ui:966 msgid "Down" msgstr "Runter" #: ../ui/gjots.ui:981 ../ui/treeContextMenu.ui:74 msgid "Promote" msgstr "Eine Ebene höher" #: ../ui/gjots.ui:996 ../ui/treeContextMenu.ui:82 msgid "Demote" msgstr "In Unterebene verschieben" #: ../ui/gjots.ui:1025 msgid "Split the text selection into a new item" msgstr "Textauswahl in zwei neue Seiten aufteilen" #: ../ui/gjots.ui:1026 msgid "Split Item" msgstr "Seite aufteilen" #: ../ui/gjots.ui:1040 msgid "Merge selected items together" msgstr "Ausgewählte Seiten verbinden" #: ../ui/gjots.ui:1041 ../ui/treeContextMenu.ui:89 msgid "Merge Items" msgstr "Seiten verbinden" #: ../ui/gjots.ui:1070 msgid "Hide all items except for the top level" msgstr "Verberge alle Seiten mit Ausnahme der obersten Seite" #: ../ui/gjots.ui:1071 ../ui/treeContextMenu.ui:103 msgid "Hide All" msgstr "Alle Seiten verbergen" #: ../ui/gjots.ui:1086 ../ui/treeContextMenu.ui:96 msgid "Show All" msgstr "Alle Seiten zeigen" #: ../ui/gjots.ui:1101 ../ui/treeContextMenu.ui:110 ../lib/sortDialog.py:394 msgid "Sort Tree" msgstr "Baum sortieren" #: ../ui/prefsDialog.ui:20 msgid "gjots: preferences" msgstr "gjots: Einstellungen" #: ../ui/prefsDialog.ui:49 msgid "Choose a font for the text panel" msgstr "Wähle eine Schrift für die Texteingabe" #: ../ui/prefsDialog.ui:65 msgid "Date format:" msgstr "Datumsformat:" #: ../ui/prefsDialog.ui:79 #, fuzzy msgid "Format for the timestamp function (see strftime(3)) eg %F" msgstr "Format für einen Zeitstempel (siehe strftime(3))" #: ../ui/prefsDialog.ui:80 msgid "%F" msgstr "%F" #: ../ui/prefsDialog.ui:99 #, fuzzy msgid "" "External program to edit a page (%s is replaced by the name of the temporary " "edit file) eg xterm -e vi %s" msgstr "" "Externes Programm, um eine Seite zu editieren (%s wird durch den Namen der " "temporären Datei ersetzt)." #: ../ui/prefsDialog.ui:100 msgid "xterm -e vi %s" msgstr "xterm -e vi %s" #: ../ui/prefsDialog.ui:120 msgid "External editor" msgstr "Externer Editor" #: ../ui/prefsDialog.ui:135 msgid "Text Line Length: " msgstr "Zeilenlänge:" #: ../ui/prefsDialog.ui:149 msgid "Line length for paragraph wrapping" msgstr "Zeilenlänge beim Umbruch eines Absatzes" #: ../ui/prefsDialog.ui:172 msgid "Text formatter: " msgstr "Textformatierer:" #: ../ui/prefsDialog.ui:184 #, fuzzy msgid "" "External program to pipe text for formatting (%d is replaced by the current " "line width) eg fmt -w %d " msgstr "" "Externes Programm an das der Text über stdin zur Formatierung übergeben wird " "(%d wird durch die Zeilenlänge ersetzt)." #: ../ui/prefsDialog.ui:185 msgid "fmt -w %d " msgstr "fmt -w %d " #: ../ui/prefsDialog.ui:202 msgid "Current text font" msgstr "Zur Zeit ausgewählte Schrift" #: ../ui/prefsDialog.ui:204 msgid "Courier 10 Pitch 10" msgstr "Courier 10 Pitch 10" #: ../ui/prefsDialog.ui:224 msgid "AutoSave interval:" msgstr "" #: ../ui/prefsDialog.ui:238 msgid "Seconds of inactivity to trigger an AutoSave (0 = no AutoSave)" msgstr "" #: ../ui/printDialog.ui:38 msgid "e.g. lpr: " msgstr "z.B. lpr: " #: ../ui/printDialog.ui:54 msgid "print command (can be a shell expression)" msgstr "Druckkommando (kann eine Anweisung in der Shell sein)" #: ../ui/printDialog.ui:76 msgid " Print command " msgstr "Druckkommando" #: ../ui/printDialog.ui:104 msgid "Page" msgstr "Seite" #: ../ui/printDialog.ui:108 msgid "Print the current page" msgstr "Aktuelle Seite drucken" #: ../ui/printDialog.ui:120 msgid "Selection" msgstr "Auswahl" #: ../ui/printDialog.ui:124 msgid "Print the selected pages or text" msgstr "Ausgewählte Seiten oder Text drucken" #: ../ui/printDialog.ui:137 msgid "All" msgstr "Alles" #: ../ui/printDialog.ui:141 msgid "Print the entire gjots file" msgstr "Die gesamte Datei drucken" #: ../ui/printDialog.ui:160 msgid " Print Range " msgstr "Druckbereich" #: ../ui/printDialog.ui:193 msgid "Page feeds" msgstr "Seitenumbruch" #: ../ui/printDialog.ui:197 msgid "Feeds a page before every new gjots item" msgstr "Seitenumbruch vor jeder neuen Seite einfügen" #: ../ui/printDialog.ui:209 msgid "Bold titles" msgstr "Fette Titel" #: ../ui/printDialog.ui:212 msgid "Print the gjots item titles in bold" msgstr "Drucke die Titel in Fettschrift" #: ../ui/printDialog.ui:224 msgid "Auto Number" msgstr "Auto. nummerieren" #: ../ui/printDialog.ui:251 msgid "Auto-number format: " msgstr "Format der Numerierung" #: ../ui/printDialog.ui:262 msgid "eg. 1 for 1.2.1, a" msgstr "z.B. 1 für 1.2.1, a" #: ../ui/printDialog.ui:289 msgid " Print formatting " msgstr "Druckformatierung" #: ../ui/sortDialog.ui:43 msgid "Ascending" msgstr "Aufsteigend" #: ../ui/sortDialog.ui:47 msgid "Sort in ascending order" msgstr "Sortiere aufsteigend" #: ../ui/sortDialog.ui:58 msgid "Descending" msgstr "Absteigend" #: ../ui/sortDialog.ui:62 msgid "Sort in descending order" msgstr "Sortiere absteigend" #: ../ui/sortDialog.ui:76 msgid "Alphabetic" msgstr "Alphabetisch" #: ../ui/sortDialog.ui:80 msgid "Sort in alphabetic order" msgstr "Sortiere alphabetisch" #: ../ui/sortDialog.ui:93 msgid "Numeric" msgstr "Nummerisch" #: ../ui/sortDialog.ui:97 msgid "Sort in numeric order" msgstr "Sortiere nummerisch" #: ../ui/sortDialog.ui:119 msgid " Sort Parameters " msgstr "Sortiereinstellungen" #: ../ui/sortDialog.ui:149 msgid "How many sublevels to sort (0 for none; -1 for 'all')" msgstr "" "Zahl der Unterebenen, die sortiert werden sollen (0 für keine, -1 für ale)" #: ../ui/sortDialog.ui:171 msgid " Sort Sublevels " msgstr "Unterebenen sortieren" #: ../ui/treeContextMenu.ui:30 msgid "Select _All" msgstr "_Alles auswählen" #: ../ui/treeContextMenu.ui:117 msgid "Import" msgstr "Importieren" #: ../ui/treeContextMenu.ui:124 msgid "Export" msgstr "Exportieren" #: ../gjots2:23 #, fuzzy msgid "" "Usage: gjots [OPTIONS] [FILENAME]\n" "A gtk/X11 jotter\n" "\n" "OPTIONS:\n" "-h, --help: this help\n" "-d, --debug: debug to stdout\n" "-t, --trace: trace lines as they execute\n" "-g 123x456, --geometry=123x456: initial geometry (X x Y)\n" "-p, --purge-password don't remember password\n" "-r, --readonly: no editing (or locking)\n" "-V, --version: print the version and exit\n" "\n" "FILENAME:\n" " gjots data filename (default is $HOME/.gjotsfile)\n" msgstr "" "Aufruf: gjots [OPTIONEN] [DATEINAME]\n" "Ein gnome-2/X11 jotter\n" "\n" "OPTIONEN:\n" "-h, --help: diese Hilfe\n" "-d, --debug: Debug-Information auf stdout ausgeben\n" "-t, --trace: trace lines as they execute\n" "-g 123x456, --geometry=123x456: initial Fenstergröße (X x Y)\n" "-p, --purge-password\t\t\t\tPaßwort nicht merken\n" "-r, --readonly: im Nur-Lese-Modus öffnen\n" "-V, --version: Version ausgeben und Programm beenden\n" "\n" "DATEINAME:\n" "\tgjots Datei (Voreingestellt ist $HOME/.gjotsfile)\n" #: ../gjots2:89 #, python-format msgid "%s requires python%s or higher." msgstr "%s benötigt python%s or besser." #: ../gjots2:102 msgid "Use -h for help\n" msgstr "Verwende -h für Hilfe\n" #: ../gjots2:116 #, python-format msgid "%s version %s" msgstr "%s Version %s" #: ../lib/gui.py:51 ../lib/gui.py:996 msgid "Text pasted" msgstr "Text eingefügt" #: ../lib/gui.py:179 #, python-format msgid "External formatter \"%s\" is not installed - can't format" msgstr "" "Externer Textformatierer \"%s\" ist nicht installiert - Formatierung nicht " "möglich" #: ../lib/gui.py:564 ../lib/gui.py:675 ../lib/gui.py:679 ../lib/gui.py:745 #: ../lib/gui.py:749 ../lib/gui.py:812 ../lib/gui.py:817 ../lib/gui.py:1043 #: ../lib/gui.py:1052 ../lib/gui.py:1138 ../lib/gui.py:1147 ../lib/gui.py:1183 #: ../lib/gui.py:1188 ../lib/gui.py:1219 ../lib/gui.py:1608 ../lib/gui.py:2382 #: ../lib/gui.py:2401 ../lib/gui.py:2430 ../lib/gui.py:2461 ../lib/file.py:466 #: ../lib/file.py:471 ../lib/sortDialog.py:329 ../lib/sortDialog.py:334 #: ../lib/printDialog.py:110 ../lib/printDialog.py:115 msgid "Nothing selected" msgstr "Nichts ausgewählt" #: ../lib/gui.py:568 ../lib/gui.py:684 ../lib/gui.py:753 ../lib/gui.py:822 #: ../lib/gui.py:934 ../lib/gui.py:1224 ../lib/gui.py:2386 #: ../lib/sortDialog.py:345 msgid "No parent!" msgstr "Keine Elternseite!" #: ../lib/gui.py:572 ../lib/gui.py:719 msgid "No child!" msgstr "Keine Unterseite!" #: ../lib/gui.py:580 ../lib/gui.py:693 msgid "Can't go any further" msgstr "Ende erreicht" #: ../lib/gui.py:616 ../lib/gui.py:840 msgid "Internal error!" msgstr "Interner Fehler!" #: ../lib/gui.py:757 msgid "Can't go further!" msgstr "Ende erreicht!" #: ../lib/gui.py:973 msgid "Text cut" msgstr "Text ausgeschnitten" #: ../lib/gui.py:984 msgid "Text copied" msgstr "Text kopiert" #: ../lib/gui.py:1005 msgid "All text selected" msgstr "Gesamter Text ausgewählt" #: ../lib/gui.py:1015 msgid "All tree items selected" msgstr "Alle Seiten ausgewählt" #: ../lib/gui.py:1023 msgid "Nothing selected!" msgstr "Nichts ausgewählt!" #: ../lib/gui.py:1047 msgid "Can't merge the root item" msgstr "Kann die oberste Seite nicht verbinden" #: ../lib/gui.py:1056 msgid "Nothing to merge" msgstr "Nichts zu verbinden" #: ../lib/gui.py:1063 msgid "Can't merge items that have children" msgstr "Kann Seiten mit Unterseiten nicht verbinden" #: ../lib/gui.py:1093 #, python-format msgid "%d items merged" msgstr "%d Seiten verbunden" #: ../lib/gui.py:1142 msgid "Can't delete the root item" msgstr "Kann die oberste Seite nicht löschen" #: ../lib/gui.py:1175 #, python-format msgid "%d tree items cut" msgstr "%d Seiten ausgeschnitten" #: ../lib/gui.py:1205 #, python-format msgid "%d tree items copied" msgstr "%d Seiten kopiert" #: ../lib/gui.py:1214 msgid "Nothing to paste" msgstr "Nichts zum einfügen" #: ../lib/gui.py:1237 msgid "Tree items pasted" msgstr "Seiten eingefügt" #: ../lib/gui.py:1258 #, fuzzy msgid "Can't write tempfile" msgstr "Schreiben nicht möglich" #: ../lib/gui.py:1278 #, python-format msgid "Can't run '%s'" msgstr "Kann '%s' nicht ausführen" #: ../lib/gui.py:1287 #, fuzzy msgid "Can't read tempfile " msgstr "Lesen nicht möglich" #: ../lib/gui.py:1293 msgid "text changed by external editor" msgstr "Text in externen Editor verändert" #: ../lib/gui.py:1295 msgid "text not changed by external editor" msgstr "Text in externen Editor nicht verändert" #: ../lib/gui.py:1314 msgid ": Error" msgstr ": Fehler" #: ../lib/gui.py:1327 #, python-format msgid "Can't lock file %s: already locked by process %d" msgstr "" "Kann Datei %s nicht blockieren. Sie wurde bereits durch den Prozess %d " "blockiert." #: ../lib/gui.py:1510 msgid ": Save?" msgstr ": Speichern?" #: ../lib/gui.py:1511 msgid "Save current work?" msgstr "Aktuellen Stand speichern?" #: ../lib/gui.py:1532 msgid "New file" msgstr "Neue Datei" #: ../lib/gui.py:1556 msgid "Open file ..." msgstr "Datei öffnen ..." #: ../lib/gui.py:1568 msgid "No changes to save" msgstr "Keine Änderungen vorgenommen" #: ../lib/gui.py:1572 ../lib/gui.py:1593 msgid "Saved." msgstr "Gespeichert." #: ../lib/gui.py:1574 ../lib/gui.py:1595 ../lib/file.py:456 msgid "Not saved." msgstr "Nicht gespeichert." #: ../lib/gui.py:1589 msgid "Nothing to save" msgstr "Speichern nicht notwendig" #: ../lib/gui.py:1591 ../lib/file.py:693 msgid "Save as ..." msgstr "Speichern als ..." #: ../lib/gui.py:1605 msgid "Import from ..." msgstr "Importiere ..." #: ../lib/gui.py:1616 msgid "Export to ..." msgstr "Exportiere ..." #: ../lib/gui.py:1930 ../lib/gui.py:1933 #, python-format msgid "%s: Warning: opening gjots2 manual from %s\n" msgstr "%s: Warnung: Öffne gjots2-Handbuch von %s\n" #: ../lib/gui.py:2317 msgid "" "gjots2: warning: selection list is NULL. Skipping tree selection changed \n" "event." msgstr "gjots2: Warnung: Auswahlliste ist leer. Keine Aktion ausgeführt" #: ../lib/gui.py:2390 msgid "Can't go further" msgstr "Ende erreicht" #: ../lib/gui.py:2419 msgid "Tree is empty!" msgstr "Baum ist leer!" #: ../lib/gui.py:2716 msgid "Bad regular expression" msgstr "Fehlerhafter regulärer Ausdruck" #: ../lib/gui.py:2808 #, python-format msgid "%s: bad geometry specification: %s\n" msgstr "%s: fehlerhafte Angabe der Fenstergröße: %s\n" #: ../lib/gui.py:2899 msgid "New...>>>" msgstr "Neu ...>>>" #: ../lib/gui.py:2936 msgid "Install gtksourceview to enable undo/redo" msgstr "" #: ../lib/gui.py:3102 msgid ": version " msgstr ": Version " #: ../lib/find.py:70 ../lib/find.py:93 msgid "Not found" msgstr "Nicht gefunden" #: ../lib/find.py:72 msgid "Found" msgstr "Gefunden" #: ../lib/find.py:96 msgid "Replace?" msgstr "Ersetzen?" #: ../lib/find.py:113 #, python-format msgid "%d substitutions" msgstr "%d Ersetzungen" #: ../lib/file.py:255 msgid "Enter password for " msgstr "Paßwort eingeben für " #: ../lib/file.py:257 #, fuzzy msgid ": Enter Password" msgstr "gjots2: Paßwort eingeben" #: ../lib/file.py:259 msgid "Password: " msgstr "Paßwort: " #: ../lib/file.py:260 msgid "Confirm: " msgstr "Bestätigen: " #: ../lib/file.py:268 msgid "Password was not confirmed" msgstr "Paßwort wurde nicht korrekt bestätigt" #: ../lib/file.py:275 msgid "Could not find the ccrypt program - please install it and try again" msgstr "" "Konnte das Programm 'ccrypt' nicht finden - Bitte installieren Sie es und " "probieren Sie es erneut." #: ../lib/file.py:308 msgid "" "Neither gpg2 nor gpg are available - please install one (perhaps package " "gnupg2) and try again" msgstr "" #: ../lib/file.py:328 #, fuzzy msgid "No openssl program - please install it and try again" msgstr "" "Konnte das Programm 'openssl' nicht finden - Bitte installieren Sie es und " "probieren Sie es erneut." #: ../lib/file.py:354 #, fuzzy msgid "No org2gjots program - please install it and try again" msgstr "" "Konnte das Programm 'openssl' nicht finden - Bitte installieren Sie es und " "probieren Sie es erneut." #: ../lib/file.py:412 msgid "Can't open \"" msgstr "Kann nicht öffnen \"" #: ../lib/file.py:415 msgid "Bad password" msgstr "Falsches Paßwort" #: ../lib/file.py:418 msgid "File cannot be locked" msgstr "Datei kann nicht blockiert werden" #: ../lib/file.py:431 ../lib/file.py:489 msgid "failed!" msgstr "" #: ../lib/file.py:457 msgid "Can't write to " msgstr "Kann nicht schreiben in " #: ../lib/file.py:460 msgid "Can't lock file" msgstr "Kann Datei nicht blockieren" #: ../lib/file.py:597 #, python-format msgid "%s is not readable" msgstr "%s ist nicht lesbar" #: ../lib/file.py:613 #, python-format msgid "%s: no permission" msgstr "%s: keine Berechtigung" #: ../lib/file.py:615 #, python-format msgid "%s: locked by process number %d" msgstr "%s: blockiert durch Prozess mit der Nummer %d" #: ../lib/file.py:617 #, fuzzy msgid ": can't lock file." msgstr "gjots2: kann Datei nicht blockieren" #: ../lib/file.py:705 msgid "That file is already open!" msgstr "Die Datei ist bereits geöffnet!" #: ../lib/file.py:713 ../lib/file.py:787 #, fuzzy msgid ": file has changed" msgstr "gjots2: %s wurde verändert" #: ../lib/file.py:714 #, fuzzy, python-format msgid "File changed since it was read - copied to %s " msgstr "" "'%s' wurde seit dem Öffnen verändert.\n" "Trotzdem überschreiben?" #: ../lib/file.py:731 #, python-format msgid "%s is locked by pid %d" msgstr "%s is blockiert durch PID %d" #: ../lib/file.py:735 msgid "Can't make a lockfile in " msgstr "" #: ../lib/file.py:748 #, python-format msgid "%s is not writable" msgstr "%s ist nicht schreibbar" #: ../lib/file.py:751 #, fuzzy, python-format msgid ": %s already exists." msgstr "gjots2: %s existiert bereits." #: ../lib/file.py:752 #, python-format msgid "overwrite %s?" msgstr "%s Überschreiben?" #: ../lib/file.py:788 #, python-format msgid "File changed since it was read - so it was copied to %s " msgstr "" #: ../lib/sortDialog.py:125 msgid "_get_settings: Cant find sortAscendingRadioButton" msgstr "" #: ../lib/sortDialog.py:165 msgid "Internal error" msgstr "Interner Fehler" #: ../lib/sortDialog.py:303 msgid "Nothing to sort!" msgstr "Nichts zu sortieren!" #: ../lib/sortDialog.py:398 msgid "Sort Text" msgstr "Sortiere Text" #, fuzzy #~ msgid "" #~ "Rui Nibau (fr) <rui.nibau@omacronides.com>\n" #~ "Robert Emil Berge (no, nb) <filoktetes@linuxophic.org>\n" #~ "Сергей Безденежных (Sergey Bezdenezhnyh) (ru) <sib-mail@mtu-net.ru>\n" #~ "Raimondo Giammanco (it) <rongten@member.fsf.org>\n" #~ "Martin Sin (cs) <martin.sin@zshk.cz>\n" #~ "Cecilio Salmeron (es) <s.cecilio@gmail.com>\n" #~ "Aleksa Šušulić (sl) <susulic@gmail.com>\n" #~ "Uwe Steinmann (de) <uwe@steinmann.cx>\n" #~ "曹晉維 (Michael Tsao) (zh_TW) <cwtsao@sce.pccu.edu.tw>\n" #~ msgstr "" #~ "Rui Nibau (fr) <rui.nibau@omacronides.com>\n" #~ "Robert Emil Berge (no, nb) <filoktetes@linuxophic.org>\n" #~ "Sergey Bezdenezhnyh (ru) <sib-mail@mtu-net.ru>\n" #~ "Raimondo Giammanco (it) <rongten@member.fsf.org>\n" #~ "Martin Sin (cs) <martin.sin@zshk.cz>\n" #~ "Cecilio Salmeron (es) <s.cecilio@gmail.com>\n" #~ "Aleksa Šušulić (sl) <susulic@gmail.com>\n" #~ msgid "Recent" #~ msgstr "Zuletzt geöffnet" #, fuzzy #~ msgid "Exit gjots" #~ msgstr "gjots beenden" #~ msgid "Create a new child " #~ msgstr "Neue Unterseite erzeugen" #, fuzzy #~ msgid "About gjots2" #~ msgstr "gjots beenden" #, fuzzy #~ msgid " Find: " #~ msgstr " Suchen:" #, python-format #~ msgid "%s requires pygtk-%s.\n" #~ msgstr "%s benötigt pygtk-%s.\n" #~ msgid "not initialised" #~ msgstr "nicht initialisiert" #, fuzzy #~ msgid "" #~ "Rui Nibau (fr) <rui.nibau@omacronides.com>\n" #~ "Robert Emil Berge (no, nb) <filoktetes@linuxophic.org>\n" #~ "Sergey Bezdenezhnyh (ru) <sib-mail@mtu-net.ru>\n" #~ "Raimondo Giammanco (it) <rongten@member.fsf.org>\n" #~ "Martin Sin (cs) <martin.sin@zshk.cz>\n" #~ "Cecilio Salmeron (es) <s.cecilio@gmail.com>\n" #~ "Aleksa Šušulić (sl) <susulic@gmail.com>\n" #~ "Uwe Steinmann (de) <uwe@steinmann.cx>\n" #~ "Morgan Antonsson (sv) <morgan.antonsson@gmail.com>" #~ msgstr "" #~ "Rui Nibau (fr) <rui.nibau@omacronides.com>\n" #~ "Robert Emil Berge (no, nb) <filoktetes@linuxophic.org>\n" #~ "Sergey Bezdenezhnyh (ru) <sib-mail@mtu-net.ru>\n" #~ "Raimondo Giammanco (it) <rongten@member.fsf.org>\n" #~ "Martin Sin (cs) <martin.sin@zshk.cz>\n" #~ "Cecilio Salmeron (es) <s.cecilio@gmail.com>\n" #~ "Aleksa Šušulić (sl) <susulic@gmail.com>\n" #~ msgid "pygtk-2.2 is required for this application!" #~ msgstr "pygtk-2.2 ist für diese Anwendung notwendig!" #~ msgid "%s: Warning: running modules from %s\n" #~ msgstr "%s: Warning: Auführung der Module von %s\n" #, fuzzy #~ msgid "" #~ "Rui Nibau (fr) <rui.nibau@omacronides.com>\n" #~ "Robert Emil Berge (no, nb) <filoktetes@linuxophic.org>\n" #~ "Sergey Bezdenezhnyh (ru) <sib-mail@mtu-net.ru>\n" #~ "Raimondo Giammanco (it) <rongten@member.fsf.org>\n" #~ "Martin Sin (cs) <martin.sin@zshk.cz>\n" #~ "Cecilio Salmeron (es) <s.cecilio@gmail.com>\n" #~ "Aleksa Šušulić (sl) <susulic@gmail.com>\n" #~ "Uwe Steinmann (de) <uwe@steinmann.cx>" #~ msgstr "" #~ "Rui Nibau (fr) <rui.nibau@omacronides.com>\n" #~ "Robert Emil Berge (no, nb) <filoktetes@linuxophic.org>\n" #~ "Sergey Bezdenezhnyh (ru) <sib-mail@mtu-net.ru>\n" #~ "Raimondo Giammanco (it) <rongten@member.fsf.org>\n" #~ "Martin Sin (cs) <martin.sin@zshk.cz>\n" #~ "Cecilio Salmeron (es) <s.cecilio@gmail.com>\n" #~ "Aleksa Šušulić (sl) <susulic@gmail.com>\n" #~ msgid "Could not find the gpg program - please install it and try again" #~ msgstr "" #~ "Konnte das Programm 'gpg' nicht finden - Bitte installieren Sie es und " #~ "probieren Sie es erneut." ���������������������������������gjots2-3.1.9/po/de_DE/������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0014304�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/de_DE/LC_MESSAGES/������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0016071�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/de_DE/LC_MESSAGES/gjots2.mo���������������������������������������������������������0000664�0000000�0000000�00000035505�14016300235�0017646�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������l��9���������� ����� �������������������������������������������#�����8�����J�����a�����t������� �����+�����#�������������%�����7�����?�� ���G��'���R��!���z����������������� ����� ����� ���������� ������ ��� ������� ���.�����:�����U�����j�����{�������0�����$���������� ��� ����������)�����9�� ���@�����a�����g�� ���m�����w�����|��C����������������������� ����������1�����5�����H�����P�� ���U�����b�� ���i�����t�������'���������������%����� ������������� ��7�����(���R�����{������������ ����� �����7����������������������������%��'���.��#���V��5���z���������������������������-�����"���3��*���V�� ����� �����&�������������������� �������� �� ��������!�� ���*�����4�� ���G�� ���Q�� ���\�� ���f�����q�������������������������������� �����������������������(�� ���-�����8�� ���S�����^�����d��!���y����������������������������������� ��#���&�� ���J�����k������� �����$��������������� ��������������� ���������� �������� ����������2�����9��(���J�� ���s�� ����� �����.�����+���������������%��� �����/ �����J �� ���O �� ���Y �����c �����| ����� ����� �� ��� ��(��� �� ��� �����!�����!�����*!�����0!�� ���C!�����O!�����X!�� ���i!�����u!��#���!�� ���!��%���!�����!������"�� ���"�����$"�����3"�� ���E"�����O"�����R"�����c"��5���h"�����"�����"�����"�����"�����"�����"�� ���"�����"�� ���"�� ���"�� ���"�� ���#�� ���#�� ���#�� ���%#�� ���1#�����=#�����C#�� ���I#�����T#�� ���g#��P���r#�����#��#���#�����#�����$�� ���$��)���$�����@$��#���`$�����$�����$����$�� ���%�� ���%�� ���%�����%�����%�����&�����&�����&�����0&�����?&�����Q&�����j&�����&�����&�� ���&�� ���&��+���&��.���'��-���='�����k'�����'�� ���'�� ���'��+���'��*���'�����'������(�����(�� ���2(�� ���?(�����K(�����](�����t(�����(�� ���(�� ���(��%���(�� ���(�� ���(�����)�����)��Q���3)��+���)��&���)�����)�����)�����*�����!*��(���)*�����R*�� ���[*�� ���f*�����t*�����}*��b���*�����*�����+�����/+�����H+�����`+�� ���~+�� ���+�����+�����+�� ���+�����+�� ���+������,����� ,��<���',�����d,�� ���|,��-���,�����,�����,�����,��Q���,��-���0-��!���^-�����-�����-�� ���-�����-��:���-�����-�����-�����.�����.�����+.��4���A.��4���v.��L���.�� ���.�����/��!���/�����5/�����E/��,���V/��(���/��.���/�����/�����/��@��� 0�����M0��'���k0��$���0�����0�� ���0�����0�� ���0�� ���0�����0�����1�����*1�����=1�����L1�����_1�����r1�����1�����1�����1�����1�� ���1�����1�����1�����2�����62�����H2�� ���N2��'���\2�� ���2�� ���2�����2��&���2�����2��)���2��'���%3�� ���M3�����[3�����c3�����z3�����3��%���3�����3�����3�� ���3�����4�����%4�����94�����B4�� ���Q4�� ���[4�����e4�� ���u4�����4�����4�����4�� ���4�����4��>���4�����$5�����75�����I5��I���Q5��=���5�����5�����5��2����6�����36�� ���P6�� ���Z6�����h6�����w6�����6�����6�����6�����6��)���6�� ���7�����7��"���!7�����D7�� ���J7�� ���X7�����e7�����y7�����7�� ���7��.���7�����7��,���7��"���*8��!���M8�����o8�����8�����8�����8�����8�����8�� ���8��!���8�� ���8�� ��� 9�����9�����*9�����19�����99�����@9�� ���R9�����_9�� ���p9�����|9�� ���9�����9�����9�����9�� ���9�����9�����9�� ���9�����9�� ���:��@���:�����Q:��#���f:�����:�����:�����:��5���:��"���:��(���;�����-;�����6;�����������i���`�������������������������z����������w�������)������� ������������������������r�������F���������������~���������������������������������� ������O���o������>�������9������I���������L����������e���������������������������5���������\���������m���T�����������������������.������P��������������� ���q������������������}���������������3������S�������s����������������������J��������������j���������������:������{��������������?�����������b���d����������1������ ������������G���U������������u�������A���������������B������c�����������������2������n���^�������$���0����������h����������������������(���������+���v����������*���'����������E��������������������������k����������;������%������-����������,����������#������������������������������� ���l�������6�����������<���W������Z���������&������D�������/�������������� ������������M������"���������C���������y�������4�����������@����������H������p�����������t������������X���[���Y�������������R���!���=���a������Q���K������g�������������|������������������������������7������8����������������V���x��������������������������f��������������������_���N���������]���� Options � Print Range � Print command � Print formatting � Sort Parameters � Sort Sublevels �%F�%d items merged�%d substitutions�%d tree items copied�%d tree items cut�%s is locked by pid %d�%s is not readable�%s is not writable�%s requires python%s or higher.�%s version %s�%s: Warning: opening gjots2 manual from %s �%s: bad geometry specification: %s �%s: locked by process number %d�%s: no permission�: Error�: Save?�: version �Add a time/date stamp (see preferences)�Add a time/date stamp (see prefs)�All�All text selected�All tree items selected�Alphabetic�Ascending�Auto Number�Auto-number format: �Backwards�Bad password�Bad regular expression�Bold titles�Can't delete the root item�Can't go any further�Can't go further�Can't go further!�Can't lock file�Can't lock file %s: already locked by process %d�Can't merge items that have children�Can't merge the root item�Can't open "�Can't run '%s'�Can't write to �Cancel�Choose a font for the text panel�Clear�Close�Confirm: �Copy�Copy selected items�Could not find the ccrypt program - please install it and try again�Courier 10 Pitch 10�Create a new child�Create a new item�Create a new page�Current text font�Cut�Cut selected items�D_emote�Date�Date format:�Demote�Descending�Don't ignore case�Down�Edit current item in an external editor�Enter password for �Export�Export selected items to a gjots file�Export to ...�Ext.Ed.�External editor�External formatter "%s" is not installed - can't format�Feeds a page before every new gjots item�File cannot be locked�Find�Find & replace�Find Next�Find Previous�Find string is a regular expression (see 'man 7 regex')�Find:�Format the current paragraph�Found�Global�Hide All�Hide all items except for the top level�Hide all items except the top level�How many sublevels to sort (0 for none; -1 for 'all')�Import�Import from ...�Import items from a gjots file�Internal error�Internal error!�Invoke an external editor on the current item�Line length for paragraph wrapping�Make a new item from the current selection�Match case�Merge Items�Merge current items into the first one�Merge selected items together�Move selection down�Move selection up�New Child�New Page�New _Child�New file�New...>>>�No changes to save�No child!�No parent!�Not found�Not saved.�Nothing selected�Nothing selected!�Nothing to merge�Nothing to paste�Nothing to save�Nothing to sort!�Numeric�Open file ...�Open file read only�Open gjots preferences window�P_romote�Page�Page feeds�Password was not confirmed�Password: �Paste�Paste selected items�Popup the find and replace dialog�Popup the sort dialog�Popup the sort text dialog�Popup the sort tree dialog�Prefs�Print�Print the current page�Print the entire gjots file�Print the gjots item titles in bold�Print the selected pages or text�Print this document�Promote�Read only�Read the online manual (using gjots)�Regular Expression�Replace�Replace All�Replace:�Replace?�S_ort Tree�Save�Save as ...�Save current work?�Save gjots document�Saved.�Search backwards�Searches entire file not just this entry�Select Font�Select _All�Selection�Selection becomes a child of the previous item�Selection becomes a sibling to their parent�Show All�Show _Icon Text�Show all items below the current item�Show the related icon text�Sort�Sort Text�Sort Tree�Sort in alphabetic order�Sort in ascending order�Sort in descending order�Sort in numeric order�Split Item�Split the text selection into a new item�Status _Bar�String to replace�String to search for�Te_xt�Text Line Length: �Text copied�Text cut�Text formatter: �Text pasted�That file is already open!�To open the file in read-only mode.�To_p Toolbar�Toggle the read-only flag if possible�Toggles the main toolbar�Toggles tree tool bar�Tre_e Toolbar�Tree is empty!�Tree items pasted�Try again�Up�Use -h for help �Wrap�Wrap the current paragraph to the current line length�_Edit�_Export�_External Edit�_File�_Format�_Help�_Hide All�_Import�_Merge Items�_New Page�_Read Manual�_Read-only�_Show All�_Sort Text�_Split Item�_Time stamp�_Tree�_View�e.g. lpr: �eg. 1 for 1.2.1, a�fmt -w %d �gjots2: warning: selection list is NULL. Skipping tree selection changed event.�gjots: preferences�http://bhepple.freeshell.org/gjots2�label1�label2�overwrite %s?�print command (can be a shell expression)�text changed by external editor�text not changed by external editor�window1�xterm -e vi %s�Project-Id-Version: PACKAGE VERSION Report-Msgid-Bugs-To: PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE Last-Translator: FULL NAME <EMAIL@ADDRESS> Language-Team: LANGUAGE <LL@li.org> Language: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit �Einstellungen�Druckbereich�Druckkommando�Druckformatierung�Sortiereinstellungen�Unterebenen sortieren�%F�%d Seiten verbunden�%d Ersetzungen�%d Seiten kopiert�%d Seiten ausgeschnitten�%s is blockiert durch PID %d�%s ist nicht lesbar�%s ist nicht schreibbar�%s benötigt python%s or besser.�%s Version %s�%s: Warnung: Öffne gjots2-Handbuch von %s �%s: fehlerhafte Angabe der Fenstergröße: %s �%s: blockiert durch Prozess mit der Nummer %d�%s: keine Berechtigung�: Fehler�: Speichern?�: Version �Zeitstempel einfügen (siehe Einstellungen)�Zeit/Datum einfügen (siehe Einstellungen)�Alles�Gesamter Text ausgewählt�Alle Seiten ausgewählt�Alphabetisch�Aufsteigend�Auto. nummerieren�Format der Numerierung�Rückwärts suchen�Falsches Paßwort�Fehlerhafter regulärer Ausdruck�Fette Titel�Kann die oberste Seite nicht löschen�Ende erreicht�Ende erreicht�Ende erreicht!�Kann Datei nicht blockieren�Kann Datei %s nicht blockieren. Sie wurde bereits durch den Prozess %d blockiert.�Kann Seiten mit Unterseiten nicht verbinden�Kann die oberste Seite nicht verbinden�Kann nicht öffnen "�Kann '%s' nicht ausführen�Kann nicht schreiben in �Abbruch�Wähle eine Schrift für die Texteingabe�Löschen�Schließen�Bestätigen: �Kopieren�Ausgewählte Seiten kopieren�Konnte das Programm 'ccrypt' nicht finden - Bitte installieren Sie es und probieren Sie es erneut.�Courier 10 Pitch 10�Eine neue Unterseite erzeugen�Eine neue Seite erzeugen�Erzeuge eine neue Seite�Zur Zeit ausgewählte Schrift�Ausschneiden�Ausgewählte Seiten ausschneiden�In _Unterebene verschieben�Datum�Datumsformat:�In Unterebene verschieben�Absteigend�Groß-/Kleinschreibung beachten�Runter�Inhalt der aktuellen Seite im einem externen Editor aufrufen�Paßwort eingeben für �Exportieren�Exportiere ausgewählte Seiten in gjots Datei�Exportiere ...�Ext. Ed.�Externer Editor�Externer Textformatierer "%s" ist nicht installiert - Formatierung nicht möglich�Seitenumbruch vor jeder neuen Seite einfügen�Datei kann nicht blockiert werden�Suchen�Suchen & Ersetzen�Weiter suchen�Rückwärts suchen�Suchtext ist ein regulärer Ausdruck (siehe 'man 7 regex')�Suchen:�Formatiere Absatz�Gefunden�Über alles suchen�Alle Seiten verbergen�Verberge alle Seiten mit Ausnahme der obersten Seite�Verberge alle Seiten mit Ausnahme des obersten Seite�Zahl der Unterebenen, die sortiert werden sollen (0 für keine, -1 für ale)�Importieren�Importiere ...�Importiere Seiten aus gjots Datei�Interner Fehler�Interner Fehler!�Externen Editor mit Inhalt der Seite öffnen�Zeilenlänge beim Umbruch eines Absatzes�Neue Seite aus der aktuellen Auswahl erstellen�Groß-/Kleinschreibung beachten�Seiten verbinden�Ausgewählte Seiten mit der ersten ausgewählten Seite verbinden�Ausgewählte Seiten verbinden�Ausgewählte Seiten noch unten schieben�Auswählte Seiten nach oben schieben�Neue Unterseite�Neue Seite�Neue _Unterseite�Neue Datei�Neu ...>>>�Keine Änderungen vorgenommen�Keine Unterseite!�Keine Elternseite!�Nicht gefunden�Nicht gespeichert.�Nichts ausgewählt�Nichts ausgewählt!�Nichts zu verbinden�Nichts zum einfügen�Speichern nicht notwendig�Nichts zu sortieren!�Nummerisch�Datei öffnen ...�Datei im Nur-Lese-Modus öffnen�Einstellungsdialog öffnen�Eine Ebene höher�Seite�Seitenumbruch�Paßwort wurde nicht korrekt bestätigt�Paßwort: �Einfügen�Ausgewählte Seiten einfügen�Dialog zum Suchen und Ersetzen öffnen�Dialog zum Sortieren öffnen�Dialog zur Sortierung des Textes aufrufen�Dialog zur Sortierung des Baums öffnen�Einstellungen�Drucken�Aktuelle Seite drucken�Die gesamte Datei drucken�Drucke die Titel in Fettschrift�Ausgewählte Seiten oder Text drucken�Dokument drucken�Eine Ebene höher�Nur lesen�Die Anleitung mit gjots lesen�Regulärer Ausdruck�Ersetzen�Alles Ersetzen�Ersetzen:�Ersetzen?�Baum _sortieren�Speichern�Speichern als ...�Aktuellen Stand speichern?�gjots Dokument speichern�Gespeichert.�Rückwärts suchen�Sucht in der gesamten Datei, nicht nur auf der aktuellen Seite�Schrift auswählen�_Alles auswählen�Auswahl�Ausgewählte Seiten werden zu Unterseiten der darüber befindlichen Seite�Ausgewählte Seiten auf die Ebene der Elternseite verschieben�Alle Seiten zeigen�Text unter Symbolen�Zeige alle Seiten unterhalb der aktuellen Seite an�Text unter Symbolen anzeigen�Sortieren�Sortiere Text�Baum sortieren�Sortiere alphabetisch�Sortiere aufsteigend�Sortiere absteigend�Sortiere nummerisch�Seite aufteilen�Textauswahl in zwei neue Seiten aufteilen�_Statusleiste�Ersetzungstext�Text, nach dem gesucht werden soll�Te_xt�Zeilenlänge:�Text kopiert�Text ausgeschnitten�Textformatierer:�Text eingefügt�Die Datei ist bereits geöffnet!�Auswählen, um die Datei nur lesend zu öffnen�_Hauptsymbolleiste�Wenn möglich in den Nur-Lese-Modus wechseln�Hauptsymbolleiste ein-/ausschalten�Baumsymbolleiste ein-/ausschalten�_Baumsymbolleiste�Baum ist leer!�Seiten eingefügt�Nochmal versuchen�Hoch�Verwende -h für Hilfe �Umbrechen�Absatz auf Zeilenbreite umbrechen�_Bearbeiten�_Exportieren�Im _Editor aufrufen�_Datei�_Format�_Hilfe�Seiten _verbergen�_Importieren�Seiten verbinden�_Neue Seite�_Anleitung lesen�_Lesemodus�Seiten _anzeigen�_Sortiere Text�Seite _aufteilen�_Zeitstempel�_Baum�_Ansehen�z.B. lpr: �z.B. 1 für 1.2.1, a�fmt -w %d �gjots2: Warnung: Auswahlliste ist leer. Keine Aktion ausgeführt�gjots: Einstellungen�http://bhepple.freeshell.org/gjots2�Marke1�Marke2�%s Überschreiben?�Druckkommando (kann eine Anweisung in der Shell sein)�Text in externen Editor verändert�Text in externen Editor nicht verändert�Fenster1�xterm -e vi %s��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/en_US.po����������������������������������������������������������������������������0000664�0000000�0000000�00000061637�14016300235�0014732�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Language file for gjots2. # Copyright (C) 2005-2006 Bob Hepple # This file is distributed under the same license as the gjots2 package. # Bob Hepple <bhepple@freeshell.org>, 2005. # msgid "" msgstr "" "Project-Id-Version: gjots2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-30 18:18+1000\n" "PO-Revision-Date: 2005-12-24 16:45+1000\n" "Last-Translator: Bob hepple <bhepple@freeshell.org>\n" "Language-Team: <en@li.org>\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/about.ui:12 #, fuzzy msgid "Copyright Bob Hepple 2002-2020" msgstr "Copyright Bob hepple 2002-2006" #: ../ui/about.ui:13 msgid "http://bhepple.freeshell.org/gjots2" msgstr "http://bhepple.freeshell.org/gjots2" #: ../ui/about.ui:25 msgid "\n" msgstr "" #: ../ui/fileDialog.ui:69 #, fuzzy msgid "Open file read only" msgstr "Open file ..." #: ../ui/fileDialog.ui:73 msgid "To open the file in read-only mode." msgstr "" #: ../ui/findDialog.ui:8 msgid "Find & replace" msgstr "Find & replace" #: ../ui/findDialog.ui:34 msgid "Find:" msgstr "Find:" #: ../ui/findDialog.ui:47 msgid "Replace:" msgstr "Replace:" #: ../ui/findDialog.ui:64 msgid "String to search for" msgstr "String to search for" #: ../ui/findDialog.ui:80 msgid "String to replace" msgstr "String to replace" #: ../ui/findDialog.ui:114 ../ui/gjots.ui:844 msgid "Find" msgstr "Find" #: ../ui/findDialog.ui:130 msgid "Close" msgstr "Close" #: ../ui/findDialog.ui:146 msgid "Replace" msgstr "Replace" #: ../ui/findDialog.ui:162 msgid "Replace All" msgstr "Replace All" #: ../ui/findDialog.ui:178 msgid "Cancel" msgstr "Cancel" #: ../ui/findDialog.ui:197 msgid "Clear" msgstr "Clear" #: ../ui/findDialog.ui:257 msgid "Match case" msgstr "Match case" #: ../ui/findDialog.ui:261 msgid "Don't ignore case" msgstr "Don't ignore case" #: ../ui/findDialog.ui:271 msgid "Regular Expression" msgstr "Regular Expression" #: ../ui/findDialog.ui:275 msgid "Find string is a regular expression (see 'man 7 regex')" msgstr "Find string is a regular expression (see 'man 7 regex')" #: ../ui/findDialog.ui:287 msgid "Backwards" msgstr "Backwards" #: ../ui/findDialog.ui:291 msgid "Search backwards" msgstr "Search backwards" #: ../ui/findDialog.ui:306 msgid "Global" msgstr "Global" #: ../ui/findDialog.ui:310 msgid "Searches entire file not just this entry" msgstr "Searches entire file not just this entry" #: ../ui/findDialog.ui:327 msgid " Options " msgstr " Options " #: ../ui/fontDialog.ui:9 msgid "Select Font" msgstr "Select Font" #: ../ui/generalDialog.ui:9 msgid "window1" msgstr "" #: ../ui/generalDialog.ui:22 ../ui/generalDialog.ui:60 #: ../ui/generalDialog.ui:115 msgid "label1" msgstr "label1" #: ../ui/generalDialog.ui:46 msgid "label2" msgstr "label2" #: ../ui/generalDialog.ui:193 msgid "Try again" msgstr "Try again" #: ../ui/generalDialog.ui:209 msgid "Read only" msgstr "Read only" #: ../ui/gjots.ui:24 msgid "_File" msgstr "" #: ../ui/gjots.ui:88 msgid "_Import" msgstr "_Import" #: ../ui/gjots.ui:91 msgid "Import items from a gjots file" msgstr "Import items from a gjots file" #: ../ui/gjots.ui:99 msgid "_Export" msgstr "_Export" #: ../ui/gjots.ui:102 msgid "Export selected items to a gjots file" msgstr "Export selected items to a gjots file" #: ../ui/gjots.ui:135 msgid "Toggle the read-only flag if possible" msgstr "Toggle the read-only flag if possible" #: ../ui/gjots.ui:136 msgid "_Read-only" msgstr "_Read-only" #: ../ui/gjots.ui:152 #, fuzzy msgid "Exit gjots2" msgstr "Exit gjots" #: ../ui/gjots.ui:167 msgid "_Edit" msgstr "" #: ../ui/gjots.ui:263 #, fuzzy msgid "Find Next" msgstr "Find" #: ../ui/gjots.ui:273 msgid "Find Previous" msgstr "" #: ../ui/gjots.ui:299 msgid "_View" msgstr "" #: ../ui/gjots.ui:307 msgid "_Show All" msgstr "_Show All" #: ../ui/gjots.ui:310 ../ui/gjots.ui:1085 msgid "Show all items below the current item" msgstr "Show all items below the current item" #: ../ui/gjots.ui:318 msgid "_Hide All" msgstr "_Hide All" #: ../ui/gjots.ui:321 msgid "Hide all items except the top level" msgstr "Hide all items except the top level" #: ../ui/gjots.ui:337 msgid "Toggles the main toolbar" msgstr "Toggles the main toolbar" #: ../ui/gjots.ui:338 msgid "To_p Toolbar" msgstr "To_p Toolbar" #: ../ui/gjots.ui:347 msgid "Toggles tree tool bar" msgstr "Toggles tree tool bar" #: ../ui/gjots.ui:348 msgid "Tre_e Toolbar" msgstr "Tre_e Toolbar" #: ../ui/gjots.ui:357 msgid "Show the related icon text" msgstr "Show the related icon text" #: ../ui/gjots.ui:358 msgid "Show _Icon Text" msgstr "Show _Icon Text" #: ../ui/gjots.ui:367 msgid "Status _Bar" msgstr "Status _Bar" #: ../ui/gjots.ui:380 msgid "_Tree" msgstr "_Tree" #: ../ui/gjots.ui:388 msgid "_New Page" msgstr "_New Page" #: ../ui/gjots.ui:391 msgid "Create a new page" msgstr "Create a new page" #: ../ui/gjots.ui:400 msgid "New _Child" msgstr "New _Child" #: ../ui/gjots.ui:403 ../ui/gjots.ui:920 msgid "Create a new child" msgstr "Create a new child" #: ../ui/gjots.ui:420 ../ui/gjots.ui:950 msgid "Move selection up" msgstr "Move selection up" #: ../ui/gjots.ui:431 ../ui/gjots.ui:965 msgid "Move selection down" msgstr "Move selection down" #: ../ui/gjots.ui:439 msgid "P_romote" msgstr "P_romote" #: ../ui/gjots.ui:442 ../ui/gjots.ui:980 msgid "Selection becomes a sibling to their parent" msgstr "Selection becomes a sibling to their parent" #: ../ui/gjots.ui:450 msgid "D_emote" msgstr "D_emote" #: ../ui/gjots.ui:453 ../ui/gjots.ui:995 msgid "Selection becomes a child of the previous item" msgstr "Selection becomes a child of the previous item" #: ../ui/gjots.ui:467 msgid "_Split Item" msgstr "_Split Item" #: ../ui/gjots.ui:470 msgid "Make a new item from the current selection" msgstr "Make a new item from the current selection" #: ../ui/gjots.ui:478 msgid "_Merge Items" msgstr "_Merge Items" #: ../ui/gjots.ui:481 msgid "Merge current items into the first one" msgstr "Merge current items into the first one" #: ../ui/gjots.ui:489 msgid "S_ort Tree" msgstr "S_ort Tree" #: ../ui/gjots.ui:492 ../ui/gjots.ui:1100 msgid "Popup the sort tree dialog" msgstr "" #: ../ui/gjots.ui:506 msgid "Te_xt" msgstr "Te_xt" #: ../ui/gjots.ui:514 msgid "_Format" msgstr "_Format" #: ../ui/gjots.ui:517 msgid "Format the current paragraph" msgstr "Format the current paragraph" #: ../ui/gjots.ui:526 msgid "_Time stamp" msgstr "_Time stamp" #: ../ui/gjots.ui:529 msgid "Add a time/date stamp (see preferences)" msgstr "Add a time/date stamp (see preferences)" #: ../ui/gjots.ui:538 msgid "_External Edit" msgstr "_External Edit" #: ../ui/gjots.ui:541 msgid "Edit current item in an external editor" msgstr "Edit current item in an external editor" #: ../ui/gjots.ui:549 msgid "_Sort Text" msgstr "_Sort Text" #: ../ui/gjots.ui:552 msgid "Popup the sort text dialog" msgstr "Popup the sort text dialog" #: ../ui/gjots.ui:566 msgid "_Help" msgstr "" #: ../ui/gjots.ui:574 #, fuzzy msgid "_Read Manual" msgstr "_Read manual" #: ../ui/gjots.ui:577 msgid "Read the online manual (using gjots)" msgstr "Read the online manual (using gjots)" #: ../ui/gjots.ui:621 msgid "Popup the 'Find'menu" msgstr "" #: ../ui/gjots.ui:651 msgid "Find the previous occurance" msgstr "" #: ../ui/gjots.ui:667 msgid "Find the next occurance" msgstr "" #: ../ui/gjots.ui:693 msgid "Save gjots document" msgstr "Save gjots document" #: ../ui/gjots.ui:694 msgid "Save" msgstr "Save" #: ../ui/gjots.ui:708 msgid "Print this document" msgstr "Print this document" #: ../ui/gjots.ui:709 ../ui/printDialog.ui:8 msgid "Print" msgstr "Print" #: ../ui/gjots.ui:738 msgid "Cut selected items" msgstr "Cut selected items" #: ../ui/gjots.ui:739 msgid "Cut" msgstr "Cut" #: ../ui/gjots.ui:753 msgid "Copy selected items" msgstr "Copy selected items" #: ../ui/gjots.ui:754 msgid "Copy" msgstr "Copy" #: ../ui/gjots.ui:768 msgid "Paste selected items" msgstr "Paste selected items" #: ../ui/gjots.ui:769 msgid "Paste" msgstr "Paste" #: ../ui/gjots.ui:798 msgid "Wrap the current paragraph to the current line length" msgstr "Wrap the current paragraph to the current line length" #: ../ui/gjots.ui:799 msgid "Wrap" msgstr "Wrap" #: ../ui/gjots.ui:813 msgid "Invoke an external editor on the current item" msgstr "Invoke an external editor on the current item" #: ../ui/gjots.ui:814 msgid "Ext.Ed." msgstr "Ext.Ed." #: ../ui/gjots.ui:828 msgid "Add a time/date stamp (see prefs)" msgstr "Add a time/date stamp (see prefs)" #: ../ui/gjots.ui:829 msgid "Date" msgstr "Date" #: ../ui/gjots.ui:843 msgid "Popup the find and replace dialog" msgstr "Popup the find and replace dialog" #: ../ui/gjots.ui:858 msgid "Popup the sort dialog" msgstr "Popup the sort dialog" #: ../ui/gjots.ui:859 ../ui/sortDialog.ui:15 msgid "Sort" msgstr "Sort" #: ../ui/gjots.ui:873 msgid "Open gjots preferences window" msgstr "Open gjots preferences window" #: ../ui/gjots.ui:874 msgid "Prefs" msgstr "Prefs" #: ../ui/gjots.ui:905 msgid "Create a new item" msgstr "Create a new item" #: ../ui/gjots.ui:906 ../ui/treeContextMenu.ui:45 msgid "New Page" msgstr "New Page" #: ../ui/gjots.ui:921 ../ui/treeContextMenu.ui:52 msgid "New Child" msgstr "New Child" #: ../ui/gjots.ui:951 msgid "Up" msgstr "Up" #: ../ui/gjots.ui:966 msgid "Down" msgstr "Down" #: ../ui/gjots.ui:981 ../ui/treeContextMenu.ui:74 msgid "Promote" msgstr "Promote" #: ../ui/gjots.ui:996 ../ui/treeContextMenu.ui:82 msgid "Demote" msgstr "Demote" #: ../ui/gjots.ui:1025 msgid "Split the text selection into a new item" msgstr "Split the text selection into a new item" #: ../ui/gjots.ui:1026 msgid "Split Item" msgstr "Split Item" #: ../ui/gjots.ui:1040 msgid "Merge selected items together" msgstr "Merge selected items together" #: ../ui/gjots.ui:1041 ../ui/treeContextMenu.ui:89 msgid "Merge Items" msgstr "Merge Items" #: ../ui/gjots.ui:1070 msgid "Hide all items except for the top level" msgstr "Hide all items except for the top level" #: ../ui/gjots.ui:1071 ../ui/treeContextMenu.ui:103 msgid "Hide All" msgstr "Hide All" #: ../ui/gjots.ui:1086 ../ui/treeContextMenu.ui:96 msgid "Show All" msgstr "Show All" #: ../ui/gjots.ui:1101 ../ui/treeContextMenu.ui:110 ../lib/sortDialog.py:394 msgid "Sort Tree" msgstr "Sort Tree" #: ../ui/prefsDialog.ui:20 msgid "gjots: preferences" msgstr "gjots: preferences" #: ../ui/prefsDialog.ui:49 msgid "Choose a font for the text panel" msgstr "Choose a font for the text panel" #: ../ui/prefsDialog.ui:65 msgid "Date format:" msgstr "Date format:" #: ../ui/prefsDialog.ui:79 #, fuzzy msgid "Format for the timestamp function (see strftime(3)) eg %F" msgstr "Format for the timestamp function (see strftime(3))" #: ../ui/prefsDialog.ui:80 msgid "%F" msgstr "%F" #: ../ui/prefsDialog.ui:99 #, fuzzy msgid "" "External program to edit a page (%s is replaced by the name of the temporary " "edit file) eg xterm -e vi %s" msgstr "" "External program to edit a page (%s is replaced by the name of the temporary " "edit file)" #: ../ui/prefsDialog.ui:100 msgid "xterm -e vi %s" msgstr "xterm -e vi %s" #: ../ui/prefsDialog.ui:120 msgid "External editor" msgstr "External editor" #: ../ui/prefsDialog.ui:135 msgid "Text Line Length: " msgstr "Text Line Length: " #: ../ui/prefsDialog.ui:149 msgid "Line length for paragraph wrapping" msgstr "Line length for paragraph wrapping" #: ../ui/prefsDialog.ui:172 msgid "Text formatter: " msgstr "Text formatter: " #: ../ui/prefsDialog.ui:184 #, fuzzy msgid "" "External program to pipe text for formatting (%d is replaced by the current " "line width) eg fmt -w %d " msgstr "" "External program to pipe text for formatting (%d is replaced by the current " "line width)" #: ../ui/prefsDialog.ui:185 msgid "fmt -w %d " msgstr "fmt -w %d " #: ../ui/prefsDialog.ui:202 msgid "Current text font" msgstr "Current text font" #: ../ui/prefsDialog.ui:204 msgid "Courier 10 Pitch 10" msgstr "Courier 10 Pitch 10" #: ../ui/prefsDialog.ui:224 msgid "AutoSave interval:" msgstr "" #: ../ui/prefsDialog.ui:238 msgid "Seconds of inactivity to trigger an AutoSave (0 = no AutoSave)" msgstr "" #: ../ui/printDialog.ui:38 msgid "e.g. lpr: " msgstr "e.g. lpr: " #: ../ui/printDialog.ui:54 msgid "print command (can be a shell expression)" msgstr "print command (can be a shell expression)" #: ../ui/printDialog.ui:76 msgid " Print command " msgstr " Print command " #: ../ui/printDialog.ui:104 msgid "Page" msgstr "Page" #: ../ui/printDialog.ui:108 msgid "Print the current page" msgstr "Print the current page" #: ../ui/printDialog.ui:120 msgid "Selection" msgstr "Selection" #: ../ui/printDialog.ui:124 msgid "Print the selected pages or text" msgstr "Print the selected pages or text" #: ../ui/printDialog.ui:137 msgid "All" msgstr "All" #: ../ui/printDialog.ui:141 msgid "Print the entire gjots file" msgstr "Print the entire gjots file" #: ../ui/printDialog.ui:160 msgid " Print Range " msgstr " Print Range " #: ../ui/printDialog.ui:193 msgid "Page feeds" msgstr "Page feeds" #: ../ui/printDialog.ui:197 msgid "Feeds a page before every new gjots item" msgstr "Feeds a page before every new gjots item" #: ../ui/printDialog.ui:209 msgid "Bold titles" msgstr "Bold titles" #: ../ui/printDialog.ui:212 msgid "Print the gjots item titles in bold" msgstr "Print the gjots item titles in bold" #: ../ui/printDialog.ui:224 msgid "Auto Number" msgstr "Auto Number" #: ../ui/printDialog.ui:251 msgid "Auto-number format: " msgstr "Auto-number format: " #: ../ui/printDialog.ui:262 msgid "eg. 1 for 1.2.1, a" msgstr "eg. 1 for 1.2.1, a" #: ../ui/printDialog.ui:289 msgid " Print formatting " msgstr " Print formatting " #: ../ui/sortDialog.ui:43 msgid "Ascending" msgstr "Ascending" #: ../ui/sortDialog.ui:47 msgid "Sort in ascending order" msgstr "Sort in ascending order" #: ../ui/sortDialog.ui:58 msgid "Descending" msgstr "Descending" #: ../ui/sortDialog.ui:62 msgid "Sort in descending order" msgstr "Sort in descending order" #: ../ui/sortDialog.ui:76 msgid "Alphabetic" msgstr "Alphabetic" #: ../ui/sortDialog.ui:80 msgid "Sort in alphabetic order" msgstr "Sort in alphabetic order" #: ../ui/sortDialog.ui:93 msgid "Numeric" msgstr "Numeric" #: ../ui/sortDialog.ui:97 msgid "Sort in numeric order" msgstr "Sort in numeric order" #: ../ui/sortDialog.ui:119 msgid " Sort Parameters " msgstr " Sort Parameters " #: ../ui/sortDialog.ui:149 msgid "How many sublevels to sort (0 for none; -1 for 'all')" msgstr "How many sublevels to sort (0 for none; -1 for 'all')" #: ../ui/sortDialog.ui:171 msgid " Sort Sublevels " msgstr " Sort Sublevels " #: ../ui/treeContextMenu.ui:30 #, fuzzy msgid "Select _All" msgstr "Select File" #: ../ui/treeContextMenu.ui:117 msgid "Import" msgstr "Import" #: ../ui/treeContextMenu.ui:124 msgid "Export" msgstr "Export" #: ../gjots2:23 msgid "" "Usage: gjots [OPTIONS] [FILENAME]\n" "A gtk/X11 jotter\n" "\n" "OPTIONS:\n" "-h, --help: this help\n" "-d, --debug: debug to stdout\n" "-t, --trace: trace lines as they execute\n" "-g 123x456, --geometry=123x456: initial geometry (X x Y)\n" "-p, --purge-password don't remember password\n" "-r, --readonly: no editing (or locking)\n" "-V, --version: print the version and exit\n" "\n" "FILENAME:\n" " gjots data filename (default is $HOME/.gjotsfile)\n" msgstr "" #: ../gjots2:89 #, python-format msgid "%s requires python%s or higher." msgstr "%s requires python%s or higher." #: ../gjots2:102 msgid "Use -h for help\n" msgstr "Use -h for help\n" #: ../gjots2:116 #, python-format msgid "%s version %s" msgstr "%s version %s" #: ../lib/gui.py:51 ../lib/gui.py:996 msgid "Text pasted" msgstr "Text pasted" #: ../lib/gui.py:179 #, python-format msgid "External formatter \"%s\" is not installed - can't format" msgstr "External formatter \"%s\" is not installed - can't format" #: ../lib/gui.py:564 ../lib/gui.py:675 ../lib/gui.py:679 ../lib/gui.py:745 #: ../lib/gui.py:749 ../lib/gui.py:812 ../lib/gui.py:817 ../lib/gui.py:1043 #: ../lib/gui.py:1052 ../lib/gui.py:1138 ../lib/gui.py:1147 ../lib/gui.py:1183 #: ../lib/gui.py:1188 ../lib/gui.py:1219 ../lib/gui.py:1608 ../lib/gui.py:2382 #: ../lib/gui.py:2401 ../lib/gui.py:2430 ../lib/gui.py:2461 ../lib/file.py:466 #: ../lib/file.py:471 ../lib/sortDialog.py:329 ../lib/sortDialog.py:334 #: ../lib/printDialog.py:110 ../lib/printDialog.py:115 msgid "Nothing selected" msgstr "Nothing selected" #: ../lib/gui.py:568 ../lib/gui.py:684 ../lib/gui.py:753 ../lib/gui.py:822 #: ../lib/gui.py:934 ../lib/gui.py:1224 ../lib/gui.py:2386 #: ../lib/sortDialog.py:345 msgid "No parent!" msgstr "No parent!" #: ../lib/gui.py:572 ../lib/gui.py:719 msgid "No child!" msgstr "No child!" #: ../lib/gui.py:580 ../lib/gui.py:693 msgid "Can't go any further" msgstr "Can't go any further" #: ../lib/gui.py:616 ../lib/gui.py:840 msgid "Internal error!" msgstr "Internal error!" #: ../lib/gui.py:757 msgid "Can't go further!" msgstr "Can't go further!" #: ../lib/gui.py:973 msgid "Text cut" msgstr "Text cut" #: ../lib/gui.py:984 msgid "Text copied" msgstr "Text copied" #: ../lib/gui.py:1005 msgid "All text selected" msgstr "All text selected" #: ../lib/gui.py:1015 msgid "All tree items selected" msgstr "All tree items selected" #: ../lib/gui.py:1023 msgid "Nothing selected!" msgstr "Nothing selected!" #: ../lib/gui.py:1047 msgid "Can't merge the root item" msgstr "Can't merge the root item" #: ../lib/gui.py:1056 msgid "Nothing to merge" msgstr "Nothing to merge" #: ../lib/gui.py:1063 msgid "Can't merge items that have children" msgstr "Can't merge items that have children" #: ../lib/gui.py:1093 #, python-format msgid "%d items merged" msgstr "%d items merged" #: ../lib/gui.py:1142 msgid "Can't delete the root item" msgstr "Can't delete the root item" #: ../lib/gui.py:1175 #, python-format msgid "%d tree items cut" msgstr "%d tree items cut" #: ../lib/gui.py:1205 #, python-format msgid "%d tree items copied" msgstr "%d tree items copied" #: ../lib/gui.py:1214 msgid "Nothing to paste" msgstr "Nothing to paste" #: ../lib/gui.py:1237 msgid "Tree items pasted" msgstr "Tree items pasted" #: ../lib/gui.py:1258 #, fuzzy msgid "Can't write tempfile" msgstr "Can't write " #: ../lib/gui.py:1278 #, python-format msgid "Can't run '%s'" msgstr "Can't run '%s'" #: ../lib/gui.py:1287 #, fuzzy msgid "Can't read tempfile " msgstr "Can't read " #: ../lib/gui.py:1293 msgid "text changed by external editor" msgstr "text changed by external editor" #: ../lib/gui.py:1295 msgid "text not changed by external editor" msgstr "text not changed by external editor" #: ../lib/gui.py:1314 msgid ": Error" msgstr ": Error" #: ../lib/gui.py:1327 #, python-format msgid "Can't lock file %s: already locked by process %d" msgstr "Can't lock file %s: already locked by process %d" #: ../lib/gui.py:1510 msgid ": Save?" msgstr ": Save?" #: ../lib/gui.py:1511 msgid "Save current work?" msgstr "Save current work?" #: ../lib/gui.py:1532 msgid "New file" msgstr "New file" #: ../lib/gui.py:1556 msgid "Open file ..." msgstr "Open file ..." #: ../lib/gui.py:1568 msgid "No changes to save" msgstr "No changes to save" #: ../lib/gui.py:1572 ../lib/gui.py:1593 msgid "Saved." msgstr "Saved." #: ../lib/gui.py:1574 ../lib/gui.py:1595 ../lib/file.py:456 msgid "Not saved." msgstr "Not saved." #: ../lib/gui.py:1589 msgid "Nothing to save" msgstr "Nothing to save" #: ../lib/gui.py:1591 ../lib/file.py:693 msgid "Save as ..." msgstr "Save as ..." #: ../lib/gui.py:1605 msgid "Import from ..." msgstr "Import from ..." #: ../lib/gui.py:1616 msgid "Export to ..." msgstr "Export to ..." #: ../lib/gui.py:1930 ../lib/gui.py:1933 #, python-format msgid "%s: Warning: opening gjots2 manual from %s\n" msgstr "%s: Warning: opening gjots2 manual from %s\n" #: ../lib/gui.py:2317 msgid "" "gjots2: warning: selection list is NULL. Skipping tree selection changed \n" "event." msgstr "" #: ../lib/gui.py:2390 msgid "Can't go further" msgstr "Can't go further" #: ../lib/gui.py:2419 msgid "Tree is empty!" msgstr "Tree is empty!" #: ../lib/gui.py:2716 msgid "Bad regular expression" msgstr "Bad regular expression" #: ../lib/gui.py:2808 #, python-format msgid "%s: bad geometry specification: %s\n" msgstr "%s: bad geometry specification: %s\n" #: ../lib/gui.py:2899 msgid "New...>>>" msgstr "New...>>>" #: ../lib/gui.py:2936 msgid "Install gtksourceview to enable undo/redo" msgstr "" #: ../lib/gui.py:3102 msgid ": version " msgstr ": version " #: ../lib/find.py:70 ../lib/find.py:93 msgid "Not found" msgstr "Not found" #: ../lib/find.py:72 msgid "Found" msgstr "Found" #: ../lib/find.py:96 msgid "Replace?" msgstr "Replace?" #: ../lib/find.py:113 #, python-format msgid "%d substitutions" msgstr "%d substitutions" #: ../lib/file.py:255 msgid "Enter password for " msgstr "Enter password for " #: ../lib/file.py:257 #, fuzzy msgid ": Enter Password" msgstr "gjots: Enter Password" #: ../lib/file.py:259 msgid "Password: " msgstr "Password: " #: ../lib/file.py:260 msgid "Confirm: " msgstr "Confirm: " #: ../lib/file.py:268 msgid "Password was not confirmed" msgstr "Password was not confirmed" #: ../lib/file.py:275 msgid "Could not find the ccrypt program - please install it and try again" msgstr "Could not find the ccrypt program - please install it and try again" #: ../lib/file.py:308 msgid "" "Neither gpg2 nor gpg are available - please install one (perhaps package " "gnupg2) and try again" msgstr "" #: ../lib/file.py:328 #, fuzzy msgid "No openssl program - please install it and try again" msgstr "Could not find the openssl program - please install it and try again" #: ../lib/file.py:354 #, fuzzy msgid "No org2gjots program - please install it and try again" msgstr "Could not find the openssl program - please install it and try again" #: ../lib/file.py:412 msgid "Can't open \"" msgstr "Can't open \"" #: ../lib/file.py:415 msgid "Bad password" msgstr "Bad password" #: ../lib/file.py:418 msgid "File cannot be locked" msgstr "File cannot be locked" #: ../lib/file.py:431 ../lib/file.py:489 msgid "failed!" msgstr "" #: ../lib/file.py:457 msgid "Can't write to " msgstr "Can't write to " #: ../lib/file.py:460 msgid "Can't lock file" msgstr "Can't lock file" #: ../lib/file.py:597 #, python-format msgid "%s is not readable" msgstr "%s is not readable" #: ../lib/file.py:613 #, python-format msgid "%s: no permission" msgstr "%s: no permission" #: ../lib/file.py:615 #, python-format msgid "%s: locked by process number %d" msgstr "%s: locked by process number %d" #: ../lib/file.py:617 #, fuzzy msgid ": can't lock file." msgstr "gjots: can't lock file." #: ../lib/file.py:705 msgid "That file is already open!" msgstr "That file is already open!" #: ../lib/file.py:713 ../lib/file.py:787 #, fuzzy msgid ": file has changed" msgstr "gjots: %s already exists." #: ../lib/file.py:714 #, python-format msgid "File changed since it was read - copied to %s " msgstr "" #: ../lib/file.py:731 #, python-format msgid "%s is locked by pid %d" msgstr "%s is locked by pid %d" #: ../lib/file.py:735 msgid "Can't make a lockfile in " msgstr "Can't make a lockfile in " #: ../lib/file.py:748 #, python-format msgid "%s is not writable" msgstr "%s is not writable" #: ../lib/file.py:751 #, fuzzy, python-format msgid ": %s already exists." msgstr "gjots: %s already exists." #: ../lib/file.py:752 #, python-format msgid "overwrite %s?" msgstr "overwrite %s?" #: ../lib/file.py:788 #, python-format msgid "File changed since it was read - so it was copied to %s " msgstr "" #: ../lib/sortDialog.py:125 msgid "_get_settings: Cant find sortAscendingRadioButton" msgstr "_get_settings: Cant find sortAscendingRadioButton" #: ../lib/sortDialog.py:165 msgid "Internal error" msgstr "Internal error" #: ../lib/sortDialog.py:303 msgid "Nothing to sort!" msgstr "Nothing to sort!" #: ../lib/sortDialog.py:398 msgid "Sort Text" msgstr "Sort Text" #~ msgid "Exit gjots" #~ msgstr "Exit gjots" #~ msgid "Create a new child " #~ msgstr "Create a new child " #, fuzzy #~ msgid "About gjots2" #~ msgstr "Exit gjots" #, fuzzy #~ msgid " Find: " #~ msgstr "Find:" #~ msgid "abcdefghijk ABCDEFGHIJK" #~ msgstr "abcdefghijk ABCDEFGHIJK" #, fuzzy, python-format #~ msgid "%s requires pygtk-%s.\n" #~ msgstr "%s requires pygtk-%s." #~ msgid "not initialised" #~ msgstr "not initialised" #~ msgid "pygtk-2.2 is required for this application!" #~ msgstr "pygtk-2.2 is required for this application!" #~ msgid "Store and organise your random notes" #~ msgstr "Store and organise your random notes" #~ msgid "Gjots2 Jotter" #~ msgstr "Gjots2 Jotter" #~ msgid "gjots" #~ msgstr "gjots" #~ msgid "_New" #~ msgstr "_New" #~ msgid "_Quit" #~ msgstr "_Quit" #~ msgid "_Toolbars" #~ msgstr "_Toolbars" #~ msgid "_Up" #~ msgstr "_Up" #~ msgid "_Down" #~ msgstr "_Down" #~ msgid "Create a new gjots document" #~ msgstr "Create a new gjots document" #~ msgid "Open an existing gjots document" #~ msgstr "Open an existing gjots document" #~ msgid "Open" #~ msgstr "Open" #~ msgid "Back" #~ msgstr "Back" #~ msgid "Forward" #~ msgstr "Forward" #~ msgid "translator_credits" #~ msgstr "translator_credits" #~ msgid "%s: Warning: running modules from %s\n" #~ msgstr "%s: Warning: running modules from %s\n" #~ msgid "Could not find the gpg program - please install it and try again" #~ msgstr "Could not find the gpg program - please install it and try again" �������������������������������������������������������������������������������������������������gjots2-3.1.9/po/en_US/������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0014355�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/en_US/LC_MESSAGES/������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0016142�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/en_US/LC_MESSAGES/gjots2.mo���������������������������������������������������������0000664�0000000�0000000�00000032213�14016300235�0017710�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3�� �������� ����� �����������������������&�����7�����:�����J�����[�����p���������������������� �����+�����#��������=�����]�����o�����w�� �����'�����!�������������������� ����� ��� �� ��������#�� ���8�� ���B�����O�� ���f�����r����������������������0����������$��� �����E�� ���_�����l�����{������� ��������������� ���������������C��������&�����:�����M�����_�����q���������������������� ���������� ���������������'���������������%��� �� ���F�����T�����\��7���l��(��������������������7��������/�����5�����R�����X�����_��'���h��#�����5����������������������� �����/��-���?��"���m��*����� ����� �����&������������������+�� ���=�����G�� ���P�����[�� ���d�����n�� ����� ����� ����� ����������������������������������������� ��������'�����E�����N�� ���S�����^�� ���y������������!�����������������������������������#���1�� ���U�����v������� �����$��������������� ��������������� ���������� ��� ����������)�����=�����D��(���U�� ���~�� �����.�����+���������������%��������.�����I�� ���N�� ���X�����b�����{������������ �����(����� �������� ����� �����) �����/ �� ���B �����N �����W �� ���h �����t �� ��� ��%��� ����� ����� �� ��� ����� �����!�� ��� !�����*!�����-!�����>!��5���C!�����y!�����!�����!�� ���!�����!�� ���!�� ���!�� ���!�� ���!�� ���!�� ���!�� ���!�����!��1���!�� ���1"�����<"�� ���O"�����Z"��#���m"�����"�����"�� ���"��)���"�����"��#���"�����#����*#�� ���:$�� ���D$�����R$�����b$�����u$�����$�����$�����$�����$�����$�����$�����$�����$����� %����� %�� ���@%��+���N%��#���z%�����%�����%�����%�����%�� ���%��'���%��!���&�����5&�����9&�����K&�� ���c&�� ���n&�� ���x&�����&�� ���&�� ���&�����&�� ���&�����&�����&�����'�����'�����&'��0���6'�����g'��$���'�����'�� ���'�����'�����'�����'�� ���'�����(�����(�� ��� (�����*(�����/(��C���C(�����(�����(�����(�����(�����(�����(�����(�����(�����)�� ���)�����)�� ���)�����')�����9)��'���>)�����f)�����z)��%���)�� ���)�����)�����)��7���)��(���*�����.*�����D*�����I*��7���X*�����*�����*�����*�����*�����*��'���*��#���*��5���+�����K+�����R+�����b+�����+�����+��-���+��"���+��*���+�� ���,�� ���',��&���3,�����Z,�����x,�����,�� ���,�����,�� ���,�����,�� ���,�����,�� ���,�� ���,�� ���,�� ���-����� -�����-�����/-�����@-�����Q-�����a-�����r-�� ���z-�����-�����-�����-�� ���-�����-�� ���-�����-�����-��!����.�����".�����8.�����S.�����Y.�����_.�����v.��#���.�� ���.�����.�����.�� ���.��$���.�����"/�����5/�� ���=/�����I/�����R/�� ���[/�����f/�� ���k/�����w/�����/�����/�����/��(���/�� ���/�� ���/��.���/��+���$0�����P0�����Y0��%���i0�����0�����0�� ���0�� ���0�����0�����0�����0����� 1�� ���#1��(���.1�� ���W1�����c1�����u1�����1�����1�� ���1�����1�����1�� ���1�����1�� ���1��%���1�����#2�����<2�� ���R2�����`2�����o2�� ���2�����2�����2�����2��5���2�����2�����2�����2�� ���2�����3�� ��� 3�� ���3�� ���"3�� ���-3�� ���73�� ���B3�� ���N3�����Z3��1���`3�� ���3�����3�� ���3�����3��#���3�����3�����3�� ����4��)���4�����84��#���X4�����|4�����y���Z������������������������!��� ���C��������������Y���u�������������� ����������������������A�������d���?���U���x���g��� ���"���F��������������p������/������*���������m������������������������������������=���;���6������+�������������c�������������b���4������0�������������������������������������������������������@������������������������������ ���,���]�����������'��������������3��������������&���9����������G��������������������n���l������L���������������������q������)����������w�����������������������5���������������������V���������������t������������� ���B������\���}������-������H���J�������������R�������P������>�����������f������o���Q����������������I���S���M�����������������z��������������������W���������������������������:�������������������� ������8�������7������������������������������T���j���1���������������.���{����������N�����������[�������e�������D���k���������������������������v���h�������~�����������������_���r�������i���$���������������K���#�������O�������������������������s������������|���2���E������`�������������������X�����������<���%���������������a����������^���(���� Options � Print Range � Print command � Print formatting � Sort Parameters � Sort Sublevels �%F�%d items merged�%d substitutions�%d tree items copied�%d tree items cut�%s is locked by pid %d�%s is not readable�%s is not writable�%s requires python%s or higher.�%s version %s�%s: Warning: opening gjots2 manual from %s �%s: bad geometry specification: %s �%s: locked by process number %d�%s: no permission�: Error�: Save?�: version �Add a time/date stamp (see preferences)�Add a time/date stamp (see prefs)�All�All text selected�All tree items selected�Alphabetic�Ascending�Auto Number�Auto-number format: �Backwards�Bad password�Bad regular expression�Bold titles�Can't delete the root item�Can't go any further�Can't go further�Can't go further!�Can't lock file�Can't lock file %s: already locked by process %d�Can't make a lockfile in �Can't merge items that have children�Can't merge the root item�Can't open "�Can't run '%s'�Can't write to �Cancel�Choose a font for the text panel�Clear�Close�Confirm: �Copy�Copy selected items�Could not find the ccrypt program - please install it and try again�Courier 10 Pitch 10�Create a new child�Create a new item�Create a new page�Current text font�Cut�Cut selected items�D_emote�Date�Date format:�Demote�Descending�Don't ignore case�Down�Edit current item in an external editor�Enter password for �Export�Export selected items to a gjots file�Export to ...�Ext.Ed.�External editor�External formatter "%s" is not installed - can't format�Feeds a page before every new gjots item�File cannot be locked�Find�Find & replace�Find string is a regular expression (see 'man 7 regex')�Find:�Format the current paragraph�Found�Global�Hide All�Hide all items except for the top level�Hide all items except the top level�How many sublevels to sort (0 for none; -1 for 'all')�Import�Import from ...�Import items from a gjots file�Internal error�Internal error!�Invoke an external editor on the current item�Line length for paragraph wrapping�Make a new item from the current selection�Match case�Merge Items�Merge current items into the first one�Merge selected items together�Move selection down�Move selection up�New Child�New Page�New _Child�New file�New...>>>�No changes to save�No child!�No parent!�Not found�Not saved.�Nothing selected�Nothing selected!�Nothing to merge�Nothing to paste�Nothing to save�Nothing to sort!�Numeric�Open file ...�Open gjots preferences window�P_romote�Page�Page feeds�Password was not confirmed�Password: �Paste�Paste selected items�Popup the find and replace dialog�Popup the sort dialog�Popup the sort text dialog�Prefs�Print�Print the current page�Print the entire gjots file�Print the gjots item titles in bold�Print the selected pages or text�Print this document�Promote�Read only�Read the online manual (using gjots)�Regular Expression�Replace�Replace All�Replace:�Replace?�S_ort Tree�Save�Save as ...�Save current work?�Save gjots document�Saved.�Search backwards�Searches entire file not just this entry�Select Font�Selection�Selection becomes a child of the previous item�Selection becomes a sibling to their parent�Show All�Show _Icon Text�Show all items below the current item�Show the related icon text�Sort�Sort Text�Sort Tree�Sort in alphabetic order�Sort in ascending order�Sort in descending order�Sort in numeric order�Split Item�Split the text selection into a new item�Status _Bar�String to replace�String to search for�Te_xt�Text Line Length: �Text copied�Text cut�Text formatter: �Text pasted�That file is already open!�To_p Toolbar�Toggle the read-only flag if possible�Toggles the main toolbar�Toggles tree tool bar�Tre_e Toolbar�Tree is empty!�Tree items pasted�Try again�Up�Use -h for help �Wrap�Wrap the current paragraph to the current line length�_Export�_External Edit�_Format�_Hide All�_Import�_Merge Items�_New Page�_Read-only�_Show All�_Sort Text�_Split Item�_Time stamp�_Tree�_get_settings: Cant find sortAscendingRadioButton�e.g. lpr: �eg. 1 for 1.2.1, a�fmt -w %d �gjots: preferences�http://bhepple.freeshell.org/gjots2�label1�label2�overwrite %s?�print command (can be a shell expression)�text changed by external editor�text not changed by external editor�xterm -e vi %s�Project-Id-Version: gjots2 Report-Msgid-Bugs-To: PO-Revision-Date: 2005-12-24 16:45+1000 Last-Translator: Bob hepple <bhepple@freeshell.org> Language-Team: <en@li.org> Language: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit � Options � Print Range � Print command � Print formatting � Sort Parameters � Sort Sublevels �%F�%d items merged�%d substitutions�%d tree items copied�%d tree items cut�%s is locked by pid %d�%s is not readable�%s is not writable�%s requires python%s or higher.�%s version %s�%s: Warning: opening gjots2 manual from %s �%s: bad geometry specification: %s �%s: locked by process number %d�%s: no permission�: Error�: Save?�: version �Add a time/date stamp (see preferences)�Add a time/date stamp (see prefs)�All�All text selected�All tree items selected�Alphabetic�Ascending�Auto Number�Auto-number format: �Backwards�Bad password�Bad regular expression�Bold titles�Can't delete the root item�Can't go any further�Can't go further�Can't go further!�Can't lock file�Can't lock file %s: already locked by process %d�Can't make a lockfile in �Can't merge items that have children�Can't merge the root item�Can't open "�Can't run '%s'�Can't write to �Cancel�Choose a font for the text panel�Clear�Close�Confirm: �Copy�Copy selected items�Could not find the ccrypt program - please install it and try again�Courier 10 Pitch 10�Create a new child�Create a new item�Create a new page�Current text font�Cut�Cut selected items�D_emote�Date�Date format:�Demote�Descending�Don't ignore case�Down�Edit current item in an external editor�Enter password for �Export�Export selected items to a gjots file�Export to ...�Ext.Ed.�External editor�External formatter "%s" is not installed - can't format�Feeds a page before every new gjots item�File cannot be locked�Find�Find & replace�Find string is a regular expression (see 'man 7 regex')�Find:�Format the current paragraph�Found�Global�Hide All�Hide all items except for the top level�Hide all items except the top level�How many sublevels to sort (0 for none; -1 for 'all')�Import�Import from ...�Import items from a gjots file�Internal error�Internal error!�Invoke an external editor on the current item�Line length for paragraph wrapping�Make a new item from the current selection�Match case�Merge Items�Merge current items into the first one�Merge selected items together�Move selection down�Move selection up�New Child�New Page�New _Child�New file�New...>>>�No changes to save�No child!�No parent!�Not found�Not saved.�Nothing selected�Nothing selected!�Nothing to merge�Nothing to paste�Nothing to save�Nothing to sort!�Numeric�Open file ...�Open gjots preferences window�P_romote�Page�Page feeds�Password was not confirmed�Password: �Paste�Paste selected items�Popup the find and replace dialog�Popup the sort dialog�Popup the sort text dialog�Prefs�Print�Print the current page�Print the entire gjots file�Print the gjots item titles in bold�Print the selected pages or text�Print this document�Promote�Read only�Read the online manual (using gjots)�Regular Expression�Replace�Replace All�Replace:�Replace?�S_ort Tree�Save�Save as ...�Save current work?�Save gjots document�Saved.�Search backwards�Searches entire file not just this entry�Select Font�Selection�Selection becomes a child of the previous item�Selection becomes a sibling to their parent�Show All�Show _Icon Text�Show all items below the current item�Show the related icon text�Sort�Sort Text�Sort Tree�Sort in alphabetic order�Sort in ascending order�Sort in descending order�Sort in numeric order�Split Item�Split the text selection into a new item�Status _Bar�String to replace�String to search for�Te_xt�Text Line Length: �Text copied�Text cut�Text formatter: �Text pasted�That file is already open!�To_p Toolbar�Toggle the read-only flag if possible�Toggles the main toolbar�Toggles tree tool bar�Tre_e Toolbar�Tree is empty!�Tree items pasted�Try again�Up�Use -h for help �Wrap�Wrap the current paragraph to the current line length�_Export�_External Edit�_Format�_Hide All�_Import�_Merge Items�_New Page�_Read-only�_Show All�_Sort Text�_Split Item�_Time stamp�_Tree�_get_settings: Cant find sortAscendingRadioButton�e.g. lpr: �eg. 1 for 1.2.1, a�fmt -w %d �gjots: preferences�http://bhepple.freeshell.org/gjots2�label1�label2�overwrite %s?�print command (can be a shell expression)�text changed by external editor�text not changed by external editor�xterm -e vi %s��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/es.po�������������������������������������������������������������������������������0000664�0000000�0000000�00000073403�14016300235�0014322�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Messages master file for gjots2. # Copyright (C) 2005-2012 Bob Hepple # This file is distributed under the same license as the gjots2 package. # Bob Hepple <bhepple@freeshell.org>, 2012. # msgid "" msgstr "" "Project-Id-Version: Gjots2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-30 18:18+1000\n" "PO-Revision-Date: 2010-11-22 20:02+0100\n" "Last-Translator: Cecilio Salmeron <s.cecilio@gmail.com>\n" "Language-Team: SPANISH <bhepple@freeshell.org>\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Spanish\n" "X-Poedit-Country: SPAIN\n" "X-Poedit-SourceCharset: utf-8\n" #: ../ui/about.ui:12 #, fuzzy msgid "Copyright Bob Hepple 2002-2020" msgstr "Copyright Bob Hepple 2002-2012" #: ../ui/about.ui:13 msgid "http://bhepple.freeshell.org/gjots2" msgstr "http://bhepple.freeshell.org/gjots2" #: ../ui/about.ui:25 msgid "\n" msgstr "" #: ../ui/fileDialog.ui:69 msgid "Open file read only" msgstr "Abrir como 'sólo lectura'" #: ../ui/fileDialog.ui:73 msgid "To open the file in read-only mode." msgstr "Para abrir eln archivo en modo de sólo lectura." #: ../ui/findDialog.ui:8 msgid "Find & replace" msgstr "Buscar y sustituir" #: ../ui/findDialog.ui:34 msgid "Find:" msgstr "Buscar:" #: ../ui/findDialog.ui:47 msgid "Replace:" msgstr "Sustituir:" #: ../ui/findDialog.ui:64 msgid "String to search for" msgstr "Texto a buscar" #: ../ui/findDialog.ui:80 msgid "String to replace" msgstr "Texto a sustituir" #: ../ui/findDialog.ui:114 ../ui/gjots.ui:844 msgid "Find" msgstr "Buscar" #: ../ui/findDialog.ui:130 msgid "Close" msgstr "Cerrar" #: ../ui/findDialog.ui:146 msgid "Replace" msgstr "Sustituir" #: ../ui/findDialog.ui:162 msgid "Replace All" msgstr "Sustituir todo" #: ../ui/findDialog.ui:178 msgid "Cancel" msgstr "Cancelar" #: ../ui/findDialog.ui:197 msgid "Clear" msgstr "Limpiar" #: ../ui/findDialog.ui:257 msgid "Match case" msgstr "Coincidir mayúsculas y minúsculas" #: ../ui/findDialog.ui:261 msgid "Don't ignore case" msgstr "Distinguir mayúsculas/minúsculas" #: ../ui/findDialog.ui:271 msgid "Regular Expression" msgstr "Expresión regular" #: ../ui/findDialog.ui:275 msgid "Find string is a regular expression (see 'man 7 regex')" msgstr "El texto a buscar es una expresión regular (ver 'man 7 regex')" #: ../ui/findDialog.ui:287 msgid "Backwards" msgstr "Hacia atrás" #: ../ui/findDialog.ui:291 msgid "Search backwards" msgstr "Búscar hacia atrás" #: ../ui/findDialog.ui:306 msgid "Global" msgstr "Global" #: ../ui/findDialog.ui:310 msgid "Searches entire file not just this entry" msgstr "Buscar en todo el archivo, no sólo en esta entrada" #: ../ui/findDialog.ui:327 msgid " Options " msgstr " Opciones" #: ../ui/fontDialog.ui:9 msgid "Select Font" msgstr "Seleccionar tipografía" #: ../ui/generalDialog.ui:9 msgid "window1" msgstr "ventana1" #: ../ui/generalDialog.ui:22 ../ui/generalDialog.ui:60 #: ../ui/generalDialog.ui:115 msgid "label1" msgstr "etiqueta1" #: ../ui/generalDialog.ui:46 msgid "label2" msgstr "etiqueta2" #: ../ui/generalDialog.ui:193 msgid "Try again" msgstr "Inténtelo de nuevo" #: ../ui/generalDialog.ui:209 msgid "Read only" msgstr "Sólo lectura" #: ../ui/gjots.ui:24 msgid "_File" msgstr "_Archivo" #: ../ui/gjots.ui:88 msgid "_Import" msgstr "_Importar" #: ../ui/gjots.ui:91 msgid "Import items from a gjots file" msgstr "Importar items desde un archivo gjots" #: ../ui/gjots.ui:99 msgid "_Export" msgstr "_Exportar" #: ../ui/gjots.ui:102 msgid "Export selected items to a gjots file" msgstr "Exportar los items seleccionados a un archivo gjots" #: ../ui/gjots.ui:135 msgid "Toggle the read-only flag if possible" msgstr "Cambiar indicador de sólo lectura, si es posible" #: ../ui/gjots.ui:136 msgid "_Read-only" msgstr "_Sólo lectura" #: ../ui/gjots.ui:152 #, fuzzy msgid "Exit gjots2" msgstr "Cerrar gjots" #: ../ui/gjots.ui:167 msgid "_Edit" msgstr "_Editar" #: ../ui/gjots.ui:263 msgid "Find Next" msgstr "Buscar siguiente" #: ../ui/gjots.ui:273 msgid "Find Previous" msgstr "" #: ../ui/gjots.ui:299 msgid "_View" msgstr "_Ver" #: ../ui/gjots.ui:307 msgid "_Show All" msgstr "Mostrar _todos" #: ../ui/gjots.ui:310 ../ui/gjots.ui:1085 msgid "Show all items below the current item" msgstr "Mostrar todos los items debajo del actual" #: ../ui/gjots.ui:318 msgid "_Hide All" msgstr "_Ocultar todo" #: ../ui/gjots.ui:321 msgid "Hide all items except the top level" msgstr "Ocultar todos los items excepto los de primer nivel" #: ../ui/gjots.ui:337 msgid "Toggles the main toolbar" msgstr "Muestra/oculta la barra principal de herramientas" #: ../ui/gjots.ui:338 msgid "To_p Toolbar" msgstr "Herramientas _principales" #: ../ui/gjots.ui:347 msgid "Toggles tree tool bar" msgstr "Muestra/oculta la barra de herramientas de árbol" #: ../ui/gjots.ui:348 msgid "Tre_e Toolbar" msgstr "Herramientas de _árbol" #: ../ui/gjots.ui:357 msgid "Show the related icon text" msgstr "Mostrar el icono asociado al texto" #: ../ui/gjots.ui:358 msgid "Show _Icon Text" msgstr "Mostrar _icono de texto" #: ../ui/gjots.ui:367 msgid "Status _Bar" msgstr "Barra de _estado" #: ../ui/gjots.ui:380 msgid "_Tree" msgstr "Ar_bol" #: ../ui/gjots.ui:388 msgid "_New Page" msgstr "_Nueva página" #: ../ui/gjots.ui:391 msgid "Create a new page" msgstr "Crear una página nueva" #: ../ui/gjots.ui:400 msgid "New _Child" msgstr "Nuevo _hijo" #: ../ui/gjots.ui:403 ../ui/gjots.ui:920 msgid "Create a new child" msgstr "Añade un nuevo hijo" #: ../ui/gjots.ui:420 ../ui/gjots.ui:950 msgid "Move selection up" msgstr "Mover la selección hacia arriba" #: ../ui/gjots.ui:431 ../ui/gjots.ui:965 msgid "Move selection down" msgstr "Mover la selección hacia abajo" #: ../ui/gjots.ui:439 msgid "P_romote" msgstr "_Promocionar" #: ../ui/gjots.ui:442 ../ui/gjots.ui:980 msgid "Selection becomes a sibling to their parent" msgstr "La selección se colocará al mismo nivel que su padre" #: ../ui/gjots.ui:450 msgid "D_emote" msgstr "_Rebajar" #: ../ui/gjots.ui:453 ../ui/gjots.ui:995 msgid "Selection becomes a child of the previous item" msgstr "La selección se colocará como hijo del item al que precede" #: ../ui/gjots.ui:467 msgid "_Split Item" msgstr "_Dividir item" #: ../ui/gjots.ui:470 msgid "Make a new item from the current selection" msgstr "Transforma la selección en un nuevo item" #: ../ui/gjots.ui:478 msgid "_Merge Items" msgstr "_Fusionar items" #: ../ui/gjots.ui:481 msgid "Merge current items into the first one" msgstr "Fusiona los items seleccionados en uno único" #: ../ui/gjots.ui:489 msgid "S_ort Tree" msgstr "_Ordenar árbol" #: ../ui/gjots.ui:492 ../ui/gjots.ui:1100 msgid "Popup the sort tree dialog" msgstr "Muestra el diálogo de 'ordenar árbol'" #: ../ui/gjots.ui:506 msgid "Te_xt" msgstr "Te_xto" #: ../ui/gjots.ui:514 msgid "_Format" msgstr "_Formato" #: ../ui/gjots.ui:517 msgid "Format the current paragraph" msgstr "Da formato al párrafo actual" #: ../ui/gjots.ui:526 msgid "_Time stamp" msgstr "Fecha y _hora" #: ../ui/gjots.ui:529 msgid "Add a time/date stamp (see preferences)" msgstr "Añade fecha y hora (ver preferencias)" #: ../ui/gjots.ui:538 msgid "_External Edit" msgstr "_Editor externo" #: ../ui/gjots.ui:541 msgid "Edit current item in an external editor" msgstr "Edita el item actual en un editor externo" #: ../ui/gjots.ui:549 msgid "_Sort Text" msgstr "_Ordenar texto" #: ../ui/gjots.ui:552 msgid "Popup the sort text dialog" msgstr "Muestra el diálogo de 'ordenar texto'" #: ../ui/gjots.ui:566 msgid "_Help" msgstr "_Ayuda" #: ../ui/gjots.ui:574 msgid "_Read Manual" msgstr "_Leer manual" #: ../ui/gjots.ui:577 msgid "Read the online manual (using gjots)" msgstr "Leer el manual en línea (usando gjots)" #: ../ui/gjots.ui:621 msgid "Popup the 'Find'menu" msgstr "" #: ../ui/gjots.ui:651 msgid "Find the previous occurance" msgstr "" #: ../ui/gjots.ui:667 msgid "Find the next occurance" msgstr "" #: ../ui/gjots.ui:693 msgid "Save gjots document" msgstr "Guarda un documento gjots" #: ../ui/gjots.ui:694 msgid "Save" msgstr "Guardar" #: ../ui/gjots.ui:708 msgid "Print this document" msgstr "Imprime este documento" #: ../ui/gjots.ui:709 ../ui/printDialog.ui:8 msgid "Print" msgstr "Imprimir" #: ../ui/gjots.ui:738 msgid "Cut selected items" msgstr "Quita los items seleccionados" #: ../ui/gjots.ui:739 msgid "Cut" msgstr "Cortar" #: ../ui/gjots.ui:753 msgid "Copy selected items" msgstr "Copia los items seleccionados" #: ../ui/gjots.ui:754 msgid "Copy" msgstr "Copiar" #: ../ui/gjots.ui:768 msgid "Paste selected items" msgstr "Pega los items seleccionados" #: ../ui/gjots.ui:769 msgid "Paste" msgstr "Pegar" #: ../ui/gjots.ui:798 msgid "Wrap the current paragraph to the current line length" msgstr "Ajusta el párrafo actual para amoldarse al tamaño de línea" #: ../ui/gjots.ui:799 msgid "Wrap" msgstr "Ajustar" #: ../ui/gjots.ui:813 msgid "Invoke an external editor on the current item" msgstr "LLama a un editor externo para editar el item actual" #: ../ui/gjots.ui:814 msgid "Ext.Ed." msgstr "Ed.ext." #: ../ui/gjots.ui:828 msgid "Add a time/date stamp (see prefs)" msgstr "Añade fecha y hora (ver preferencias)" #: ../ui/gjots.ui:829 msgid "Date" msgstr "Fecha" #: ../ui/gjots.ui:843 msgid "Popup the find and replace dialog" msgstr "Muestra el diálogo de 'buscar y reemplazar'" #: ../ui/gjots.ui:858 msgid "Popup the sort dialog" msgstr "Muestra el diálogo de 'ordenar'" #: ../ui/gjots.ui:859 ../ui/sortDialog.ui:15 msgid "Sort" msgstr "Ordenar" #: ../ui/gjots.ui:873 msgid "Open gjots preferences window" msgstr "Abre la ventana de 'preferencias' de gjots" #: ../ui/gjots.ui:874 msgid "Prefs" msgstr "Preferencias" #: ../ui/gjots.ui:905 msgid "Create a new item" msgstr "Crea un nuevo item" #: ../ui/gjots.ui:906 ../ui/treeContextMenu.ui:45 msgid "New Page" msgstr "Nueva página" #: ../ui/gjots.ui:921 ../ui/treeContextMenu.ui:52 msgid "New Child" msgstr "Nuevo hijo" #: ../ui/gjots.ui:951 msgid "Up" msgstr "Subir" #: ../ui/gjots.ui:966 msgid "Down" msgstr "Bajar" #: ../ui/gjots.ui:981 ../ui/treeContextMenu.ui:74 msgid "Promote" msgstr "Promocionar" #: ../ui/gjots.ui:996 ../ui/treeContextMenu.ui:82 msgid "Demote" msgstr "Rebajar" #: ../ui/gjots.ui:1025 msgid "Split the text selection into a new item" msgstr "Corta la selección y crea con ella un nuevo item" #: ../ui/gjots.ui:1026 msgid "Split Item" msgstr "Dividir item" #: ../ui/gjots.ui:1040 msgid "Merge selected items together" msgstr "Fusina los items seleccionados" #: ../ui/gjots.ui:1041 ../ui/treeContextMenu.ui:89 msgid "Merge Items" msgstr "Fusionar items" #: ../ui/gjots.ui:1070 msgid "Hide all items except for the top level" msgstr "Oculta todos los items excepto los de primer nivel" #: ../ui/gjots.ui:1071 ../ui/treeContextMenu.ui:103 msgid "Hide All" msgstr "Ocultar todo" #: ../ui/gjots.ui:1086 ../ui/treeContextMenu.ui:96 msgid "Show All" msgstr "Mostrar todo" #: ../ui/gjots.ui:1101 ../ui/treeContextMenu.ui:110 ../lib/sortDialog.py:394 msgid "Sort Tree" msgstr "Ordenar árbol" #: ../ui/prefsDialog.ui:20 msgid "gjots: preferences" msgstr "gjots: preferencias" #: ../ui/prefsDialog.ui:49 msgid "Choose a font for the text panel" msgstr "Elegir tipografía para el panel de texto" #: ../ui/prefsDialog.ui:65 msgid "Date format:" msgstr "Formato de fecha:" #: ../ui/prefsDialog.ui:79 #, fuzzy msgid "Format for the timestamp function (see strftime(3)) eg %F" msgstr "Formato para la funcion de fecha/hora (ver strftime(3))" #: ../ui/prefsDialog.ui:80 msgid "%F" msgstr "%F" #: ../ui/prefsDialog.ui:99 #, fuzzy msgid "" "External program to edit a page (%s is replaced by the name of the temporary " "edit file) eg xterm -e vi %s" msgstr "" "Programa externo para editar una página (%s será reemplazado por el nombre " "del archivo temporal a editar)" #: ../ui/prefsDialog.ui:100 msgid "xterm -e vi %s" msgstr "xterm -e vi %s" #: ../ui/prefsDialog.ui:120 msgid "External editor" msgstr "Editor externo" #: ../ui/prefsDialog.ui:135 msgid "Text Line Length: " msgstr "Tamaño de línea de texto:" #: ../ui/prefsDialog.ui:149 msgid "Line length for paragraph wrapping" msgstr "Tamaño de línea para ajuste de párrafo" #: ../ui/prefsDialog.ui:172 msgid "Text formatter: " msgstr "Formateador de texto:" #: ../ui/prefsDialog.ui:184 #, fuzzy msgid "" "External program to pipe text for formatting (%d is replaced by the current " "line width) eg fmt -w %d " msgstr "" "Programa externo al que enviar el texto a formatear (%d será reemplazado por " "el tamaño actual de línea)" #: ../ui/prefsDialog.ui:185 msgid "fmt -w %d " msgstr "fmt -w %d " #: ../ui/prefsDialog.ui:202 msgid "Current text font" msgstr "Tipografía actual:" #: ../ui/prefsDialog.ui:204 msgid "Courier 10 Pitch 10" msgstr "Courier 10 Pitch 10" #: ../ui/prefsDialog.ui:224 msgid "AutoSave interval:" msgstr "" #: ../ui/prefsDialog.ui:238 msgid "Seconds of inactivity to trigger an AutoSave (0 = no AutoSave)" msgstr "" #: ../ui/printDialog.ui:38 msgid "e.g. lpr: " msgstr "ej. lpr:" #: ../ui/printDialog.ui:54 msgid "print command (can be a shell expression)" msgstr "orden para imprimir (puede ser una 'shell expression')" #: ../ui/printDialog.ui:76 msgid " Print command " msgstr " Orden para imprimir" #: ../ui/printDialog.ui:104 msgid "Page" msgstr "Página" #: ../ui/printDialog.ui:108 msgid "Print the current page" msgstr "Imprime la página actual" #: ../ui/printDialog.ui:120 msgid "Selection" msgstr "Selección" #: ../ui/printDialog.ui:124 msgid "Print the selected pages or text" msgstr "Imprime las páginas o el texto seleccionado" #: ../ui/printDialog.ui:137 msgid "All" msgstr "Todo" #: ../ui/printDialog.ui:141 msgid "Print the entire gjots file" msgstr "Imprime el archivo gjots completo" #: ../ui/printDialog.ui:160 msgid " Print Range " msgstr " Imprimir rango" #: ../ui/printDialog.ui:193 msgid "Page feeds" msgstr "Páginas independientes" #: ../ui/printDialog.ui:197 msgid "Feeds a page before every new gjots item" msgstr "Usa una página nueva para cada item gjots" #: ../ui/printDialog.ui:209 msgid "Bold titles" msgstr "Títulos en negrita" #: ../ui/printDialog.ui:212 msgid "Print the gjots item titles in bold" msgstr "Imprime los títulos de los items en negrita" #: ../ui/printDialog.ui:224 msgid "Auto Number" msgstr "Autonumerar" #: ../ui/printDialog.ui:251 msgid "Auto-number format: " msgstr "Formato para autonumeración:" #: ../ui/printDialog.ui:262 msgid "eg. 1 for 1.2.1, a" msgstr "ej.: 1 para 1.2.1, a" #: ../ui/printDialog.ui:289 msgid " Print formatting " msgstr " Imprimir con formato" #: ../ui/sortDialog.ui:43 msgid "Ascending" msgstr "Ascendente" #: ../ui/sortDialog.ui:47 msgid "Sort in ascending order" msgstr "Ordenar en secuencia ascendente" #: ../ui/sortDialog.ui:58 msgid "Descending" msgstr "Descendente" #: ../ui/sortDialog.ui:62 msgid "Sort in descending order" msgstr "Ordenar en secuencia descendente" #: ../ui/sortDialog.ui:76 msgid "Alphabetic" msgstr "Alfabético" #: ../ui/sortDialog.ui:80 msgid "Sort in alphabetic order" msgstr "Ordenar según orden alfabético" #: ../ui/sortDialog.ui:93 msgid "Numeric" msgstr "Numérico" #: ../ui/sortDialog.ui:97 msgid "Sort in numeric order" msgstr "Ordenar según orden numérico" #: ../ui/sortDialog.ui:119 msgid " Sort Parameters " msgstr " Prámetros para ordenar" #: ../ui/sortDialog.ui:149 msgid "How many sublevels to sort (0 for none; -1 for 'all')" msgstr "¿Cuántos subniveles hay que ordenar? (0=ninguno; -1=todos) " #: ../ui/sortDialog.ui:171 msgid " Sort Sublevels " msgstr " Niveles a ordenar" #: ../ui/treeContextMenu.ui:30 msgid "Select _All" msgstr "Seleccionar_todo" #: ../ui/treeContextMenu.ui:117 msgid "Import" msgstr "Importar" #: ../ui/treeContextMenu.ui:124 msgid "Export" msgstr "Exportar" #: ../gjots2:23 #, fuzzy msgid "" "Usage: gjots [OPTIONS] [FILENAME]\n" "A gtk/X11 jotter\n" "\n" "OPTIONS:\n" "-h, --help: this help\n" "-d, --debug: debug to stdout\n" "-t, --trace: trace lines as they execute\n" "-g 123x456, --geometry=123x456: initial geometry (X x Y)\n" "-p, --purge-password don't remember password\n" "-r, --readonly: no editing (or locking)\n" "-V, --version: print the version and exit\n" "\n" "FILENAME:\n" " gjots data filename (default is $HOME/.gjotsfile)\n" msgstr "" "Uso: gjots [OPCIONES] [NOMBRE_DE_ARCHIVO]\n" "Un block de notas para gnome-2/X11\n" "\n" "OPCIONES:\n" "-h, --help: esta ayuda\n" "-d, --debug: enviar traza de depuración a stdout\n" "-g 123x456, --geometry=123x456: geometría inicial (X x Y)\n" "-p, --purge-password no almacenar contraseña\n" "-r, --readonly: no permitir edición (ni bloqueo)\n" "-V, --version: mostrar versión y salir\n" "\n" "NOMBRE_DE_ARCHIVO:\n" "\tarchivo gjots a editar (por defecto $HOME/.gjotsfile)\n" #: ../gjots2:89 #, python-format msgid "%s requires python%s or higher." msgstr "%s necesita python %s o más reciente." #: ../gjots2:102 msgid "Use -h for help\n" msgstr "Use -h para ayuda\n" #: ../gjots2:116 #, python-format msgid "%s version %s" msgstr "%s versión %s" #: ../lib/gui.py:51 ../lib/gui.py:996 msgid "Text pasted" msgstr "Texto pegado" #: ../lib/gui.py:179 #, python-format msgid "External formatter \"%s\" is not installed - can't format" msgstr "" "El formateador externo \"%s\" no está instalado . No se puede dar formato." #: ../lib/gui.py:564 ../lib/gui.py:675 ../lib/gui.py:679 ../lib/gui.py:745 #: ../lib/gui.py:749 ../lib/gui.py:812 ../lib/gui.py:817 ../lib/gui.py:1043 #: ../lib/gui.py:1052 ../lib/gui.py:1138 ../lib/gui.py:1147 ../lib/gui.py:1183 #: ../lib/gui.py:1188 ../lib/gui.py:1219 ../lib/gui.py:1608 ../lib/gui.py:2382 #: ../lib/gui.py:2401 ../lib/gui.py:2430 ../lib/gui.py:2461 ../lib/file.py:466 #: ../lib/file.py:471 ../lib/sortDialog.py:329 ../lib/sortDialog.py:334 #: ../lib/printDialog.py:110 ../lib/printDialog.py:115 msgid "Nothing selected" msgstr "No hay nada seleccionado" #: ../lib/gui.py:568 ../lib/gui.py:684 ../lib/gui.py:753 ../lib/gui.py:822 #: ../lib/gui.py:934 ../lib/gui.py:1224 ../lib/gui.py:2386 #: ../lib/sortDialog.py:345 msgid "No parent!" msgstr "¡No hay padre!" #: ../lib/gui.py:572 ../lib/gui.py:719 msgid "No child!" msgstr "¡No hay hijo!" #: ../lib/gui.py:580 ../lib/gui.py:693 msgid "Can't go any further" msgstr "No se puede ir más allá" #: ../lib/gui.py:616 ../lib/gui.py:840 msgid "Internal error!" msgstr "¡Error interno!" #: ../lib/gui.py:757 msgid "Can't go further!" msgstr "¡No se puede ir más all!" #: ../lib/gui.py:973 msgid "Text cut" msgstr "Texto cortado" #: ../lib/gui.py:984 msgid "Text copied" msgstr "Texto copiado" #: ../lib/gui.py:1005 msgid "All text selected" msgstr "Todo el texto seleccionado" #: ../lib/gui.py:1015 msgid "All tree items selected" msgstr "Todos los items del arbol seleccionados" #: ../lib/gui.py:1023 msgid "Nothing selected!" msgstr "¡No hay nada seleccionado!" #: ../lib/gui.py:1047 msgid "Can't merge the root item" msgstr "No puede fusionarse el nodo raíz" #: ../lib/gui.py:1056 msgid "Nothing to merge" msgstr "Nada que fusionar" #: ../lib/gui.py:1063 msgid "Can't merge items that have children" msgstr "No pueden fusionarse items que tienen hijos" #: ../lib/gui.py:1093 #, python-format msgid "%d items merged" msgstr "Se han fusionado %d items " #: ../lib/gui.py:1142 msgid "Can't delete the root item" msgstr "No puede eliminarse el nodo raíz" #: ../lib/gui.py:1175 #, python-format msgid "%d tree items cut" msgstr "Cortados %d items del árbol" #: ../lib/gui.py:1205 #, python-format msgid "%d tree items copied" msgstr "Copiados %d items del árbol" #: ../lib/gui.py:1214 msgid "Nothing to paste" msgstr "Nada que pegar" #: ../lib/gui.py:1237 msgid "Tree items pasted" msgstr "Items del árbol pegados" #: ../lib/gui.py:1258 #, fuzzy msgid "Can't write tempfile" msgstr "No puede escribirse" #: ../lib/gui.py:1278 #, python-format msgid "Can't run '%s'" msgstr "No puede ejecutarse '%s'" #: ../lib/gui.py:1287 #, fuzzy msgid "Can't read tempfile " msgstr "No puede leerse" #: ../lib/gui.py:1293 msgid "text changed by external editor" msgstr "texto modificado en un editor externo" #: ../lib/gui.py:1295 msgid "text not changed by external editor" msgstr "texto no modificado en un editor externo" #: ../lib/gui.py:1314 msgid ": Error" msgstr ": Error" #: ../lib/gui.py:1327 #, python-format msgid "Can't lock file %s: already locked by process %d" msgstr "No puede bloquearse el archivo %s: Está retenido por el proceso %d" #: ../lib/gui.py:1510 msgid ": Save?" msgstr ": ¿Guardar?" #: ../lib/gui.py:1511 msgid "Save current work?" msgstr "¿Guardar el trabajo actual?" #: ../lib/gui.py:1532 msgid "New file" msgstr "Nuevo archivo" #: ../lib/gui.py:1556 msgid "Open file ..." msgstr "Abrir archivo ..." #: ../lib/gui.py:1568 msgid "No changes to save" msgstr "No hay cambios que guardar" #: ../lib/gui.py:1572 ../lib/gui.py:1593 msgid "Saved." msgstr "Guardado." #: ../lib/gui.py:1574 ../lib/gui.py:1595 ../lib/file.py:456 msgid "Not saved." msgstr "No guardado." #: ../lib/gui.py:1589 msgid "Nothing to save" msgstr "Nada que guardar" #: ../lib/gui.py:1591 ../lib/file.py:693 msgid "Save as ..." msgstr "Guardar como ..." #: ../lib/gui.py:1605 msgid "Import from ..." msgstr "Importar desde ..." #: ../lib/gui.py:1616 msgid "Export to ..." msgstr "Exportar a ..." #: ../lib/gui.py:1930 ../lib/gui.py:1933 #, python-format msgid "%s: Warning: opening gjots2 manual from %s\n" msgstr "%s: Atención: abriendo el manual de gjots2 desde %s\n" #: ../lib/gui.py:2317 msgid "" "gjots2: warning: selection list is NULL. Skipping tree selection changed \n" "event." msgstr "" "gjots2: Atención: la lista de selección está vacía. Se ignora el evento de \n" "cambio en seleción de arbol." #: ../lib/gui.py:2390 msgid "Can't go further" msgstr "No puede irse más allá" #: ../lib/gui.py:2419 msgid "Tree is empty!" msgstr "¡El árbol está vacío!" #: ../lib/gui.py:2716 msgid "Bad regular expression" msgstr "Expresión regular no válida" #: ../lib/gui.py:2808 #, python-format msgid "%s: bad geometry specification: %s\n" msgstr "%s: datos de geometría no válidos: %s\n" #: ../lib/gui.py:2899 msgid "New...>>>" msgstr "Nuevo...>>>" #: ../lib/gui.py:2936 msgid "Install gtksourceview to enable undo/redo" msgstr "" #: ../lib/gui.py:3102 msgid ": version " msgstr ": versión " #: ../lib/find.py:70 ../lib/find.py:93 msgid "Not found" msgstr "No encontrado" #: ../lib/find.py:72 msgid "Found" msgstr "Encontrado" #: ../lib/find.py:96 msgid "Replace?" msgstr "¿Sustituir?" #: ../lib/find.py:113 #, python-format msgid "%d substitutions" msgstr "%d sustituciones" #: ../lib/file.py:255 msgid "Enter password for " msgstr "Introduzca contraseña para " #: ../lib/file.py:257 #, fuzzy msgid ": Enter Password" msgstr "gjots2: Introduzca contraseña" #: ../lib/file.py:259 msgid "Password: " msgstr "Contraseña:" #: ../lib/file.py:260 msgid "Confirm: " msgstr "Confirmar:" #: ../lib/file.py:268 msgid "Password was not confirmed" msgstr "La contraseña no se ha confirmado" #: ../lib/file.py:275 msgid "Could not find the ccrypt program - please install it and try again" msgstr "" "No puede encontrarse el programa ccrypt. Por favor, instálelo y pruebe de " "nuevo" #: ../lib/file.py:308 msgid "" "Neither gpg2 nor gpg are available - please install one (perhaps package " "gnupg2) and try again" msgstr "" #: ../lib/file.py:328 #, fuzzy msgid "No openssl program - please install it and try again" msgstr "" "No puede encontrarse el programa openssl. Por favor, instálelo y pruebe de " "nuevo" #: ../lib/file.py:354 #, fuzzy msgid "No org2gjots program - please install it and try again" msgstr "" "No puede encontrarse el programa openssl. Por favor, instálelo y pruebe de " "nuevo" #: ../lib/file.py:412 msgid "Can't open \"" msgstr "No puede abrirse \"" #: ../lib/file.py:415 msgid "Bad password" msgstr "Contraseña incorrecta" #: ../lib/file.py:418 msgid "File cannot be locked" msgstr "El archivo no puede bloquearse" #: ../lib/file.py:431 ../lib/file.py:489 msgid "failed!" msgstr "" #: ../lib/file.py:457 msgid "Can't write to " msgstr "No se puede escribir en " #: ../lib/file.py:460 msgid "Can't lock file" msgstr "No se puede bloquear el archivo" #: ../lib/file.py:597 #, python-format msgid "%s is not readable" msgstr "%s no puede leerse" #: ../lib/file.py:613 #, python-format msgid "%s: no permission" msgstr "%s: permiso denegado" #: ../lib/file.py:615 #, python-format msgid "%s: locked by process number %d" msgstr "%s: bloqueado por el proceso %d" #: ../lib/file.py:617 #, fuzzy msgid ": can't lock file." msgstr "gjots2: no se bloquear archivo." #: ../lib/file.py:705 msgid "That file is already open!" msgstr "¡Ese archivo ya está abierto!" #: ../lib/file.py:713 ../lib/file.py:787 #, fuzzy msgid ": file has changed" msgstr "gjots2: %s modificado." #: ../lib/file.py:714 #, fuzzy, python-format msgid "File changed since it was read - copied to %s " msgstr "" "'%s' ha sido modificado desde que fue leído.\n" "¿Sobreescribir?" #: ../lib/file.py:731 #, python-format msgid "%s is locked by pid %d" msgstr "%s está bloqueado por pid %d" #: ../lib/file.py:735 msgid "Can't make a lockfile in " msgstr "No puede crease archivo de bloqueo en " #: ../lib/file.py:748 #, python-format msgid "%s is not writable" msgstr "%s protegido contra escritura" #: ../lib/file.py:751 #, fuzzy, python-format msgid ": %s already exists." msgstr "gjots2: %s ya existe." #: ../lib/file.py:752 #, python-format msgid "overwrite %s?" msgstr "¿sobreescribir %s?" #: ../lib/file.py:788 #, python-format msgid "File changed since it was read - so it was copied to %s " msgstr "" #: ../lib/sortDialog.py:125 msgid "_get_settings: Cant find sortAscendingRadioButton" msgstr "_get_settings: No se encuentra sortAscendingRadioButton" #: ../lib/sortDialog.py:165 msgid "Internal error" msgstr "Error interno" #: ../lib/sortDialog.py:303 msgid "Nothing to sort!" msgstr "¡Nada que ordenar!" #: ../lib/sortDialog.py:398 msgid "Sort Text" msgstr "Ordenar texto" #, fuzzy #~ msgid "" #~ "Rui Nibau (fr) <rui.nibau@omacronides.com>\n" #~ "Robert Emil Berge (no, nb) <filoktetes@linuxophic.org>\n" #~ "Сергей Безденежных (Sergey Bezdenezhnyh) (ru) <sib-mail@mtu-net.ru>\n" #~ "Raimondo Giammanco (it) <rongten@member.fsf.org>\n" #~ "Martin Sin (cs) <martin.sin@zshk.cz>\n" #~ "Cecilio Salmeron (es) <s.cecilio@gmail.com>\n" #~ "Aleksa Šušulić (sl) <susulic@gmail.com>\n" #~ "Uwe Steinmann (de) <uwe@steinmann.cx>\n" #~ "曹晉維 (Michael Tsao) (zh_TW) <cwtsao@sce.pccu.edu.tw>\n" #~ msgstr "" #~ "Rui Nibau (fr) <rui.nibau@omacronides.com>\n" #~ "Robert Emil Berge (no, nb) <filoktetes@linuxophic.org>\n" #~ "Sergey Bezdenezhnyh (ru) <sib-mail@mtu-net.ru>\n" #~ "Raimondo Giammanco (it) <rongten@member.fsf.org>\n" #~ "Martin Sin (cs) <martin.sin@zshk.cz>\n" #~ "Cecilio Salmeron (es) <s.cecilio@gmail.com>\n" #~ msgid "Recent" #~ msgstr "Recientes" #, fuzzy #~ msgid "Exit gjots" #~ msgstr "Cerrar gjots" #~ msgid "Create a new child " #~ msgstr "Crear un nuevo hijo" #, fuzzy #~ msgid "About gjots2" #~ msgstr "Cerrar gjots" #, fuzzy #~ msgid " Find: " #~ msgstr " Buscar:" #~ msgid "abcdefghijk ABCDEFGHIJK" #~ msgstr "abcdefghijk ABCDEFGHIJK" #, python-format #~ msgid "%s requires pygtk-%s.\n" #~ msgstr "%s necesita pygtk-%s.\n" #~ msgid "not initialised" #~ msgstr "No inicializado" #, fuzzy #~ msgid "" #~ "Rui Nibau (fr) <rui.nibau@omacronides.com>\n" #~ "Robert Emil Berge (no, nb) <filoktetes@linuxophic.org>\n" #~ "Sergey Bezdenezhnyh (ru) <sib-mail@mtu-net.ru>\n" #~ "Raimondo Giammanco (it) <rongten@member.fsf.org>\n" #~ "Martin Sin (cs) <martin.sin@zshk.cz>\n" #~ "Cecilio Salmeron (es) <s.cecilio@gmail.com>\n" #~ "Aleksa Šušulić (sl) <susulic@gmail.com>\n" #~ "Uwe Steinmann (de) <uwe@steinmann.cx>\n" #~ "Morgan Antonsson (sv) <morgan.antonsson@gmail.com>" #~ msgstr "" #~ "Rui Nibau (fr) <rui.nibau@omacronides.com>\n" #~ "Robert Emil Berge (no, nb) <filoktetes@linuxophic.org>\n" #~ "Sergey Bezdenezhnyh (ru) <sib-mail@mtu-net.ru>\n" #~ "Raimondo Giammanco (it) <rongten@member.fsf.org>\n" #~ "Martin Sin (cs) <martin.sin@zshk.cz>\n" #~ "Cecilio Salmeron (es) <s.cecilio@gmail.com>\n" #~ msgid "pygtk-2.2 is required for this application!" #~ msgstr "¡Hace falta pygtk-2.2 para ejecutar este programa!" #~ msgid "%s: Warning: running modules from %s\n" #~ msgstr "%s: Atención: módulos ejecutándose en %s\n" #, fuzzy #~ msgid "" #~ "Rui Nibau (fr) <rui.nibau@omacronides.com>\n" #~ "Robert Emil Berge (no, nb) <filoktetes@linuxophic.org>\n" #~ "Sergey Bezdenezhnyh (ru) <sib-mail@mtu-net.ru>\n" #~ "Raimondo Giammanco (it) <rongten@member.fsf.org>\n" #~ "Martin Sin (cs) <martin.sin@zshk.cz>\n" #~ "Cecilio Salmeron (es) <s.cecilio@gmail.com>\n" #~ "Aleksa Šušulić (sl) <susulic@gmail.com>\n" #~ "Uwe Steinmann (de) <uwe@steinmann.cx>" #~ msgstr "" #~ "Rui Nibau (fr) <rui.nibau@omacronides.com>\n" #~ "Robert Emil Berge (no, nb) <filoktetes@linuxophic.org>\n" #~ "Sergey Bezdenezhnyh (ru) <sib-mail@mtu-net.ru>\n" #~ "Raimondo Giammanco (it) <rongten@member.fsf.org>\n" #~ "Martin Sin (cs) <martin.sin@zshk.cz>\n" #~ "Cecilio Salmeron (es) <s.cecilio@gmail.com>\n" #~ msgid "Could not find the gpg program - please install it and try again" #~ msgstr "" #~ "No puede encontrarse el programa gpg. Por favor, instálelo y pruebe de " #~ "nuevo" #~ msgid "_Settings" #~ msgstr "_Preferencias" #~ msgid "Store and organise your random notes" #~ msgstr "Almacene y organice sus notas sueltas y apuntes" #~ msgid "Gjots2 Jotter" #~ msgstr "Gjots2 Jotter" #~ msgid "gjots" #~ msgstr "gjots" #~ msgid "_New" #~ msgstr "_Nuevo" #~ msgid "_Quit" #~ msgstr "_Salir" #~ msgid "_Toolbars" #~ msgstr "_Herramientas" #~ msgid "_Up" #~ msgstr "_Subir" #~ msgid "_Down" #~ msgstr "_Bajar" #~ msgid "Create a new gjots document" #~ msgstr "Crea un nuevo documento gjots" #~ msgid "Open an existing gjots document" #~ msgstr "Abre un documento gjots ya existente" #~ msgid "Open" #~ msgstr "Abrir" #~ msgid "Back" #~ msgstr "Atrás" #~ msgid "Forward" #~ msgstr "Adelante" #~ msgid "translator_credits" #~ msgstr "Cecilio Salmerón" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/es/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0013753�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/es/LC_MESSAGES/���������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0015540�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/es/LC_MESSAGES/gjots2.mo������������������������������������������������������������0000664�0000000�0000000�00000036231�14016300235�0017312�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������t��9���������� ����� ��������������������������������������"�����3�����H�����Z�����q������������ �����+�����#�������������5�����G�����O�� ���W��'���b��!�������������������� ����� ����� ���������� ����� ��������'�� ���>�����J�����e�����z������������0����������$���������� ���7�����D�����S�����c�� ���j������������ ���������������C������������������%�����7�����I�����[�����_�����r�����z�� ���������� ���������������'���������������%����� ��������,�����4��7���D��(���|����������������� �����7������������������4�����:�����A��'���J��#���r��5������������������������������-���!��"���O��*���r�� ����� �����&������������������ �� ��������)�� ���2�����=�� ���F�����P�� ���c�� ���m�� ���x�� ���������������������������������������� �������� ����������;�����D�� ���I�����T�� ���o�����z�������!���������������������������� ����������&��#���B�� ���f������������ �����$��������������� ��������������� ��� ������� ��������'�����:�����N�����U��(���f�� ����� ����� �����.�����+�������� ����� ��%���% �����K �����f �� ���k �� ���u ����� ����� ����� ����� �� ��� ��(��� �� ���!�����!�����1!�����F!�����L!�� ���_!�����k!�����t!�� ���!�����!��#���!�� ���!��%���!�����"�����"�� ���2"�����@"�����O"�� ���a"�����k"�����n"�����"��5���"�����"�����"�����"�����"�����"�����"�� ���"�����"�� ���"�� ��� #�� ���#�� ���!#�� ���,#�� ���6#�� ���A#�� ���M#�����Y#�����_#��1���e#�� ���#�����#�� ���#��P���#�����$��#���$$�����H$�����O$�� ���V$��)���d$�����$��#���$�����$�����$��w��$�� ���a&�����k&�����{&�����&�����&�����&�����&�����&�����&�����'�����'�����;'�����Y'�����l'��&���'�����'��5���'��(���'�����(�����?(�����T(�� ���\(�� ���i(��&���u(��&���(�����(�����(��'���(�� ��� )�� ���)�� ���")�����.)�� ���L)�����Y)�����p)�����)��!���)�����)�����)�����)�����*��C���2*��&���v*��+���*��!���*�����*�����*�����+�����0+��)���9+�����c+�����k+�� ���r+�����}+�����+��P���+�����+�����,�����,�����/,�����G,�����[,�����b,�����,�����,�����,�����,�� ���,��"���,�����,��)���,�����-�����%-��3���.-�����b-�����q-�����y-��I���-��*���-�����-�����.�����#.�����6.��?���G.�����.�����.�� ���.�����.�� ���.��2���.��3���.��=���3/�����q/�����z/��%���/�� ���/�����/��4���/��)���0��)���10��#���[0�����0��-���0�����0�����0�� ���0�� ���1�� ���'1�� ���51�� ���A1�� ���O1�����[1�����v1�����1�� ���1�� ���1�����1�����1�����1�����1�����2�����2�� ���+2�����52�����G2��*���b2�� ���2�����2�����2��"���2�� ���2�����2�����2��,��� 3�� ���:3��&���[3��'���3�� ���3�����3�����3��!���3��,���3��,���)4�����V4�� ���m4�� ���y4��'���4�����4�� ���4�����4�� ���4�� ���4�����4�����5����� 5�����5�����95�� ���S5�����]5��3���r5�����5�����5�� ���5��<���5��6���6�� ���N6�����[6��)���s6��"���6�����6�� ���6�����6�� ���6�����7�� ���&7�����G7�� ���f7��1���s7�����7�����7�����7�����7�����7�� ���7�� ���8�����8�� ���,8�����98��0���Y8�����8��1���8��1���8��1���9�����:9�����R9�����l9�����9�����9�����9�����9��=���9�����9�� ����:����� :�����:�����#:�����,:�� ���3:�� ���A:�����K:�����[:�� ���j:�����w:�����:�����:�� ���:�� ���:�����:�����:��7���:�����;����� ;�� ���";��m���-;�����;��#���;�� ���;�� ���;�����;��6���;��%���2<��(���X<�����<�����<�����������i���`�������������������������z����������w�������)������� ������������������������r�������G����������������~���������������������������������� ������P���o������?�������:������J���������M����������e���������������������������6���������\���������m��������������������������/������Q��������������� ���q������������������}���������������4������T�������s����������������������K��������������j������������,���;������{��������������@�����������b���d����������2������ ������������H���U������������u�������B��������������C������c�����������������3������n���^�������$���1����������h����������������������(���������+���v����������*���'����������F�������������������������k����������<������%������.����������-����������#������������������������������� ���l�������7�����������=���W������Z���������&������E�������0�������������� ������������N������"���������D���������y�������5�����������A����������I������p�����������t������������X���[���Y�������������S���!���>���a������R���L������g�������������|������������������������������8������9����������������V���x��������������������������f��������������������_���O���������]���� Options � Print Range � Print command � Print formatting � Sort Parameters � Sort Sublevels �%F�%d items merged�%d substitutions�%d tree items copied�%d tree items cut�%s is locked by pid %d�%s is not readable�%s is not writable�%s requires python%s or higher.�%s version %s�%s: Warning: opening gjots2 manual from %s �%s: bad geometry specification: %s �%s: locked by process number %d�%s: no permission�: Error�: Save?�: version �Add a time/date stamp (see preferences)�Add a time/date stamp (see prefs)�All�All text selected�All tree items selected�Alphabetic�Ascending�Auto Number�Auto-number format: �Backwards�Bad password�Bad regular expression�Bold titles�Can't delete the root item�Can't go any further�Can't go further�Can't go further!�Can't lock file�Can't lock file %s: already locked by process %d�Can't make a lockfile in �Can't merge items that have children�Can't merge the root item�Can't open "�Can't run '%s'�Can't write to �Cancel�Choose a font for the text panel�Clear�Close�Confirm: �Copy�Copy selected items�Could not find the ccrypt program - please install it and try again�Courier 10 Pitch 10�Create a new child�Create a new item�Create a new page�Current text font�Cut�Cut selected items�D_emote�Date�Date format:�Demote�Descending�Don't ignore case�Down�Edit current item in an external editor�Enter password for �Export�Export selected items to a gjots file�Export to ...�Ext.Ed.�External editor�External formatter "%s" is not installed - can't format�Feeds a page before every new gjots item�File cannot be locked�Find�Find & replace�Find Next�Find string is a regular expression (see 'man 7 regex')�Find:�Format the current paragraph�Found�Global�Hide All�Hide all items except for the top level�Hide all items except the top level�How many sublevels to sort (0 for none; -1 for 'all')�Import�Import from ...�Import items from a gjots file�Internal error�Internal error!�Invoke an external editor on the current item�Line length for paragraph wrapping�Make a new item from the current selection�Match case�Merge Items�Merge current items into the first one�Merge selected items together�Move selection down�Move selection up�New Child�New Page�New _Child�New file�New...>>>�No changes to save�No child!�No parent!�Not found�Not saved.�Nothing selected�Nothing selected!�Nothing to merge�Nothing to paste�Nothing to save�Nothing to sort!�Numeric�Open file ...�Open file read only�Open gjots preferences window�P_romote�Page�Page feeds�Password was not confirmed�Password: �Paste�Paste selected items�Popup the find and replace dialog�Popup the sort dialog�Popup the sort text dialog�Popup the sort tree dialog�Prefs�Print�Print the current page�Print the entire gjots file�Print the gjots item titles in bold�Print the selected pages or text�Print this document�Promote�Read only�Read the online manual (using gjots)�Regular Expression�Replace�Replace All�Replace:�Replace?�S_ort Tree�Save�Save as ...�Save current work?�Save gjots document�Saved.�Search backwards�Searches entire file not just this entry�Select Font�Select _All�Selection�Selection becomes a child of the previous item�Selection becomes a sibling to their parent�Show All�Show _Icon Text�Show all items below the current item�Show the related icon text�Sort�Sort Text�Sort Tree�Sort in alphabetic order�Sort in ascending order�Sort in descending order�Sort in numeric order�Split Item�Split the text selection into a new item�Status _Bar�String to replace�String to search for�Te_xt�Text Line Length: �Text copied�Text cut�Text formatter: �Text pasted�That file is already open!�To open the file in read-only mode.�To_p Toolbar�Toggle the read-only flag if possible�Toggles the main toolbar�Toggles tree tool bar�Tre_e Toolbar�Tree is empty!�Tree items pasted�Try again�Up�Use -h for help �Wrap�Wrap the current paragraph to the current line length�_Edit�_Export�_External Edit�_File�_Format�_Help�_Hide All�_Import�_Merge Items�_New Page�_Read Manual�_Read-only�_Show All�_Sort Text�_Split Item�_Time stamp�_Tree�_View�_get_settings: Cant find sortAscendingRadioButton�e.g. lpr: �eg. 1 for 1.2.1, a�fmt -w %d �gjots2: warning: selection list is NULL. Skipping tree selection changed event.�gjots: preferences�http://bhepple.freeshell.org/gjots2�label1�label2�overwrite %s?�print command (can be a shell expression)�text changed by external editor�text not changed by external editor�window1�xterm -e vi %s�Project-Id-Version: Gjots2 Report-Msgid-Bugs-To: PO-Revision-Date: 2010-11-22 20:02+0100 Last-Translator: Cecilio Salmeron <s.cecilio@gmail.com> Language-Team: SPANISH <bhepple@freeshell.org> Language: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Poedit-Language: Spanish X-Poedit-Country: SPAIN X-Poedit-SourceCharset: utf-8 � Opciones� Imprimir rango� Orden para imprimir� Imprimir con formato� Prámetros para ordenar� Niveles a ordenar�%F�Se han fusionado %d items �%d sustituciones�Copiados %d items del árbol�Cortados %d items del árbol�%s está bloqueado por pid %d�%s no puede leerse�%s protegido contra escritura�%s necesita python %s o más reciente.�%s versión %s�%s: Atención: abriendo el manual de gjots2 desde %s �%s: datos de geometría no válidos: %s �%s: bloqueado por el proceso %d�%s: permiso denegado�: Error�: ¿Guardar?�: versión �Añade fecha y hora (ver preferencias)�Añade fecha y hora (ver preferencias)�Todo�Todo el texto seleccionado�Todos los items del arbol seleccionados�Alfabético�Ascendente�Autonumerar�Formato para autonumeración:�Hacia atrás�Contraseña incorrecta�Expresión regular no válida�Títulos en negrita�No puede eliminarse el nodo raíz�No se puede ir más allá�No puede irse más allá�¡No se puede ir más all!�No se puede bloquear el archivo�No puede bloquearse el archivo %s: Está retenido por el proceso %d�No puede crease archivo de bloqueo en �No pueden fusionarse items que tienen hijos�No puede fusionarse el nodo raíz�No puede abrirse "�No puede ejecutarse '%s'�No se puede escribir en �Cancelar�Elegir tipografía para el panel de texto�Limpiar�Cerrar�Confirmar:�Copiar�Copia los items seleccionados�No puede encontrarse el programa ccrypt. Por favor, instálelo y pruebe de nuevo�Courier 10 Pitch 10�Añade un nuevo hijo�Crea un nuevo item�Crear una página nueva�Tipografía actual:�Cortar�Quita los items seleccionados�_Rebajar�Fecha�Formato de fecha:�Rebajar�Descendente�Distinguir mayúsculas/minúsculas�Bajar�Edita el item actual en un editor externo�Introduzca contraseña para �Exportar�Exportar los items seleccionados a un archivo gjots�Exportar a ...�Ed.ext.�Editor externo�El formateador externo "%s" no está instalado . No se puede dar formato.�Usa una página nueva para cada item gjots�El archivo no puede bloquearse�Buscar�Buscar y sustituir�Buscar siguiente�El texto a buscar es una expresión regular (ver 'man 7 regex')�Buscar:�Da formato al párrafo actual�Encontrado�Global�Ocultar todo�Oculta todos los items excepto los de primer nivel�Ocultar todos los items excepto los de primer nivel�¿Cuántos subniveles hay que ordenar? (0=ninguno; -1=todos) �Importar�Importar desde ...�Importar items desde un archivo gjots�Error interno�¡Error interno!�LLama a un editor externo para editar el item actual�Tamaño de línea para ajuste de párrafo�Transforma la selección en un nuevo item�Coincidir mayúsculas y minúsculas�Fusionar items�Fusiona los items seleccionados en uno único�Fusina los items seleccionados�Mover la selección hacia abajo�Mover la selección hacia arriba�Nuevo hijo�Nueva página�Nuevo _hijo�Nuevo archivo�Nuevo...>>>�No hay cambios que guardar�¡No hay hijo!�¡No hay padre!�No encontrado�No guardado.�No hay nada seleccionado�¡No hay nada seleccionado!�Nada que fusionar�Nada que pegar�Nada que guardar�¡Nada que ordenar!�Numérico�Abrir archivo ...�Abrir como 'sólo lectura'�Abre la ventana de 'preferencias' de gjots�_Promocionar�Página�Páginas independientes�La contraseña no se ha confirmado�Contraseña:�Pegar�Pega los items seleccionados�Muestra el diálogo de 'buscar y reemplazar'�Muestra el diálogo de 'ordenar'�Muestra el diálogo de 'ordenar texto'�Muestra el diálogo de 'ordenar árbol'�Preferencias�Imprimir�Imprime la página actual�Imprime el archivo gjots completo�Imprime los títulos de los items en negrita�Imprime las páginas o el texto seleccionado�Imprime este documento�Promocionar�Sólo lectura�Leer el manual en línea (usando gjots)�Expresión regular�Sustituir�Sustituir todo�Sustituir:�¿Sustituir?�_Ordenar árbol�Guardar�Guardar como ...�¿Guardar el trabajo actual?�Guarda un documento gjots�Guardado.�Búscar hacia atrás�Buscar en todo el archivo, no sólo en esta entrada�Seleccionar tipografía�Seleccionar_todo�Selección�La selección se colocará como hijo del item al que precede�La selección se colocará al mismo nivel que su padre�Mostrar todo�Mostrar _icono de texto�Mostrar todos los items debajo del actual�Mostrar el icono asociado al texto�Ordenar�Ordenar texto�Ordenar árbol�Ordenar según orden alfabético�Ordenar en secuencia ascendente�Ordenar en secuencia descendente�Ordenar según orden numérico�Dividir item�Corta la selección y crea con ella un nuevo item�Barra de _estado�Texto a sustituir�Texto a buscar�Te_xto�Tamaño de línea de texto:�Texto copiado�Texto cortado�Formateador de texto:�Texto pegado�¡Ese archivo ya está abierto!�Para abrir eln archivo en modo de sólo lectura.�Herramientas _principales�Cambiar indicador de sólo lectura, si es posible�Muestra/oculta la barra principal de herramientas�Muestra/oculta la barra de herramientas de árbol�Herramientas de _árbol�¡El árbol está vacío!�Items del árbol pegados�Inténtelo de nuevo�Subir�Use -h para ayuda �Ajustar�Ajusta el párrafo actual para amoldarse al tamaño de línea�_Editar�_Exportar�_Editor externo�_Archivo�_Formato�_Ayuda�_Ocultar todo�_Importar�_Fusionar items�_Nueva página�_Leer manual�_Sólo lectura�Mostrar _todos�_Ordenar texto�_Dividir item�Fecha y _hora�Ar_bol�_Ver�_get_settings: No se encuentra sortAscendingRadioButton�ej. lpr:�ej.: 1 para 1.2.1, a�fmt -w %d �gjots2: Atención: la lista de selección está vacía. Se ignora el evento de cambio en seleción de arbol.�gjots: preferencias�http://bhepple.freeshell.org/gjots2�etiqueta1�etiqueta2�¿sobreescribir %s?�orden para imprimir (puede ser una 'shell expression')�texto modificado en un editor externo�texto no modificado en un editor externo�ventana1�xterm -e vi %s������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/fr.po�������������������������������������������������������������������������������0000664�0000000�0000000�00000071255�14016300235�0014325�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Messages master file for gjots2. # Copyright (C) 2005-2006 Bob Hepple # This file is distributed under the same license as the gjots2 package. # Bob Hepple <bhepple@freeshell.org>, 2005. # , fuzzy # <rui.nibau@omacronides.com>, 2005. # # msgid "" msgstr "" "Project-Id-Version: gjots 2.3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-30 18:18+1000\n" "PO-Revision-Date: 2020-06-25 21:14+0700\n" "Last-Translator: Frederic Muller <fred@cm17.com>\n" "Language-Team: French\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Poedit 2.3.1\n" #: ../ui/about.ui:12 msgid "Copyright Bob Hepple 2002-2020" msgstr "Copyright Bob Hepple 2002-2020" #: ../ui/about.ui:13 msgid "http://bhepple.freeshell.org/gjots2" msgstr "http://bhepple.freeshell.org/gjots2" #: ../ui/about.ui:25 msgid "\n" msgstr "" #: ../ui/fileDialog.ui:69 msgid "Open file read only" msgstr "Ouvrir un fichier en lecteur seulement" #: ../ui/fileDialog.ui:73 msgid "To open the file in read-only mode." msgstr "Ouvrir le fichier seulement en lecture." #: ../ui/findDialog.ui:8 msgid "Find & replace" msgstr "Chercher & remplacer" #: ../ui/findDialog.ui:34 msgid "Find:" msgstr "Chercher:" #: ../ui/findDialog.ui:47 msgid "Replace:" msgstr "Remplacer:" #: ../ui/findDialog.ui:64 msgid "String to search for" msgstr "Chaîne à rechercher" #: ../ui/findDialog.ui:80 msgid "String to replace" msgstr "Chaîne à remplacer" #: ../ui/findDialog.ui:114 ../ui/gjots.ui:844 msgid "Find" msgstr "Chercher" #: ../ui/findDialog.ui:130 msgid "Close" msgstr "Fermer" #: ../ui/findDialog.ui:146 msgid "Replace" msgstr "Remplacer" #: ../ui/findDialog.ui:162 msgid "Replace All" msgstr "Remplacer tout" #: ../ui/findDialog.ui:178 msgid "Cancel" msgstr "Annuler" #: ../ui/findDialog.ui:197 msgid "Clear" msgstr "Effacer" #: ../ui/findDialog.ui:257 msgid "Match case" msgstr "Sensible à la casse" #: ../ui/findDialog.ui:261 msgid "Don't ignore case" msgstr "Ne pas ignorer la casse" #: ../ui/findDialog.ui:271 msgid "Regular Expression" msgstr "Expression régulière" #: ../ui/findDialog.ui:275 msgid "Find string is a regular expression (see 'man 7 regex')" msgstr "" "La chaîne à rechercher est une expression régulière (voir 'man 7 regexp')" #: ../ui/findDialog.ui:287 msgid "Backwards" msgstr "En arrière" #: ../ui/findDialog.ui:291 msgid "Search backwards" msgstr "Recherche en arrière" #: ../ui/findDialog.ui:306 msgid "Global" msgstr "Global" #: ../ui/findDialog.ui:310 msgid "Searches entire file not just this entry" msgstr "Rechercher dans tout le fichier et pas uniquement dans cette note" #: ../ui/findDialog.ui:327 msgid " Options " msgstr " Options " #: ../ui/fontDialog.ui:9 msgid "Select Font" msgstr "Sélectionner police" #: ../ui/generalDialog.ui:9 msgid "window1" msgstr "window1" #: ../ui/generalDialog.ui:22 ../ui/generalDialog.ui:60 #: ../ui/generalDialog.ui:115 msgid "label1" msgstr "label1" #: ../ui/generalDialog.ui:46 msgid "label2" msgstr "label2" #: ../ui/generalDialog.ui:193 msgid "Try again" msgstr "Essayez à nouveau" #: ../ui/generalDialog.ui:209 msgid "Read only" msgstr "Lecture seule" #: ../ui/gjots.ui:24 msgid "_File" msgstr "_Fichier" #: ../ui/gjots.ui:88 msgid "_Import" msgstr "Im_porter" #: ../ui/gjots.ui:91 msgid "Import items from a gjots file" msgstr "Importer les notes d'un fichier gjots" #: ../ui/gjots.ui:99 msgid "_Export" msgstr "_Exporter" #: ../ui/gjots.ui:102 msgid "Export selected items to a gjots file" msgstr "Exporter les notes sélectionnées dans un fichier gjots" #: ../ui/gjots.ui:135 msgid "Toggle the read-only flag if possible" msgstr "Activer la lecture seule si possible" #: ../ui/gjots.ui:136 msgid "_Read-only" msgstr "_Lecture seule" #: ../ui/gjots.ui:152 #, fuzzy msgid "Exit gjots2" msgstr "Quitter gjots" #: ../ui/gjots.ui:167 msgid "_Edit" msgstr "_Editer" #: ../ui/gjots.ui:263 msgid "Find Next" msgstr "Chercher le suivant" #: ../ui/gjots.ui:273 msgid "Find Previous" msgstr "Chercher le précédent" #: ../ui/gjots.ui:299 msgid "_View" msgstr "Affic_hage" #: ../ui/gjots.ui:307 msgid "_Show All" msgstr "_Montrer tout" #: ../ui/gjots.ui:310 ../ui/gjots.ui:1085 msgid "Show all items below the current item" msgstr "Montrer toutes les notes sous la note courante" #: ../ui/gjots.ui:318 msgid "_Hide All" msgstr "_Cacher tout" #: ../ui/gjots.ui:321 msgid "Hide all items except the top level" msgstr "Masquer toutes les notes exceptée la note mère" #: ../ui/gjots.ui:337 msgid "Toggles the main toolbar" msgstr "Afficher la barre d'outils principale" #: ../ui/gjots.ui:338 msgid "To_p Toolbar" msgstr "Barre d'outils _principale" #: ../ui/gjots.ui:347 msgid "Toggles tree tool bar" msgstr "Afficher la barre d'outils de l'arbre" #: ../ui/gjots.ui:348 msgid "Tre_e Toolbar" msgstr "Barre d'outils de l'_arbre" #: ../ui/gjots.ui:357 msgid "Show the related icon text" msgstr "Montrer le texte associé à l'icone" #: ../ui/gjots.ui:358 msgid "Show _Icon Text" msgstr "Montrer le texte de l'_icone" #: ../ui/gjots.ui:367 msgid "Status _Bar" msgstr "Barre d'é_tat" #: ../ui/gjots.ui:380 msgid "_Tree" msgstr "_Arbre" #: ../ui/gjots.ui:388 msgid "_New Page" msgstr "_Nouvelle page" #: ../ui/gjots.ui:391 msgid "Create a new page" msgstr "Créer une nouvelle page" #: ../ui/gjots.ui:400 msgid "New _Child" msgstr "Nouvel _Enfant" #: ../ui/gjots.ui:403 ../ui/gjots.ui:920 msgid "Create a new child" msgstr "Créer une note fille" #: ../ui/gjots.ui:420 ../ui/gjots.ui:950 msgid "Move selection up" msgstr "Déplacer la sélection vers le haut" #: ../ui/gjots.ui:431 ../ui/gjots.ui:965 msgid "Move selection down" msgstr "Déplacer la sélection vers le bas" #: ../ui/gjots.ui:439 msgid "P_romote" msgstr "_Remonter" #: ../ui/gjots.ui:442 ../ui/gjots.ui:980 msgid "Selection becomes a sibling to their parent" msgstr "La sélection devient une soeur de sa mère" #: ../ui/gjots.ui:450 msgid "D_emote" msgstr "_Descendre" #: ../ui/gjots.ui:453 ../ui/gjots.ui:995 msgid "Selection becomes a child of the previous item" msgstr "La sélection devient fille de la note précédente" #: ../ui/gjots.ui:467 msgid "_Split Item" msgstr "_Scinder la note" #: ../ui/gjots.ui:470 msgid "Make a new item from the current selection" msgstr "Créer une nouvelle note à partir de la sélection" #: ../ui/gjots.ui:478 msgid "_Merge Items" msgstr "_Fusionner les notes" #: ../ui/gjots.ui:481 msgid "Merge current items into the first one" msgstr "Fusionner les notes courantes dans la première" #: ../ui/gjots.ui:489 msgid "S_ort Tree" msgstr "_Trier l'arbre" #: ../ui/gjots.ui:492 ../ui/gjots.ui:1100 msgid "Popup the sort tree dialog" msgstr "Afficher la fenêtre de tri de l'arbre" #: ../ui/gjots.ui:506 msgid "Te_xt" msgstr "Te_xte" #: ../ui/gjots.ui:514 msgid "_Format" msgstr "_Formater" #: ../ui/gjots.ui:517 msgid "Format the current paragraph" msgstr "Formater le paragraphe courant" #: ../ui/gjots.ui:526 msgid "_Time stamp" msgstr "_Date" #: ../ui/gjots.ui:529 msgid "Add a time/date stamp (see preferences)" msgstr "Ajouter la date/l'heure (voir préférences)" #: ../ui/gjots.ui:538 msgid "_External Edit" msgstr "_Editeur externe" #: ../ui/gjots.ui:541 msgid "Edit current item in an external editor" msgstr "Editer la note courante dans un éditeur externe" #: ../ui/gjots.ui:549 msgid "_Sort Text" msgstr "_Trier le texte" #: ../ui/gjots.ui:552 msgid "Popup the sort text dialog" msgstr "Afficher la fenêtre de tri du texte" #: ../ui/gjots.ui:566 msgid "_Help" msgstr "_Aide" #: ../ui/gjots.ui:574 #, fuzzy msgid "_Read Manual" msgstr "_Lire le manuel" #: ../ui/gjots.ui:577 msgid "Read the online manual (using gjots)" msgstr "Lire le manuel (en utilisant gjots)" #: ../ui/gjots.ui:621 msgid "Popup the 'Find'menu" msgstr "" #: ../ui/gjots.ui:651 #, fuzzy msgid "Find the previous occurance" msgstr "Chercher le précédent" #: ../ui/gjots.ui:667 msgid "Find the next occurance" msgstr "" #: ../ui/gjots.ui:693 msgid "Save gjots document" msgstr "Enregistrer le document gjots" #: ../ui/gjots.ui:694 msgid "Save" msgstr "Enregistrer" #: ../ui/gjots.ui:708 msgid "Print this document" msgstr "Imprimer ce document" #: ../ui/gjots.ui:709 ../ui/printDialog.ui:8 msgid "Print" msgstr "Imprimer" #: ../ui/gjots.ui:738 msgid "Cut selected items" msgstr "Couper la sélection" #: ../ui/gjots.ui:739 msgid "Cut" msgstr "Couper" #: ../ui/gjots.ui:753 msgid "Copy selected items" msgstr "Copier la sélection" #: ../ui/gjots.ui:754 msgid "Copy" msgstr "Copier" #: ../ui/gjots.ui:768 msgid "Paste selected items" msgstr "Coller la sélection" #: ../ui/gjots.ui:769 msgid "Paste" msgstr "Coller" #: ../ui/gjots.ui:798 msgid "Wrap the current paragraph to the current line length" msgstr "Couper le paragraphe à la longueur de ligne spécifiée" #: ../ui/gjots.ui:799 msgid "Wrap" msgstr "Retour" #: ../ui/gjots.ui:813 msgid "Invoke an external editor on the current item" msgstr "Appeler un éditeur externe pour la note courante" #: ../ui/gjots.ui:814 msgid "Ext.Ed." msgstr "Ed.Ext." #: ../ui/gjots.ui:828 msgid "Add a time/date stamp (see prefs)" msgstr "Ajouter la date/l'heure (voir prefs)" #: ../ui/gjots.ui:829 msgid "Date" msgstr "Date" #: ../ui/gjots.ui:843 msgid "Popup the find and replace dialog" msgstr "Afficher la fenêtre de recherche" #: ../ui/gjots.ui:858 msgid "Popup the sort dialog" msgstr "Afficher la fenêtre de tri" #: ../ui/gjots.ui:859 ../ui/sortDialog.ui:15 msgid "Sort" msgstr "Trier" #: ../ui/gjots.ui:873 msgid "Open gjots preferences window" msgstr "Afficher les préférences de gjots" #: ../ui/gjots.ui:874 msgid "Prefs" msgstr "Prefs" #: ../ui/gjots.ui:905 msgid "Create a new item" msgstr "Créer une nouvelle note" #: ../ui/gjots.ui:906 ../ui/treeContextMenu.ui:45 msgid "New Page" msgstr "Nouvelle page" #: ../ui/gjots.ui:921 ../ui/treeContextMenu.ui:52 msgid "New Child" msgstr "Nouvel Enfant" #: ../ui/gjots.ui:951 msgid "Up" msgstr "Haut" #: ../ui/gjots.ui:966 msgid "Down" msgstr "Bas" #: ../ui/gjots.ui:981 ../ui/treeContextMenu.ui:74 msgid "Promote" msgstr "Remonter" #: ../ui/gjots.ui:996 ../ui/treeContextMenu.ui:82 msgid "Demote" msgstr "Descendre" #: ../ui/gjots.ui:1025 msgid "Split the text selection into a new item" msgstr "Créer une nouvelle note avec le texte sélectionné" #: ../ui/gjots.ui:1026 msgid "Split Item" msgstr "Scinder la note" #: ../ui/gjots.ui:1040 msgid "Merge selected items together" msgstr "Fusionner les notes sélectionnées" #: ../ui/gjots.ui:1041 ../ui/treeContextMenu.ui:89 msgid "Merge Items" msgstr "Fusionner les notes" #: ../ui/gjots.ui:1070 msgid "Hide all items except for the top level" msgstr "Cacher toutes les notes sauf la note mère" #: ../ui/gjots.ui:1071 ../ui/treeContextMenu.ui:103 msgid "Hide All" msgstr "Cacher tout" #: ../ui/gjots.ui:1086 ../ui/treeContextMenu.ui:96 msgid "Show All" msgstr "Montrer tout" #: ../ui/gjots.ui:1101 ../ui/treeContextMenu.ui:110 ../lib/sortDialog.py:394 msgid "Sort Tree" msgstr "Trier l'arbre" #: ../ui/prefsDialog.ui:20 msgid "gjots: preferences" msgstr "gjots: préférences" #: ../ui/prefsDialog.ui:49 msgid "Choose a font for the text panel" msgstr "Choisir une police pour le texte" #: ../ui/prefsDialog.ui:65 msgid "Date format:" msgstr "Format de la date:" #: ../ui/prefsDialog.ui:79 #, fuzzy msgid "Format for the timestamp function (see strftime(3)) eg %F" msgstr "Format de la date (voir strftime(3))" #: ../ui/prefsDialog.ui:80 msgid "%F" msgstr "%F" #: ../ui/prefsDialog.ui:99 #, fuzzy msgid "" "External program to edit a page (%s is replaced by the name of the temporary " "edit file) eg xterm -e vi %s" msgstr "" "Programme externe pour éditer la page (%s est remplacé par le nom du fichier " "temporaire édité)" #: ../ui/prefsDialog.ui:100 msgid "xterm -e vi %s" msgstr "xterm -e vi %s" #: ../ui/prefsDialog.ui:120 msgid "External editor" msgstr "Editeur externe" #: ../ui/prefsDialog.ui:135 msgid "Text Line Length: " msgstr "Longueur ligne:" #: ../ui/prefsDialog.ui:149 msgid "Line length for paragraph wrapping" msgstr "Longueur de ligne pour couper les paragraphes" #: ../ui/prefsDialog.ui:172 msgid "Text formatter: " msgstr "Formateur de texte:" #: ../ui/prefsDialog.ui:184 #, fuzzy msgid "" "External program to pipe text for formatting (%d is replaced by the current " "line width) eg fmt -w %d " msgstr "" "Programme externe pour gérer le formatage du texte (%d est remplacé par la " "longueur de ligne actuelle)" #: ../ui/prefsDialog.ui:185 msgid "fmt -w %d " msgstr "fmt -w %d " #: ../ui/prefsDialog.ui:202 msgid "Current text font" msgstr "Police actuelle du texte" #: ../ui/prefsDialog.ui:204 msgid "Courier 10 Pitch 10" msgstr "Courier 10 Pitch 10" #: ../ui/prefsDialog.ui:224 msgid "AutoSave interval:" msgstr "Interval de sauvegarde automatique:" #: ../ui/prefsDialog.ui:238 msgid "Seconds of inactivity to trigger an AutoSave (0 = no AutoSave)" msgstr "" "Nombre de secondes d'inactivité pour lancer une sauvegarde automatique (0 = " "pas de sauvegarde automatique)" #: ../ui/printDialog.ui:38 msgid "e.g. lpr: " msgstr "ex. lpr: " #: ../ui/printDialog.ui:54 msgid "print command (can be a shell expression)" msgstr "Commande d'impression (peut être une commande shell)" #: ../ui/printDialog.ui:76 msgid " Print command " msgstr "Commande d'impression" #: ../ui/printDialog.ui:104 msgid "Page" msgstr "Page" #: ../ui/printDialog.ui:108 msgid "Print the current page" msgstr "Imprimer la page courante" #: ../ui/printDialog.ui:120 msgid "Selection" msgstr "Sélection" #: ../ui/printDialog.ui:124 msgid "Print the selected pages or text" msgstr "Imprimer les pages sélectionnées ou le texte" #: ../ui/printDialog.ui:137 msgid "All" msgstr "Tout" #: ../ui/printDialog.ui:141 msgid "Print the entire gjots file" msgstr "Imprimer tout le fichier gjots" #: ../ui/printDialog.ui:160 msgid " Print Range " msgstr "Etendue de l'impression" #: ../ui/printDialog.ui:193 msgid "Page feeds" msgstr "Alimentation papier" #: ../ui/printDialog.ui:197 msgid "Feeds a page before every new gjots item" msgstr "Nouvelle page avant chaque nouvelle note gjots" #: ../ui/printDialog.ui:209 msgid "Bold titles" msgstr "Titres en gras" #: ../ui/printDialog.ui:212 msgid "Print the gjots item titles in bold" msgstr "Imprimer le titre des notes en gras" #: ../ui/printDialog.ui:224 msgid "Auto Number" msgstr "Numérotation auto" #: ../ui/printDialog.ui:251 msgid "Auto-number format: " msgstr "Format numérotation: " #: ../ui/printDialog.ui:262 msgid "eg. 1 for 1.2.1, a" msgstr "ex. 1 pour 1.2.1, a" #: ../ui/printDialog.ui:289 msgid " Print formatting " msgstr "Format d'impression" #: ../ui/sortDialog.ui:43 msgid "Ascending" msgstr "Croissant" #: ../ui/sortDialog.ui:47 msgid "Sort in ascending order" msgstr "Trier par ordre croissant" #: ../ui/sortDialog.ui:58 msgid "Descending" msgstr "Décroissant" #: ../ui/sortDialog.ui:62 msgid "Sort in descending order" msgstr "Trier par ordre décroissant" #: ../ui/sortDialog.ui:76 msgid "Alphabetic" msgstr "Alphabétique" #: ../ui/sortDialog.ui:80 msgid "Sort in alphabetic order" msgstr "Trier par ordre alphabétique" #: ../ui/sortDialog.ui:93 msgid "Numeric" msgstr "Numerique" #: ../ui/sortDialog.ui:97 msgid "Sort in numeric order" msgstr "Trier par ordre numérique" #: ../ui/sortDialog.ui:119 msgid " Sort Parameters " msgstr "Paramètres de tri" #: ../ui/sortDialog.ui:149 msgid "How many sublevels to sort (0 for none; -1 for 'all')" msgstr "Combien de sous-niveaux à trier (0 pour aucun; -1 pour 'tous')" #: ../ui/sortDialog.ui:171 msgid " Sort Sublevels " msgstr "Trier les sous-niveaux" #: ../ui/treeContextMenu.ui:30 #, fuzzy msgid "Select _All" msgstr "Sélectionner un fichier" #: ../ui/treeContextMenu.ui:117 msgid "Import" msgstr "Importer" #: ../ui/treeContextMenu.ui:124 msgid "Export" msgstr "Exporter" #: ../gjots2:23 #, fuzzy msgid "" "Usage: gjots [OPTIONS] [FILENAME]\n" "A gtk/X11 jotter\n" "\n" "OPTIONS:\n" "-h, --help: this help\n" "-d, --debug: debug to stdout\n" "-t, --trace: trace lines as they execute\n" "-g 123x456, --geometry=123x456: initial geometry (X x Y)\n" "-p, --purge-password don't remember password\n" "-r, --readonly: no editing (or locking)\n" "-V, --version: print the version and exit\n" "\n" "FILENAME:\n" " gjots data filename (default is $HOME/.gjotsfile)\n" msgstr "" "Usage: gjots [OPTIONS] [NOM_FICHIER]\n" "A gnome-2/X11 jotter\n" "\n" "OPTIONS:\n" "-h, --help: Aide\n" "-d, --debug: messages pour déboguer sur sortie " "courante\n" "-g 123x456, --geometry=123x456: taille initiale (X x Y)\n" "-p, --purge-password ne pas se souvenir du mot de passe\n" "-r, --readonly: pas d'édition (ou verrouiller)\n" "-V, --version: Afficher la version et quitter\n" "\n" "NOM_FICHIER:\n" "\tnom du fichier gjots ($HOME/.gjotsfile par défaut)\n" #: ../gjots2:89 #, python-format msgid "%s requires python%s or higher." msgstr "%s nécessite python%s ou supérieur." #: ../gjots2:102 msgid "Use -h for help\n" msgstr "Utiliser -h pour l'aide\n" #: ../gjots2:116 #, python-format msgid "%s version %s" msgstr "%s version %s" #: ../lib/gui.py:51 ../lib/gui.py:996 msgid "Text pasted" msgstr "Texte collé" #: ../lib/gui.py:179 #, python-format msgid "External formatter \"%s\" is not installed - can't format" msgstr "" "Le formateur externe \"%s\" n'est pas installé - impossible de formater" #: ../lib/gui.py:564 ../lib/gui.py:675 ../lib/gui.py:679 ../lib/gui.py:745 #: ../lib/gui.py:749 ../lib/gui.py:812 ../lib/gui.py:817 ../lib/gui.py:1043 #: ../lib/gui.py:1052 ../lib/gui.py:1138 ../lib/gui.py:1147 ../lib/gui.py:1183 #: ../lib/gui.py:1188 ../lib/gui.py:1219 ../lib/gui.py:1608 ../lib/gui.py:2382 #: ../lib/gui.py:2401 ../lib/gui.py:2430 ../lib/gui.py:2461 ../lib/file.py:466 #: ../lib/file.py:471 ../lib/sortDialog.py:329 ../lib/sortDialog.py:334 #: ../lib/printDialog.py:110 ../lib/printDialog.py:115 msgid "Nothing selected" msgstr "Aucune sélection" #: ../lib/gui.py:568 ../lib/gui.py:684 ../lib/gui.py:753 ../lib/gui.py:822 #: ../lib/gui.py:934 ../lib/gui.py:1224 ../lib/gui.py:2386 #: ../lib/sortDialog.py:345 msgid "No parent!" msgstr "Pas de parent!" #: ../lib/gui.py:572 ../lib/gui.py:719 msgid "No child!" msgstr "Pas d'enfant!" #: ../lib/gui.py:580 ../lib/gui.py:693 msgid "Can't go any further" msgstr "Impossible d'aller plus loin" #: ../lib/gui.py:616 ../lib/gui.py:840 msgid "Internal error!" msgstr "Erreur interne!" #: ../lib/gui.py:757 msgid "Can't go further!" msgstr "Impossible d'aller plus loin!" #: ../lib/gui.py:973 msgid "Text cut" msgstr "Texte coupé" #: ../lib/gui.py:984 msgid "Text copied" msgstr "Texte copié" #: ../lib/gui.py:1005 msgid "All text selected" msgstr "Tout le texte sélectionné" #: ../lib/gui.py:1015 msgid "All tree items selected" msgstr "Toutes les notes de l'arbre sélectionnées" #: ../lib/gui.py:1023 msgid "Nothing selected!" msgstr "Aucune sélection!" #: ../lib/gui.py:1047 msgid "Can't merge the root item" msgstr "Impossible de fusionner la note racine" #: ../lib/gui.py:1056 msgid "Nothing to merge" msgstr "Rien à fusionner" #: ../lib/gui.py:1063 msgid "Can't merge items that have children" msgstr "Impossible de fusionner des notes qui possèdent des notes filles" #: ../lib/gui.py:1093 #, python-format msgid "%d items merged" msgstr "%d notes fusionnées" #: ../lib/gui.py:1142 msgid "Can't delete the root item" msgstr "Impossible de supprimer la note racine" #: ../lib/gui.py:1175 #, python-format msgid "%d tree items cut" msgstr "%d notes de l'arbre coupées" #: ../lib/gui.py:1205 #, python-format msgid "%d tree items copied" msgstr "%d notes de l'arbre copiées" #: ../lib/gui.py:1214 msgid "Nothing to paste" msgstr "Rien à coller" #: ../lib/gui.py:1237 msgid "Tree items pasted" msgstr "Notes de l'arbre collées" #: ../lib/gui.py:1258 #, fuzzy msgid "Can't write tempfile" msgstr "Impossible d'écrire" #: ../lib/gui.py:1278 #, python-format msgid "Can't run '%s'" msgstr "Impossible de lancer '%s'" #: ../lib/gui.py:1287 #, fuzzy msgid "Can't read tempfile " msgstr "Impossible de lire" #: ../lib/gui.py:1293 msgid "text changed by external editor" msgstr "Texte modifié par l'éditeur externe" #: ../lib/gui.py:1295 msgid "text not changed by external editor" msgstr "Texte non modifié par l'éditeur externe" #: ../lib/gui.py:1314 msgid ": Error" msgstr ": Erreur" #: ../lib/gui.py:1327 #, python-format msgid "Can't lock file %s: already locked by process %d" msgstr "" "Impossible de verrouiller le fichier %s: déjà verrouillé par le processus %d" #: ../lib/gui.py:1510 msgid ": Save?" msgstr ": Enregistrer?" #: ../lib/gui.py:1511 msgid "Save current work?" msgstr "Enregistrer ce travail?" #: ../lib/gui.py:1532 msgid "New file" msgstr "Nouveau fichier" #: ../lib/gui.py:1556 msgid "Open file ..." msgstr "Ouvrir un fichier..." #: ../lib/gui.py:1568 msgid "No changes to save" msgstr "Aucun changement à enregistrer" #: ../lib/gui.py:1572 ../lib/gui.py:1593 msgid "Saved." msgstr "Enregistré." #: ../lib/gui.py:1574 ../lib/gui.py:1595 ../lib/file.py:456 msgid "Not saved." msgstr "Non enregistré." #: ../lib/gui.py:1589 msgid "Nothing to save" msgstr "Rien à enregistrer" #: ../lib/gui.py:1591 ../lib/file.py:693 msgid "Save as ..." msgstr "Enregistrer sous..." #: ../lib/gui.py:1605 msgid "Import from ..." msgstr "Importer depuis..." #: ../lib/gui.py:1616 msgid "Export to ..." msgstr "Exporter vers..." #: ../lib/gui.py:1930 ../lib/gui.py:1933 #, python-format msgid "%s: Warning: opening gjots2 manual from %s\n" msgstr "%s: Attention: ouverture du manuel de gjots2 depuis %s\n" #: ../lib/gui.py:2317 msgid "" "gjots2: warning: selection list is NULL. Skipping tree selection changed \n" "event." msgstr "" "gjots2: Attention: la liste de sélection est NULL. Skipping tree selection " "changed \n" "event." #: ../lib/gui.py:2390 msgid "Can't go further" msgstr "Impossible d'aller plus loin" #: ../lib/gui.py:2419 msgid "Tree is empty!" msgstr "L'arbre est vide!" #: ../lib/gui.py:2716 msgid "Bad regular expression" msgstr "Expression régulière mal formée" #: ../lib/gui.py:2808 #, python-format msgid "%s: bad geometry specification: %s\n" msgstr "%s: mauvaises spécifications géométriques: %s\n" #: ../lib/gui.py:2899 msgid "New...>>>" msgstr "Nouveau...>>>" #: ../lib/gui.py:2936 msgid "Install gtksourceview to enable undo/redo" msgstr "Installer gtksourceview pour activer faire/défaire" #: ../lib/gui.py:3102 msgid ": version " msgstr ": version " #: ../lib/find.py:70 ../lib/find.py:93 msgid "Not found" msgstr "Rien trouvé" #: ../lib/find.py:72 msgid "Found" msgstr "Trouvé" #: ../lib/find.py:96 msgid "Replace?" msgstr "Remplacer?" #: ../lib/find.py:113 #, python-format msgid "%d substitutions" msgstr "%d substitutions" #: ../lib/file.py:255 msgid "Enter password for " msgstr "Entrer le mot de passe pour" #: ../lib/file.py:257 #, fuzzy msgid ": Enter Password" msgstr "gjots: Entrer le mot de passe" #: ../lib/file.py:259 msgid "Password: " msgstr "Mot de passe: " #: ../lib/file.py:260 msgid "Confirm: " msgstr "Confirmer: " #: ../lib/file.py:268 msgid "Password was not confirmed" msgstr "Le mot de passe n'a pas été confirmé" #: ../lib/file.py:275 msgid "Could not find the ccrypt program - please install it and try again" msgstr "Impossible de trouver le programme ccrypt - installez-le et ré-essayez" #: ../lib/file.py:308 msgid "" "Neither gpg2 nor gpg are available - please install one (perhaps package " "gnupg2) and try again" msgstr "" "Ni gpg2 ni gpg ne sont installés - installez l'un des deux (perhaps package " "gnupg2) et ré-essayez" #: ../lib/file.py:328 #, fuzzy msgid "No openssl program - please install it and try again" msgstr "" "Impossible de trouver le programme openssl - Installez-le et ré-essayez" #: ../lib/file.py:354 #, fuzzy msgid "No org2gjots program - please install it and try again" msgstr "" "Impossible de trouver le programme openssl - Installez-le et ré-essayez" #: ../lib/file.py:412 msgid "Can't open \"" msgstr "Impossible d'ouvrir \"" #: ../lib/file.py:415 msgid "Bad password" msgstr "Mauvais mot de passe" #: ../lib/file.py:418 msgid "File cannot be locked" msgstr "Le fichier ne peut être verrouillé" #: ../lib/file.py:431 ../lib/file.py:489 msgid "failed!" msgstr "Echoué!" #: ../lib/file.py:457 msgid "Can't write to " msgstr "Impossible d'écrire dans " #: ../lib/file.py:460 msgid "Can't lock file" msgstr "Impossible de verrouiller le fichier" #: ../lib/file.py:597 #, python-format msgid "%s is not readable" msgstr "%s n'est pas lisible" #: ../lib/file.py:613 #, python-format msgid "%s: no permission" msgstr "%s: pas de permission" #: ../lib/file.py:615 #, python-format msgid "%s: locked by process number %d" msgstr "%s: verrouillé par le processus numéro %d" #: ../lib/file.py:617 #, fuzzy msgid ": can't lock file." msgstr "gjots: impossible de verrouiller le fichier." #: ../lib/file.py:705 msgid "That file is already open!" msgstr "Ce fichier est déjà ouvert!" #: ../lib/file.py:713 ../lib/file.py:787 #, fuzzy msgid ": file has changed" msgstr "gjots: %s existe déjà." #: ../lib/file.py:714 #, python-format msgid "File changed since it was read - copied to %s " msgstr "Le fichier a été modifé depuis sa dernière lecture - copié vers %s " #: ../lib/file.py:731 #, python-format msgid "%s is locked by pid %d" msgstr "%s est verrouillé par pid %d" #: ../lib/file.py:735 msgid "Can't make a lockfile in " msgstr "Impossible de créer un fichier verrouillé dans " #: ../lib/file.py:748 #, python-format msgid "%s is not writable" msgstr "%s n'est pas ouvert en écriture" #: ../lib/file.py:751 #, fuzzy, python-format msgid ": %s already exists." msgstr "gjots: %s existe déjà." #: ../lib/file.py:752 #, python-format msgid "overwrite %s?" msgstr "remplacer %s?" #: ../lib/file.py:788 #, python-format msgid "File changed since it was read - so it was copied to %s " msgstr "" "Le fichier a été modifié depuis son ouverture - Il a donc été copié dans %s " #: ../lib/sortDialog.py:125 msgid "_get_settings: Cant find sortAscendingRadioButton" msgstr "_get_settings: Cant find sortAscendingRadioButton" #: ../lib/sortDialog.py:165 msgid "Internal error" msgstr "Erreur interne" #: ../lib/sortDialog.py:303 msgid "Nothing to sort!" msgstr "Rien à trier!" #: ../lib/sortDialog.py:398 msgid "Sort Text" msgstr "Trier le texte" #~ msgid "" #~ "Rui Nibau (fr) <rui.nibau@omacronides.com>\n" #~ "Robert Emil Berge (no, nb) <filoktetes@linuxophic.org>\n" #~ "Сергей Безденежных (Sergey Bezdenezhnyh) (ru) <sib-mail@mtu-net.ru>\n" #~ "Raimondo Giammanco (it) <rongten@member.fsf.org>\n" #~ "Martin Sin (cs) <martin.sin@zshk.cz>\n" #~ "Cecilio Salmeron (es) <s.cecilio@gmail.com>\n" #~ "Aleksa Šušulić (sl) <susulic@gmail.com>\n" #~ "Uwe Steinmann (de) <uwe@steinmann.cx>\n" #~ "曹晉維 (Michael Tsao) (zh_TW) <cwtsao@sce.pccu.edu.tw>\n" #~ msgstr "" #~ "Robert Emil Berge (no, nb) <filoktetes@linuxophic.org>\n" #~ "Сергей Безденежных (Sergey Bezdenezhnyh) (ru) <sib-mail@mtu-net.ru>\n" #~ "Raimondo Giammanco (it) <rongten@member.fsf.org>\n" #~ "Martin Sin (cs) <martin.sin@zshk.cz>\n" #~ "Cecilio Salmeron (es) <s.cecilio@gmail.com>\n" #~ "Aleksa Šušulić (sl) <susulic@gmail.com>\n" #~ "Uwe Steinmann (de) <uwe@steinmann.cx>\n" #~ "曹晉維 (Michael Tsao) (zh_TW) <cwtsao@sce.pccu.edu.tw>\n" #~ msgid "Exit gjots" #~ msgstr "Quitter gjots" #~ msgid "Create a new child " #~ msgstr "Créer une nouvelle note fille" #, fuzzy #~ msgid "About gjots2" #~ msgstr "Quitter gjots" #, fuzzy #~ msgid " Find: " #~ msgstr "Chercher:" #~ msgid "abcdefghijk ABCDEFGHIJK" #~ msgstr "abcdefghijk ABCDEFGHIJK" #, fuzzy, python-format #~ msgid "%s requires pygtk-%s.\n" #~ msgstr "%s nécessite pygtk-%s." #~ msgid "not initialised" #~ msgstr "Non initialisé" #~ msgid "pygtk-2.2 is required for this application!" #~ msgstr "pygtk-2.2 est nécessaire à cette application!" #~ msgid "Store and organise your random notes" #~ msgstr "Gère et organise vos notes" #~ msgid "Gjots2 Jotter" #~ msgstr "Gjots2 Jotter" #~ msgid "gjots" #~ msgstr "gjots" #~ msgid "_New" #~ msgstr "_Nouveau" #~ msgid "_Quit" #~ msgstr "_Quitter" #~ msgid "_Toolbars" #~ msgstr "_Barre d'outils" #~ msgid "_Up" #~ msgstr "_Haut" #~ msgid "_Down" #~ msgstr "_Bas" #~ msgid "Create a new gjots document" #~ msgstr "Créer un nouveau document gjots" #~ msgid "Open an existing gjots document" #~ msgstr "Ouvrir un document gjots existant" #~ msgid "Open" #~ msgstr "Ouvrir" #~ msgid "Back" #~ msgstr "Remonter" #~ msgid "Forward" #~ msgstr "Descendre" #~ msgid "translator_credits" #~ msgstr "Rui Nibau <rui.nibau@omacronides.com>" #~ msgid "%s: Warning: running modules from %s\n" #~ msgstr "%s: Attention: modules lancés depuis %s\n" #~ msgid "Could not find the gpg program - please install it and try again" #~ msgstr "Impossible de trouver le programme gpg - Installez-le et ré-essayez" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/fr/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0013753�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/fr/LC_MESSAGES/���������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0015540�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/fr/LC_MESSAGES/gjots2.mo������������������������������������������������������������0000664�0000000�0000000�00000040145�14016300235�0017311�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������K��<������h�� ���i�� ���s��������������������������������������������������������)�����<�����O�� ���o��+���}��#������������������������� �����'�����!���B�����d�����h�����z�� ����� ����� ��������������� ����� ���������� ��� ����������0�����E�����V�����h��0���x�������$���������� ������������������.�� ���5�����V�����\�� ���b�����l�����q�������C�����������������������!�����3�����E�����I�����\�����d�� ���i�����v�� ���}������������'���������������%����� ���������������7���.��(���f�������.�����8�������� ������� ���!�� ���+��7���9�����q�����w�����������������'�����#�����5��������,�����3�����C��)���b������������-�����"�����*����� ���'�� ���2��&���>�����e������������^����� ���������� ��������&�� ���/�����9�� ���L�� ���V�� ���a�� ���k�����v�������������������������������� ������������������$�����-�� ���2�����=�� ���X�����c�����i��!���~����������������������������������� ��#���+ �� ���O �����p ����� �� ��� ��$��� ����� ����� �� ��� ����� ����� �� ��� ����� �� ���!�����!�����#!�����7!�����>!��(���O!��>���x!�� ���!�� ���!��.���!��+���!�����("�����1"��%���A"�����g"�����"�� ���"�� ���"�����"�����"�����"�����"�� ���"��(���#�� ���/#�����;#�����M#�����b#�����h#�� ���{#�����#�����#�� ���#�����#��#���#�� ���#��%���#�����$�����8$�� ���N$�����\$�����k$�� ���}$�����$�����$�����$��5���$�����$�����$�����$�����$�����$�����%�� ���%�����%�� ���%�� ���&%�� ���0%�� ���;%�� ���E%�� ���P%�� ���\%�����h%�����n%��1���t%�� ���%�����%�����%�� ���%��P���%�����(&��#���;&�����_&�����f&�� ���m&��)���{&�����&��#���&�����&�����&��Q���'�� ���R(�����\(�����t(�����(�����(�����(�����(�����(�����(�����(�����)�����+)�����I)�� ���^)��%���)�� ���)��7���)��1���)��+���*�����I*�����_*�����h*�� ���w*��,���*��$���*�����*�����*��+���*�� ���!+�� ���/+�����9+�����L+��#���c+�� ���+�����+��"���+�����+��&���+�����,�����,�����;,��$���Y,��O���~,��1���,��A����-��&���B-�����i-�����-�����-�����-�� ���-�����-�����-�� ���-�����-�����-�����.��G���3.�����{.�����.�����.�����.�����.�����.�����.�� ��� /�����/�����/�� ���//�� ���9/�����F/�����^/��0���b/�����/�����/��8���/�����/�����0����� 0��F���0��.���a0��$���0��H���0��R���0�����Q1�����Z1�����o1�����1��M���1�� ���1�����1�����2�����2�� ���!2��*���-2��0���X2��?���2�����2�����2��%���2��3��� 3�����?3�����N3��1���^3��-���3��3���3�����3�����4��/���4��#���K4��#���o4��$���4��c���4�� ���5�� ���*5�����85�����G5�� ���W5�����e5�� ���5�����5�� ���5�����5�����5�����5�����5�����5�����6�����6�� ���)6�����36��&���H6��#���o6�� ���6�����6�����6��'���6�����6�����6�����6��!��� 7�����+7��$���G7��&���l7�����7�����7�����7�����7��#���7��.���7�����.8�����C8�� ���L8��#���Z8�����~8�� ���8�����8�� ���8�� ���8�����8�� ���8�����8�����8����� 9�� ���)9�����69��A���L9��k���9�����9�� ���:��3���:��+���N:�� ���z:�����:��.���:��$���:�����:�����:�� ��� ;�����;�����9;�����S;�����p;�����;��4���;�����;�����;�����;����� <�����<�� ���!<�� ���.<�����;<�� ���O<�����\<��'���z<�����<��$���<��%���<��%���=�����.=�����I=�����[=�����u=�����=�����=�����=��8���=�����=�� ���=�����=����� >�� ���>�����>�� ���">�� ���/>�����9>�����N>�����]>�� ���l>�����z>�����>�����>�����>�� ���>��1���>�� ���>�����>�����?�� ��� ?��[���?�����s?��#���?�����?�����?�� ���?��5���?��%���?��)���$@�����N@�����V@��������������������������������������&�����������������������V����������i���l������������*���!������ ���(���9���@������������Q������q���N�����������$����������������B�������������������������r������}���������������m�������_������������������5���;������Z�������������1����������������.���+���k�������������K���J����������]���L��� ���>���f����������������������U�����������������������'���s�������������w���O���#���0��������������~���d���������������������<������������������������������D���F����������������M��������������%�������������������� �����������������/���������������������������������j���o�����������W������������������������������������������p������G������������������������I���?�����������������-��������������S���x���g���������h������P���z����������y���7�������,���e����������������v���������������������������|����������������������X������ �������\���8��������� ���u��������������������������������6�������������������4������������������������C������������ �������A���Y�������������H���������)���=���������n���������b������^��������������������{�������������������T����������3�������������2�������t���`����������c���������a���E���:�������������������R������"�������[���� Options � Print Range � Print command � Print formatting � Sort Parameters � Sort Sublevels �%F�%d items merged�%d substitutions�%d tree items copied�%d tree items cut�%s is locked by pid %d�%s is not readable�%s is not writable�%s requires python%s or higher.�%s version %s�%s: Warning: opening gjots2 manual from %s �%s: bad geometry specification: %s �%s: locked by process number %d�%s: no permission�: Error�: Save?�: version �Add a time/date stamp (see preferences)�Add a time/date stamp (see prefs)�All�All text selected�All tree items selected�Alphabetic�Ascending�Auto Number�Auto-number format: �AutoSave interval:�Backwards�Bad password�Bad regular expression�Bold titles�Can't delete the root item�Can't go any further�Can't go further�Can't go further!�Can't lock file�Can't lock file %s: already locked by process %d�Can't make a lockfile in �Can't merge items that have children�Can't merge the root item�Can't open "�Can't run '%s'�Can't write to �Cancel�Choose a font for the text panel�Clear�Close�Confirm: �Copy�Copy selected items�Copyright Bob Hepple 2002-2020�Could not find the ccrypt program - please install it and try again�Courier 10 Pitch 10�Create a new child�Create a new item�Create a new page�Current text font�Cut�Cut selected items�D_emote�Date�Date format:�Demote�Descending�Don't ignore case�Down�Edit current item in an external editor�Enter password for �Export�Export selected items to a gjots file�Export to ...�Ext.Ed.�External editor�External formatter "%s" is not installed - can't format�Feeds a page before every new gjots item�File cannot be locked�File changed since it was read - copied to %s �File changed since it was read - so it was copied to %s �Find�Find & replace�Find Next�Find Previous�Find string is a regular expression (see 'man 7 regex')�Find:�Format the current paragraph�Found�Global�Hide All�Hide all items except for the top level�Hide all items except the top level�How many sublevels to sort (0 for none; -1 for 'all')�Import�Import from ...�Import items from a gjots file�Install gtksourceview to enable undo/redo�Internal error�Internal error!�Invoke an external editor on the current item�Line length for paragraph wrapping�Make a new item from the current selection�Match case�Merge Items�Merge current items into the first one�Merge selected items together�Move selection down�Move selection up�Neither gpg2 nor gpg are available - please install one (perhaps package gnupg2) and try again�New Child�New Page�New _Child�New file�New...>>>�No changes to save�No child!�No parent!�Not found�Not saved.�Nothing selected�Nothing selected!�Nothing to merge�Nothing to paste�Nothing to save�Nothing to sort!�Numeric�Open file ...�Open file read only�Open gjots preferences window�P_romote�Page�Page feeds�Password was not confirmed�Password: �Paste�Paste selected items�Popup the find and replace dialog�Popup the sort dialog�Popup the sort text dialog�Popup the sort tree dialog�Prefs�Print�Print the current page�Print the entire gjots file�Print the gjots item titles in bold�Print the selected pages or text�Print this document�Promote�Read only�Read the online manual (using gjots)�Regular Expression�Replace�Replace All�Replace:�Replace?�S_ort Tree�Save�Save as ...�Save current work?�Save gjots document�Saved.�Search backwards�Searches entire file not just this entry�Seconds of inactivity to trigger an AutoSave (0 = no AutoSave)�Select Font�Selection�Selection becomes a child of the previous item�Selection becomes a sibling to their parent�Show All�Show _Icon Text�Show all items below the current item�Show the related icon text�Sort�Sort Text�Sort Tree�Sort in alphabetic order�Sort in ascending order�Sort in descending order�Sort in numeric order�Split Item�Split the text selection into a new item�Status _Bar�String to replace�String to search for�Te_xt�Text Line Length: �Text copied�Text cut�Text formatter: �Text pasted�That file is already open!�To open the file in read-only mode.�To_p Toolbar�Toggle the read-only flag if possible�Toggles the main toolbar�Toggles tree tool bar�Tre_e Toolbar�Tree is empty!�Tree items pasted�Try again�Up�Use -h for help �Wrap�Wrap the current paragraph to the current line length�_Edit�_Export�_External Edit�_File�_Format�_Help�_Hide All�_Import�_Merge Items�_New Page�_Read-only�_Show All�_Sort Text�_Split Item�_Time stamp�_Tree�_View�_get_settings: Cant find sortAscendingRadioButton�e.g. lpr: �eg. 1 for 1.2.1, a�failed!�fmt -w %d �gjots2: warning: selection list is NULL. Skipping tree selection changed event.�gjots: preferences�http://bhepple.freeshell.org/gjots2�label1�label2�overwrite %s?�print command (can be a shell expression)�text changed by external editor�text not changed by external editor�window1�xterm -e vi %s�Project-Id-Version: gjots 2.3.0 Report-Msgid-Bugs-To: PO-Revision-Date: 2020-06-25 21:14+0700 Last-Translator: Frederic Muller <fred@cm17.com> Language-Team: French Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Generator: Poedit 2.3.1 � Options �Etendue de l'impression�Commande d'impression�Format d'impression�Paramètres de tri�Trier les sous-niveaux�%F�%d notes fusionnées�%d substitutions�%d notes de l'arbre copiées�%d notes de l'arbre coupées�%s est verrouillé par pid %d�%s n'est pas lisible�%s n'est pas ouvert en écriture�%s nécessite python%s ou supérieur.�%s version %s�%s: Attention: ouverture du manuel de gjots2 depuis %s �%s: mauvaises spécifications géométriques: %s �%s: verrouillé par le processus numéro %d�%s: pas de permission�: Erreur�: Enregistrer?�: version �Ajouter la date/l'heure (voir préférences)�Ajouter la date/l'heure (voir prefs)�Tout�Tout le texte sélectionné�Toutes les notes de l'arbre sélectionnées�Alphabétique�Croissant�Numérotation auto�Format numérotation: �Interval de sauvegarde automatique:�En arrière�Mauvais mot de passe�Expression régulière mal formée�Titres en gras�Impossible de supprimer la note racine�Impossible d'aller plus loin�Impossible d'aller plus loin�Impossible d'aller plus loin!�Impossible de verrouiller le fichier�Impossible de verrouiller le fichier %s: déjà verrouillé par le processus %d�Impossible de créer un fichier verrouillé dans �Impossible de fusionner des notes qui possèdent des notes filles�Impossible de fusionner la note racine�Impossible d'ouvrir "�Impossible de lancer '%s'�Impossible d'écrire dans �Annuler�Choisir une police pour le texte�Effacer�Fermer�Confirmer: �Copier�Copier la sélection�Copyright Bob Hepple 2002-2020�Impossible de trouver le programme ccrypt - installez-le et ré-essayez�Courier 10 Pitch 10�Créer une note fille�Créer une nouvelle note�Créer une nouvelle page�Police actuelle du texte�Couper�Couper la sélection�_Descendre�Date�Format de la date:�Descendre�Décroissant�Ne pas ignorer la casse�Bas�Editer la note courante dans un éditeur externe�Entrer le mot de passe pour�Exporter�Exporter les notes sélectionnées dans un fichier gjots�Exporter vers...�Ed.Ext.�Editeur externe�Le formateur externe "%s" n'est pas installé - impossible de formater�Nouvelle page avant chaque nouvelle note gjots�Le fichier ne peut être verrouillé�Le fichier a été modifé depuis sa dernière lecture - copié vers %s �Le fichier a été modifié depuis son ouverture - Il a donc été copié dans %s �Chercher�Chercher & remplacer�Chercher le suivant�Chercher le précédent�La chaîne à rechercher est une expression régulière (voir 'man 7 regexp')�Chercher:�Formater le paragraphe courant�Trouvé�Global�Cacher tout�Cacher toutes les notes sauf la note mère�Masquer toutes les notes exceptée la note mère�Combien de sous-niveaux à trier (0 pour aucun; -1 pour 'tous')�Importer�Importer depuis...�Importer les notes d'un fichier gjots�Installer gtksourceview pour activer faire/défaire�Erreur interne�Erreur interne!�Appeler un éditeur externe pour la note courante�Longueur de ligne pour couper les paragraphes�Créer une nouvelle note à partir de la sélection�Sensible à la casse�Fusionner les notes�Fusionner les notes courantes dans la première�Fusionner les notes sélectionnées�Déplacer la sélection vers le bas�Déplacer la sélection vers le haut�Ni gpg2 ni gpg ne sont installés - installez l'un des deux (perhaps package gnupg2) et ré-essayez�Nouvel Enfant�Nouvelle page�Nouvel _Enfant�Nouveau fichier�Nouveau...>>>�Aucun changement à enregistrer�Pas d'enfant!�Pas de parent!�Rien trouvé�Non enregistré.�Aucune sélection�Aucune sélection!�Rien à fusionner�Rien à coller�Rien à enregistrer�Rien à trier!�Numerique�Ouvrir un fichier...�Ouvrir un fichier en lecteur seulement�Afficher les préférences de gjots�_Remonter�Page�Alimentation papier�Le mot de passe n'a pas été confirmé�Mot de passe: �Coller�Coller la sélection�Afficher la fenêtre de recherche�Afficher la fenêtre de tri�Afficher la fenêtre de tri du texte�Afficher la fenêtre de tri de l'arbre�Prefs�Imprimer�Imprimer la page courante�Imprimer tout le fichier gjots�Imprimer le titre des notes en gras�Imprimer les pages sélectionnées ou le texte�Imprimer ce document�Remonter�Lecture seule�Lire le manuel (en utilisant gjots)�Expression régulière�Remplacer�Remplacer tout�Remplacer:�Remplacer?�_Trier l'arbre�Enregistrer�Enregistrer sous...�Enregistrer ce travail?�Enregistrer le document gjots�Enregistré.�Recherche en arrière�Rechercher dans tout le fichier et pas uniquement dans cette note�Nombre de secondes d'inactivité pour lancer une sauvegarde automatique (0 = pas de sauvegarde automatique)�Sélectionner police�Sélection�La sélection devient fille de la note précédente�La sélection devient une soeur de sa mère�Montrer tout�Montrer le texte de l'_icone�Montrer toutes les notes sous la note courante�Montrer le texte associé à l'icone�Trier�Trier le texte�Trier l'arbre�Trier par ordre alphabétique�Trier par ordre croissant�Trier par ordre décroissant�Trier par ordre numérique�Scinder la note�Créer une nouvelle note avec le texte sélectionné�Barre d'é_tat�Chaîne à remplacer�Chaîne à rechercher�Te_xte�Longueur ligne:�Texte copié�Texte coupé�Formateur de texte:�Texte collé�Ce fichier est déjà ouvert!�Ouvrir le fichier seulement en lecture.�Barre d'outils _principale�Activer la lecture seule si possible�Afficher la barre d'outils principale�Afficher la barre d'outils de l'arbre�Barre d'outils de l'_arbre�L'arbre est vide!�Notes de l'arbre collées�Essayez à nouveau�Haut�Utiliser -h pour l'aide �Retour�Couper le paragraphe à la longueur de ligne spécifiée�_Editer�_Exporter�_Editeur externe�_Fichier�_Formater�_Aide�_Cacher tout�Im_porter�_Fusionner les notes�_Nouvelle page�_Lecture seule�_Montrer tout�_Trier le texte�_Scinder la note�_Date�_Arbre�Affic_hage�_get_settings: Cant find sortAscendingRadioButton�ex. lpr: �ex. 1 pour 1.2.1, a�Echoué!�fmt -w %d �gjots2: Attention: la liste de sélection est NULL. Skipping tree selection changed event.�gjots: préférences�http://bhepple.freeshell.org/gjots2�label1�label2�remplacer %s?�Commande d'impression (peut être une commande shell)�Texte modifié par l'éditeur externe�Texte non modifié par l'éditeur externe�window1�xterm -e vi %s����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/gjots2.pot��������������������������������������������������������������������������0000664�0000000�0000000�00000045612�14016300235�0015310�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-07-06 14:55+1000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/about.ui:12 msgid "Copyright Bob Hepple 2002-2020" msgstr "" #: ../ui/about.ui:13 msgid "http://bhepple.freeshell.org/gjots2" msgstr "" #: ../ui/about.ui:25 msgid "\n" msgstr "" #: ../ui/fileDialog.ui:69 msgid "Open file read only" msgstr "" #: ../ui/fileDialog.ui:73 msgid "To open the file in read-only mode." msgstr "" #: ../ui/findDialog.ui:8 msgid "Find & replace" msgstr "" #: ../ui/findDialog.ui:34 msgid "Find:" msgstr "" #: ../ui/findDialog.ui:47 msgid "Replace:" msgstr "" #: ../ui/findDialog.ui:64 msgid "String to search for" msgstr "" #: ../ui/findDialog.ui:80 msgid "String to replace" msgstr "" #: ../ui/findDialog.ui:114 ../ui/gjots.ui:844 msgid "Find" msgstr "" #: ../ui/findDialog.ui:130 msgid "Close" msgstr "" #: ../ui/findDialog.ui:146 msgid "Replace" msgstr "" #: ../ui/findDialog.ui:162 msgid "Replace All" msgstr "" #: ../ui/findDialog.ui:178 msgid "Cancel" msgstr "" #: ../ui/findDialog.ui:197 msgid "Clear" msgstr "" #: ../ui/findDialog.ui:257 msgid "Match case" msgstr "" #: ../ui/findDialog.ui:261 msgid "Don't ignore case" msgstr "" #: ../ui/findDialog.ui:271 msgid "Regular Expression" msgstr "" #: ../ui/findDialog.ui:275 msgid "Find string is a regular expression (see 'man 7 regex')" msgstr "" #: ../ui/findDialog.ui:287 msgid "Backwards" msgstr "" #: ../ui/findDialog.ui:291 msgid "Search backwards" msgstr "" #: ../ui/findDialog.ui:306 msgid "Global" msgstr "" #: ../ui/findDialog.ui:310 msgid "Searches entire file not just this entry" msgstr "" #: ../ui/findDialog.ui:327 msgid " Options " msgstr "" #: ../ui/fontDialog.ui:9 msgid "Select Font" msgstr "" #: ../ui/generalDialog.ui:9 msgid "window1" msgstr "" #: ../ui/generalDialog.ui:22 ../ui/generalDialog.ui:60 #: ../ui/generalDialog.ui:115 msgid "label1" msgstr "" #: ../ui/generalDialog.ui:46 msgid "label2" msgstr "" #: ../ui/generalDialog.ui:193 msgid "Try again" msgstr "" #: ../ui/generalDialog.ui:209 msgid "Read only" msgstr "" #: ../ui/gjots.ui:24 msgid "_File" msgstr "" #: ../ui/gjots.ui:88 msgid "_Import" msgstr "" #: ../ui/gjots.ui:91 msgid "Import items from a gjots file" msgstr "" #: ../ui/gjots.ui:99 msgid "_Export" msgstr "" #: ../ui/gjots.ui:102 msgid "Export selected items to a gjots file" msgstr "" #: ../ui/gjots.ui:135 msgid "Toggle the read-only flag if possible" msgstr "" #: ../ui/gjots.ui:136 msgid "_Read-only" msgstr "" #: ../ui/gjots.ui:152 msgid "Exit gjots2" msgstr "" #: ../ui/gjots.ui:167 msgid "_Edit" msgstr "" #: ../ui/gjots.ui:263 msgid "Find Next" msgstr "" #: ../ui/gjots.ui:273 msgid "Find Previous" msgstr "" #: ../ui/gjots.ui:299 msgid "_View" msgstr "" #: ../ui/gjots.ui:307 msgid "_Show All" msgstr "" #: ../ui/gjots.ui:310 ../ui/gjots.ui:1085 msgid "Show all items below the current item" msgstr "" #: ../ui/gjots.ui:318 msgid "_Hide All" msgstr "" #: ../ui/gjots.ui:321 msgid "Hide all items except the top level" msgstr "" #: ../ui/gjots.ui:337 msgid "Toggles the main toolbar" msgstr "" #: ../ui/gjots.ui:338 msgid "To_p Toolbar" msgstr "" #: ../ui/gjots.ui:347 msgid "Toggles tree tool bar" msgstr "" #: ../ui/gjots.ui:348 msgid "Tre_e Toolbar" msgstr "" #: ../ui/gjots.ui:357 msgid "Show the related icon text" msgstr "" #: ../ui/gjots.ui:358 msgid "Show _Icon Text" msgstr "" #: ../ui/gjots.ui:367 msgid "Status _Bar" msgstr "" #: ../ui/gjots.ui:380 msgid "_Tree" msgstr "" #: ../ui/gjots.ui:388 msgid "_New Page" msgstr "" #: ../ui/gjots.ui:391 msgid "Create a new page" msgstr "" #: ../ui/gjots.ui:400 msgid "New _Child" msgstr "" #: ../ui/gjots.ui:403 ../ui/gjots.ui:920 msgid "Create a new child" msgstr "" #: ../ui/gjots.ui:420 ../ui/gjots.ui:950 msgid "Move selection up" msgstr "" #: ../ui/gjots.ui:431 ../ui/gjots.ui:965 msgid "Move selection down" msgstr "" #: ../ui/gjots.ui:439 msgid "P_romote" msgstr "" #: ../ui/gjots.ui:442 ../ui/gjots.ui:980 msgid "Selection becomes a sibling to their parent" msgstr "" #: ../ui/gjots.ui:450 msgid "D_emote" msgstr "" #: ../ui/gjots.ui:453 ../ui/gjots.ui:995 msgid "Selection becomes a child of the previous item" msgstr "" #: ../ui/gjots.ui:467 msgid "_Split Item" msgstr "" #: ../ui/gjots.ui:470 msgid "Make a new item from the current selection" msgstr "" #: ../ui/gjots.ui:478 msgid "_Merge Items" msgstr "" #: ../ui/gjots.ui:481 msgid "Merge current items into the first one" msgstr "" #: ../ui/gjots.ui:489 msgid "S_ort Tree" msgstr "" #: ../ui/gjots.ui:492 ../ui/gjots.ui:1100 msgid "Popup the sort tree dialog" msgstr "" #: ../ui/gjots.ui:506 msgid "Te_xt" msgstr "" #: ../ui/gjots.ui:514 msgid "_Format" msgstr "" #: ../ui/gjots.ui:517 msgid "Format the current paragraph" msgstr "" #: ../ui/gjots.ui:526 msgid "_Time stamp" msgstr "" #: ../ui/gjots.ui:529 msgid "Add a time/date stamp (see preferences)" msgstr "" #: ../ui/gjots.ui:538 msgid "_External Edit" msgstr "" #: ../ui/gjots.ui:541 msgid "Edit current item in an external editor" msgstr "" #: ../ui/gjots.ui:549 msgid "_Sort Text" msgstr "" #: ../ui/gjots.ui:552 msgid "Popup the sort text dialog" msgstr "" #: ../ui/gjots.ui:566 msgid "_Help" msgstr "" #: ../ui/gjots.ui:574 msgid "_Read Manual" msgstr "" #: ../ui/gjots.ui:577 msgid "Read the online manual (using gjots)" msgstr "" #: ../ui/gjots.ui:621 msgid "Popup the 'Find'menu" msgstr "" #: ../ui/gjots.ui:651 msgid "Find the previous occurance" msgstr "" #: ../ui/gjots.ui:667 msgid "Find the next occurance" msgstr "" #: ../ui/gjots.ui:693 msgid "Save gjots document" msgstr "" #: ../ui/gjots.ui:694 msgid "Save" msgstr "" #: ../ui/gjots.ui:708 msgid "Print this document" msgstr "" #: ../ui/gjots.ui:709 ../ui/printDialog.ui:8 msgid "Print" msgstr "" #: ../ui/gjots.ui:738 msgid "Cut selected items" msgstr "" #: ../ui/gjots.ui:739 msgid "Cut" msgstr "" #: ../ui/gjots.ui:753 msgid "Copy selected items" msgstr "" #: ../ui/gjots.ui:754 msgid "Copy" msgstr "" #: ../ui/gjots.ui:768 msgid "Paste selected items" msgstr "" #: ../ui/gjots.ui:769 msgid "Paste" msgstr "" #: ../ui/gjots.ui:798 msgid "Wrap the current paragraph to the current line length" msgstr "" #: ../ui/gjots.ui:799 msgid "Wrap" msgstr "" #: ../ui/gjots.ui:813 msgid "Invoke an external editor on the current item" msgstr "" #: ../ui/gjots.ui:814 msgid "Ext.Ed." msgstr "" #: ../ui/gjots.ui:828 msgid "Add a time/date stamp (see prefs)" msgstr "" #: ../ui/gjots.ui:829 msgid "Date" msgstr "" #: ../ui/gjots.ui:843 msgid "Popup the find and replace dialog" msgstr "" #: ../ui/gjots.ui:858 msgid "Popup the sort dialog" msgstr "" #: ../ui/gjots.ui:859 ../ui/sortDialog.ui:15 msgid "Sort" msgstr "" #: ../ui/gjots.ui:873 msgid "Open gjots preferences window" msgstr "" #: ../ui/gjots.ui:874 msgid "Prefs" msgstr "" #: ../ui/gjots.ui:905 msgid "Create a new item" msgstr "" #: ../ui/gjots.ui:906 ../ui/treeContextMenu.ui:45 msgid "New Page" msgstr "" #: ../ui/gjots.ui:921 ../ui/treeContextMenu.ui:52 msgid "New Child" msgstr "" #: ../ui/gjots.ui:951 msgid "Up" msgstr "" #: ../ui/gjots.ui:966 msgid "Down" msgstr "" #: ../ui/gjots.ui:981 ../ui/treeContextMenu.ui:74 msgid "Promote" msgstr "" #: ../ui/gjots.ui:996 ../ui/treeContextMenu.ui:82 msgid "Demote" msgstr "" #: ../ui/gjots.ui:1025 msgid "Split the text selection into a new item" msgstr "" #: ../ui/gjots.ui:1026 msgid "Split Item" msgstr "" #: ../ui/gjots.ui:1040 msgid "Merge selected items together" msgstr "" #: ../ui/gjots.ui:1041 ../ui/treeContextMenu.ui:89 msgid "Merge Items" msgstr "" #: ../ui/gjots.ui:1070 msgid "Hide all items except for the top level" msgstr "" #: ../ui/gjots.ui:1071 ../ui/treeContextMenu.ui:103 msgid "Hide All" msgstr "" #: ../ui/gjots.ui:1086 ../ui/treeContextMenu.ui:96 msgid "Show All" msgstr "" #: ../ui/gjots.ui:1101 ../ui/treeContextMenu.ui:110 ../lib/sortDialog.py:394 msgid "Sort Tree" msgstr "" #: ../ui/prefsDialog.ui:20 msgid "gjots: preferences" msgstr "" #: ../ui/prefsDialog.ui:49 msgid "Choose a font for the text panel" msgstr "" #: ../ui/prefsDialog.ui:65 msgid "Date format:" msgstr "" #: ../ui/prefsDialog.ui:79 msgid "Format for the timestamp function (see strftime(3)) eg %F" msgstr "" #: ../ui/prefsDialog.ui:80 msgid "%F" msgstr "" #: ../ui/prefsDialog.ui:99 msgid "" "External program to edit a page (%s is replaced by the name of the temporary " "edit file) eg xterm -e vi %s" msgstr "" #: ../ui/prefsDialog.ui:100 msgid "xterm -e vi %s" msgstr "" #: ../ui/prefsDialog.ui:120 msgid "External editor" msgstr "" #: ../ui/prefsDialog.ui:135 msgid "Text Line Length: " msgstr "" #: ../ui/prefsDialog.ui:149 msgid "Line length for paragraph wrapping" msgstr "" #: ../ui/prefsDialog.ui:172 msgid "Text formatter: " msgstr "" #: ../ui/prefsDialog.ui:184 msgid "" "External program to pipe text for formatting (%d is replaced by the current " "line width) eg fmt -w %d " msgstr "" #: ../ui/prefsDialog.ui:185 msgid "fmt -w %d " msgstr "" #: ../ui/prefsDialog.ui:202 msgid "Current text font" msgstr "" #: ../ui/prefsDialog.ui:204 msgid "Courier 10 Pitch 10" msgstr "" #: ../ui/prefsDialog.ui:224 msgid "AutoSave interval:" msgstr "" #: ../ui/prefsDialog.ui:238 msgid "Seconds of inactivity to trigger an AutoSave (0 = no AutoSave)" msgstr "" #: ../ui/printDialog.ui:38 msgid "e.g. lpr: " msgstr "" #: ../ui/printDialog.ui:54 msgid "print command (can be a shell expression)" msgstr "" #: ../ui/printDialog.ui:76 msgid " Print command " msgstr "" #: ../ui/printDialog.ui:104 msgid "Page" msgstr "" #: ../ui/printDialog.ui:108 msgid "Print the current page" msgstr "" #: ../ui/printDialog.ui:120 msgid "Selection" msgstr "" #: ../ui/printDialog.ui:124 msgid "Print the selected pages or text" msgstr "" #: ../ui/printDialog.ui:137 msgid "All" msgstr "" #: ../ui/printDialog.ui:141 msgid "Print the entire gjots file" msgstr "" #: ../ui/printDialog.ui:160 msgid " Print Range " msgstr "" #: ../ui/printDialog.ui:193 msgid "Page feeds" msgstr "" #: ../ui/printDialog.ui:197 msgid "Feeds a page before every new gjots item" msgstr "" #: ../ui/printDialog.ui:209 msgid "Bold titles" msgstr "" #: ../ui/printDialog.ui:212 msgid "Print the gjots item titles in bold" msgstr "" #: ../ui/printDialog.ui:224 msgid "Auto Number" msgstr "" #: ../ui/printDialog.ui:251 msgid "Auto-number format: " msgstr "" #: ../ui/printDialog.ui:262 msgid "eg. 1 for 1.2.1, a" msgstr "" #: ../ui/printDialog.ui:289 msgid " Print formatting " msgstr "" #: ../ui/sortDialog.ui:43 msgid "Ascending" msgstr "" #: ../ui/sortDialog.ui:47 msgid "Sort in ascending order" msgstr "" #: ../ui/sortDialog.ui:58 msgid "Descending" msgstr "" #: ../ui/sortDialog.ui:62 msgid "Sort in descending order" msgstr "" #: ../ui/sortDialog.ui:76 msgid "Alphabetic" msgstr "" #: ../ui/sortDialog.ui:80 msgid "Sort in alphabetic order" msgstr "" #: ../ui/sortDialog.ui:93 msgid "Numeric" msgstr "" #: ../ui/sortDialog.ui:97 msgid "Sort in numeric order" msgstr "" #: ../ui/sortDialog.ui:119 msgid " Sort Parameters " msgstr "" #: ../ui/sortDialog.ui:149 msgid "How many sublevels to sort (0 for none; -1 for 'all')" msgstr "" #: ../ui/sortDialog.ui:171 msgid " Sort Sublevels " msgstr "" #: ../ui/treeContextMenu.ui:30 msgid "Select _All" msgstr "" #: ../ui/treeContextMenu.ui:117 msgid "Import" msgstr "" #: ../ui/treeContextMenu.ui:124 msgid "Export" msgstr "" #: ../gjots2:23 msgid "" "Usage: gjots [OPTIONS] [FILENAME]\n" "A gtk/X11 jotter\n" "\n" "OPTIONS:\n" "-h, --help: this help\n" "-d, --debug: debug to stdout\n" "-t, --trace: trace lines as they execute\n" "-g 123x456, --geometry=123x456: initial geometry (X x Y)\n" "-p, --purge-password don't remember password\n" "-r, --readonly: no editing (or locking)\n" "-V, --version: print the version and exit\n" "\n" "FILENAME:\n" " gjots data filename (default is $HOME/.gjotsfile)\n" msgstr "" #: ../gjots2:89 #, python-format msgid "%s requires python%s or higher." msgstr "" #: ../gjots2:102 msgid "Use -h for help\n" msgstr "" #: ../gjots2:116 #, python-format msgid "%s version %s" msgstr "" #: ../lib/gui.py:51 ../lib/gui.py:996 msgid "Text pasted" msgstr "" #: ../lib/gui.py:179 #, python-format msgid "External formatter \"%s\" is not installed - can't format" msgstr "" #: ../lib/gui.py:564 ../lib/gui.py:675 ../lib/gui.py:679 ../lib/gui.py:745 #: ../lib/gui.py:749 ../lib/gui.py:812 ../lib/gui.py:817 ../lib/gui.py:1043 #: ../lib/gui.py:1052 ../lib/gui.py:1138 ../lib/gui.py:1147 ../lib/gui.py:1183 #: ../lib/gui.py:1188 ../lib/gui.py:1219 ../lib/gui.py:1608 ../lib/gui.py:2382 #: ../lib/gui.py:2401 ../lib/gui.py:2430 ../lib/gui.py:2461 ../lib/file.py:466 #: ../lib/file.py:471 ../lib/sortDialog.py:329 ../lib/sortDialog.py:334 #: ../lib/printDialog.py:110 ../lib/printDialog.py:115 msgid "Nothing selected" msgstr "" #: ../lib/gui.py:568 ../lib/gui.py:684 ../lib/gui.py:753 ../lib/gui.py:822 #: ../lib/gui.py:934 ../lib/gui.py:1224 ../lib/gui.py:2386 #: ../lib/sortDialog.py:345 msgid "No parent!" msgstr "" #: ../lib/gui.py:572 ../lib/gui.py:719 msgid "No child!" msgstr "" #: ../lib/gui.py:580 ../lib/gui.py:693 msgid "Can't go any further" msgstr "" #: ../lib/gui.py:616 ../lib/gui.py:840 msgid "Internal error!" msgstr "" #: ../lib/gui.py:757 msgid "Can't go further!" msgstr "" #: ../lib/gui.py:973 msgid "Text cut" msgstr "" #: ../lib/gui.py:984 msgid "Text copied" msgstr "" #: ../lib/gui.py:1005 msgid "All text selected" msgstr "" #: ../lib/gui.py:1015 msgid "All tree items selected" msgstr "" #: ../lib/gui.py:1023 msgid "Nothing selected!" msgstr "" #: ../lib/gui.py:1047 msgid "Can't merge the root item" msgstr "" #: ../lib/gui.py:1056 msgid "Nothing to merge" msgstr "" #: ../lib/gui.py:1063 msgid "Can't merge items that have children" msgstr "" #: ../lib/gui.py:1093 #, python-format msgid "%d items merged" msgstr "" #: ../lib/gui.py:1142 msgid "Can't delete the root item" msgstr "" #: ../lib/gui.py:1175 #, python-format msgid "%d tree items cut" msgstr "" #: ../lib/gui.py:1205 #, python-format msgid "%d tree items copied" msgstr "" #: ../lib/gui.py:1214 msgid "Nothing to paste" msgstr "" #: ../lib/gui.py:1237 msgid "Tree items pasted" msgstr "" #: ../lib/gui.py:1258 msgid "Can't write tempfile" msgstr "" #: ../lib/gui.py:1278 #, python-format msgid "Can't run '%s'" msgstr "" #: ../lib/gui.py:1287 msgid "Can't read tempfile " msgstr "" #: ../lib/gui.py:1293 msgid "text changed by external editor" msgstr "" #: ../lib/gui.py:1295 msgid "text not changed by external editor" msgstr "" #: ../lib/gui.py:1314 msgid ": Error" msgstr "" #: ../lib/gui.py:1327 #, python-format msgid "Can't lock file %s: already locked by process %d" msgstr "" #: ../lib/gui.py:1510 msgid ": Save?" msgstr "" #: ../lib/gui.py:1511 msgid "Save current work?" msgstr "" #: ../lib/gui.py:1532 msgid "New file" msgstr "" #: ../lib/gui.py:1556 msgid "Open file ..." msgstr "" #: ../lib/gui.py:1568 msgid "No changes to save" msgstr "" #: ../lib/gui.py:1572 ../lib/gui.py:1593 msgid "Saved." msgstr "" #: ../lib/gui.py:1574 ../lib/gui.py:1595 ../lib/file.py:456 msgid "Not saved." msgstr "" #: ../lib/gui.py:1589 msgid "Nothing to save" msgstr "" #: ../lib/gui.py:1591 ../lib/file.py:693 msgid "Save as ..." msgstr "" #: ../lib/gui.py:1605 msgid "Import from ..." msgstr "" #: ../lib/gui.py:1616 msgid "Export to ..." msgstr "" #: ../lib/gui.py:1930 ../lib/gui.py:1933 #, python-format msgid "%s: Warning: opening gjots2 manual from %s\n" msgstr "" #: ../lib/gui.py:2317 msgid "" "gjots2: warning: selection list is NULL. Skipping tree selection changed \n" "event." msgstr "" #: ../lib/gui.py:2390 msgid "Can't go further" msgstr "" #: ../lib/gui.py:2419 msgid "Tree is empty!" msgstr "" #: ../lib/gui.py:2716 msgid "Bad regular expression" msgstr "" #: ../lib/gui.py:2808 #, python-format msgid "%s: bad geometry specification: %s\n" msgstr "" #: ../lib/gui.py:2899 msgid "New...>>>" msgstr "" #: ../lib/gui.py:2936 msgid "Install gtksourceview to enable undo/redo" msgstr "" #: ../lib/gui.py:3102 msgid ": version " msgstr "" #: ../lib/find.py:70 ../lib/find.py:93 msgid "Not found" msgstr "" #: ../lib/find.py:72 msgid "Found" msgstr "" #: ../lib/find.py:96 msgid "Replace?" msgstr "" #: ../lib/find.py:113 #, python-format msgid "%d substitutions" msgstr "" #: ../lib/file.py:255 msgid "Enter password for " msgstr "" #: ../lib/file.py:257 msgid ": Enter Password" msgstr "" #: ../lib/file.py:259 msgid "Password: " msgstr "" #: ../lib/file.py:260 msgid "Confirm: " msgstr "" #: ../lib/file.py:268 msgid "Password was not confirmed" msgstr "" #: ../lib/file.py:275 msgid "Could not find the ccrypt program - please install it and try again" msgstr "" #: ../lib/file.py:308 msgid "" "Neither gpg2 nor gpg are available - please install one (perhaps package " "gnupg2) and try again" msgstr "" #: ../lib/file.py:328 msgid "No openssl program - please install it and try again" msgstr "" #: ../lib/file.py:354 msgid "No org2gjots program - please install it and try again" msgstr "" #: ../lib/file.py:412 msgid "Can't open \"" msgstr "" #: ../lib/file.py:415 msgid "Bad password" msgstr "" #: ../lib/file.py:418 msgid "File cannot be locked" msgstr "" #: ../lib/file.py:431 ../lib/file.py:489 msgid "failed!" msgstr "" #: ../lib/file.py:457 msgid "Can't write to " msgstr "" #: ../lib/file.py:460 msgid "Can't lock file" msgstr "" #: ../lib/file.py:597 #, python-format msgid "%s is not readable" msgstr "" #: ../lib/file.py:613 #, python-format msgid "%s: no permission" msgstr "" #: ../lib/file.py:615 #, python-format msgid "%s: locked by process number %d" msgstr "" #: ../lib/file.py:617 msgid ": can't lock file." msgstr "" #: ../lib/file.py:705 msgid "That file is already open!" msgstr "" #: ../lib/file.py:713 ../lib/file.py:787 msgid ": file has changed" msgstr "" #: ../lib/file.py:714 #, python-format msgid "File changed since it was read - copied to %s " msgstr "" #: ../lib/file.py:731 #, python-format msgid "%s is locked by pid %d" msgstr "" #: ../lib/file.py:735 msgid "Can't make a lockfile in " msgstr "" #: ../lib/file.py:748 #, python-format msgid "%s is not writable" msgstr "" #: ../lib/file.py:751 #, python-format msgid ": %s already exists." msgstr "" #: ../lib/file.py:752 #, python-format msgid "overwrite %s?" msgstr "" #: ../lib/file.py:788 #, python-format msgid "File changed since it was read - so it was copied to %s " msgstr "" #: ../lib/sortDialog.py:125 msgid "_get_settings: Cant find sortAscendingRadioButton" msgstr "" #: ../lib/sortDialog.py:165 msgid "Internal error" msgstr "" #: ../lib/sortDialog.py:303 msgid "Nothing to sort!" msgstr "" #: ../lib/sortDialog.py:398 msgid "Sort Text" msgstr "" ����������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/it.po�������������������������������������������������������������������������������0000664�0000000�0000000�00000067603�14016300235�0014334�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Messages master file for gjots2. # Copyright (C) 2005-2006 Bob Hepple # This file is distributed under the same license as the gjots2 package. # Bob Hepple <bhepple@freeshell.org>, 2005. # msgid "" msgstr "" "Project-Id-Version: gjots2 2.3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-30 18:18+1000\n" "PO-Revision-Date: 2006-02-27 19:57+0100\n" "Last-Translator: Raimondo Giammanco <rongten@member.fsf.org>\n" "Language-Team: Italian\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Italian\n" "X-Poedit-Country: ITALY\n" "X-Poedit-SourceCharset: utf-8\n" #: ../ui/about.ui:12 #, fuzzy msgid "Copyright Bob Hepple 2002-2020" msgstr "Diritti di Autore Bob Hepple 2002-2006" #: ../ui/about.ui:13 msgid "http://bhepple.freeshell.org/gjots2" msgstr "http://bhepple.freeshell.org/gjots2" #: ../ui/about.ui:25 msgid "\n" msgstr "" #: ../ui/fileDialog.ui:69 #, fuzzy msgid "Open file read only" msgstr "Aprire archivio ..." #: ../ui/fileDialog.ui:73 msgid "To open the file in read-only mode." msgstr "" #: ../ui/findDialog.ui:8 msgid "Find & replace" msgstr "Ricerca & Sostituisce" #: ../ui/findDialog.ui:34 msgid "Find:" msgstr "Ricerca:" #: ../ui/findDialog.ui:47 msgid "Replace:" msgstr "Sostituisce:" #: ../ui/findDialog.ui:64 msgid "String to search for" msgstr "Frase da ricercare" #: ../ui/findDialog.ui:80 msgid "String to replace" msgstr "Frase da sostituire" #: ../ui/findDialog.ui:114 ../ui/gjots.ui:844 msgid "Find" msgstr "Ricerca" #: ../ui/findDialog.ui:130 msgid "Close" msgstr "Chiude" #: ../ui/findDialog.ui:146 msgid "Replace" msgstr "Sostituisce" #: ../ui/findDialog.ui:162 msgid "Replace All" msgstr "Sostituisce Tutti" #: ../ui/findDialog.ui:178 msgid "Cancel" msgstr "Cancella" #: ../ui/findDialog.ui:197 msgid "Clear" msgstr "Pulisci" #: ../ui/findDialog.ui:257 msgid "Match case" msgstr "Fai coincidere maiuscole e minuscole" #: ../ui/findDialog.ui:261 msgid "Don't ignore case" msgstr "Non ignorare maiuscole e minuscole" #: ../ui/findDialog.ui:271 msgid "Regular Expression" msgstr "Espressione Regolare" #: ../ui/findDialog.ui:275 msgid "Find string is a regular expression (see 'man 7 regex')" msgstr "La frase da ricercare è una espressione normale (see 'man 7 regex')" #: ../ui/findDialog.ui:287 msgid "Backwards" msgstr "Indietro" #: ../ui/findDialog.ui:291 msgid "Search backwards" msgstr "Ricerca all'indietro" #: ../ui/findDialog.ui:306 msgid "Global" msgstr "Globale" #: ../ui/findDialog.ui:310 msgid "Searches entire file not just this entry" msgstr "Ricerda l'intero documento non solo questo appunto" #: ../ui/findDialog.ui:327 msgid " Options " msgstr " Opzioni" #: ../ui/fontDialog.ui:9 msgid "Select Font" msgstr "Seleziona tipo di carattere di testo" #: ../ui/generalDialog.ui:9 msgid "window1" msgstr "Finestra1" #: ../ui/generalDialog.ui:22 ../ui/generalDialog.ui:60 #: ../ui/generalDialog.ui:115 msgid "label1" msgstr "Nome1" #: ../ui/generalDialog.ui:46 msgid "label2" msgstr "Nome2" #: ../ui/generalDialog.ui:193 msgid "Try again" msgstr "Prova di nuovo" #: ../ui/generalDialog.ui:209 msgid "Read only" msgstr "Sola Lettura" #: ../ui/gjots.ui:24 msgid "_File" msgstr "" #: ../ui/gjots.ui:88 msgid "_Import" msgstr "_Importa" #: ../ui/gjots.ui:91 msgid "Import items from a gjots file" msgstr "Importa degli appunti a partire da un archivio gjots pre-esistente" #: ../ui/gjots.ui:99 msgid "_Export" msgstr "_Esporta" #: ../ui/gjots.ui:102 msgid "Export selected items to a gjots file" msgstr "Esporta gli appunti selezionati in un archivio gjots" #: ../ui/gjots.ui:135 msgid "Toggle the read-only flag if possible" msgstr "(De)Seleziona la modalità di sola lettura se possibile" #: ../ui/gjots.ui:136 msgid "_Read-only" msgstr "_Sola-Lettura" #: ../ui/gjots.ui:152 #, fuzzy msgid "Exit gjots2" msgstr "Chiudi gjots ed Esci" #: ../ui/gjots.ui:167 msgid "_Edit" msgstr "" #: ../ui/gjots.ui:263 #, fuzzy msgid "Find Next" msgstr "Ricerca" #: ../ui/gjots.ui:273 msgid "Find Previous" msgstr "" #: ../ui/gjots.ui:299 msgid "_View" msgstr "" #: ../ui/gjots.ui:307 msgid "_Show All" msgstr "_Mostra Tutto" #: ../ui/gjots.ui:310 ../ui/gjots.ui:1085 msgid "Show all items below the current item" msgstr "Mostra tutti gli appunti al di sotto di quello attuale" #: ../ui/gjots.ui:318 msgid "_Hide All" msgstr "_Nascondi Tutti" #: ../ui/gjots.ui:321 msgid "Hide all items except the top level" msgstr "Nascondi tutti gli appunti tranne quelli in primo piano" #: ../ui/gjots.ui:337 msgid "Toggles the main toolbar" msgstr "(De)Seleziona la barra degli strumenti principale" #: ../ui/gjots.ui:338 msgid "To_p Toolbar" msgstr "Barra degli Strumenti _Superiore" #: ../ui/gjots.ui:347 msgid "Toggles tree tool bar" msgstr "(De)Seleziona la Barra degli Strumenti per la gestione dell'elenco" #: ../ui/gjots.ui:348 msgid "Tre_e Toolbar" msgstr "Barra degli Strumenti dell'_elenco" #: ../ui/gjots.ui:357 msgid "Show the related icon text" msgstr "Mostra il testo relativo alle icone" #: ../ui/gjots.ui:358 msgid "Show _Icon Text" msgstr "Mostra il testo delle _Icone" #: ../ui/gjots.ui:367 msgid "Status _Bar" msgstr "Barra di _Stato" #: ../ui/gjots.ui:380 msgid "_Tree" msgstr "_Elenco" #: ../ui/gjots.ui:388 msgid "_New Page" msgstr "Nuova _Appunto" #: ../ui/gjots.ui:391 msgid "Create a new page" msgstr "Crea un nuovo appunto" #: ../ui/gjots.ui:400 msgid "New _Child" msgstr "Nuovo _Particolare" #: ../ui/gjots.ui:403 ../ui/gjots.ui:920 msgid "Create a new child" msgstr "Crea un nuovo particolare" #: ../ui/gjots.ui:420 ../ui/gjots.ui:950 msgid "Move selection up" msgstr "Sposta l'appunto selezionato più sopra" #: ../ui/gjots.ui:431 ../ui/gjots.ui:965 msgid "Move selection down" msgstr "Sposta l'appunto selezionato più in basso" #: ../ui/gjots.ui:439 msgid "P_romote" msgstr "P_romuovi" #: ../ui/gjots.ui:442 ../ui/gjots.ui:980 msgid "Selection becomes a sibling to their parent" msgstr "Il particolare selezionato diventa fratello dell'attuale genitore" #: ../ui/gjots.ui:450 msgid "D_emote" msgstr "R_etrocedi" #: ../ui/gjots.ui:453 ../ui/gjots.ui:995 msgid "Selection becomes a child of the previous item" msgstr "L'appunto selezionato diventa un particolare del precedente appunto" #: ../ui/gjots.ui:467 msgid "_Split Item" msgstr "_Dividi appunto" #: ../ui/gjots.ui:470 msgid "Make a new item from the current selection" msgstr "Crea un nuovo appunto a partire dal testo attualmente selezionato" #: ../ui/gjots.ui:478 msgid "_Merge Items" msgstr "_Unisci appunti" #: ../ui/gjots.ui:481 msgid "Merge current items into the first one" msgstr "Unisci gli appunti attuali al primo" #: ../ui/gjots.ui:489 msgid "S_ort Tree" msgstr "R_iordina Elenco" #: ../ui/gjots.ui:492 ../ui/gjots.ui:1100 msgid "Popup the sort tree dialog" msgstr "Apri la finestra di riordino elenco" #: ../ui/gjots.ui:506 msgid "Te_xt" msgstr "Te_sto" #: ../ui/gjots.ui:514 msgid "_Format" msgstr "_Impagina" #: ../ui/gjots.ui:517 msgid "Format the current paragraph" msgstr "Impagina il paragrafo attuale" #: ../ui/gjots.ui:526 msgid "_Time stamp" msgstr "_Data/Ora" #: ../ui/gjots.ui:529 msgid "Add a time/date stamp (see preferences)" msgstr "Aggiunge una data/ora (secondo le opzioni)" #: ../ui/gjots.ui:538 msgid "_External Edit" msgstr "_Videoscrittura Esterna" #: ../ui/gjots.ui:541 msgid "Edit current item in an external editor" msgstr "Modifica l'appunto attuale in un programma esterno di videoscrittura" #: ../ui/gjots.ui:549 msgid "_Sort Text" msgstr "_Riordina Testo" #: ../ui/gjots.ui:552 msgid "Popup the sort text dialog" msgstr "Mostra la finestra di riordino testo" #: ../ui/gjots.ui:566 msgid "_Help" msgstr "" #: ../ui/gjots.ui:574 #, fuzzy msgid "_Read Manual" msgstr "_Leggi Il Manuale" #: ../ui/gjots.ui:577 msgid "Read the online manual (using gjots)" msgstr "Leggi il manuale online (usando gjots)" #: ../ui/gjots.ui:621 msgid "Popup the 'Find'menu" msgstr "" #: ../ui/gjots.ui:651 msgid "Find the previous occurance" msgstr "" #: ../ui/gjots.ui:667 msgid "Find the next occurance" msgstr "" #: ../ui/gjots.ui:693 msgid "Save gjots document" msgstr "Salva documento gjots" #: ../ui/gjots.ui:694 msgid "Save" msgstr "Salva" #: ../ui/gjots.ui:708 msgid "Print this document" msgstr "Stampa questo documento" #: ../ui/gjots.ui:709 ../ui/printDialog.ui:8 msgid "Print" msgstr "Stampa" #: ../ui/gjots.ui:738 msgid "Cut selected items" msgstr "Taglia appunti selezionati" #: ../ui/gjots.ui:739 msgid "Cut" msgstr "Taglia" #: ../ui/gjots.ui:753 msgid "Copy selected items" msgstr "Copia appunti selezionati" #: ../ui/gjots.ui:754 msgid "Copy" msgstr "Copia" #: ../ui/gjots.ui:768 msgid "Paste selected items" msgstr "Incolla appunti selezionati" #: ../ui/gjots.ui:769 msgid "Paste" msgstr "Incolla" #: ../ui/gjots.ui:798 msgid "Wrap the current paragraph to the current line length" msgstr "Incolonna il paragrafo attuale rispetto alla attuale lunghezza di riga" #: ../ui/gjots.ui:799 msgid "Wrap" msgstr "Incolonna" #: ../ui/gjots.ui:813 msgid "Invoke an external editor on the current item" msgstr "Apri un programma di videoscrittura esterno per l'appunto attuale" #: ../ui/gjots.ui:814 msgid "Ext.Ed." msgstr "Vid.Est." #: ../ui/gjots.ui:828 msgid "Add a time/date stamp (see prefs)" msgstr "Addiunge una data/ora (secondo le opzioni)" #: ../ui/gjots.ui:829 msgid "Date" msgstr "Data" #: ../ui/gjots.ui:843 msgid "Popup the find and replace dialog" msgstr "Apre la finestra di ricerca e sostituzione" #: ../ui/gjots.ui:858 msgid "Popup the sort dialog" msgstr "Apre la finestra di riordino" #: ../ui/gjots.ui:859 ../ui/sortDialog.ui:15 msgid "Sort" msgstr "Riordina" #: ../ui/gjots.ui:873 msgid "Open gjots preferences window" msgstr "Apre la finestra delle opzioni di gjots" #: ../ui/gjots.ui:874 msgid "Prefs" msgstr "Opzioni" #: ../ui/gjots.ui:905 msgid "Create a new item" msgstr "Crea un nuovo appunto" #: ../ui/gjots.ui:906 ../ui/treeContextMenu.ui:45 msgid "New Page" msgstr "Nuovo Appunto" #: ../ui/gjots.ui:921 ../ui/treeContextMenu.ui:52 msgid "New Child" msgstr "Nuovo particolare" #: ../ui/gjots.ui:951 msgid "Up" msgstr "Sopra" #: ../ui/gjots.ui:966 msgid "Down" msgstr "Sotto" #: ../ui/gjots.ui:981 ../ui/treeContextMenu.ui:74 msgid "Promote" msgstr "Promuovi" #: ../ui/gjots.ui:996 ../ui/treeContextMenu.ui:82 msgid "Demote" msgstr "Retrocedi" #: ../ui/gjots.ui:1025 msgid "Split the text selection into a new item" msgstr "Dividi il testo selezionato in un nuovo appunto" #: ../ui/gjots.ui:1026 msgid "Split Item" msgstr "Dividi appunto" #: ../ui/gjots.ui:1040 msgid "Merge selected items together" msgstr "Unisce assieme gli appunti selezionati" #: ../ui/gjots.ui:1041 ../ui/treeContextMenu.ui:89 msgid "Merge Items" msgstr "Unisci appunti" #: ../ui/gjots.ui:1070 msgid "Hide all items except for the top level" msgstr "Nascondi tutti gli appunti tranne quelli in primo piano" #: ../ui/gjots.ui:1071 ../ui/treeContextMenu.ui:103 msgid "Hide All" msgstr "Nascondi Tutto" #: ../ui/gjots.ui:1086 ../ui/treeContextMenu.ui:96 msgid "Show All" msgstr "Mostra Tutto" #: ../ui/gjots.ui:1101 ../ui/treeContextMenu.ui:110 ../lib/sortDialog.py:394 msgid "Sort Tree" msgstr "Riordina Elenco" #: ../ui/prefsDialog.ui:20 msgid "gjots: preferences" msgstr "gjots: opzioni" #: ../ui/prefsDialog.ui:49 msgid "Choose a font for the text panel" msgstr "Scegle un tipo di carattere per la sezione testo" #: ../ui/prefsDialog.ui:65 msgid "Date format:" msgstr "Formato della data:" #: ../ui/prefsDialog.ui:79 #, fuzzy msgid "Format for the timestamp function (see strftime(3)) eg %F" msgstr "Formato per la funzione di stampa data (see strftime(3))" #: ../ui/prefsDialog.ui:80 msgid "%F" msgstr "%F" #: ../ui/prefsDialog.ui:99 #, fuzzy msgid "" "External program to edit a page (%s is replaced by the name of the temporary " "edit file) eg xterm -e vi %s" msgstr "" "Programma Esterno per modificare un appunto (%s viene sostituito dal nome " "del file da modificare temporaneo)" #: ../ui/prefsDialog.ui:100 msgid "xterm -e vi %s" msgstr "xterm -e vi %s" #: ../ui/prefsDialog.ui:120 msgid "External editor" msgstr "Programma di videoscrittura esterno" #: ../ui/prefsDialog.ui:135 msgid "Text Line Length: " msgstr "Altezza della linea di testo:" #: ../ui/prefsDialog.ui:149 msgid "Line length for paragraph wrapping" msgstr "Lunghezza di riga per l'incolonnamento dei paragrafi" #: ../ui/prefsDialog.ui:172 msgid "Text formatter: " msgstr "Impaginatore del testo: " #: ../ui/prefsDialog.ui:184 #, fuzzy msgid "" "External program to pipe text for formatting (%d is replaced by the current " "line width) eg fmt -w %d " msgstr "" "Programma Esterno to cui incanalare il testo per impaginazione (%d viene " "sostituito dalla attualelunghezza di riga)" #: ../ui/prefsDialog.ui:185 msgid "fmt -w %d " msgstr "fmt -w %d " #: ../ui/prefsDialog.ui:202 msgid "Current text font" msgstr "Tipo di carattere di testo attuale" #: ../ui/prefsDialog.ui:204 msgid "Courier 10 Pitch 10" msgstr "Courier 10 Pitch 10" #: ../ui/prefsDialog.ui:224 msgid "AutoSave interval:" msgstr "" #: ../ui/prefsDialog.ui:238 msgid "Seconds of inactivity to trigger an AutoSave (0 = no AutoSave)" msgstr "" #: ../ui/printDialog.ui:38 msgid "e.g. lpr: " msgstr "i.e. lpr: " #: ../ui/printDialog.ui:54 msgid "print command (can be a shell expression)" msgstr "comando di stampa (puo' trattarsi di una espressione da shell)" #: ../ui/printDialog.ui:76 msgid " Print command " msgstr " Comando di Stampa" #: ../ui/printDialog.ui:104 msgid "Page" msgstr "Appunto" #: ../ui/printDialog.ui:108 msgid "Print the current page" msgstr "Stampa l'appunto attuale" #: ../ui/printDialog.ui:120 msgid "Selection" msgstr "Selezione" #: ../ui/printDialog.ui:124 msgid "Print the selected pages or text" msgstr "Stampa le pagine od il testo selezionati" #: ../ui/printDialog.ui:137 msgid "All" msgstr "Tutti" #: ../ui/printDialog.ui:141 msgid "Print the entire gjots file" msgstr "Stampa l'intero documento gjots" #: ../ui/printDialog.ui:160 msgid " Print Range " msgstr " Dominio di Stampa" #: ../ui/printDialog.ui:193 msgid "Page feeds" msgstr "Produci una nuova pagina" #: ../ui/printDialog.ui:197 msgid "Feeds a page before every new gjots item" msgstr "Produci una nuova pagina prima di ogni nuovo appunto di gjots" #: ../ui/printDialog.ui:209 msgid "Bold titles" msgstr "Titoli in Grassetto" #: ../ui/printDialog.ui:212 msgid "Print the gjots item titles in bold" msgstr "Stampa i nomi degli appunti gjots in grassetto" #: ../ui/printDialog.ui:224 msgid "Auto Number" msgstr "Numerazione Automatica" #: ../ui/printDialog.ui:251 msgid "Auto-number format: " msgstr "Formato della numerazione automatica" #: ../ui/printDialog.ui:262 msgid "eg. 1 for 1.2.1, a" msgstr "i.e. 1 per 1.2.1, a" #: ../ui/printDialog.ui:289 msgid " Print formatting " msgstr " Formattazione del processo di stampa " #: ../ui/sortDialog.ui:43 msgid "Ascending" msgstr "Crescente" #: ../ui/sortDialog.ui:47 msgid "Sort in ascending order" msgstr "Ordina in senso crescente" #: ../ui/sortDialog.ui:58 msgid "Descending" msgstr "Decrescente" #: ../ui/sortDialog.ui:62 msgid "Sort in descending order" msgstr "Ordina in senso decresente" #: ../ui/sortDialog.ui:76 msgid "Alphabetic" msgstr "Alfabetico" #: ../ui/sortDialog.ui:80 msgid "Sort in alphabetic order" msgstr "Ordina in senso Alfabetico" #: ../ui/sortDialog.ui:93 msgid "Numeric" msgstr "Ordinale" #: ../ui/sortDialog.ui:97 msgid "Sort in numeric order" msgstr "Ordina in senso ordinale" #: ../ui/sortDialog.ui:119 msgid " Sort Parameters " msgstr " Opzioni di riordino" #: ../ui/sortDialog.ui:149 msgid "How many sublevels to sort (0 for none; -1 for 'all')" msgstr "" "Quanti sottolivelli devono essere ordinati (0 per nessuno; -1 per 'tutti')" #: ../ui/sortDialog.ui:171 msgid " Sort Sublevels " msgstr " Ordina i Sottolivelli" #: ../ui/treeContextMenu.ui:30 #, fuzzy msgid "Select _All" msgstr "Seleziona Archivio" #: ../ui/treeContextMenu.ui:117 msgid "Import" msgstr "Importa" #: ../ui/treeContextMenu.ui:124 msgid "Export" msgstr "Esporta" #: ../gjots2:23 #, fuzzy msgid "" "Usage: gjots [OPTIONS] [FILENAME]\n" "A gtk/X11 jotter\n" "\n" "OPTIONS:\n" "-h, --help: this help\n" "-d, --debug: debug to stdout\n" "-t, --trace: trace lines as they execute\n" "-g 123x456, --geometry=123x456: initial geometry (X x Y)\n" "-p, --purge-password don't remember password\n" "-r, --readonly: no editing (or locking)\n" "-V, --version: print the version and exit\n" "\n" "FILENAME:\n" " gjots data filename (default is $HOME/.gjotsfile)\n" msgstr "" "Uso: gjots [OPZIONI] [NOME ARCHIVIO]\n" "A gnome-2/X11 jotter\n" "\n" "OPZIONI:\n" "-h, --help: Questo Aiuto\n" "-d, --debug: Fornisci informazioni di errore alla " "porta di errore standard (stdout)\n" "-g 123x456, --geometry=123x456: Dimensioni iniziali a schermo della " "finestra (X x Y)\n" "-p, --purge-password\t\t\t\tNon memorizzare la parola d'ordine\n" "-r, --readonly: Nessuna modifica (o presa di possesso)\n" "-V, --version: Stampa la versione del programma ed " "esci\n" "\n" "FILENAME:\n" "\tgjots data filename (default is $HOME/.gjotsfile)\n" #: ../gjots2:89 #, python-format msgid "%s requires python%s or higher." msgstr "%s ha bisogno di python%s o superiore." #: ../gjots2:102 msgid "Use -h for help\n" msgstr "Usare -h per avere un aiuto\n" #: ../gjots2:116 #, python-format msgid "%s version %s" msgstr "%s versione %s" #: ../lib/gui.py:51 ../lib/gui.py:996 msgid "Text pasted" msgstr "Testo incollato" #: ../lib/gui.py:179 #, python-format msgid "External formatter \"%s\" is not installed - can't format" msgstr "Impaginatore esterno \"%s\" non è installato - non posso impaginare" #: ../lib/gui.py:564 ../lib/gui.py:675 ../lib/gui.py:679 ../lib/gui.py:745 #: ../lib/gui.py:749 ../lib/gui.py:812 ../lib/gui.py:817 ../lib/gui.py:1043 #: ../lib/gui.py:1052 ../lib/gui.py:1138 ../lib/gui.py:1147 ../lib/gui.py:1183 #: ../lib/gui.py:1188 ../lib/gui.py:1219 ../lib/gui.py:1608 ../lib/gui.py:2382 #: ../lib/gui.py:2401 ../lib/gui.py:2430 ../lib/gui.py:2461 ../lib/file.py:466 #: ../lib/file.py:471 ../lib/sortDialog.py:329 ../lib/sortDialog.py:334 #: ../lib/printDialog.py:110 ../lib/printDialog.py:115 msgid "Nothing selected" msgstr "Nessuna selezione" #: ../lib/gui.py:568 ../lib/gui.py:684 ../lib/gui.py:753 ../lib/gui.py:822 #: ../lib/gui.py:934 ../lib/gui.py:1224 ../lib/gui.py:2386 #: ../lib/sortDialog.py:345 msgid "No parent!" msgstr "Nessun genitore!" #: ../lib/gui.py:572 ../lib/gui.py:719 msgid "No child!" msgstr "Nessun particolare!" #: ../lib/gui.py:580 ../lib/gui.py:693 msgid "Can't go any further" msgstr "Non è possibile procedere oltre" #: ../lib/gui.py:616 ../lib/gui.py:840 msgid "Internal error!" msgstr "Errore interno!" #: ../lib/gui.py:757 msgid "Can't go further!" msgstr "Non è possibile procedere" #: ../lib/gui.py:973 msgid "Text cut" msgstr "Copia ed elimina testo" #: ../lib/gui.py:984 msgid "Text copied" msgstr "Testo copiato" #: ../lib/gui.py:1005 msgid "All text selected" msgstr "Tutto il testo selezionato" #: ../lib/gui.py:1015 msgid "All tree items selected" msgstr "Tutti gli appunti dell'elenco selezionati" #: ../lib/gui.py:1023 msgid "Nothing selected!" msgstr "Nessuna selezione!" #: ../lib/gui.py:1047 msgid "Can't merge the root item" msgstr "Non è possibile unire l'appunto principale" #: ../lib/gui.py:1056 msgid "Nothing to merge" msgstr "Nulla da unire" #: ../lib/gui.py:1063 msgid "Can't merge items that have children" msgstr "Non è possibile unire appunti con particolari" #: ../lib/gui.py:1093 #, python-format msgid "%d items merged" msgstr "%d appunti unificati" #: ../lib/gui.py:1142 msgid "Can't delete the root item" msgstr "Non è possibile cancellare l'appunto principale" #: ../lib/gui.py:1175 #, python-format msgid "%d tree items cut" msgstr "%d appunto(i) dell'elenco copiato(i) e cancellato(i)" #: ../lib/gui.py:1205 #, python-format msgid "%d tree items copied" msgstr "%d appunto(i) dell'elenco copiato(i)" #: ../lib/gui.py:1214 msgid "Nothing to paste" msgstr "Niente da incollare" #: ../lib/gui.py:1237 msgid "Tree items pasted" msgstr "Incollato(i) appunto(i) dell'elenco" #: ../lib/gui.py:1258 #, fuzzy msgid "Can't write tempfile" msgstr "Non è possibile scrivere " #: ../lib/gui.py:1278 #, python-format msgid "Can't run '%s'" msgstr "Non è possibile eseguire '%s'" #: ../lib/gui.py:1287 #, fuzzy msgid "Can't read tempfile " msgstr "Non è possibile leggere " #: ../lib/gui.py:1293 msgid "text changed by external editor" msgstr "testo modificato dal programma esterno" #: ../lib/gui.py:1295 msgid "text not changed by external editor" msgstr "testo non modificato dal programma esterno" #: ../lib/gui.py:1314 msgid ": Error" msgstr ": Errore" #: ../lib/gui.py:1327 #, python-format msgid "Can't lock file %s: already locked by process %d" msgstr "Non è possibile bloccare larchivio %s: è già bloccato dal processo %d" #: ../lib/gui.py:1510 msgid ": Save?" msgstr " Memorizzare?" #: ../lib/gui.py:1511 msgid "Save current work?" msgstr "Memorizzare il documento attuale?" #: ../lib/gui.py:1532 msgid "New file" msgstr "Nuovo archivio" #: ../lib/gui.py:1556 msgid "Open file ..." msgstr "Aprire archivio ..." #: ../lib/gui.py:1568 msgid "No changes to save" msgstr "Nessun cambiamento da memorizzare" #: ../lib/gui.py:1572 ../lib/gui.py:1593 msgid "Saved." msgstr "Memorizzato." #: ../lib/gui.py:1574 ../lib/gui.py:1595 ../lib/file.py:456 msgid "Not saved." msgstr "Non memorizzato." #: ../lib/gui.py:1589 msgid "Nothing to save" msgstr "Niente da memorizzare" #: ../lib/gui.py:1591 ../lib/file.py:693 msgid "Save as ..." msgstr "Memorizza con nome ..." #: ../lib/gui.py:1605 msgid "Import from ..." msgstr "Importa da ..." #: ../lib/gui.py:1616 msgid "Export to ..." msgstr "Esporta a ..." #: ../lib/gui.py:1930 ../lib/gui.py:1933 #, python-format msgid "%s: Warning: opening gjots2 manual from %s\n" msgstr "%s: Attenzione: il manuale di gjots2 viene aperto da %s\n" #: ../lib/gui.py:2317 msgid "" "gjots2: warning: selection list is NULL. Skipping tree selection changed \n" "event." msgstr "" "gjots2: attenzione: la lista delle selezioni è vuota. Non eseguire " "l'operazione di cambio\n" "evento dell'elenco" #: ../lib/gui.py:2390 msgid "Can't go further" msgstr "Non è possibile procedere" #: ../lib/gui.py:2419 msgid "Tree is empty!" msgstr "L'elenco è vuoto!" #: ../lib/gui.py:2716 msgid "Bad regular expression" msgstr "Espressione regolare non corretta" #: ../lib/gui.py:2808 #, python-format msgid "%s: bad geometry specification: %s\n" msgstr "%s: non corrette informazioni geometriche:%s\n" #: ../lib/gui.py:2899 msgid "New...>>>" msgstr "Nuovo...>>>" #: ../lib/gui.py:2936 msgid "Install gtksourceview to enable undo/redo" msgstr "" #: ../lib/gui.py:3102 msgid ": version " msgstr ": versione " #: ../lib/find.py:70 ../lib/find.py:93 msgid "Not found" msgstr "Non trovato" #: ../lib/find.py:72 msgid "Found" msgstr "Trovato" #: ../lib/find.py:96 msgid "Replace?" msgstr "Sostituire?" #: ../lib/find.py:113 #, python-format msgid "%d substitutions" msgstr "%d sostituzioni" #: ../lib/file.py:255 msgid "Enter password for " msgstr "Immettere parola d'ordine per " #: ../lib/file.py:257 #, fuzzy msgid ": Enter Password" msgstr "gjots: Immettere parola d'ordine" #: ../lib/file.py:259 msgid "Password: " msgstr "Parola d'ordine: " #: ../lib/file.py:260 msgid "Confirm: " msgstr "Confermare: " #: ../lib/file.py:268 msgid "Password was not confirmed" msgstr "La parola d'ordine non è stata confermata" #: ../lib/file.py:275 msgid "Could not find the ccrypt program - please install it and try again" msgstr "" "Non è stato possibile trovare il programma ccrypt - per favore installarlo e " "provare di nuovo dopo" #: ../lib/file.py:308 msgid "" "Neither gpg2 nor gpg are available - please install one (perhaps package " "gnupg2) and try again" msgstr "" #: ../lib/file.py:328 #, fuzzy msgid "No openssl program - please install it and try again" msgstr "" "Non è stato possibile trovare il programma openssl - per favore installarlo " "e provare di nuovo dopo" #: ../lib/file.py:354 #, fuzzy msgid "No org2gjots program - please install it and try again" msgstr "" "Non è stato possibile trovare il programma openssl - per favore installarlo " "e provare di nuovo dopo" #: ../lib/file.py:412 msgid "Can't open \"" msgstr "Non è possibile aprire \"" #: ../lib/file.py:415 msgid "Bad password" msgstr "Parola d'ordine errata" #: ../lib/file.py:418 msgid "File cannot be locked" msgstr "L'archivio non puo' essere bloccato" #: ../lib/file.py:431 ../lib/file.py:489 msgid "failed!" msgstr "" #: ../lib/file.py:457 msgid "Can't write to " msgstr "Non è possibile scrivere su " #: ../lib/file.py:460 msgid "Can't lock file" msgstr "Non è possibile bloccare l'archivio" #: ../lib/file.py:597 #, python-format msgid "%s is not readable" msgstr "%s è illeggibile" #: ../lib/file.py:613 #, python-format msgid "%s: no permission" msgstr "%s: nessun permesso" #: ../lib/file.py:615 #, python-format msgid "%s: locked by process number %d" msgstr "%s: bloccato dal processo numero %d" #: ../lib/file.py:617 #, fuzzy msgid ": can't lock file." msgstr "gjots: non è possibile bloccare l'archivio." #: ../lib/file.py:705 msgid "That file is already open!" msgstr "Quell'archivio è già stato aperto!" #: ../lib/file.py:713 ../lib/file.py:787 #, fuzzy msgid ": file has changed" msgstr "gjots: %s esiste di già." #: ../lib/file.py:714 #, python-format msgid "File changed since it was read - copied to %s " msgstr "" #: ../lib/file.py:731 #, python-format msgid "%s is locked by pid %d" msgstr "%s è bloccato dal pid %d" #: ../lib/file.py:735 msgid "Can't make a lockfile in " msgstr "Non è possibile creare un file di blocco in " #: ../lib/file.py:748 #, python-format msgid "%s is not writable" msgstr "%s non è riscrivibile" #: ../lib/file.py:751 #, fuzzy, python-format msgid ": %s already exists." msgstr "gjots: %s esiste di già." #: ../lib/file.py:752 #, python-format msgid "overwrite %s?" msgstr "sovrascrivere %s?" #: ../lib/file.py:788 #, python-format msgid "File changed since it was read - so it was copied to %s " msgstr "" #: ../lib/sortDialog.py:125 msgid "_get_settings: Cant find sortAscendingRadioButton" msgstr "_get_settings: Non posso trovare sortAscendingRadioButton" #: ../lib/sortDialog.py:165 msgid "Internal error" msgstr "Errore Interno" #: ../lib/sortDialog.py:303 msgid "Nothing to sort!" msgstr "Niente da riordinare!" #: ../lib/sortDialog.py:398 msgid "Sort Text" msgstr "Riordina Testo" #~ msgid "Exit gjots" #~ msgstr "Chiudi gjots ed Esci" #~ msgid "Create a new child " #~ msgstr "Crea un nuovo particolare" #, fuzzy #~ msgid "About gjots2" #~ msgstr "Chiudi gjots ed Esci" #, fuzzy #~ msgid " Find: " #~ msgstr "Ricerca:" #~ msgid "abcdefghijk ABCDEFGHIJK" #~ msgstr "abcdefghijk ABCDEFGHIJK" #, fuzzy, python-format #~ msgid "%s requires pygtk-%s.\n" #~ msgstr "%s ha bisogno di pygtk-%s." #~ msgid "not initialised" #~ msgstr "non attivato" #~ msgid "pygtk-2.2 is required for this application!" #~ msgstr "pygtk-2.2 è necessario per questo programma!" #~ msgid "Store and organise your random notes" #~ msgstr "Memorizza ed organizza i tuoi vari appunti" #~ msgid "Gjots2 Jotter" #~ msgstr "Gjots2 Jotter" #~ msgid "gjots" #~ msgstr "gjots" #~ msgid "_New" #~ msgstr "_Nuovo" #~ msgid "_Quit" #~ msgstr "_Chiudi" #~ msgid "_Toolbars" #~ msgstr "_Barre degli Strumenti" #~ msgid "_Up" #~ msgstr "_Sopra" #~ msgid "_Down" #~ msgstr "_Basso" #~ msgid "Create a new gjots document" #~ msgstr "Crea un nuovo documento gjots" #~ msgid "Open an existing gjots document" #~ msgstr "Apri un documento gjots esistente" #~ msgid "Open" #~ msgstr "Apri" #~ msgid "Back" #~ msgstr "Indietro" #~ msgid "Forward" #~ msgstr "Avanti" #~ msgid "Copyright Raimondo Giammanco 2006" #~ msgstr "Diritti di Autore Raimondo Giammanco 2006" #~ msgid "%s: Warning: running modules from %s\n" #~ msgstr "%s: Attenzione: moduli eseguiti da %s\n" #~ msgid "Could not find the gpg program - please install it and try again" #~ msgstr "" #~ "Non è stato possibile trovare il programma gpg- per favore installarlo e " #~ "provare di nuovo dopo" �����������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/it/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0013760�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/it/LC_MESSAGES/���������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0015545�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/it/LC_MESSAGES/gjots2.mo������������������������������������������������������������0000664�0000000�0000000�00000036341�14016300235�0017321�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������,��3��<�������� ��� �� ��������!�����1�����D�����V�����g�����j�����z�������������������������������� �����+�����#���I�����m����������������� �����'�����!�������������������� ���2�� ���=�� ���G�����S�� ���h�� ���r������� ������������������������������0��������6��$���P�����u�� �������������������� ��������������� ���������������C��������V�����j�����}�������������������������������� ���������� ���������������'��� �����5�����I��%���P�� ���v������������7�����(��������������������7���'�����_�����e�����������������'�����#�����5�������������!�����1�����P�����_��-���o��"�����*����� ����� �����&��������)�����G�����[�� ���m�����w�� ���������� ���������� ����� ����� ����� ���������������������������� �����0�����A�� ���I�����W�����u�����~�� ���������� ���������������!������������������"�����=�����C�����I�����`��#���|�� ��������������� �����$�������� ������� ���'�����3�����<�� ���E�����P�� ���U�����a�����t������������(����� ����� �����.�����+��������:�����C��%���S�����y������� ����� ������������������������� ��� ��(��� �� ���A �����M �����_ �����t �����z �� ��� ����� ����� �� ��� ����� �� ��� ��%��� ����� !�����&!�� ���<!�����J!�����Y!�� ���k!�����u!�����x!�����!��5���!�����!�����!�����!�� ���!�����!�� ���!�� ���"�� ��� "�� ���"�� ���!"�� ���,"�� ���8"�����D"��1���J"�� ���|"�����"�� ���"��P���"�����"��#��� #�����-#�����4#�� ���;#��)���I#�����s#��#���#�����#�����#��j��#�����9%�����B%�����U%��&���h%�����%�����%�����%�����%�����%��$���%��4���&�����=&�����W&�����i&��&���&�����&��8���&��-���&��#���'�����A'�����U'�� ���^'�� ���l'��*���x'��*���'�����'�����'��)���'�� ���(�� ���$(�����.(��$���E(�����j(�����s(��!���(�����(��0���(�� ���(�����)�����-)��$���H)��H���m)��-���)��.���)��+���*�����?*�����Y*�����x*�����*��0���*�����*�����*�� ���*�����*�����*��c��� +�����p+�����+�����+�����+��"���+�����+�����+�� ���,�����,�����,�� ���3,�� ���=,��"���I,�����l,��D���r,�����,�����,��4���,�� ���-�����!-��#���*-��B���N-��=���-��#���-�����-�����-��D���.�����V.�����_.�����}.�����.�����.��7���.��7���.��J��� /�����W/�����_/��B���n/�����/�����/��A���/��4���0��A���G0��$���0�����0��#���0��&���0��*���1��'���31�����[1�� ���m1�����{1�����1�� ���1��!���1�����1�����1�� ���1�����1����� 2�����2�����22�����A2�����U2�����k2�����2�����2��'���2�� ���2�����2�����2��*���2�����3�����.3�����63��*���R3�����}3��$���3��#���3�����3�����3�����3����� 4��.���+4��(���Z4�����4�����4�� ���4��&���4�����4�� ���4�����4�� ��� 5�� ���5�����$5�����55�����;5��!���R5�����t5�� ���5�����5��2���5��$���5�� ���6��C���6��A���R6�� ���6�����6��6���6��#���6�����7�����"7�����17�����A7�����\7�����v7�����7�����7��/���7�����7�����7����� 8����� 8�����'8�� ���E8�����S8�����j8�����8��$���8�� ���8��7���8��1���9��B���C9��"���9�����9��#���9�����9�����9�����9�� ���:��F���:�����c:�����l:�� ���:�����:�����:�����:�����:�� ���:�� ���:�����:�����:�� ���;����� ;��9���;�� ���N;�����Y;�� ���m;��m���x;�����;��#���;�����<�����<�����%<��>���7<��&���v<��*���<�� ���<�����<�����y���Z������������������������!��� ���C��������������Y���u������������� ����������������������A�������d���?���U���x���g��� ���"���F��������������p������/������*���������m������������������������������������=���;���6������+�������������c�������������b���4������0�������������������������������������������������������@������������������������������ ���,���]�����������'��������������3��������������&���9����������G��������������������n���l������L��������������������q������)����������w�����������������������5���������������������V���������������t������������ ���B������\���}������-������H���J�������������R�������P������>�����������f������o���Q����������������I���S���M�����������������z��������������������W���������������������������:�������������������� ������8�������7������������������������������T���j���1���������������.���{����������N�����������[�������e�������D���k���������������������������v���h�������~�����������������_���r�������i���$���������������K���#�������O�������������������������s������������|���2���E������`�������������������X�����������<���%���������������a����������^���(���� Options � Print Range � Print command � Print formatting � Sort Parameters � Sort Sublevels �%F�%d items merged�%d substitutions�%d tree items copied�%d tree items cut�%s is locked by pid %d�%s is not readable�%s is not writable�%s requires python%s or higher.�%s version %s�%s: Warning: opening gjots2 manual from %s �%s: bad geometry specification: %s �%s: locked by process number %d�%s: no permission�: Error�: Save?�: version �Add a time/date stamp (see preferences)�Add a time/date stamp (see prefs)�All�All text selected�All tree items selected�Alphabetic�Ascending�Auto Number�Auto-number format: �Backwards�Bad password�Bad regular expression�Bold titles�Can't delete the root item�Can't go any further�Can't go further�Can't go further!�Can't lock file�Can't lock file %s: already locked by process %d�Can't make a lockfile in �Can't merge items that have children�Can't merge the root item�Can't open "�Can't run '%s'�Can't write to �Cancel�Choose a font for the text panel�Clear�Close�Confirm: �Copy�Copy selected items�Could not find the ccrypt program - please install it and try again�Courier 10 Pitch 10�Create a new child�Create a new item�Create a new page�Current text font�Cut�Cut selected items�D_emote�Date�Date format:�Demote�Descending�Don't ignore case�Down�Edit current item in an external editor�Enter password for �Export�Export selected items to a gjots file�Export to ...�Ext.Ed.�External editor�External formatter "%s" is not installed - can't format�Feeds a page before every new gjots item�File cannot be locked�Find�Find & replace�Find string is a regular expression (see 'man 7 regex')�Find:�Format the current paragraph�Found�Global�Hide All�Hide all items except for the top level�Hide all items except the top level�How many sublevels to sort (0 for none; -1 for 'all')�Import�Import from ...�Import items from a gjots file�Internal error�Internal error!�Invoke an external editor on the current item�Line length for paragraph wrapping�Make a new item from the current selection�Match case�Merge Items�Merge current items into the first one�Merge selected items together�Move selection down�Move selection up�New Child�New Page�New _Child�New file�New...>>>�No changes to save�No child!�No parent!�Not found�Not saved.�Nothing selected�Nothing selected!�Nothing to merge�Nothing to paste�Nothing to save�Nothing to sort!�Numeric�Open file ...�Open gjots preferences window�P_romote�Page�Page feeds�Password was not confirmed�Password: �Paste�Paste selected items�Popup the find and replace dialog�Popup the sort dialog�Popup the sort text dialog�Popup the sort tree dialog�Prefs�Print�Print the current page�Print the entire gjots file�Print the gjots item titles in bold�Print the selected pages or text�Print this document�Promote�Read only�Read the online manual (using gjots)�Regular Expression�Replace�Replace All�Replace:�Replace?�S_ort Tree�Save�Save as ...�Save current work?�Save gjots document�Saved.�Search backwards�Searches entire file not just this entry�Select Font�Selection�Selection becomes a child of the previous item�Selection becomes a sibling to their parent�Show All�Show _Icon Text�Show all items below the current item�Show the related icon text�Sort�Sort Text�Sort Tree�Sort in alphabetic order�Sort in ascending order�Sort in descending order�Sort in numeric order�Split Item�Split the text selection into a new item�Status _Bar�String to replace�String to search for�Te_xt�Text Line Length: �Text copied�Text cut�Text formatter: �Text pasted�That file is already open!�To_p Toolbar�Toggle the read-only flag if possible�Toggles the main toolbar�Toggles tree tool bar�Tre_e Toolbar�Tree is empty!�Tree items pasted�Try again�Up�Use -h for help �Wrap�Wrap the current paragraph to the current line length�_Export�_External Edit�_Format�_Hide All�_Import�_Merge Items�_New Page�_Read-only�_Show All�_Sort Text�_Split Item�_Time stamp�_Tree�_get_settings: Cant find sortAscendingRadioButton�e.g. lpr: �eg. 1 for 1.2.1, a�fmt -w %d �gjots2: warning: selection list is NULL. Skipping tree selection changed event.�gjots: preferences�http://bhepple.freeshell.org/gjots2�label1�label2�overwrite %s?�print command (can be a shell expression)�text changed by external editor�text not changed by external editor�window1�xterm -e vi %s�Project-Id-Version: gjots2 2.3.0 Report-Msgid-Bugs-To: PO-Revision-Date: 2006-02-27 19:57+0100 Last-Translator: Raimondo Giammanco <rongten@member.fsf.org> Language-Team: Italian Language: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Poedit-Language: Italian X-Poedit-Country: ITALY X-Poedit-SourceCharset: utf-8 � Opzioni� Dominio di Stampa� Comando di Stampa� Formattazione del processo di stampa � Opzioni di riordino� Ordina i Sottolivelli�%F�%d appunti unificati�%d sostituzioni�%d appunto(i) dell'elenco copiato(i)�%d appunto(i) dell'elenco copiato(i) e cancellato(i)�%s è bloccato dal pid %d�%s è illeggibile�%s non è riscrivibile�%s ha bisogno di python%s o superiore.�%s versione %s�%s: Attenzione: il manuale di gjots2 viene aperto da %s �%s: non corrette informazioni geometriche:%s �%s: bloccato dal processo numero %d�%s: nessun permesso�: Errore� Memorizzare?�: versione �Aggiunge una data/ora (secondo le opzioni)�Addiunge una data/ora (secondo le opzioni)�Tutti�Tutto il testo selezionato�Tutti gli appunti dell'elenco selezionati�Alfabetico�Crescente�Numerazione Automatica�Formato della numerazione automatica�Indietro�Parola d'ordine errata�Espressione regolare non corretta�Titoli in Grassetto�Non è possibile cancellare l'appunto principale�Non è possibile procedere oltre�Non è possibile procedere�Non è possibile procedere�Non è possibile bloccare l'archivio�Non è possibile bloccare larchivio %s: è già bloccato dal processo %d�Non è possibile creare un file di blocco in �Non è possibile unire appunti con particolari�Non è possibile unire l'appunto principale�Non è possibile aprire "�Non è possibile eseguire '%s'�Non è possibile scrivere su �Cancella�Scegle un tipo di carattere per la sezione testo�Pulisci�Chiude�Confermare: �Copia�Copia appunti selezionati�Non è stato possibile trovare il programma ccrypt - per favore installarlo e provare di nuovo dopo�Courier 10 Pitch 10�Crea un nuovo particolare�Crea un nuovo appunto�Crea un nuovo appunto�Tipo di carattere di testo attuale�Taglia�Taglia appunti selezionati�R_etrocedi�Data�Formato della data:�Retrocedi�Decrescente�Non ignorare maiuscole e minuscole�Sotto�Modifica l'appunto attuale in un programma esterno di videoscrittura�Immettere parola d'ordine per �Esporta�Esporta gli appunti selezionati in un archivio gjots�Esporta a ...�Vid.Est.�Programma di videoscrittura esterno�Impaginatore esterno "%s" non è installato - non posso impaginare�Produci una nuova pagina prima di ogni nuovo appunto di gjots�L'archivio non puo' essere bloccato�Ricerca�Ricerca & Sostituisce�La frase da ricercare è una espressione normale (see 'man 7 regex')�Ricerca:�Impagina il paragrafo attuale�Trovato�Globale�Nascondi Tutto�Nascondi tutti gli appunti tranne quelli in primo piano�Nascondi tutti gli appunti tranne quelli in primo piano�Quanti sottolivelli devono essere ordinati (0 per nessuno; -1 per 'tutti')�Importa�Importa da ...�Importa degli appunti a partire da un archivio gjots pre-esistente�Errore Interno�Errore interno!�Apri un programma di videoscrittura esterno per l'appunto attuale�Lunghezza di riga per l'incolonnamento dei paragrafi�Crea un nuovo appunto a partire dal testo attualmente selezionato�Fai coincidere maiuscole e minuscole�Unisci appunti�Unisci gli appunti attuali al primo�Unisce assieme gli appunti selezionati�Sposta l'appunto selezionato più in basso�Sposta l'appunto selezionato più sopra�Nuovo particolare�Nuovo Appunto�Nuovo _Particolare�Nuovo archivio�Nuovo...>>>�Nessun cambiamento da memorizzare�Nessun particolare!�Nessun genitore!�Non trovato�Non memorizzato.�Nessuna selezione�Nessuna selezione!�Nulla da unire�Niente da incollare�Niente da memorizzare�Niente da riordinare!�Ordinale�Aprire archivio ...�Apre la finestra delle opzioni di gjots�P_romuovi�Appunto�Produci una nuova pagina�La parola d'ordine non è stata confermata�Parola d'ordine: �Incolla�Incolla appunti selezionati�Apre la finestra di ricerca e sostituzione�Apre la finestra di riordino�Mostra la finestra di riordino testo�Apri la finestra di riordino elenco�Opzioni�Stampa�Stampa l'appunto attuale�Stampa l'intero documento gjots�Stampa i nomi degli appunti gjots in grassetto�Stampa le pagine od il testo selezionati�Stampa questo documento�Promuovi�Sola Lettura�Leggi il manuale online (usando gjots)�Espressione Regolare�Sostituisce�Sostituisce Tutti�Sostituisce:�Sostituire?�R_iordina Elenco�Salva�Memorizza con nome ...�Memorizzare il documento attuale?�Salva documento gjots�Memorizzato.�Ricerca all'indietro�Ricerda l'intero documento non solo questo appunto�Seleziona tipo di carattere di testo�Selezione�L'appunto selezionato diventa un particolare del precedente appunto�Il particolare selezionato diventa fratello dell'attuale genitore�Mostra Tutto�Mostra il testo delle _Icone�Mostra tutti gli appunti al di sotto di quello attuale�Mostra il testo relativo alle icone�Riordina�Riordina Testo�Riordina Elenco�Ordina in senso Alfabetico�Ordina in senso crescente�Ordina in senso decresente�Ordina in senso ordinale�Dividi appunto�Dividi il testo selezionato in un nuovo appunto�Barra di _Stato�Frase da sostituire�Frase da ricercare�Te_sto�Altezza della linea di testo:�Testo copiato�Copia ed elimina testo�Impaginatore del testo: �Testo incollato�Quell'archivio è già stato aperto!�Barra degli Strumenti _Superiore�(De)Seleziona la modalità di sola lettura se possibile�(De)Seleziona la barra degli strumenti principale�(De)Seleziona la Barra degli Strumenti per la gestione dell'elenco�Barra degli Strumenti dell'_elenco�L'elenco è vuoto!�Incollato(i) appunto(i) dell'elenco�Prova di nuovo�Sopra�Usare -h per avere un aiuto �Incolonna�Incolonna il paragrafo attuale rispetto alla attuale lunghezza di riga�_Esporta�_Videoscrittura Esterna�_Impagina�_Nascondi Tutti�_Importa�_Unisci appunti�Nuova _Appunto�_Sola-Lettura�_Mostra Tutto�_Riordina Testo�_Dividi appunto�_Data/Ora�_Elenco�_get_settings: Non posso trovare sortAscendingRadioButton�i.e. lpr: �i.e. 1 per 1.2.1, a�fmt -w %d �gjots2: attenzione: la lista delle selezioni è vuota. Non eseguire l'operazione di cambio evento dell'elenco�gjots: opzioni�http://bhepple.freeshell.org/gjots2�Nome1�Nome2�sovrascrivere %s?�comando di stampa (puo' trattarsi di una espressione da shell)�testo modificato dal programma esterno�testo non modificato dal programma esterno�Finestra1�xterm -e vi %s������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/nb.po�������������������������������������������������������������������������������0000664�0000000�0000000�00000064521�14016300235�0014313�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of gjots2.po to # Messages master file for gjots2. # Copyright (C) 2005-2006 Bob Hepple # This file is distributed under the same license as the gjots2 package. # Bob Hepple <bhepple@freeshell.org>, 2005. # msgid "" msgstr "" "Project-Id-Version: gjots2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-30 18:18+1000\n" "PO-Revision-Date: 2006-01-16 15:35+0100\n" "Last-Translator: Robert Emil Berge\n" "Language-Team: <nb@li.org>\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11\n" #: ../ui/about.ui:12 #, fuzzy msgid "Copyright Bob Hepple 2002-2020" msgstr "Copyright Bob Hepple 2002-2006" #: ../ui/about.ui:13 msgid "http://bhepple.freeshell.org/gjots2" msgstr "http://bhepple.freeshell.org/gjots2" #: ../ui/about.ui:25 msgid "\n" msgstr "" #: ../ui/fileDialog.ui:69 #, fuzzy msgid "Open file read only" msgstr "Åpne fil ..." #: ../ui/fileDialog.ui:73 msgid "To open the file in read-only mode." msgstr "" #: ../ui/findDialog.ui:8 msgid "Find & replace" msgstr "Finn og erstatt" #: ../ui/findDialog.ui:34 msgid "Find:" msgstr "Finn:" #: ../ui/findDialog.ui:47 msgid "Replace:" msgstr "Erstatt:" #: ../ui/findDialog.ui:64 msgid "String to search for" msgstr "Tekst å søke etter" #: ../ui/findDialog.ui:80 msgid "String to replace" msgstr "Tekst å erstatte med" #: ../ui/findDialog.ui:114 ../ui/gjots.ui:844 msgid "Find" msgstr "Finn" #: ../ui/findDialog.ui:130 msgid "Close" msgstr "Lukk" #: ../ui/findDialog.ui:146 msgid "Replace" msgstr "Erstatt" #: ../ui/findDialog.ui:162 msgid "Replace All" msgstr "Erstatt alle" #: ../ui/findDialog.ui:178 msgid "Cancel" msgstr "Avbryt" #: ../ui/findDialog.ui:197 msgid "Clear" msgstr "Nullstill" #: ../ui/findDialog.ui:257 msgid "Match case" msgstr "Bruk kapitalisering" #: ../ui/findDialog.ui:261 msgid "Don't ignore case" msgstr "Ikke overse store og små bokstaver" #: ../ui/findDialog.ui:271 msgid "Regular Expression" msgstr "Regulært uttrykk" #: ../ui/findDialog.ui:275 msgid "Find string is a regular expression (see 'man 7 regex')" msgstr "Søketekst er et regulært uttrykk (se man 7 regex)" #: ../ui/findDialog.ui:287 msgid "Backwards" msgstr "Bakover" #: ../ui/findDialog.ui:291 msgid "Search backwards" msgstr "Søk bakover" #: ../ui/findDialog.ui:306 msgid "Global" msgstr "Globalt" #: ../ui/findDialog.ui:310 msgid "Searches entire file not just this entry" msgstr "Søker i hele filen, ikke bare dette elementet" #: ../ui/findDialog.ui:327 msgid " Options " msgstr "Innstillinger" #: ../ui/fontDialog.ui:9 msgid "Select Font" msgstr "Velg skrifttype" #: ../ui/generalDialog.ui:9 msgid "window1" msgstr "vindu1" #: ../ui/generalDialog.ui:22 ../ui/generalDialog.ui:60 #: ../ui/generalDialog.ui:115 msgid "label1" msgstr "merkelapp1" #: ../ui/generalDialog.ui:46 msgid "label2" msgstr "merkelapp2" #: ../ui/generalDialog.ui:193 msgid "Try again" msgstr "Prøv igjen" #: ../ui/generalDialog.ui:209 msgid "Read only" msgstr "Skrivebeskyttet" #: ../ui/gjots.ui:24 msgid "_File" msgstr "" #: ../ui/gjots.ui:88 msgid "_Import" msgstr "_Importer" #: ../ui/gjots.ui:91 msgid "Import items from a gjots file" msgstr "Importer elementer fra en gjots-fil" #: ../ui/gjots.ui:99 msgid "_Export" msgstr "_Eksporter" #: ../ui/gjots.ui:102 msgid "Export selected items to a gjots file" msgstr "Eksporter valgte elementer til en gjots fil" #: ../ui/gjots.ui:135 msgid "Toggle the read-only flag if possible" msgstr "Skift flagget for skrivebeskyttelse hvis mulig" #: ../ui/gjots.ui:136 msgid "_Read-only" msgstr "_Skrivebeskyttet" #: ../ui/gjots.ui:152 #, fuzzy msgid "Exit gjots2" msgstr "Avslutt gjots" #: ../ui/gjots.ui:167 msgid "_Edit" msgstr "" #: ../ui/gjots.ui:263 #, fuzzy msgid "Find Next" msgstr "Finn" #: ../ui/gjots.ui:273 msgid "Find Previous" msgstr "" #: ../ui/gjots.ui:299 msgid "_View" msgstr "" #: ../ui/gjots.ui:307 msgid "_Show All" msgstr "Vis _alt" #: ../ui/gjots.ui:310 ../ui/gjots.ui:1085 msgid "Show all items below the current item" msgstr "Vis alle elementer under valgte element" #: ../ui/gjots.ui:318 msgid "_Hide All" msgstr "_Skjul alt" #: ../ui/gjots.ui:321 msgid "Hide all items except the top level" msgstr "Skjul alle elementer utenom øverste nivå" #: ../ui/gjots.ui:337 msgid "Toggles the main toolbar" msgstr "Skrur av/på hoved-verktøylinjen" #: ../ui/gjots.ui:338 msgid "To_p Toolbar" msgstr "Ø_verste verktøylinje" #: ../ui/gjots.ui:347 msgid "Toggles tree tool bar" msgstr "Skrur av/på tree-verktøylinjen" #: ../ui/gjots.ui:348 msgid "Tre_e Toolbar" msgstr "_Tre-verktøylinje" #: ../ui/gjots.ui:357 msgid "Show the related icon text" msgstr "Vis tilhørende ikontekst" #: ../ui/gjots.ui:358 msgid "Show _Icon Text" msgstr "Vis ikontekst" #: ../ui/gjots.ui:367 msgid "Status _Bar" msgstr "Status_linje" #: ../ui/gjots.ui:380 msgid "_Tree" msgstr "_Tre" #: ../ui/gjots.ui:388 msgid "_New Page" msgstr "_Nytt element" #: ../ui/gjots.ui:391 msgid "Create a new page" msgstr "Lag nytt element" #: ../ui/gjots.ui:400 msgid "New _Child" msgstr "Nytt _underelement" #: ../ui/gjots.ui:403 ../ui/gjots.ui:920 msgid "Create a new child" msgstr "Lag et nytt underelement" #: ../ui/gjots.ui:420 ../ui/gjots.ui:950 msgid "Move selection up" msgstr "Flytt valgte elementer opp" #: ../ui/gjots.ui:431 ../ui/gjots.ui:965 msgid "Move selection down" msgstr "Flytt valgte elementer ned" #: ../ui/gjots.ui:439 msgid "P_romote" msgstr "_Forfrem" #: ../ui/gjots.ui:442 ../ui/gjots.ui:980 msgid "Selection becomes a sibling to their parent" msgstr "Utvalg kommer på samme nivå som overelement" #: ../ui/gjots.ui:450 msgid "D_emote" msgstr "_Degrader" #: ../ui/gjots.ui:453 ../ui/gjots.ui:995 msgid "Selection becomes a child of the previous item" msgstr "Utvalg blir underelement til elementet før" #: ../ui/gjots.ui:467 msgid "_Split Item" msgstr "Del _element" #: ../ui/gjots.ui:470 msgid "Make a new item from the current selection" msgstr "Lag et nytt element fra utvalg" #: ../ui/gjots.ui:478 msgid "_Merge Items" msgstr "_Slå sammen elementer" #: ../ui/gjots.ui:481 msgid "Merge current items into the first one" msgstr "Slå sammen valgte elementer inn i det første" #: ../ui/gjots.ui:489 msgid "S_ort Tree" msgstr "So_rter treet" #: ../ui/gjots.ui:492 ../ui/gjots.ui:1100 msgid "Popup the sort tree dialog" msgstr "Åpne dialogvindu for å sortere treet" #: ../ui/gjots.ui:506 msgid "Te_xt" msgstr "Te_kst" #: ../ui/gjots.ui:514 msgid "_Format" msgstr "_Formater" #: ../ui/gjots.ui:517 msgid "Format the current paragraph" msgstr "Formater gjeldende avsnitt" #: ../ui/gjots.ui:526 msgid "_Time stamp" msgstr "_Tidsstempel" #: ../ui/gjots.ui:529 msgid "Add a time/date stamp (see preferences)" msgstr "Sett inn tid/dato (see innstillinger)" #: ../ui/gjots.ui:538 msgid "_External Edit" msgstr "_Rediger eksternt" #: ../ui/gjots.ui:541 msgid "Edit current item in an external editor" msgstr "Rediger gjeldende element i et eksternt skriveprogram" #: ../ui/gjots.ui:549 msgid "_Sort Text" msgstr "_Sorter tekst" #: ../ui/gjots.ui:552 msgid "Popup the sort text dialog" msgstr "Åpne dialogvindu for å sortere tekst" #: ../ui/gjots.ui:566 msgid "_Help" msgstr "" #: ../ui/gjots.ui:574 #, fuzzy msgid "_Read Manual" msgstr "Les manualen" #: ../ui/gjots.ui:577 msgid "Read the online manual (using gjots)" msgstr "Les manualen fra internet (med gjots)" #: ../ui/gjots.ui:621 msgid "Popup the 'Find'menu" msgstr "" #: ../ui/gjots.ui:651 msgid "Find the previous occurance" msgstr "" #: ../ui/gjots.ui:667 msgid "Find the next occurance" msgstr "" #: ../ui/gjots.ui:693 msgid "Save gjots document" msgstr "Lagre gjots-dokumentet" #: ../ui/gjots.ui:694 msgid "Save" msgstr "Lagre" #: ../ui/gjots.ui:708 msgid "Print this document" msgstr "Skriv ut dette dokumentet" #: ../ui/gjots.ui:709 ../ui/printDialog.ui:8 msgid "Print" msgstr "Skriv ut" #: ../ui/gjots.ui:738 msgid "Cut selected items" msgstr "Klipp ut valgte elementer" #: ../ui/gjots.ui:739 msgid "Cut" msgstr "Klipp ut" #: ../ui/gjots.ui:753 msgid "Copy selected items" msgstr "Kopier valgte elementer" #: ../ui/gjots.ui:754 msgid "Copy" msgstr "Kopier" #: ../ui/gjots.ui:768 msgid "Paste selected items" msgstr "Lim inn valgte elementer" #: ../ui/gjots.ui:769 msgid "Paste" msgstr "Lim inn" #: ../ui/gjots.ui:798 msgid "Wrap the current paragraph to the current line length" msgstr "Bryt gjeldene avsnitt til valgt linjelengde" #: ../ui/gjots.ui:799 msgid "Wrap" msgstr "Bryt" #: ../ui/gjots.ui:813 msgid "Invoke an external editor on the current item" msgstr "Start et eksternt skriveprogram for gjeldene element" #: ../ui/gjots.ui:814 msgid "Ext.Ed." msgstr "Ekst.prg." #: ../ui/gjots.ui:828 msgid "Add a time/date stamp (see prefs)" msgstr "Sett inn stempel for tid/dato (se innstillinger)" #: ../ui/gjots.ui:829 msgid "Date" msgstr "Dato" #: ../ui/gjots.ui:843 msgid "Popup the find and replace dialog" msgstr "Åpne dialogvinduet for finn/erstatt" #: ../ui/gjots.ui:858 msgid "Popup the sort dialog" msgstr "Åpne dialogvinduet for å sortere" #: ../ui/gjots.ui:859 ../ui/sortDialog.ui:15 msgid "Sort" msgstr "Sorter" #: ../ui/gjots.ui:873 msgid "Open gjots preferences window" msgstr "Åpne vinduet for gjots innstillinger" #: ../ui/gjots.ui:874 msgid "Prefs" msgstr "Innstillinger" #: ../ui/gjots.ui:905 msgid "Create a new item" msgstr "Lag et nytt element" #: ../ui/gjots.ui:906 ../ui/treeContextMenu.ui:45 msgid "New Page" msgstr "Nytt element" #: ../ui/gjots.ui:921 ../ui/treeContextMenu.ui:52 msgid "New Child" msgstr "Nytt underelement" #: ../ui/gjots.ui:951 msgid "Up" msgstr "Opp" #: ../ui/gjots.ui:966 msgid "Down" msgstr "Ned" #: ../ui/gjots.ui:981 ../ui/treeContextMenu.ui:74 msgid "Promote" msgstr "Forfrem" #: ../ui/gjots.ui:996 ../ui/treeContextMenu.ui:82 msgid "Demote" msgstr "Degrader" #: ../ui/gjots.ui:1025 msgid "Split the text selection into a new item" msgstr "Skill ut tekstutvalget til et nytt element" #: ../ui/gjots.ui:1026 msgid "Split Item" msgstr "Del element" #: ../ui/gjots.ui:1040 msgid "Merge selected items together" msgstr "Slå sammen valgte elementer" #: ../ui/gjots.ui:1041 ../ui/treeContextMenu.ui:89 msgid "Merge Items" msgstr "Slå sammen elementer" #: ../ui/gjots.ui:1070 msgid "Hide all items except for the top level" msgstr "Skjul alle elementer utenom øverste nivå" #: ../ui/gjots.ui:1071 ../ui/treeContextMenu.ui:103 msgid "Hide All" msgstr "Skjul alt" #: ../ui/gjots.ui:1086 ../ui/treeContextMenu.ui:96 msgid "Show All" msgstr "Vis alt" #: ../ui/gjots.ui:1101 ../ui/treeContextMenu.ui:110 ../lib/sortDialog.py:394 msgid "Sort Tree" msgstr "Sorter treet" #: ../ui/prefsDialog.ui:20 msgid "gjots: preferences" msgstr "gjots: innstillinger" #: ../ui/prefsDialog.ui:49 msgid "Choose a font for the text panel" msgstr "Velg en skrifttype for tekstpanelet" #: ../ui/prefsDialog.ui:65 msgid "Date format:" msgstr "Datoformat:" #: ../ui/prefsDialog.ui:79 #, fuzzy msgid "Format for the timestamp function (see strftime(3)) eg %F" msgstr "Format for datostempelfunksjonen (se strftime(3))" #: ../ui/prefsDialog.ui:80 msgid "%F" msgstr "%F" #: ../ui/prefsDialog.ui:99 #, fuzzy msgid "" "External program to edit a page (%s is replaced by the name of the temporary " "edit file) eg xterm -e vi %s" msgstr "" "Eksternt program for å redigere et element (%s blir byttet ut med en " "midlertidig fil for redigering)" #: ../ui/prefsDialog.ui:100 msgid "xterm -e vi %s" msgstr "xterm -e vi %s" #: ../ui/prefsDialog.ui:120 msgid "External editor" msgstr "Eksternt skriveprogram" #: ../ui/prefsDialog.ui:135 msgid "Text Line Length: " msgstr "Linjelengde for tekst:" #: ../ui/prefsDialog.ui:149 msgid "Line length for paragraph wrapping" msgstr "Linjelengde for avsnittsbryting" #: ../ui/prefsDialog.ui:172 msgid "Text formatter: " msgstr "Tekstformatering:" #: ../ui/prefsDialog.ui:184 #, fuzzy msgid "" "External program to pipe text for formatting (%d is replaced by the current " "line width) eg fmt -w %d " msgstr "" "Eksternt program for formatering (%d blir byttet ut med valgt linjelengde)" #: ../ui/prefsDialog.ui:185 msgid "fmt -w %d " msgstr "fmt -w %d" #: ../ui/prefsDialog.ui:202 msgid "Current text font" msgstr "Valgt skrifttype" #: ../ui/prefsDialog.ui:204 msgid "Courier 10 Pitch 10" msgstr "Courier 10 Pitch 10" #: ../ui/prefsDialog.ui:224 msgid "AutoSave interval:" msgstr "" #: ../ui/prefsDialog.ui:238 msgid "Seconds of inactivity to trigger an AutoSave (0 = no AutoSave)" msgstr "" #: ../ui/printDialog.ui:38 msgid "e.g. lpr: " msgstr "f.eks. lpr:" #: ../ui/printDialog.ui:54 msgid "print command (can be a shell expression)" msgstr "Utskriftkommando (kan være et skallutrykk)" #: ../ui/printDialog.ui:76 msgid " Print command " msgstr "Utskriftskommando" #: ../ui/printDialog.ui:104 msgid "Page" msgstr "Element" #: ../ui/printDialog.ui:108 msgid "Print the current page" msgstr "Skriv ut gjeldene element" #: ../ui/printDialog.ui:120 msgid "Selection" msgstr "Utvalg" #: ../ui/printDialog.ui:124 msgid "Print the selected pages or text" msgstr "Skriv ut valgte elementer eller valgt tekst" #: ../ui/printDialog.ui:137 msgid "All" msgstr "Alt" #: ../ui/printDialog.ui:141 msgid "Print the entire gjots file" msgstr "Skriv ut hele gjots-filen" #: ../ui/printDialog.ui:160 msgid " Print Range " msgstr "Utskriftsrekkevidde" #: ../ui/printDialog.ui:193 msgid "Page feeds" msgstr "Blanke forsider" #: ../ui/printDialog.ui:197 msgid "Feeds a page before every new gjots item" msgstr "Mater ut en blank side før hvert element" #: ../ui/printDialog.ui:209 msgid "Bold titles" msgstr "Fete titler" #: ../ui/printDialog.ui:212 msgid "Print the gjots item titles in bold" msgstr "Skriv ut gjots elementtitler med fet skrift" #: ../ui/printDialog.ui:224 msgid "Auto Number" msgstr "Autonumrering" #: ../ui/printDialog.ui:251 msgid "Auto-number format: " msgstr "Autonumererings-format" #: ../ui/printDialog.ui:262 msgid "eg. 1 for 1.2.1, a" msgstr "f.eks. 1 for 1.2.1, a" #: ../ui/printDialog.ui:289 msgid " Print formatting " msgstr "Utskriftsformat" #: ../ui/sortDialog.ui:43 msgid "Ascending" msgstr "Stigende" #: ../ui/sortDialog.ui:47 msgid "Sort in ascending order" msgstr "Sorter i stigende rekkefølge" #: ../ui/sortDialog.ui:58 msgid "Descending" msgstr "Synkende" #: ../ui/sortDialog.ui:62 msgid "Sort in descending order" msgstr "Sorter i synkende rekkefølge" #: ../ui/sortDialog.ui:76 msgid "Alphabetic" msgstr "Alfabetisk" #: ../ui/sortDialog.ui:80 msgid "Sort in alphabetic order" msgstr "Sorter alfabetisk" #: ../ui/sortDialog.ui:93 msgid "Numeric" msgstr "Numerisk" #: ../ui/sortDialog.ui:97 msgid "Sort in numeric order" msgstr "Sorter numerisk" #: ../ui/sortDialog.ui:119 msgid " Sort Parameters " msgstr "Sorteringsparametre" #: ../ui/sortDialog.ui:149 msgid "How many sublevels to sort (0 for none; -1 for 'all')" msgstr "Antall undernivåer som skal sorteres (0 for ingen; -1 for 'alle')" #: ../ui/sortDialog.ui:171 msgid " Sort Sublevels " msgstr "Sorter undernivåer" #: ../ui/treeContextMenu.ui:30 #, fuzzy msgid "Select _All" msgstr "Velg fil" #: ../ui/treeContextMenu.ui:117 msgid "Import" msgstr "Importer" #: ../ui/treeContextMenu.ui:124 msgid "Export" msgstr "Eksporter" #: ../gjots2:23 #, fuzzy msgid "" "Usage: gjots [OPTIONS] [FILENAME]\n" "A gtk/X11 jotter\n" "\n" "OPTIONS:\n" "-h, --help: this help\n" "-d, --debug: debug to stdout\n" "-t, --trace: trace lines as they execute\n" "-g 123x456, --geometry=123x456: initial geometry (X x Y)\n" "-p, --purge-password don't remember password\n" "-r, --readonly: no editing (or locking)\n" "-V, --version: print the version and exit\n" "\n" "FILENAME:\n" " gjots data filename (default is $HOME/.gjotsfile)\n" msgstr "" "Bruk: gjots [VALG] [FILNAVN]\n" "Et gnome-2/X11 jotter-program\n" "\n" "VALG:\n" "-h, --help: denne hjelpebeskjeden\n" "-d, --debug: feilsøkingsinformasjon til stdout\n" "-g 123x456, --geometry=123x456: vindustørelse ved programstart (X x Y)\n" "-p, --purge-password\t\t\t\tikke husk passord\n" "-r, --readonly: ingen redigering (eller låsing)\n" "-V, --version: skriv programversjon og avslutt\n" "\n" "FILNAVN:\n" "\tgjots data filenavn (standard er $HOME/.gjotsfile)\n" #: ../gjots2:89 #, python-format msgid "%s requires python%s or higher." msgstr "%s krever python%s eller høyere." #: ../gjots2:102 msgid "Use -h for help\n" msgstr "Bruk -h for hjelp\n" #: ../gjots2:116 #, python-format msgid "%s version %s" msgstr "%s versjon %s" #: ../lib/gui.py:51 ../lib/gui.py:996 msgid "Text pasted" msgstr "Limt inn tekst" #: ../lib/gui.py:179 #, python-format msgid "External formatter \"%s\" is not installed - can't format" msgstr "" "Eksternt formateringsprogram \"%s\" er ikke installert - kan ikke formatere" #: ../lib/gui.py:564 ../lib/gui.py:675 ../lib/gui.py:679 ../lib/gui.py:745 #: ../lib/gui.py:749 ../lib/gui.py:812 ../lib/gui.py:817 ../lib/gui.py:1043 #: ../lib/gui.py:1052 ../lib/gui.py:1138 ../lib/gui.py:1147 ../lib/gui.py:1183 #: ../lib/gui.py:1188 ../lib/gui.py:1219 ../lib/gui.py:1608 ../lib/gui.py:2382 #: ../lib/gui.py:2401 ../lib/gui.py:2430 ../lib/gui.py:2461 ../lib/file.py:466 #: ../lib/file.py:471 ../lib/sortDialog.py:329 ../lib/sortDialog.py:334 #: ../lib/printDialog.py:110 ../lib/printDialog.py:115 msgid "Nothing selected" msgstr "Ingenting er valgt" #: ../lib/gui.py:568 ../lib/gui.py:684 ../lib/gui.py:753 ../lib/gui.py:822 #: ../lib/gui.py:934 ../lib/gui.py:1224 ../lib/gui.py:2386 #: ../lib/sortDialog.py:345 msgid "No parent!" msgstr "Overelement finnes ikke!" #: ../lib/gui.py:572 ../lib/gui.py:719 msgid "No child!" msgstr "Underelement finnes ikke!" #: ../lib/gui.py:580 ../lib/gui.py:693 msgid "Can't go any further" msgstr "Kan ikke gå videre" #: ../lib/gui.py:616 ../lib/gui.py:840 msgid "Internal error!" msgstr "Intern feil!" #: ../lib/gui.py:757 msgid "Can't go further!" msgstr "Kan ikke gå videre!" #: ../lib/gui.py:973 msgid "Text cut" msgstr "Utklipt tekst" #: ../lib/gui.py:984 msgid "Text copied" msgstr "Kopiert tekst" #: ../lib/gui.py:1005 msgid "All text selected" msgstr "Hele den valgte teksten" #: ../lib/gui.py:1015 msgid "All tree items selected" msgstr "Alle valgte tre-elementer" #: ../lib/gui.py:1023 msgid "Nothing selected!" msgstr "Ingenting er valgt!" #: ../lib/gui.py:1047 msgid "Can't merge the root item" msgstr "Kan ikke slå sammen rot-elementet" #: ../lib/gui.py:1056 msgid "Nothing to merge" msgstr "Ingenting å slå sammen" #: ../lib/gui.py:1063 msgid "Can't merge items that have children" msgstr "Kan ikke slå sammen elementer som har underelementer" #: ../lib/gui.py:1093 #, python-format msgid "%d items merged" msgstr "%d elementer slått sammen" #: ../lib/gui.py:1142 msgid "Can't delete the root item" msgstr "Kan ikke slette rot-elementet" #: ../lib/gui.py:1175 #, python-format msgid "%d tree items cut" msgstr "%d tre-elementer klippet ut" #: ../lib/gui.py:1205 #, python-format msgid "%d tree items copied" msgstr "%d tre-elementer kopiert" #: ../lib/gui.py:1214 msgid "Nothing to paste" msgstr "Ingenting å lime inn" #: ../lib/gui.py:1237 msgid "Tree items pasted" msgstr "Tre-elementer limt inn" #: ../lib/gui.py:1258 #, fuzzy msgid "Can't write tempfile" msgstr "Kan ikke skrive" #: ../lib/gui.py:1278 #, python-format msgid "Can't run '%s'" msgstr "Kan ikke kjøre '%s'" #: ../lib/gui.py:1287 #, fuzzy msgid "Can't read tempfile " msgstr "Kan ikke lese" #: ../lib/gui.py:1293 msgid "text changed by external editor" msgstr "tekst redigert med eksternt skriveprogram" #: ../lib/gui.py:1295 msgid "text not changed by external editor" msgstr "Tekst som ikke er redigert med eksternt skriveprogram" #: ../lib/gui.py:1314 msgid ": Error" msgstr ": Feil" #: ../lib/gui.py:1327 #, python-format msgid "Can't lock file %s: already locked by process %d" msgstr "Kan ikke låse filen %s: allerede låst av prosess %d" #: ../lib/gui.py:1510 msgid ": Save?" msgstr ": Lagre?" #: ../lib/gui.py:1511 msgid "Save current work?" msgstr "Lagre forandringer?" #: ../lib/gui.py:1532 msgid "New file" msgstr "Ny fil" #: ../lib/gui.py:1556 msgid "Open file ..." msgstr "Åpne fil ..." #: ../lib/gui.py:1568 msgid "No changes to save" msgstr "Ingen forandringer å lagre" #: ../lib/gui.py:1572 ../lib/gui.py:1593 msgid "Saved." msgstr "Lagret." #: ../lib/gui.py:1574 ../lib/gui.py:1595 ../lib/file.py:456 msgid "Not saved." msgstr "Ikke lagret." #: ../lib/gui.py:1589 msgid "Nothing to save" msgstr "Ingenting å lagre" #: ../lib/gui.py:1591 ../lib/file.py:693 msgid "Save as ..." msgstr "Lagre som ..." #: ../lib/gui.py:1605 msgid "Import from ..." msgstr "Importer fra ..." #: ../lib/gui.py:1616 msgid "Export to ..." msgstr "Eksporter til ..." #: ../lib/gui.py:1930 ../lib/gui.py:1933 #, python-format msgid "%s: Warning: opening gjots2 manual from %s\n" msgstr "%s: Advarser: åpner gjots2-manualen fra %s\n" #: ../lib/gui.py:2317 msgid "" "gjots2: warning: selection list is NULL. Skipping tree selection changed \n" "event." msgstr "" "gjots2: advarsel: Utvalgslisten er NULL. Hopper over tre-utvalg forandret\n" "hendelse." #: ../lib/gui.py:2390 msgid "Can't go further" msgstr "Kan ikke gå videre" #: ../lib/gui.py:2419 msgid "Tree is empty!" msgstr "Treet er tomt!" #: ../lib/gui.py:2716 msgid "Bad regular expression" msgstr "Feilaktig regulært uttrykk" #: ../lib/gui.py:2808 #, python-format msgid "%s: bad geometry specification: %s\n" msgstr "%s: feil spesifikasjon av vindustørelse: %s\n" #: ../lib/gui.py:2899 msgid "New...>>>" msgstr "Ny...>>>" #: ../lib/gui.py:2936 msgid "Install gtksourceview to enable undo/redo" msgstr "" #: ../lib/gui.py:3102 msgid ": version " msgstr ": versjon " #: ../lib/find.py:70 ../lib/find.py:93 msgid "Not found" msgstr "Ikke funnet" #: ../lib/find.py:72 msgid "Found" msgstr "Funnet" #: ../lib/find.py:96 msgid "Replace?" msgstr "Erstatt?" #: ../lib/find.py:113 #, python-format msgid "%d substitutions" msgstr "%d erstatninger" #: ../lib/file.py:255 msgid "Enter password for " msgstr "Skriv inn passord for" #: ../lib/file.py:257 #, fuzzy msgid ": Enter Password" msgstr "gjots: Skriv inn passord" #: ../lib/file.py:259 msgid "Password: " msgstr "Passord:" #: ../lib/file.py:260 msgid "Confirm: " msgstr "Bekreft:" #: ../lib/file.py:268 msgid "Password was not confirmed" msgstr "Passordet ble ikke bekreftet" #: ../lib/file.py:275 msgid "Could not find the ccrypt program - please install it and try again" msgstr "Kunne ikke finne programmet ccrypt - installer det og forsøk igjen" #: ../lib/file.py:308 msgid "" "Neither gpg2 nor gpg are available - please install one (perhaps package " "gnupg2) and try again" msgstr "" #: ../lib/file.py:328 #, fuzzy msgid "No openssl program - please install it and try again" msgstr "Kunne ikke finne programmet openssl - installer det og forsøk igjen" #: ../lib/file.py:354 #, fuzzy msgid "No org2gjots program - please install it and try again" msgstr "Kunne ikke finne programmet openssl - installer det og forsøk igjen" #: ../lib/file.py:412 msgid "Can't open \"" msgstr "Kan ikke opne \"" #: ../lib/file.py:415 msgid "Bad password" msgstr "Feilaktig passord" #: ../lib/file.py:418 msgid "File cannot be locked" msgstr "Filen kan ikke låses" #: ../lib/file.py:431 ../lib/file.py:489 msgid "failed!" msgstr "" #: ../lib/file.py:457 msgid "Can't write to " msgstr "Kan ikke skrive til" #: ../lib/file.py:460 msgid "Can't lock file" msgstr "Kan ikke låse filen" #: ../lib/file.py:597 #, python-format msgid "%s is not readable" msgstr "%s er ikke lesbar" #: ../lib/file.py:613 #, python-format msgid "%s: no permission" msgstr "%s: ikke tilgang" #: ../lib/file.py:615 #, python-format msgid "%s: locked by process number %d" msgstr "%s: låst av prosess nummer %d" #: ../lib/file.py:617 #, fuzzy msgid ": can't lock file." msgstr "gjots: kan ikke låse fil." #: ../lib/file.py:705 msgid "That file is already open!" msgstr "Den filen er allerede åpen!" #: ../lib/file.py:713 ../lib/file.py:787 #, fuzzy msgid ": file has changed" msgstr "gjots: %s finnes allerede." #: ../lib/file.py:714 #, python-format msgid "File changed since it was read - copied to %s " msgstr "" #: ../lib/file.py:731 #, python-format msgid "%s is locked by pid %d" msgstr "%s er låst av pid %d" #: ../lib/file.py:735 msgid "Can't make a lockfile in " msgstr "Kan ikke lage en låsefil i" #: ../lib/file.py:748 #, python-format msgid "%s is not writable" msgstr "%s er ikke skrivbar" #: ../lib/file.py:751 #, fuzzy, python-format msgid ": %s already exists." msgstr "gjots: %s finnes allerede." #: ../lib/file.py:752 #, python-format msgid "overwrite %s?" msgstr "skrive over %s?" #: ../lib/file.py:788 #, python-format msgid "File changed since it was read - so it was copied to %s " msgstr "" #: ../lib/sortDialog.py:125 msgid "_get_settings: Cant find sortAscendingRadioButton" msgstr "_get_settings: Kan ikke finne sortAscendingRadioButton" #: ../lib/sortDialog.py:165 msgid "Internal error" msgstr "Intern feil" #: ../lib/sortDialog.py:303 msgid "Nothing to sort!" msgstr "Ingenting å sortere!" #: ../lib/sortDialog.py:398 msgid "Sort Text" msgstr "Sorter tekst" #~ msgid "Exit gjots" #~ msgstr "Avslutt gjots" #~ msgid "Create a new child " #~ msgstr "Lag et nytt underelement" #, fuzzy #~ msgid "About gjots2" #~ msgstr "Avslutt gjots" #, fuzzy #~ msgid " Find: " #~ msgstr "Finn:" #~ msgid "abcdefghijk ABCDEFGHIJK" #~ msgstr "abcdefghijk ABCDEFGHIJK" #, fuzzy, python-format #~ msgid "%s requires pygtk-%s.\n" #~ msgstr "%s krever pygtk-%s." #~ msgid "not initialised" #~ msgstr "ikke initialisert" #~ msgid "pygtk-2.2 is required for this application!" #~ msgstr "pygtk-2.2 kreves for dette programmet!" #~ msgid "Store and organise your random notes" #~ msgstr "Organiser og ta vare på dine uordnede notater" #~ msgid "Gjots2 Jotter" #~ msgstr "Gjots2 Jotter" #~ msgid "gjots" #~ msgstr "gjots" #~ msgid "_New" #~ msgstr "_Ny" #~ msgid "_Quit" #~ msgstr "_Avslutt" #~ msgid "_Toolbars" #~ msgstr "_Verktøylinjer" #~ msgid "_Up" #~ msgstr "_Opp" #~ msgid "_Down" #~ msgstr "_Ned" #~ msgid "Create a new gjots document" #~ msgstr "Lag et nytt gjots-dokument" #~ msgid "Open an existing gjots document" #~ msgstr "Åpne et eksisterende gjots-dokument" #~ msgid "Open" #~ msgstr "Åpne" #~ msgid "Back" #~ msgstr "Tilbake" #~ msgid "Forward" #~ msgstr "Fram" #~ msgid "translator_credits" #~ msgstr "oversetter_medvirkning" #~ msgid "%s: Warning: running modules from %s\n" #~ msgstr "%s: Advarsel: kjører moduler fra %s\n" #~ msgid "Could not find the gpg program - please install it and try again" #~ msgstr "Kunne ikke finne programmet gpg - installer det og forsøk igjen" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/nb/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0013743�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/nb/LC_MESSAGES/���������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0015530�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/nb/LC_MESSAGES/gjots2.mo������������������������������������������������������������0000664�0000000�0000000�00000034105�14016300235�0017300�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������,��3��<�������� ��� �� ��������!�����1�����D�����V�����g�����j�����z�������������������������������� �����+�����#���I�����m����������������� �����'�����!�������������������� ���2�� ���=�� ���G�����S�� ���h�� ���r������� ������������������������������0��������6��$���P�����u�� �������������������� ��������������� ���������������C��������V�����j�����}�������������������������������� ���������� ���������������'��� �����5�����I��%���P�� ���v������������7�����(��������������������7���'�����_�����e�����������������'�����#�����5�������������!�����1�����P�����_��-���o��"�����*����� ����� �����&��������)�����G�����[�� ���m�����w�� ���������� ���������� ����� ����� ����� ���������������������������� �����0�����A�� ���I�����W�����u�����~�� ���������� ���������������!������������������"�����=�����C�����I�����`��#���|�� ��������������� �����$�������� ������� ���'�����3�����<�� ���E�����P�� ���U�����a�����t������������(����� ����� �����.�����+��������:�����C��%���S�����y������� ����� ������������������������� ��� ��(��� �� ���A �����M �����_ �����t �����z �� ��� ����� ����� �� ��� ����� �� ��� ��%��� ����� !�����&!�� ���<!�����J!�����Y!�� ���k!�����u!�����x!�����!��5���!�����!�����!�����!�� ���!�����!�� ���!�� ���"�� ��� "�� ���"�� ���!"�� ���,"�� ���8"�����D"��1���J"�� ���|"�����"�� ���"��P���"�����"��#��� #�����-#�����4#�� ���;#��)���I#�����s#��#���#�����#�����#����#�� ���$�����$�����%�����%�����*%�����>%�����R%�����U%�����p%�����%�����%�����%�����%�����%��!���%�� ���&��,���!&��-���N&�����|&�����&�����&�����&�� ���&��%���&��0���&�����'�����"'�����:'�� ���T'�����_'�� ���h'�����v'�����'�����'�����'�� ���'�����'�����'�����(�����(�����*(��5���?(�����u(��5���(��"���(�����(�����(�����)�����#)��#���*)�� ���N)�����X)�����])�����f)�����m)��C���)�����)�����)�����)����� *�����*�����,*�����5*�� ���O*�����Y*�� ���^*�����j*�����s*��#���|*�����*��5���*�����*�� ���*��+���*�����&+�� ���8+�����B+��I���Y+��)���+�����+�����+�����+��3���+�����,,�����2,�����M,�����T,�� ���\,��*���f,��*���,��B���,�����,�����-��#���-�� ���=-�� ���I-��4���V-�����-�����-�����-�����-��.���-�����#.�����@.�����[.�����v.�� ���.�����.�����.�����.�����.�����.�����.�� ���/�� ���/����� /�����3/�����G/�����`/�����v/�����/�����/�� ���/��%���/�����/�����/�����/�����/�����0�����#0�����+0��$���D0��"���i0��&���0��&���0�� ���0�����0�����0����� 1��+���%1��+���Q1�����}1�����1�����1��%���1�����1�����1�� ���1�����1�����2�� ���2�����2�� ���"2�����02�����D2�����[2�� ���c2��.���p2�����2�����2��+���2��-���2�����3�� ���3��'���&3�����N3�����h3�� ���o3�� ���|3�����3�����3�����3�����3�� ���3��*���3�� ���4�����+4�����A4�����V4�����]4�� ���t4�� ���4�����4�����4�����4�����4��.���4��!���5�� ���75�����X5�����k5�����z5�� ���5�����5�����5�����5��+���5�� ���5�����5�� ���6�� ��� 6�� ���6�����!6�� ���86�����F6�����W6�� ���`6�� ���n6�� ���{6�����6��6���6�� ���6�����6�� ���6��S���6�����D7��#���Y7�� ���}7�� ���7�����7��+���7��)���7��5���7�����/8�����68�����y���Z������������������������!��� ���C��������������Y���u������������� ����������������������A�������d���?���U���x���g��� ���"���F��������������p������/������*���������m������������������������������������=���;���6������+�������������c�������������b���4������0�������������������������������������������������������@������������������������������ ���,���]�����������'��������������3��������������&���9����������G��������������������n���l������L��������������������q������)����������w�����������������������5���������������������V���������������t������������ ���B������\���}������-������H���J�������������R�������P������>�����������f������o���Q����������������I���S���M�����������������z��������������������W���������������������������:�������������������� ������8�������7������������������������������T���j���1���������������.���{����������N�����������[�������e�������D���k���������������������������v���h�������~�����������������_���r�������i���$���������������K���#�������O�������������������������s������������|���2���E������`�������������������X�����������<���%���������������a����������^���(���� Options � Print Range � Print command � Print formatting � Sort Parameters � Sort Sublevels �%F�%d items merged�%d substitutions�%d tree items copied�%d tree items cut�%s is locked by pid %d�%s is not readable�%s is not writable�%s requires python%s or higher.�%s version %s�%s: Warning: opening gjots2 manual from %s �%s: bad geometry specification: %s �%s: locked by process number %d�%s: no permission�: Error�: Save?�: version �Add a time/date stamp (see preferences)�Add a time/date stamp (see prefs)�All�All text selected�All tree items selected�Alphabetic�Ascending�Auto Number�Auto-number format: �Backwards�Bad password�Bad regular expression�Bold titles�Can't delete the root item�Can't go any further�Can't go further�Can't go further!�Can't lock file�Can't lock file %s: already locked by process %d�Can't make a lockfile in �Can't merge items that have children�Can't merge the root item�Can't open "�Can't run '%s'�Can't write to �Cancel�Choose a font for the text panel�Clear�Close�Confirm: �Copy�Copy selected items�Could not find the ccrypt program - please install it and try again�Courier 10 Pitch 10�Create a new child�Create a new item�Create a new page�Current text font�Cut�Cut selected items�D_emote�Date�Date format:�Demote�Descending�Don't ignore case�Down�Edit current item in an external editor�Enter password for �Export�Export selected items to a gjots file�Export to ...�Ext.Ed.�External editor�External formatter "%s" is not installed - can't format�Feeds a page before every new gjots item�File cannot be locked�Find�Find & replace�Find string is a regular expression (see 'man 7 regex')�Find:�Format the current paragraph�Found�Global�Hide All�Hide all items except for the top level�Hide all items except the top level�How many sublevels to sort (0 for none; -1 for 'all')�Import�Import from ...�Import items from a gjots file�Internal error�Internal error!�Invoke an external editor on the current item�Line length for paragraph wrapping�Make a new item from the current selection�Match case�Merge Items�Merge current items into the first one�Merge selected items together�Move selection down�Move selection up�New Child�New Page�New _Child�New file�New...>>>�No changes to save�No child!�No parent!�Not found�Not saved.�Nothing selected�Nothing selected!�Nothing to merge�Nothing to paste�Nothing to save�Nothing to sort!�Numeric�Open file ...�Open gjots preferences window�P_romote�Page�Page feeds�Password was not confirmed�Password: �Paste�Paste selected items�Popup the find and replace dialog�Popup the sort dialog�Popup the sort text dialog�Popup the sort tree dialog�Prefs�Print�Print the current page�Print the entire gjots file�Print the gjots item titles in bold�Print the selected pages or text�Print this document�Promote�Read only�Read the online manual (using gjots)�Regular Expression�Replace�Replace All�Replace:�Replace?�S_ort Tree�Save�Save as ...�Save current work?�Save gjots document�Saved.�Search backwards�Searches entire file not just this entry�Select Font�Selection�Selection becomes a child of the previous item�Selection becomes a sibling to their parent�Show All�Show _Icon Text�Show all items below the current item�Show the related icon text�Sort�Sort Text�Sort Tree�Sort in alphabetic order�Sort in ascending order�Sort in descending order�Sort in numeric order�Split Item�Split the text selection into a new item�Status _Bar�String to replace�String to search for�Te_xt�Text Line Length: �Text copied�Text cut�Text formatter: �Text pasted�That file is already open!�To_p Toolbar�Toggle the read-only flag if possible�Toggles the main toolbar�Toggles tree tool bar�Tre_e Toolbar�Tree is empty!�Tree items pasted�Try again�Up�Use -h for help �Wrap�Wrap the current paragraph to the current line length�_Export�_External Edit�_Format�_Hide All�_Import�_Merge Items�_New Page�_Read-only�_Show All�_Sort Text�_Split Item�_Time stamp�_Tree�_get_settings: Cant find sortAscendingRadioButton�e.g. lpr: �eg. 1 for 1.2.1, a�fmt -w %d �gjots2: warning: selection list is NULL. Skipping tree selection changed event.�gjots: preferences�http://bhepple.freeshell.org/gjots2�label1�label2�overwrite %s?�print command (can be a shell expression)�text changed by external editor�text not changed by external editor�window1�xterm -e vi %s�Project-Id-Version: gjots2 Report-Msgid-Bugs-To: PO-Revision-Date: 2006-01-16 15:35+0100 Last-Translator: Robert Emil Berge Language-Team: <nb@li.org> Language: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: KBabel 1.11 �Innstillinger�Utskriftsrekkevidde�Utskriftskommando�Utskriftsformat�Sorteringsparametre�Sorter undernivåer�%F�%d elementer slått sammen�%d erstatninger�%d tre-elementer kopiert�%d tre-elementer klippet ut�%s er låst av pid %d�%s er ikke lesbar�%s er ikke skrivbar�%s krever python%s eller høyere.�%s versjon %s�%s: Advarser: åpner gjots2-manualen fra %s �%s: feil spesifikasjon av vindustørelse: %s �%s: låst av prosess nummer %d�%s: ikke tilgang�: Feil�: Lagre?�: versjon �Sett inn tid/dato (see innstillinger)�Sett inn stempel for tid/dato (se innstillinger)�Alt�Hele den valgte teksten�Alle valgte tre-elementer�Alfabetisk�Stigende�Autonumrering�Autonumererings-format�Bakover�Feilaktig passord�Feilaktig regulært uttrykk�Fete titler�Kan ikke slette rot-elementet�Kan ikke gå videre�Kan ikke gå videre�Kan ikke gå videre!�Kan ikke låse filen�Kan ikke låse filen %s: allerede låst av prosess %d�Kan ikke lage en låsefil i�Kan ikke slå sammen elementer som har underelementer�Kan ikke slå sammen rot-elementet�Kan ikke opne "�Kan ikke kjøre '%s'�Kan ikke skrive til�Avbryt�Velg en skrifttype for tekstpanelet�Nullstill�Lukk�Bekreft:�Kopier�Kopier valgte elementer�Kunne ikke finne programmet ccrypt - installer det og forsøk igjen�Courier 10 Pitch 10�Lag et nytt underelement�Lag et nytt element�Lag nytt element�Valgt skrifttype�Klipp ut�Klipp ut valgte elementer�_Degrader�Dato�Datoformat:�Degrader�Synkende�Ikke overse store og små bokstaver�Ned�Rediger gjeldende element i et eksternt skriveprogram�Skriv inn passord for�Eksporter�Eksporter valgte elementer til en gjots fil�Eksporter til ...�Ekst.prg.�Eksternt skriveprogram�Eksternt formateringsprogram "%s" er ikke installert - kan ikke formatere�Mater ut en blank side før hvert element�Filen kan ikke låses�Finn�Finn og erstatt�Søketekst er et regulært uttrykk (se man 7 regex)�Finn:�Formater gjeldende avsnitt�Funnet�Globalt�Skjul alt�Skjul alle elementer utenom øverste nivå�Skjul alle elementer utenom øverste nivå�Antall undernivåer som skal sorteres (0 for ingen; -1 for 'alle')�Importer�Importer fra ...�Importer elementer fra en gjots-fil�Intern feil�Intern feil!�Start et eksternt skriveprogram for gjeldene element�Linjelengde for avsnittsbryting�Lag et nytt element fra utvalg�Bruk kapitalisering�Slå sammen elementer�Slå sammen valgte elementer inn i det første�Slå sammen valgte elementer�Flytt valgte elementer ned�Flytt valgte elementer opp�Nytt underelement�Nytt element�Nytt _underelement�Ny fil�Ny...>>>�Ingen forandringer å lagre�Underelement finnes ikke!�Overelement finnes ikke!�Ikke funnet�Ikke lagret.�Ingenting er valgt�Ingenting er valgt!�Ingenting å slå sammen�Ingenting å lime inn�Ingenting å lagre�Ingenting å sortere!�Numerisk�Åpne fil ...�Åpne vinduet for gjots innstillinger�_Forfrem�Element�Blanke forsider�Passordet ble ikke bekreftet�Passord:�Lim inn�Lim inn valgte elementer�Åpne dialogvinduet for finn/erstatt�Åpne dialogvinduet for å sortere�Åpne dialogvindu for å sortere tekst�Åpne dialogvindu for å sortere treet�Innstillinger�Skriv ut�Skriv ut gjeldene element�Skriv ut hele gjots-filen�Skriv ut gjots elementtitler med fet skrift�Skriv ut valgte elementer eller valgt tekst�Skriv ut dette dokumentet�Forfrem�Skrivebeskyttet�Les manualen fra internet (med gjots)�Regulært uttrykk�Erstatt�Erstatt alle�Erstatt:�Erstatt?�So_rter treet�Lagre�Lagre som ...�Lagre forandringer?�Lagre gjots-dokumentet�Lagret.�Søk bakover�Søker i hele filen, ikke bare dette elementet�Velg skrifttype�Utvalg�Utvalg blir underelement til elementet før�Utvalg kommer på samme nivå som overelement�Vis alt�Vis ikontekst�Vis alle elementer under valgte element�Vis tilhørende ikontekst�Sorter�Sorter tekst�Sorter treet�Sorter alfabetisk�Sorter i stigende rekkefølge�Sorter i synkende rekkefølge�Sorter numerisk�Del element�Skill ut tekstutvalget til et nytt element�Status_linje�Tekst å erstatte med�Tekst å søke etter�Te_kst�Linjelengde for tekst:�Kopiert tekst�Utklipt tekst�Tekstformatering:�Limt inn tekst�Den filen er allerede åpen!�Ø_verste verktøylinje�Skift flagget for skrivebeskyttelse hvis mulig�Skrur av/på hoved-verktøylinjen�Skrur av/på tree-verktøylinjen�_Tre-verktøylinje�Treet er tomt!�Tre-elementer limt inn�Prøv igjen�Opp�Bruk -h for hjelp �Bryt�Bryt gjeldene avsnitt til valgt linjelengde�_Eksporter�_Rediger eksternt�_Formater�_Skjul alt�_Importer�_Slå sammen elementer�_Nytt element�_Skrivebeskyttet�Vis _alt�_Sorter tekst�Del _element�_Tidsstempel�_Tre�_get_settings: Kan ikke finne sortAscendingRadioButton�f.eks. lpr:�f.eks. 1 for 1.2.1, a�fmt -w %d�gjots2: advarsel: Utvalgslisten er NULL. Hopper over tre-utvalg forandret hendelse.�gjots: innstillinger�http://bhepple.freeshell.org/gjots2�merkelapp1�merkelapp2�skrive over %s?�Utskriftkommando (kan være et skallutrykk)�tekst redigert med eksternt skriveprogram�Tekst som ikke er redigert med eksternt skriveprogram�vindu1�xterm -e vi %s������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/no.po�������������������������������������������������������������������������������0000664�0000000�0000000�00000064521�14016300235�0014330�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of gjots2.po to # Messages master file for gjots2. # Copyright (C) 2005-2006 Bob Hepple # This file is distributed under the same license as the gjots2 package. # Bob Hepple <bhepple@freeshell.org>, 2005. # msgid "" msgstr "" "Project-Id-Version: gjots2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-30 18:18+1000\n" "PO-Revision-Date: 2006-01-16 15:35+0100\n" "Last-Translator: Robert Emil Berge\n" "Language-Team: <nb@li.org>\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11\n" #: ../ui/about.ui:12 #, fuzzy msgid "Copyright Bob Hepple 2002-2020" msgstr "Copyright Bob Hepple 2002-2006" #: ../ui/about.ui:13 msgid "http://bhepple.freeshell.org/gjots2" msgstr "http://bhepple.freeshell.org/gjots2" #: ../ui/about.ui:25 msgid "\n" msgstr "" #: ../ui/fileDialog.ui:69 #, fuzzy msgid "Open file read only" msgstr "Åpne fil ..." #: ../ui/fileDialog.ui:73 msgid "To open the file in read-only mode." msgstr "" #: ../ui/findDialog.ui:8 msgid "Find & replace" msgstr "Finn og erstatt" #: ../ui/findDialog.ui:34 msgid "Find:" msgstr "Finn:" #: ../ui/findDialog.ui:47 msgid "Replace:" msgstr "Erstatt:" #: ../ui/findDialog.ui:64 msgid "String to search for" msgstr "Tekst å søke etter" #: ../ui/findDialog.ui:80 msgid "String to replace" msgstr "Tekst å erstatte med" #: ../ui/findDialog.ui:114 ../ui/gjots.ui:844 msgid "Find" msgstr "Finn" #: ../ui/findDialog.ui:130 msgid "Close" msgstr "Lukk" #: ../ui/findDialog.ui:146 msgid "Replace" msgstr "Erstatt" #: ../ui/findDialog.ui:162 msgid "Replace All" msgstr "Erstatt alle" #: ../ui/findDialog.ui:178 msgid "Cancel" msgstr "Avbryt" #: ../ui/findDialog.ui:197 msgid "Clear" msgstr "Nullstill" #: ../ui/findDialog.ui:257 msgid "Match case" msgstr "Bruk kapitalisering" #: ../ui/findDialog.ui:261 msgid "Don't ignore case" msgstr "Ikke overse store og små bokstaver" #: ../ui/findDialog.ui:271 msgid "Regular Expression" msgstr "Regulært uttrykk" #: ../ui/findDialog.ui:275 msgid "Find string is a regular expression (see 'man 7 regex')" msgstr "Søketekst er et regulært uttrykk (se man 7 regex)" #: ../ui/findDialog.ui:287 msgid "Backwards" msgstr "Bakover" #: ../ui/findDialog.ui:291 msgid "Search backwards" msgstr "Søk bakover" #: ../ui/findDialog.ui:306 msgid "Global" msgstr "Globalt" #: ../ui/findDialog.ui:310 msgid "Searches entire file not just this entry" msgstr "Søker i hele filen, ikke bare dette elementet" #: ../ui/findDialog.ui:327 msgid " Options " msgstr "Innstillinger" #: ../ui/fontDialog.ui:9 msgid "Select Font" msgstr "Velg skrifttype" #: ../ui/generalDialog.ui:9 msgid "window1" msgstr "vindu1" #: ../ui/generalDialog.ui:22 ../ui/generalDialog.ui:60 #: ../ui/generalDialog.ui:115 msgid "label1" msgstr "merkelapp1" #: ../ui/generalDialog.ui:46 msgid "label2" msgstr "merkelapp2" #: ../ui/generalDialog.ui:193 msgid "Try again" msgstr "Prøv igjen" #: ../ui/generalDialog.ui:209 msgid "Read only" msgstr "Skrivebeskyttet" #: ../ui/gjots.ui:24 msgid "_File" msgstr "" #: ../ui/gjots.ui:88 msgid "_Import" msgstr "_Importer" #: ../ui/gjots.ui:91 msgid "Import items from a gjots file" msgstr "Importer elementer fra en gjots-fil" #: ../ui/gjots.ui:99 msgid "_Export" msgstr "_Eksporter" #: ../ui/gjots.ui:102 msgid "Export selected items to a gjots file" msgstr "Eksporter valgte elementer til en gjots fil" #: ../ui/gjots.ui:135 msgid "Toggle the read-only flag if possible" msgstr "Skift flagget for skrivebeskyttelse hvis mulig" #: ../ui/gjots.ui:136 msgid "_Read-only" msgstr "_Skrivebeskyttet" #: ../ui/gjots.ui:152 #, fuzzy msgid "Exit gjots2" msgstr "Avslutt gjots" #: ../ui/gjots.ui:167 msgid "_Edit" msgstr "" #: ../ui/gjots.ui:263 #, fuzzy msgid "Find Next" msgstr "Finn" #: ../ui/gjots.ui:273 msgid "Find Previous" msgstr "" #: ../ui/gjots.ui:299 msgid "_View" msgstr "" #: ../ui/gjots.ui:307 msgid "_Show All" msgstr "Vis _alt" #: ../ui/gjots.ui:310 ../ui/gjots.ui:1085 msgid "Show all items below the current item" msgstr "Vis alle elementer under valgte element" #: ../ui/gjots.ui:318 msgid "_Hide All" msgstr "_Skjul alt" #: ../ui/gjots.ui:321 msgid "Hide all items except the top level" msgstr "Skjul alle elementer utenom øverste nivå" #: ../ui/gjots.ui:337 msgid "Toggles the main toolbar" msgstr "Skrur av/på hoved-verktøylinjen" #: ../ui/gjots.ui:338 msgid "To_p Toolbar" msgstr "Ø_verste verktøylinje" #: ../ui/gjots.ui:347 msgid "Toggles tree tool bar" msgstr "Skrur av/på tree-verktøylinjen" #: ../ui/gjots.ui:348 msgid "Tre_e Toolbar" msgstr "_Tre-verktøylinje" #: ../ui/gjots.ui:357 msgid "Show the related icon text" msgstr "Vis tilhørende ikontekst" #: ../ui/gjots.ui:358 msgid "Show _Icon Text" msgstr "Vis ikontekst" #: ../ui/gjots.ui:367 msgid "Status _Bar" msgstr "Status_linje" #: ../ui/gjots.ui:380 msgid "_Tree" msgstr "_Tre" #: ../ui/gjots.ui:388 msgid "_New Page" msgstr "_Nytt element" #: ../ui/gjots.ui:391 msgid "Create a new page" msgstr "Lag nytt element" #: ../ui/gjots.ui:400 msgid "New _Child" msgstr "Nytt _underelement" #: ../ui/gjots.ui:403 ../ui/gjots.ui:920 msgid "Create a new child" msgstr "Lag et nytt underelement" #: ../ui/gjots.ui:420 ../ui/gjots.ui:950 msgid "Move selection up" msgstr "Flytt valgte elementer opp" #: ../ui/gjots.ui:431 ../ui/gjots.ui:965 msgid "Move selection down" msgstr "Flytt valgte elementer ned" #: ../ui/gjots.ui:439 msgid "P_romote" msgstr "_Forfrem" #: ../ui/gjots.ui:442 ../ui/gjots.ui:980 msgid "Selection becomes a sibling to their parent" msgstr "Utvalg kommer på samme nivå som overelement" #: ../ui/gjots.ui:450 msgid "D_emote" msgstr "_Degrader" #: ../ui/gjots.ui:453 ../ui/gjots.ui:995 msgid "Selection becomes a child of the previous item" msgstr "Utvalg blir underelement til elementet før" #: ../ui/gjots.ui:467 msgid "_Split Item" msgstr "Del _element" #: ../ui/gjots.ui:470 msgid "Make a new item from the current selection" msgstr "Lag et nytt element fra utvalg" #: ../ui/gjots.ui:478 msgid "_Merge Items" msgstr "_Slå sammen elementer" #: ../ui/gjots.ui:481 msgid "Merge current items into the first one" msgstr "Slå sammen valgte elementer inn i det første" #: ../ui/gjots.ui:489 msgid "S_ort Tree" msgstr "So_rter treet" #: ../ui/gjots.ui:492 ../ui/gjots.ui:1100 msgid "Popup the sort tree dialog" msgstr "Åpne dialogvindu for å sortere treet" #: ../ui/gjots.ui:506 msgid "Te_xt" msgstr "Te_kst" #: ../ui/gjots.ui:514 msgid "_Format" msgstr "_Formater" #: ../ui/gjots.ui:517 msgid "Format the current paragraph" msgstr "Formater gjeldende avsnitt" #: ../ui/gjots.ui:526 msgid "_Time stamp" msgstr "_Tidsstempel" #: ../ui/gjots.ui:529 msgid "Add a time/date stamp (see preferences)" msgstr "Sett inn tid/dato (see innstillinger)" #: ../ui/gjots.ui:538 msgid "_External Edit" msgstr "_Rediger eksternt" #: ../ui/gjots.ui:541 msgid "Edit current item in an external editor" msgstr "Rediger gjeldende element i et eksternt skriveprogram" #: ../ui/gjots.ui:549 msgid "_Sort Text" msgstr "_Sorter tekst" #: ../ui/gjots.ui:552 msgid "Popup the sort text dialog" msgstr "Åpne dialogvindu for å sortere tekst" #: ../ui/gjots.ui:566 msgid "_Help" msgstr "" #: ../ui/gjots.ui:574 #, fuzzy msgid "_Read Manual" msgstr "Les manualen" #: ../ui/gjots.ui:577 msgid "Read the online manual (using gjots)" msgstr "Les manualen fra internet (med gjots)" #: ../ui/gjots.ui:621 msgid "Popup the 'Find'menu" msgstr "" #: ../ui/gjots.ui:651 msgid "Find the previous occurance" msgstr "" #: ../ui/gjots.ui:667 msgid "Find the next occurance" msgstr "" #: ../ui/gjots.ui:693 msgid "Save gjots document" msgstr "Lagre gjots-dokumentet" #: ../ui/gjots.ui:694 msgid "Save" msgstr "Lagre" #: ../ui/gjots.ui:708 msgid "Print this document" msgstr "Skriv ut dette dokumentet" #: ../ui/gjots.ui:709 ../ui/printDialog.ui:8 msgid "Print" msgstr "Skriv ut" #: ../ui/gjots.ui:738 msgid "Cut selected items" msgstr "Klipp ut valgte elementer" #: ../ui/gjots.ui:739 msgid "Cut" msgstr "Klipp ut" #: ../ui/gjots.ui:753 msgid "Copy selected items" msgstr "Kopier valgte elementer" #: ../ui/gjots.ui:754 msgid "Copy" msgstr "Kopier" #: ../ui/gjots.ui:768 msgid "Paste selected items" msgstr "Lim inn valgte elementer" #: ../ui/gjots.ui:769 msgid "Paste" msgstr "Lim inn" #: ../ui/gjots.ui:798 msgid "Wrap the current paragraph to the current line length" msgstr "Bryt gjeldene avsnitt til valgt linjelengde" #: ../ui/gjots.ui:799 msgid "Wrap" msgstr "Bryt" #: ../ui/gjots.ui:813 msgid "Invoke an external editor on the current item" msgstr "Start et eksternt skriveprogram for gjeldene element" #: ../ui/gjots.ui:814 msgid "Ext.Ed." msgstr "Ekst.prg." #: ../ui/gjots.ui:828 msgid "Add a time/date stamp (see prefs)" msgstr "Sett inn stempel for tid/dato (se innstillinger)" #: ../ui/gjots.ui:829 msgid "Date" msgstr "Dato" #: ../ui/gjots.ui:843 msgid "Popup the find and replace dialog" msgstr "Åpne dialogvinduet for finn/erstatt" #: ../ui/gjots.ui:858 msgid "Popup the sort dialog" msgstr "Åpne dialogvinduet for å sortere" #: ../ui/gjots.ui:859 ../ui/sortDialog.ui:15 msgid "Sort" msgstr "Sorter" #: ../ui/gjots.ui:873 msgid "Open gjots preferences window" msgstr "Åpne vinduet for gjots innstillinger" #: ../ui/gjots.ui:874 msgid "Prefs" msgstr "Innstillinger" #: ../ui/gjots.ui:905 msgid "Create a new item" msgstr "Lag et nytt element" #: ../ui/gjots.ui:906 ../ui/treeContextMenu.ui:45 msgid "New Page" msgstr "Nytt element" #: ../ui/gjots.ui:921 ../ui/treeContextMenu.ui:52 msgid "New Child" msgstr "Nytt underelement" #: ../ui/gjots.ui:951 msgid "Up" msgstr "Opp" #: ../ui/gjots.ui:966 msgid "Down" msgstr "Ned" #: ../ui/gjots.ui:981 ../ui/treeContextMenu.ui:74 msgid "Promote" msgstr "Forfrem" #: ../ui/gjots.ui:996 ../ui/treeContextMenu.ui:82 msgid "Demote" msgstr "Degrader" #: ../ui/gjots.ui:1025 msgid "Split the text selection into a new item" msgstr "Skill ut tekstutvalget til et nytt element" #: ../ui/gjots.ui:1026 msgid "Split Item" msgstr "Del element" #: ../ui/gjots.ui:1040 msgid "Merge selected items together" msgstr "Slå sammen valgte elementer" #: ../ui/gjots.ui:1041 ../ui/treeContextMenu.ui:89 msgid "Merge Items" msgstr "Slå sammen elementer" #: ../ui/gjots.ui:1070 msgid "Hide all items except for the top level" msgstr "Skjul alle elementer utenom øverste nivå" #: ../ui/gjots.ui:1071 ../ui/treeContextMenu.ui:103 msgid "Hide All" msgstr "Skjul alt" #: ../ui/gjots.ui:1086 ../ui/treeContextMenu.ui:96 msgid "Show All" msgstr "Vis alt" #: ../ui/gjots.ui:1101 ../ui/treeContextMenu.ui:110 ../lib/sortDialog.py:394 msgid "Sort Tree" msgstr "Sorter treet" #: ../ui/prefsDialog.ui:20 msgid "gjots: preferences" msgstr "gjots: innstillinger" #: ../ui/prefsDialog.ui:49 msgid "Choose a font for the text panel" msgstr "Velg en skrifttype for tekstpanelet" #: ../ui/prefsDialog.ui:65 msgid "Date format:" msgstr "Datoformat:" #: ../ui/prefsDialog.ui:79 #, fuzzy msgid "Format for the timestamp function (see strftime(3)) eg %F" msgstr "Format for datostempelfunksjonen (se strftime(3))" #: ../ui/prefsDialog.ui:80 msgid "%F" msgstr "%F" #: ../ui/prefsDialog.ui:99 #, fuzzy msgid "" "External program to edit a page (%s is replaced by the name of the temporary " "edit file) eg xterm -e vi %s" msgstr "" "Eksternt program for å redigere et element (%s blir byttet ut med en " "midlertidig fil for redigering)" #: ../ui/prefsDialog.ui:100 msgid "xterm -e vi %s" msgstr "xterm -e vi %s" #: ../ui/prefsDialog.ui:120 msgid "External editor" msgstr "Eksternt skriveprogram" #: ../ui/prefsDialog.ui:135 msgid "Text Line Length: " msgstr "Linjelengde for tekst:" #: ../ui/prefsDialog.ui:149 msgid "Line length for paragraph wrapping" msgstr "Linjelengde for avsnittsbryting" #: ../ui/prefsDialog.ui:172 msgid "Text formatter: " msgstr "Tekstformatering:" #: ../ui/prefsDialog.ui:184 #, fuzzy msgid "" "External program to pipe text for formatting (%d is replaced by the current " "line width) eg fmt -w %d " msgstr "" "Eksternt program for formatering (%d blir byttet ut med valgt linjelengde)" #: ../ui/prefsDialog.ui:185 msgid "fmt -w %d " msgstr "fmt -w %d" #: ../ui/prefsDialog.ui:202 msgid "Current text font" msgstr "Valgt skrifttype" #: ../ui/prefsDialog.ui:204 msgid "Courier 10 Pitch 10" msgstr "Courier 10 Pitch 10" #: ../ui/prefsDialog.ui:224 msgid "AutoSave interval:" msgstr "" #: ../ui/prefsDialog.ui:238 msgid "Seconds of inactivity to trigger an AutoSave (0 = no AutoSave)" msgstr "" #: ../ui/printDialog.ui:38 msgid "e.g. lpr: " msgstr "f.eks. lpr:" #: ../ui/printDialog.ui:54 msgid "print command (can be a shell expression)" msgstr "Utskriftkommando (kan være et skallutrykk)" #: ../ui/printDialog.ui:76 msgid " Print command " msgstr "Utskriftskommando" #: ../ui/printDialog.ui:104 msgid "Page" msgstr "Element" #: ../ui/printDialog.ui:108 msgid "Print the current page" msgstr "Skriv ut gjeldene element" #: ../ui/printDialog.ui:120 msgid "Selection" msgstr "Utvalg" #: ../ui/printDialog.ui:124 msgid "Print the selected pages or text" msgstr "Skriv ut valgte elementer eller valgt tekst" #: ../ui/printDialog.ui:137 msgid "All" msgstr "Alt" #: ../ui/printDialog.ui:141 msgid "Print the entire gjots file" msgstr "Skriv ut hele gjots-filen" #: ../ui/printDialog.ui:160 msgid " Print Range " msgstr "Utskriftsrekkevidde" #: ../ui/printDialog.ui:193 msgid "Page feeds" msgstr "Blanke forsider" #: ../ui/printDialog.ui:197 msgid "Feeds a page before every new gjots item" msgstr "Mater ut en blank side før hvert element" #: ../ui/printDialog.ui:209 msgid "Bold titles" msgstr "Fete titler" #: ../ui/printDialog.ui:212 msgid "Print the gjots item titles in bold" msgstr "Skriv ut gjots elementtitler med fet skrift" #: ../ui/printDialog.ui:224 msgid "Auto Number" msgstr "Autonumrering" #: ../ui/printDialog.ui:251 msgid "Auto-number format: " msgstr "Autonumererings-format" #: ../ui/printDialog.ui:262 msgid "eg. 1 for 1.2.1, a" msgstr "f.eks. 1 for 1.2.1, a" #: ../ui/printDialog.ui:289 msgid " Print formatting " msgstr "Utskriftsformat" #: ../ui/sortDialog.ui:43 msgid "Ascending" msgstr "Stigende" #: ../ui/sortDialog.ui:47 msgid "Sort in ascending order" msgstr "Sorter i stigende rekkefølge" #: ../ui/sortDialog.ui:58 msgid "Descending" msgstr "Synkende" #: ../ui/sortDialog.ui:62 msgid "Sort in descending order" msgstr "Sorter i synkende rekkefølge" #: ../ui/sortDialog.ui:76 msgid "Alphabetic" msgstr "Alfabetisk" #: ../ui/sortDialog.ui:80 msgid "Sort in alphabetic order" msgstr "Sorter alfabetisk" #: ../ui/sortDialog.ui:93 msgid "Numeric" msgstr "Numerisk" #: ../ui/sortDialog.ui:97 msgid "Sort in numeric order" msgstr "Sorter numerisk" #: ../ui/sortDialog.ui:119 msgid " Sort Parameters " msgstr "Sorteringsparametre" #: ../ui/sortDialog.ui:149 msgid "How many sublevels to sort (0 for none; -1 for 'all')" msgstr "Antall undernivåer som skal sorteres (0 for ingen; -1 for 'alle')" #: ../ui/sortDialog.ui:171 msgid " Sort Sublevels " msgstr "Sorter undernivåer" #: ../ui/treeContextMenu.ui:30 #, fuzzy msgid "Select _All" msgstr "Velg fil" #: ../ui/treeContextMenu.ui:117 msgid "Import" msgstr "Importer" #: ../ui/treeContextMenu.ui:124 msgid "Export" msgstr "Eksporter" #: ../gjots2:23 #, fuzzy msgid "" "Usage: gjots [OPTIONS] [FILENAME]\n" "A gtk/X11 jotter\n" "\n" "OPTIONS:\n" "-h, --help: this help\n" "-d, --debug: debug to stdout\n" "-t, --trace: trace lines as they execute\n" "-g 123x456, --geometry=123x456: initial geometry (X x Y)\n" "-p, --purge-password don't remember password\n" "-r, --readonly: no editing (or locking)\n" "-V, --version: print the version and exit\n" "\n" "FILENAME:\n" " gjots data filename (default is $HOME/.gjotsfile)\n" msgstr "" "Bruk: gjots [VALG] [FILNAVN]\n" "Et gnome-2/X11 jotter-program\n" "\n" "VALG:\n" "-h, --help: denne hjelpebeskjeden\n" "-d, --debug: feilsøkingsinformasjon til stdout\n" "-g 123x456, --geometry=123x456: vindustørelse ved programstart (X x Y)\n" "-p, --purge-password\t\t\t\tikke husk passord\n" "-r, --readonly: ingen redigering (eller låsing)\n" "-V, --version: skriv programversjon og avslutt\n" "\n" "FILNAVN:\n" "\tgjots data filenavn (standard er $HOME/.gjotsfile)\n" #: ../gjots2:89 #, python-format msgid "%s requires python%s or higher." msgstr "%s krever python%s eller høyere." #: ../gjots2:102 msgid "Use -h for help\n" msgstr "Bruk -h for hjelp\n" #: ../gjots2:116 #, python-format msgid "%s version %s" msgstr "%s versjon %s" #: ../lib/gui.py:51 ../lib/gui.py:996 msgid "Text pasted" msgstr "Limt inn tekst" #: ../lib/gui.py:179 #, python-format msgid "External formatter \"%s\" is not installed - can't format" msgstr "" "Eksternt formateringsprogram \"%s\" er ikke installert - kan ikke formatere" #: ../lib/gui.py:564 ../lib/gui.py:675 ../lib/gui.py:679 ../lib/gui.py:745 #: ../lib/gui.py:749 ../lib/gui.py:812 ../lib/gui.py:817 ../lib/gui.py:1043 #: ../lib/gui.py:1052 ../lib/gui.py:1138 ../lib/gui.py:1147 ../lib/gui.py:1183 #: ../lib/gui.py:1188 ../lib/gui.py:1219 ../lib/gui.py:1608 ../lib/gui.py:2382 #: ../lib/gui.py:2401 ../lib/gui.py:2430 ../lib/gui.py:2461 ../lib/file.py:466 #: ../lib/file.py:471 ../lib/sortDialog.py:329 ../lib/sortDialog.py:334 #: ../lib/printDialog.py:110 ../lib/printDialog.py:115 msgid "Nothing selected" msgstr "Ingenting er valgt" #: ../lib/gui.py:568 ../lib/gui.py:684 ../lib/gui.py:753 ../lib/gui.py:822 #: ../lib/gui.py:934 ../lib/gui.py:1224 ../lib/gui.py:2386 #: ../lib/sortDialog.py:345 msgid "No parent!" msgstr "Overelement finnes ikke!" #: ../lib/gui.py:572 ../lib/gui.py:719 msgid "No child!" msgstr "Underelement finnes ikke!" #: ../lib/gui.py:580 ../lib/gui.py:693 msgid "Can't go any further" msgstr "Kan ikke gå videre" #: ../lib/gui.py:616 ../lib/gui.py:840 msgid "Internal error!" msgstr "Intern feil!" #: ../lib/gui.py:757 msgid "Can't go further!" msgstr "Kan ikke gå videre!" #: ../lib/gui.py:973 msgid "Text cut" msgstr "Utklipt tekst" #: ../lib/gui.py:984 msgid "Text copied" msgstr "Kopiert tekst" #: ../lib/gui.py:1005 msgid "All text selected" msgstr "Hele den valgte teksten" #: ../lib/gui.py:1015 msgid "All tree items selected" msgstr "Alle valgte tre-elementer" #: ../lib/gui.py:1023 msgid "Nothing selected!" msgstr "Ingenting er valgt!" #: ../lib/gui.py:1047 msgid "Can't merge the root item" msgstr "Kan ikke slå sammen rot-elementet" #: ../lib/gui.py:1056 msgid "Nothing to merge" msgstr "Ingenting å slå sammen" #: ../lib/gui.py:1063 msgid "Can't merge items that have children" msgstr "Kan ikke slå sammen elementer som har underelementer" #: ../lib/gui.py:1093 #, python-format msgid "%d items merged" msgstr "%d elementer slått sammen" #: ../lib/gui.py:1142 msgid "Can't delete the root item" msgstr "Kan ikke slette rot-elementet" #: ../lib/gui.py:1175 #, python-format msgid "%d tree items cut" msgstr "%d tre-elementer klippet ut" #: ../lib/gui.py:1205 #, python-format msgid "%d tree items copied" msgstr "%d tre-elementer kopiert" #: ../lib/gui.py:1214 msgid "Nothing to paste" msgstr "Ingenting å lime inn" #: ../lib/gui.py:1237 msgid "Tree items pasted" msgstr "Tre-elementer limt inn" #: ../lib/gui.py:1258 #, fuzzy msgid "Can't write tempfile" msgstr "Kan ikke skrive" #: ../lib/gui.py:1278 #, python-format msgid "Can't run '%s'" msgstr "Kan ikke kjøre '%s'" #: ../lib/gui.py:1287 #, fuzzy msgid "Can't read tempfile " msgstr "Kan ikke lese" #: ../lib/gui.py:1293 msgid "text changed by external editor" msgstr "tekst redigert med eksternt skriveprogram" #: ../lib/gui.py:1295 msgid "text not changed by external editor" msgstr "Tekst som ikke er redigert med eksternt skriveprogram" #: ../lib/gui.py:1314 msgid ": Error" msgstr ": Feil" #: ../lib/gui.py:1327 #, python-format msgid "Can't lock file %s: already locked by process %d" msgstr "Kan ikke låse filen %s: allerede låst av prosess %d" #: ../lib/gui.py:1510 msgid ": Save?" msgstr ": Lagre?" #: ../lib/gui.py:1511 msgid "Save current work?" msgstr "Lagre forandringer?" #: ../lib/gui.py:1532 msgid "New file" msgstr "Ny fil" #: ../lib/gui.py:1556 msgid "Open file ..." msgstr "Åpne fil ..." #: ../lib/gui.py:1568 msgid "No changes to save" msgstr "Ingen forandringer å lagre" #: ../lib/gui.py:1572 ../lib/gui.py:1593 msgid "Saved." msgstr "Lagret." #: ../lib/gui.py:1574 ../lib/gui.py:1595 ../lib/file.py:456 msgid "Not saved." msgstr "Ikke lagret." #: ../lib/gui.py:1589 msgid "Nothing to save" msgstr "Ingenting å lagre" #: ../lib/gui.py:1591 ../lib/file.py:693 msgid "Save as ..." msgstr "Lagre som ..." #: ../lib/gui.py:1605 msgid "Import from ..." msgstr "Importer fra ..." #: ../lib/gui.py:1616 msgid "Export to ..." msgstr "Eksporter til ..." #: ../lib/gui.py:1930 ../lib/gui.py:1933 #, python-format msgid "%s: Warning: opening gjots2 manual from %s\n" msgstr "%s: Advarser: åpner gjots2-manualen fra %s\n" #: ../lib/gui.py:2317 msgid "" "gjots2: warning: selection list is NULL. Skipping tree selection changed \n" "event." msgstr "" "gjots2: advarsel: Utvalgslisten er NULL. Hopper over tre-utvalg forandret\n" "hendelse." #: ../lib/gui.py:2390 msgid "Can't go further" msgstr "Kan ikke gå videre" #: ../lib/gui.py:2419 msgid "Tree is empty!" msgstr "Treet er tomt!" #: ../lib/gui.py:2716 msgid "Bad regular expression" msgstr "Feilaktig regulært uttrykk" #: ../lib/gui.py:2808 #, python-format msgid "%s: bad geometry specification: %s\n" msgstr "%s: feil spesifikasjon av vindustørelse: %s\n" #: ../lib/gui.py:2899 msgid "New...>>>" msgstr "Ny...>>>" #: ../lib/gui.py:2936 msgid "Install gtksourceview to enable undo/redo" msgstr "" #: ../lib/gui.py:3102 msgid ": version " msgstr ": versjon " #: ../lib/find.py:70 ../lib/find.py:93 msgid "Not found" msgstr "Ikke funnet" #: ../lib/find.py:72 msgid "Found" msgstr "Funnet" #: ../lib/find.py:96 msgid "Replace?" msgstr "Erstatt?" #: ../lib/find.py:113 #, python-format msgid "%d substitutions" msgstr "%d erstatninger" #: ../lib/file.py:255 msgid "Enter password for " msgstr "Skriv inn passord for" #: ../lib/file.py:257 #, fuzzy msgid ": Enter Password" msgstr "gjots: Skriv inn passord" #: ../lib/file.py:259 msgid "Password: " msgstr "Passord:" #: ../lib/file.py:260 msgid "Confirm: " msgstr "Bekreft:" #: ../lib/file.py:268 msgid "Password was not confirmed" msgstr "Passordet ble ikke bekreftet" #: ../lib/file.py:275 msgid "Could not find the ccrypt program - please install it and try again" msgstr "Kunne ikke finne programmet ccrypt - installer det og forsøk igjen" #: ../lib/file.py:308 msgid "" "Neither gpg2 nor gpg are available - please install one (perhaps package " "gnupg2) and try again" msgstr "" #: ../lib/file.py:328 #, fuzzy msgid "No openssl program - please install it and try again" msgstr "Kunne ikke finne programmet openssl - installer det og forsøk igjen" #: ../lib/file.py:354 #, fuzzy msgid "No org2gjots program - please install it and try again" msgstr "Kunne ikke finne programmet openssl - installer det og forsøk igjen" #: ../lib/file.py:412 msgid "Can't open \"" msgstr "Kan ikke opne \"" #: ../lib/file.py:415 msgid "Bad password" msgstr "Feilaktig passord" #: ../lib/file.py:418 msgid "File cannot be locked" msgstr "Filen kan ikke låses" #: ../lib/file.py:431 ../lib/file.py:489 msgid "failed!" msgstr "" #: ../lib/file.py:457 msgid "Can't write to " msgstr "Kan ikke skrive til" #: ../lib/file.py:460 msgid "Can't lock file" msgstr "Kan ikke låse filen" #: ../lib/file.py:597 #, python-format msgid "%s is not readable" msgstr "%s er ikke lesbar" #: ../lib/file.py:613 #, python-format msgid "%s: no permission" msgstr "%s: ikke tilgang" #: ../lib/file.py:615 #, python-format msgid "%s: locked by process number %d" msgstr "%s: låst av prosess nummer %d" #: ../lib/file.py:617 #, fuzzy msgid ": can't lock file." msgstr "gjots: kan ikke låse fil." #: ../lib/file.py:705 msgid "That file is already open!" msgstr "Den filen er allerede åpen!" #: ../lib/file.py:713 ../lib/file.py:787 #, fuzzy msgid ": file has changed" msgstr "gjots: %s finnes allerede." #: ../lib/file.py:714 #, python-format msgid "File changed since it was read - copied to %s " msgstr "" #: ../lib/file.py:731 #, python-format msgid "%s is locked by pid %d" msgstr "%s er låst av pid %d" #: ../lib/file.py:735 msgid "Can't make a lockfile in " msgstr "Kan ikke lage en låsefil i" #: ../lib/file.py:748 #, python-format msgid "%s is not writable" msgstr "%s er ikke skrivbar" #: ../lib/file.py:751 #, fuzzy, python-format msgid ": %s already exists." msgstr "gjots: %s finnes allerede." #: ../lib/file.py:752 #, python-format msgid "overwrite %s?" msgstr "skrive over %s?" #: ../lib/file.py:788 #, python-format msgid "File changed since it was read - so it was copied to %s " msgstr "" #: ../lib/sortDialog.py:125 msgid "_get_settings: Cant find sortAscendingRadioButton" msgstr "_get_settings: Kan ikke finne sortAscendingRadioButton" #: ../lib/sortDialog.py:165 msgid "Internal error" msgstr "Intern feil" #: ../lib/sortDialog.py:303 msgid "Nothing to sort!" msgstr "Ingenting å sortere!" #: ../lib/sortDialog.py:398 msgid "Sort Text" msgstr "Sorter tekst" #~ msgid "Exit gjots" #~ msgstr "Avslutt gjots" #~ msgid "Create a new child " #~ msgstr "Lag et nytt underelement" #, fuzzy #~ msgid "About gjots2" #~ msgstr "Avslutt gjots" #, fuzzy #~ msgid " Find: " #~ msgstr "Finn:" #~ msgid "abcdefghijk ABCDEFGHIJK" #~ msgstr "abcdefghijk ABCDEFGHIJK" #, fuzzy, python-format #~ msgid "%s requires pygtk-%s.\n" #~ msgstr "%s krever pygtk-%s." #~ msgid "not initialised" #~ msgstr "ikke initialisert" #~ msgid "pygtk-2.2 is required for this application!" #~ msgstr "pygtk-2.2 kreves for dette programmet!" #~ msgid "Store and organise your random notes" #~ msgstr "Organiser og ta vare på dine uordnede notater" #~ msgid "Gjots2 Jotter" #~ msgstr "Gjots2 Jotter" #~ msgid "gjots" #~ msgstr "gjots" #~ msgid "_New" #~ msgstr "_Ny" #~ msgid "_Quit" #~ msgstr "_Avslutt" #~ msgid "_Toolbars" #~ msgstr "_Verktøylinjer" #~ msgid "_Up" #~ msgstr "_Opp" #~ msgid "_Down" #~ msgstr "_Ned" #~ msgid "Create a new gjots document" #~ msgstr "Lag et nytt gjots-dokument" #~ msgid "Open an existing gjots document" #~ msgstr "Åpne et eksisterende gjots-dokument" #~ msgid "Open" #~ msgstr "Åpne" #~ msgid "Back" #~ msgstr "Tilbake" #~ msgid "Forward" #~ msgstr "Fram" #~ msgid "translator_credits" #~ msgstr "oversetter_medvirkning" #~ msgid "%s: Warning: running modules from %s\n" #~ msgstr "%s: Advarsel: kjører moduler fra %s\n" #~ msgid "Could not find the gpg program - please install it and try again" #~ msgstr "Kunne ikke finne programmet gpg - installer det og forsøk igjen" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/no/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0013760�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/no/LC_MESSAGES/���������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0015545�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/no/LC_MESSAGES/gjots2.mo������������������������������������������������������������0000664�0000000�0000000�00000034105�14016300235�0017315�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������,��3��<�������� ��� �� ��������!�����1�����D�����V�����g�����j�����z�������������������������������� �����+�����#���I�����m����������������� �����'�����!�������������������� ���2�� ���=�� ���G�����S�� ���h�� ���r������� ������������������������������0��������6��$���P�����u�� �������������������� ��������������� ���������������C��������V�����j�����}�������������������������������� ���������� ���������������'��� �����5�����I��%���P�� ���v������������7�����(��������������������7���'�����_�����e�����������������'�����#�����5�������������!�����1�����P�����_��-���o��"�����*����� ����� �����&��������)�����G�����[�� ���m�����w�� ���������� ���������� ����� ����� ����� ���������������������������� �����0�����A�� ���I�����W�����u�����~�� ���������� ���������������!������������������"�����=�����C�����I�����`��#���|�� ��������������� �����$�������� ������� ���'�����3�����<�� ���E�����P�� ���U�����a�����t������������(����� ����� �����.�����+��������:�����C��%���S�����y������� ����� ������������������������� ��� ��(��� �� ���A �����M �����_ �����t �����z �� ��� ����� ����� �� ��� ����� �� ��� ��%��� ����� !�����&!�� ���<!�����J!�����Y!�� ���k!�����u!�����x!�����!��5���!�����!�����!�����!�� ���!�����!�� ���!�� ���"�� ��� "�� ���"�� ���!"�� ���,"�� ���8"�����D"��1���J"�� ���|"�����"�� ���"��P���"�����"��#��� #�����-#�����4#�� ���;#��)���I#�����s#��#���#�����#�����#����#�� ���$�����$�����%�����%�����*%�����>%�����R%�����U%�����p%�����%�����%�����%�����%�����%��!���%�� ���&��,���!&��-���N&�����|&�����&�����&�����&�� ���&��%���&��0���&�����'�����"'�����:'�� ���T'�����_'�� ���h'�����v'�����'�����'�����'�� ���'�����'�����'�����(�����(�����*(��5���?(�����u(��5���(��"���(�����(�����(�����)�����#)��#���*)�� ���N)�����X)�����])�����f)�����m)��C���)�����)�����)�����)����� *�����*�����,*�����5*�� ���O*�����Y*�� ���^*�����j*�����s*��#���|*�����*��5���*�����*�� ���*��+���*�����&+�� ���8+�����B+��I���Y+��)���+�����+�����+�����+��3���+�����,,�����2,�����M,�����T,�� ���\,��*���f,��*���,��B���,�����,�����-��#���-�� ���=-�� ���I-��4���V-�����-�����-�����-�����-��.���-�����#.�����@.�����[.�����v.�� ���.�����.�����.�����.�����.�����.�����.�� ���/�� ���/����� /�����3/�����G/�����`/�����v/�����/�����/�� ���/��%���/�����/�����/�����/�����/�����0�����#0�����+0��$���D0��"���i0��&���0��&���0�� ���0�����0�����0����� 1��+���%1��+���Q1�����}1�����1�����1��%���1�����1�����1�� ���1�����1�����2�� ���2�����2�� ���"2�����02�����D2�����[2�� ���c2��.���p2�����2�����2��+���2��-���2�����3�� ���3��'���&3�����N3�����h3�� ���o3�� ���|3�����3�����3�����3�����3�� ���3��*���3�� ���4�����+4�����A4�����V4�����]4�� ���t4�� ���4�����4�����4�����4�����4��.���4��!���5�� ���75�����X5�����k5�����z5�� ���5�����5�����5�����5��+���5�� ���5�����5�� ���6�� ��� 6�� ���6�����!6�� ���86�����F6�����W6�� ���`6�� ���n6�� ���{6�����6��6���6�� ���6�����6�� ���6��S���6�����D7��#���Y7�� ���}7�� ���7�����7��+���7��)���7��5���7�����/8�����68�����y���Z������������������������!��� ���C��������������Y���u������������� ����������������������A�������d���?���U���x���g��� ���"���F��������������p������/������*���������m������������������������������������=���;���6������+�������������c�������������b���4������0�������������������������������������������������������@������������������������������ ���,���]�����������'��������������3��������������&���9����������G��������������������n���l������L��������������������q������)����������w�����������������������5���������������������V���������������t������������ ���B������\���}������-������H���J�������������R�������P������>�����������f������o���Q����������������I���S���M�����������������z��������������������W���������������������������:�������������������� ������8�������7������������������������������T���j���1���������������.���{����������N�����������[�������e�������D���k���������������������������v���h�������~�����������������_���r�������i���$���������������K���#�������O�������������������������s������������|���2���E������`�������������������X�����������<���%���������������a����������^���(���� Options � Print Range � Print command � Print formatting � Sort Parameters � Sort Sublevels �%F�%d items merged�%d substitutions�%d tree items copied�%d tree items cut�%s is locked by pid %d�%s is not readable�%s is not writable�%s requires python%s or higher.�%s version %s�%s: Warning: opening gjots2 manual from %s �%s: bad geometry specification: %s �%s: locked by process number %d�%s: no permission�: Error�: Save?�: version �Add a time/date stamp (see preferences)�Add a time/date stamp (see prefs)�All�All text selected�All tree items selected�Alphabetic�Ascending�Auto Number�Auto-number format: �Backwards�Bad password�Bad regular expression�Bold titles�Can't delete the root item�Can't go any further�Can't go further�Can't go further!�Can't lock file�Can't lock file %s: already locked by process %d�Can't make a lockfile in �Can't merge items that have children�Can't merge the root item�Can't open "�Can't run '%s'�Can't write to �Cancel�Choose a font for the text panel�Clear�Close�Confirm: �Copy�Copy selected items�Could not find the ccrypt program - please install it and try again�Courier 10 Pitch 10�Create a new child�Create a new item�Create a new page�Current text font�Cut�Cut selected items�D_emote�Date�Date format:�Demote�Descending�Don't ignore case�Down�Edit current item in an external editor�Enter password for �Export�Export selected items to a gjots file�Export to ...�Ext.Ed.�External editor�External formatter "%s" is not installed - can't format�Feeds a page before every new gjots item�File cannot be locked�Find�Find & replace�Find string is a regular expression (see 'man 7 regex')�Find:�Format the current paragraph�Found�Global�Hide All�Hide all items except for the top level�Hide all items except the top level�How many sublevels to sort (0 for none; -1 for 'all')�Import�Import from ...�Import items from a gjots file�Internal error�Internal error!�Invoke an external editor on the current item�Line length for paragraph wrapping�Make a new item from the current selection�Match case�Merge Items�Merge current items into the first one�Merge selected items together�Move selection down�Move selection up�New Child�New Page�New _Child�New file�New...>>>�No changes to save�No child!�No parent!�Not found�Not saved.�Nothing selected�Nothing selected!�Nothing to merge�Nothing to paste�Nothing to save�Nothing to sort!�Numeric�Open file ...�Open gjots preferences window�P_romote�Page�Page feeds�Password was not confirmed�Password: �Paste�Paste selected items�Popup the find and replace dialog�Popup the sort dialog�Popup the sort text dialog�Popup the sort tree dialog�Prefs�Print�Print the current page�Print the entire gjots file�Print the gjots item titles in bold�Print the selected pages or text�Print this document�Promote�Read only�Read the online manual (using gjots)�Regular Expression�Replace�Replace All�Replace:�Replace?�S_ort Tree�Save�Save as ...�Save current work?�Save gjots document�Saved.�Search backwards�Searches entire file not just this entry�Select Font�Selection�Selection becomes a child of the previous item�Selection becomes a sibling to their parent�Show All�Show _Icon Text�Show all items below the current item�Show the related icon text�Sort�Sort Text�Sort Tree�Sort in alphabetic order�Sort in ascending order�Sort in descending order�Sort in numeric order�Split Item�Split the text selection into a new item�Status _Bar�String to replace�String to search for�Te_xt�Text Line Length: �Text copied�Text cut�Text formatter: �Text pasted�That file is already open!�To_p Toolbar�Toggle the read-only flag if possible�Toggles the main toolbar�Toggles tree tool bar�Tre_e Toolbar�Tree is empty!�Tree items pasted�Try again�Up�Use -h for help �Wrap�Wrap the current paragraph to the current line length�_Export�_External Edit�_Format�_Hide All�_Import�_Merge Items�_New Page�_Read-only�_Show All�_Sort Text�_Split Item�_Time stamp�_Tree�_get_settings: Cant find sortAscendingRadioButton�e.g. lpr: �eg. 1 for 1.2.1, a�fmt -w %d �gjots2: warning: selection list is NULL. Skipping tree selection changed event.�gjots: preferences�http://bhepple.freeshell.org/gjots2�label1�label2�overwrite %s?�print command (can be a shell expression)�text changed by external editor�text not changed by external editor�window1�xterm -e vi %s�Project-Id-Version: gjots2 Report-Msgid-Bugs-To: PO-Revision-Date: 2006-01-16 15:35+0100 Last-Translator: Robert Emil Berge Language-Team: <nb@li.org> Language: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: KBabel 1.11 �Innstillinger�Utskriftsrekkevidde�Utskriftskommando�Utskriftsformat�Sorteringsparametre�Sorter undernivåer�%F�%d elementer slått sammen�%d erstatninger�%d tre-elementer kopiert�%d tre-elementer klippet ut�%s er låst av pid %d�%s er ikke lesbar�%s er ikke skrivbar�%s krever python%s eller høyere.�%s versjon %s�%s: Advarser: åpner gjots2-manualen fra %s �%s: feil spesifikasjon av vindustørelse: %s �%s: låst av prosess nummer %d�%s: ikke tilgang�: Feil�: Lagre?�: versjon �Sett inn tid/dato (see innstillinger)�Sett inn stempel for tid/dato (se innstillinger)�Alt�Hele den valgte teksten�Alle valgte tre-elementer�Alfabetisk�Stigende�Autonumrering�Autonumererings-format�Bakover�Feilaktig passord�Feilaktig regulært uttrykk�Fete titler�Kan ikke slette rot-elementet�Kan ikke gå videre�Kan ikke gå videre�Kan ikke gå videre!�Kan ikke låse filen�Kan ikke låse filen %s: allerede låst av prosess %d�Kan ikke lage en låsefil i�Kan ikke slå sammen elementer som har underelementer�Kan ikke slå sammen rot-elementet�Kan ikke opne "�Kan ikke kjøre '%s'�Kan ikke skrive til�Avbryt�Velg en skrifttype for tekstpanelet�Nullstill�Lukk�Bekreft:�Kopier�Kopier valgte elementer�Kunne ikke finne programmet ccrypt - installer det og forsøk igjen�Courier 10 Pitch 10�Lag et nytt underelement�Lag et nytt element�Lag nytt element�Valgt skrifttype�Klipp ut�Klipp ut valgte elementer�_Degrader�Dato�Datoformat:�Degrader�Synkende�Ikke overse store og små bokstaver�Ned�Rediger gjeldende element i et eksternt skriveprogram�Skriv inn passord for�Eksporter�Eksporter valgte elementer til en gjots fil�Eksporter til ...�Ekst.prg.�Eksternt skriveprogram�Eksternt formateringsprogram "%s" er ikke installert - kan ikke formatere�Mater ut en blank side før hvert element�Filen kan ikke låses�Finn�Finn og erstatt�Søketekst er et regulært uttrykk (se man 7 regex)�Finn:�Formater gjeldende avsnitt�Funnet�Globalt�Skjul alt�Skjul alle elementer utenom øverste nivå�Skjul alle elementer utenom øverste nivå�Antall undernivåer som skal sorteres (0 for ingen; -1 for 'alle')�Importer�Importer fra ...�Importer elementer fra en gjots-fil�Intern feil�Intern feil!�Start et eksternt skriveprogram for gjeldene element�Linjelengde for avsnittsbryting�Lag et nytt element fra utvalg�Bruk kapitalisering�Slå sammen elementer�Slå sammen valgte elementer inn i det første�Slå sammen valgte elementer�Flytt valgte elementer ned�Flytt valgte elementer opp�Nytt underelement�Nytt element�Nytt _underelement�Ny fil�Ny...>>>�Ingen forandringer å lagre�Underelement finnes ikke!�Overelement finnes ikke!�Ikke funnet�Ikke lagret.�Ingenting er valgt�Ingenting er valgt!�Ingenting å slå sammen�Ingenting å lime inn�Ingenting å lagre�Ingenting å sortere!�Numerisk�Åpne fil ...�Åpne vinduet for gjots innstillinger�_Forfrem�Element�Blanke forsider�Passordet ble ikke bekreftet�Passord:�Lim inn�Lim inn valgte elementer�Åpne dialogvinduet for finn/erstatt�Åpne dialogvinduet for å sortere�Åpne dialogvindu for å sortere tekst�Åpne dialogvindu for å sortere treet�Innstillinger�Skriv ut�Skriv ut gjeldene element�Skriv ut hele gjots-filen�Skriv ut gjots elementtitler med fet skrift�Skriv ut valgte elementer eller valgt tekst�Skriv ut dette dokumentet�Forfrem�Skrivebeskyttet�Les manualen fra internet (med gjots)�Regulært uttrykk�Erstatt�Erstatt alle�Erstatt:�Erstatt?�So_rter treet�Lagre�Lagre som ...�Lagre forandringer?�Lagre gjots-dokumentet�Lagret.�Søk bakover�Søker i hele filen, ikke bare dette elementet�Velg skrifttype�Utvalg�Utvalg blir underelement til elementet før�Utvalg kommer på samme nivå som overelement�Vis alt�Vis ikontekst�Vis alle elementer under valgte element�Vis tilhørende ikontekst�Sorter�Sorter tekst�Sorter treet�Sorter alfabetisk�Sorter i stigende rekkefølge�Sorter i synkende rekkefølge�Sorter numerisk�Del element�Skill ut tekstutvalget til et nytt element�Status_linje�Tekst å erstatte med�Tekst å søke etter�Te_kst�Linjelengde for tekst:�Kopiert tekst�Utklipt tekst�Tekstformatering:�Limt inn tekst�Den filen er allerede åpen!�Ø_verste verktøylinje�Skift flagget for skrivebeskyttelse hvis mulig�Skrur av/på hoved-verktøylinjen�Skrur av/på tree-verktøylinjen�_Tre-verktøylinje�Treet er tomt!�Tre-elementer limt inn�Prøv igjen�Opp�Bruk -h for hjelp �Bryt�Bryt gjeldene avsnitt til valgt linjelengde�_Eksporter�_Rediger eksternt�_Formater�_Skjul alt�_Importer�_Slå sammen elementer�_Nytt element�_Skrivebeskyttet�Vis _alt�_Sorter tekst�Del _element�_Tidsstempel�_Tre�_get_settings: Kan ikke finne sortAscendingRadioButton�f.eks. lpr:�f.eks. 1 for 1.2.1, a�fmt -w %d�gjots2: advarsel: Utvalgslisten er NULL. Hopper over tre-utvalg forandret hendelse.�gjots: innstillinger�http://bhepple.freeshell.org/gjots2�merkelapp1�merkelapp2�skrive over %s?�Utskriftkommando (kan være et skallutrykk)�tekst redigert med eksternt skriveprogram�Tekst som ikke er redigert med eksternt skriveprogram�vindu1�xterm -e vi %s������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/ru.po�������������������������������������������������������������������������������0000664�0000000�0000000�00000077207�14016300235�0014347�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Messages master file for gjots2. # Copyright (C) 2005-2006 Bob Hepple # This file is distributed under the same license as the gjots2 package. # Bob Hepple <bhepple@freeshell.org>, 2005. # # Sergey Bezdenezhnyh <sib-mail@mtu-net.ru>, 2006 msgid "" msgstr "" "Project-Id-Version: gjots 2.3.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-30 18:18+1000\n" "PO-Revision-Date: 2006-01-22 11:47+0300\n" "Last-Translator: Sergey Bezdenezhnyh <sib-mail@mtu-net.ru>\n" "Language-Team: Russian <ru@li.org>\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/about.ui:12 #, fuzzy msgid "Copyright Bob Hepple 2002-2020" msgstr "Copyright Bob Hepple 2002-2006" #: ../ui/about.ui:13 msgid "http://bhepple.freeshell.org/gjots2" msgstr "http://bhepple.freeshell.org/gjots2" #: ../ui/about.ui:25 msgid "\n" msgstr "" #: ../ui/fileDialog.ui:69 #, fuzzy msgid "Open file read only" msgstr "Открыть файл ..." #: ../ui/fileDialog.ui:73 msgid "To open the file in read-only mode." msgstr "" #: ../ui/findDialog.ui:8 msgid "Find & replace" msgstr "Найти и заменить" #: ../ui/findDialog.ui:34 msgid "Find:" msgstr "Найти:" #: ../ui/findDialog.ui:47 msgid "Replace:" msgstr "Заменить:" #: ../ui/findDialog.ui:64 msgid "String to search for" msgstr "Строка для поиска" #: ../ui/findDialog.ui:80 msgid "String to replace" msgstr "Строка для замены" #: ../ui/findDialog.ui:114 ../ui/gjots.ui:844 msgid "Find" msgstr "Найти" #: ../ui/findDialog.ui:130 msgid "Close" msgstr "Закрыть" #: ../ui/findDialog.ui:146 msgid "Replace" msgstr "Заменить" #: ../ui/findDialog.ui:162 msgid "Replace All" msgstr "Заменить все" #: ../ui/findDialog.ui:178 msgid "Cancel" msgstr "Отменить" #: ../ui/findDialog.ui:197 msgid "Clear" msgstr "Отчистить" #: ../ui/findDialog.ui:257 msgid "Match case" msgstr "Учитывать регистр" #: ../ui/findDialog.ui:261 msgid "Don't ignore case" msgstr "Не игнорировать регистр букв" #: ../ui/findDialog.ui:271 msgid "Regular Expression" msgstr "Только полные слова" #: ../ui/findDialog.ui:275 msgid "Find string is a regular expression (see 'man 7 regex')" msgstr "Искать только в полных строках (см. 'man 7 regex')" #: ../ui/findDialog.ui:287 msgid "Backwards" msgstr "Назад" #: ../ui/findDialog.ui:291 msgid "Search backwards" msgstr "Искать назад" #: ../ui/findDialog.ui:306 msgid "Global" msgstr "Искать везде" #: ../ui/findDialog.ui:310 msgid "Searches entire file not just this entry" msgstr "Искать во всем файле, а не только на этой странице" #: ../ui/findDialog.ui:327 msgid " Options " msgstr " Параметры " #: ../ui/fontDialog.ui:9 msgid "Select Font" msgstr "Выбор шрифта" #: ../ui/generalDialog.ui:9 msgid "window1" msgstr "window1" #: ../ui/generalDialog.ui:22 ../ui/generalDialog.ui:60 #: ../ui/generalDialog.ui:115 msgid "label1" msgstr "label1" #: ../ui/generalDialog.ui:46 msgid "label2" msgstr "label2" #: ../ui/generalDialog.ui:193 msgid "Try again" msgstr "Попробовать снова" #: ../ui/generalDialog.ui:209 msgid "Read only" msgstr "Только для чтения" #: ../ui/gjots.ui:24 msgid "_File" msgstr "" #: ../ui/gjots.ui:88 msgid "_Import" msgstr "_Импортировать" #: ../ui/gjots.ui:91 msgid "Import items from a gjots file" msgstr "Импортировать элемент из файла gjots " #: ../ui/gjots.ui:99 msgid "_Export" msgstr "_Экспорт" #: ../ui/gjots.ui:102 msgid "Export selected items to a gjots file" msgstr "Экспортировать выбранный элемент в другой файл gjots " #: ../ui/gjots.ui:135 msgid "Toggle the read-only flag if possible" msgstr "Если возможно, включить флаг \"только чтение\"" #: ../ui/gjots.ui:136 msgid "_Read-only" msgstr "_Только для чтения" #: ../ui/gjots.ui:152 #, fuzzy msgid "Exit gjots2" msgstr "Покинуть gjots" #: ../ui/gjots.ui:167 msgid "_Edit" msgstr "" #: ../ui/gjots.ui:263 #, fuzzy msgid "Find Next" msgstr "Найти" #: ../ui/gjots.ui:273 msgid "Find Previous" msgstr "" #: ../ui/gjots.ui:299 msgid "_View" msgstr "" #: ../ui/gjots.ui:307 msgid "_Show All" msgstr "_Показать все" #: ../ui/gjots.ui:310 ../ui/gjots.ui:1085 msgid "Show all items below the current item" msgstr "Показать все элементы под выбранным элементом" #: ../ui/gjots.ui:318 msgid "_Hide All" msgstr "Скр_ыть все" #: ../ui/gjots.ui:321 msgid "Hide all items except the top level" msgstr "Скрыть все элементы, за исключением корневого" #: ../ui/gjots.ui:337 msgid "Toggles the main toolbar" msgstr "Изменить видимость главной панели инструментов" #: ../ui/gjots.ui:338 msgid "To_p Toolbar" msgstr "Главная _панель" #: ../ui/gjots.ui:347 msgid "Toggles tree tool bar" msgstr "Изменить видимость панели инструментов дерева" #: ../ui/gjots.ui:348 msgid "Tre_e Toolbar" msgstr "Панель _дерева элементов" #: ../ui/gjots.ui:357 msgid "Show the related icon text" msgstr "Показывать текст под иконкой" #: ../ui/gjots.ui:358 msgid "Show _Icon Text" msgstr "Показать текст _кнопок" #: ../ui/gjots.ui:367 msgid "Status _Bar" msgstr "Строка _состояния" #: ../ui/gjots.ui:380 msgid "_Tree" msgstr "_Дерево" #: ../ui/gjots.ui:388 msgid "_New Page" msgstr "_Новая страница" #: ../ui/gjots.ui:391 msgid "Create a new page" msgstr "Создать новую страницу" #: ../ui/gjots.ui:400 msgid "New _Child" msgstr "Новый _подэлемент" #: ../ui/gjots.ui:403 ../ui/gjots.ui:920 msgid "Create a new child" msgstr "Создать новый дочерний элемент" #: ../ui/gjots.ui:420 ../ui/gjots.ui:950 msgid "Move selection up" msgstr "Переместить выбранный элемент вверх" #: ../ui/gjots.ui:431 ../ui/gjots.ui:965 msgid "Move selection down" msgstr "Переместить выбранный элемент вниз" #: ../ui/gjots.ui:439 msgid "P_romote" msgstr "По_высить" #: ../ui/gjots.ui:442 ../ui/gjots.ui:980 msgid "Selection becomes a sibling to their parent" msgstr "Поднять выбранный элемент до уровня родителя" #: ../ui/gjots.ui:450 msgid "D_emote" msgstr "По_низить" #: ../ui/gjots.ui:453 ../ui/gjots.ui:995 msgid "Selection becomes a child of the previous item" msgstr "Сделать выбранный элемент дочерним предыдущему" #: ../ui/gjots.ui:467 msgid "_Split Item" msgstr "_Разбить элемент" #: ../ui/gjots.ui:470 msgid "Make a new item from the current selection" msgstr "Создать новый элемент из выделенного" #: ../ui/gjots.ui:478 msgid "_Merge Items" msgstr "_Объединить элементы" #: ../ui/gjots.ui:481 msgid "Merge current items into the first one" msgstr "Объединить выбранные элементы с первым выбранным" #: ../ui/gjots.ui:489 msgid "S_ort Tree" msgstr "Отсор_тировать дерево" #: ../ui/gjots.ui:492 ../ui/gjots.ui:1100 msgid "Popup the sort tree dialog" msgstr "Показать диалог сортировки" #: ../ui/gjots.ui:506 msgid "Te_xt" msgstr "Те_кст" #: ../ui/gjots.ui:514 msgid "_Format" msgstr "_Форматировать" #: ../ui/gjots.ui:517 msgid "Format the current paragraph" msgstr "Форматировать текущий параграф" #: ../ui/gjots.ui:526 msgid "_Time stamp" msgstr "_Дата" #: ../ui/gjots.ui:529 msgid "Add a time/date stamp (see preferences)" msgstr "Добавить время/дату (см. параметры)" #: ../ui/gjots.ui:538 msgid "_External Edit" msgstr "_Внешний редактор" #: ../ui/gjots.ui:541 msgid "Edit current item in an external editor" msgstr "Редактировать выбранный элемент во внешнем редакторе" #: ../ui/gjots.ui:549 msgid "_Sort Text" msgstr "_Сортировать текст" #: ../ui/gjots.ui:552 msgid "Popup the sort text dialog" msgstr "Показать диалог сортировки текста" #: ../ui/gjots.ui:566 msgid "_Help" msgstr "" #: ../ui/gjots.ui:574 #, fuzzy msgid "_Read Manual" msgstr "_Читать руководство" #: ../ui/gjots.ui:577 msgid "Read the online manual (using gjots)" msgstr "Читать инструкцию в сети (используя gjots)" #: ../ui/gjots.ui:621 msgid "Popup the 'Find'menu" msgstr "" #: ../ui/gjots.ui:651 msgid "Find the previous occurance" msgstr "" #: ../ui/gjots.ui:667 msgid "Find the next occurance" msgstr "" #: ../ui/gjots.ui:693 msgid "Save gjots document" msgstr "Сохранить документ gjots" #: ../ui/gjots.ui:694 msgid "Save" msgstr "Сохранить" #: ../ui/gjots.ui:708 msgid "Print this document" msgstr "Напечатать этот документ" #: ../ui/gjots.ui:709 ../ui/printDialog.ui:8 msgid "Print" msgstr "Напечатать" #: ../ui/gjots.ui:738 msgid "Cut selected items" msgstr "Вырезать выделенные элементы" #: ../ui/gjots.ui:739 msgid "Cut" msgstr "Вырезать" #: ../ui/gjots.ui:753 msgid "Copy selected items" msgstr "Копировать выделенные элементы" #: ../ui/gjots.ui:754 msgid "Copy" msgstr "Копировать" #: ../ui/gjots.ui:768 msgid "Paste selected items" msgstr "Вставить выделенные элементы" #: ../ui/gjots.ui:769 msgid "Paste" msgstr "Вставить" #: ../ui/gjots.ui:798 msgid "Wrap the current paragraph to the current line length" msgstr "Выровнять параграф по длине строки " #: ../ui/gjots.ui:799 msgid "Wrap" msgstr "Перенос" #: ../ui/gjots.ui:813 msgid "Invoke an external editor on the current item" msgstr "Запустить внешний редактор для редактирования этой страницы" #: ../ui/gjots.ui:814 msgid "Ext.Ed." msgstr "Внешн.ред." #: ../ui/gjots.ui:828 msgid "Add a time/date stamp (see prefs)" msgstr "Добавить время/дату (см. параметры)" #: ../ui/gjots.ui:829 msgid "Date" msgstr "Дата" #: ../ui/gjots.ui:843 msgid "Popup the find and replace dialog" msgstr "Показать диалог \"Найти и заменить\"" #: ../ui/gjots.ui:858 msgid "Popup the sort dialog" msgstr "Показать диалог сортировки" #: ../ui/gjots.ui:859 ../ui/sortDialog.ui:15 msgid "Sort" msgstr "Сортировать" #: ../ui/gjots.ui:873 msgid "Open gjots preferences window" msgstr "Открыть окно параметров gjots" #: ../ui/gjots.ui:874 msgid "Prefs" msgstr "Параметры" #: ../ui/gjots.ui:905 msgid "Create a new item" msgstr "Создать новый элемент" #: ../ui/gjots.ui:906 ../ui/treeContextMenu.ui:45 msgid "New Page" msgstr "Новая страница" #: ../ui/gjots.ui:921 ../ui/treeContextMenu.ui:52 msgid "New Child" msgstr "Новый подэлемент" #: ../ui/gjots.ui:951 msgid "Up" msgstr "Вверх" #: ../ui/gjots.ui:966 msgid "Down" msgstr "Вниз" #: ../ui/gjots.ui:981 ../ui/treeContextMenu.ui:74 msgid "Promote" msgstr "Повысить" #: ../ui/gjots.ui:996 ../ui/treeContextMenu.ui:82 msgid "Demote" msgstr "Понизить" #: ../ui/gjots.ui:1025 msgid "Split the text selection into a new item" msgstr "Вынести выбранный текст в новый элемент" #: ../ui/gjots.ui:1026 msgid "Split Item" msgstr "Разбить" #: ../ui/gjots.ui:1040 msgid "Merge selected items together" msgstr "Соединить выбранные элементы вместе" #: ../ui/gjots.ui:1041 ../ui/treeContextMenu.ui:89 msgid "Merge Items" msgstr "Объединить" #: ../ui/gjots.ui:1070 msgid "Hide all items except for the top level" msgstr "Спрятать все элементы, кроме верхнего" #: ../ui/gjots.ui:1071 ../ui/treeContextMenu.ui:103 msgid "Hide All" msgstr "Спрятать все" #: ../ui/gjots.ui:1086 ../ui/treeContextMenu.ui:96 msgid "Show All" msgstr "Показать все" #: ../ui/gjots.ui:1101 ../ui/treeContextMenu.ui:110 ../lib/sortDialog.py:394 msgid "Sort Tree" msgstr "Сортировать" #: ../ui/prefsDialog.ui:20 msgid "gjots: preferences" msgstr "gjots: параметры" #: ../ui/prefsDialog.ui:49 msgid "Choose a font for the text panel" msgstr "Выберите шрифт панели текста" #: ../ui/prefsDialog.ui:65 msgid "Date format:" msgstr "Формат даты:" #: ../ui/prefsDialog.ui:79 #, fuzzy msgid "Format for the timestamp function (see strftime(3)) eg %F" msgstr "Формат функции вывода времени (см strftime(3))" #: ../ui/prefsDialog.ui:80 msgid "%F" msgstr "%F" #: ../ui/prefsDialog.ui:99 #, fuzzy msgid "" "External program to edit a page (%s is replaced by the name of the temporary " "edit file) eg xterm -e vi %s" msgstr "" "Внешняя программа для редактирования (%s заменяется именем редактируемого " "файла)" #: ../ui/prefsDialog.ui:100 msgid "xterm -e vi %s" msgstr "xterm -e vi %s" #: ../ui/prefsDialog.ui:120 msgid "External editor" msgstr "Внешний редактор" #: ../ui/prefsDialog.ui:135 msgid "Text Line Length: " msgstr "Длина строки:" #: ../ui/prefsDialog.ui:149 msgid "Line length for paragraph wrapping" msgstr "Длина строки, используемая при переносе в параграфах" #: ../ui/prefsDialog.ui:172 msgid "Text formatter: " msgstr "Обработчик текста:" #: ../ui/prefsDialog.ui:184 #, fuzzy msgid "" "External program to pipe text for formatting (%d is replaced by the current " "line width) eg fmt -w %d " msgstr "Внешняя программа для обработки текста (%d заменяется на длину строки)" #: ../ui/prefsDialog.ui:185 msgid "fmt -w %d " msgstr "fmt -w %d " #: ../ui/prefsDialog.ui:202 msgid "Current text font" msgstr "Шрифт выделенного текста" #: ../ui/prefsDialog.ui:204 msgid "Courier 10 Pitch 10" msgstr "Courier 10 Pitch 10" #: ../ui/prefsDialog.ui:224 msgid "AutoSave interval:" msgstr "" #: ../ui/prefsDialog.ui:238 msgid "Seconds of inactivity to trigger an AutoSave (0 = no AutoSave)" msgstr "" #: ../ui/printDialog.ui:38 msgid "e.g. lpr: " msgstr "Напр. lpr:" #: ../ui/printDialog.ui:54 msgid "print command (can be a shell expression)" msgstr "команда печати (может быть командой оболочки)" #: ../ui/printDialog.ui:76 msgid " Print command " msgstr " Команда печати " #: ../ui/printDialog.ui:104 msgid "Page" msgstr "Страница" #: ../ui/printDialog.ui:108 msgid "Print the current page" msgstr "Печатать текущую страницу" #: ../ui/printDialog.ui:120 msgid "Selection" msgstr "Выделенное" #: ../ui/printDialog.ui:124 msgid "Print the selected pages or text" msgstr "Печатать выбранные страницы текста" #: ../ui/printDialog.ui:137 msgid "All" msgstr "Все" #: ../ui/printDialog.ui:141 msgid "Print the entire gjots file" msgstr "Печатать весь файл" #: ../ui/printDialog.ui:160 msgid " Print Range " msgstr " Область печати " #: ../ui/printDialog.ui:193 msgid "Page feeds" msgstr "Протяжка страниц" #: ../ui/printDialog.ui:197 msgid "Feeds a page before every new gjots item" msgstr "Протягивать бумагу перед каждым новым элементом gjots" #: ../ui/printDialog.ui:209 msgid "Bold titles" msgstr "Жирные заголовки" #: ../ui/printDialog.ui:212 msgid "Print the gjots item titles in bold" msgstr "Печатать заголовки элементов gjots жирным" #: ../ui/printDialog.ui:224 msgid "Auto Number" msgstr "Автонумерация" #: ../ui/printDialog.ui:251 msgid "Auto-number format: " msgstr "Формат нумерации: " #: ../ui/printDialog.ui:262 msgid "eg. 1 for 1.2.1, a" msgstr "напр. от 1 до 1.2.1" #: ../ui/printDialog.ui:289 msgid " Print formatting " msgstr " Форматирование при печати " #: ../ui/sortDialog.ui:43 msgid "Ascending" msgstr "По возрастанию" #: ../ui/sortDialog.ui:47 msgid "Sort in ascending order" msgstr "Сортировать по возрастанию" #: ../ui/sortDialog.ui:58 msgid "Descending" msgstr "По убыванию" #: ../ui/sortDialog.ui:62 msgid "Sort in descending order" msgstr "Сортировать по убыванию" #: ../ui/sortDialog.ui:76 msgid "Alphabetic" msgstr "Алфавитный" #: ../ui/sortDialog.ui:80 msgid "Sort in alphabetic order" msgstr "Сортировать в алфавитном порядке" #: ../ui/sortDialog.ui:93 msgid "Numeric" msgstr "Числовой" #: ../ui/sortDialog.ui:97 msgid "Sort in numeric order" msgstr "Сортировать в числовом порядке" #: ../ui/sortDialog.ui:119 msgid " Sort Parameters " msgstr " Параметры сортировки " #: ../ui/sortDialog.ui:149 msgid "How many sublevels to sort (0 for none; -1 for 'all')" msgstr "Сколько подуровней сортировать (0 - нет; -1 для всех)" #: ../ui/sortDialog.ui:171 msgid " Sort Sublevels " msgstr " Подуровни сортировки " #: ../ui/treeContextMenu.ui:30 #, fuzzy msgid "Select _All" msgstr "Выбрать файл" #: ../ui/treeContextMenu.ui:117 msgid "Import" msgstr "Импорт" #: ../ui/treeContextMenu.ui:124 msgid "Export" msgstr "Экспорт" #: ../gjots2:23 #, fuzzy msgid "" "Usage: gjots [OPTIONS] [FILENAME]\n" "A gtk/X11 jotter\n" "\n" "OPTIONS:\n" "-h, --help: this help\n" "-d, --debug: debug to stdout\n" "-t, --trace: trace lines as they execute\n" "-g 123x456, --geometry=123x456: initial geometry (X x Y)\n" "-p, --purge-password don't remember password\n" "-r, --readonly: no editing (or locking)\n" "-V, --version: print the version and exit\n" "\n" "FILENAME:\n" " gjots data filename (default is $HOME/.gjotsfile)\n" msgstr "" "Использование: gjots [ОПЦИИ] [ФАЙЛ]\n" "Блокнот для GNOME2/X11\n" "\n" "ОПЦИИ:\n" "-h, --help: эта справка\n" "-d, --debug: отладочная информация в stdout\n" "-g 123x456, --geometry=123x456: начальное положение (X и Y)\n" "-p, --purge-password\t\t\t\t не запоминать пароль\n" "-r, --readonly: без редактирования(блокировка))\n" "-V, --version: показать информацию о версии и выйти\n" "\n" "ФАЙЛ:\n" "\tфайл данных gjots (по умолчанию $HOME/.gjotsfile)\n" #: ../gjots2:89 #, python-format msgid "%s requires python%s or higher." msgstr "%s требует python%s или выше." #: ../gjots2:102 msgid "Use -h for help\n" msgstr "Для получения справки используйте опцию -h\n" #: ../gjots2:116 #, python-format msgid "%s version %s" msgstr "%s версия %s" #: ../lib/gui.py:51 ../lib/gui.py:996 msgid "Text pasted" msgstr "Текст вставлен" #: ../lib/gui.py:179 #, python-format msgid "External formatter \"%s\" is not installed - can't format" msgstr "Внешний обработчик \"%s\" не установлен - форматирование невозможно" #: ../lib/gui.py:564 ../lib/gui.py:675 ../lib/gui.py:679 ../lib/gui.py:745 #: ../lib/gui.py:749 ../lib/gui.py:812 ../lib/gui.py:817 ../lib/gui.py:1043 #: ../lib/gui.py:1052 ../lib/gui.py:1138 ../lib/gui.py:1147 ../lib/gui.py:1183 #: ../lib/gui.py:1188 ../lib/gui.py:1219 ../lib/gui.py:1608 ../lib/gui.py:2382 #: ../lib/gui.py:2401 ../lib/gui.py:2430 ../lib/gui.py:2461 ../lib/file.py:466 #: ../lib/file.py:471 ../lib/sortDialog.py:329 ../lib/sortDialog.py:334 #: ../lib/printDialog.py:110 ../lib/printDialog.py:115 msgid "Nothing selected" msgstr "Нечего выбирать" #: ../lib/gui.py:568 ../lib/gui.py:684 ../lib/gui.py:753 ../lib/gui.py:822 #: ../lib/gui.py:934 ../lib/gui.py:1224 ../lib/gui.py:2386 #: ../lib/sortDialog.py:345 msgid "No parent!" msgstr "Нет родителя!" #: ../lib/gui.py:572 ../lib/gui.py:719 msgid "No child!" msgstr "Нет дочернего элемента!" #: ../lib/gui.py:580 ../lib/gui.py:693 msgid "Can't go any further" msgstr "Движение дальше невозможно" #: ../lib/gui.py:616 ../lib/gui.py:840 msgid "Internal error!" msgstr "Внутренняя ошибка!" #: ../lib/gui.py:757 msgid "Can't go further!" msgstr "Не могу двигаться дальше!" #: ../lib/gui.py:973 msgid "Text cut" msgstr "Текст вырезан" #: ../lib/gui.py:984 msgid "Text copied" msgstr "Текст скопирован" #: ../lib/gui.py:1005 msgid "All text selected" msgstr "Весь текст выбран" #: ../lib/gui.py:1015 msgid "All tree items selected" msgstr "Все элементы дерева выбраны" #: ../lib/gui.py:1023 msgid "Nothing selected!" msgstr "Ничего не выбрано!" #: ../lib/gui.py:1047 msgid "Can't merge the root item" msgstr "Нельзя объединить корневой элемент" #: ../lib/gui.py:1056 msgid "Nothing to merge" msgstr "Нечего объединять" #: ../lib/gui.py:1063 msgid "Can't merge items that have children" msgstr "Невозможно объединить элементы с подэлементами" #: ../lib/gui.py:1093 #, python-format msgid "%d items merged" msgstr "%d элементов объединено" #: ../lib/gui.py:1142 msgid "Can't delete the root item" msgstr "Не могу удалить корневой элемент" #: ../lib/gui.py:1175 #, python-format msgid "%d tree items cut" msgstr "%d элементов вырезано" #: ../lib/gui.py:1205 #, python-format msgid "%d tree items copied" msgstr "%d элементов скопировано" #: ../lib/gui.py:1214 msgid "Nothing to paste" msgstr "Нечего вставлять" #: ../lib/gui.py:1237 msgid "Tree items pasted" msgstr "Элементы дерева вставлены" #: ../lib/gui.py:1258 #, fuzzy msgid "Can't write tempfile" msgstr "Не могу записать" #: ../lib/gui.py:1278 #, python-format msgid "Can't run '%s'" msgstr "Не получается запустить '%s'" #: ../lib/gui.py:1287 #, fuzzy msgid "Can't read tempfile " msgstr "Не могу прочитать" #: ../lib/gui.py:1293 msgid "text changed by external editor" msgstr "текст изменен внешним редактором" #: ../lib/gui.py:1295 msgid "text not changed by external editor" msgstr "текст не изменен внешним редактором" #: ../lib/gui.py:1314 msgid ": Error" msgstr ": Ошибка" #: ../lib/gui.py:1327 #, python-format msgid "Can't lock file %s: already locked by process %d" msgstr "Невозможно заблокировать файл %s: он занят процессом %d" #: ../lib/gui.py:1510 msgid ": Save?" msgstr ": Сохранить?" #: ../lib/gui.py:1511 msgid "Save current work?" msgstr "Сохранить сделанные изменения?" #: ../lib/gui.py:1532 msgid "New file" msgstr "Создать файл" #: ../lib/gui.py:1556 msgid "Open file ..." msgstr "Открыть файл ..." #: ../lib/gui.py:1568 msgid "No changes to save" msgstr "Не было изменений, которые можно сохранить" #: ../lib/gui.py:1572 ../lib/gui.py:1593 msgid "Saved." msgstr "Сохранено." #: ../lib/gui.py:1574 ../lib/gui.py:1595 ../lib/file.py:456 msgid "Not saved." msgstr "Не сохранено." #: ../lib/gui.py:1589 msgid "Nothing to save" msgstr "Нечего сохранять" #: ../lib/gui.py:1591 ../lib/file.py:693 msgid "Save as ..." msgstr "Сохранить как ..." #: ../lib/gui.py:1605 msgid "Import from ..." msgstr "Импортировать из ..." #: ../lib/gui.py:1616 msgid "Export to ..." msgstr "Экспортировать в ..." #: ../lib/gui.py:1930 ../lib/gui.py:1933 #, python-format msgid "%s: Warning: opening gjots2 manual from %s\n" msgstr "%s: Внимание: gjots2 запущен вручную из %s\n" #: ../lib/gui.py:2317 msgid "" "gjots2: warning: selection list is NULL. Skipping tree selection changed \n" "event." msgstr "" "gjots2: внимание: выбранный список пуст. Произошел пропуск события \n" "изменения состояния дерева." #: ../lib/gui.py:2390 msgid "Can't go further" msgstr "Не могу дальше идти" #: ../lib/gui.py:2419 msgid "Tree is empty!" msgstr "В дереве нет элементов!" #: ../lib/gui.py:2716 msgid "Bad regular expression" msgstr "Ошибочное выражение" #: ../lib/gui.py:2808 #, python-format msgid "%s: bad geometry specification: %s\n" msgstr "%s: ошибочная спецификация положения: %s\n" #: ../lib/gui.py:2899 msgid "New...>>>" msgstr "Новая страница...>>>" #: ../lib/gui.py:2936 msgid "Install gtksourceview to enable undo/redo" msgstr "" #: ../lib/gui.py:3102 msgid ": version " msgstr ": версия " #: ../lib/find.py:70 ../lib/find.py:93 msgid "Not found" msgstr "Не найдено" #: ../lib/find.py:72 msgid "Found" msgstr "Найдено" #: ../lib/find.py:96 msgid "Replace?" msgstr "Заменить?" #: ../lib/find.py:113 #, python-format msgid "%d substitutions" msgstr "%d замен(ы)" #: ../lib/file.py:255 msgid "Enter password for " msgstr "Введите пароль для " #: ../lib/file.py:257 #, fuzzy msgid ": Enter Password" msgstr "gjots: Введите пароль" #: ../lib/file.py:259 msgid "Password: " msgstr "Пароль: " #: ../lib/file.py:260 msgid "Confirm: " msgstr "Подтвердите: " #: ../lib/file.py:268 msgid "Password was not confirmed" msgstr "Пароль не подтвержден" #: ../lib/file.py:275 msgid "Could not find the ccrypt program - please install it and try again" msgstr "Не могу найти программу ccrypt - установите ее и попробуйте снова" #: ../lib/file.py:308 msgid "" "Neither gpg2 nor gpg are available - please install one (perhaps package " "gnupg2) and try again" msgstr "" #: ../lib/file.py:328 #, fuzzy msgid "No openssl program - please install it and try again" msgstr "" "Не получается найти программу openssl - пожалуйста установите ее и " "попробуйте снова" #: ../lib/file.py:354 #, fuzzy msgid "No org2gjots program - please install it and try again" msgstr "" "Не получается найти программу openssl - пожалуйста установите ее и " "попробуйте снова" #: ../lib/file.py:412 msgid "Can't open \"" msgstr "Невозможно открыть \"" #: ../lib/file.py:415 msgid "Bad password" msgstr "Плохой пароль" #: ../lib/file.py:418 msgid "File cannot be locked" msgstr "Файл не может быть заблокирован" #: ../lib/file.py:431 ../lib/file.py:489 msgid "failed!" msgstr "" #: ../lib/file.py:457 msgid "Can't write to " msgstr "Не могу записать в " #: ../lib/file.py:460 msgid "Can't lock file" msgstr "Невозможно заблокировать файл." #: ../lib/file.py:597 #, python-format msgid "%s is not readable" msgstr "%s нельзя прочитать" #: ../lib/file.py:613 #, python-format msgid "%s: no permission" msgstr "%s: нет разрешения" #: ../lib/file.py:615 #, python-format msgid "%s: locked by process number %d" msgstr "%s: заблокирован процессом %d" #: ../lib/file.py:617 #, fuzzy msgid ": can't lock file." msgstr "gjots: невозможно заблокировать файл." #: ../lib/file.py:705 msgid "That file is already open!" msgstr "Этот файл уже открыт!" #: ../lib/file.py:713 ../lib/file.py:787 #, fuzzy msgid ": file has changed" msgstr "gjots: %s уже существует." #: ../lib/file.py:714 #, python-format msgid "File changed since it was read - copied to %s " msgstr "" #: ../lib/file.py:731 #, python-format msgid "%s is locked by pid %d" msgstr "%s заблокирован процессом %d" #: ../lib/file.py:735 msgid "Can't make a lockfile in " msgstr "Невозможно создать файл блокировки в " #: ../lib/file.py:748 #, python-format msgid "%s is not writable" msgstr "%s только для чтения" #: ../lib/file.py:751 #, fuzzy, python-format msgid ": %s already exists." msgstr "gjots: %s уже существует." #: ../lib/file.py:752 #, python-format msgid "overwrite %s?" msgstr "перезаписать %s?" #: ../lib/file.py:788 #, python-format msgid "File changed since it was read - so it was copied to %s " msgstr "" #: ../lib/sortDialog.py:125 msgid "_get_settings: Cant find sortAscendingRadioButton" msgstr "_get_settings: Невозможно найти sortAscendingRadioButton" #: ../lib/sortDialog.py:165 msgid "Internal error" msgstr "Внутренняя ошибка" #: ../lib/sortDialog.py:303 msgid "Nothing to sort!" msgstr "Нечего сортировать!" #: ../lib/sortDialog.py:398 msgid "Sort Text" msgstr "Сортировать текст" #~ msgid "Exit gjots" #~ msgstr "Покинуть gjots" #~ msgid "Create a new child " #~ msgstr "Создать новый дочерний элемент" #, fuzzy #~ msgid "About gjots2" #~ msgstr "Покинуть gjots" #, fuzzy #~ msgid " Find: " #~ msgstr "Найти:" #~ msgid "abcdefghijk ABCDEFGHIJK" #~ msgstr "абвгдежзикл АБВГДЕЖЗИКЛ" #, fuzzy, python-format #~ msgid "%s requires pygtk-%s.\n" #~ msgstr "%s требует наличия pygtk-%s." #~ msgid "not initialised" #~ msgstr "не инициализировано" #~ msgid "pygtk-2.2 is required for this application!" #~ msgstr "Этому приложению нужен pygtk-2.2!" #~ msgid "Store and organise your random notes" #~ msgstr "Сохраняйте и организуйте Ваши заметки" #~ msgid "Gjots2 Jotter" #~ msgstr "Блокнот Gjots2" #~ msgid "gjots" #~ msgstr "gjots" #~ msgid "_New" #~ msgstr "_Создать" #~ msgid "_Quit" #~ msgstr "_Выход" #~ msgid "_Toolbars" #~ msgstr "_Панели инструментов" #~ msgid "_Up" #~ msgstr "Вв_ерх" #~ msgid "_Down" #~ msgstr "Вн_из" #~ msgid "Create a new gjots document" #~ msgstr "Создать новый документ gjots" #~ msgid "Open an existing gjots document" #~ msgstr "Открыть существующий документ gjots" #~ msgid "Open" #~ msgstr "Открыть" #~ msgid "Back" #~ msgstr "Назад" #~ msgid "Forward" #~ msgstr "Вперед" #~ msgid "translator_credits" #~ msgstr "Сергей Безденежных <sib-mail@mtu-net.ru>" #~ msgid "%s: Warning: running modules from %s\n" #~ msgstr "%s: Внимание: модули запущены из %s\n" #~ msgid "Could not find the gpg program - please install it and try again" #~ msgstr "" #~ "Не получается найти программу gpg - пожалуйста установите ее и попробуйте " #~ "снова" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/ru/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0013772�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/ru/LC_MESSAGES/���������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0015557�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/ru/LC_MESSAGES/gjots2.mo������������������������������������������������������������0000664�0000000�0000000�00000044475�14016300235�0017342�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������,��3��<�������� ��� �� ��������!�����1�����D�����V�����g�����j�����z�������������������������������� �����+�����#���I�����m����������������� �����'�����!�������������������� ���2�� ���=�� ���G�����S�� ���h�� ���r������� ������������������������������0��������6��$���P�����u�� �������������������� ��������������� ���������������C��������V�����j�����}�������������������������������� ���������� ���������������'��� �����5�����I��%���P�� ���v������������7�����(��������������������7���'�����_�����e�����������������'�����#�����5�������������!�����1�����P�����_��-���o��"�����*����� ����� �����&��������)�����G�����[�� ���m�����w�� ���������� ���������� ����� ����� ����� ���������������������������� �����0�����A�� ���I�����W�����u�����~�� ���������� ���������������!������������������"�����=�����C�����I�����`��#���|�� ��������������� �����$�������� ������� ���'�����3�����<�� ���E�����P�� ���U�����a�����t������������(����� ����� �����.�����+��������:�����C��%���S�����y������� ����� ������������������������� ��� ��(��� �� ���A �����M �����_ �����t �����z �� ��� ����� ����� �� ��� ����� �� ��� ��%��� ����� !�����&!�� ���<!�����J!�����Y!�� ���k!�����u!�����x!�����!��5���!�����!�����!�����!�� ���!�����!�� ���!�� ���"�� ��� "�� ���"�� ���!"�� ���,"�� ���8"�����D"��1���J"�� ���|"�����"�� ���"��P���"�����"��#��� #�����-#�����4#�� ���;#��)���I#�����s#��#���#�����#�����#��$��#�����$�����%�����&%��2���D%��)���w%��)���%�����%��*���%�����%��,��� &��&���8&��1���_&��"���&��#���&��+���&�����'��C���'��G���['��2���'�����'�����'�����(�����(��?���+(��?���k(�����(�� ���(��3���(�����)�����)�����8)��!���S)�� ���u)�����)��%���)�����)��<���)��2���*��#���P*��.���t*��9���*��b���*��E���@+��X���+��A���+��%���!,��1���G,��"���y,�����,��5���,�����,�����,�����-�����-��:���3-��q���n-�����-��9���-��(���..��*���W.��.���.�����.��6���.�����.����� /�����/�����+/�����</��5���R/�����/��c���/��#���/�����0��^���(0��#���0�����0�����0��v���0��_���U1��:���1�� ���1�����1��N���2�� ���i2��:���u2�����2�����2�����2��E���2��T���53��[���3�� ���3��#���3��@���4��!���X4��"���z4��p���4��a���5��D���p5��!���5�����5��[���5��C���H6��A���6��D���6�����7�����37�� ���O7�����p7��!���7��N���7��+���7�����%8�����>8�����R8�����k8��!���8��!���8�����8�����8��$��� 9�����29�����C9��2���_9�����9�����9�����9��(���9�����9����� :��6���:��>���U:��2���:��?���:��2���;�����:;�����M;��0���b;��"���;��I���;��A����<��.���B<�����q<�� ���<��H���<��$���<�����=�����"=�����:=�����L=��(���^=�����=�����=��9���=��)���=�����>�����0>��Z���H>�����>�����>��X���>��S���)?�����}?��)���?��U���?��5���@�����K@��!���b@�����@��=���@��2���@��,��� A��9���9A�����sA��I���A�� ���A�� ���A�� ���B�� ���/B�����;B�����TB�����tB��"���B�����B��&���B�����B��P���C��X���bC��V���C��-���D��*���@D��0���kD��!���D�� ���D��N���D�����E��A���'E�����iE�� ���yE�����E�����E�����E��&���E�����F��!���+F�����MF��"���fF�����F�� ���F�� ���F��G���F�����G�����G�� ���3G�����>G�����G��#���H�����&H�����-H�����4H��S���QH��=���H��B���H�����&I�����.I�����y���Z������������������������!��� ���C��������������Y���u������������� ����������������������A�������d���?���U���x���g��� ���"���F��������������p������/������*���������m������������������������������������=���;���6������+�������������c�������������b���4������0�������������������������������������������������������@������������������������������ ���,���]�����������'��������������3��������������&���9����������G��������������������n���l������L��������������������q������)����������w�����������������������5���������������������V���������������t������������ ���B������\���}������-������H���J�������������R�������P������>�����������f������o���Q����������������I���S���M�����������������z��������������������W���������������������������:�������������������� ������8�������7������������������������������T���j���1���������������.���{����������N�����������[�������e�������D���k���������������������������v���h�������~�����������������_���r�������i���$���������������K���#�������O�������������������������s������������|���2���E������`�������������������X�����������<���%���������������a����������^���(���� Options � Print Range � Print command � Print formatting � Sort Parameters � Sort Sublevels �%F�%d items merged�%d substitutions�%d tree items copied�%d tree items cut�%s is locked by pid %d�%s is not readable�%s is not writable�%s requires python%s or higher.�%s version %s�%s: Warning: opening gjots2 manual from %s �%s: bad geometry specification: %s �%s: locked by process number %d�%s: no permission�: Error�: Save?�: version �Add a time/date stamp (see preferences)�Add a time/date stamp (see prefs)�All�All text selected�All tree items selected�Alphabetic�Ascending�Auto Number�Auto-number format: �Backwards�Bad password�Bad regular expression�Bold titles�Can't delete the root item�Can't go any further�Can't go further�Can't go further!�Can't lock file�Can't lock file %s: already locked by process %d�Can't make a lockfile in �Can't merge items that have children�Can't merge the root item�Can't open "�Can't run '%s'�Can't write to �Cancel�Choose a font for the text panel�Clear�Close�Confirm: �Copy�Copy selected items�Could not find the ccrypt program - please install it and try again�Courier 10 Pitch 10�Create a new child�Create a new item�Create a new page�Current text font�Cut�Cut selected items�D_emote�Date�Date format:�Demote�Descending�Don't ignore case�Down�Edit current item in an external editor�Enter password for �Export�Export selected items to a gjots file�Export to ...�Ext.Ed.�External editor�External formatter "%s" is not installed - can't format�Feeds a page before every new gjots item�File cannot be locked�Find�Find & replace�Find string is a regular expression (see 'man 7 regex')�Find:�Format the current paragraph�Found�Global�Hide All�Hide all items except for the top level�Hide all items except the top level�How many sublevels to sort (0 for none; -1 for 'all')�Import�Import from ...�Import items from a gjots file�Internal error�Internal error!�Invoke an external editor on the current item�Line length for paragraph wrapping�Make a new item from the current selection�Match case�Merge Items�Merge current items into the first one�Merge selected items together�Move selection down�Move selection up�New Child�New Page�New _Child�New file�New...>>>�No changes to save�No child!�No parent!�Not found�Not saved.�Nothing selected�Nothing selected!�Nothing to merge�Nothing to paste�Nothing to save�Nothing to sort!�Numeric�Open file ...�Open gjots preferences window�P_romote�Page�Page feeds�Password was not confirmed�Password: �Paste�Paste selected items�Popup the find and replace dialog�Popup the sort dialog�Popup the sort text dialog�Popup the sort tree dialog�Prefs�Print�Print the current page�Print the entire gjots file�Print the gjots item titles in bold�Print the selected pages or text�Print this document�Promote�Read only�Read the online manual (using gjots)�Regular Expression�Replace�Replace All�Replace:�Replace?�S_ort Tree�Save�Save as ...�Save current work?�Save gjots document�Saved.�Search backwards�Searches entire file not just this entry�Select Font�Selection�Selection becomes a child of the previous item�Selection becomes a sibling to their parent�Show All�Show _Icon Text�Show all items below the current item�Show the related icon text�Sort�Sort Text�Sort Tree�Sort in alphabetic order�Sort in ascending order�Sort in descending order�Sort in numeric order�Split Item�Split the text selection into a new item�Status _Bar�String to replace�String to search for�Te_xt�Text Line Length: �Text copied�Text cut�Text formatter: �Text pasted�That file is already open!�To_p Toolbar�Toggle the read-only flag if possible�Toggles the main toolbar�Toggles tree tool bar�Tre_e Toolbar�Tree is empty!�Tree items pasted�Try again�Up�Use -h for help �Wrap�Wrap the current paragraph to the current line length�_Export�_External Edit�_Format�_Hide All�_Import�_Merge Items�_New Page�_Read-only�_Show All�_Sort Text�_Split Item�_Time stamp�_Tree�_get_settings: Cant find sortAscendingRadioButton�e.g. lpr: �eg. 1 for 1.2.1, a�fmt -w %d �gjots2: warning: selection list is NULL. Skipping tree selection changed event.�gjots: preferences�http://bhepple.freeshell.org/gjots2�label1�label2�overwrite %s?�print command (can be a shell expression)�text changed by external editor�text not changed by external editor�window1�xterm -e vi %s�Project-Id-Version: gjots 2.3.2 Report-Msgid-Bugs-To: PO-Revision-Date: 2006-01-22 11:47+0300 Last-Translator: Sergey Bezdenezhnyh <sib-mail@mtu-net.ru> Language-Team: Russian <ru@li.org> Language: ru MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit � Параметры � Область печати � Команда печати � Форматирование при печати � Параметры сортировки � Подуровни сортировки �%F�%d элементов объединено�%d замен(ы)�%d элементов скопировано�%d элементов вырезано�%s заблокирован процессом %d�%s нельзя прочитать�%s только для чтения�%s требует python%s или выше.�%s версия %s�%s: Внимание: gjots2 запущен вручную из %s �%s: ошибочная спецификация положения: %s �%s: заблокирован процессом %d�%s: нет разрешения�: Ошибка�: Сохранить?�: версия �Добавить время/дату (см. параметры)�Добавить время/дату (см. параметры)�Все�Весь текст выбран�Все элементы дерева выбраны�Алфавитный�По возрастанию�Автонумерация�Формат нумерации: �Назад�Плохой пароль�Ошибочное выражение�Жирные заголовки�Не могу удалить корневой элемент�Движение дальше невозможно�Не могу дальше идти�Не могу двигаться дальше!�Невозможно заблокировать файл.�Невозможно заблокировать файл %s: он занят процессом %d�Невозможно создать файл блокировки в �Невозможно объединить элементы с подэлементами�Нельзя объединить корневой элемент�Невозможно открыть "�Не получается запустить '%s'�Не могу записать в �Отменить�Выберите шрифт панели текста�Отчистить�Закрыть�Подтвердите: �Копировать�Копировать выделенные элементы�Не могу найти программу ccrypt - установите ее и попробуйте снова�Courier 10 Pitch 10�Создать новый дочерний элемент�Создать новый элемент�Создать новую страницу�Шрифт выделенного текста�Вырезать�Вырезать выделенные элементы�По_низить�Дата�Формат даты:�Понизить�По убыванию�Не игнорировать регистр букв�Вниз�Редактировать выбранный элемент во внешнем редакторе�Введите пароль для �Экспорт�Экспортировать выбранный элемент в другой файл gjots �Экспортировать в ...�Внешн.ред.�Внешний редактор�Внешний обработчик "%s" не установлен - форматирование невозможно�Протягивать бумагу перед каждым новым элементом gjots�Файл не может быть заблокирован�Найти�Найти и заменить�Искать только в полных строках (см. 'man 7 regex')�Найти:�Форматировать текущий параграф�Найдено�Искать везде�Спрятать все�Спрятать все элементы, кроме верхнего�Скрыть все элементы, за исключением корневого�Сколько подуровней сортировать (0 - нет; -1 для всех)�Импорт�Импортировать из ...�Импортировать элемент из файла gjots �Внутренняя ошибка�Внутренняя ошибка!�Запустить внешний редактор для редактирования этой страницы�Длина строки, используемая при переносе в параграфах�Создать новый элемент из выделенного�Учитывать регистр�Объединить�Объединить выбранные элементы с первым выбранным�Соединить выбранные элементы вместе�Переместить выбранный элемент вниз�Переместить выбранный элемент вверх�Новый подэлемент�Новая страница�Новый _подэлемент�Создать файл�Новая страница...>>>�Не было изменений, которые можно сохранить�Нет дочернего элемента!�Нет родителя!�Не найдено�Не сохранено.�Нечего выбирать�Ничего не выбрано!�Нечего объединять�Нечего вставлять�Нечего сохранять�Нечего сортировать!�Числовой�Открыть файл ...�Открыть окно параметров gjots�По_высить�Страница�Протяжка страниц�Пароль не подтвержден�Пароль: �Вставить�Вставить выделенные элементы�Показать диалог "Найти и заменить"�Показать диалог сортировки�Показать диалог сортировки текста�Показать диалог сортировки�Параметры�Напечатать�Печатать текущую страницу�Печатать весь файл�Печатать заголовки элементов gjots жирным�Печатать выбранные страницы текста�Напечатать этот документ�Повысить�Только для чтения�Читать инструкцию в сети (используя gjots)�Только полные слова�Заменить�Заменить все�Заменить:�Заменить?�Отсор_тировать дерево�Сохранить�Сохранить как ...�Сохранить сделанные изменения?�Сохранить документ gjots�Сохранено.�Искать назад�Искать во всем файле, а не только на этой странице�Выбор шрифта�Выделенное�Сделать выбранный элемент дочерним предыдущему�Поднять выбранный элемент до уровня родителя�Показать все�Показать текст _кнопок�Показать все элементы под выбранным элементом�Показывать текст под иконкой�Сортировать�Сортировать текст�Сортировать�Сортировать в алфавитном порядке�Сортировать по возрастанию�Сортировать по убыванию�Сортировать в числовом порядке�Разбить�Вынести выбранный текст в новый элемент�Строка _состояния�Строка для замены�Строка для поиска�Те_кст�Длина строки:�Текст скопирован�Текст вырезан�Обработчик текста:�Текст вставлен�Этот файл уже открыт!�Главная _панель�Если возможно, включить флаг "только чтение"�Изменить видимость главной панели инструментов�Изменить видимость панели инструментов дерева�Панель _дерева элементов�В дереве нет элементов!�Элементы дерева вставлены�Попробовать снова�Вверх�Для получения справки используйте опцию -h �Перенос�Выровнять параграф по длине строки �_Экспорт�_Внешний редактор�_Форматировать�Скр_ыть все�_Импортировать�_Объединить элементы�_Новая страница�_Только для чтения�_Показать все�_Сортировать текст�_Разбить элемент�_Дата�_Дерево�_get_settings: Невозможно найти sortAscendingRadioButton�Напр. lpr:�напр. от 1 до 1.2.1�fmt -w %d �gjots2: внимание: выбранный список пуст. Произошел пропуск события изменения состояния дерева.�gjots: параметры�http://bhepple.freeshell.org/gjots2�label1�label2�перезаписать %s?�команда печати (может быть командой оболочки)�текст изменен внешним редактором�текст не изменен внешним редактором�window1�xterm -e vi %s����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/sl.po�������������������������������������������������������������������������������0000664�0000000�0000000�00000065631�14016300235�0014335�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Translation of gjots2.po to Slovenian # Messages master file for gjots2. # Copyright (C) 2005-2006 Bob Hepple # This file is distributed under the same license as the gjots2 package. # Bob Hepple <bhepple@freeshell.org>, 2005. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: gjots2 2.3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-30 18:18+1000\n" "PO-Revision-Date: 2012-02-25 18:28+0200\n" "Last-Translator: Aleksa Šušulić <susulic@gmail.com>\n" "Language-Team: Slovenian\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Slovenian\n" "X-Poedit-Country: Slovenia\n" "X-Poedit-SourceCharset: utf-8\n" #: ../ui/about.ui:12 msgid "Copyright Bob Hepple 2002-2020" msgstr "" #: ../ui/about.ui:13 msgid "http://bhepple.freeshell.org/gjots2" msgstr "" #: ../ui/about.ui:25 msgid "\n" msgstr "" #: ../ui/fileDialog.ui:69 msgid "Open file read only" msgstr "Odpri datoteko samo za branje" #: ../ui/fileDialog.ui:73 msgid "To open the file in read-only mode." msgstr "Za odpiranje datoteke v načinu samo za branje." #: ../ui/findDialog.ui:8 msgid "Find & replace" msgstr "Najdi in zamenjaj" #: ../ui/findDialog.ui:34 msgid "Find:" msgstr "Najdi:" #: ../ui/findDialog.ui:47 msgid "Replace:" msgstr "Zamenjaj:" #: ../ui/findDialog.ui:64 msgid "String to search for" msgstr "Najdi ta črkovni niz" #: ../ui/findDialog.ui:80 msgid "String to replace" msgstr "Zamenjaj s tem črkovnim nizom" #: ../ui/findDialog.ui:114 ../ui/gjots.ui:844 msgid "Find" msgstr "Najdi" #: ../ui/findDialog.ui:130 msgid "Close" msgstr "Zapri" #: ../ui/findDialog.ui:146 msgid "Replace" msgstr "Zamenjaj" #: ../ui/findDialog.ui:162 msgid "Replace All" msgstr "Zamenjaj vse" #: ../ui/findDialog.ui:178 msgid "Cancel" msgstr "Prekliči" #: ../ui/findDialog.ui:197 msgid "Clear" msgstr "Počisti" #: ../ui/findDialog.ui:257 msgid "Match case" msgstr "Upoštevaj velikost črk" #: ../ui/findDialog.ui:261 msgid "Don't ignore case" msgstr "Ne zanemari velikosti črk" #: ../ui/findDialog.ui:271 msgid "Regular Expression" msgstr "Logični izraz" #: ../ui/findDialog.ui:275 msgid "Find string is a regular expression (see 'man 7 regex')" msgstr "Iskani črkovni niz je logični izraz (glej 'man 7 regex')" #: ../ui/findDialog.ui:287 msgid "Backwards" msgstr "Nazaj" #: ../ui/findDialog.ui:291 msgid "Search backwards" msgstr "Išči nazaj" #: ../ui/findDialog.ui:306 msgid "Global" msgstr "Povsod" #: ../ui/findDialog.ui:310 msgid "Searches entire file not just this entry" msgstr "Preišče celotno datoteko, ne le to postavko" #: ../ui/findDialog.ui:327 msgid " Options " msgstr " Možnosti" #: ../ui/fontDialog.ui:9 msgid "Select Font" msgstr "Izberi pisavo" #: ../ui/generalDialog.ui:9 msgid "window1" msgstr "window1" #: ../ui/generalDialog.ui:22 ../ui/generalDialog.ui:60 #: ../ui/generalDialog.ui:115 msgid "label1" msgstr "label1" #: ../ui/generalDialog.ui:46 msgid "label2" msgstr "label2" #: ../ui/generalDialog.ui:193 msgid "Try again" msgstr "Poskusi znova" #: ../ui/generalDialog.ui:209 msgid "Read only" msgstr "Samo za branje" #: ../ui/gjots.ui:24 msgid "_File" msgstr "_Datoteka" #: ../ui/gjots.ui:88 msgid "_Import" msgstr "_Uvozi" #: ../ui/gjots.ui:91 msgid "Import items from a gjots file" msgstr "Uvozi postavke iz datoteke gjots" #: ../ui/gjots.ui:99 msgid "_Export" msgstr "_Izvozi" #: ../ui/gjots.ui:102 msgid "Export selected items to a gjots file" msgstr "Izvozi izbrane postavke v datoteko gjots" #: ../ui/gjots.ui:135 msgid "Toggle the read-only flag if possible" msgstr "Po možnosti preklopi zastavico samo za branje" #: ../ui/gjots.ui:136 msgid "_Read-only" msgstr "_Samo za branje" #: ../ui/gjots.ui:152 #, fuzzy msgid "Exit gjots2" msgstr "Končaj gjots" #: ../ui/gjots.ui:167 msgid "_Edit" msgstr "_Uredi" #: ../ui/gjots.ui:263 msgid "Find Next" msgstr "Najdi naslednje" #: ../ui/gjots.ui:273 msgid "Find Previous" msgstr "" #: ../ui/gjots.ui:299 msgid "_View" msgstr "_Pogled" #: ../ui/gjots.ui:307 msgid "_Show All" msgstr "_Pokaži vse" #: ../ui/gjots.ui:310 ../ui/gjots.ui:1085 msgid "Show all items below the current item" msgstr "Pokaži vse podpostavke pod trenutno postavko" #: ../ui/gjots.ui:318 msgid "_Hide All" msgstr "_Skrij vse" #: ../ui/gjots.ui:321 msgid "Hide all items except the top level" msgstr "Skrij vse postavke razen najvišje ravni" #: ../ui/gjots.ui:337 msgid "Toggles the main toolbar" msgstr "Preklopi glavno orodno vrstico" #: ../ui/gjots.ui:338 msgid "To_p Toolbar" msgstr "_Zgornja orodna vrstica" #: ../ui/gjots.ui:347 msgid "Toggles tree tool bar" msgstr "Preklopi drevesno vrstico" #: ../ui/gjots.ui:348 msgid "Tre_e Toolbar" msgstr "_Drevesna vrstica" #: ../ui/gjots.ui:357 msgid "Show the related icon text" msgstr "Pokaži pripadajoče besedilo k ikonam" #: ../ui/gjots.ui:358 msgid "Show _Icon Text" msgstr "Pokaži besedilo k _ikonam" #: ../ui/gjots.ui:367 msgid "Status _Bar" msgstr "Vrstica _stanja" #: ../ui/gjots.ui:380 msgid "_Tree" msgstr "_Drevo" #: ../ui/gjots.ui:388 msgid "_New Page" msgstr "_Nova stran" #: ../ui/gjots.ui:391 msgid "Create a new page" msgstr "Ustvari novo stran" #: ../ui/gjots.ui:400 msgid "New _Child" msgstr "Nova _podpostavka" #: ../ui/gjots.ui:403 ../ui/gjots.ui:920 msgid "Create a new child" msgstr "Ustvari novo podpostavko" #: ../ui/gjots.ui:420 ../ui/gjots.ui:950 msgid "Move selection up" msgstr "Premakni izbor navzgor" #: ../ui/gjots.ui:431 ../ui/gjots.ui:965 msgid "Move selection down" msgstr "Premakni izbor navzdol" #: ../ui/gjots.ui:439 msgid "P_romote" msgstr "Po_višaj" #: ../ui/gjots.ui:442 ../ui/gjots.ui:980 msgid "Selection becomes a sibling to their parent" msgstr "Izbor postane enakovreden nadrejenemu" #: ../ui/gjots.ui:450 msgid "D_emote" msgstr "Po_nižaj" #: ../ui/gjots.ui:453 ../ui/gjots.ui:995 msgid "Selection becomes a child of the previous item" msgstr "Izbor postane podpostavka prejšnje postavke" #: ../ui/gjots.ui:467 msgid "_Split Item" msgstr "_Odcepi postavko" #: ../ui/gjots.ui:470 msgid "Make a new item from the current selection" msgstr "Ustvari novo postavko iz trenutnega izbora" #: ../ui/gjots.ui:478 msgid "_Merge Items" msgstr "_Spoji postavke" #: ../ui/gjots.ui:481 msgid "Merge current items into the first one" msgstr "Spoji trenutne postavke v prvo postavko" #: ../ui/gjots.ui:489 msgid "S_ort Tree" msgstr "S_ortiraj drevo" #: ../ui/gjots.ui:492 ../ui/gjots.ui:1100 msgid "Popup the sort tree dialog" msgstr "Prikaži dialog za razvrščanje drevesa" #: ../ui/gjots.ui:506 msgid "Te_xt" msgstr "_Besedilo" #: ../ui/gjots.ui:514 msgid "_Format" msgstr "_Oblikuj" #: ../ui/gjots.ui:517 msgid "Format the current paragraph" msgstr "Oblikuj trenutni odstavek" #: ../ui/gjots.ui:526 msgid "_Time stamp" msgstr "Vstavi _datum in uro" #: ../ui/gjots.ui:529 msgid "Add a time/date stamp (see preferences)" msgstr "Vstavi datum/uro (glej možnosti)" #: ../ui/gjots.ui:538 msgid "_External Edit" msgstr "_Zunanji urejevalnik" #: ../ui/gjots.ui:541 msgid "Edit current item in an external editor" msgstr "Uredi trenutno postavko z zunanjim urejevalnikom" #: ../ui/gjots.ui:549 #, fuzzy msgid "_Sort Text" msgstr "Razvrsti besedilo" #: ../ui/gjots.ui:552 msgid "Popup the sort text dialog" msgstr "Prikaži dialog za razvrščanje besedila" #: ../ui/gjots.ui:566 msgid "_Help" msgstr "_Pomoč" #: ../ui/gjots.ui:574 msgid "_Read Manual" msgstr "_Preberi priročnik" #: ../ui/gjots.ui:577 msgid "Read the online manual (using gjots)" msgstr "Preberi priloženi priročnik s programom gjots" #: ../ui/gjots.ui:621 msgid "Popup the 'Find'menu" msgstr "" #: ../ui/gjots.ui:651 msgid "Find the previous occurance" msgstr "" #: ../ui/gjots.ui:667 msgid "Find the next occurance" msgstr "" #: ../ui/gjots.ui:693 msgid "Save gjots document" msgstr "Shrani dokument gjots" #: ../ui/gjots.ui:694 msgid "Save" msgstr "Shrani" #: ../ui/gjots.ui:708 msgid "Print this document" msgstr "Natisni ta dokument" #: ../ui/gjots.ui:709 ../ui/printDialog.ui:8 msgid "Print" msgstr "Natisni" #: ../ui/gjots.ui:738 msgid "Cut selected items" msgstr "Izreži izbrane postavke" #: ../ui/gjots.ui:739 msgid "Cut" msgstr "Izreži" #: ../ui/gjots.ui:753 msgid "Copy selected items" msgstr "Kopiraj izbrane postavke" #: ../ui/gjots.ui:754 msgid "Copy" msgstr "Kopiraj" #: ../ui/gjots.ui:768 msgid "Paste selected items" msgstr "Prilepi izbrane postavke" #: ../ui/gjots.ui:769 msgid "Paste" msgstr "Prilepi" #: ../ui/gjots.ui:798 msgid "Wrap the current paragraph to the current line length" msgstr "Prelomi trenutni odstavek po trenutni dolžini vrstice" #: ../ui/gjots.ui:799 msgid "Wrap" msgstr "Prelom" #: ../ui/gjots.ui:813 msgid "Invoke an external editor on the current item" msgstr "Uredi trenutno postavko z zunanjim urejevalnikom" #: ../ui/gjots.ui:814 msgid "Ext.Ed." msgstr "Zun.Ur." #: ../ui/gjots.ui:828 msgid "Add a time/date stamp (see prefs)" msgstr "Vstavi datum in čas (glej možnosti)" #: ../ui/gjots.ui:829 msgid "Date" msgstr "Datum" #: ../ui/gjots.ui:843 msgid "Popup the find and replace dialog" msgstr "Prikaži dialog najdi in zamenjaj" #: ../ui/gjots.ui:858 msgid "Popup the sort dialog" msgstr "Prikaži dialog za razvrščanje" #: ../ui/gjots.ui:859 ../ui/sortDialog.ui:15 msgid "Sort" msgstr "Razvrsti" #: ../ui/gjots.ui:873 msgid "Open gjots preferences window" msgstr "Odpri okno z možnostmi programa gjots" #: ../ui/gjots.ui:874 msgid "Prefs" msgstr "Možnosti" #: ../ui/gjots.ui:905 msgid "Create a new item" msgstr "Ustvari novo postavko" #: ../ui/gjots.ui:906 ../ui/treeContextMenu.ui:45 msgid "New Page" msgstr "Nova stran" #: ../ui/gjots.ui:921 ../ui/treeContextMenu.ui:52 msgid "New Child" msgstr "Nova podpostavka" #: ../ui/gjots.ui:951 msgid "Up" msgstr "Gor" #: ../ui/gjots.ui:966 msgid "Down" msgstr "Dol" #: ../ui/gjots.ui:981 ../ui/treeContextMenu.ui:74 msgid "Promote" msgstr "Povišaj" #: ../ui/gjots.ui:996 ../ui/treeContextMenu.ui:82 msgid "Demote" msgstr "Ponižaj" #: ../ui/gjots.ui:1025 msgid "Split the text selection into a new item" msgstr "Odcepi izbrano besedilo v novo postavko" #: ../ui/gjots.ui:1026 msgid "Split Item" msgstr "Odcepi postavko" #: ../ui/gjots.ui:1040 msgid "Merge selected items together" msgstr "Spoji izbrane postavke" #: ../ui/gjots.ui:1041 ../ui/treeContextMenu.ui:89 msgid "Merge Items" msgstr "Spoji postavke" #: ../ui/gjots.ui:1070 msgid "Hide all items except for the top level" msgstr "Skrij vse postavke razen najvišje ravni" #: ../ui/gjots.ui:1071 ../ui/treeContextMenu.ui:103 msgid "Hide All" msgstr "Skrij vse" #: ../ui/gjots.ui:1086 ../ui/treeContextMenu.ui:96 msgid "Show All" msgstr "Pokaži vse" #: ../ui/gjots.ui:1101 ../ui/treeContextMenu.ui:110 ../lib/sortDialog.py:394 msgid "Sort Tree" msgstr "Razvrsti drevo" #: ../ui/prefsDialog.ui:20 msgid "gjots: preferences" msgstr "gjots: možnosti" #: ../ui/prefsDialog.ui:49 msgid "Choose a font for the text panel" msgstr "Izberi pisavo za podokno z besedilom" #: ../ui/prefsDialog.ui:65 msgid "Date format:" msgstr "Format datuma:" #: ../ui/prefsDialog.ui:79 #, fuzzy msgid "Format for the timestamp function (see strftime(3)) eg %F" msgstr "Format za časovni žig (glej strftime(3))" #: ../ui/prefsDialog.ui:80 msgid "%F" msgstr "%F" #: ../ui/prefsDialog.ui:99 #, fuzzy msgid "" "External program to edit a page (%s is replaced by the name of the temporary " "edit file) eg xterm -e vi %s" msgstr "" "Zunanji urejevalnik strani (%s se zamenja z imenom začasne datoteke za " "urejanje)" #: ../ui/prefsDialog.ui:100 msgid "xterm -e vi %s" msgstr "xterm -e vi %s" #: ../ui/prefsDialog.ui:120 msgid "External editor" msgstr "Zunanji urejevalnik" #: ../ui/prefsDialog.ui:135 msgid "Text Line Length: " msgstr "Dolžina vrstice z besedilom:" #: ../ui/prefsDialog.ui:149 msgid "Line length for paragraph wrapping" msgstr "Dolžina vrstice za prelom odstavka" #: ../ui/prefsDialog.ui:172 msgid "Text formatter: " msgstr "Oblikovalnik besedila: " #: ../ui/prefsDialog.ui:184 #, fuzzy msgid "" "External program to pipe text for formatting (%d is replaced by the current " "line width) eg fmt -w %d " msgstr "" "Zunanji program, kateremu posredujemo (po cevi) besedilo v formatiranje (%d " "se zamenja s trenutno širino vrstice)" #: ../ui/prefsDialog.ui:185 msgid "fmt -w %d " msgstr "fmt -w %d" #: ../ui/prefsDialog.ui:202 msgid "Current text font" msgstr "Trenutna pisava za besedilo" #: ../ui/prefsDialog.ui:204 msgid "Courier 10 Pitch 10" msgstr "Courier 10 Pitch 10" #: ../ui/prefsDialog.ui:224 msgid "AutoSave interval:" msgstr "" #: ../ui/prefsDialog.ui:238 msgid "Seconds of inactivity to trigger an AutoSave (0 = no AutoSave)" msgstr "" #: ../ui/printDialog.ui:38 msgid "e.g. lpr: " msgstr "npr. lpr: " #: ../ui/printDialog.ui:54 msgid "print command (can be a shell expression)" msgstr "ukaz za tiskanje (lahko je lupinski izraz)" #: ../ui/printDialog.ui:76 msgid " Print command " msgstr " Ukaz za tiskanje " #: ../ui/printDialog.ui:104 msgid "Page" msgstr "Stran" #: ../ui/printDialog.ui:108 msgid "Print the current page" msgstr "Natisni trenutno stran" #: ../ui/printDialog.ui:120 msgid "Selection" msgstr "Izbor" #: ../ui/printDialog.ui:124 msgid "Print the selected pages or text" msgstr "Natisni izbrane strani ali besedilo" #: ../ui/printDialog.ui:137 msgid "All" msgstr "Vse" #: ../ui/printDialog.ui:141 msgid "Print the entire gjots file" msgstr "Natisni celotno datoteko gjots" #: ../ui/printDialog.ui:160 msgid " Print Range " msgstr " Interval za tisk " #: ../ui/printDialog.ui:193 msgid "Page feeds" msgstr "Nova stran" #: ../ui/printDialog.ui:197 msgid "Feeds a page before every new gjots item" msgstr "Vsako novo postavko natisne na novo stran" #: ../ui/printDialog.ui:209 msgid "Bold titles" msgstr "Krepki naslovi" #: ../ui/printDialog.ui:212 msgid "Print the gjots item titles in bold" msgstr "Natisne naslove postavk s krepko pisavo" #: ../ui/printDialog.ui:224 msgid "Auto Number" msgstr "Samooštevilčevanje" #: ../ui/printDialog.ui:251 msgid "Auto-number format: " msgstr "Format samooštevilčevanja: " #: ../ui/printDialog.ui:262 msgid "eg. 1 for 1.2.1, a" msgstr "npr. 1 za 1.2.1, a" #: ../ui/printDialog.ui:289 msgid " Print formatting " msgstr " Oblikovanje tiska " #: ../ui/sortDialog.ui:43 msgid "Ascending" msgstr "Naraščajoče" #: ../ui/sortDialog.ui:47 msgid "Sort in ascending order" msgstr "Razvrsti naraščajoče" #: ../ui/sortDialog.ui:58 msgid "Descending" msgstr "Padajoče" #: ../ui/sortDialog.ui:62 msgid "Sort in descending order" msgstr "Razvrsti padajoče" #: ../ui/sortDialog.ui:76 msgid "Alphabetic" msgstr "Po abecedi" #: ../ui/sortDialog.ui:80 msgid "Sort in alphabetic order" msgstr "Razvrsti po abecedi" #: ../ui/sortDialog.ui:93 msgid "Numeric" msgstr "Numerično" #: ../ui/sortDialog.ui:97 msgid "Sort in numeric order" msgstr "Razvrsti po numeričnem vrstnem redu" #: ../ui/sortDialog.ui:119 msgid " Sort Parameters " msgstr " Parametri razvrščanja " #: ../ui/sortDialog.ui:149 msgid "How many sublevels to sort (0 for none; -1 for 'all')" msgstr "Koliko podravni naj se razvrsti (0 za nobeno; -1 za 'vse')" #: ../ui/sortDialog.ui:171 msgid " Sort Sublevels " msgstr " Podravni razvrščanja " #: ../ui/treeContextMenu.ui:30 msgid "Select _All" msgstr "Izberi _Vse" #: ../ui/treeContextMenu.ui:117 msgid "Import" msgstr "Uvozi" #: ../ui/treeContextMenu.ui:124 msgid "Export" msgstr "Izvozi" #: ../gjots2:23 #, fuzzy msgid "" "Usage: gjots [OPTIONS] [FILENAME]\n" "A gtk/X11 jotter\n" "\n" "OPTIONS:\n" "-h, --help: this help\n" "-d, --debug: debug to stdout\n" "-t, --trace: trace lines as they execute\n" "-g 123x456, --geometry=123x456: initial geometry (X x Y)\n" "-p, --purge-password don't remember password\n" "-r, --readonly: no editing (or locking)\n" "-V, --version: print the version and exit\n" "\n" "FILENAME:\n" " gjots data filename (default is $HOME/.gjotsfile)\n" msgstr "" "Raba: gjots [MOŽNOSTI] [DATOTEKA]\n" "Jotter za gnome-2/X11\n" "\n" "MOŽNOSTI:\n" "-h, --help: ta pomoč\n" "-d, --debug: pošlji razhroščevalne informacije na " "stdout\n" "-t, --trace: sledi vrsticam med izvajanjem\n" "-g 123x456, --geometry=123x456: začetna geometrija (X x Y)\n" "-p, --purge-password\t\t\t\tne pomni gesla\n" "-r, --readonly: brez urejanja (ari zaklepanja)\n" "-V, --version: izpiši različico in zaključi\n" "\n" "DATOTEKA:\n" "\time podatkovne datoteke gjots (privzeto $HOME/.gjotsfile)\n" #: ../gjots2:89 #, python-format msgid "%s requires python%s or higher." msgstr "%s zahteva python%s ali višji." #: ../gjots2:102 msgid "Use -h for help\n" msgstr "Uporabite -h za pomoč\n" #: ../gjots2:116 #, python-format msgid "%s version %s" msgstr "%s različica %s" #: ../lib/gui.py:51 ../lib/gui.py:996 msgid "Text pasted" msgstr "Besedilo prilepljeno" #: ../lib/gui.py:179 #, python-format msgid "External formatter \"%s\" is not installed - can't format" msgstr "Zunanji oblikovalnik \"%s\" ni nameščen - ni moč formatirati" #: ../lib/gui.py:564 ../lib/gui.py:675 ../lib/gui.py:679 ../lib/gui.py:745 #: ../lib/gui.py:749 ../lib/gui.py:812 ../lib/gui.py:817 ../lib/gui.py:1043 #: ../lib/gui.py:1052 ../lib/gui.py:1138 ../lib/gui.py:1147 ../lib/gui.py:1183 #: ../lib/gui.py:1188 ../lib/gui.py:1219 ../lib/gui.py:1608 ../lib/gui.py:2382 #: ../lib/gui.py:2401 ../lib/gui.py:2430 ../lib/gui.py:2461 ../lib/file.py:466 #: ../lib/file.py:471 ../lib/sortDialog.py:329 ../lib/sortDialog.py:334 #: ../lib/printDialog.py:110 ../lib/printDialog.py:115 msgid "Nothing selected" msgstr "Nič ni izbrano" #: ../lib/gui.py:568 ../lib/gui.py:684 ../lib/gui.py:753 ../lib/gui.py:822 #: ../lib/gui.py:934 ../lib/gui.py:1224 ../lib/gui.py:2386 #: ../lib/sortDialog.py:345 msgid "No parent!" msgstr "Ni nadrejenega!" #: ../lib/gui.py:572 ../lib/gui.py:719 msgid "No child!" msgstr "Ni podrejenega!" #: ../lib/gui.py:580 ../lib/gui.py:693 msgid "Can't go any further" msgstr "Ni moč nadaljevati" #: ../lib/gui.py:616 ../lib/gui.py:840 msgid "Internal error!" msgstr "Notranja napaka!" #: ../lib/gui.py:757 msgid "Can't go further!" msgstr "Ni moč nadaljevati!" #: ../lib/gui.py:973 msgid "Text cut" msgstr "Besedilo izrezano" #: ../lib/gui.py:984 msgid "Text copied" msgstr "Besedilo kopirano" #: ../lib/gui.py:1005 msgid "All text selected" msgstr "Celotno besedilo izbrano" #: ../lib/gui.py:1015 msgid "All tree items selected" msgstr "Vse drevesne postavke izbrane" #: ../lib/gui.py:1023 msgid "Nothing selected!" msgstr "Nič ni izbrano!" #: ../lib/gui.py:1047 msgid "Can't merge the root item" msgstr "Ni moč združiti korenske postavke" #: ../lib/gui.py:1056 msgid "Nothing to merge" msgstr "Ni česa združiti" #: ../lib/gui.py:1063 msgid "Can't merge items that have children" msgstr "Ni moč združiti postavk, ki imajo podpostavke" #: ../lib/gui.py:1093 #, python-format msgid "%d items merged" msgstr "združeno %d postavk" #: ../lib/gui.py:1142 msgid "Can't delete the root item" msgstr "Ni moč izbrisati korenske postavke" #: ../lib/gui.py:1175 #, python-format msgid "%d tree items cut" msgstr "izrezano %d drevesnih postavk" #: ../lib/gui.py:1205 #, python-format msgid "%d tree items copied" msgstr "kopirano %d drevesnih postavk" #: ../lib/gui.py:1214 msgid "Nothing to paste" msgstr "Ni česa prilepiti" #: ../lib/gui.py:1237 msgid "Tree items pasted" msgstr "Drevesne postavke prilepljene" #: ../lib/gui.py:1258 #, fuzzy msgid "Can't write tempfile" msgstr "Ni moč pisati " #: ../lib/gui.py:1278 #, python-format msgid "Can't run '%s'" msgstr "Ni moč zagnati '%s'" #: ../lib/gui.py:1287 #, fuzzy msgid "Can't read tempfile " msgstr "Ni moč prebrati " #: ../lib/gui.py:1293 msgid "text changed by external editor" msgstr "besedilo spremenjeno z zunanjim urejevalnikom" #: ../lib/gui.py:1295 msgid "text not changed by external editor" msgstr "besedilo ni spremenjeno z zunanjim urejevalnikom" #: ../lib/gui.py:1314 msgid ": Error" msgstr ": Napaka" #: ../lib/gui.py:1327 #, python-format msgid "Can't lock file %s: already locked by process %d" msgstr "Ni moč zakleniti datoteke %s, ker jo je že zaklenil proces %d" #: ../lib/gui.py:1510 msgid ": Save?" msgstr ": Shranim?" #: ../lib/gui.py:1511 msgid "Save current work?" msgstr "Shranim tekoče delo?" #: ../lib/gui.py:1532 msgid "New file" msgstr "Nova datoteka" #: ../lib/gui.py:1556 msgid "Open file ..." msgstr "Odpri datoteko ..." #: ../lib/gui.py:1568 msgid "No changes to save" msgstr "Ni sprememb, ki bi jih bilo treba shraniti" #: ../lib/gui.py:1572 ../lib/gui.py:1593 msgid "Saved." msgstr "Shranjeno." #: ../lib/gui.py:1574 ../lib/gui.py:1595 ../lib/file.py:456 msgid "Not saved." msgstr "Ni shranjeno." #: ../lib/gui.py:1589 msgid "Nothing to save" msgstr "Ni česa shraniti" #: ../lib/gui.py:1591 ../lib/file.py:693 msgid "Save as ..." msgstr "Shrani kot ..." #: ../lib/gui.py:1605 msgid "Import from ..." msgstr "Uvozi iz ..." #: ../lib/gui.py:1616 msgid "Export to ..." msgstr "Izvozi v ..." #: ../lib/gui.py:1930 ../lib/gui.py:1933 #, python-format msgid "%s: Warning: opening gjots2 manual from %s\n" msgstr "%s: Pozor: odpiram priročnik gjots2 iz %s\n" #: ../lib/gui.py:2317 msgid "" "gjots2: warning: selection list is NULL. Skipping tree selection changed \n" "event." msgstr "" "gjots2: pozor: seznam izborov je NULL. Dogodek spremenjenega drevesnega " "izbora \n" "bo preskočen." #: ../lib/gui.py:2390 msgid "Can't go further" msgstr "Ni moč nadaljevati" #: ../lib/gui.py:2419 msgid "Tree is empty!" msgstr "Drevo je prazno!" #: ../lib/gui.py:2716 msgid "Bad regular expression" msgstr "Napačen logični izraz" #: ../lib/gui.py:2808 #, python-format msgid "%s: bad geometry specification: %s\n" msgstr "%s: napačna specifikacija geometrije: %s\n" #: ../lib/gui.py:2899 msgid "New...>>>" msgstr "Novo...>>>" #: ../lib/gui.py:2936 msgid "Install gtksourceview to enable undo/redo" msgstr "" #: ../lib/gui.py:3102 msgid ": version " msgstr ": različica " #: ../lib/find.py:70 ../lib/find.py:93 msgid "Not found" msgstr "Ni moč najti" #: ../lib/find.py:72 msgid "Found" msgstr "Najdeno" #: ../lib/find.py:96 msgid "Replace?" msgstr "Zamenjam?" #: ../lib/find.py:113 #, python-format msgid "%d substitutions" msgstr "%d zamenjav" #: ../lib/file.py:255 msgid "Enter password for " msgstr "Vnesite geslo za " #: ../lib/file.py:257 #, fuzzy msgid ": Enter Password" msgstr "gjots2: Vnesite geslo" #: ../lib/file.py:259 msgid "Password: " msgstr "Geslo: " #: ../lib/file.py:260 msgid "Confirm: " msgstr "Potrdi: " #: ../lib/file.py:268 msgid "Password was not confirmed" msgstr "Geslo ni potrjeno" #: ../lib/file.py:275 msgid "Could not find the ccrypt program - please install it and try again" msgstr "Ni moč najti programa ccrypt - namestite ga in poskusite znova" #: ../lib/file.py:308 msgid "" "Neither gpg2 nor gpg are available - please install one (perhaps package " "gnupg2) and try again" msgstr "" #: ../lib/file.py:328 #, fuzzy msgid "No openssl program - please install it and try again" msgstr "Ni moč najti programa openssl - namestite ga in poskusite znova" #: ../lib/file.py:354 #, fuzzy msgid "No org2gjots program - please install it and try again" msgstr "Ni moč najti programa openssl - namestite ga in poskusite znova" #: ../lib/file.py:412 msgid "Can't open \"" msgstr "Ni moč odpreti \"" #: ../lib/file.py:415 msgid "Bad password" msgstr "Napačno geslo" #: ../lib/file.py:418 msgid "File cannot be locked" msgstr "Datoteke ni moč zakleniti" #: ../lib/file.py:431 ../lib/file.py:489 msgid "failed!" msgstr "" #: ../lib/file.py:457 msgid "Can't write to " msgstr "Ni moč pisati v " #: ../lib/file.py:460 msgid "Can't lock file" msgstr "Ni moč zakleniti datoteke" #: ../lib/file.py:597 #, python-format msgid "%s is not readable" msgstr "%s ni moč prebrati " #: ../lib/file.py:613 #, python-format msgid "%s: no permission" msgstr "%s: ni dovoljenja" #: ../lib/file.py:615 #, python-format msgid "%s: locked by process number %d" msgstr "%s: zaklenil proces št. %d" #: ../lib/file.py:617 #, fuzzy msgid ": can't lock file." msgstr "gjots2: ni moč zakleniti datoteke." #: ../lib/file.py:705 msgid "That file is already open!" msgstr "Datoteka je že odprta!" #: ../lib/file.py:713 ../lib/file.py:787 #, fuzzy msgid ": file has changed" msgstr "gjots2: %s se je spremenil" #: ../lib/file.py:714 #, fuzzy, python-format msgid "File changed since it was read - copied to %s " msgstr "" "'%s' se je spremenil, odkar je bil prebran.\n" "vseeno prepišem?" #: ../lib/file.py:731 #, python-format msgid "%s is locked by pid %d" msgstr "%s je zaklenil proces pid %d" #: ../lib/file.py:735 msgid "Can't make a lockfile in " msgstr "Ni moč ustvariti datoteke za zaklepanje v " #: ../lib/file.py:748 #, python-format msgid "%s is not writable" msgstr "%s ni pisljiv" #: ../lib/file.py:751 #, fuzzy, python-format msgid ": %s already exists." msgstr "gjots2: %s že obstaja." #: ../lib/file.py:752 #, python-format msgid "overwrite %s?" msgstr "prepišem %s?" #: ../lib/file.py:788 #, python-format msgid "File changed since it was read - so it was copied to %s " msgstr "" #: ../lib/sortDialog.py:125 msgid "_get_settings: Cant find sortAscendingRadioButton" msgstr "_get_settings: Ni moč najti sortAscendingRadioButton" #: ../lib/sortDialog.py:165 msgid "Internal error" msgstr "Notranja napaka" #: ../lib/sortDialog.py:303 msgid "Nothing to sort!" msgstr "Ni česa razvrščati!" #: ../lib/sortDialog.py:398 msgid "Sort Text" msgstr "Razvrsti besedilo" #~ msgid "Recent" #~ msgstr "Nedavne datoteke" #, fuzzy #~ msgid "Exit gjots" #~ msgstr "Končaj gjots" #~ msgid "Create a new child " #~ msgstr "Ustvari novo podpostavko" #, fuzzy #~ msgid "About gjots2" #~ msgstr "Končaj gjots" #, fuzzy #~ msgid " Find: " #~ msgstr " Najdi:" #, python-format #~ msgid "%s requires pygtk-%s.\n" #~ msgstr "%s zahteva pygtk-%s.\n" #~ msgid "not initialised" #~ msgstr "ni inicializirano" #~ msgid "pygtk-2.2 is required for this application!" #~ msgstr "ta aplikacija zahteva pygtk-2.2!" #~ msgid "%s: Warning: running modules from %s\n" #~ msgstr "%s: Pozor: zaganjam module iz %s\n" #~ msgid "Could not find the gpg program - please install it and try again" #~ msgstr "Ni moč najti programa gpg - namestite ga in poskusite znova" #~ msgid "_Settings" #~ msgstr "_Nastavitve" #~ msgid "gtk-new" #~ msgstr "gtk-new" #~ msgid "gtk-open" #~ msgstr "gtk-open" #~ msgid "gtk-save" #~ msgstr "gtk-save" #~ msgid "gtk-save-as" #~ msgstr "gtk-save-as" #~ msgid "gtk-print" #~ msgstr "gtk-print" #~ msgid "gtk-quit" #~ msgstr "gtk-quit" #~ msgid "gtk-undo" #~ msgstr "gtk-undo" #~ msgid "gtk-redo" #~ msgstr "gtk-redo" #~ msgid "gtk-cut" #~ msgstr "gtk-cut" #~ msgid "gtk-copy" #~ msgstr "gtk-copy" #~ msgid "gtk-paste" #~ msgstr "gtk-paste" #~ msgid "gtk-select-all" #~ msgstr "gtk-select-all" #~ msgid "gtk-find" #~ msgstr "gtk-find" #~ msgid "gtk-preferences" #~ msgstr "gtk-preferences" #~ msgid "gtk-go-up" #~ msgstr "gtk-go-up" #~ msgid "gtk-go-down" #~ msgstr "gtk-go-down" #~ msgid "gtk-about" #~ msgstr "gtk-about" #~ msgid "gtk-ok" #~ msgstr "gtk-ok" #~ msgid "gtk-no" #~ msgstr "gtk-no" #~ msgid "gtk-cancel" #~ msgstr "gtk-cancel" #~ msgid "gtk-select-font" #~ msgstr "gtk-select-font" �������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/sl/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0013762�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/sl/LC_MESSAGES/���������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0015547�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/sl/LC_MESSAGES/gjots2.mo������������������������������������������������������������0000664�0000000�0000000�00000035036�14016300235�0017323�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������d��7���������� ����� ������������������������������������������� ����� �����2�����I�����\�����o�� �����+�����#������������� ����������'�� ���/��'���:��!���b����������������� ����� ����� ���������� ����� ���������� ��������"�����=�����R�����c�����u��0����������$���������� �������������+�����;�� ���B�����c�����i�� ���o�����y�����~��C����������������������������!�����3�����7�����J�����R�� ���W�����d�� ���k�����v�������'���������������%����� ������������� ��7�����(���T�����}������������ �����7������������������ ������������'���"��#���J��5���n���������������������������-�����"���'��*���J�� ���u�� �����&�������������������� ���������� ��� ������� ��������(�� ���;�� ���E�� ���P�� ���Z�����e�����v��������������������������� ������������������������� ���!�����,�� ���G�����R�����X��!���m�������������������������������������#����� ���>�����_�����s�� ���{��$��������������� ��������������� ���������� ������������������&�����-��(���>�� ���g�� ���s�� �����.�����+���������������%��������# �����> �� ���C �� ���M �����W �����p ����� ����� �� ��� ��(��� �� ��� ����� ����� !�����!�����$!�� ���7!�����C!�����L!�� ���]!�����i!��#���!�� ���!��%���!�����!�����!�� ��� "�����"�����'"�� ���9"�����C"�����F"�����W"��5���\"�����"�����"�����"�����"�����"�����"�� ���"�����"�� ���"�� ���"�� ���"�� ���"�� ���#�� ���#�� ���#�����&#�����,#��1���2#�� ���d#�����o#�� ���#��P���#�����#�����#�����#�� ���#��)��� $�����7$��#���W$�����{$�����$��k��$�� ���%����� &�����&�����/&�����C&�����]&�����v&�����y&�� ���&�����&�����&�����&�����&�� ���'�����'�����6'��+���G'��*���s'�����'�����'�����'�� ���'�� ���'��!���'��%���(�����6(�����:(�����S(�� ���q(�����|(�����(�����(�����(�����(�����(�����(��#���(�����)�����2)�����F)�����[)��?���v)��+���)��/���)��#���*�����6*�����H*�����]*�� ���o*��$���y*�����*�����*�����*�����*�����*��?���*�����+�����++�����D+�����Z+�����m+�����+�����+�� ���+�����+�����+�����+�� ���+�����+�����+��0���+�����,,�����>,��(���E,�� ���n,�����{,�����,��=���,��)���,�����,�����-����� -�����2-��:���B-�����}-�����-�����-�����-�� ���-��(���-��(���-��:��� .�����D.�� ���J.�� ���W.�����x.�����.��0���.��#���.��*���.�����/�����2/��'���A/�����i/�����/�����/�����/�� ���/�����/�� ���/�� ���/��*���/����� 0�����00�� ���@0�� ���N0�����\0�����l0�����}0�����0�����0�����0�� ���0�����0�����0��&���1�� ���/1�����91�� ���?1�����J1�����\1�����d1�����l1��!���1�� ���1��)���1��(���1�� ���2�����%2�����-2�����D2��'���c2��#���2�����2�����2�����2��/���2����� 3�����3�� ���#3�� ���03�� ���:3�����D3�����T3�����[3�����j3�����3�� ���3�� ���3��-���3�� ���3�� ���3�����3��,���3��%���)4�� ���O4�����[4��-���v4��&���4�����4�����4�����4�����4����� 5�����!5��$���45�����Y5��'���i5�����5�����5�����5�� ���5�����5�����5�����6�����"6�����:6�����O6��/���g6�����6��.���6�����6�����6�����7�����)7�����:7�� ���X7�����f7�����j7�����7��6���7�����7�����7�����7�� ���7�����7�����7�� ���7����� 8�����8�� ���!8�����-8�����A8�� ���Q8�����^8�����o8�����8�����8��5���8�� ���8�����8�� ���8��^���8�����P9�����a9�����h9�� ���o9��*���}9��-���9��0���9�����:�����:������������V���������|������<���,���0����������[�����������������������������+���X�������\��������������������������&���K�����������������I������T�����������������=��������������J������a���.�������������v�����������������(������O�����������������b��� �������������z���6���R����������Y����������^������D���������2�����������������������9���������w������u������ ���������x�������P�������������m����������������n�������t���������������k��� ��������������������������M������������G������1�������g���}������/�������������Z���������8����������r���~�������������C����������y��������������������A����������?�������������:���s���������������������������������4���{���3���N������e����������-���j����������������������������W������'������F���p��������������������������#������"����������5���L���������� ���q��������������d���@����������;���������������������i���������S����������������$���E�����������*���B���o������� ���l�������U�����������Q���������������������������������H���������!���c�������f�����������`���_���)���%�������������������������]������7���>������������������������������������������h����������� ���������� Options � Print Range � Print command � Print formatting � Sort Parameters � Sort Sublevels �%F�%d items merged�%d substitutions�%d tree items copied�%d tree items cut�%s is locked by pid %d�%s is not readable�%s is not writable�%s requires python%s or higher.�%s version %s�%s: Warning: opening gjots2 manual from %s �%s: bad geometry specification: %s �%s: locked by process number %d�%s: no permission�: Error�: Save?�: version �Add a time/date stamp (see preferences)�Add a time/date stamp (see prefs)�All�All text selected�All tree items selected�Alphabetic�Ascending�Auto Number�Auto-number format: �Backwards�Bad password�Bad regular expression�Bold titles�Can't delete the root item�Can't go any further�Can't go further�Can't go further!�Can't lock file�Can't lock file %s: already locked by process %d�Can't make a lockfile in �Can't merge items that have children�Can't merge the root item�Can't open "�Can't run '%s'�Can't write to �Cancel�Choose a font for the text panel�Clear�Close�Confirm: �Copy�Copy selected items�Could not find the ccrypt program - please install it and try again�Courier 10 Pitch 10�Create a new child�Create a new item�Create a new page�Current text font�Cut�Cut selected items�D_emote�Date�Date format:�Demote�Descending�Don't ignore case�Down�Edit current item in an external editor�Enter password for �Export�Export selected items to a gjots file�Export to ...�Ext.Ed.�External editor�External formatter "%s" is not installed - can't format�Feeds a page before every new gjots item�File cannot be locked�Find�Find & replace�Find Next�Find string is a regular expression (see 'man 7 regex')�Find:�Format the current paragraph�Found�Global�Hide All�Hide all items except for the top level�Hide all items except the top level�How many sublevels to sort (0 for none; -1 for 'all')�Import�Import from ...�Import items from a gjots file�Internal error�Internal error!�Invoke an external editor on the current item�Line length for paragraph wrapping�Make a new item from the current selection�Match case�Merge Items�Merge current items into the first one�Merge selected items together�Move selection down�Move selection up�New Child�New Page�New _Child�New file�New...>>>�No changes to save�No child!�No parent!�Not found�Not saved.�Nothing selected�Nothing selected!�Nothing to merge�Nothing to paste�Nothing to save�Nothing to sort!�Numeric�Open file ...�Open file read only�Open gjots preferences window�P_romote�Page�Page feeds�Password was not confirmed�Password: �Paste�Paste selected items�Popup the find and replace dialog�Popup the sort dialog�Popup the sort text dialog�Popup the sort tree dialog�Prefs�Print�Print the current page�Print the entire gjots file�Print the gjots item titles in bold�Print the selected pages or text�Print this document�Promote�Read only�Read the online manual (using gjots)�Regular Expression�Replace�Replace All�Replace:�Replace?�S_ort Tree�Save�Save as ...�Save current work?�Save gjots document�Saved.�Search backwards�Searches entire file not just this entry�Select Font�Select _All�Selection�Selection becomes a child of the previous item�Selection becomes a sibling to their parent�Show All�Show _Icon Text�Show all items below the current item�Show the related icon text�Sort�Sort Text�Sort Tree�Sort in alphabetic order�Sort in ascending order�Sort in descending order�Sort in numeric order�Split Item�Split the text selection into a new item�Status _Bar�String to replace�String to search for�Te_xt�Text Line Length: �Text copied�Text cut�Text formatter: �Text pasted�That file is already open!�To open the file in read-only mode.�To_p Toolbar�Toggle the read-only flag if possible�Toggles the main toolbar�Toggles tree tool bar�Tre_e Toolbar�Tree is empty!�Tree items pasted�Try again�Up�Use -h for help �Wrap�Wrap the current paragraph to the current line length�_Edit�_Export�_External Edit�_File�_Format�_Help�_Hide All�_Import�_Merge Items�_New Page�_Read Manual�_Read-only�_Show All�_Split Item�_Time stamp�_Tree�_View�_get_settings: Cant find sortAscendingRadioButton�e.g. lpr: �eg. 1 for 1.2.1, a�fmt -w %d �gjots2: warning: selection list is NULL. Skipping tree selection changed event.�gjots: preferences�label1�label2�overwrite %s?�print command (can be a shell expression)�text changed by external editor�text not changed by external editor�window1�xterm -e vi %s�Project-Id-Version: gjots2 2.3.0 Report-Msgid-Bugs-To: PO-Revision-Date: 2012-02-25 18:28+0200 Last-Translator: Aleksa Šušulić <susulic@gmail.com> Language-Team: Slovenian Language: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Poedit-Language: Slovenian X-Poedit-Country: Slovenia X-Poedit-SourceCharset: utf-8 � Možnosti� Interval za tisk � Ukaz za tiskanje � Oblikovanje tiska � Parametri razvrščanja � Podravni razvrščanja �%F�združeno %d postavk�%d zamenjav�kopirano %d drevesnih postavk�izrezano %d drevesnih postavk�%s je zaklenil proces pid %d�%s ni moč prebrati �%s ni pisljiv�%s zahteva python%s ali višji.�%s različica %s�%s: Pozor: odpiram priročnik gjots2 iz %s �%s: napačna specifikacija geometrije: %s �%s: zaklenil proces št. %d�%s: ni dovoljenja�: Napaka�: Shranim?�: različica �Vstavi datum/uro (glej možnosti)�Vstavi datum in čas (glej možnosti)�Vse�Celotno besedilo izbrano�Vse drevesne postavke izbrane�Po abecedi�Naraščajoče�Samooštevilčevanje�Format samooštevilčevanja: �Nazaj�Napačno geslo�Napačen logični izraz�Krepki naslovi�Ni moč izbrisati korenske postavke�Ni moč nadaljevati�Ni moč nadaljevati�Ni moč nadaljevati!�Ni moč zakleniti datoteke�Ni moč zakleniti datoteke %s, ker jo je že zaklenil proces %d�Ni moč ustvariti datoteke za zaklepanje v �Ni moč združiti postavk, ki imajo podpostavke�Ni moč združiti korenske postavke�Ni moč odpreti "�Ni moč zagnati '%s'�Ni moč pisati v �Prekliči�Izberi pisavo za podokno z besedilom�Počisti�Zapri�Potrdi: �Kopiraj�Kopiraj izbrane postavke�Ni moč najti programa ccrypt - namestite ga in poskusite znova�Courier 10 Pitch 10�Ustvari novo podpostavko�Ustvari novo postavko�Ustvari novo stran�Trenutna pisava za besedilo�Izreži�Izreži izbrane postavke�Po_nižaj�Datum�Format datuma:�Ponižaj�Padajoče�Ne zanemari velikosti črk�Dol�Uredi trenutno postavko z zunanjim urejevalnikom�Vnesite geslo za �Izvozi�Izvozi izbrane postavke v datoteko gjots�Izvozi v ...�Zun.Ur.�Zunanji urejevalnik�Zunanji oblikovalnik "%s" ni nameščen - ni moč formatirati�Vsako novo postavko natisne na novo stran�Datoteke ni moč zakleniti�Najdi�Najdi in zamenjaj�Najdi naslednje�Iskani črkovni niz je logični izraz (glej 'man 7 regex')�Najdi:�Oblikuj trenutni odstavek�Najdeno�Povsod�Skrij vse�Skrij vse postavke razen najvišje ravni�Skrij vse postavke razen najvišje ravni�Koliko podravni naj se razvrsti (0 za nobeno; -1 za 'vse')�Uvozi�Uvozi iz ...�Uvozi postavke iz datoteke gjots�Notranja napaka�Notranja napaka!�Uredi trenutno postavko z zunanjim urejevalnikom�Dolžina vrstice za prelom odstavka�Ustvari novo postavko iz trenutnega izbora�Upoštevaj velikost črk�Spoji postavke�Spoji trenutne postavke v prvo postavko�Spoji izbrane postavke�Premakni izbor navzdol�Premakni izbor navzgor�Nova podpostavka�Nova stran�Nova _podpostavka�Nova datoteka�Novo...>>>�Ni sprememb, ki bi jih bilo treba shraniti�Ni podrejenega!�Ni nadrejenega!�Ni moč najti�Ni shranjeno.�Nič ni izbrano�Nič ni izbrano!�Ni česa združiti�Ni česa prilepiti�Ni česa shraniti�Ni česa razvrščati!�Numerično�Odpri datoteko ...�Odpri datoteko samo za branje�Odpri okno z možnostmi programa gjots�Po_višaj�Stran�Nova stran�Geslo ni potrjeno�Geslo: �Prilepi�Prilepi izbrane postavke�Prikaži dialog najdi in zamenjaj�Prikaži dialog za razvrščanje�Prikaži dialog za razvrščanje besedila�Prikaži dialog za razvrščanje drevesa�Možnosti�Natisni�Natisni trenutno stran�Natisni celotno datoteko gjots�Natisne naslove postavk s krepko pisavo�Natisni izbrane strani ali besedilo�Natisni ta dokument�Povišaj�Samo za branje�Preberi priloženi priročnik s programom gjots�Logični izraz�Zamenjaj�Zamenjaj vse�Zamenjaj:�Zamenjam?�S_ortiraj drevo�Shrani�Shrani kot ...�Shranim tekoče delo?�Shrani dokument gjots�Shranjeno.�Išči nazaj�Preišče celotno datoteko, ne le to postavko�Izberi pisavo�Izberi _Vse�Izbor�Izbor postane podpostavka prejšnje postavke�Izbor postane enakovreden nadrejenemu�Pokaži vse�Pokaži besedilo k _ikonam�Pokaži vse podpostavke pod trenutno postavko�Pokaži pripadajoče besedilo k ikonam�Razvrsti�Razvrsti besedilo�Razvrsti drevo�Razvrsti po abecedi�Razvrsti naraščajoče�Razvrsti padajoče�Razvrsti po numeričnem vrstnem redu�Odcepi postavko�Odcepi izbrano besedilo v novo postavko�Vrstica _stanja�Zamenjaj s tem črkovnim nizom�Najdi ta črkovni niz�_Besedilo�Dolžina vrstice z besedilom:�Besedilo kopirano�Besedilo izrezano�Oblikovalnik besedila: �Besedilo prilepljeno�Datoteka je že odprta!�Za odpiranje datoteke v načinu samo za branje.�_Zgornja orodna vrstica�Po možnosti preklopi zastavico samo za branje�Preklopi glavno orodno vrstico�Preklopi drevesno vrstico�_Drevesna vrstica�Drevo je prazno!�Drevesne postavke prilepljene�Poskusi znova�Gor�Uporabite -h za pomoč �Prelom�Prelomi trenutni odstavek po trenutni dolžini vrstice�_Uredi�_Izvozi�_Zunanji urejevalnik�_Datoteka�_Oblikuj�_Pomoč�_Skrij vse�_Uvozi�_Spoji postavke�_Nova stran�_Preberi priročnik�_Samo za branje�_Pokaži vse�_Odcepi postavko�Vstavi _datum in uro�_Drevo�_Pogled�_get_settings: Ni moč najti sortAscendingRadioButton�npr. lpr: �npr. 1 za 1.2.1, a�fmt -w %d�gjots2: pozor: seznam izborov je NULL. Dogodek spremenjenega drevesnega izbora bo preskočen.�gjots: možnosti�label1�label2�prepišem %s?�ukaz za tiskanje (lahko je lupinski izraz)�besedilo spremenjeno z zunanjim urejevalnikom�besedilo ni spremenjeno z zunanjim urejevalnikom�window1�xterm -e vi %s���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/sv.po�������������������������������������������������������������������������������0000664�0000000�0000000�00000063137�14016300235�0014346�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: gjots2 2.3.15\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-30 18:18+1000\n" "PO-Revision-Date: 2012-05-11 08:58+1000\n" "Last-Translator: Morgan Antonsson <morgan.antonsson@gmail.com>\n" "Language-Team: Swedish <LL@li.org>\n" "Language: Swedish\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/about.ui:12 msgid "Copyright Bob Hepple 2002-2020" msgstr "" #: ../ui/about.ui:13 msgid "http://bhepple.freeshell.org/gjots2" msgstr "" #: ../ui/about.ui:25 msgid "\n" msgstr "" #: ../ui/fileDialog.ui:69 msgid "Open file read only" msgstr "Öppna som skrivskyddad" #: ../ui/fileDialog.ui:73 msgid "To open the file in read-only mode." msgstr "Öppna en fil i skrivskyddat läge." #: ../ui/findDialog.ui:8 msgid "Find & replace" msgstr "Sök och ersätt" #: ../ui/findDialog.ui:34 msgid "Find:" msgstr "Sök efter:" #: ../ui/findDialog.ui:47 msgid "Replace:" msgstr "Ersätt med:" #: ../ui/findDialog.ui:64 msgid "String to search for" msgstr "Sträng att söka efter" #: ../ui/findDialog.ui:80 msgid "String to replace" msgstr "Sträng att ersätta med" #: ../ui/findDialog.ui:114 ../ui/gjots.ui:844 msgid "Find" msgstr "Sök" #: ../ui/findDialog.ui:130 msgid "Close" msgstr "Stäng" #: ../ui/findDialog.ui:146 msgid "Replace" msgstr "Ersätt" #: ../ui/findDialog.ui:162 msgid "Replace All" msgstr "Ersätt alla" #: ../ui/findDialog.ui:178 msgid "Cancel" msgstr "Avbryt" #: ../ui/findDialog.ui:197 msgid "Clear" msgstr "Töm" #: ../ui/findDialog.ui:257 msgid "Match case" msgstr "Skiftlägeskänslig" #: ../ui/findDialog.ui:261 msgid "Don't ignore case" msgstr "Gör skillnad på gemener och versaler" #: ../ui/findDialog.ui:271 msgid "Regular Expression" msgstr "Reguljärt uttryck" #: ../ui/findDialog.ui:275 msgid "Find string is a regular expression (see 'man 7 regex')" msgstr "Söksträngen är ett reguljärt uttryck (se 'man 7 regex')" #: ../ui/findDialog.ui:287 msgid "Backwards" msgstr "Bakåt" #: ../ui/findDialog.ui:291 msgid "Search backwards" msgstr "Sök baklänges" #: ../ui/findDialog.ui:306 msgid "Global" msgstr "Global sökning" #: ../ui/findDialog.ui:310 msgid "Searches entire file not just this entry" msgstr "Söker i hela filen, inte bara på den här sidan" #: ../ui/findDialog.ui:327 msgid " Options " msgstr " Inställningar " #: ../ui/fontDialog.ui:9 msgid "Select Font" msgstr "Välj typsnitt" #: ../ui/generalDialog.ui:9 msgid "window1" msgstr "fönster1" #: ../ui/generalDialog.ui:22 ../ui/generalDialog.ui:60 #: ../ui/generalDialog.ui:115 msgid "label1" msgstr "etikett1" #: ../ui/generalDialog.ui:46 msgid "label2" msgstr "etikett2" #: ../ui/generalDialog.ui:193 msgid "Try again" msgstr "Försök igen" #: ../ui/generalDialog.ui:209 msgid "Read only" msgstr "Skrivskyddad" #: ../ui/gjots.ui:24 msgid "_File" msgstr "_Arkiv" #: ../ui/gjots.ui:88 #, fuzzy msgid "_Import" msgstr "Importera" #: ../ui/gjots.ui:91 msgid "Import items from a gjots file" msgstr "Importera sidor från en gjots-fil" #: ../ui/gjots.ui:99 msgid "_Export" msgstr "_Exportera" #: ../ui/gjots.ui:102 msgid "Export selected items to a gjots file" msgstr "Exportera valda sidor till en gjots-fil" #: ../ui/gjots.ui:135 msgid "Toggle the read-only flag if possible" msgstr "Försök ändra skrivskyddsflaggan" #: ../ui/gjots.ui:136 msgid "_Read-only" msgstr "Skrivsk_yddad" #: ../ui/gjots.ui:152 msgid "Exit gjots2" msgstr "Avsluta gjots2" #: ../ui/gjots.ui:167 msgid "_Edit" msgstr "_Redigera" #: ../ui/gjots.ui:263 #, fuzzy msgid "Find Next" msgstr "Sök" #: ../ui/gjots.ui:273 msgid "Find Previous" msgstr "Sök föregående" #: ../ui/gjots.ui:299 msgid "_View" msgstr "_Visa" #: ../ui/gjots.ui:307 msgid "_Show All" msgstr "_Visa alla" #: ../ui/gjots.ui:310 ../ui/gjots.ui:1085 msgid "Show all items below the current item" msgstr "Visa alla sidor under vald sida" #: ../ui/gjots.ui:318 msgid "_Hide All" msgstr "_Göm alla" #: ../ui/gjots.ui:321 msgid "Hide all items except the top level" msgstr "Göm alla sidor utom dem på toppnivån" #: ../ui/gjots.ui:337 msgid "Toggles the main toolbar" msgstr "Visar/gömmer huvudverktygsraden" #: ../ui/gjots.ui:338 msgid "To_p Toolbar" msgstr "_Huvudverktygsrad" #: ../ui/gjots.ui:347 msgid "Toggles tree tool bar" msgstr "Visar/gömmer trädverktygsraden" #: ../ui/gjots.ui:348 msgid "Tre_e Toolbar" msgstr "_Trädverktygsrad" #: ../ui/gjots.ui:357 msgid "Show the related icon text" msgstr "Visa text för varje ikon" #: ../ui/gjots.ui:358 msgid "Show _Icon Text" msgstr "Visa _ikontext" #: ../ui/gjots.ui:367 msgid "Status _Bar" msgstr "_Statuspanel" #: ../ui/gjots.ui:380 msgid "_Tree" msgstr "_Träd" #: ../ui/gjots.ui:388 msgid "_New Page" msgstr "Ny _sida" #: ../ui/gjots.ui:391 msgid "Create a new page" msgstr "Skapa en ny sida" #: ../ui/gjots.ui:400 msgid "New _Child" msgstr "Ny unde_rsida" #: ../ui/gjots.ui:403 ../ui/gjots.ui:920 msgid "Create a new child" msgstr "Skapa en ny undersida" #: ../ui/gjots.ui:420 ../ui/gjots.ui:950 msgid "Move selection up" msgstr "Flytta upp" #: ../ui/gjots.ui:431 ../ui/gjots.ui:965 msgid "Move selection down" msgstr "Flytta ned" #: ../ui/gjots.ui:439 msgid "P_romote" msgstr "U_pphöj" #: ../ui/gjots.ui:442 ../ui/gjots.ui:980 msgid "Selection becomes a sibling to their parent" msgstr "Vald sida blir ett syskon till sin förälder" #: ../ui/gjots.ui:450 msgid "D_emote" msgstr "N_edsänk" #: ../ui/gjots.ui:453 ../ui/gjots.ui:995 msgid "Selection becomes a child of the previous item" msgstr "Vald sida blir ett barn till föregående sida" #: ../ui/gjots.ui:467 msgid "_Split Item" msgstr "_Dela upp sida" #: ../ui/gjots.ui:470 msgid "Make a new item from the current selection" msgstr "Skapa en ny sida av vald text" #: ../ui/gjots.ui:478 msgid "_Merge Items" msgstr "Slå _ihop sidor" #: ../ui/gjots.ui:481 msgid "Merge current items into the first one" msgstr "Slå ihop valda sidor under den första sidan" #: ../ui/gjots.ui:489 msgid "S_ort Tree" msgstr "S_ortera träd" #: ../ui/gjots.ui:492 ../ui/gjots.ui:1100 msgid "Popup the sort tree dialog" msgstr "Öppna dialogrutan för trädsortering" #: ../ui/gjots.ui:506 msgid "Te_xt" msgstr "Te_xt" #: ../ui/gjots.ui:514 msgid "_Format" msgstr "_Formattera" #: ../ui/gjots.ui:517 msgid "Format the current paragraph" msgstr "Formattera valt avsnitt" #: ../ui/gjots.ui:526 msgid "_Time stamp" msgstr "_Infoga datum och tid" #: ../ui/gjots.ui:529 msgid "Add a time/date stamp (see preferences)" msgstr "Infoga datum och tid (se inställningar)" #: ../ui/gjots.ui:538 msgid "_External Edit" msgstr "_Extern redigerare" #: ../ui/gjots.ui:541 msgid "Edit current item in an external editor" msgstr "Redigera vald sida i en extern redigerare" #: ../ui/gjots.ui:549 msgid "_Sort Text" msgstr "_Sortera text" #: ../ui/gjots.ui:552 msgid "Popup the sort text dialog" msgstr "Öppna dialogrutan för textsortering" #: ../ui/gjots.ui:566 msgid "_Help" msgstr "_Hjälp" #: ../ui/gjots.ui:574 msgid "_Read Manual" msgstr "_Läs instruktioner" #: ../ui/gjots.ui:577 msgid "Read the online manual (using gjots)" msgstr "Läs instruktioner från internet (m.h.a. gjots)" #: ../ui/gjots.ui:621 msgid "Popup the 'Find'menu" msgstr "" #: ../ui/gjots.ui:651 #, fuzzy msgid "Find the previous occurance" msgstr "Sök föregående" #: ../ui/gjots.ui:667 msgid "Find the next occurance" msgstr "" #: ../ui/gjots.ui:693 msgid "Save gjots document" msgstr "Spara gjots-dokument" #: ../ui/gjots.ui:694 msgid "Save" msgstr "Spara" #: ../ui/gjots.ui:708 msgid "Print this document" msgstr "Skriv ut dokumentet" #: ../ui/gjots.ui:709 ../ui/printDialog.ui:8 msgid "Print" msgstr "Skriv ut" #: ../ui/gjots.ui:738 msgid "Cut selected items" msgstr "Klipp ut markeringen" #: ../ui/gjots.ui:739 msgid "Cut" msgstr "Klipp ut" #: ../ui/gjots.ui:753 msgid "Copy selected items" msgstr "Kopiera markeringen" #: ../ui/gjots.ui:754 msgid "Copy" msgstr "Kopiera" #: ../ui/gjots.ui:768 msgid "Paste selected items" msgstr "Klistra in från urklipp" #: ../ui/gjots.ui:769 msgid "Paste" msgstr "Klistra in" #: ../ui/gjots.ui:798 msgid "Wrap the current paragraph to the current line length" msgstr "Radbryt vald paragraf vid inställd radlängd" #: ../ui/gjots.ui:799 msgid "Wrap" msgstr "Radbryt" #: ../ui/gjots.ui:813 msgid "Invoke an external editor on the current item" msgstr "Öppna extern redigerare för vald sida" #: ../ui/gjots.ui:814 msgid "Ext.Ed." msgstr "Ext. red." #: ../ui/gjots.ui:828 msgid "Add a time/date stamp (see prefs)" msgstr "Infoga datum och (se inställningar)" #: ../ui/gjots.ui:829 msgid "Date" msgstr "Datum/tid" #: ../ui/gjots.ui:843 msgid "Popup the find and replace dialog" msgstr "Öppna dialogrutan för sök och ersätt" #: ../ui/gjots.ui:858 msgid "Popup the sort dialog" msgstr "Öppna dialogrutan för sortering" #: ../ui/gjots.ui:859 ../ui/sortDialog.ui:15 msgid "Sort" msgstr "Sortera" #: ../ui/gjots.ui:873 msgid "Open gjots preferences window" msgstr "Öppna fönstret för gjots inställningar" #: ../ui/gjots.ui:874 msgid "Prefs" msgstr "Inställningar" #: ../ui/gjots.ui:905 msgid "Create a new item" msgstr "Skapa en ny sida" #: ../ui/gjots.ui:906 ../ui/treeContextMenu.ui:45 msgid "New Page" msgstr "Ny sida" #: ../ui/gjots.ui:921 ../ui/treeContextMenu.ui:52 msgid "New Child" msgstr "Ny undersida" #: ../ui/gjots.ui:951 msgid "Up" msgstr "Upp" #: ../ui/gjots.ui:966 msgid "Down" msgstr "Ned" #: ../ui/gjots.ui:981 ../ui/treeContextMenu.ui:74 msgid "Promote" msgstr "Upphöj" #: ../ui/gjots.ui:996 ../ui/treeContextMenu.ui:82 msgid "Demote" msgstr "Nedsänk" #: ../ui/gjots.ui:1025 msgid "Split the text selection into a new item" msgstr "Flytta vald text till en ny sida" #: ../ui/gjots.ui:1026 msgid "Split Item" msgstr "Dela sida" #: ../ui/gjots.ui:1040 msgid "Merge selected items together" msgstr "Slå ihop valda sidor" #: ../ui/gjots.ui:1041 ../ui/treeContextMenu.ui:89 msgid "Merge Items" msgstr "Slå ihop sidor" #: ../ui/gjots.ui:1070 msgid "Hide all items except for the top level" msgstr "Göm alla sidor utom dem på toppnivån" #: ../ui/gjots.ui:1071 ../ui/treeContextMenu.ui:103 msgid "Hide All" msgstr "Göm alla" #: ../ui/gjots.ui:1086 ../ui/treeContextMenu.ui:96 msgid "Show All" msgstr "Visa alla" #: ../ui/gjots.ui:1101 ../ui/treeContextMenu.ui:110 ../lib/sortDialog.py:394 msgid "Sort Tree" msgstr "Sortera träd" #: ../ui/prefsDialog.ui:20 msgid "gjots: preferences" msgstr "gjots: inställningar" #: ../ui/prefsDialog.ui:49 msgid "Choose a font for the text panel" msgstr "Välj ett typsnitt för textpanelen" #: ../ui/prefsDialog.ui:65 msgid "Date format:" msgstr "Datum-/tidformat:" #: ../ui/prefsDialog.ui:79 #, fuzzy msgid "Format for the timestamp function (see strftime(3)) eg %F" msgstr "Format för datum-/tidfunktionen (se strftime(3))" #: ../ui/prefsDialog.ui:80 msgid "%F" msgstr "" #: ../ui/prefsDialog.ui:99 #, fuzzy msgid "" "External program to edit a page (%s is replaced by the name of the temporary " "edit file) eg xterm -e vi %s" msgstr "" "Externt program för att redigera en sida (%s byts ut mot namn på tillfällig " "textfil)" #: ../ui/prefsDialog.ui:100 msgid "xterm -e vi %s" msgstr "" #: ../ui/prefsDialog.ui:120 msgid "External editor" msgstr "Extern redigerare: " #: ../ui/prefsDialog.ui:135 msgid "Text Line Length: " msgstr "Radlängd: " #: ../ui/prefsDialog.ui:149 msgid "Line length for paragraph wrapping" msgstr "Radlängd för brytning av stycken" #: ../ui/prefsDialog.ui:172 msgid "Text formatter: " msgstr "Textformattering: " #: ../ui/prefsDialog.ui:184 #, fuzzy msgid "" "External program to pipe text for formatting (%d is replaced by the current " "line width) eg fmt -w %d " msgstr "Externt program för formattering (%d byts ut mot vald radlängd)" #: ../ui/prefsDialog.ui:185 msgid "fmt -w %d " msgstr "" #: ../ui/prefsDialog.ui:202 msgid "Current text font" msgstr "Valt typsnitt" #: ../ui/prefsDialog.ui:204 msgid "Courier 10 Pitch 10" msgstr "" #: ../ui/prefsDialog.ui:224 msgid "AutoSave interval:" msgstr "" #: ../ui/prefsDialog.ui:238 msgid "Seconds of inactivity to trigger an AutoSave (0 = no AutoSave)" msgstr "" #: ../ui/printDialog.ui:38 msgid "e.g. lpr: " msgstr "t.ex. lpr: " #: ../ui/printDialog.ui:54 msgid "print command (can be a shell expression)" msgstr "kommando för utskrift (kan vara ett skaluttryck)" #: ../ui/printDialog.ui:76 msgid " Print command " msgstr " Utskriftskommando " #: ../ui/printDialog.ui:104 msgid "Page" msgstr "Sida" #: ../ui/printDialog.ui:108 msgid "Print the current page" msgstr "Skriv ut vald sida" #: ../ui/printDialog.ui:120 msgid "Selection" msgstr "Markering" #: ../ui/printDialog.ui:124 msgid "Print the selected pages or text" msgstr "Skriv ut vald sida eller text" #: ../ui/printDialog.ui:137 msgid "All" msgstr "Allt" #: ../ui/printDialog.ui:141 msgid "Print the entire gjots file" msgstr "Skriv ut hela gjots-filen" #: ../ui/printDialog.ui:160 msgid " Print Range " msgstr " Intervall " #: ../ui/printDialog.ui:193 msgid "Page feeds" msgstr "Sidbrytning" #: ../ui/printDialog.ui:197 msgid "Feeds a page before every new gjots item" msgstr "Skriver ut varje gjots-sida på en ny sida" #: ../ui/printDialog.ui:209 msgid "Bold titles" msgstr "Rubriker i fetstil" #: ../ui/printDialog.ui:212 msgid "Print the gjots item titles in bold" msgstr "Skriv gjots-sidornas rubriker i fetstil" #: ../ui/printDialog.ui:224 msgid "Auto Number" msgstr "Automatisk numrering" #: ../ui/printDialog.ui:251 msgid "Auto-number format: " msgstr "Numreringsformat: " #: ../ui/printDialog.ui:262 msgid "eg. 1 for 1.2.1, a" msgstr "t.ex. 1 för 1.2.1, a" #: ../ui/printDialog.ui:289 msgid " Print formatting " msgstr " Utskriftsformat " #: ../ui/sortDialog.ui:43 msgid "Ascending" msgstr "Stigande ordning" #: ../ui/sortDialog.ui:47 msgid "Sort in ascending order" msgstr "Sorter i stigande ordning" #: ../ui/sortDialog.ui:58 msgid "Descending" msgstr "Fallande ordning" #: ../ui/sortDialog.ui:62 msgid "Sort in descending order" msgstr "Sortera i fallande ordning" #: ../ui/sortDialog.ui:76 msgid "Alphabetic" msgstr "Alfabetiskt" #: ../ui/sortDialog.ui:80 msgid "Sort in alphabetic order" msgstr "Sortera alfabetiskt" #: ../ui/sortDialog.ui:93 msgid "Numeric" msgstr "Numeriskt" #: ../ui/sortDialog.ui:97 msgid "Sort in numeric order" msgstr "Sortera numeriskt" #: ../ui/sortDialog.ui:119 msgid " Sort Parameters " msgstr "Sorteringsparametrar" #: ../ui/sortDialog.ui:149 msgid "How many sublevels to sort (0 for none; -1 for 'all')" msgstr "Antal undernivåer att sortera (0 för ingen; -1 för alla)" #: ../ui/sortDialog.ui:171 msgid " Sort Sublevels " msgstr "Sortera undernivåer" #: ../ui/treeContextMenu.ui:30 msgid "Select _All" msgstr "Välj _allt" #: ../ui/treeContextMenu.ui:117 msgid "Import" msgstr "Importera" #: ../ui/treeContextMenu.ui:124 msgid "Export" msgstr "Exportera" #: ../gjots2:23 #, fuzzy msgid "" "Usage: gjots [OPTIONS] [FILENAME]\n" "A gtk/X11 jotter\n" "\n" "OPTIONS:\n" "-h, --help: this help\n" "-d, --debug: debug to stdout\n" "-t, --trace: trace lines as they execute\n" "-g 123x456, --geometry=123x456: initial geometry (X x Y)\n" "-p, --purge-password don't remember password\n" "-r, --readonly: no editing (or locking)\n" "-V, --version: print the version and exit\n" "\n" "FILENAME:\n" " gjots data filename (default is $HOME/.gjotsfile)\n" msgstr "" "Användning: gjots [FLAGGOR] [FILNAMN]\n" "Ett gtk/X11-anteckningsblock\n" "\n" "FLAGGOR:\n" "-h, --help: visa hjälp\n" "-d, --debug: skriv ut felsökningsinformation\n" "-t, --trace: skriv ut varje rad som exekveras\n" "-g 123x456, --geometry=123x456: ursprunglig fönsterstorlek (X x Y)\n" "-p, --purge-password\t\t\t\tspara inte lösenord\n" "-r, --readonly: öppna skrivskyddat\n" "-V, --version: visa programmets version och avsluta\n" "\n" "FILNAMN:\n" "\tgjots-datafilens namn (förvald fil är $HOME/.gjotsfile)\n" #: ../gjots2:89 #, python-format msgid "%s requires python%s or higher." msgstr "%s kräver python%s eller högre" #: ../gjots2:102 msgid "Use -h for help\n" msgstr "Skriv -h för att visa hjälptext\n" #: ../gjots2:116 #, python-format msgid "%s version %s" msgstr "%s version %s" #: ../lib/gui.py:51 ../lib/gui.py:996 msgid "Text pasted" msgstr "Texten klistrades in" #: ../lib/gui.py:179 #, python-format msgid "External formatter \"%s\" is not installed - can't format" msgstr "Extern formatterare \"%s\" är inte installerad - kan inte formattera" #: ../lib/gui.py:564 ../lib/gui.py:675 ../lib/gui.py:679 ../lib/gui.py:745 #: ../lib/gui.py:749 ../lib/gui.py:812 ../lib/gui.py:817 ../lib/gui.py:1043 #: ../lib/gui.py:1052 ../lib/gui.py:1138 ../lib/gui.py:1147 ../lib/gui.py:1183 #: ../lib/gui.py:1188 ../lib/gui.py:1219 ../lib/gui.py:1608 ../lib/gui.py:2382 #: ../lib/gui.py:2401 ../lib/gui.py:2430 ../lib/gui.py:2461 ../lib/file.py:466 #: ../lib/file.py:471 ../lib/sortDialog.py:329 ../lib/sortDialog.py:334 #: ../lib/printDialog.py:110 ../lib/printDialog.py:115 msgid "Nothing selected" msgstr "Inget är valt" #: ../lib/gui.py:568 ../lib/gui.py:684 ../lib/gui.py:753 ../lib/gui.py:822 #: ../lib/gui.py:934 ../lib/gui.py:1224 ../lib/gui.py:2386 #: ../lib/sortDialog.py:345 msgid "No parent!" msgstr "Ingen förälder!" #: ../lib/gui.py:572 ../lib/gui.py:719 msgid "No child!" msgstr "Inget barn!" #: ../lib/gui.py:580 ../lib/gui.py:693 msgid "Can't go any further" msgstr "Kan inte fortsätta" #: ../lib/gui.py:616 ../lib/gui.py:840 msgid "Internal error!" msgstr "Internt fel!" #: ../lib/gui.py:757 msgid "Can't go further!" msgstr "Kan inte fortsätta!" #: ../lib/gui.py:973 msgid "Text cut" msgstr "Texten klipptes ut" #: ../lib/gui.py:984 msgid "Text copied" msgstr "Texten kopierades" #: ../lib/gui.py:1005 msgid "All text selected" msgstr "All text är vald" #: ../lib/gui.py:1015 msgid "All tree items selected" msgstr "Alla trädelement valdes" #: ../lib/gui.py:1023 msgid "Nothing selected!" msgstr "Inget är valt!" #: ../lib/gui.py:1047 msgid "Can't merge the root item" msgstr "Kan inte slå ihop rotelementet" #: ../lib/gui.py:1056 msgid "Nothing to merge" msgstr "Inget att slå ihop" #: ../lib/gui.py:1063 msgid "Can't merge items that have children" msgstr "Kan inte slå ihop sidor som har undersidor" #: ../lib/gui.py:1093 #, python-format msgid "%d items merged" msgstr "%d element slogs ihop" #: ../lib/gui.py:1142 msgid "Can't delete the root item" msgstr "Kan inte ta bort rotelementet" #: ../lib/gui.py:1175 #, python-format msgid "%d tree items cut" msgstr "%d trädelement klipptes ut" #: ../lib/gui.py:1205 #, python-format msgid "%d tree items copied" msgstr "%d trädelement kopierades" #: ../lib/gui.py:1214 msgid "Nothing to paste" msgstr "Inget att klistra in" #: ../lib/gui.py:1237 msgid "Tree items pasted" msgstr "Trädelement klistrades in" #: ../lib/gui.py:1258 #, fuzzy msgid "Can't write tempfile" msgstr "Kan inte skriva " #: ../lib/gui.py:1278 #, python-format msgid "Can't run '%s'" msgstr "Kan inte köra '%s'" #: ../lib/gui.py:1287 #, fuzzy msgid "Can't read tempfile " msgstr "Kan inte läsa " #: ../lib/gui.py:1293 msgid "text changed by external editor" msgstr "texten ändrades av extern redigerare" #: ../lib/gui.py:1295 msgid "text not changed by external editor" msgstr "texten ändrades inte av extern redigerare" #: ../lib/gui.py:1314 msgid ": Error" msgstr ": Fel" #: ../lib/gui.py:1327 #, python-format msgid "Can't lock file %s: already locked by process %d" msgstr "Kan inte låsa filen %s: den är redan låst av process %d" #: ../lib/gui.py:1510 msgid ": Save?" msgstr ": Spara?" #: ../lib/gui.py:1511 msgid "Save current work?" msgstr "Spara ändringar?" #: ../lib/gui.py:1532 msgid "New file" msgstr "Ny fil" #: ../lib/gui.py:1556 msgid "Open file ..." msgstr "Öppna fil ..." #: ../lib/gui.py:1568 msgid "No changes to save" msgstr "Inget att spara" #: ../lib/gui.py:1572 ../lib/gui.py:1593 msgid "Saved." msgstr "Sparades." #: ../lib/gui.py:1574 ../lib/gui.py:1595 ../lib/file.py:456 msgid "Not saved." msgstr "Sparades inte." #: ../lib/gui.py:1589 msgid "Nothing to save" msgstr "Inget att spara" #: ../lib/gui.py:1591 ../lib/file.py:693 msgid "Save as ..." msgstr "Spara som ..." #: ../lib/gui.py:1605 msgid "Import from ..." msgstr "Importera från ..." #: ../lib/gui.py:1616 msgid "Export to ..." msgstr "Exportera till ..." #: ../lib/gui.py:1930 ../lib/gui.py:1933 #, python-format msgid "%s: Warning: opening gjots2 manual from %s\n" msgstr "%s: Varning: öppnar gjots2-instruktioner från %s\n" #: ../lib/gui.py:2317 msgid "" "gjots2: warning: selection list is NULL. Skipping tree selection changed \n" "event." msgstr "" "gjots2: varning: vald lista är NULL. Hoppar över ändrat trädvals-\n" "händelse." #: ../lib/gui.py:2390 msgid "Can't go further" msgstr "Kan inte fortsätta längre" #: ../lib/gui.py:2419 msgid "Tree is empty!" msgstr "Trädet är tomt!" #: ../lib/gui.py:2716 msgid "Bad regular expression" msgstr "Felaktigt reguljärt uttryck" #: ../lib/gui.py:2808 #, python-format msgid "%s: bad geometry specification: %s\n" msgstr "%s: felaktigt storleksformat: %s\n" #: ../lib/gui.py:2899 msgid "New...>>>" msgstr "Ny...>>>" #: ../lib/gui.py:2936 #, fuzzy msgid "Install gtksourceview to enable undo/redo" msgstr "Installera pygtksourceview för att slå på ångra/gör om" #: ../lib/gui.py:3102 msgid ": version " msgstr ": version " #: ../lib/find.py:70 ../lib/find.py:93 msgid "Not found" msgstr "Hittades inte" #: ../lib/find.py:72 msgid "Found" msgstr "Hittades" #: ../lib/find.py:96 msgid "Replace?" msgstr "Ersätt?" #: ../lib/find.py:113 #, python-format msgid "%d substitutions" msgstr "ersatte %d förekomster" #: ../lib/file.py:255 msgid "Enter password for " msgstr "Skriv in lösenord för " #: ../lib/file.py:257 #, fuzzy msgid ": Enter Password" msgstr "gjots2: Skriv in lösenord" #: ../lib/file.py:259 msgid "Password: " msgstr "Lösenord: " #: ../lib/file.py:260 msgid "Confirm: " msgstr "Bekräfta: " #: ../lib/file.py:268 msgid "Password was not confirmed" msgstr "Lösenordet bekräftades inte" #: ../lib/file.py:275 msgid "Could not find the ccrypt program - please install it and try again" msgstr "Kunde inte hitta programmet ccrypt - installera och försök igen" #: ../lib/file.py:308 msgid "" "Neither gpg2 nor gpg are available - please install one (perhaps package " "gnupg2) and try again" msgstr "" #: ../lib/file.py:328 #, fuzzy msgid "No openssl program - please install it and try again" msgstr "Kunde inte hitta programmet openssl - installera och försök igen" #: ../lib/file.py:354 #, fuzzy msgid "No org2gjots program - please install it and try again" msgstr "Kunde inte hitta programmet openssl - installera och försök igen" #: ../lib/file.py:412 msgid "Can't open \"" msgstr "Kan inte öppna \"" #: ../lib/file.py:415 msgid "Bad password" msgstr "Svagt lösenord" #: ../lib/file.py:418 msgid "File cannot be locked" msgstr "Filen kan inte låsas" #: ../lib/file.py:431 ../lib/file.py:489 msgid "failed!" msgstr "" #: ../lib/file.py:457 msgid "Can't write to " msgstr "Kan inte skriva " #: ../lib/file.py:460 msgid "Can't lock file" msgstr "Kan inte låsa fil" #: ../lib/file.py:597 #, python-format msgid "%s is not readable" msgstr "%s är inte läsbar" #: ../lib/file.py:613 #, python-format msgid "%s: no permission" msgstr "%s: inga rättigheter" #: ../lib/file.py:615 #, python-format msgid "%s: locked by process number %d" msgstr "%s: låst av process med id %d" #: ../lib/file.py:617 #, fuzzy msgid ": can't lock file." msgstr "gjots2: kan inte låsa fil" #: ../lib/file.py:705 msgid "That file is already open!" msgstr "Filen är redan öppen!" #: ../lib/file.py:713 ../lib/file.py:787 #, fuzzy msgid ": file has changed" msgstr "gjots2: %s har ändrats" #: ../lib/file.py:714 #, fuzzy, python-format msgid "File changed since it was read - copied to %s " msgstr "" "'%s' har ändrats sedan den lästes in.\n" "Skriv över ändringarna?" #: ../lib/file.py:731 #, python-format msgid "%s is locked by pid %d" msgstr "%s är låst av pid %d" #: ../lib/file.py:735 msgid "Can't make a lockfile in " msgstr "Kan inte skapa en låsfil i " #: ../lib/file.py:748 #, python-format msgid "%s is not writable" msgstr "%s är inte skrivbar" #: ../lib/file.py:751 #, fuzzy, python-format msgid ": %s already exists." msgstr "gjots2: %s finns redan." #: ../lib/file.py:752 #, python-format msgid "overwrite %s?" msgstr "Skriv över %s?" #: ../lib/file.py:788 #, python-format msgid "File changed since it was read - so it was copied to %s " msgstr "" #: ../lib/sortDialog.py:125 msgid "_get_settings: Cant find sortAscendingRadioButton" msgstr "_get_settings: Kan inte hitta sortAscendingRadioButton" #: ../lib/sortDialog.py:165 msgid "Internal error" msgstr "Internt fel" #: ../lib/sortDialog.py:303 msgid "Nothing to sort!" msgstr "Inget att sortera!" #: ../lib/sortDialog.py:398 msgid "Sort Text" msgstr "Sortera text" #, fuzzy #~ msgid "Exit gjots" #~ msgstr "Avsluta gjots2" #, fuzzy #~ msgid "Create a new child " #~ msgstr "Skapa en ny undersida" #, fuzzy #~ msgid "About gjots2" #~ msgstr "Avsluta gjots2" #, fuzzy #~ msgid " Find: " #~ msgstr "Sök efter:" #, python-format #~ msgid "%s requires pygtk-%s.\n" #~ msgstr "%s kräver pygtk-%s \n" #~ msgid "not initialised" #~ msgstr "inte initierad" #~ msgid "pygtk-2.2 is required for this application!" #~ msgstr "pygtk-2.2 krävs av det här programmet!" #~ msgid "%s: Warning: running modules from %s\n" #~ msgstr "%s: Varning: kör moduler från %s\n" #~ msgid "Could not find the gpg program - please install it and try again" #~ msgstr "Kunde inte hitta programmet gpg - installera och försök igen" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/sv/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0013774�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/sv/LC_MESSAGES/���������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0015561�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/sv/LC_MESSAGES/gjots2.mo������������������������������������������������������������0000664�0000000�0000000�00000034201�14016300235�0017326�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������L��3��|������H�� ���I�� ���S�����a�����q��������������������������������������������������,�� ���L��+���Z��#������������������������� �����'�����!��������A�����E�����W�� ���o�� ���z�� ���������� ����� ���������� ����������������������� �����2��0���B�����s��$���������� �������������������� �������� �����&�� ���,�����6�����;��C���O������������������������������������������ ��������� �� �������������1��'���6�����^�� ���r�����~��%����� ���������������7�����(��� �����2�����H�����M�� ���\��7���j���������������������������'�����#�����5���'�����]�����d�����t������������-�����"�����*����� ���.�� ���9��&���E�����l������������ ���������� ���������� ���������� ����� ����� ��� �� �������������/�����A�����R�����c�����s������� ������������������������� ���������� ��������� �������!���&�����H�����^�����y����������������������#����� �������������,�� ���4��$���>�����c�����v�� ���~������������ ���������� �������������������������(����� ��� �� ���,�� ���8��.���B��+���q������������%��������������� ����� ��� ����� �����) �����A �����Z �� ���p ��(���{ �� ��� ����� ����� ����� ����� �� ��� ����� �����!�� ���!�����"!��#���=!�� ���a!��%���n!�����!�����!�� ���!�����!�����!�� ���!�����!�����!�����"��5���"�����K"�����Q"�����Y"�����h"�����n"�����v"�� ���|"�� ���"�� ���"�� ���"�� ���"�� ���"�� ���"�� ���"�� ���"�����"�����"��1���"�� ��� #�����+#��P���>#�����#�����#�����#�� ���#��)���#�����#��#���$�����,$��/��4$�����d%�� ���u%�����%�����%�����%�����%�����%�����%�����%�����&�����6&�����M&�����a&�� ���v&�� ���&��3���&��!���&�����&�����'�����0'�����6'�� ���?'��(���J'��$���s'�����'�����'�����'�� ���'�����'�����'�����'����� (�����(�����$(�����A(�����T(�����r(�����(�����(�����(��:���(�����)��+���")�����N)�����n)�����)�����)�����)��#���)�����)�����)�� ���)�����)�����)��A���*�����F*�����\*�����m*�� ���~*�����*�����*�� ���*�� ���*�����*�����*�����*��&���*�����+��)���+�����?+�����X+�� ���g+��'���q+�����+�� ���+�����+��C���+��*���,�����9,�����O,�����T,�����e,��;���w,�� ���,�����,�����,�����,�� ���,��'���,��'���"-��;���J-�� ���-�����-��"���-�� ���-�� ���-��'���-��"���.�����+.�����I.�����].��-���m.�����.�� ���.�� ���.�� ���.�����.�� ���.�����.�����.�����.�� ��� /�����/�� ���(/�����6/�����E/�����T/�����d/�����x/�����/�����/�� ���/�����/�����/��*���/����� 0�����0�� ���0�����&0�� ���D0�� ���P0�����[0��(���t0��!���0��%���0��&���0����� 1�����1�����$1�����71��'���Q1�����y1�����1�����1�� ���1��0���1�����1�����2�� ��� 2�� ���2�����&2�����/2�����>2�� ���D2�����R2�����d2�� ���y2�����2��1���2�����2�� ���2�� ���2��.���2��-���3�� ���G3�����Q3�����`3�����3�����3�� ���3�� ���3�����3�����3�����3�����4�� ���4�� ���"4�� ���C4�����P4�����i4�����4�� ���4�����4�����4�����4�����4�����4��#���4�����5��"���.5�� ���Q5�� ���r5�����5�����5�����5�� ���5�����5��"���5�����6��-���6�� ���=6�� ���G6�����R6�����e6�� ���l6�����x6�� ���6�����6�����6�����6�� ���6�� ���6�� ���6�����6�����6�����7����� 7��6���7�� ���I7�����U7��P���k7�����7�����7�����7�����7��1���7��%���&8��*���L8�� ���w8�����y���Z��� ��������������������� ��� ���A�����������������u������������� ���������������������?�������d���=���U���x���g������!���D��������������p������.�������)����������m������������������������������������;���9���5������*�������������c�������������b���3������/�������������������������������������������������������>��������������������������������+���]����������&��������������2��������������%���8���������E��������������������n���l������K���������������������q������(�������H���w�����������������������4��������������������V����������������t������������ ���@������\���~������,������F���I�������������Q�������O������<����������f������o���P����������������G���R���L�����������������z��������������������W���������������������������Y������������������� ������7�������6������������������������������S���j���0���������������-���{����������M�����������[�������e�������B���k���������������������������v���h������������������������T���r�������i���#���}������������J���"�������N�������������������������s������������|���1���C������`������������������X����������:���$����������������a���_�������^���'���� Options � Print Range � Print command � Print formatting � Sort Parameters � Sort Sublevels �%d items merged�%d substitutions�%d tree items copied�%d tree items cut�%s is locked by pid %d�%s is not readable�%s is not writable�%s requires python%s or higher.�%s version %s�%s: Warning: opening gjots2 manual from %s �%s: bad geometry specification: %s �%s: locked by process number %d�%s: no permission�: Error�: Save?�: version �Add a time/date stamp (see preferences)�Add a time/date stamp (see prefs)�All�All text selected�All tree items selected�Alphabetic�Ascending�Auto Number�Auto-number format: �Backwards�Bad password�Bad regular expression�Bold titles�Can't delete the root item�Can't go any further�Can't go further�Can't go further!�Can't lock file�Can't lock file %s: already locked by process %d�Can't make a lockfile in �Can't merge items that have children�Can't merge the root item�Can't open "�Can't run '%s'�Can't write to �Cancel�Choose a font for the text panel�Clear�Close�Confirm: �Copy�Copy selected items�Could not find the ccrypt program - please install it and try again�Create a new child�Create a new item�Create a new page�Current text font�Cut�Cut selected items�D_emote�Date�Date format:�Demote�Descending�Don't ignore case�Down�Edit current item in an external editor�Enter password for �Exit gjots2�Export�Export selected items to a gjots file�Export to ...�Ext.Ed.�External editor�External formatter "%s" is not installed - can't format�Feeds a page before every new gjots item�File cannot be locked�Find�Find & replace�Find Previous�Find string is a regular expression (see 'man 7 regex')�Find:�Format the current paragraph�Found�Global�Hide All�Hide all items except for the top level�Hide all items except the top level�How many sublevels to sort (0 for none; -1 for 'all')�Import�Import from ...�Import items from a gjots file�Internal error�Internal error!�Invoke an external editor on the current item�Line length for paragraph wrapping�Make a new item from the current selection�Match case�Merge Items�Merge current items into the first one�Merge selected items together�Move selection down�Move selection up�New Child�New Page�New _Child�New file�New...>>>�No changes to save�No child!�No parent!�Not found�Not saved.�Nothing selected�Nothing selected!�Nothing to merge�Nothing to paste�Nothing to save�Nothing to sort!�Numeric�Open file ...�Open file read only�Open gjots preferences window�P_romote�Page�Page feeds�Password was not confirmed�Password: �Paste�Paste selected items�Popup the find and replace dialog�Popup the sort dialog�Popup the sort text dialog�Popup the sort tree dialog�Prefs�Print�Print the current page�Print the entire gjots file�Print the gjots item titles in bold�Print the selected pages or text�Print this document�Promote�Read only�Read the online manual (using gjots)�Regular Expression�Replace�Replace All�Replace:�Replace?�S_ort Tree�Save�Save as ...�Save current work?�Save gjots document�Saved.�Search backwards�Searches entire file not just this entry�Select Font�Select _All�Selection�Selection becomes a child of the previous item�Selection becomes a sibling to their parent�Show All�Show _Icon Text�Show all items below the current item�Show the related icon text�Sort�Sort Text�Sort Tree�Sort in alphabetic order�Sort in ascending order�Sort in descending order�Sort in numeric order�Split Item�Split the text selection into a new item�Status _Bar�String to replace�String to search for�Te_xt�Text Line Length: �Text copied�Text cut�Text formatter: �Text pasted�That file is already open!�To open the file in read-only mode.�To_p Toolbar�Toggle the read-only flag if possible�Toggles the main toolbar�Toggles tree tool bar�Tre_e Toolbar�Tree is empty!�Tree items pasted�Try again�Up�Use -h for help �Wrap�Wrap the current paragraph to the current line length�_Edit�_Export�_External Edit�_File�_Format�_Help�_Hide All�_Merge Items�_New Page�_Read Manual�_Read-only�_Show All�_Sort Text�_Split Item�_Time stamp�_Tree�_View�_get_settings: Cant find sortAscendingRadioButton�e.g. lpr: �eg. 1 for 1.2.1, a�gjots2: warning: selection list is NULL. Skipping tree selection changed event.�gjots: preferences�label1�label2�overwrite %s?�print command (can be a shell expression)�text changed by external editor�text not changed by external editor�window1�Project-Id-Version: gjots2 2.3.15 Report-Msgid-Bugs-To: PO-Revision-Date: 2012-05-11 08:58+1000 Last-Translator: Morgan Antonsson <morgan.antonsson@gmail.com> Language-Team: Swedish <LL@li.org> Language: Swedish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit � Inställningar � Intervall � Utskriftskommando � Utskriftsformat �Sorteringsparametrar�Sortera undernivåer�%d element slogs ihop�ersatte %d förekomster�%d trädelement kopierades�%d trädelement klipptes ut�%s är låst av pid %d�%s är inte läsbar�%s är inte skrivbar�%s kräver python%s eller högre�%s version %s�%s: Varning: öppnar gjots2-instruktioner från %s �%s: felaktigt storleksformat: %s �%s: låst av process med id %d�%s: inga rättigheter�: Fel�: Spara?�: version �Infoga datum och tid (se inställningar)�Infoga datum och (se inställningar)�Allt�All text är vald�Alla trädelement valdes�Alfabetiskt�Stigande ordning�Automatisk numrering�Numreringsformat: �Bakåt�Svagt lösenord�Felaktigt reguljärt uttryck�Rubriker i fetstil�Kan inte ta bort rotelementet�Kan inte fortsätta�Kan inte fortsätta längre�Kan inte fortsätta!�Kan inte låsa fil�Kan inte låsa filen %s: den är redan låst av process %d�Kan inte skapa en låsfil i �Kan inte slå ihop sidor som har undersidor�Kan inte slå ihop rotelementet�Kan inte öppna "�Kan inte köra '%s'�Kan inte skriva �Avbryt�Välj ett typsnitt för textpanelen�Töm�Stäng�Bekräfta: �Kopiera�Kopiera markeringen�Kunde inte hitta programmet ccrypt - installera och försök igen�Skapa en ny undersida�Skapa en ny sida�Skapa en ny sida�Valt typsnitt�Klipp ut�Klipp ut markeringen�N_edsänk�Datum/tid�Datum-/tidformat:�Nedsänk�Fallande ordning�Gör skillnad på gemener och versaler�Ned�Redigera vald sida i en extern redigerare�Skriv in lösenord för �Avsluta gjots2�Exportera�Exportera valda sidor till en gjots-fil�Exportera till ...�Ext. red.�Extern redigerare: �Extern formatterare "%s" är inte installerad - kan inte formattera�Skriver ut varje gjots-sida på en ny sida�Filen kan inte låsas�Sök�Sök och ersätt�Sök föregående�Söksträngen är ett reguljärt uttryck (se 'man 7 regex')�Sök efter:�Formattera valt avsnitt�Hittades�Global sökning�Göm alla�Göm alla sidor utom dem på toppnivån�Göm alla sidor utom dem på toppnivån�Antal undernivåer att sortera (0 för ingen; -1 för alla)�Importera�Importera från ...�Importera sidor från en gjots-fil�Internt fel�Internt fel!�Öppna extern redigerare för vald sida�Radlängd för brytning av stycken�Skapa en ny sida av vald text�Skiftlägeskänslig�Slå ihop sidor�Slå ihop valda sidor under den första sidan�Slå ihop valda sidor�Flytta ned�Flytta upp�Ny undersida�Ny sida�Ny unde_rsida�Ny fil�Ny...>>>�Inget att spara�Inget barn!�Ingen förälder!�Hittades inte�Sparades inte.�Inget är valt�Inget är valt!�Inget att slå ihop�Inget att klistra in�Inget att spara�Inget att sortera!�Numeriskt�Öppna fil ...�Öppna som skrivskyddad�Öppna fönstret för gjots inställningar�U_pphöj�Sida�Sidbrytning�Lösenordet bekräftades inte�Lösenord: �Klistra in�Klistra in från urklipp�Öppna dialogrutan för sök och ersätt�Öppna dialogrutan för sortering�Öppna dialogrutan för textsortering�Öppna dialogrutan för trädsortering�Inställningar�Skriv ut�Skriv ut vald sida�Skriv ut hela gjots-filen�Skriv gjots-sidornas rubriker i fetstil�Skriv ut vald sida eller text�Skriv ut dokumentet�Upphöj�Skrivskyddad�Läs instruktioner från internet (m.h.a. gjots)�Reguljärt uttryck�Ersätt�Ersätt alla�Ersätt med:�Ersätt?�S_ortera träd�Spara�Spara som ...�Spara ändringar?�Spara gjots-dokument�Sparades.�Sök baklänges�Söker i hela filen, inte bara på den här sidan�Välj typsnitt�Välj _allt�Markering�Vald sida blir ett barn till föregående sida�Vald sida blir ett syskon till sin förälder�Visa alla�Visa _ikontext�Visa alla sidor under vald sida�Visa text för varje ikon�Sortera�Sortera text�Sortera träd�Sortera alfabetiskt�Sorter i stigande ordning�Sortera i fallande ordning�Sortera numeriskt�Dela sida�Flytta vald text till en ny sida�_Statuspanel�Sträng att ersätta med�Sträng att söka efter�Te_xt�Radlängd: �Texten kopierades�Texten klipptes ut�Textformattering: �Texten klistrades in�Filen är redan öppen!�Öppna en fil i skrivskyddat läge.�_Huvudverktygsrad�Försök ändra skrivskyddsflaggan�Visar/gömmer huvudverktygsraden�Visar/gömmer trädverktygsraden�_Trädverktygsrad�Trädet är tomt!�Trädelement klistrades in�Försök igen�Upp�Skriv -h för att visa hjälptext �Radbryt�Radbryt vald paragraf vid inställd radlängd�_Redigera�_Exportera�_Extern redigerare�_Arkiv�_Formattera�_Hjälp�_Göm alla�Slå _ihop sidor�Ny _sida�_Läs instruktioner�Skrivsk_yddad�_Visa alla�_Sortera text�_Dela upp sida�_Infoga datum och tid�_Träd�_Visa�_get_settings: Kan inte hitta sortAscendingRadioButton�t.ex. lpr: �t.ex. 1 för 1.2.1, a�gjots2: varning: vald lista är NULL. Hoppar över ändrat trädvals- händelse.�gjots: inställningar�etikett1�etikett2�Skriv över %s?�kommando för utskrift (kan vara ett skaluttryck)�texten ändrades av extern redigerare�texten ändrades inte av extern redigerare�fönster1������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/zh_TW.po����������������������������������������������������������������������������0000664�0000000�0000000�00000063147�14016300235�0014752�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-30 18:18+1000\n" "PO-Revision-Date: 2020-05-13 17:06+0800\n" "Last-Translator: \n" "Language-Team: \n" "Language: tw\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.3.1\n" #: ../ui/about.ui:12 msgid "Copyright Bob Hepple 2002-2020" msgstr "Bob Hepple版權所有2002-2020" #: ../ui/about.ui:13 msgid "http://bhepple.freeshell.org/gjots2" msgstr "http://bhepple.freeshell.org/gjots2" #: ../ui/about.ui:25 msgid "\n" msgstr "" #: ../ui/fileDialog.ui:69 msgid "Open file read only" msgstr "唯讀開啟檔案" #: ../ui/fileDialog.ui:73 msgid "To open the file in read-only mode." msgstr "以唯讀模式開啟檔案" #: ../ui/findDialog.ui:8 msgid "Find & replace" msgstr "尋找取代" #: ../ui/findDialog.ui:34 #, fuzzy msgid "Find:" msgstr "尋找: " #: ../ui/findDialog.ui:47 #, fuzzy msgid "Replace:" msgstr "取代: " #: ../ui/findDialog.ui:64 msgid "String to search for" msgstr "搜尋字串" #: ../ui/findDialog.ui:80 msgid "String to replace" msgstr "取代字串" #: ../ui/findDialog.ui:114 ../ui/gjots.ui:844 msgid "Find" msgstr "尋找" #: ../ui/findDialog.ui:130 msgid "Close" msgstr "闗閉" #: ../ui/findDialog.ui:146 msgid "Replace" msgstr "取代" #: ../ui/findDialog.ui:162 msgid "Replace All" msgstr "全部取代" #: ../ui/findDialog.ui:178 msgid "Cancel" msgstr "取消" #: ../ui/findDialog.ui:197 msgid "Clear" msgstr "清除" #: ../ui/findDialog.ui:257 msgid "Match case" msgstr "大小寫匹配" #: ../ui/findDialog.ui:261 msgid "Don't ignore case" msgstr "區分大小寫" #: ../ui/findDialog.ui:271 msgid "Regular Expression" msgstr "正規表達" #: ../ui/findDialog.ui:275 msgid "Find string is a regular expression (see 'man 7 regex')" msgstr "用正規表達尋找字串" #: ../ui/findDialog.ui:287 msgid "Backwards" msgstr "反向" #: ../ui/findDialog.ui:291 msgid "Search backwards" msgstr "向後搜尋" #: ../ui/findDialog.ui:306 msgid "Global" msgstr "全域" #: ../ui/findDialog.ui:310 msgid "Searches entire file not just this entry" msgstr "搜尋整個檔案,而不僅是此頁" #: ../ui/findDialog.ui:327 msgid " Options " msgstr " 選項 " #: ../ui/fontDialog.ui:9 msgid "Select Font" msgstr "選擇字型" #: ../ui/generalDialog.ui:9 msgid "window1" msgstr "視窗1" #: ../ui/generalDialog.ui:22 ../ui/generalDialog.ui:60 #: ../ui/generalDialog.ui:115 msgid "label1" msgstr "標籤1" #: ../ui/generalDialog.ui:46 msgid "label2" msgstr "標籤2" #: ../ui/generalDialog.ui:193 msgid "Try again" msgstr "再試一式" #: ../ui/generalDialog.ui:209 msgid "Read only" msgstr "唯讀" #: ../ui/gjots.ui:24 msgid "_File" msgstr "檔案(_F)" #: ../ui/gjots.ui:88 msgid "_Import" msgstr "匯入(_I)" #: ../ui/gjots.ui:91 msgid "Import items from a gjots file" msgstr "從gjots檔案匯入項目" #: ../ui/gjots.ui:99 msgid "_Export" msgstr "匯出(_E)" #: ../ui/gjots.ui:102 msgid "Export selected items to a gjots file" msgstr "匯出已選項目為gjots檔案" #: ../ui/gjots.ui:135 msgid "Toggle the read-only flag if possible" msgstr "如有可能切換唯讀旗標" #: ../ui/gjots.ui:136 msgid "_Read-only" msgstr "唯讀(_R)" #: ../ui/gjots.ui:152 msgid "Exit gjots2" msgstr "結束gjots2" #: ../ui/gjots.ui:167 msgid "_Edit" msgstr "編輯(_E)" #: ../ui/gjots.ui:263 msgid "Find Next" msgstr "找下一個" #: ../ui/gjots.ui:273 msgid "Find Previous" msgstr "找上一個" #: ../ui/gjots.ui:299 msgid "_View" msgstr "檢視(_V)" #: ../ui/gjots.ui:307 msgid "_Show All" msgstr "顯示全部(_S)" #: ../ui/gjots.ui:310 ../ui/gjots.ui:1085 msgid "Show all items below the current item" msgstr "顯示在現行項目下的全部項目" #: ../ui/gjots.ui:318 msgid "_Hide All" msgstr "隱藏全部(_H)" #: ../ui/gjots.ui:321 msgid "Hide all items except the top level" msgstr "除最上層外隱藏全部項目" #: ../ui/gjots.ui:337 msgid "Toggles the main toolbar" msgstr "切換主工具列" #: ../ui/gjots.ui:338 msgid "To_p Toolbar" msgstr "上方工具列(_P)" #: ../ui/gjots.ui:347 msgid "Toggles tree tool bar" msgstr "切換樹狀工具列" #: ../ui/gjots.ui:348 msgid "Tre_e Toolbar" msgstr "樹工具列(_E)" #: ../ui/gjots.ui:357 msgid "Show the related icon text" msgstr "顯示相關圖示文字" #: ../ui/gjots.ui:358 msgid "Show _Icon Text" msgstr "顯示圖示文字(_I)" #: ../ui/gjots.ui:367 msgid "Status _Bar" msgstr "狀態帶" #: ../ui/gjots.ui:380 msgid "_Tree" msgstr "樹(_T)" #: ../ui/gjots.ui:388 msgid "_New Page" msgstr "新頁面(_N)" #: ../ui/gjots.ui:391 msgid "Create a new page" msgstr "建立新頁面" #: ../ui/gjots.ui:400 msgid "New _Child" msgstr "新子項(_C)" #: ../ui/gjots.ui:403 ../ui/gjots.ui:920 msgid "Create a new child" msgstr "建立新子項" #: ../ui/gjots.ui:420 ../ui/gjots.ui:950 msgid "Move selection up" msgstr "選擇項目向上移" #: ../ui/gjots.ui:431 ../ui/gjots.ui:965 msgid "Move selection down" msgstr "選取項目向下移" #: ../ui/gjots.ui:439 msgid "P_romote" msgstr "升級(_P)" #: ../ui/gjots.ui:442 ../ui/gjots.ui:980 msgid "Selection becomes a sibling to their parent" msgstr "選擇項目移至同一層" #: ../ui/gjots.ui:450 msgid "D_emote" msgstr "降級(_D)" #: ../ui/gjots.ui:453 ../ui/gjots.ui:995 msgid "Selection becomes a child of the previous item" msgstr "使成為前一項目之子項" #: ../ui/gjots.ui:467 msgid "_Split Item" msgstr "分割項目(_S)" #: ../ui/gjots.ui:470 msgid "Make a new item from the current selection" msgstr "從現行選擇中製作一個新的項目" #: ../ui/gjots.ui:478 msgid "_Merge Items" msgstr "合併項目(_M)" #: ../ui/gjots.ui:481 msgid "Merge current items into the first one" msgstr "將現行項目合併至第一個" #: ../ui/gjots.ui:489 msgid "S_ort Tree" msgstr "排序樹(_S)" #: ../ui/gjots.ui:492 ../ui/gjots.ui:1100 msgid "Popup the sort tree dialog" msgstr "彈出排序樹對話框" #: ../ui/gjots.ui:506 msgid "Te_xt" msgstr "文字(_X)" #: ../ui/gjots.ui:514 msgid "_Format" msgstr "格式化(_F)" #: ../ui/gjots.ui:517 msgid "Format the current paragraph" msgstr "格式化現行段落" #: ../ui/gjots.ui:526 msgid "_Time stamp" msgstr "日期戳記(_T)" #: ../ui/gjots.ui:529 msgid "Add a time/date stamp (see preferences)" msgstr "新增時間/日期戳記(詳見偏好)" #: ../ui/gjots.ui:538 msgid "_External Edit" msgstr "外部編輯器(_E)" #: ../ui/gjots.ui:541 msgid "Edit current item in an external editor" msgstr "在外部編輯器中編輯現行項目" #: ../ui/gjots.ui:549 msgid "_Sort Text" msgstr "文字排序(_S)" #: ../ui/gjots.ui:552 msgid "Popup the sort text dialog" msgstr "彈出文字排序對話框" #: ../ui/gjots.ui:566 msgid "_Help" msgstr "說明(_H)" #: ../ui/gjots.ui:574 msgid "_Read Manual" msgstr "閱讀手冊(_R)" #: ../ui/gjots.ui:577 msgid "Read the online manual (using gjots)" msgstr "閱讀線上手冊(用gjots)" #: ../ui/gjots.ui:621 msgid "Popup the 'Find'menu" msgstr "" #: ../ui/gjots.ui:651 #, fuzzy msgid "Find the previous occurance" msgstr "找上一個" #: ../ui/gjots.ui:667 msgid "Find the next occurance" msgstr "" #: ../ui/gjots.ui:693 msgid "Save gjots document" msgstr "儲存gjots文件" #: ../ui/gjots.ui:694 msgid "Save" msgstr "儲存" #: ../ui/gjots.ui:708 msgid "Print this document" msgstr "列印此文件" #: ../ui/gjots.ui:709 ../ui/printDialog.ui:8 msgid "Print" msgstr "列印" #: ../ui/gjots.ui:738 msgid "Cut selected items" msgstr "剪下已選項目" #: ../ui/gjots.ui:739 msgid "Cut" msgstr "剪下" #: ../ui/gjots.ui:753 msgid "Copy selected items" msgstr "複製已選項目" #: ../ui/gjots.ui:754 msgid "Copy" msgstr "複製" #: ../ui/gjots.ui:768 msgid "Paste selected items" msgstr "貼上已選項目" #: ../ui/gjots.ui:769 msgid "Paste" msgstr "貼上" #: ../ui/gjots.ui:798 msgid "Wrap the current paragraph to the current line length" msgstr "以現行列長自動換行此段落" #: ../ui/gjots.ui:799 msgid "Wrap" msgstr "自動換行" #: ../ui/gjots.ui:813 msgid "Invoke an external editor on the current item" msgstr "在現行項目上調用外部編輯器" #: ../ui/gjots.ui:814 msgid "Ext.Ed." msgstr "Ext.Ed." #: ../ui/gjots.ui:828 msgid "Add a time/date stamp (see prefs)" msgstr "新增時間/日期戳記(詳見偏好)" #: ../ui/gjots.ui:829 msgid "Date" msgstr "日期" #: ../ui/gjots.ui:843 msgid "Popup the find and replace dialog" msgstr "彈出尋找和取代對話框" #: ../ui/gjots.ui:858 msgid "Popup the sort dialog" msgstr "彈出排序對話框" #: ../ui/gjots.ui:859 ../ui/sortDialog.ui:15 msgid "Sort" msgstr "排序" #: ../ui/gjots.ui:873 msgid "Open gjots preferences window" msgstr "開啟gjots偏好視窗" #: ../ui/gjots.ui:874 msgid "Prefs" msgstr "偏好" #: ../ui/gjots.ui:905 msgid "Create a new item" msgstr "建立新項目" #: ../ui/gjots.ui:906 ../ui/treeContextMenu.ui:45 msgid "New Page" msgstr "新頁" #: ../ui/gjots.ui:921 ../ui/treeContextMenu.ui:52 msgid "New Child" msgstr "新子項" #: ../ui/gjots.ui:951 msgid "Up" msgstr "向上" #: ../ui/gjots.ui:966 msgid "Down" msgstr "向下" #: ../ui/gjots.ui:981 ../ui/treeContextMenu.ui:74 msgid "Promote" msgstr "升級" #: ../ui/gjots.ui:996 ../ui/treeContextMenu.ui:82 msgid "Demote" msgstr "降級" #: ../ui/gjots.ui:1025 msgid "Split the text selection into a new item" msgstr "將所選文字分隔為新項目" #: ../ui/gjots.ui:1026 msgid "Split Item" msgstr "分隔項目" #: ../ui/gjots.ui:1040 msgid "Merge selected items together" msgstr "合併已選項目" #: ../ui/gjots.ui:1041 ../ui/treeContextMenu.ui:89 msgid "Merge Items" msgstr "合併項目" #: ../ui/gjots.ui:1070 msgid "Hide all items except for the top level" msgstr "隱藏所有項目除最上層外" #: ../ui/gjots.ui:1071 ../ui/treeContextMenu.ui:103 msgid "Hide All" msgstr "全部隱藏" #: ../ui/gjots.ui:1086 ../ui/treeContextMenu.ui:96 msgid "Show All" msgstr "全部顯示" #: ../ui/gjots.ui:1101 ../ui/treeContextMenu.ui:110 ../lib/sortDialog.py:394 msgid "Sort Tree" msgstr "排序樹" #: ../ui/prefsDialog.ui:20 msgid "gjots: preferences" msgstr "gjots: 偏好" #: ../ui/prefsDialog.ui:49 msgid "Choose a font for the text panel" msgstr "為文字面板選擇一種字型" #: ../ui/prefsDialog.ui:65 msgid "Date format:" msgstr "日期格式:" #: ../ui/prefsDialog.ui:79 msgid "Format for the timestamp function (see strftime(3)) eg %F" msgstr "時間戳記函數格式(詳見strftime(3)),例如 %F" #: ../ui/prefsDialog.ui:80 msgid "%F" msgstr "%F" #: ../ui/prefsDialog.ui:99 msgid "" "External program to edit a page (%s is replaced by the name of the temporary " "edit file) eg xterm -e vi %s" msgstr "以外部程式編輯頁面(%s 替換為臨時編輯檔案),例如 xterm -e vi %s" #: ../ui/prefsDialog.ui:100 msgid "xterm -e vi %s" msgstr "xterm -e vi %s" #: ../ui/prefsDialog.ui:120 msgid "External editor" msgstr "外部編輯" #: ../ui/prefsDialog.ui:135 msgid "Text Line Length: " msgstr "文字長度: " #: ../ui/prefsDialog.ui:149 msgid "Line length for paragraph wrapping" msgstr "段落自動換行的行長" #: ../ui/prefsDialog.ui:172 msgid "Text formatter: " msgstr "文字格式: " #: ../ui/prefsDialog.ui:184 msgid "" "External program to pipe text for formatting (%d is replaced by the current " "line width) eg fmt -w %d " msgstr "" "以外部程式進行管道文字(pipe text)格式化(%d 替換為現行行寬),例如fmt -w %d " #: ../ui/prefsDialog.ui:185 msgid "fmt -w %d " msgstr "fmt -w %d " #: ../ui/prefsDialog.ui:202 msgid "Current text font" msgstr "現行字型" #: ../ui/prefsDialog.ui:204 msgid "Courier 10 Pitch 10" msgstr "Courier 10 間距 10" #: ../ui/prefsDialog.ui:224 #, fuzzy msgid "AutoSave interval:" msgstr "自動儲存間隔: " #: ../ui/prefsDialog.ui:238 msgid "Seconds of inactivity to trigger an AutoSave (0 = no AutoSave)" msgstr "秒數為0時不自動儲存" #: ../ui/printDialog.ui:38 msgid "e.g. lpr: " msgstr "例如 lpr: " #: ../ui/printDialog.ui:54 msgid "print command (can be a shell expression)" msgstr "列印指令(可以是shell表達式)" #: ../ui/printDialog.ui:76 msgid " Print command " msgstr " 列印指令 " #: ../ui/printDialog.ui:104 msgid "Page" msgstr "頁面" #: ../ui/printDialog.ui:108 msgid "Print the current page" msgstr "列印目前頁面" #: ../ui/printDialog.ui:120 msgid "Selection" msgstr "選擇" #: ../ui/printDialog.ui:124 msgid "Print the selected pages or text" msgstr "列印已選頁面或本文" #: ../ui/printDialog.ui:137 msgid "All" msgstr "全部" #: ../ui/printDialog.ui:141 msgid "Print the entire gjots file" msgstr "列印整個gjots檔案" #: ../ui/printDialog.ui:160 msgid " Print Range " msgstr " 列印範圍 " #: ../ui/printDialog.ui:193 msgid "Page feeds" msgstr "插入頁面" #: ../ui/printDialog.ui:197 msgid "Feeds a page before every new gjots item" msgstr "在每個新gjots項目前插入新頁" #: ../ui/printDialog.ui:209 msgid "Bold titles" msgstr "粗體標題" #: ../ui/printDialog.ui:212 msgid "Print the gjots item titles in bold" msgstr "以粗體列印gjots項目標題" #: ../ui/printDialog.ui:224 msgid "Auto Number" msgstr "自動編號" #: ../ui/printDialog.ui:251 msgid "Auto-number format: " msgstr "自動編號格式: " #: ../ui/printDialog.ui:262 msgid "eg. 1 for 1.2.1, a" msgstr "例如. 1 for 1.2.1, a" #: ../ui/printDialog.ui:289 msgid " Print formatting " msgstr " 列印格式 " #: ../ui/sortDialog.ui:43 msgid "Ascending" msgstr "遞增" #: ../ui/sortDialog.ui:47 msgid "Sort in ascending order" msgstr "以遞增排序" #: ../ui/sortDialog.ui:58 msgid "Descending" msgstr "遞減" #: ../ui/sortDialog.ui:62 msgid "Sort in descending order" msgstr "以遞減排序" #: ../ui/sortDialog.ui:76 msgid "Alphabetic" msgstr "字母" #: ../ui/sortDialog.ui:80 msgid "Sort in alphabetic order" msgstr "以字母排序" #: ../ui/sortDialog.ui:93 msgid "Numeric" msgstr "數字" #: ../ui/sortDialog.ui:97 msgid "Sort in numeric order" msgstr "以數字排序" #: ../ui/sortDialog.ui:119 msgid " Sort Parameters " msgstr " 排序參數 " #: ../ui/sortDialog.ui:149 msgid "How many sublevels to sort (0 for none; -1 for 'all')" msgstr "要排序多少次階 (0 沒有; -1 全部)" #: ../ui/sortDialog.ui:171 msgid " Sort Sublevels " msgstr " 排序次階 " #: ../ui/treeContextMenu.ui:30 msgid "Select _All" msgstr "全部選擇(_A)" #: ../ui/treeContextMenu.ui:117 msgid "Import" msgstr "匯入" #: ../ui/treeContextMenu.ui:124 msgid "Export" msgstr "匯出" #: ../gjots2:23 msgid "" "Usage: gjots [OPTIONS] [FILENAME]\n" "A gtk/X11 jotter\n" "\n" "OPTIONS:\n" "-h, --help: this help\n" "-d, --debug: debug to stdout\n" "-t, --trace: trace lines as they execute\n" "-g 123x456, --geometry=123x456: initial geometry (X x Y)\n" "-p, --purge-password don't remember password\n" "-r, --readonly: no editing (or locking)\n" "-V, --version: print the version and exit\n" "\n" "FILENAME:\n" " gjots data filename (default is $HOME/.gjotsfile)\n" msgstr "" "Usage: gjots [OPTIONS] [FILENAME]\n" "A gtk/X11 jotter\n" "\n" "OPTIONS:\n" "-h, --help: 此文件\n" "-d, --debug: 除錯至stdout\n" "-t, --trace: 執行時描線(trace lines)\n" "-g 123x456, --geometry=123x456: 初始幾何(X x Y)\n" "-p, --purge-password 不記憶密碼\n" "-r, --readonly: 不編輯 (或鎖定)\n" "-V, --version: 列印版本且離開\n" "\n" "FILENAME:\n" " gjots 資料的檔名 (預設值為 $HOME/.gjotsfile)\n" #: ../gjots2:89 #, python-format msgid "%s requires python%s or higher." msgstr "%s 需要 python%s 或更高." #: ../gjots2:102 msgid "Use -h for help\n" msgstr "使用 -h 取得說明\n" #: ../gjots2:116 #, python-format msgid "%s version %s" msgstr "%s 版本 %s" #: ../lib/gui.py:51 ../lib/gui.py:996 msgid "Text pasted" msgstr "貼上文字" #: ../lib/gui.py:179 #, python-format msgid "External formatter \"%s\" is not installed - can't format" msgstr "未安裝外部格式化程式\"%s\" -無法格式化" #: ../lib/gui.py:564 ../lib/gui.py:675 ../lib/gui.py:679 ../lib/gui.py:745 #: ../lib/gui.py:749 ../lib/gui.py:812 ../lib/gui.py:817 ../lib/gui.py:1043 #: ../lib/gui.py:1052 ../lib/gui.py:1138 ../lib/gui.py:1147 ../lib/gui.py:1183 #: ../lib/gui.py:1188 ../lib/gui.py:1219 ../lib/gui.py:1608 ../lib/gui.py:2382 #: ../lib/gui.py:2401 ../lib/gui.py:2430 ../lib/gui.py:2461 ../lib/file.py:466 #: ../lib/file.py:471 ../lib/sortDialog.py:329 ../lib/sortDialog.py:334 #: ../lib/printDialog.py:110 ../lib/printDialog.py:115 msgid "Nothing selected" msgstr "尚未選擇" #: ../lib/gui.py:568 ../lib/gui.py:684 ../lib/gui.py:753 ../lib/gui.py:822 #: ../lib/gui.py:934 ../lib/gui.py:1224 ../lib/gui.py:2386 #: ../lib/sortDialog.py:345 msgid "No parent!" msgstr "沒有父項!" #: ../lib/gui.py:572 ../lib/gui.py:719 msgid "No child!" msgstr "沒有子項!" #: ../lib/gui.py:580 ../lib/gui.py:693 msgid "Can't go any further" msgstr "沒有下一個" #: ../lib/gui.py:616 ../lib/gui.py:840 msgid "Internal error!" msgstr "內部錯誤!" #: ../lib/gui.py:757 msgid "Can't go further!" msgstr "沒有下一個!" #: ../lib/gui.py:973 msgid "Text cut" msgstr "剪下文字" #: ../lib/gui.py:984 msgid "Text copied" msgstr "複製文字" #: ../lib/gui.py:1005 msgid "All text selected" msgstr "已選所有文字" #: ../lib/gui.py:1015 msgid "All tree items selected" msgstr "已選所有樹項目" #: ../lib/gui.py:1023 msgid "Nothing selected!" msgstr "尚未選擇!" #: ../lib/gui.py:1047 msgid "Can't merge the root item" msgstr "無法合併根項目" #: ../lib/gui.py:1056 msgid "Nothing to merge" msgstr "無可合併項" #: ../lib/gui.py:1063 msgid "Can't merge items that have children" msgstr "無法合併有子之項目" #: ../lib/gui.py:1093 #, python-format msgid "%d items merged" msgstr "%d 個項目已合併" #: ../lib/gui.py:1142 msgid "Can't delete the root item" msgstr "無法刪除根項目" #: ../lib/gui.py:1175 #, python-format msgid "%d tree items cut" msgstr "%d 個樹項目已剪下" #: ../lib/gui.py:1205 #, python-format msgid "%d tree items copied" msgstr "%d 個樹項目已複製" #: ../lib/gui.py:1214 msgid "Nothing to paste" msgstr "沒有可貼上的" #: ../lib/gui.py:1237 msgid "Tree items pasted" msgstr "樹項目已貼上" #: ../lib/gui.py:1258 msgid "Can't write tempfile" msgstr "無法寫入暫存檔" #: ../lib/gui.py:1278 #, python-format msgid "Can't run '%s'" msgstr "無法運行 '%s'" #: ../lib/gui.py:1287 msgid "Can't read tempfile " msgstr "無法讀取暫存檔 " #: ../lib/gui.py:1293 msgid "text changed by external editor" msgstr "文字已被外部編輯器更改" #: ../lib/gui.py:1295 msgid "text not changed by external editor" msgstr "文字未由外部編輯器更改" #: ../lib/gui.py:1314 msgid ": Error" msgstr ": 錯誤" #: ../lib/gui.py:1327 #, python-format msgid "Can't lock file %s: already locked by process %d" msgstr "無法鎖定檔案 %s: 已被程序 %d鎖定" #: ../lib/gui.py:1510 msgid ": Save?" msgstr ": 儲存?" #: ../lib/gui.py:1511 msgid "Save current work?" msgstr "儲存現行工作?" #: ../lib/gui.py:1532 msgid "New file" msgstr "新文件" #: ../lib/gui.py:1556 msgid "Open file ..." msgstr "開啟檔案..." #: ../lib/gui.py:1568 msgid "No changes to save" msgstr "沒有需要儲存的改變" #: ../lib/gui.py:1572 ../lib/gui.py:1593 msgid "Saved." msgstr "已存檔." #: ../lib/gui.py:1574 ../lib/gui.py:1595 ../lib/file.py:456 msgid "Not saved." msgstr "沒有儲存." #: ../lib/gui.py:1589 msgid "Nothing to save" msgstr "沒有可儲存的" #: ../lib/gui.py:1591 ../lib/file.py:693 msgid "Save as ..." msgstr "另存新檔..." #: ../lib/gui.py:1605 msgid "Import from ..." msgstr "從...匯入" #: ../lib/gui.py:1616 msgid "Export to ..." msgstr "匯出到 ..." #: ../lib/gui.py:1930 ../lib/gui.py:1933 #, python-format msgid "%s: Warning: opening gjots2 manual from %s\n" msgstr "%s: 警告: 從 %s 開啟gjots2手冊\n" #: ../lib/gui.py:2317 msgid "" "gjots2: warning: selection list is NULL. Skipping tree selection changed \n" "event." msgstr "gjots2: 警告: 選取清單為 NULL。跳過選取樹變更。" #: ../lib/gui.py:2390 msgid "Can't go further" msgstr "沒有下一個" #: ../lib/gui.py:2419 msgid "Tree is empty!" msgstr "樹是空的!" #: ../lib/gui.py:2716 msgid "Bad regular expression" msgstr "錯誤的正規表達式" #: ../lib/gui.py:2808 #, python-format msgid "%s: bad geometry specification: %s\n" msgstr "%s: 幾何規格不正確: %s\n" #: ../lib/gui.py:2899 msgid "New...>>>" msgstr "新...>>>" #: ../lib/gui.py:2936 msgid "Install gtksourceview to enable undo/redo" msgstr "安裝gtksourceview以啟用撤消/重做" #: ../lib/gui.py:3102 msgid ": version " msgstr ": 版本 " #: ../lib/find.py:70 ../lib/find.py:93 msgid "Not found" msgstr "未找到" #: ../lib/find.py:72 msgid "Found" msgstr "找到" #: ../lib/find.py:96 msgid "Replace?" msgstr "取代?" #: ../lib/find.py:113 #, python-format msgid "%d substitutions" msgstr "取代 %d 個" #: ../lib/file.py:255 msgid "Enter password for " msgstr "輸入密碼 " #: ../lib/file.py:257 msgid ": Enter Password" msgstr ": 輸入密碼" #: ../lib/file.py:259 msgid "Password: " msgstr "密碼: " #: ../lib/file.py:260 msgid "Confirm: " msgstr "再確認: " #: ../lib/file.py:268 msgid "Password was not confirmed" msgstr "密碼尚未確認" #: ../lib/file.py:275 msgid "Could not find the ccrypt program - please install it and try again" msgstr "找不到ccrypt程式-請安裝它,然後重試" #: ../lib/file.py:308 msgid "" "Neither gpg2 nor gpg are available - please install one (perhaps package " "gnupg2) and try again" msgstr "gpg2和gpg都存在-請擇一(也許是gnupg2軟件包)然後重試" #: ../lib/file.py:328 msgid "No openssl program - please install it and try again" msgstr "沒有openssl程式-請安裝它,然後重試" #: ../lib/file.py:354 msgid "No org2gjots program - please install it and try again" msgstr "沒有org2gjots程式-請安裝它,然後重試" #: ../lib/file.py:412 msgid "Can't open \"" msgstr "無法開啟 \"" #: ../lib/file.py:415 msgid "Bad password" msgstr "密碼錯誤" #: ../lib/file.py:418 msgid "File cannot be locked" msgstr "檔案無法鎖定" #: ../lib/file.py:431 ../lib/file.py:489 msgid "failed!" msgstr "失敗了!" #: ../lib/file.py:457 msgid "Can't write to " msgstr "無法寫入至 " #: ../lib/file.py:460 msgid "Can't lock file" msgstr "無法鎖定黨案" #: ../lib/file.py:597 #, python-format msgid "%s is not readable" msgstr "%s 不可讀取" #: ../lib/file.py:613 #, python-format msgid "%s: no permission" msgstr "%s: 沒有權限" #: ../lib/file.py:615 #, python-format msgid "%s: locked by process number %d" msgstr "%s:已被程序 %d 鎖定" #: ../lib/file.py:617 msgid ": can't lock file." msgstr ": 無法鎖定檔案." #: ../lib/file.py:705 msgid "That file is already open!" msgstr "該檔案已經開啟!" #: ../lib/file.py:713 ../lib/file.py:787 msgid ": file has changed" msgstr ": 檔案已更改" #: ../lib/file.py:714 #, python-format msgid "File changed since it was read - copied to %s " msgstr "文件自開啟後已被更改-複製到 %s " #: ../lib/file.py:731 #, python-format msgid "%s is locked by pid %d" msgstr "%s 被 pid %d 鎖定" #: ../lib/file.py:735 msgid "Can't make a lockfile in " msgstr "無法建立鎖定文件於 " #: ../lib/file.py:748 #, python-format msgid "%s is not writable" msgstr "%s 不可寫入" #: ../lib/file.py:751 #, python-format msgid ": %s already exists." msgstr "%s 已存在." #: ../lib/file.py:752 #, python-format msgid "overwrite %s?" msgstr "覆蓋 %s?" #: ../lib/file.py:788 #, python-format msgid "File changed since it was read - so it was copied to %s " msgstr "文件自開啟後已被更改-已將其複製到 %s " #: ../lib/sortDialog.py:125 msgid "_get_settings: Cant find sortAscendingRadioButton" msgstr "_get_settings: 無法找到 sortAscendingRadioButton" #: ../lib/sortDialog.py:165 msgid "Internal error" msgstr "內部錯誤" #: ../lib/sortDialog.py:303 msgid "Nothing to sort!" msgstr "沒有可排序的!" #: ../lib/sortDialog.py:398 msgid "Sort Text" msgstr "文字排序" #, fuzzy #~ msgid "" #~ "Rui Nibau (fr) <rui.nibau@omacronides.com>\n" #~ "Robert Emil Berge (no, nb) <filoktetes@linuxophic.org>\n" #~ "Сергей Безденежных (Sergey Bezdenezhnyh) (ru) <sib-mail@mtu-net.ru>\n" #~ "Raimondo Giammanco (it) <rongten@member.fsf.org>\n" #~ "Martin Sin (cs) <martin.sin@zshk.cz>\n" #~ "Cecilio Salmeron (es) <s.cecilio@gmail.com>\n" #~ "Aleksa Šušulić (sl) <susulic@gmail.com>\n" #~ "Uwe Steinmann (de) <uwe@steinmann.cx>\n" #~ "曹晉維 (Michael Tsao) (zh_TW) <cwtsao@sce.pccu.edu.tw>\n" #~ msgstr "" #~ "Rui Nibau (fr) <rui.nibau@omacronides.com>\n" #~ "Robert Emil Berge (no, nb) <filoktetes@linuxophic.org>\n" #~ "Сергей Безденежных (Sergey Bezdenezhnyh) (ru) <sib-mail@mtu-net.ru>\n" #~ "Raimondo Giammanco (it) <rongten@member.fsf.org>\n" #~ "Martin Sin (cs) <martin.sin@zshk.cz>\n" #~ "Cecilio Salmeron (es) <s.cecilio@gmail.com>\n" #~ "Aleksa Šušulić (sl) <susulic@gmail.com>\n" #~ "Uwe Steinmann (de) <uwe@steinmann.cx>\n" #~ msgid "Recent" #~ msgstr "最近" #~ msgid "Exit gjots" #~ msgstr "結束gjots" #~ msgid "Create a new child " #~ msgstr "建立新子項 " #~ msgid "About gjots2" #~ msgstr "關於gjots2" #~ msgid " Find: " #~ msgstr " 尋找: " #~ msgid "Auto ReadOnly timeout:" #~ msgstr "自動唯讀逾時:" #~ msgid "The number of second after losing focus that ReadOnly should be set." #~ msgstr "失去焦點指定秒數後設定唯讀" #~ msgid "abcdefghijk ABCDEFGHIJK" #~ msgstr "abcdefghijk ABCDEFGHIJK" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/zh_TW/������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0014377�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/zh_TW/LC_MESSAGES/������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0016164�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/po/zh_TW/LC_MESSAGES/gjots2.mo���������������������������������������������������������0000664�0000000�0000000�00000041202�14016300235�0017730�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��[��������h�� ���i�� ���s��������������������������������������������������������)�����<�����O�� ���o��+���}��#����������������������������%�����-�����5�����H�� ���[��'���f��!�������������������� ����� ����� ���������� ����� ��������+�� ���B�����N�����i�����~������������0����������$��������!�� ���;�����H�����]�����l������������ ��������������� ��������������������C��������K�����_�����r�������������������������������� ���������� ���������������'��������*�� ���>�����J��%���Q�� ���w������������7�����i�����e���?��(����������.�����8��������L�����Q�� ���`�� ���j��7���x��9������������������ �������'�����#���E��5���i�����������������)���������������-�����"���L��*���o�� ����� �����&������������������ ��^��� �� ���{ ����� �� ��� ����� �� ��� ����� �� ��� ��4��� ��6��� �� ���5!�� ���@!�� ���J!�����U!�����f!�����x!�����!�����!�����!�����!�� ���!�����!�����!�����"����� "�� ���"�����"�� ���7"�����B"�����H"��!���]"�����"�����"�����"�����"�����"�����"�����"��#��� #�� ���.#�����O#�����c#�� ���k#��$���u#�����#�����#�� ���#�����#�� ���#�����#�� ���#�����#�����#����� $�����$��(���%$��>���N$�� ���$�� ���$�� ���$��.���$��+���$����� %�����%��%���#%�����I%�����d%�� ���i%�� ���s%�����}%�����%�����%�����%�� ���%��(���%�� ���&�����&�����/&�����D&�����J&�� ���]&�����i&�����r&�� ���&�����&��#���&�� ���&��%���&�����'�����'�� ���0'�����>'�����M'�� ���_'�����i'����l'�����)�����)��5���)�����)�����)�����)�����)�����)�����)�� ���)�����*�� ���*�� ���*�� ���'*�� ���4*�� ���?*�� ���I*�� ���T*�� ���`*�����l*�����r*��1���x*�� ���*�����*�����*�� ���*��P���*�����,+��#���?+�����c+�����j+�� ���q+��)���+�����+��#���+�����+�����+�����,�����,�����-�����-�����#-�����2-�����A-�����P-�����S-�� ���i-�����w-�����-�����-�����-�����-�����-�� ���-��&��� .�����0.�����O.�����i.�� ���z.�����.�����.�� ���.�����.�����.�� ���.��+���.��+���/�����4/�����;/�����N/�����d/�����k/�� ���r/�����/�����/�� ���/�����/�� ���/�����/�����/�����/�����0�����0��,���(0�����U0�����r0�����0�����0�����0�����0�����0�����0�����1��!��� 1�����,1�����31�� ���:1�����F1�����M1�����`1��1���1�����1�����1�����1�����1�� ���1�����2����� 2�� ���2�����)2�� ���02�����>2�����E2�����L2�����\2��'���c2�� ���2�� ���2�����2�� ���2�� ���2�����2�� ���2��3���2��W���%3��f���}3��&���3����� 4��,���4��5���K4�����4�� ���4�� ���4�� ���4�����4��?���4����� 5�����!5�����(5�� ���/5��!���<5��!���^5��+���5�����5�� ���5�����5��)���5�� ���6�� ���6��'��� 6�����H6��*���d6�����6�� ���6��!���6�����6�����6�����6��C��� 7�� ���Q7�����[7�� ���b7�� ���p7�� ���z7�����7�� ���7��/���7��1���7�� ���8�� ���8�� ���(8�� ���68�� ���C8�����Q8�����a8�����t8�����8�����8�����8�����8�����8�� ���8�����8�� ���8�����8�����9�����9�����9�����29�����Q9�����g9�����9�����9�����9�����9�����9�� ���9�����9�����:�����":�����):�����0:�� ���M:�����Z:�� ���a:�����n:�� ���v:�����:�����:�����:�����:�� ���:�� ���:��'���:�����;�� ���;�����+;�����<;�����C;�����b;�� ���~;�����;��'���;�����;�����;�� ���;�� ���;�����<�����<�����!<�����1<�� ���A<��!���N<�� ���p<�� ���z<�� ���<�� ���<�����<�� ���<�� ���<�����<�� ���<�����<�����<�����=�����+=�����J=�����]=�����s=�� ���=�����=�� ���=�����=����=�����?�� ���?��$���?�� ��� @�� ���@�����@�� ���3@�� ���>@�� ���L@�����W@�� ���h@�����s@�� ���@�����@�� ���@�����@�����@�����@�����@�����@�� ���@��4���A�� ���:A�����GA�� ���^A�� ���iA��?���tA�� ���A��#���A�����A�����A�� ���A��%���B��!���'B��!���IB�����kB�����sB��������o���������\�������g������������������������"���t�������?���5����������A��� ����������:���������������������������H����������E������8������������K�������P�����������S���j���q���.��������������F���#������J������z����������y������s��������������1������X��������������������������������������������������������n���������2�������������=���������������>�������������T���4���W������U���������3�������+���0������������}���c�����������������������G�����������N���&���������p���x������������������{���_������d�������������������<����������M������m����������e���V����������|���O���B������������������)�������������������a���L����������Z���,�������������!���v����������������������������������������������������9���k���[������i������������������������������ ���������h�����������������������������������*������~���������6������b������������������������������������������@������������������������������������������������w���u��� ���;���R�������r���������������������������������������������������$��� ����������������������� ������%���������f������������/���������'���`���^��������� ������I���Q���Y�����������������������������������������������������������(���]������-������D���C�������������l��������������������������7��������������������� Options � Print Range � Print command � Print formatting � Sort Parameters � Sort Sublevels �%F�%d items merged�%d substitutions�%d tree items copied�%d tree items cut�%s is locked by pid %d�%s is not readable�%s is not writable�%s requires python%s or higher.�%s version %s�%s: Warning: opening gjots2 manual from %s �%s: bad geometry specification: %s �%s: locked by process number %d�%s: no permission�: %s already exists.�: Enter Password�: Error�: Save?�: can't lock file.�: file has changed�: version �Add a time/date stamp (see preferences)�Add a time/date stamp (see prefs)�All�All text selected�All tree items selected�Alphabetic�Ascending�Auto Number�Auto-number format: �Backwards�Bad password�Bad regular expression�Bold titles�Can't delete the root item�Can't go any further�Can't go further�Can't go further!�Can't lock file�Can't lock file %s: already locked by process %d�Can't make a lockfile in �Can't merge items that have children�Can't merge the root item�Can't open "�Can't read tempfile �Can't run '%s'�Can't write tempfile�Can't write to �Cancel�Choose a font for the text panel�Clear�Close�Confirm: �Copy�Copy selected items�Copyright Bob Hepple 2002-2020�Could not find the ccrypt program - please install it and try again�Courier 10 Pitch 10�Create a new child�Create a new item�Create a new page�Current text font�Cut�Cut selected items�D_emote�Date�Date format:�Demote�Descending�Don't ignore case�Down�Edit current item in an external editor�Enter password for �Exit gjots2�Export�Export selected items to a gjots file�Export to ...�Ext.Ed.�External editor�External formatter "%s" is not installed - can't format�External program to edit a page (%s is replaced by the name of the temporary edit file) eg xterm -e vi %s�External program to pipe text for formatting (%d is replaced by the current line width) eg fmt -w %d �Feeds a page before every new gjots item�File cannot be locked�File changed since it was read - copied to %s �File changed since it was read - so it was copied to %s �Find�Find & replace�Find Next�Find Previous�Find string is a regular expression (see 'man 7 regex')�Format for the timestamp function (see strftime(3)) eg %F�Format the current paragraph�Found�Global�Hide All�Hide all items except for the top level�Hide all items except the top level�How many sublevels to sort (0 for none; -1 for 'all')�Import�Import from ...�Import items from a gjots file�Install gtksourceview to enable undo/redo�Internal error�Internal error!�Invoke an external editor on the current item�Line length for paragraph wrapping�Make a new item from the current selection�Match case�Merge Items�Merge current items into the first one�Merge selected items together�Move selection down�Move selection up�Neither gpg2 nor gpg are available - please install one (perhaps package gnupg2) and try again�New Child�New Page�New _Child�New file�New...>>>�No changes to save�No child!�No openssl program - please install it and try again�No org2gjots program - please install it and try again�No parent!�Not found�Not saved.�Nothing selected�Nothing selected!�Nothing to merge�Nothing to paste�Nothing to save�Nothing to sort!�Numeric�Open file ...�Open file read only�Open gjots preferences window�P_romote�Page�Page feeds�Password was not confirmed�Password: �Paste�Paste selected items�Popup the find and replace dialog�Popup the sort dialog�Popup the sort text dialog�Popup the sort tree dialog�Prefs�Print�Print the current page�Print the entire gjots file�Print the gjots item titles in bold�Print the selected pages or text�Print this document�Promote�Read only�Read the online manual (using gjots)�Regular Expression�Replace�Replace All�Replace?�S_ort Tree�Save�Save as ...�Save current work?�Save gjots document�Saved.�Search backwards�Searches entire file not just this entry�Seconds of inactivity to trigger an AutoSave (0 = no AutoSave)�Select Font�Select _All�Selection�Selection becomes a child of the previous item�Selection becomes a sibling to their parent�Show All�Show _Icon Text�Show all items below the current item�Show the related icon text�Sort�Sort Text�Sort Tree�Sort in alphabetic order�Sort in ascending order�Sort in descending order�Sort in numeric order�Split Item�Split the text selection into a new item�Status _Bar�String to replace�String to search for�Te_xt�Text Line Length: �Text copied�Text cut�Text formatter: �Text pasted�That file is already open!�To open the file in read-only mode.�To_p Toolbar�Toggle the read-only flag if possible�Toggles the main toolbar�Toggles tree tool bar�Tre_e Toolbar�Tree is empty!�Tree items pasted�Try again�Up�Usage: gjots [OPTIONS] [FILENAME] A gtk/X11 jotter OPTIONS: -h, --help: this help -d, --debug: debug to stdout -t, --trace: trace lines as they execute -g 123x456, --geometry=123x456: initial geometry (X x Y) -p, --purge-password don't remember password -r, --readonly: no editing (or locking) -V, --version: print the version and exit FILENAME: gjots data filename (default is $HOME/.gjotsfile) �Use -h for help �Wrap�Wrap the current paragraph to the current line length�_Edit�_Export�_External Edit�_File�_Format�_Help�_Hide All�_Import�_Merge Items�_New Page�_Read Manual�_Read-only�_Show All�_Sort Text�_Split Item�_Time stamp�_Tree�_View�_get_settings: Cant find sortAscendingRadioButton�e.g. lpr: �eg. 1 for 1.2.1, a�failed!�fmt -w %d �gjots2: warning: selection list is NULL. Skipping tree selection changed event.�gjots: preferences�http://bhepple.freeshell.org/gjots2�label1�label2�overwrite %s?�print command (can be a shell expression)�text changed by external editor�text not changed by external editor�window1�xterm -e vi %s�Project-Id-Version: Report-Msgid-Bugs-To: PO-Revision-Date: 2020-05-13 17:06+0800 Last-Translator: Language-Team: Language: tw MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Poedit 2.3.1 � 選項 � 列印範圍 � 列印指令 � 列印格式 � 排序參數 � 排序次階 �%F�%d 個項目已合併�取代 %d 個�%d 個樹項目已複製�%d 個樹項目已剪下�%s 被 pid %d 鎖定�%s 不可讀取�%s 不可寫入�%s 需要 python%s 或更高.�%s 版本 %s�%s: 警告: 從 %s 開啟gjots2手冊 �%s: 幾何規格不正確: %s �%s:已被程序 %d 鎖定�%s: 沒有權限�%s 已存在.�: 輸入密碼�: 錯誤�: 儲存?�: 無法鎖定檔案.�: 檔案已更改�: 版本 �新增時間/日期戳記(詳見偏好)�新增時間/日期戳記(詳見偏好)�全部�已選所有文字�已選所有樹項目�字母�遞增�自動編號�自動編號格式: �反向�密碼錯誤�錯誤的正規表達式�粗體標題�無法刪除根項目�沒有下一個�沒有下一個�沒有下一個!�無法鎖定黨案�無法鎖定檔案 %s: 已被程序 %d鎖定�無法建立鎖定文件於 �無法合併有子之項目�無法合併根項目�無法開啟 "�無法讀取暫存檔 �無法運行 '%s'�無法寫入暫存檔�無法寫入至 �取消�為文字面板選擇一種字型�清除�闗閉�再確認: �複製�複製已選項目�Bob Hepple版權所有2002-2020�找不到ccrypt程式-請安裝它,然後重試�Courier 10 間距 10�建立新子項�建立新項目�建立新頁面�現行字型�剪下�剪下已選項目�降級(_D)�日期�日期格式:�降級�遞減�區分大小寫�向下�在外部編輯器中編輯現行項目�輸入密碼 �結束gjots2�匯出�匯出已選項目為gjots檔案�匯出到 ...�Ext.Ed.�外部編輯�未安裝外部格式化程式"%s" -無法格式化�以外部程式編輯頁面(%s 替換為臨時編輯檔案),例如 xterm -e vi %s�以外部程式進行管道文字(pipe text)格式化(%d 替換為現行行寬),例如fmt -w %d �在每個新gjots項目前插入新頁�檔案無法鎖定�文件自開啟後已被更改-複製到 %s �文件自開啟後已被更改-已將其複製到 %s �尋找�尋找取代�找下一個�找上一個�用正規表達尋找字串�時間戳記函數格式(詳見strftime(3)),例如 %F�格式化現行段落�找到�全域�全部隱藏�隱藏所有項目除最上層外�除最上層外隱藏全部項目�要排序多少次階 (0 沒有; -1 全部)�匯入�從...匯入�從gjots檔案匯入項目�安裝gtksourceview以啟用撤消/重做�內部錯誤�內部錯誤!�在現行項目上調用外部編輯器�段落自動換行的行長�從現行選擇中製作一個新的項目�大小寫匹配�合併項目�將現行項目合併至第一個�合併已選項目�選取項目向下移�選擇項目向上移�gpg2和gpg都存在-請擇一(也許是gnupg2軟件包)然後重試�新子項�新頁�新子項(_C)�新文件�新...>>>�沒有需要儲存的改變�沒有子項!�沒有openssl程式-請安裝它,然後重試�沒有org2gjots程式-請安裝它,然後重試�沒有父項!�未找到�沒有儲存.�尚未選擇�尚未選擇!�無可合併項�沒有可貼上的�沒有可儲存的�沒有可排序的!�數字�開啟檔案...�唯讀開啟檔案�開啟gjots偏好視窗�升級(_P)�頁面�插入頁面�密碼尚未確認�密碼: �貼上�貼上已選項目�彈出尋找和取代對話框�彈出排序對話框�彈出文字排序對話框�彈出排序樹對話框�偏好�列印�列印目前頁面�列印整個gjots檔案�以粗體列印gjots項目標題�列印已選頁面或本文�列印此文件�升級�唯讀�閱讀線上手冊(用gjots)�正規表達�取代�全部取代�取代?�排序樹(_S)�儲存�另存新檔...�儲存現行工作?�儲存gjots文件�已存檔.�向後搜尋�搜尋整個檔案,而不僅是此頁�秒數為0時不自動儲存�選擇字型�全部選擇(_A)�選擇�使成為前一項目之子項�選擇項目移至同一層�全部顯示�顯示圖示文字(_I)�顯示在現行項目下的全部項目�顯示相關圖示文字�排序�文字排序�排序樹�以字母排序�以遞增排序�以遞減排序�以數字排序�分隔項目�將所選文字分隔為新項目�狀態帶�取代字串�搜尋字串�文字(_X)�文字長度: �複製文字�剪下文字�文字格式: �貼上文字�該檔案已經開啟!�以唯讀模式開啟檔案�上方工具列(_P)�如有可能切換唯讀旗標�切換主工具列�切換樹狀工具列�樹工具列(_E)�樹是空的!�樹項目已貼上�再試一式�向上�Usage: gjots [OPTIONS] [FILENAME] A gtk/X11 jotter OPTIONS: -h, --help: 此文件 -d, --debug: 除錯至stdout -t, --trace: 執行時描線(trace lines) -g 123x456, --geometry=123x456: 初始幾何(X x Y) -p, --purge-password 不記憶密碼 -r, --readonly: 不編輯 (或鎖定) -V, --version: 列印版本且離開 FILENAME: gjots 資料的檔名 (預設值為 $HOME/.gjotsfile) �使用 -h 取得說明 �自動換行�以現行列長自動換行此段落�編輯(_E)�匯出(_E)�外部編輯器(_E)�檔案(_F)�格式化(_F)�說明(_H)�隱藏全部(_H)�匯入(_I)�合併項目(_M)�新頁面(_N)�閱讀手冊(_R)�唯讀(_R)�顯示全部(_S)�文字排序(_S)�分割項目(_S)�日期戳記(_T)�樹(_T)�檢視(_V)�_get_settings: 無法找到 sortAscendingRadioButton�例如 lpr: �例如. 1 for 1.2.1, a�失敗了!�fmt -w %d �gjots2: 警告: 選取清單為 NULL。跳過選取樹變更。�gjots: 偏好�http://bhepple.freeshell.org/gjots2�標籤1�標籤2�覆蓋 %s?�列印指令(可以是shell表達式)�文字已被外部編輯器更改�文字未由外部編輯器更改�視窗1�xterm -e vi %s�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/setup.py�������������������������������������������������������������������������������0000775�0000000�0000000�00000010374�14016300235�0014450�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python3 # A command to install gjots2 using the 'standard' method for python. # I prefer to install with rpm or emerge but this might be useful if # you have neither or just plain prefer the setup.py script. # Install gjots2 with: # python setup.py install # or perhaps: # python setup.py install --prefix=/usr # Please help! How do I get this script to automatically generate the # .pyc files at installation time? # There is no "uninstall" command in the Python setup.py utility :-( # so I have provided an uninstall.sh script which you can customise # and use. import os, sys from distutils.core import setup from lib.version import * setup( name = "gjots2", version = gjots_version, description = "gtk3 notes utility", long_description = "gtk3 notes utility", author = "Bob Hepple", author_email = "bob.hepple@gmail.com", url = "http://bhepple.freeshell.org/gjots/", scripts = ['bin/gjots2','bin/gjots2docbook','bin/docbook2gjots','bin/gjots2html','bin/gjots2html.py','bin/gjots2lpr','bin/gjots2emacs','bin/gjots2org','bin/org2gjots'], package_dir = {'': '.', 'gjots2': 'lib'}, packages = ['gjots2'], data_files = [ ( 'share/man/man1', [ 'doc/man/man1/gjots2.1','doc/man/man1/gjots2docbook.1','doc/man/man1/docbook2gjots.1','doc/man/man1/gjots2html.1' ] ), ( 'share/doc/gjots2-' + gjots_version, [ 'doc/gjots2.gjots','AUTHORS','README','INSTALL', 'COPYING', 'ChangeLog' ] ), ('share/doc/gjots2-' + gjots_version, ['doc/gjots2.en_US.gjots']), ('share/doc/gjots2-' + gjots_version, ['doc/gjots2.fr.gjots']), ('share/doc/gjots2-' + gjots_version, ['doc/gjots2.no.gjots']), ('share/doc/gjots2-' + gjots_version, ['doc/gjots2.nb.gjots']), ('share/doc/gjots2-' + gjots_version, ['doc/gjots2.ru.gjots']), ('share/doc/gjots2-' + gjots_version, ['doc/gjots2.es.gjots']), ('share/pixmaps', ['pixmaps/gjots2.png']), ('share/gjots2/ui', ['ui/gjots.ui']), ('share/gjots2/ui', ['ui/fileDialog.ui']), ('share/gjots2/ui', ['ui/findDialog.ui']), ('share/gjots2/ui', ['ui/fontDialog.ui']), ('share/gjots2/ui', ['ui/generalDialog.ui']), ('share/gjots2/ui', ['ui/prefsDialog.ui']), ('share/gjots2/ui', ['ui/printDialog.ui']), ('share/gjots2/ui', ['ui/sortDialog.ui']), ('share/gjots2/ui', ['ui/treeContextMenu.ui']), ('share/gjots2/pixmaps', ['pixmaps/gjots2.png']), ('share/gjots2/pixmaps', ['pixmaps/gjots2-new-page.png']), ('share/gjots2/pixmaps', ['pixmaps/gjots2-new-child.png']), ('share/gjots2/pixmaps', ['pixmaps/gjots2-merge-items.png']), ('share/gjots2/pixmaps', ['pixmaps/gjots2-split-item.png']), ('share/gjots2/pixmaps', ['pixmaps/gjots2-hide-all.png']), ('share/gjots2/pixmaps', ['pixmaps/gjots2-show-all.png']), ('share/gjots2/pixmaps', ['pixmaps/gjots2-clock.png']), ('share/locale/en_US/LC_MESSAGES', ['po/en_US/LC_MESSAGES/gjots2.mo']), ('share/locale/fr/LC_MESSAGES', ['po/fr/LC_MESSAGES/gjots2.mo']), ('share/locale/no/LC_MESSAGES', ['po/no/LC_MESSAGES/gjots2.mo']), ('share/locale/nb/LC_MESSAGES', ['po/nb/LC_MESSAGES/gjots2.mo']), ('share/locale/ru/LC_MESSAGES', ['po/ru/LC_MESSAGES/gjots2.mo']), ('share/locale/it/LC_MESSAGES', ['po/it/LC_MESSAGES/gjots2.mo']), ('share/locale/cs/LC_MESSAGES', ['po/cs/LC_MESSAGES/gjots2.mo']), ('share/locale/es/LC_MESSAGES', ['po/es/LC_MESSAGES/gjots2.mo']), ('share/locale/sl/LC_MESSAGES', ['po/sl/LC_MESSAGES/gjots2.mo']), ('share/locale/sv/LC_MESSAGES', ['po/sv/LC_MESSAGES/gjots2.mo']), ('share/locale/de_DE/LC_MESSAGES', ['po/de_DE/LC_MESSAGES/gjots2.mo']), ('share/locale/zh_TW/LC_MESSAGES', ['po/zh_TW/LC_MESSAGES/gjots2.mo']), ('share/locale/en_US/LC_MESSAGES', ['po/en_US/LC_MESSAGES/gjots2.mo']), ('share/applications',['gjots2.desktop']), ('share/metainfo',['gjots2.metainfo.xml']), ('share/glib-2.0/schemas', ['org.gtk.gjots2.gschema.xml']), ], license = 'GNU GPL', platforms = 'posix', ) print("\n*** Now run 'glib-compile-schemas $prefix/share/glib-2.0/schemas ***'\n") ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/ui/������������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14016300235�0013343�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/ui/about.ui����������������������������������������������������������������������������0000664�0000000�0000000�00000001565�14016300235�0015023�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <interface> <!-- interface-requires gnome 0.0 --> <!-- interface-naming-policy toplevel-contextual --> <object class="GnomeAbout" id="about"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="border_width">5</property> <property name="window_position">mouse</property> <property name="icon">gjots2.png</property> <property name="type_hint">dialog</property> <property name="copyright" translatable="yes">Copyright Bob Hepple 2002-2020</property> <property name="comments" translatable="yes">http://bhepple.freeshell.org/gjots2</property> <property name="authors">Bob Hepple Gabriel Munoz </property> <property name="translator_credits" translatable="yes"> </property> <property name="logo">gjots2.png</property> </object> </interface> �������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/ui/fileDialog.ui�����������������������������������������������������������������������0000664�0000000�0000000�00000010743�14016300235�0015746�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <interface> <requires lib="gtk+" version="2.16"/> <!-- interface-naming-policy toplevel-contextual --> <object class="GtkFileChooserDialog" id="fileselection"> <property name="can_focus">False</property> <property name="border_width">5</property> <property name="modal">True</property> <property name="window_position">mouse</property> <property name="destroy_with_parent">True</property> <property name="type_hint">normal</property> <property name="skip_taskbar_hint">True</property> <property name="skip_pager_hint">True</property> <signal name="file-activated" handler="on_fileselectionOkButton_clicked" swapped="no"/> <child internal-child="vbox"> <object class="GtkVBox" id="dialog-vbox2"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">2</property> <child internal-child="action_area"> <object class="GtkHButtonBox" id="dialog-action_area2"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> <child> <object class="GtkButton" id="fileselectionOkButton"> <property name="label">gtk-ok</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="use_stock">True</property> <signal name="clicked" handler="on_fileselectionOkButton_clicked" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkButton" id="fileselectionCancelButton"> <property name="label">gtk-cancel</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="use_stock">True</property> <signal name="clicked" handler="on_fileselectionCancelButton_clicked" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="pack_type">end</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkHBox" id="hbox1"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkCheckButton" id="fileselectionReadonly"> <property name="label" translatable="yes">Open file read only</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="tooltip_text" translatable="yes">To open the file in read-only mode.</property> <property name="focus_on_click">False</property> <property name="draw_indicator">True</property> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <placeholder/> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">2</property> </packing> </child> </object> </child> <action-widgets> <action-widget response="0">fileselectionOkButton</action-widget> <action-widget response="0">fileselectionCancelButton</action-widget> </action-widgets> </object> </interface> �����������������������������gjots2-3.1.9/ui/findDialog.ui�����������������������������������������������������������������������0000664�0000000�0000000�00000042254�14016300235�0015751�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <interface> <requires lib="gtk+" version="2.16"/> <!-- interface-naming-policy toplevel-contextual --> <object class="GtkWindow" id="findDialog"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="title" translatable="yes">Find & replace</property> <property name="window_position">mouse</property> <property name="type_hint">dialog</property> <signal name="destroy" handler="on_findDialog_destroy" swapped="no"/> <child> <object class="GtkVBox" id="vbox3"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkHBox" id="hbox2"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkTable" id="table4"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="border_width">10</property> <property name="n_rows">2</property> <property name="n_columns">2</property> <property name="column_spacing">10</property> <property name="row_spacing">10</property> <child> <object class="GtkLabel" id="label4"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label" translatable="yes">Find:</property> <property name="justify">center</property> </object> <packing> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkLabel" id="replaceLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label" translatable="yes">Replace:</property> <property name="justify">center</property> </object> <packing> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkEntry" id="findEntry"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="has_focus">True</property> <property name="can_default">True</property> <property name="has_default">True</property> <property name="tooltip_text" translatable="yes">String to search for</property> <property name="primary_icon_activatable">False</property> <property name="secondary_icon_activatable">False</property> <property name="primary_icon_sensitive">True</property> <property name="secondary_icon_sensitive">True</property> </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkEntry" id="replaceEntry"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="tooltip_text" translatable="yes">String to replace</property> <property name="primary_icon_activatable">False</property> <property name="secondary_icon_activatable">False</property> <property name="primary_icon_sensitive">True</property> <property name="secondary_icon_sensitive">True</property> <signal name="key-press-event" handler="on_replaceEntry_key_press_event" swapped="no"/> </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="y_options"/> </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkTable" id="table3"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="border_width">10</property> <property name="n_rows">3</property> <property name="n_columns">2</property> <property name="column_spacing">10</property> <property name="row_spacing">10</property> <property name="homogeneous">True</property> <child> <object class="GtkButton" id="findStartButton"> <property name="label" translatable="yes">Find</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <accelerator key="Return" signal="clicked"/> <accelerator key="KP_Enter" signal="clicked"/> <signal name="clicked" handler="on_findStartButton_clicked" swapped="no"/> </object> <packing> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkButton" id="findCloseButton"> <property name="label" translatable="yes">Close</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <signal name="clicked" handler="on_findCloseButton_clicked" swapped="no"/> </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkButton" id="replaceStartButton"> <property name="label" translatable="yes">Replace</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <signal name="clicked" handler="on_replaceStartButton_clicked" swapped="no"/> </object> <packing> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkButton" id="replaceAllButton"> <property name="label" translatable="yes">Replace All</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <signal name="clicked" handler="on_replaceAllButton_clicked" swapped="no"/> </object> <packing> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkButton" id="findCancelButton"> <property name="label" translatable="yes">Cancel</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <accelerator key="Escape" signal="clicked"/> <signal name="clicked" handler="on_findCancelButton_clicked" swapped="no"/> </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkButton" id="findClearButton"> <property name="label" translatable="yes">Clear</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <signal name="clicked" handler="on_findClearButton_clicked" swapped="no"/> </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkLabel" id="findFeedback"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="justify">center</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkFrame" id="frame2"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="border_width">10</property> <property name="label_xalign">0</property> <child> <object class="GtkTable" id="table5"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="border_width">10</property> <property name="n_rows">2</property> <property name="n_columns">2</property> <property name="column_spacing">10</property> <property name="row_spacing">10</property> <property name="homogeneous">True</property> <child> <object class="GtkCheckButton" id="caseCheckbutton"> <property name="label" translatable="yes">Match case</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="tooltip_text" translatable="yes">Don't ignore case</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> </object> <packing> <property name="y_options"/> </packing> </child> <child> <object class="GtkCheckButton" id="regexCheckbutton"> <property name="label" translatable="yes">Regular Expression</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="tooltip_text" translatable="yes">Find string is a regular expression (see 'man 7 regex')</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkCheckButton" id="backwardsCheckbutton"> <property name="label" translatable="yes">Backwards</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="tooltip_text" translatable="yes">Search backwards</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkCheckButton" id="globalCheckbutton"> <property name="label" translatable="yes">Global</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="tooltip_text" translatable="yes">Searches entire file not just this entry</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> </object> <packing> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> </object> </child> <child type="label"> <object class="GtkLabel" id="label6"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes"> Options </property> </object> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">2</property> </packing> </child> </object> </child> </object> </interface> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/ui/fontDialog.ui�����������������������������������������������������������������������0000664�0000000�0000000�00000005563�14016300235�0016001�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <interface> <requires lib="gtk+" version="2.16"/> <!-- interface-naming-policy toplevel-contextual --> <object class="GtkFontSelectionDialog" id="fontselectiondialog"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="border_width">4</property> <property name="title" translatable="yes">Select Font</property> <property name="modal">True</property> <property name="window_position">mouse</property> <property name="type_hint">dialog</property> <child internal-child="font_selection"> <object class="GtkFontSelection" id="fontselection1"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="border_width">4</property> </object> </child> <action-widgets> <action-widget response="0">fontOK</action-widget> <action-widget response="0">fontApply</action-widget> <action-widget response="0">fontCancel</action-widget> </action-widgets> <child internal-child="cancel_button"> <object class="GtkButton" id="fontCancel"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="can_default">True</property> <property name="receives_default">False</property> <signal name="clicked" handler="on_fontCancel_clicked" swapped="no"/> </object> </child> <action-widgets> <action-widget response="0">fontOK</action-widget> <action-widget response="0">fontApply</action-widget> <action-widget response="0">fontCancel</action-widget> </action-widgets> <child internal-child="apply_button"> <object class="GtkButton" id="fontApply"> <property name="can_focus">True</property> <property name="can_default">True</property> <property name="receives_default">False</property> <signal name="clicked" handler="on_fontApply_clicked" swapped="no"/> </object> </child> <action-widgets> <action-widget response="0">fontOK</action-widget> <action-widget response="0">fontApply</action-widget> <action-widget response="0">fontCancel</action-widget> </action-widgets> <child internal-child="ok_button"> <object class="GtkButton" id="fontOK"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="can_default">True</property> <property name="receives_default">False</property> <signal name="clicked" handler="on_fontOK_clicked" swapped="no"/> </object> </child> <action-widgets> <action-widget response="0">fontOK</action-widget> <action-widget response="0">fontApply</action-widget> <action-widget response="0">fontCancel</action-widget> </action-widgets> </object> </interface> ���������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/ui/generalDialog.ui��������������������������������������������������������������������0000664�0000000�0000000�00000025114�14016300235�0016442�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <interface> <requires lib="gtk+" version="2.16"/> <!-- interface-naming-policy toplevel-contextual --> <object class="GtkWindow" id="generalDialog"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="border_width">1</property> <property name="title" translatable="yes">window1</property> <property name="modal">True</property> <property name="window_position">mouse</property> <property name="destroy_with_parent">True</property> <child> <object class="GtkVBox" id="vbox1"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkLabel" id="generalPromptLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="xpad">10</property> <property name="label" translatable="yes">label1</property> <property name="justify">center</property> <property name="wrap">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="padding">10</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkTable" id="table1"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="border_width">10</property> <property name="n_rows">2</property> <property name="n_columns">2</property> <property name="column_spacing">5</property> <property name="row_spacing">5</property> <child> <object class="GtkLabel" id="generalLabel2"> <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label" translatable="yes">label2</property> <property name="justify">center</property> </object> <packing> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options"/> <property name="y_options"/> </packing> </child> <child> <object class="GtkLabel" id="generalLabel1"> <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label" translatable="yes">label1</property> <property name="justify">center</property> </object> <packing> <property name="x_options"/> <property name="y_options"/> </packing> </child> <child> <object class="GtkEntry" id="generalField2"> <property name="can_focus">True</property> <property name="events">GDK_BUTTON_PRESS_MASK | GDK_STRUCTURE_MASK</property> <property name="primary_icon_activatable">False</property> <property name="secondary_icon_activatable">False</property> <property name="primary_icon_sensitive">True</property> <property name="secondary_icon_sensitive">True</property> <signal name="key-press-event" handler="on_generalField2_key_press_event" swapped="no"/> </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options"/> <property name="y_options"/> </packing> </child> <child> <object class="GtkEntry" id="generalField1"> <property name="can_focus">True</property> <property name="has_focus">True</property> <property name="events">GDK_BUTTON_PRESS_MASK | GDK_KEY_RELEASE_MASK</property> <property name="primary_icon_activatable">False</property> <property name="secondary_icon_activatable">False</property> <property name="primary_icon_sensitive">True</property> <property name="secondary_icon_sensitive">True</property> <signal name="key-press-event" handler="on_generalField1_key_press_event" swapped="no"/> </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="x_options"/> <property name="y_options"/> </packing> </child> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkLabel" id="generalFeedback"> <property name="can_focus">False</property> <property name="label" translatable="yes">label1</property> <property name="justify">center</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">2</property> </packing> </child> <child> <object class="GtkHSeparator" id="hseparator1"> <property name="visible">True</property> <property name="can_focus">False</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">3</property> </packing> </child> <child> <object class="GtkHButtonBox" id="hbuttonbox1"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> <child> <object class="GtkButton" id="generalOK"> <property name="label">gtk-ok</property> <property name="can_focus">False</property> <property name="receives_default">False</property> <property name="border_width">5</property> <property name="use_stock">True</property> <accelerator key="Return" signal="clicked"/> <accelerator key="KP_Enter" signal="clicked"/> <signal name="clicked" handler="on_generalOK_clicked" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> <placeholder/> </child> <child> <object class="GtkButton" id="generalNo"> <property name="label">gtk-no</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="border_width">5</property> <property name="use_stock">True</property> <signal name="clicked" handler="on_generalNo_clicked" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">2</property> </packing> </child> <child> <object class="GtkButton" id="generalCancel"> <property name="label">gtk-cancel</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="border_width">5</property> <property name="use_stock">True</property> <accelerator key="Escape" signal="clicked"/> <signal name="clicked" handler="on_generalCancel_clicked" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">3</property> </packing> </child> <child> <object class="GtkButton" id="generalTryagain"> <property name="label" translatable="yes">Try again</property> <property name="can_focus">True</property> <property name="can_default">True</property> <property name="receives_default">False</property> <property name="border_width">5</property> <property name="use_underline">True</property> <signal name="clicked" handler="on_generalTryagain_clicked" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">4</property> </packing> </child> <child> <object class="GtkButton" id="generalReadonly"> <property name="label" translatable="yes">Read only</property> <property name="can_focus">True</property> <property name="can_default">True</property> <property name="receives_default">False</property> <property name="border_width">5</property> <property name="use_underline">True</property> <signal name="clicked" handler="on_generalReadonly_clicked" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">5</property> </packing> </child> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="padding">15</property> <property name="position">4</property> </packing> </child> </object> </child> </object> </interface> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/ui/gjots.ui����������������������������������������������������������������������������0000664�0000000�0000000�00000207046�14016300235�0015041�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <interface> <requires lib="gtk+" version="2.24"/> <!-- interface-naming-policy toplevel-contextual --> <object class="GtkWindow" id="gjots"> <property name="can_focus">False</property> <signal name="focus-out-event" handler="on_gjots_focus_out_event" swapped="no"/> <child> <object class="GtkVBox" id="vbox1"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkHBox" id="hbox2"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkMenuBar" id="menubar1"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkMenuItem" id="menuitem1"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">_File</property> <property name="use_underline">True</property> <child type="submenu"> <object class="GtkMenu" id="menu1"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkImageMenuItem" id="newMenuItem"> <property name="label">gtk-new</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <accelerator key="n" signal="activate" modifiers="GDK_CONTROL_MASK"/> <signal name="activate" handler="on_new_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="openMenuItem"> <property name="label">gtk-open</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <accelerator key="o" signal="activate" modifiers="GDK_CONTROL_MASK"/> <signal name="activate" handler="on_open_trigger" swapped="no"/> </object> </child> <child> <object class="GtkSeparatorMenuItem" id="separatormenuitem1"> <property name="visible">True</property> <property name="can_focus">False</property> </object> </child> <child> <object class="GtkImageMenuItem" id="saveMenuItem"> <property name="label">gtk-save</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <accelerator key="s" signal="activate" modifiers="GDK_CONTROL_MASK"/> <signal name="activate" handler="on_save_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="saveAsMenuItem"> <property name="label">gtk-save-as</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <accelerator key="s" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/> <signal name="activate" handler="on_saveAs_trigger" swapped="no"/> </object> </child> <child> <object class="GtkSeparatorMenuItem" id="separatormenuitem2"> <property name="visible">True</property> <property name="can_focus">False</property> </object> </child> <child> <object class="GtkImageMenuItem" id="importMenuItem"> <property name="label" translatable="yes">_Import</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Import items from a gjots file</property> <property name="use_underline">True</property> <property name="use_stock">False</property> <signal name="activate" handler="on_import_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="exportMenuItem"> <property name="label" translatable="yes">_Export</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Export selected items to a gjots file</property> <property name="use_underline">True</property> <property name="use_stock">False</property> <signal name="activate" handler="on_export_trigger" swapped="no"/> </object> </child> <child> <object class="GtkSeparatorMenuItem" id="separatormenuitem3"> <property name="visible">True</property> <property name="can_focus">False</property> </object> </child> <child> <object class="GtkImageMenuItem" id="printMenuItem"> <property name="label">gtk-print</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <accelerator key="p" signal="activate" modifiers="GDK_CONTROL_MASK"/> <signal name="activate" handler="on_print_trigger" swapped="no"/> </object> </child> <child> <object class="GtkSeparatorMenuItem" id="separatormenuitem4"> <property name="visible">True</property> <property name="can_focus">False</property> </object> </child> <child> <object class="GtkCheckMenuItem" id="readOnlyMenuItem"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Toggle the read-only flag if possible</property> <property name="label" translatable="yes">_Read-only</property> <property name="use_underline">True</property> <accelerator key="r" signal="activate" modifiers="GDK_CONTROL_MASK"/> </object> </child> <child> <object class="GtkSeparatorMenuItem" id="separatormenuitem5"> <property name="visible">True</property> <property name="can_focus">False</property> </object> </child> <child> <object class="GtkImageMenuItem" id="quitMenuItem"> <property name="label">gtk-quit</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Exit gjots2</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <accelerator key="q" signal="activate" modifiers="GDK_CONTROL_MASK"/> <signal name="activate" handler="on_quit_trigger" swapped="no"/> </object> </child> </object> </child> </object> </child> <child> <object class="GtkMenuItem" id="menuitem2"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">_Edit</property> <property name="use_underline">True</property> <child type="submenu"> <object class="GtkMenu" id="menu2"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkImageMenuItem" id="undoMenuItem"> <property name="label">gtk-undo</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <accelerator key="z" signal="activate" modifiers="GDK_CONTROL_MASK"/> <signal name="activate" handler="on_undo_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="redoMenuItem"> <property name="label">gtk-redo</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <accelerator key="y" signal="activate" modifiers="GDK_CONTROL_MASK"/> <signal name="activate" handler="on_redo_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="cutMenuItem"> <property name="label">gtk-cut</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <accelerator key="x" signal="activate" modifiers="GDK_CONTROL_MASK"/> <signal name="activate" handler="on_cut_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="copyMenuItem"> <property name="label">gtk-copy</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <accelerator key="c" signal="activate" modifiers="GDK_CONTROL_MASK"/> <signal name="activate" handler="on_copy_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="pasteMenuItem"> <property name="label">gtk-paste</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <accelerator key="v" signal="activate" modifiers="GDK_CONTROL_MASK"/> <signal name="activate" handler="on_paste_trigger" swapped="no"/> </object> </child> <child> <object class="GtkSeparatorMenuItem" id="separatormenuitem6"> <property name="visible">True</property> <property name="can_focus">False</property> </object> </child> <child> <object class="GtkImageMenuItem" id="selectAllMenuItem"> <property name="label">gtk-select-all</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <signal name="activate" handler="on_selectAll_trigger" swapped="no"/> </object> </child> <child> <object class="GtkSeparatorMenuItem" id="separatormenuitem7"> <property name="visible">True</property> <property name="can_focus">False</property> </object> </child> <child> <object class="GtkImageMenuItem" id="findMenuItem"> <property name="label">gtk-find</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <accelerator key="f" signal="activate" modifiers="GDK_CONTROL_MASK"/> <signal name="activate" handler="on_find_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="findAgainMenuItem"> <property name="label" translatable="yes">Find Next</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_stock">False</property> <accelerator key="g" signal="activate" modifiers="GDK_CONTROL_MASK"/> <signal name="activate" handler="on_findAgain_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="findAgainBackwardsMenuItem"> <property name="label" translatable="yes">Find Previous</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_stock">False</property> <accelerator key="g" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/> <signal name="activate" handler="on_findAgainBackwards_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="prefsMenuItem"> <property name="label">gtk-preferences</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <signal name="activate" handler="on_prefs_trigger" swapped="no"/> </object> </child> </object> </child> </object> </child> <child> <object class="GtkMenuItem" id="menuitem3"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">_View</property> <property name="use_underline">True</property> <child type="submenu"> <object class="GtkMenu" id="menu4"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkImageMenuItem" id="showAllMenuItem"> <property name="label" translatable="yes">_Show All</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Show all items below the current item</property> <property name="use_underline">True</property> <property name="use_stock">False</property> <signal name="activate" handler="on_showAll_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="hideAllMenuItem"> <property name="label" translatable="yes">_Hide All</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Hide all items except the top level</property> <property name="use_underline">True</property> <property name="use_stock">False</property> <signal name="activate" handler="on_hideAll_trigger" swapped="no"/> </object> </child> <child> <object class="GtkSeparatorMenuItem" id="separatormenuitem8"> <property name="visible">True</property> <property name="can_focus">False</property> </object> </child> <child> <object class="GtkCheckMenuItem" id="topToolbarCheckMenuItem"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Toggles the main toolbar</property> <property name="label" translatable="yes">To_p Toolbar</property> <property name="use_underline">True</property> <signal name="activate" handler="on_topToolbarCheck_trigger" swapped="no"/> </object> </child> <child> <object class="GtkCheckMenuItem" id="treeToolbarCheckMenuItem"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Toggles tree tool bar</property> <property name="label" translatable="yes">Tre_e Toolbar</property> <property name="use_underline">True</property> <signal name="activate" handler="on_treeToolbarCheck_trigger" swapped="no"/> </object> </child> <child> <object class="GtkCheckMenuItem" id="showIconTextCheckMenuItem"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Show the related icon text</property> <property name="label" translatable="yes">Show _Icon Text</property> <property name="use_underline">True</property> <signal name="activate" handler="on_showIconText_trigger" swapped="no"/> </object> </child> <child> <object class="GtkCheckMenuItem" id="statusBarMenuItem"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">Status _Bar</property> <property name="use_underline">True</property> <signal name="activate" handler="on_statusBarMenuItem_trigger" swapped="no"/> </object> </child> </object> </child> </object> </child> <child> <object class="GtkMenuItem" id="tree1"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">_Tree</property> <property name="use_underline">True</property> <child type="submenu"> <object class="GtkMenu" id="menu5"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkImageMenuItem" id="newPageMenuItem"> <property name="label" translatable="yes">_New Page</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Create a new page</property> <property name="use_underline">True</property> <property name="use_stock">False</property> <accelerator key="Insert" signal="activate" modifiers="GDK_CONTROL_MASK"/> <signal name="activate" handler="on_newPage_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="newChildMenuItem"> <property name="label" translatable="yes">New _Child</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Create a new child</property> <property name="use_underline">True</property> <property name="use_stock">False</property> <signal name="activate" handler="on_newChild_trigger" swapped="no"/> </object> </child> <child> <object class="GtkSeparatorMenuItem" id="separatormenuitem9"> <property name="visible">True</property> <property name="can_focus">False</property> </object> </child> <child> <object class="GtkImageMenuItem" id="upMenuItem"> <property name="label">gtk-go-up</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Move selection up</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <signal name="activate" handler="on_up_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="downMenuItem"> <property name="label">gtk-go-down</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Move selection down</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <signal name="activate" handler="on_down_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="promoteMenuItem"> <property name="label" translatable="yes">P_romote</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Selection becomes a sibling to their parent</property> <property name="use_underline">True</property> <property name="use_stock">False</property> <signal name="activate" handler="on_promote_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="demoteMenuItem"> <property name="label" translatable="yes">D_emote</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Selection becomes a child of the previous item</property> <property name="use_underline">True</property> <property name="use_stock">False</property> <signal name="activate" handler="on_demote_trigger" swapped="no"/> </object> </child> <child> <object class="GtkSeparatorMenuItem" id="separatormenuitem10"> <property name="visible">True</property> <property name="can_focus">False</property> </object> </child> <child> <object class="GtkImageMenuItem" id="splitItemMenuItem"> <property name="label" translatable="yes">_Split Item</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Make a new item from the current selection</property> <property name="use_underline">True</property> <property name="use_stock">False</property> <signal name="activate" handler="on_splitItem_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="mergeItemsMenuItem"> <property name="label" translatable="yes">_Merge Items</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Merge current items into the first one</property> <property name="use_underline">True</property> <property name="use_stock">False</property> <signal name="activate" handler="on_mergeItems_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="sortTreeMenuItem"> <property name="label" translatable="yes">S_ort Tree</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Popup the sort tree dialog</property> <property name="use_underline">True</property> <property name="use_stock">False</property> <signal name="activate" handler="on_sortTree_trigger" swapped="no"/> </object> </child> </object> </child> </object> </child> <child> <object class="GtkMenuItem" id="textMenuItem"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">Te_xt</property> <property name="use_underline">True</property> <child type="submenu"> <object class="GtkMenu" id="menu6"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkImageMenuItem" id="formatMenuItem"> <property name="label" translatable="yes">_Format</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Format the current paragraph</property> <property name="use_underline">True</property> <property name="use_stock">False</property> <accelerator key="l" signal="activate" modifiers="GDK_CONTROL_MASK"/> <signal name="activate" handler="on_format_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="timeStampMenuItem"> <property name="label" translatable="yes">_Time stamp</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Add a time/date stamp (see preferences)</property> <property name="use_underline">True</property> <property name="use_stock">False</property> <accelerator key="t" signal="activate" modifiers="GDK_CONTROL_MASK"/> <signal name="activate" handler="on_timeStamp_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="externalEditMenuItem"> <property name="label" translatable="yes">_External Edit</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Edit current item in an external editor</property> <property name="use_underline">True</property> <property name="use_stock">False</property> <signal name="activate" handler="on_externalEdit_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="sortTextMenuItem"> <property name="label" translatable="yes">_Sort Text</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Popup the sort text dialog</property> <property name="use_underline">True</property> <property name="use_stock">False</property> <signal name="activate" handler="on_sortText_trigger" swapped="no"/> </object> </child> </object> </child> </object> </child> <child> <object class="GtkMenuItem" id="menuitem4"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">_Help</property> <property name="use_underline">True</property> <child type="submenu"> <object class="GtkMenu" id="menu3"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkImageMenuItem" id="readManualMenuItem"> <property name="label" translatable="yes">_Read Manual</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Read the online manual (using gjots)</property> <property name="use_underline">True</property> <property name="use_stock">False</property> <signal name="activate" handler="on_readManual_trigger" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="aboutMenuItem"> <property name="label">gtk-about</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <signal name="activate" handler="on_about_trigger" swapped="no"/> </object> </child> </object> </child> </object> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkVSeparator" id="vseparator1"> <property name="visible">True</property> <property name="can_focus">False</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkButton" id="find_button"> <property name="label">gtk-find</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="tooltip_text" translatable="yes">Popup the 'Find'menu</property> <property name="use_stock">True</property> <signal name="clicked" handler="on_find_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">2</property> </packing> </child> <child> <object class="GtkComboBox" id="menubar_find_combobox"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="has_entry">True</property> <property name="entry_text_column">0</property> <signal name="key-release-event" handler="on_menubar_find_combobox_key_release_event" swapped="no"/> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">3</property> </packing> </child> <child> <object class="GtkButton" id="prev_button"> <property name="label">gtk-media-previous</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="tooltip_text" translatable="yes">Find the previous occurance</property> <property name="use_stock">True</property> <signal name="clicked" handler="on_prev_button_clicked" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">4</property> </packing> </child> <child> <object class="GtkButton" id="next_button"> <property name="label">gtk-media-next</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="tooltip_text" translatable="yes">Find the next occurance</property> <property name="use_stock">True</property> <signal name="clicked" handler="on_next_button_clicked" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">5</property> </packing> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkToolbar" id="topToolbar"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="border_width">1</property> <child> <object class="GtkToolButton" id="saveButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Save gjots document</property> <property name="label" translatable="yes">Save</property> <property name="use_underline">True</property> <property name="stock_id">gtk-save</property> <signal name="clicked" handler="on_save_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolButton" id="printButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Print this document</property> <property name="label" translatable="yes">Print</property> <property name="use_underline">True</property> <property name="stock_id">gtk-print</property> <signal name="clicked" handler="on_print_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolItem" id="toolitem1"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkSeparatorToolItem" id="vseparator0"> <property name="visible">True</property> <property name="can_focus">False</property> </object> </child> </object> <packing> <property name="expand">False</property> </packing> </child> <child> <object class="GtkToolButton" id="cutButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Cut selected items</property> <property name="label" translatable="yes">Cut</property> <property name="use_underline">True</property> <property name="stock_id">gtk-cut</property> <signal name="clicked" handler="on_cut_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolButton" id="copyButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Copy selected items</property> <property name="label" translatable="yes">Copy</property> <property name="use_underline">True</property> <property name="stock_id">gtk-copy</property> <signal name="clicked" handler="on_copy_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolButton" id="pasteButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Paste selected items</property> <property name="label" translatable="yes">Paste</property> <property name="use_underline">True</property> <property name="stock_id">gtk-paste</property> <signal name="clicked" handler="on_paste_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolItem" id="toolitem2"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkSeparatorToolItem" id="vseparator4"> <property name="visible">True</property> <property name="can_focus">False</property> </object> </child> </object> <packing> <property name="expand">False</property> </packing> </child> <child> <object class="GtkToolButton" id="wrapButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Wrap the current paragraph to the current line length</property> <property name="label" translatable="yes">Wrap</property> <property name="use_underline">True</property> <property name="stock_id">gtk-refresh</property> <signal name="clicked" handler="on_format_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolButton" id="externalEditButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Invoke an external editor on the current item</property> <property name="label" translatable="yes">Ext.Ed.</property> <property name="use_underline">True</property> <property name="stock_id">gtk-execute</property> <signal name="clicked" handler="on_externalEdit_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolButton" id="timeStampButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Add a time/date stamp (see prefs)</property> <property name="label" translatable="yes">Date</property> <property name="use_underline">True</property> <property name="stock_id">gjots2-clock</property> <signal name="clicked" handler="on_timeStamp_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolButton" id="findButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Popup the find and replace dialog</property> <property name="label" translatable="yes">Find</property> <property name="use_underline">True</property> <property name="stock_id">gtk-find</property> <signal name="clicked" handler="on_find_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolButton" id="sortButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Popup the sort dialog</property> <property name="label" translatable="yes">Sort</property> <property name="use_underline">True</property> <property name="stock_id">gtk-sort-ascending</property> <signal name="clicked" handler="on_sort_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolButton" id="prefsButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Open gjots preferences window</property> <property name="label" translatable="yes">Prefs</property> <property name="use_underline">True</property> <property name="stock_id">gtk-preferences</property> <signal name="clicked" handler="on_prefs_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkHBox" id="hbox1"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkToolbar" id="treeToolbar"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="border_width">1</property> <property name="orientation">vertical</property> <child> <object class="GtkToolButton" id="newPageButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Create a new item</property> <property name="label" translatable="yes">New Page</property> <property name="use_underline">True</property> <property name="stock_id">gjots2-new-page</property> <signal name="clicked" handler="on_newPage_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolButton" id="newChildButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Create a new child</property> <property name="label" translatable="yes">New Child</property> <property name="use_underline">True</property> <property name="stock_id">gjots2-new-child</property> <signal name="clicked" handler="on_newChild_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolItem" id="toolitem3"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkSeparatorToolItem" id="vseparator2"> <property name="visible">True</property> <property name="can_focus">False</property> </object> </child> </object> <packing> <property name="expand">False</property> </packing> </child> <child> <object class="GtkToolButton" id="upButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Move selection up</property> <property name="label" translatable="yes">Up</property> <property name="use_underline">True</property> <property name="stock_id">gtk-go-up</property> <signal name="clicked" handler="on_up_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolButton" id="downButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Move selection down</property> <property name="label" translatable="yes">Down</property> <property name="use_underline">True</property> <property name="stock_id">gtk-go-down</property> <signal name="clicked" handler="on_down_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolButton" id="promoteButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Selection becomes a sibling to their parent</property> <property name="label" translatable="yes">Promote</property> <property name="use_underline">True</property> <property name="stock_id">gtk-go-back</property> <signal name="clicked" handler="on_promote_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolButton" id="demoteButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Selection becomes a child of the previous item</property> <property name="label" translatable="yes">Demote</property> <property name="use_underline">True</property> <property name="stock_id">gtk-go-forward</property> <signal name="clicked" handler="on_demote_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolItem" id="toolitem4"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkSeparatorToolItem" id="vseparator3"> <property name="visible">True</property> <property name="can_focus">False</property> </object> </child> </object> <packing> <property name="expand">False</property> </packing> </child> <child> <object class="GtkToolButton" id="splitItemButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Split the text selection into a new item</property> <property name="label" translatable="yes">Split Item</property> <property name="use_underline">True</property> <property name="stock_id">gjots2-split-item</property> <signal name="clicked" handler="on_splitItem_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolButton" id="mergeItemsButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Merge selected items together</property> <property name="label" translatable="yes">Merge Items</property> <property name="use_underline">True</property> <property name="stock_id">gjots2-merge-items</property> <signal name="clicked" handler="on_mergeItems_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolItem" id="toolitem5"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkSeparatorToolItem" id="vseparator5"> <property name="visible">True</property> <property name="can_focus">False</property> </object> </child> </object> <packing> <property name="expand">False</property> </packing> </child> <child> <object class="GtkToolButton" id="hideAllButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Hide all items except for the top level</property> <property name="label" translatable="yes">Hide All</property> <property name="use_underline">True</property> <property name="stock_id">gjots2-hide-all</property> <signal name="clicked" handler="on_hideAll_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolButton" id="showAllButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Show all items below the current item</property> <property name="label" translatable="yes">Show All</property> <property name="use_underline">True</property> <property name="stock_id">gjots2-show-all</property> <signal name="clicked" handler="on_showAll_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> <child> <object class="GtkToolButton" id="sortTreeButton"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="tooltip_text" translatable="yes">Popup the sort tree dialog</property> <property name="label" translatable="yes">Sort Tree</property> <property name="use_underline">True</property> <property name="stock_id">gtk-sort-ascending</property> <signal name="clicked" handler="on_sortTree_trigger" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkHPaned" id="treeTextPane"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="position">211</property> <property name="position_set">True</property> <child> <object class="GtkScrolledWindow" id="treeScrolledWindow"> <property name="visible">True</property> <property name="can_focus">True</property> <child> <object class="GtkTreeView" id="treeView"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="headers_visible">False</property> <property name="reorderable">True</property> <signal name="drag-drop" handler="on_tree_drag_drop" swapped="no"/> <signal name="key-press-event" handler="on_tree_key_press_event" swapped="no"/> <signal name="button-press-event" handler="on_tree_button_press_event" swapped="no"/> </object> </child> </object> <packing> <property name="resize">False</property> <property name="shrink">True</property> </packing> </child> <child> <object class="GtkScrolledWindow" id="textScrolledWindow"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="shadow_type">in</property> <child> <object class="GtkTextView" id="textView"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="wrap_mode">word</property> <signal name="move-cursor" handler="on_textView_move_cursor" swapped="no"/> <signal name="key-press-event" handler="on_textView_key_press_event" swapped="no"/> <signal name="button-press-event" handler="on_textView_button_press_event" swapped="no"/> <signal name="button-release-event" handler="on_textView_button_release_event" swapped="no"/> </object> </child> </object> <packing> <property name="resize">True</property> <property name="shrink">True</property> </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">2</property> </packing> </child> <child> <object class="GtkStatusbar" id="appbar"> <property name="visible">True</property> <property name="can_focus">False</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">3</property> </packing> </child> </object> </child> </object> <object class="GtkListStore" id="liststore1"/> </interface> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/ui/prefsDialog.ui����������������������������������������������������������������������0000664�0000000�0000000�00000040032�14016300235�0016140�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <interface> <requires lib="gtk+" version="2.16"/> <!-- interface-naming-policy toplevel-contextual --> <object class="GtkAdjustment" id="adjustment1"> <property name="lower">10</property> <property name="upper">200</property> <property name="value">70</property> <property name="step_increment">1</property> <property name="page_increment">10</property> </object> <object class="GtkAdjustment" id="adjustment2"> <property name="upper">100</property> <property name="step_increment">1</property> <property name="page_increment">10</property> </object> <object class="GtkWindow" id="prefsDialog"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="title" translatable="yes">gjots: preferences</property> <property name="modal">True</property> <property name="window_position">mouse</property> <child> <object class="GtkVBox" id="vbox2"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">10</property> <child> <object class="GtkTable" id="table2"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="border_width">15</property> <property name="n_rows">7</property> <property name="n_columns">2</property> <property name="column_spacing">10</property> <property name="row_spacing">10</property> <child> <placeholder/> </child> <child> <placeholder/> </child> <child> <object class="GtkButton" id="fontButton"> <property name="label">gtk-select-font</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="tooltip_text" translatable="yes">Choose a font for the text panel</property> <property name="use_stock">True</property> <signal name="clicked" handler="on_fontButton_clicked" swapped="no"/> </object> <packing> <property name="top_attach">4</property> <property name="bottom_attach">5</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkLabel" id="label3"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label" translatable="yes">Date format:</property> <property name="justify">center</property> </object> <packing> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkEntry" id="dateFormat"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="tooltip_text" translatable="yes">Format for the timestamp function (see strftime(3)) eg %F</property> <property name="text" translatable="yes">%F</property> <property name="primary_icon_activatable">False</property> <property name="secondary_icon_activatable">False</property> <property name="primary_icon_sensitive">True</property> <property name="secondary_icon_sensitive">True</property> <signal name="key-press-event" handler="on_dateFormat_key_press_event" swapped="no"/> </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkEntry" id="externalEditor"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="tooltip_text" translatable="yes">External program to edit a page (%s is replaced by the name of the temporary edit file) eg xterm -e vi %s</property> <property name="text" translatable="yes">xterm -e vi %s</property> <property name="primary_icon_activatable">False</property> <property name="secondary_icon_activatable">False</property> <property name="primary_icon_sensitive">True</property> <property name="secondary_icon_sensitive">True</property> <signal name="key-press-event" handler="on_externalEditor_key_press_event" swapped="no"/> </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkLabel" id="label2"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label" translatable="yes">External editor</property> <property name="justify">center</property> </object> <packing> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkLabel" id="label1"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label" translatable="yes">Text Line Length: </property> <property name="justify">center</property> </object> <packing> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkSpinButton" id="lineLength"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="tooltip_text" translatable="yes">Line length for paragraph wrapping</property> <property name="primary_icon_activatable">False</property> <property name="secondary_icon_activatable">False</property> <property name="primary_icon_sensitive">True</property> <property name="secondary_icon_sensitive">True</property> <property name="adjustment">adjustment1</property> <property name="climb_rate">1</property> <property name="numeric">True</property> <signal name="key-press-event" handler="on_lineLength_key_press_event" swapped="no"/> </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkLabel" id="label7"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label" translatable="yes">Text formatter: </property> <property name="justify">center</property> </object> <packing> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkEntry" id="textFormatter"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="tooltip_text" translatable="yes">External program to pipe text for formatting (%d is replaced by the current line width) eg fmt -w %d </property> <property name="text" translatable="yes">fmt -w %d </property> <property name="primary_icon_activatable">False</property> <property name="secondary_icon_activatable">False</property> <property name="primary_icon_sensitive">True</property> <property name="secondary_icon_sensitive">True</property> <signal name="key-press-event" handler="on_textFormatter_key_press_event" swapped="no"/> </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkEntry" id="fontName"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="tooltip_text" translatable="yes">Current text font</property> <property name="editable">False</property> <property name="text" translatable="yes">Courier 10 Pitch 10</property> <property name="primary_icon_activatable">False</property> <property name="secondary_icon_activatable">False</property> <property name="primary_icon_sensitive">True</property> <property name="secondary_icon_sensitive">True</property> <signal name="key-press-event" handler="on_fontName_key_press_event" swapped="no"/> </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">4</property> <property name="bottom_attach">5</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkLabel" id="label4"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label" translatable="yes">AutoSave interval:</property> <property name="justify">center</property> </object> <packing> <property name="top_attach">5</property> <property name="bottom_attach">6</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkSpinButton" id="autoSaveInterval"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="tooltip_text" translatable="yes">Seconds of inactivity to trigger an AutoSave (0 = no AutoSave)</property> <property name="invisible_char">●</property> <property name="invisible_char_set">True</property> <property name="primary_icon_activatable">False</property> <property name="secondary_icon_activatable">False</property> <property name="primary_icon_sensitive">True</property> <property name="secondary_icon_sensitive">True</property> <property name="adjustment">adjustment2</property> <property name="climb_rate">1</property> <property name="numeric">True</property> </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">5</property> <property name="bottom_attach">6</property> <property name="y_options"/> </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkHSeparator" id="hseparator2"> <property name="visible">True</property> <property name="can_focus">False</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkHButtonBox" id="hbuttonbox2"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> <child> <object class="GtkButton" id="prefsOK"> <property name="label">gtk-ok</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="can_default">True</property> <property name="receives_default">False</property> <property name="border_width">5</property> <property name="use_stock">True</property> <signal name="clicked" handler="on_prefsOK_clicked" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkButton" id="prefsCancel"> <property name="label">gtk-cancel</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="can_default">True</property> <property name="receives_default">False</property> <property name="border_width">5</property> <property name="use_stock">True</property> <signal name="clicked" handler="on_prefsCancel_clicked" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">2</property> </packing> </child> </object> </child> </object> <object class="GtkAdjustment" id="adjustment3"> <property name="upper">100</property> <property name="step_increment">1</property> <property name="page_increment">10</property> </object> </interface> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/ui/printDialog.ui����������������������������������������������������������������������0000664�0000000�0000000�00000043733�14016300235�0016170�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <interface> <requires lib="gtk+" version="2.16"/> <!-- interface-naming-policy toplevel-contextual --> <object class="GtkWindow" id="printDialog"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="title" translatable="yes">Print</property> <property name="window_position">mouse</property> <property name="destroy_with_parent">True</property> <property name="type_hint">dialog</property> <signal name="destroy" handler="on_printDialog_destroy" swapped="no"/> <child> <object class="GtkVBox" id="vbox5"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="border_width">10</property> <child> <object class="GtkFrame" id="frame4"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label_xalign">0</property> <property name="shadow_type">in</property> <child> <object class="GtkAlignment" id="alignment5"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="left_padding">12</property> <child> <object class="GtkHBox" id="hbox6"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkLabel" id="label10"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label" translatable="yes">e.g. lpr: </property> <property name="justify">center</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkEntry" id="printCommandEntry"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="has_focus">True</property> <property name="can_default">True</property> <property name="has_default">True</property> <property name="tooltip_text" translatable="yes">print command (can be a shell expression)</property> <property name="primary_icon_activatable">False</property> <property name="secondary_icon_activatable">False</property> <property name="primary_icon_sensitive">True</property> <property name="secondary_icon_sensitive">True</property> <signal name="key-press-event" handler="on_printCommandEntry_key_press_event" swapped="no"/> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="padding">5</property> <property name="position">1</property> </packing> </child> </object> </child> </object> </child> <child type="label"> <object class="GtkLabel" id="label13"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes"> Print command </property> <property name="use_markup">True</property> </object> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkFrame" id="frame3"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label_xalign">0</property> <property name="shadow_type">in</property> <child> <object class="GtkAlignment" id="alignment4"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="left_padding">12</property> <child> <object class="GtkVBox" id="vbox7"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkRadioButton" id="printPageRadioButton"> <property name="label" translatable="yes">Page</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="tooltip_text" translatable="yes">Print the current page</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkRadioButton" id="printSelectionRadioButton"> <property name="label" translatable="yes">Selection</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="tooltip_text" translatable="yes">Print the selected pages or text</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> <property name="group">printPageRadioButton</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkRadioButton" id="printAllRadioButton"> <property name="label" translatable="yes">All</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="tooltip_text" translatable="yes">Print the entire gjots file</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> <property name="group">printPageRadioButton</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">2</property> </packing> </child> </object> </child> </object> </child> <child type="label"> <object class="GtkLabel" id="label12"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes"> Print Range </property> <property name="use_markup">True</property> </object> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkFrame" id="frame7"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label_xalign">0</property> <property name="shadow_type">in</property> <child> <object class="GtkAlignment" id="alignment8"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="left_padding">12</property> <child> <object class="GtkVBox" id="vbox8"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkHBox" id="hbox8"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="homogeneous">True</property> <child> <object class="GtkCheckButton" id="printPageFeedButton"> <property name="label" translatable="yes">Page feeds</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="tooltip_text" translatable="yes">Feeds a page before every new gjots item</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkCheckButton" id="printBoldTitlesButton"> <property name="label" translatable="yes">Bold titles</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="tooltip_text" translatable="yes">Print the gjots item titles in bold</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkCheckButton" id="printAutoNumberCheckButton"> <property name="label" translatable="yes">Auto Number</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">2</property> </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkHBox" id="hbox9"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkLabel" id="printAutoNumberLabel"> <property name="can_focus">False</property> <property name="label" translatable="yes">Auto-number format: </property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkEntry" id="printAutoNumberFormatEntry"> <property name="can_focus">True</property> <property name="tooltip_text" translatable="yes">eg. 1 for 1.2.1, a</property> <property name="primary_icon_activatable">False</property> <property name="secondary_icon_activatable">False</property> <property name="primary_icon_sensitive">True</property> <property name="secondary_icon_sensitive">True</property> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> </object> </child> </object> </child> <child type="label"> <object class="GtkLabel" id="label16"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes"> Print formatting </property> <property name="use_markup">True</property> </object> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="padding">5</property> <property name="position">2</property> </packing> </child> <child> <object class="GtkHButtonBox" id="hbuttonbox3"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> <child> <object class="GtkButton" id="printOKButton"> <property name="label">gtk-ok</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="can_default">True</property> <property name="receives_default">False</property> <property name="border_width">5</property> <property name="use_stock">True</property> <signal name="clicked" handler="on_printOKButton_clicked" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkButton" id="printCancelButton"> <property name="label">gtk-cancel</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="can_default">True</property> <property name="receives_default">False</property> <property name="border_width">5</property> <property name="use_stock">True</property> <signal name="clicked" handler="on_printCancelButton_clicked" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">3</property> </packing> </child> </object> </child> </object> </interface> �������������������������������������gjots2-3.1.9/ui/sortDialog.ui�����������������������������������������������������������������������0000664�0000000�0000000�00000027323�14016300235�0016020�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <interface> <requires lib="gtk+" version="2.16"/> <!-- interface-naming-policy toplevel-contextual --> <object class="GtkAdjustment" id="adjustment1"> <property name="lower">-1</property> <property name="upper">100</property> <property name="value">1</property> <property name="step_increment">1</property> <property name="page_increment">10</property> </object> <object class="GtkWindow" id="sortDialog"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="title" translatable="yes">Sort</property> <property name="window_position">mouse</property> <property name="type_hint">dialog</property> <signal name="destroy" handler="on_sortDialog_destroy" swapped="no"/> <child> <object class="GtkVBox" id="vbox6"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="border_width">10</property> <child> <object class="GtkFrame" id="frame5"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label_xalign">0</property> <property name="shadow_type">in</property> <child> <object class="GtkAlignment" id="alignment6"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="left_padding">12</property> <child> <object class="GtkTable" id="table7"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="n_rows">2</property> <property name="n_columns">2</property> <child> <object class="GtkRadioButton" id="sortAscendingRadioButton"> <property name="label" translatable="yes">Ascending</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="tooltip_text" translatable="yes">Sort in ascending order</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> </object> <packing> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkRadioButton" id="sortDescendingRadioButton"> <property name="label" translatable="yes">Descending</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="tooltip_text" translatable="yes">Sort in descending order</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> <property name="group">sortAscendingRadioButton</property> </object> <packing> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkRadioButton" id="sortAlphabeticRadioButton"> <property name="label" translatable="yes">Alphabetic</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="tooltip_text" translatable="yes">Sort in alphabetic order</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> <child> <object class="GtkRadioButton" id="sortNumericRadioButton"> <property name="label" translatable="yes">Numeric</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="tooltip_text" translatable="yes">Sort in numeric order</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> <property name="group">sortAlphabeticRadioButton</property> </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"/> </packing> </child> </object> </child> </object> </child> <child type="label"> <object class="GtkLabel" id="label14"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes"> Sort Parameters </property> <property name="use_markup">True</property> </object> </child> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkFrame" id="sortRangeFrame"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label_xalign">0</property> <property name="shadow_type">in</property> <child> <object class="GtkAlignment" id="alignment7"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="left_padding">12</property> <child> <object class="GtkVBox" id="vbox10"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkSpinButton" id="sortSublevelsSpinButton"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="tooltip_text" translatable="yes">How many sublevels to sort (0 for none; -1 for 'all')</property> <property name="primary_icon_activatable">False</property> <property name="secondary_icon_activatable">False</property> <property name="primary_icon_sensitive">True</property> <property name="secondary_icon_sensitive">True</property> <property name="adjustment">adjustment1</property> <property name="climb_rate">1</property> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> </object> </child> </object> </child> <child type="label"> <object class="GtkLabel" id="label15"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes"> Sort Sublevels </property> <property name="use_markup">True</property> </object> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkHButtonBox" id="hbuttonbox4"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> <child> <object class="GtkButton" id="saveOKButton"> <property name="label">gtk-ok</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="can_default">True</property> <property name="receives_default">False</property> <property name="border_width">5</property> <property name="use_stock">True</property> <accelerator key="KP_Enter" signal="clicked"/> <accelerator key="Return" signal="clicked"/> <signal name="clicked" handler="on_sortOKButton_clicked" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkButton" id="saveCancelButton"> <property name="label">gtk-cancel</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="can_default">True</property> <property name="receives_default">False</property> <property name="border_width">5</property> <property name="use_stock">True</property> <accelerator key="Escape" signal="clicked"/> <signal name="clicked" handler="on_sortCancelButton_clicked" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">2</property> </packing> </child> </object> </child> </object> </interface> �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������gjots2-3.1.9/ui/treeContextMenu.ui������������������������������������������������������������������0000664�0000000�0000000�00000015764�14016300235�0017050�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0"?> <interface> <object class="GtkUIManager" id="uimanager1"> <child> <object class="GtkActionGroup" id="actiongroup1"> <child> <object class="GtkAction" id="cutContextMenuItem"> <property name="stock_id">gtk-cut</property> <property name="name">cutContextMenuItem</property> <signal handler="on_cut_trigger" name="activate"/> </object> </child> <child> <object class="GtkAction" id="copyContextMenuItem"> <property name="stock_id">gtk-copy</property> <property name="name">copyContextMenuItem</property> <signal handler="on_copy_trigger" name="activate"/> </object> </child> <child> <object class="GtkAction" id="pasteContextMenuItem"> <property name="stock_id">gtk-paste</property> <property name="name">pasteContextMenuItem</property> <signal handler="on_paste_trigger" name="activate"/> </object> </child> <child> <object class="GtkAction" id="selectAllContextMenuItem"> <property name="name">selectAllContextMenuItem</property> <property name="label" translatable="yes">Select _All</property> <signal handler="on_selectAll_trigger" name="activate"/> </object> </child> <child> <object class="GtkAction" id="findContextMenuItem"> <property name="stock_id">gtk-find</property> <property name="name">findContextMenuItem</property> <signal handler="on_find_trigger" name="activate"/> </object> </child> <child> <object class="GtkAction" id="newPageContextMenuItem"> <property name="stock_id">gnome-stock-multiple-file</property> <property name="name">newPageContextMenuItem</property> <property name="label" translatable="yes">New Page</property> <signal handler="on_newPage_trigger" name="activate"/> </object> </child> <child> <object class="GtkAction" id="newChildContextMenuItem"> <property name="name">newChildContextMenuItem</property> <property name="label" translatable="yes">New Child</property> <signal handler="on_newChild_trigger" name="activate"/> </object> </child> <child> <object class="GtkAction" id="upContextMenuItem"> <property name="stock_id">gtk-go-up</property> <property name="name">upContextMenuItem</property> <signal handler="on_up_trigger" name="activate"/> </object> </child> <child> <object class="GtkAction" id="downContextMenuItem"> <property name="stock_id">gtk-go-down</property> <property name="name">downContextMenuItem</property> <signal handler="on_down_trigger" name="activate"/> </object> </child> <child> <object class="GtkAction" id="promoteContextMenuItem"> <property name="stock_id">gtk-go-back</property> <property name="name">promoteContextMenuItem</property> <property name="label" translatable="yes">Promote</property> <signal handler="on_promote_trigger" name="activate"/> </object> </child> <child> <object class="GtkAction" id="demoteContextMenuItem"> <property name="stock_id">gtk-go-forward</property> <property name="name">demoteContextMenuItem</property> <property name="label" translatable="yes">Demote</property> <signal handler="on_demote_trigger" name="activate"/> </object> </child> <child> <object class="GtkAction" id="mergeItemsContextMenuItem"> <property name="name">mergeItemsContextMenuItem</property> <property name="label" translatable="yes">Merge Items</property> <signal handler="on_mergeItems_trigger" name="activate"/> </object> </child> <child> <object class="GtkAction" id="showAllContextMenuItem"> <property name="name">showAllContextMenuItem</property> <property name="label" translatable="yes">Show All</property> <signal handler="on_showAll_trigger" name="activate"/> </object> </child> <child> <object class="GtkAction" id="hideAllContextMenuItem"> <property name="name">hideAllContextMenuItem</property> <property name="label" translatable="yes">Hide All</property> <signal handler="on_hideAll_trigger" name="activate"/> </object> </child> <child> <object class="GtkAction" id="sortTreeContextMenuItem"> <property name="name">sortTreeContextMenuItem</property> <property name="label" translatable="yes">Sort Tree</property> <signal handler="on_sortTree_trigger" name="activate"/> </object> </child> <child> <object class="GtkAction" id="importContextMenuItem"> <property name="name">importContextMenuItem</property> <property name="label" translatable="yes">Import</property> <signal handler="on_import_trigger" name="activate"/> </object> </child> <child> <object class="GtkAction" id="exportContextMenuItem"> <property name="name">exportContextMenuItem</property> <property name="label" translatable="yes">Export</property> <signal handler="on_export_trigger" name="activate"/> </object> </child> </object> </child> <ui> <popup name="treeContextMenu"> <menuitem action="cutContextMenuItem"/> <menuitem action="copyContextMenuItem"/> <menuitem action="pasteContextMenuItem"/> <separator/> <menuitem action="selectAllContextMenuItem"/> <separator/> <menuitem action="findContextMenuItem"/> <separator/> <menuitem action="newPageContextMenuItem"/> <menuitem action="newChildContextMenuItem"/> <separator/> <menuitem action="upContextMenuItem"/> <menuitem action="downContextMenuItem"/> <menuitem action="promoteContextMenuItem"/> <menuitem action="demoteContextMenuItem"/> <separator/> <menuitem action="mergeItemsContextMenuItem"/> <separator/> <menuitem action="showAllContextMenuItem"/> <menuitem action="hideAllContextMenuItem"/> <separator/> <menuitem action="sortTreeContextMenuItem"/> <separator/> <menuitem action="importContextMenuItem"/> <menuitem action="exportContextMenuItem"/> </popup> </ui> </object> <!-- interface-requires gtk+ 2.16 --> <!-- interface-naming-policy toplevel-contextual --> <object class="GtkMenu" constructor="uimanager1" id="treeContextMenu"> <property name="visible">True</property> </object> </interface> ������������gjots2-3.1.9/uninstall.sh���������������������������������������������������������������������������0000775�0000000�0000000�00000002617�14016300235�0015304�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/bash # Use this if you installed with setup.py # Python's setup.py provides no uninstallation method so here is # something to help: usage() { echo "Usage: $PROG [prefix]" echo echo "<prefix> is the location which was used to install with setup.py (default is /usr/local)" echo "eg $PROG /usr" } PROG=$(basename "$0") TEMP=$(getopt -o h --long help -n '$PROG' -- "$@") || exit $? eval set -- "$TEMP" while true ; do case $1 in -h|--help) usage; exit 0;; --) shift; break;; *) echo "Internal error!" >&2 ; exit 1 ;; esac done prefix=${1:-"/usr/local"} [[ -f $prefix/bin/gjots2 ]] || { echo "gjots2 was not found at $prefix/bin" >&2 exit 1 } rm -rf $prefix/lib/gjots2 $prefix/share/doc/gjots2-* $prefix/share/gjots2 rm -f $prefix/bin/gjots2html $prefix/bin/docbook2gjots $prefix/bin/gjots2 $prefix/bin/gjots2docbook $prefix/bin/gjots2lpr $prefix/bin/gjots2org $prefix/bin/org2gjots $prefix/bin/gjots2emacs $prefix/bin/gjots2html.py $prefix/bin/gjots2 rm -f $prefix/share/man/man1/gjots2html.1 $prefix/share/man/man1/docbook2gjots.1 $prefix/share/man/man1/gjots2.1 $prefix/share/man/man1/gjots2docbook.1 rm -f $prefix/share/pixmaps/gjots2.png $prefix/share/applications/gjots2.desktop rm -f $prefix/share/glib-2.0/schemas/org.gtk.gjots2.gschema.xml $prefix/share/metainfo/gjots2.metainfo.xml rm -f $prefix/share/locale/*/LC_MESSAGES/gjots2.mo rm -rf $prefix/lib/python*/site-packages/gjots2* �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������