gdeskcal-0.57.1/0002755000175000017500000000000010025432257013415 5ustar seb128seb12800000000000000gdeskcal-0.57.1/AUTHORS0000644000175000017500000000141010025431055014452 0ustar seb128seb12800000000000000Martin Grimme The people who helped improving or promoting 'gDeskCal': -------------------------------------------------------- Takeshi Aihana - Japanese translation Filip Andonov - Bulgarian translation Sebastien Bacher - French translation, Debian package Samúel Jón Gunnarsson - Icelandic translation Kesmis - Lithunian translation Martin Klaffenboeck - FreeBSD port Tero Koskinen - Finnish translation Son KwonNam - Korean translation Arkadiusz Lipiec - Polish translation Alexey Lubimov - Russian translation Gil "Dolfin" Osher - Hebrew translation Tomás Javier Robles Prado - Spanish translation Veljko Stanojevic - Serbian translation Jason Tackaberry - RPMs John Whiteline - Slovak translation Thank you very much! gdeskcal-0.57.1/README0000644000175000017500000002043310025431055014270 0ustar seb128seb12800000000000000gDeskCal ======== 1. Introduction --------------- 'gDeskCal' is a cute little eye-candy calendar for your desktop. It features transparency with smooth alpha-blending and its appearance can be changed completely by using skins. It can also read and display your 'Evolution' appointments, if available. 2. Requirements --------------- Your system has to meet the following requirements in order to be able to run 'gDeskCal': * Python 2.x with basic XML support (PyXML is not required) * GTK 2 and its pygtk bindings * A window manager complying with the standards of www.freedesktop.org is recommended; exotic or antiquated window managers may yield strange results 3. Installation --------------- You don't have to install 'gDeskCal' before running it. You may run it from where you extracted it to. If you wish to install 'gDeskCal' globally on your system, do the following: * extract the archive to the place where you want 'gDeskCal' to be, e.g. '/usr/local/share' * put a link to the executable into the 'bin' directory, e.g. $ cd /usr/local/bin $ ln -s /usr/local/share/gDeskCal/gdeskcal 4. Usage -------- 4.1 Starting 'gDeskCal' ----------------------- 'gDeskCal' accepts a number of command line options which are: --skin= The name of the skin to use. A skin's name is the name of its directory. --opaque Causes the calendar to be opaque so you cannot see the background through it. This setting will not be saved. --screenshot Causes the calendar to simulate transparency by making screenshots. You can use this when you want icons to be visible through the calendar. This setting will not be saved. --dpi= Tells 'gDeskCal' that the screen resolution is dots per inch. You normally don't have to use this option since 'gDeskCal' can guess the value. This option affects the scaling of fonts and will not be saved. --dontsave Tells 'gDeskCal' not to save any configuration changes. --first-day= The number of the first day of the week. Can be in the range from 1 (Monday) to 7 (Sunday). The default is Monday (the European norm). --no-ewmh Tells 'gDeskCal' to not use the 'gDesklets' code for EWMH window flags if it has been found. This setting will not be saved. --numerals= Tells 'gDeskCal' which numerals it should use. can be one of: * national - use the numerals defined by the current locale, e.g. Hindi numerals in the Arabic locale or Chinese numerals in the Chinese locale * default - use Arabic numerals no matter what the locale says; Arabic numerals are common in most regions of the world -x The x coordinate. -y The y coordinate. --help Displays help about the command line options and exits. Settings from command line options override saved settings and unless you run the program with '--dontsave', settings from the command line will be saved. 4.2 Moving ---------- You can move the calendar around by pressing and holding down the middle mouse button. 4.3 Menu -------- Pressing the right mouse button over 'gDeskCal' will show the following menu: Current Month Jumps to the current month Previous Month Goes back one month Next Month Goes forward one month --- Change Skin... Opens the skin browser (see 4.3) --- Quit Quits 'gDeskCal' 4.4 Skin Browser ---------------- The skin browser displays a list of all available 'gDeskCal' skins on your system. To change the skin, just select an item from the list. The close button will make the browser window disappear. 4.5 Installing Skins -------------------- You can install new skins by dragging a skin archive from your file manager into the skin browser window. Alternatively, you may also copy the archive of the skin you want to install into ~/.gdeskcal/skins/ and extract it there. The skin browser will be updated as soon as you re-open it again. 4.6 Browsing through Months --------------------------- Use the navigation buttons to browse through the months. The buttons are: * previous month * current month * next month If you have a wheel mouse, you may also roll the wheel for browsing through the months: * up: previous month * down: next month Please note that not all skins provide navigation buttons. The mouse wheel, however, will always work. 4.7 Transparency ---------------- You can manually notify 'gDeskCal' to re-grab the background by pressing the Space key when 'gDeskCal' is the active window. However, this should not be necessary. 4.8 Evolution Support --------------------- If 'gDeskCal' can find a calendar file of the groupware application 'Evolution', it will read it and display the appointments from there. Days with appointments are marked by underscores. You can view the appointments by moving the mouse over such days. The calendar file is being monitored and 'gDeskCal' updates as soon as the calendar changes. 4.9 Appointments Editor ---------------------- Double-click on a day to open the appointments editor. Changes will be saved, but you cannot edit appointments imported from 'Evolution', since 'gDeskCal' treats the 'Evolution' calendar as read-only. 4.10 National Numerals ---------------------- National numerals are numerals that are used instead of the international Arabic numerals in some languages. 'gDeskCal' supports national numerals for some languages. Pass the option '--numerals=national' to 'gDeskCal' to enable national numerals. E.g. to make 'gDeskCal' use Hindi numerals, which are set for the Arabic locale, set your system's locale to Arabic and start 'gDeskCal' with '--numerals=national', e.g.: $ export LANG=ar_EG $ gdeskcal --numerals=national The setting for national numerals will be saved, so you only have to give this option once. If you want to switch back to the international numerals, use the option '--numerals=default'. 5. Bugs ------- If you encounter bugs which are not listed here, please send a bug-report to 'martin@pycage.de'. * There seems to be a bug in PyXML 0.7.1 which makes it incompatible with 'gDeskCal'. Newer versions of PyXML ought to work. * Someone reported that 'gDeskCal' does not notice every background change caused by the program 'xplanet'. However, I did not experience any problems with 'xplanet'. Maybe this can happen on fast machines. * The window managers Afterstep and WindowMaker draw a border around the window. This seems to be their interpretation of undecorated windows. * Version 2.5.0 of the window manager metacity is reported to have problems with borderless windows. This affects other applications as well. Version 2.5.1 of metacity fixes this bug. 6. License and Disclaimer ------------------------- This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY or FITNESS FOR A PARTICULAR PURPOSE. See the file 'LICENSE' for more details. You should have received a copy of the GNU General Public License along with this software; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 390, Boston, MA 02111-1307 USA This software is provided "as is" and the author is not and cannot be made responsible for any damage resulting from the use of this software. ------------------------------------------------------------------------------- 'gDeskCal' is copyright (c) 2002 - 2004 by Martin Grimme eMail: martin@pycage.de The latest version can be found at http://www.pycage.de gdeskcal-0.57.1/README.skins0000644000175000017500000000332010025431055015412 0ustar seb128seb12800000000000000Creating Skins ============== 1. Introduction --------------- Skins can make 'gDeskCal' look pretty. :) This document is meant for people who want to create new skins for 'gDeskCal' and therefore need some knowledge about its skin system. 2. Anatomy of a Skin -------------------- A skin is a directory containing a definition file 'skin.xml' in XML format and a set of images. The name of the directory will also be the name of the skin. Images may be in any format that GTK 2 can handle but it is recommended to use PNG because it features smooth alpha-blending. 3. The Format of 'skin.xml' --------------------------- Take a look at the 'default' skin which is part of the 'gDeskCal' distribution. Its skin file is meant as a reference for creating skins and should be self-explanatory. 4. Where 'gDeskCal' Looks for Skins ----------------------------------- The program knows about two places where to look for skins: * the 'skins' subdirectory of the place where it is installed * the user specific 'skins' subdirectory located in '~/.gdeskcal' 5. Distributing Skins --------------------- After creating your new skin, you should distribute it, so that other people can enjoy it. Skins should be distributed as gzipped tarballs because this is the format that 'gDeskCal' is able to install via drag and drop. E.g., if you have your skin in the directory 'MySkin' you can use 'GNU tar' for creating an archive: $ tar -czvf myskin.tar.gz MySkin If you want to put your new skin on the 'gDeskCal' web-site, you may contact me at 'martin@pycage.de'. Please do not send e-mails larger than 50 kB without having my permission. Have fun and let the flood of skins begin! gdeskcal-0.57.1/README.i18n0000644000175000017500000000434310025431055015050 0ustar seb128seb12800000000000000Internationalization of 'gDeskCal' ================================== 1. Introduction --------------- 'gDeskCal' uses the GNU gettext system for internationalization (i18n). Therefore, it is possible to make 'gDeskCal' speak any language. This document explains how 'gDeskCal' can be localized. 2. The I18n System of 'gDeskCal' -------------------------------- The 'gDeskCal' distribution contains two directories for i18n. They are: * po Contains the .po files. The name of a file is an ISO 639 language code with the extension .po. Please make sure that the files are UTF-8 encoded. * locale Contains the machine readable .mo files which are loaded by the gettext system. Each .po file must be compiled into a .mo file before it can be used. Please consult the GNU gettext documentation to learn more about .po files and .mo files. 3. Working with Locales ----------------------- The 'po' directory contains a Makefile which can be used for working on locales. Type 'make help' to get information about its usage. This is an example session: $ export LOCALE=fr { set locale to French } $ make new { create .po file since it does not yet exist } $ emacs fr.po & { edit the file } $ make install { compile the .po file and make it available } The Makefile requires 'xgettext' with Python support, 'msgfmt', and 'msgmerge' to work. Note: The .po files have to be UTF-8 encoded for 'gDeskCal'. 4. Special Entries ------------------ There are some special entries which are not to be translated but to be set to a certain value. * LOCALMAPPING The translated value of this string determines the numerals to use when 'gDeskCal' uses national numerals. Can be one of: HINDI, CHINESE Do not touch this value if the national numerals are arabic numerals. 5. You Want to Contribute? Great! --------------------------------- If you have localized 'gDeskCal' for your language, please send the .po file to 'martin@pycage.de', so that I can include the locale in future releases. gdeskcal-0.57.1/LICENSE0000644000175000017500000004313110025431055014415 0ustar seb128seb12800000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. gdeskcal-0.57.1/NEWS0000644000175000017500000001057610025431055014116 0ustar seb128seb12800000000000000New in release 0.57.1: - Compatible with PyGTK 2.2 New in release 0.57: - Full compatibility with GTK 2.4 - Uses EWMH window flags if gDesklets is installed New in release 0.56: - Integrated patch for event locations by Priit Laes (thanks, Priit!) - Fixed endless loop bug (thanks to Inigo Serna for locating the bug), aka Debian bug #221406 - Fixed slash and ampersand bugs in event summaries, aka Debian bugs #216064 and #217697 New in release 0.55: - Hebrew, Russian, Serbian, Spanish translations - Some other translations updated. - Support for solid colored backgrounds in GNOME - Made it work on XFCE4; there were problems with the popup menu - The calendar can now be moved around by holding down the middle mouse button - Fully compatible with the new Python 2.3 New in release 0.54: - i18n of the recurrence rules in the appointments editor (forgot it in 0.53) - Slovak translation - Added menu item for opening the Evolution calendar - Bug fixes New in release 0.53: - 'gDeskCal' is no longer visible in the Gnome pager - Recurrence rules in the appointments editor - Added the skin 'miderat' to the distribution; I simply like this skin - Bug fixes New in release 0.52: - Complete Korean translation - DTEND in iCalendar files should now be interpreted according to the iCalendar specification - Opaque mode (no transparency) works again, but I don't think that anybody would be using it :) New in release 0.51: - Complete Finnish translation - Improved GUI in the appointments editor - Better handling of Evolution calendar data - Handling of UTC times by using the system timezone - Bug fixes New in release 0.50: - Editor for appointments (double-click a day to open editor) New in release 0.42: - Complete Bulgarian translation - Bug fixes New in release 0.41: - Complete Polish translation - Bug fixes New in release 0.40: - Changed the default skin so that the navigation buttons no longer cover the last week in right-to-left locales such as Hebrew - 'gDeskCal' can now display national numerals (e.g. Hindi numerals, which are common in Arabic countries) when started with the option '--numerals=national'; see the README file for details - The long awaited Evolution integration has started! 'gDeskCal' can read your Evolution calendar and display your appointments (Evolution is a groupware application by Ximian - www.ximian.com) - Bug fixes New in release 0.34: - Added '--screenshot' command line switch for those who want to force "screenshot transparency" (the old behaviour of 'gDeskCal' before 0.20) - Finally fixed the bug with the displacement of the current-day-marker - Complete Icelandic translation New in release 0.33: - Sawfish and maybe other window managers had problems with release 0.32. This has been fixed but 'gDeskCal' will appear in the Gnome pager again :( - Complete Lithunian translation New in release 0.32: - Skins can now specify the position of the year label - The external command 'cal' is no longer required - 'gDeskCal' does not appear in the Gnome pager New in release 0.31: - Updated translations for: de, de_AT, fr, ja - (partial) translations for: no, sv - Fixed wrong order of weekdays in arabic locale - New skins can be installed via drag and drop - Bug fixes New in release 0.30: - Internationalization support with gettext - (partial) translations for: ar_AE, ar_IN, ar_IQ, cs, de, de_AT, el, es, fr, he, hu, it, ja, nl, ru, tr, zh_CN - Graphical skin browser - Popup menu - Bug fixes New in release 0.22: - Bug fixes (special thanks go to those who reported bugs) New in release 0.21: - Transparency with tiled wallpapers and color wallpapers works correctly - Better performance New in release 0.20: - Skins can set the font colors - A pixmap is used for marking the current day - Transparency is now being handled in a much better way on systems which support it - Changing the background image of the desktop automatically causes 'gDeskCal' to re-capture the background on systems which support it - The window does not appear in the taskbar - If the window manager doesn't support moving undecorated windows, the window can now be moved by pressing the Alt key together with the first mouse button - Bug fixes New in release 0.11: - Font size is now measured in pixels instead of points - Adjusted fonts of the default skin - Minor bug fixes (special thanks go to those who reported bugs) New in release 0.10: - Initial release gdeskcal-0.57.1/gdeskcal0000755000175000017500000000450410025431055015114 0ustar seb128seb12800000000000000#!/usr/bin/env python try: import pygtk; pygtk.require("2.0") except ImportError: pass import gtk from code import gdeskcalhome import os os.chdir(gdeskcalhome) import code.i18n from code.CalMediator import CalMediator from code import values from code import errormessage import sys import signal # # Ensures that EventBoxes look transparent, no matter what the current # GTK theme is. # def ensure_transparency(): rc_style = """ style "transparent" { bg_pixmap[NORMAL] = "" bg_pixmap[INSENSITIVE] = "" bg_pixmap[PRELIGHT] = "" bg_pixmap[SELECTED] = "" bg_pixmap[ACTIVE] = "" } class "GtkEventBox" style "transparent" """ #gtk.rc_parse_string(rc_style) # # Ensures that the application knows its home directories. # def ensure_home(): os.environ[values.DESKCALHOME] = os.getcwd() os.environ[values.DESKCALUSERHOME] = os.path.expanduser(values.CONFIGDIR) # # Ensures that there is a directory for holding the user settings. # def ensure_configdir(): try: userhomedir = os.environ[values.DESKCALUSERHOME] if (not os.path.exists(userhomedir)): os.mkdir(userhomedir) if (not os.path.exists(os.path.join(userhomedir, values.SKINDIR))): os.mkdir(os.path.join(userhomedir, values.SKINDIR)) if (not os.path.exists(os.path.join(userhomedir, values.CONFIGFILE))): # install the default configuration os.system("cp " + values.CONFIGDEFAULT + " " + userhomedir) except: errormessage.error(_("Could not install the configuration file.\n" \ "gDeskCal will not be able to remember " \ "configuration changes.")) # install signal handler to quit on Ctrl-C signal.signal(signal.SIGINT, gtk.mainquit) print "gDeskCal version " + values.VERSION print "copyright (C) 2002 - 2004 by Martin Grimme" print "This software is licensed under the terms of the GNU GPL." print "" ensure_home() ensure_configdir() ensure_transparency() try: index = sys.argv.index("--sm-client-id") cid = sys.argv[index + 1] except: cid = "gdeskcal" gtk.gdk.set_sm_client_id(cid) dcal = CalMediator() gtk.mainloop() gdeskcal-0.57.1/code/0002755000175000017500000000000010025431055014322 5ustar seb128seb12800000000000000gdeskcal-0.57.1/code/BGWatcher.py0000644000175000017500000000224410025431055016502 0ustar seb128seb12800000000000000from Observable import Observable import desktop import gtk import time # # Class for reporting when the wallpaper image has changed. # class BGWatcher(Observable): OBS_CHANGE_BG = 0 def __init__(self): self.__old_bg = 0 self.__last_update = 0 gtk.timeout_add(50, self.__check_bg) def __check_bg(self): try: id = desktop.get_wallpaper_id() if (id != self.__old_bg): self.__last_update = str(time.time()) gtk.timeout_add(500, self.__notify_update, self.__last_update) #gtk.idle_add(self.__notify_update, self.__last_update) self.__old_bg = id except StandardError, e: if (self.__old_bg): self.__last_update = str(time.time()) gtk.timeout_add(500, self.__notify_update, self.__last_update) #gtk.idle_add(self.__notify_update, self.__last_update) self.__old_bg = 0 return gtk.TRUE def __notify_update(self, timestamp): if (timestamp != self.__last_update): return self.update_observer(self.OBS_CHANGE_BG) return gtk.FALSE gdeskcal-0.57.1/code/CalLabel.py0000644000175000017500000000202010025431055016323 0ustar seb128seb12800000000000000import gtk class CalLabel(gtk.VBox): def __init__(self, n_horiz, n_vertic, homogeneous): self.__labels = [] self.__positions = {} gtk.VBox.__init__(self, homogeneous, 0) for y in xrange(n_vertic): hbox = gtk.HBox(homogeneous, 0) hbox.show() self.add(hbox) for x in xrange(n_horiz): lbl = gtk.Label("") lbl.show() hbox.add(lbl) self.__labels.append(lbl) #end for #end for def update_positions(self): for l in self.__labels: x, y, nil, nil = l.get_allocation() self.__positions[(x, y)] = l def get_label(self, index): return self.__labels[index] def get_label_at(self, x, y): return self.__positions.get((x, y)) def set_spacing(self, horiz, vertic): gtk.VBox.set_spacing(self, vertic) for c in self.get_children(): c.set_spacing(horiz) gdeskcal-0.57.1/code/CalMediator.py0000644000175000017500000002026610025431055017064 0ustar seb128seb12800000000000000from Config import Config import configvalues as conf import cmdlineparser import values import desktop from TimeWatcher import TimeWatcher from GlassWindow import GlassWindow from CalWindow import CalWindow from Cal import Cal from Navigation import Navigation from SkinBrowser import SkinBrowser from Menu import Menu from planner.Planner import Planner import gtk import os import sys class CalMediator: # # Constructor. # def __init__(self): # initialize and load config userhomedir = os.environ.get(values.DESKCALUSERHOME) homedir = os.environ.get(values.DESKCALHOME) configfile = os.path.join(userhomedir, values.CONFIGFILE) formatfile = os.path.join(homedir, values.CONFIGFORMAT) self.__config = Config(configfile, formatfile) self.__config.load() # read command line arguments try: cmdlineparser.parse(sys.argv[1:], self.__config) except StandardError: cmdlineparser.usage() # time watcher for reporting regular events self.__timewatcher = TimeWatcher() # background watcher for reporting changes to the background image #self.__bgwatcher = BGWatcher() # components self.__window = CalWindow(self.__config) self.__cal = Cal() self.__window.connect("button-press-event", self.__cal.on_button_press) self.__window.connect("motion-notify-event", self.__cal.on_day_enter) self.__window.connect("leave-notify-event", self.__cal.on_day_leave) self.__cal.show() self.__window.put(self.__cal, 0, 0) self.__navigation = Navigation() self.__navigation.show() self.__window.put(self.__navigation, 0, 0) self.__skin_browser = SkinBrowser() # day planner self.__planner = Planner() self.__cal.set_planner(self.__planner) self.__popup_menu = Menu([ [_("_Current Month"), self.__cmd_navigate, [0]], [_("_Previous Month"), self.__cmd_navigate, [-1]], [_("_Next Month"), self.__cmd_navigate, [1]], [], [_("_Open Evolution Calendar"), self.__cmd_evolution, []], [], [_("_Move"), self.__window.move_window, []], [], [_("Change _Skin..."), self.__cmd_show_skin_browser, []], [], [_("_Quit"), self.__cmd_quit, []]]) # register observers self.__timewatcher.add_observer(self.__on_timewatcher) #self.__bgwatcher.add_observer(self.__on_bg_change) desktop.watch_bg(self.__on_bg_change) self.__window.add_observer(self.__on_window) self.__cal.add_observer(self.__on_cal) self.__navigation.add_observer(self.__on_navigation) self.__skin_browser.add_observer(self.__on_skin_browser) self.__planner.add_observer(self.__on_planner) # get screen resolution if the user did not tell dpi = self.__config.get([conf.TEMPORARY, conf.DPI]) if (not dpi): dpi = str(self.__guess_dpi()) self.__config.set([conf.TEMPORARY, conf.DPI], dpi) # configure self.set_config(self.__config) # # Tries to guess the screen resolution in dots per inch. # def __guess_dpi(self): height = gtk.gdk.screen_height() height_inch = gtk.gdk.screen_height_mm() / 25.4 # 1 inch is 25.4 mm dpi = height / height_inch return dpi # # Reacts on time watcher events. # def __on_timewatcher(self, src, cmd, *args): if (cmd == src.OBS_NEWDAY): self.__cal.set_month() self.__cmd_set_month_bg() elif (cmd == src.OBS_SAVE_CONFIG): self.__config.save() # # Reacts on changes to the background image. # def __on_bg_change(self, src, cmd): self.__window.update_bg() # # Reacts on window events. # def __on_window(self, src, cmd, *args): if (cmd == src.OBS_WHEEL): step = args[0] self.__cmd_navigate(step) elif (cmd == src.OBS_CLICK): x, y = args navx, navy, navw, navh = self.__navigation.get_allocation() if (navx <= x <= navx + navw and navy <= y <= navy + navh): self.__navigation.send_click(x - navx, y - navy) elif (cmd == src.OBS_CLOSE): self.__cmd_quit() elif (cmd == src.OBS_MOVE): x, y = args[0] self.__config.set([conf.GEOMETRY, conf.WINDOW, conf.X], str(x)) self.__config.set([conf.GEOMETRY, conf.WINDOW, conf.Y], str(y)) elif (cmd == src.OBS_MENU): button = args[0] etime = args[1] self.__popup_menu.popup(button, etime) # # Reacts on calendar events. # def __on_cal(self, src, cmd, *args): if (cmd == src.OBS_ENTER_DAY): year, month, day = args self.__planner.popup(year, month, day, self.__window) elif (cmd == src.OBS_LEAVE_DAY): self.__planner.close_popup() elif (cmd == src.OBS_OPEN_DAY): year, month, day = args self.__planner.edit(year, month, day) # TODO: implement # # Reacts on navigation events. # def __on_navigation(self, src, step): self.__cmd_navigate(step) # # Reacts on skin browser events. # def __on_skin_browser(self, src, cmd, skin): self.__config.set_offset([conf.SKIN]) self.__config.clear() self.__config.load(os.path.join(values.SKINDIR, skin, values.SKINFILE), [os.environ.get(values.SKINPATH, "")]) self.__config.set_offset([]) self.set_config(self.__config) month, year = self.__cal.get_month() gtk.timeout_add(250, self.__cal.set_month, month, year) self.__cmd_set_month_bg() # # Reacts on planner events. # def __on_planner(self, src, cmd, *args): if (cmd == src.OBS_CHANGE_CALENDAR): month, year = self.__cal.get_month() self.__cal.set_month(month, year) # # Configures the application. # def set_config(self, config): self.__window.set_config(config) self.__cal.set_config(config) self.__navigation.set_config(config) self.__planner.set_config(config) navx = config.get([conf.SKIN, conf.GEOMETRY, conf.NAVIGATION, conf.X]) navy = config.get([conf.SKIN, conf.GEOMETRY, conf.NAVIGATION, conf.Y]) self.__window.put(self.__navigation, navx, navy) # # Sets the background image for the current month. # def __cmd_set_month_bg(self): month, year = self.__cal.get_month() path = self.__config.get([conf.SKIN, conf.PATH]) images = self.__config.get([conf.SKIN, conf.GRAPHICS, conf.IMAGES]).split(";") imagefile = images[month - 1].strip() if (imagefile): filename = os.path.join(path, imagefile) alpha = 255 else: filename = "" alpha = 0 gtk.idle_add(self.__window.set_bg_image, filename, alpha) # # Quits the application. # def __cmd_quit(self): self.__config.save() gtk.mainquit() # # Navigates through the months. # def __cmd_navigate(self, step): if (step == 0): self.__cal.set_month() month, year = self.__cal.get_month() else: month, year = self.__cal.get_month() month += step if (month == 0): month = 12 year -= 1 elif (month == 13): month = 1 year += 1 self.__cal.set_month(month, year) self.__cmd_set_month_bg() # # Displays the skin browser. # def __cmd_show_skin_browser(self): skin = os.path.basename(self.__config.get([conf.SKIN, conf.PATH])) self.__skin_browser.show() self.__skin_browser.set_current_skin(skin) # # Opens the Evolution groupware application. # def __cmd_evolution(self): os.system("evolution evolution:/local/Calendar &") gdeskcal-0.57.1/code/Cal.py0000644000175000017500000003303710025431055015377 0ustar seb128seb12800000000000000import configvalues as conf from CalLabel import CalLabel from Observable import Observable import sfrmapper import gtk import pango import time import os import calendar # this is only here, so that xgettext can find the strings _MONTHS = [_("January"), _("February"), _("March"), _("April"), _("May"), _("June"), _("July"), _("August"), _("September"), _("October"), _("November"), _("December")] _WEEKDAYS = [_("Mo"), _("Tu"), _("We"), _("Th"), _("Fr"), _("Sa"), _("Su")] # widget property for storing the day number _PROPERTY_DAY = "day" # make the calendar return English names calendar.month_name = ["", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] calendar.day_abbr = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"] # # Class for a calendar widget. # class Cal(gtk.Fixed, Observable): OBS_ENTER_DAY = 0 OBS_LEAVE_DAY = 1 OBS_OPEN_DAY = 2 # # Constructor. # def __init__(self): self.__month = 1 self.__year = 1 self.__first_day = 0 self.__local_numerals = 0 self.__have_today_mark = 0 self.__have_year_coords = 0 # layout of the day labels: (x, y, width, height, hgap, vgap) self.__days_layout = (0, 0, 0, 0, 0, 0) # the currently selected day self.__selected_day = 0 # the planner to query self.__planner = None gtk.Fixed.__init__(self) # month (and year) self.__lbl_month = CalLabel(2, 1, gtk.FALSE) self.__lbl_month.show() self.put(self.__lbl_month, 0, 0) # year alone self.__lbl_year = CalLabel(1, 1, gtk.FALSE) self.__lbl_year.show() self.put(self.__lbl_year, 0, 0) # weekdays self.__lbl_weekdays = CalLabel(7, 1, gtk.TRUE) self.__lbl_weekdays.show() self.put(self.__lbl_weekdays, 0, 0) # days self.__lbl_days = CalLabel(7, 6, gtk.TRUE) self.__lbl_days.show() self.put(self.__lbl_days, 0, 0) # mark for today self.__today_mark = gtk.Image() self.__today_mark.show() self.put(self.__today_mark, -1000, 0) #self.connect("button-press-event", self.__on_button_press) #self.connect("motion-notify-event", self.__on_day_enter) #self.connect("leave-notify-event", self.__on_day_leave) self.add_events(gtk.gdk.POINTER_MOTION_MASK) # # Places the labels. # def __place_labels(self, config): # place month/year xpos_month = config.get([conf.SKIN, conf.GEOMETRY, conf.MONTH, conf.X]) ypos_month = config.get([conf.SKIN, conf.GEOMETRY, conf.MONTH, conf.Y]) self.move(self.__lbl_month, xpos_month, ypos_month) xpos_year = config.get([conf.SKIN, conf.GEOMETRY, conf.YEAR, conf.X]) ypos_year = config.get([conf.SKIN, conf.GEOMETRY, conf.YEAR, conf.Y]) self.move(self.__lbl_year, xpos_year, ypos_year) # place weekdays xpos_wdays = config.get([conf.SKIN, conf.GEOMETRY, conf.WEEKDAYS, conf.X]) ypos_wdays = config.get([conf.SKIN, conf.GEOMETRY, conf.WEEKDAYS, conf.Y]) self.move(self.__lbl_weekdays, xpos_wdays, ypos_wdays) # place days xpos_days = config.get([conf.SKIN, conf.GEOMETRY, conf.DAYS, conf.X]) ypos_days = config.get([conf.SKIN, conf.GEOMETRY, conf.DAYS, conf.Y]) self.move(self.__lbl_days, xpos_days, ypos_days) # # Returns the year, month, day from the given coords. # def __coords2day(self, x, y): days_x, days_y, days_width, days_height, \ days_hgap, days_vgap = self.__days_layout if (x < days_x or y < days_y or x >= days_x + 7 * (days_width + days_hgap) or y >= days_y + 6 * (days_height + days_vgap)): return None dx = int((x - days_x) / (days_width + days_hgap)) dy = int((y - days_y) / (days_height + days_vgap)) lx = days_x + dx * (days_width + days_hgap) ly = days_y + dy * (days_height + days_vgap) # check if the coords are on a gap if (x - lx > days_width or y - ly > days_height): return None lbl = self.__lbl_days.get_label_at(lx, ly) if (not lbl): return None day = lbl.get_data(_PROPERTY_DAY) month = self.__month year = self.__year return (year, month, day) # # Reacts on entering a day label. # def on_day_enter(self, src, event): date = self.__coords2day(event.x, event.y) if (not date): self.__selected_day = 0 self.update_observer(self.OBS_LEAVE_DAY) return year, month, day = date if (day == self.__selected_day): return elif (day > 0): self.__selected_day = day self.update_observer(self.OBS_ENTER_DAY, year, month, day) # # Reacts on leaving a day label. # def on_day_leave(self, src, event): self.__selected_day = 0 self.update_observer(self.OBS_LEAVE_DAY) # # Reacts on pressing a mouse button. # def on_button_press(self, src, event): if (event.button == 1 and event.type == gtk.gdk._2BUTTON_PRESS): date = self.__coords2day(event.x, event.y) if (date): year, month, day = date if (day > 0): self.update_observer(self.OBS_OPEN_DAY, year, month, day) #end if #end if # # Returns the current day, month and year. # def __get_current_day(self): now = time.localtime(time.time()) year = now[0] month = now[1] day = now[2] return (day, month, year) # # Sets the month to be displayed. # def set_month(self, month = 0, year = 0): while (gtk.gdk.events_pending()): gtk.mainiteration() gtk.idle_add(self.__idle_set_month, month, year) def __idle_set_month(self, month, year): curday, curmonth, curyear = self.__get_current_day() if (month == 0 or year < 1970): month = curmonth; year = curyear self.__month = month self.__year = year # get the calendar sheet calendar.setfirstweekday(self.__first_day) cal = calendar.month(year, month) lines = cal.splitlines() monthtext, yeartext = lines[0].split()[:2] weekdays = lines[1].split() days = "\n".join(lines[2:]) if (self.__local_numerals): yeartext = sfrmapper.map(yeartext, sfrmapper.LOCAL) lbl = self.__lbl_month.get_label(0) lbl.set_text(_(monthtext) + " ") # update the correct year label if (self.__have_year_coords): lbl = self.__lbl_year.get_label(0) lbl.set_text(yeartext + " ") else: lbl = self.__lbl_month.get_label(1) lbl.set_text("\n" + yeartext + " ") # update labels self.move(self.__today_mark, -1000, 0) for i in xrange(7): value = weekdays[i] lbl = self.__lbl_weekdays.get_label(i) lbl.set_text(_(value)) for i in xrange(42): lbl = self.__lbl_days.get_label(i) value = days[i * 3:i * 3 + 2] if (value.strip().isdigit()): day = int(value) else: day = 0 if (self.__local_numerals): value = sfrmapper.map(value, sfrmapper.LOCAL) # ask the planner if there are events scheduled for that day if (self.__planner.get_events(year, month, day)): v = value.strip() markup = "" + v + "" if (len(v) == 1): markup = " " + markup lbl.set_markup(markup) else: lbl.set_text(value) lbl.set_data(_PROPERTY_DAY, day) # place the mark if (self.__have_today_mark and month == curmonth and year == curyear and day == curday): alloc = lbl.get_allocation() mark_alloc = self.__today_mark.get_allocation() self.move(self.__today_mark, alloc.x + (alloc.width - mark_alloc.width) / 2, alloc.y + (alloc.height - mark_alloc.height) / 2) #end if #end for self.__lbl_days.update_positions() # # Returns the currently displayed month and year. # def get_month(self): return (self.__month, self.__year) # # Scales the given font description from point size to pixel size. # def __scale_font(self, fontdescription, dpi): height = gtk.gdk.screen_height() height_inch = height / dpi height_pt = height_inch * 72.0 scale = height_pt / height size = fontdescription.get_size() size *= scale fontdescription.set_size(int(size)) # # Sets the planner to use. # def set_planner(self, planner): self.__planner = planner # # Configures the calendar. # def set_config(self, config): # first day of the week self.__first_day = config.get([conf.BEHAVIOUR, conf.FIRST_DAY]) # whether we use local numerals self.__local_numerals = config.get([conf.BEHAVIOUR, conf.NATIONAL_NUMERALS]) # resolution dpi = config.get([conf.TEMPORARY, conf.DPI]) # fonts font_year = pango.FontDescription( config.get([conf.SKIN, conf.FONTS, conf.YEAR])) font_month = pango.FontDescription( config.get([conf.SKIN, conf.FONTS, conf.MONTH])) font_weekdays = pango.FontDescription( config.get([conf.SKIN, conf.FONTS, conf.WEEKDAYS])) font_days = pango.FontDescription( config.get([conf.SKIN, conf.FONTS, conf.DAYS])) # colors color_month = config.get([conf.SKIN, conf.COLORS, conf.MONTH]) color_year = config.get([conf.SKIN, conf.COLORS, conf.YEAR]) color_weekdays = config.get([conf.SKIN, conf.COLORS, conf.WEEKDAYS]) color_days = config.get([conf.SKIN, conf.COLORS, conf.DAYS]) # mark for today path = config.get([conf.SKIN, conf.PATH]) self.__today_mark.hide() today_mark = config.get([conf.SKIN, conf.GRAPHICS, conf.TODAY]) if (today_mark): self.__today_mark.set_from_file(os.path.join(path, today_mark)) self.__have_today_mark = 1 else: self.__have_today_mark = 0 self.__today_mark.show() self.__scale_font(font_month, dpi) self.__scale_font(font_year, dpi) self.__scale_font(font_weekdays, dpi) self.__scale_font(font_days, dpi) # geometry width_wdays = config.get([conf.SKIN, conf.GEOMETRY, conf.WEEKDAYS, conf.WIDTH]) height_wdays = config.get([conf.SKIN, conf.GEOMETRY, conf.WEEKDAYS, conf.HEIGHT]) hspace_wdays = config.get([conf.SKIN, conf.GEOMETRY, conf.WEEKDAYS, conf.HSPACING]) width_days = config.get([conf.SKIN, conf.GEOMETRY, conf.DAYS, conf.WIDTH]) height_days = config.get([conf.SKIN, conf.GEOMETRY, conf.DAYS, conf.HEIGHT]) hspace_days = config.get([conf.SKIN, conf.GEOMETRY, conf.DAYS, conf.HSPACING]) vspace_days = config.get([conf.SKIN, conf.GEOMETRY, conf.DAYS, conf.VSPACING]) # does the year have coords? self.__have_year_coords = \ (config.get([conf.SKIN, conf.GEOMETRY, conf.YEAR, conf.X]) != -1) # month and year lbl = self.__lbl_month.get_label(0) lbl.modify_font(font_month) lbl.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse(color_month)) lbl = self.__lbl_month.get_label(1) lbl.set_text("") lbl.modify_font(font_year) lbl.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse(color_year)) lbl = self.__lbl_year.get_label(0) lbl.set_text("") lbl.modify_font(font_year) lbl.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse(color_year)) # weekdays self.__lbl_weekdays.set_spacing(hspace_wdays, 0) for i in xrange(7): lbl = self.__lbl_weekdays.get_label(i) lbl.set_size_request(width_wdays, height_wdays) lbl.modify_font(font_weekdays) lbl.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse(color_weekdays)) # days self.__lbl_days.set_spacing(hspace_days, vspace_days) for i in xrange(42): lbl = self.__lbl_days.get_label(i) lbl.set_size_request(width_days, height_days) lbl.modify_font(font_days) lbl.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse(color_days)) self.__days_layout = (config.get([conf.SKIN, conf.GEOMETRY, conf.DAYS, conf.X]), config.get([conf.SKIN, conf.GEOMETRY, conf.DAYS, conf.Y]), width_days, height_days, hspace_days, vspace_days) self.__place_labels(config) gdeskcal-0.57.1/code/CalWindow.py0000644000175000017500000001477210025431055016574 0ustar seb128seb12800000000000000from GlassWindow import GlassWindow from Observable import Observable import configvalues as conf import desktop import errormessage import commands import os import sys import gtk # # Class for the calendar window. # class CalWindow(GlassWindow, Observable): # messages to the observers OBS_WHEEL = 0 OBS_CLOSE = 1 OBS_MOVE = 2 OBS_MENU = 3 OBS_CLICK = 4 # # Constructor. # def __init__(self, config): # flag indicating whether this window is currently being dragged self.__is_dragging = 0 self.__drag_offset = (0, 0) # remember the current window position to detect movements self.__position = (0, 0) GlassWindow.__init__(self, gtk.WINDOW_TOPLEVEL) import icon; self.set_icon(icon.ICON) self.set_title("gDeskCal") self.set_decorated(gtk.FALSE) self.stick() self.connect("delete-event", self.__on_close) self.connect("scroll-event", self.__on_mouse_wheel) self.connect("key-press-event", self.__on_key) self.connect("configure-event", self.__on_configure) # window moving self.connect("button-press-event", self.__on_button_press) self.connect("button-release-event", self.__on_button_release) self.add_events(gtk.gdk.SCROLL_MASK | gtk.gdk.POINTER_MOTION_MASK | #gtk.gdk.POINTER_MOTION_HINT_MASK | gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK) # layout self.__layout = gtk.Fixed() self.__layout.show() self.add(self.__layout) # use gDesklets' EWMH module if available try: if (not config.get([conf.TEMPORARY, conf.USE_EWMH])): raise StandardError gdesklets_exe = commands.getoutput("which gdesklets") cwd = os.getcwd() os.chdir(os.path.dirname(gdesklets_exe)) link_dest = os.path.dirname(os.readlink(gdesklets_exe)) gdesklets_home = os.path.abspath(link_dest) os.chdir(cwd) sys.path.append(os.path.join(gdesklets_home, "utils")) import _ewmh self.realize() gtk.idle_add(_ewmh.set_below, self.window) except: gtk.idle_add(self.set_property, "skip-taskbar-hint", 1) gtk.idle_add(self.set_property, "skip-pager-hint", 1) # keep window below others self.connect("focus-in-event", self.__lower_window) self.connect_after("button-press-event", self.__lower_window) # # Reacts on mouse wheel. # def __on_mouse_wheel(self, src, event): if (event.direction == gtk.gdk.SCROLL_UP): step = -1 elif (event.direction == gtk.gdk.SCROLL_DOWN): step = 1 else: step = 0 self.update_observer(self.OBS_WHEEL, step) # # Reacts on key presses. # def __on_key(self, src, event): key = gtk.gdk.keyval_name(event.keyval) # SPACE updates the background if (key == "space"): self.update_bg() # F10 opens the menu elif (key == "F10"): self.update_observer(self.OBS_MENU, 0, event.time) # # Keeps the window below others. # def __lower_window(self, src, event): if (self.window): self.window.lower() return gtk.TRUE # # Reacts on moving the window. # def __on_configure(self, src, event): pos = self.window.get_origin() if (pos != self.__position): self.update_observer(self.OBS_MOVE, pos) self.__position = pos # # Reacts on closing the window. # def __on_close(self, src, event): self.update_observer(self.OBS_CLOSE) # # Reacts on pressing a mouse button. # def __on_button_press(self, src, event): button = event.button modifiers = event.state if (button == 1): x, y = self.get_pointer() self.update_observer(self.OBS_CLICK, x, y) if (button == 2): x, y = self.get_pointer() self.__is_dragging = 1 self.__drag_offset = (x, y) self.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.FLEUR)) gtk.timeout_add(20, self.__on_move) # # Reacts on releasing a mouse button. # def __on_button_release(self, src, event): if (self.__is_dragging): self.__is_dragging = 0 self.window.set_cursor(None) self.update_bg() elif (event.button == 3): self.update_observer(self.OBS_MENU, event.button, event.time) # # Reacts on moving the mouse pointer. # def __on_move(self): if (self.__is_dragging): offx, offy = self.__drag_offset winx, winy = self.get_position() x, y = self.get_pointer() x += winx; y += winy self.move(x - offx, y - offy) return gtk.TRUE else: return gtk.FALSE # # Updates the background. # def update_bg(self, noscreenshot = 0): GlassWindow.update_bg(self, noscreenshot) self.stick() # # Puts or moves a child widget at the given position. # def put(self, widget, x, y): if (not widget in self.__layout.get_children()): self.__layout.put(widget, x, y) else: self.__layout.move(widget, x, y) # # Switches to window move mode. # def move_window(self): x, y = self.get_pointer() width, height = self.window.get_size() x = max(4, min(x, width - 4)) y = max(4, min(y, height - 4)) self.__is_dragging = 1 self.__drag_offset = (x, y) gtk.timeout_add(20, self.__on_move) # # Configures the window. # def set_config(self, config): x = config.get([conf.GEOMETRY, conf.WINDOW, conf.X]) y = config.get([conf.GEOMETRY, conf.WINDOW, conf.Y]) width = config.get([conf.SKIN, conf.GEOMETRY, conf.WINDOW, conf.WIDTH]) height = config.get([conf.SKIN, conf.GEOMETRY, conf.WINDOW, conf.HEIGHT]) transparency = config.get([conf.TEMPORARY, conf.TRANSPARENCY]) self.set_transparency_mode(transparency) self.show() self.move(x, y) self.resize(width, height) self.set_size_request(width, height) if (transparency != self.TRANSPARENCY_NONE): self.update_bg() gdeskcal-0.57.1/code/cmdlineparser.py0000644000175000017500000000415010025431055017522 0ustar seb128seb12800000000000000import configvalues as conf import values import getopt import os import sys _OPTIONS = "x:y:" _LONGOPTIONS = ["dpi=", "skin=", "opaque", "screenshot", "dontsave", "first-day=", "numerals=", "no-ewmh", "help"] _USAGE = """ Usage: gdeskcal [-x ] [-y ] [--skin=] [--opaque|--screenshot] [--dontsave] [--first-day=] [--dpi=] [--numerals=] [--no-ewmh] [--help]""" # # Displays the usage text and exits. # def usage(): print _USAGE sys.exit(1) # # Parses the given command line options and adjusts the given configuration. # def parse(cmdline, config): try: opts, nil = getopt.getopt(cmdline, _OPTIONS, _LONGOPTIONS) except: raise StandardError for o, a in opts: if (o in ["--skin"]): config.set_offset([conf.SKIN]) config.clear() config.load(os.path.join(values.SKINDIR, a, values.SKINFILE), [os.environ.get(values.SKINPATH, "")]) config.set_offset([]) elif (o in ["--dpi"]): config.set([conf.TEMPORARY, conf.DPI], float(a)) elif (o in ["--opaque"]): config.set([conf.TEMPORARY, conf.TRANSPARENCY], "0") elif (o in ["--screenshot"]): config.set([conf.TEMPORARY, conf.TRANSPARENCY], "1") elif (o in ["--dontsave"]): config.set([conf.TEMPORARY, conf.SAVE_CHANGES], "0") elif (o in ["--no-ewmh"]): config.set([conf.TEMPORARY, conf.USE_EWMH], "0") elif (o in ["--first-day"]): day = min(7, max(1, int(a))) config.set([conf.BEHAVIOUR, conf.FIRST_DAY], day - 1) elif (o in ["--numerals"]): config.set([conf.BEHAVIOUR, conf.NATIONAL_NUMERALS], (a.lower() == "national")) elif (o in ["-x"]): config.set([conf.GEOMETRY, conf.WINDOW, conf.X], int(a)) elif (o in ["-y"]): config.set([conf.GEOMETRY, conf.WINDOW, conf.Y], int(a)) elif (o in ["--help"]): usage() #end for gdeskcal-0.57.1/code/ConfigFormatLoader.py0000644000175000017500000000145510025431055020404 0ustar seb128seb12800000000000000from xml import sax class ConfigFormatLoader(sax.handler.ContentHandler): def __init__(self): self.__format = {} self.__path = [] def load(self, file): fd = open(file, "r") data = fd.read() fd.close() sax.parseString(data, self) return self.__format def startElement(self, name, attrs): if (name == "folder"): tag = attrs["name"] self.__path.append(tag) elif (name == "entry"): tag = attrs["name"] vtype = attrs["type"] default = attrs["default"] self.__path.append(tag) self.__format[tuple(self.__path)] = (vtype, default) def endElement(self, name): if (self.__path): self.__path.pop() gdeskcal-0.57.1/code/ConfigLoader.py0000644000175000017500000000200210025431055017220 0ustar seb128seb12800000000000000from xml import sax # # Parser for config files. # class ConfigLoader(sax.handler.ContentHandler): def __init__(self, config): self.__config = config self.__path = [] def load(self, file): fd = open(file, "r") data = fd.read() fd.close() sax.parseString(data, self) def startElement(self, name, attrs): entryname = name includefile = attrs.get("include") value = attrs.get("value") if (name != "config"): self.__path.append(entryname) if (value): self.__config.set(self.__path, value) elif (includefile): self.__config.set_offset(self.__path) self.__config.load(includefile) self.__config.set_offset([]) def endElement(self, name): if (self.__path): self.__path.pop() if (__name__ == "__main__"): from Config import Config cfg = Config() cl = ConfigLoader(cfg) cl.load("config.xml") gdeskcal-0.57.1/code/Config.py0000644000175000017500000001167410025431055016110 0ustar seb128seb12800000000000000from ConfigFormatLoader import ConfigFormatLoader from ConfigLoader import ConfigLoader import configvalues as conf import errormessage import values import os # # Class for the config tree. # class Config: # # Constructor. # def __init__(self, configfile, formatfile): # there file where to store changes self.__configfile = configfile self.__format = {} self.__data = {} self.__offset = [] # flag to indicate that the configuration has changed self.__changed_flag = 0 # read the config format specification self.__format = ConfigFormatLoader().load(formatfile) # # Sets the given config value. # def set(self, path, value): dict = self.__data for p in self.__offset + path[:-1]: if (not dict.has_key(p)): dict[p] = {} dict = dict[p] #end for dict[path[-1]] = value self.__changed_flag = 1 # # Returns the given config value. # def get(self, path): formatinfo = self.__format.get(tuple(self.__offset + path)) if (formatinfo): vtype, default = formatinfo else: raise KeyError("Invalid key: " + str(path)) dict = self.__data try: for p in self.__offset + path[:-1]: dict = dict[p] #end for value = dict[path[-1]] except KeyError: value = default if (value): if (vtype == conf.TYPE_INT): value = int(value) elif (vtype == conf.TYPE_BOOL): value = int(value) elif (vtype == conf.TYPE_FLOAT): value = float(value) elif (vtype == conf.TYPE_STRING): pass #end if return value # # Clears the given path. # def clear(self, path = []): dict = self.__data for p in self.__offset + path[:-1]: if (not dict.has_key(p)): dict[p] = {} dict = dict[p] #end for dict.clear() # # Loads the given configuration, or the default configuration if no # filename is given. # def load(self, filename = "", searchpaths = []): if (not filename): filename = self.__configfile searchpaths += [os.environ.get(values.DESKCALUSERHOME), os.environ.get(values.DESKCALHOME)] # try to find the given file configfile = "" for p in searchpaths: fn = os.path.join(p, filename) if (os.path.exists(fn)): configfile = fn #end for if (not configfile): errormessage.error(_("Unable to find configuration file " \ "%(filename)s.") % vars(), 1) self.set([conf.PATH], os.path.dirname(configfile)) self.set([conf.INCLUDE_PATH], filename) cl = ConfigLoader(self) try: cl.load(configfile) self.__changed_flag = 1 except: errormessage.error(_("Invalid configuration file " \ "%(configfile)s.") % vars(), 1) # # Saves the current configuration to the default config file. # def save(self): # check whether we may save if (not self.__changed_flag or not self.get([conf.TEMPORARY, conf.SAVE_CHANGES])): return #userhomedir = os.environ.get(values.DESKCALUSERHOME) #filename = os.path.join(userhomedir, values.CONFIGFILE) filename = self.__configfile out = "\n" out += self.__serialize(self.__data, 2) out += "\n" #print "saving configuration" try: fd = open(filename, "w") fd.write(out) fd.close() self.__changed_flag = 0 except: errormessage.error(_("Could not save configuration.")) def __serialize(self, dict, indent): out = "" for key, value in dict.items(): if (key in [conf.SKIN]): path = value[conf.INCLUDE_PATH] out += " " * indent out += "<%(key)s " \ "include=\"%(path)s\"/>\n" % vars() # don't serialize temporary settings elif (key == conf.TEMPORARY): pass elif (type(value) == type({})): out += " " * indent out += "<%(key)s>\n" % vars() out += self.__serialize(value, indent + 2) out += " " * indent out += "\n" % vars() elif (key != conf.PATH): out += " " * indent out += "<%(key)s " \ "value=\"%(value)s\"/>\n" % vars() #end for return out # # Sets the path offset of paths for setting/getting values. # def set_offset(self, offset): self.__offset = offset gdeskcal-0.57.1/code/configvalues.py0000644000175000017500000000141110025431055017354 0ustar seb128seb12800000000000000# # The names of the configuration keys. # TYPE_BOOL = "bool" TYPE_INT = "int" TYPE_FLOAT = "float" TYPE_STRING = "string" DPI = "dpi" PATH = "path" INCLUDE_PATH = "include-path" DAYS = "days" MONTH = "month" NAVIGATION = "navigation" TODAY = "today" WEEKDAYS = "weekdays" WINDOW = "window" YEAR = "year" BEHAVIOUR = "behaviour" COLORS = "colors" GEOMETRY = "geometry" GRAPHICS = "graphics" SKIN = "skin" FONTS = "fonts" TEMPORARY = "temporary" IMAGES = "images" NAV_PREV = "nav-prev" NAV_NEXT = "nav-next" NAV_HOME = "nav-home" HEIGHT = "height" HSPACING = "hspacing" VSPACING = "vspacing" WIDTH = "width" X = "x" Y = "y" FIRST_DAY = "first-day" NATIONAL_NUMERALS = "national-numerals" SAVE_CHANGES = "save-changes" TRANSPARENCY = "transparency" USE_EWMH = "use-ewmh" gdeskcal-0.57.1/code/desktop.py0000644000175000017500000000553610025431055016354 0ustar seb128seb12800000000000000import gtk import commands # # Restricts the given coordinates to visible values. # def _crop_coords(x, y, width, height): scrwidth = gtk.gdk.screen_width() scrheight = gtk.gdk.screen_height() x = min(max(0, x), scrwidth - 1) y = min(max(0, y), scrheight - 1) width = min(scrwidth - x, width) height = min(scrheight - y, height) return (x, y, width, height) # # Captures solid color wallpapers. Requires GNOME. # def get_wallcolor(width, height): import gconf client = gconf.client_get_default() client.add_dir("/desktop/gnome/background", gconf.CLIENT_PRELOAD_RECURSIVE) value = client.get("/desktop/gnome/background/primary_color") color = value.get_string() pbuf = gtk.gdk.Pixbuf(0, 1, 8, width, height) c = gtk.gdk.color_parse(color) fillr = (c.red / 256) << 24 fillg = (c.green / 256) << 16 fillb = (c.blue / 256) << 8 fillcolor = fillr | fillg | fillb | 255 pbuf.fill(fillcolor) return pbuf # # Captures the wallpaper image by making a screen shot. # def get_wallpaper_fallback(x, y, width, height): x, y, width, height = _crop_coords(x, y, width, height) rootwin = gtk.gdk.get_default_root_window() pbuf = gtk.gdk.Pixbuf(0, 1, 8, width, height) pbuf.get_from_drawable(rootwin, rootwin.get_colormap(), x, y, 0, 0, width, height) return pbuf # # Captures the wallpaper image by accessing the background pixmap. # def get_wallpaper(x, y, width, height): x, y, width, height = _crop_coords(x, y, width, height) # get wallpaper pmap_id = get_wallpaper_id() if (hasattr(gtk.gdk, "gdk_pixmap_foreign_new")): pmap = gtk.gdk.gdk_pixmap_foreign_new(pmap_id) else: pmap = gtk.gdk.pixmap_foreign_new(pmap_id) pwidth, pheight = pmap.get_size() # create pixbuf rootwin = gtk.gdk.get_default_root_window() pbuf = gtk.gdk.Pixbuf(0, 1, 8, width, height) # tile wallpaper over pixbuf sx = -(x % pwidth) sy = -(y % pheight) for x in xrange(sx, width, pwidth): for y in xrange(sy, height, pheight): dstx = max(0, x) dsty = max(0, y) srcx = dstx - x srcy = dsty - y w = min(pwidth - srcx, width - dstx) h = min(pheight - srcy, height - dsty) pbuf.get_from_drawable(pmap, rootwin.get_colormap(), srcx, srcy, dstx, dsty, w, h) #end for #end for return pbuf # # Returns the ID of the background pixmap. # def get_wallpaper_id(): try: root = gtk.gdk.get_default_root_window() id = root.property_get("_XROOTPMAP_ID", "PIXMAP")[2][0] return long(id) except: raise NotImplementedError def watch_bg(observer): _BGWATCHER.add_observer(observer) from BGWatcher import BGWatcher _BGWATCHER = BGWatcher() gdeskcal-0.57.1/code/errormessage.py0000644000175000017500000000016310025431055017370 0ustar seb128seb12800000000000000import sys def error(text, critical = 0): sys.__stderr__.write(text + "\n") if (critical): sys.exit(1) gdeskcal-0.57.1/code/FileWatcher.py0000644000175000017500000000123110025431055017064 0ustar seb128seb12800000000000000from Observable import Observable import gtk import os # # Class for reporting when a file has changed. # class FileWatcher(Observable): OBS_CHANGE = 0 def __init__(self, path): self.__path = path self.__mtime = 0 gtk.timeout_add(500, self.__check_mtime) def __check_mtime(self): try: new_mtime = os.path.getmtime(self.__path) if (new_mtime != self.__mtime): self.__mtime = new_mtime self.update_observer(self.OBS_CHANGE, self.__path) except: if (not os.path.exists(self.__path)): return gtk.FALSE return gtk.TRUE gdeskcal-0.57.1/code/formats.py0000644000175000017500000000024710025431055016350 0ustar seb128seb12800000000000000# Date and time formats YEARDATEFORMAT = _("%(year)04d / %(month)02d / %(day)02d") DATEFORMAT = _("%(month)02d / %(day)02d") DAYTIMEFORMAT = _("%(hour)02d:%(min)02d") gdeskcal-0.57.1/code/GlassWindow.py0000644000175000017500000001212510025431055017134 0ustar seb128seb12800000000000000import desktop import gtk # # Class for transparent windows. # class GlassWindow(gtk.Window): # transparency modes TRANSPARENCY_NONE = 0 TRANSPARENCY_SCREENSHOT = 1 TRANSPARENCY_PSEUDO = 2 # # Constructor. # def __init__(self, wintype = gtk.WINDOW_TOPLEVEL): # the transparency mode to use self.__transparency = self.TRANSPARENCY_PSEUDO # transparency level of the window (0..255) self.__bg_alpha = 255 # the background image of the window self.__bg_image = None # the desktop background self.__bg_root = None # remember the current window position to detect movements self.__position = (0, 0) gtk.Window.__init__(self, wintype) self.connect("configure-event", self.__on_configure) # # Observer method for the background. # Connect this method to the BG watcher. # def bg_observer(self, src, cmd): self.update_bg() # # Sets the transparency mode of this window. # def set_transparency_mode(self, mode): self.__transparency = mode # # Sets the background image and the transparency level of the window. # def set_bg_image(self, filename, alpha): self.__bg_alpha = alpha # load image if (filename): # this is an ugly hack for avoiding memory leaks in pygtk img = gtk.Image() img.set_from_file(filename) self.__bg_image = img.get_pixbuf() # this would cause memory leaks in pygtk versions < 1.99.14 #self.__bg_image = gtk.gdk.pixbuf_new_from_file(filename) # if no image is available, create a solid background if (not filename or not self.__bg_image): self.__bg_image = gtk.gdk.Pixbuf(0, 1, 8, 10, 10) self.__bg_image.fill(0xffffff) gtk.idle_add(self.update_bg) # # Displays the background image. # def __display_bg(self): if (not self.__bg_root): return width = self.__bg_root.get_width() height = self.__bg_root.get_height() # we cannot use Pixbuf.copy() here because of a memory leak # bug in pygtk versions < 1.99.14 image = gtk.gdk.Pixbuf(0, 1, 8, width, height) self.__bg_root.copy_area(0, 0, width, height, image, 0, 0) # let GdkPixbuf do the alpha-blending self.__bg_image.composite(image, 0, 0, width, height, 0, 0, 1, 1, gtk.gdk.INTERP_BILINEAR, self.__bg_alpha) # set as window bg pix, mask = image.render_pixmap_and_mask() style = gtk.Style() style.bg_pixmap[gtk.STATE_NORMAL] = pix self.set_style(style) # tell gtk to redraw this window ASAP self.queue_draw() # # Updates the background for transparency. # def update_bg(self, noscreenshot = 0): if (not self.window): return x, y = self.window.get_origin() width, height = self.window.get_size() if (self.__bg_image and width > 10 and height > 10): self.__capture_bg(x, y, width, height, noscreenshot) self.__display_bg() # # Captures the background to create transparency. # def __capture_bg(self, x, y, width, height, noscreenshot = 0): # opaque background if (self.__transparency == self.TRANSPARENCY_NONE): self.__bg_root = gtk.gdk.Pixbuf(0, 1, 8, width, height) # TODO: let the user set the bg color self.__bg_root.fill(0xddddee) return # try capturing the background elif (self.__transparency == self.TRANSPARENCY_PSEUDO): try: self.__bg_root = desktop.get_wallpaper(x, y, width, height) return except: try: self.__bg_root = desktop.get_wallcolor(width, height) return except: self.__bg_root = gtk.gdk.Pixbuf(0, 1, 8, width, height) self.__bg_root.fill(0xddddee) return #end try #end try #end if # use screenshot transparency if capturing has failed or transparency # mode is set to screenshot transparency if (noscreenshot): return # must not make screenshot now self.hide() self.move(-1000, 0) self.queue_draw() # wait long enough for the window to disappear; does this work always? while (gtk.gdk.events_pending()): gtk.mainiteration() gtk.mainiteration() self.__bg_root = desktop.get_wallpaper_fallback(x, y, width, height) self.show() self.move(x, y) # # Reacts on moving the window. # def __on_configure(self, src, event): pos = self.window.get_origin() if (pos != self.__position): self.__position = pos # don't make screenshots while moving the window self.update_bg(noscreenshot = 1) gdeskcal-0.57.1/code/i18n.py0000644000175000017500000000042210025431055015447 0ustar seb128seb12800000000000000import values import gettext import os def dummy(text): return text try: localedir=os.environ.get(values.SYSTEMLOCALEDIR, values.LOCALEDIR) gettext.install("gdeskcal", localedir, unicode = 1) except: import __builtin__ __builtin__.__dict__["_"] = dummy gdeskcal-0.57.1/code/icon.py0000644000175000017500000000031610025431055015622 0ustar seb128seb12800000000000000# don't import this module before DESKCALHOME is set import values import gtk import os ICON = gtk.gdk.pixbuf_new_from_file( os.path.join(os.environ[values.DESKCALHOME], values.GFXDIR, "icon.png")) gdeskcal-0.57.1/code/__init__.py0000644000175000017500000000011510025431055016426 0ustar seb128seb12800000000000000import os gdeskcalhome = os.path.join(os.path.dirname(__file__), os.pardir) gdeskcal-0.57.1/code/ListBox.py0000644000175000017500000000356510025431055016267 0ustar seb128seb12800000000000000import gtk import gobject # # Class for a simplified list box. # class ListBox(gtk.ScrolledWindow): def __init__(self, headers): self.__handler = None gtk.ScrolledWindow.__init__(self) self.set_shadow_type(gtk.SHADOW_ETCHED_IN) self.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) ncols = len(headers) types = [gobject.TYPE_STRING] * ncols self.__liststore = apply(gtk.ListStore, types) self.__list = gtk.TreeView(self.__liststore) self.__list.set_headers_visible(gtk.FALSE) self.__list.show() for i in xrange(ncols): self.__list.append_column( gtk.TreeViewColumn(headers[i], gtk.CellRendererText(), text=i)) #self.add_with_viewport(self.__list) self.add(self.__list) self.__list.connect("cursor-changed", self.__on_cursor) def __on_cursor(self, src): row = src.get_cursor()[0][0] if (self.__handler): apply(self.__handler, [self, row]) def connect_select_row(self, handler): self.__handler = handler def set_headers_visible(self, value): self.__list.set_headers_visible(value) def set_cursor(self, row): self.__list.set_cursor(row, None, gtk.FALSE) def get_cursor(self): row, col = self.__list.get_cursor() return row[0] def clear(self): self.__liststore.clear() def append(self, *args): data = [] col = 0 for a in args: data += [col, a] col += 1 iter = self.__liststore.append() apply(self.__liststore.set, [iter] + data) def set(self, row, *args): data = [] col = 0 for a in args: data += [col, a] col += 1 iter = self.__liststore.get_iter((row,)) apply(self.__liststore.set, [iter] + data) gdeskcal-0.57.1/code/Menu.py0000644000175000017500000000144510025431055015602 0ustar seb128seb12800000000000000import gtk class Menu(gtk.Menu): def __init__(self, data): gtk.Menu.__init__(self) for entry in data: if (entry): label, handler, args = entry mitem = gtk.MenuItem(label) if (handler): mitem.connect("activate", self.__on_activate, handler, args) else: mitem = gtk.MenuItem() mitem.show() self.add(mitem) #end for def __on_activate(self, src, handler, args): apply(handler, args) def popup(self, button, time): gtk.Menu.popup(self, None, None, None, button, time) def __on_menu(self, menu, *args): return (0, 0, 0) gdeskcal-0.57.1/code/Navigation.py0000644000175000017500000000352010025431055016771 0ustar seb128seb12800000000000000from Observable import Observable import configvalues as conf import gtk import os class Navigation(gtk.HBox, Observable): # # Constructor. # def __init__(self): gtk.HBox.__init__(self, gtk.TRUE, 0) # force left-to-right direction for the navigation buttons self.set_direction(gtk.TEXT_DIR_LTR) data = [(gtk.STOCK_GO_BACK, -1), (gtk.STOCK_GO_DOWN, 0), (gtk.STOCK_GO_FORWARD, 1)] self.__images = [] for stock, step in data: img = gtk.Image() #img.set_from_stock(stock, 1) img.show() self.__images.append(img) self.add(img) #end for def send_click(self, x, y): px = x step = -1 for img in self.__images: w, h = img.size_request() if (px < w): break else: px -= w step += 1 #end for self.update_observer(step) # # Configures the navigation buttons. # def set_config(self, config): self.__images[0].hide() self.__images[1].hide() self.__images[2].hide() path = config.get([conf.SKIN, conf.PATH]) nav_prev = config.get([conf.SKIN, conf.GRAPHICS, conf.NAV_PREV]) nav_next = config.get([conf.SKIN, conf.GRAPHICS, conf.NAV_NEXT]) nav_home = config.get([conf.SKIN, conf.GRAPHICS, conf.NAV_HOME]) if (nav_prev): self.__images[0].set_from_file(os.path.join(path, nav_prev)) self.__images[0].show() if (nav_home): self.__images[1].set_from_file(os.path.join(path, nav_home)) self.__images[1].show() if (nav_next): self.__images[2].set_from_file(os.path.join(path, nav_next)) self.__images[2].show() gdeskcal-0.57.1/code/Observable.py0000644000175000017500000000126010025431055016755 0ustar seb128seb12800000000000000# # Base class for observable objects. # class Observable: # # Ensures that the observable is initialized. # The user doesn't have to call the constructor explicitly. # def __ensure_init(self): try: self.__handlers except: self.__handlers = [] def add_observer(self, observer): self.__ensure_init() self.__handlers.append(observer) def remove_observer(self, observer): self.__ensure_init() self.__handlers.remove(observer) def update_observer(self, *args): self.__ensure_init() for h in self.__handlers: apply(h, [self] + list(args)) gdeskcal-0.57.1/code/sfrmapper.py0000644000175000017500000000215510025431055016674 0ustar seb128seb12800000000000000# # Unicode mappings for translating numerals into national variants. # LOCAL = _("LOCALMAPPING") _MAPPINGS = { "LOCALMAPPING": {}, # # Hindi numerals are frequently used in Arabic. # "HINDI": {0x0030: 0x0660, 0x0031: 0x0661, 0x0032: 0x0662, 0x0033: 0x0663, 0x0034: 0x0664, 0x0035: 0x0665, 0x0036: 0x0666, 0x0037: 0x0667, 0x0038: 0x0668, 0x0039: 0x0669}, # # Chinese numerals are sometimes used in Chinese and Japanese. # "CHINESE": {0x0030: 0x3007, 0x0031: 0x4e00, 0x0032: 0x4e8c, 0x0033: 0x4e09, 0x0034: 0x56db, 0x0035: 0x4e94, 0x0036: 0x516d, 0x0037: 0x4e03, 0x0038: 0x516b, 0x0039: 0x4e5d} } # # Returns the translated number. # def map(number, mapping): mapping = _MAPPINGS.get(mapping) if (not mapping): return unicode(number) else: return unicode(number).translate(mapping) gdeskcal-0.57.1/code/SkinBrowser.py0000644000175000017500000001223310025431055017143 0ustar seb128seb12800000000000000from Observable import Observable from ListBox import ListBox import values import gtk import gobject import os # # Class for a browser for skins. # class SkinBrowser(gtk.Dialog, Observable): OBS_SET_SKIN = 0 # # Constructor. # def __init__(self): # the list of available skins self.__skins = [] # widgets and layout gtk.Dialog.__init__(self) import icon; self.set_icon(icon.ICON) self.set_title(_("Skin Browser")) self.set_default_size(320, 320) self.connect("delete-event", self.__on_close) # list of skins self.__list = ListBox([_("Name of Skin")]) self.__list.set_headers_visible(gtk.TRUE) self.__list.connect_select_row(self.__on_select) self.__list.show() self.vbox.pack_start(self.__list, gtk.TRUE, gtk.TRUE, 0) #scrwin = gtk.ScrolledWindow() #scrwin.set_shadow_type(gtk.SHADOW_ETCHED_IN) #scrwin.set_policy(gtk.POLICY_NEVER, # gtk.POLICY_AUTOMATIC) #scrwin.show() #self.vbox.pack_start(scrwin, gtk.TRUE, gtk.TRUE, 0) #self.__liststore = gtk.ListStore(gobject.TYPE_STRING) #self.__list = gtk.TreeView(self.__liststore) #self.__list.append_column(gtk.TreeViewColumn(_("Name of Skin"), # gtk.CellRendererText(), # text=0)) #self.__list.show() #self.__list.connect("button-release-event", self.__on_select) #self.__list.connect("key-release-event", self.__on_select) #scrwin.add(self.__list) # drag and drop tip label hbox = gtk.HBox() hbox.show() img = gtk.Image() img.set_from_stock(gtk.STOCK_DIALOG_INFO, gtk.ICON_SIZE_DIALOG) img.show() hbox.pack_start(img, gtk.FALSE, gtk.FALSE, 4) lbl = gtk.Label(_("New skins can be installed by dragging\n" "them into this window.")) lbl.show() hbox.pack_start(lbl, gtk.FALSE, gtk.FALSE, 4) self.vbox.pack_end(hbox, gtk.FALSE, gtk.FALSE, 8) # close button btn = self.add_button(gtk.STOCK_CLOSE, 0) btn.connect("clicked", self.__on_close) self.__display_skins() self.drag_dest_set(gtk.DEST_DEFAULT_ALL, [("text/uri-list", 0, -1)], gtk.gdk.ACTION_COPY | gtk.gdk.ACTION_MOVE) self.connect("drag-data-received", self.__on_drop) # # Reacts on dropping items. # def __on_drop(self, src, context, x, y, data, info, time): files = data.data.splitlines() for f in files: protocol, filename = f[:f.index(":")], f[f.index(":") + 1:] # cut off null byte if there is one if (filename[-1] == chr(0)): filename = filename[:-1] # only allow local files if (protocol == "file"): self.__install_skin_from_file(filename) #end if #end for self.__display_skins() # # Displays the available skins in the list view. # def __display_skins(self): self.__list.clear() self.__skins = [] skins = self.__get_installed_skins() skins.sort() for skin in skins: self.__skins.append(skin) name = skin.replace("_", " ") self.__list.append(name) #end for # # Reacts on selecting a skin. # def __on_select(self, src, index): skin = self.__skins[index] self.update_observer(self.OBS_SET_SKIN, skin) # # Reacts on closing the window. # def __on_close(self, *args): self.hide() return gtk.TRUE # # Finds and returns the names of all installed skins. # def __get_installed_skins(self): home = os.environ[values.DESKCALHOME] userhome = os.environ[values.DESKCALUSERHOME] skinhome = os.environ.get(values.SKINPATH, home) skins = {} for path in [os.path.join(skinhome, values.SKINDIR), os.path.join(userhome, values.SKINDIR)]: dirs = os.listdir(path) for d in dirs: if (os.path.exists(os.path.join(path, d, values.SKINFILE))): skins[d] = 1 #end for #end for return skins.keys() # # Installs the given skin archive. # def __install_skin_from_file(self, filename): userhome = os.environ[values.DESKCALUSERHOME] skinpath = os.path.join(userhome, values.SKINDIR) os.system("cd \"%(skinpath)s\" 2>/dev/null && " "gzip -d -c \"%(filename)s\" 2>/dev/null| " "tar -x 2>/dev/null" % vars()) # # Shows the window. # def show(self): self.__display_skins() gtk.Dialog.show(self) # # Marks the given skin as selected. # def set_current_skin(self, skin): try: index = self.__skins.index(skin) self.__list.set_cursor(index) except: pass gdeskcal-0.57.1/code/TimeWatcher.py0000644000175000017500000000153410025431055017111 0ustar seb128seb12800000000000000from Observable import Observable import time import gtk class TimeWatcher(Observable): OBS_NEWDAY = 0 OBS_SAVE_CONFIG = 1 def __init__(self): # (day, month, year) self.__today = (1, 1, 1) gtk.idle_add(self.__watchtime) gtk.timeout_add(3000, self.__save_config) # # Reports when a new day starts. # def __watchtime(self): now = time.localtime(time.time()) year, month, day = now[:3] if ((day, month, year) != self.__today): self.__today = (day, month, year) self.update_observer(self.OBS_NEWDAY, day, month, year) gtk.timeout_add(1000, self.__watchtime) # # Reports when the configuration should be saved. # def __save_config(self): self.update_observer(self.OBS_SAVE_CONFIG) return gtk.TRUE gdeskcal-0.57.1/code/values.py0000644000175000017500000000077110025431055016176 0ustar seb128seb12800000000000000VERSION = "0.57.1" # environment variables DESKCALUSERHOME = "DESKCALUSERHOME" DESKCALHOME = "DESKCALHOME" SYSTEMLOCALEDIR = "LOCALEDIR" SKINPATH = "GDESKCAL_SKIN_PATH" # locations SKINDIR = "skins" LOCALEDIR = "locale" GFXDIR = "data/gfx" CONFIGDIR = "~/.gdeskcal" # files SKINFILE = "skin.xml" CONFIGFILE = "config.xml" EVOLUTION_CALENDAR = "~/evolution/local/Calendar/calendar.ics" MY_CALENDAR = "calendar.ics" # config data files CONFIGFORMAT = "data/format.xml" CONFIGDEFAULT = "data/config.xml" gdeskcal-0.57.1/code/planner/0002755000175000017500000000000010025431055015761 5ustar seb128seb12800000000000000gdeskcal-0.57.1/code/planner/CalEditor.py0000644000175000017500000003316010025431055020202 0ustar seb128seb12800000000000000from code.ListBox import ListBox from cal.CalEvent import CalEvent from cal.Date import Date from cal.RRule import RRule from code import formats import gtk import gobject # # Editor for calendar events. # class CalEditor(gtk.Dialog): __CMD_NEW = 0 __CMD_REMOVE = 1 # # Constructor. # def __init__(self): # the day self.__day = (0, 0, 0) # the calendar to use self.__calendar = None # the events on that day self.__events = [] # the currently selected event self.__current_event = None # handler for the close action self.__close_handler = None # flag for indicating event blocking self.__events_blocked = 0 # flag for indicating whether the user has changed an entry self.__changed_flag = 0 gtk.Dialog.__init__(self) from code import icon; self.set_icon(icon.ICON) self.set_title(_("Edit Appointments")) self.set_default_size(400, 300) self.connect("delete-event", self.__on_close) # close button btn = self.add_button(gtk.STOCK_CLOSE, 0) btn.connect("clicked", self.__on_close) # # events frame # self.__events_frame = gtk.Frame("") self.__events_frame.set_border_width(4) self.__events_frame.show() self.vbox.pack_start(self.__events_frame, gtk.TRUE, gtk.TRUE, 0) hbox = gtk.HBox() hbox.set_border_width(4) hbox.show() self.__events_frame.add(hbox) # list of appointments self.__listbox = ListBox(["Time", "Summary"]) #self.__listbox.set_headers_visible(gtk.TRUE) self.__listbox.connect_select_row(self.__on_select) self.__listbox.show() hbox.pack_start(self.__listbox, gtk.TRUE, gtk.TRUE, 0) # buttons vbox = gtk.VBox() vbox.show() hbox.pack_end(vbox, gtk.FALSE, gtk.FALSE, 4) btn1 = self.__create_button(gtk.STOCK_NEW, _("New Appointment")) btn1.connect("clicked", self.__on_button, self.__CMD_NEW) btn1.show() vbox.pack_start(btn1, gtk.FALSE, gtk.FALSE, 4) btn2 = self.__create_button(gtk.STOCK_DELETE, _("Remove Appointment")) btn2.connect("clicked", self.__on_button, self.__CMD_REMOVE) btn2.show() vbox.pack_start(btn2, gtk.FALSE, gtk.FALSE, 4) # # edit frame # self.__edit_frame = gtk.Frame(_("Edit Appointment")) self.__edit_frame.set_border_width(4) self.__edit_frame.show() self.vbox.pack_start(self.__edit_frame, gtk.FALSE, gtk.FALSE, 0) tbl = gtk.Table(3, 2) tbl.set_border_width(4) tbl.show() self.__edit_frame.add(tbl) lbl = gtk.Label(_("Summary:")) lbl.show() align = gtk.Alignment() align.show() align.add(lbl) tbl.attach(align, 0, 1, 0, 1, gtk.FILL, 0, 2) self.__entry_summary = gtk.Entry() self.__entry_summary.connect("changed", self.__on_text_change) self.__entry_summary.show() tbl.attach(self.__entry_summary, 1, 2, 0, 1, gtk.EXPAND | gtk.FILL, 0, 0) lbl = gtk.Label(_("Time:")) lbl.show() align = gtk.Alignment() align.show() align.add(lbl) tbl.attach(align, 0, 1, 1, 2, gtk.FILL, 0, 2) # time entry hbox = gtk.HBox() hbox.show() tbl.attach(hbox, 1, 2, 1, 2, gtk.EXPAND | gtk.FILL, 0, 0) self.__entry_hours = gtk.SpinButton(climb_rate = 1, digits = 0) self.__entry_hours.connect("value-changed", self.__on_time_change, 0) self.__entry_hours.set_range(0, 23) self.__entry_hours.set_increments(1, 5) self.__entry_hours.show() hbox.pack_start(self.__entry_hours, gtk.FALSE, gtk.FALSE, 0) lbl = gtk.Label(" : ") lbl.show() hbox.pack_start(lbl, gtk.FALSE, gtk.FALSE, 0) self.__entry_mins = gtk.SpinButton(climb_rate = 1, digits = 0) self.__entry_mins.connect("value-changed", self.__on_time_change, 1) self.__entry_mins.set_range(0, 59) self.__entry_mins.set_increments(1, 10) self.__entry_mins.show() hbox.pack_start(self.__entry_mins, gtk.FALSE, gtk.FALSE, 0) # recurrence entry lbl = gtk.Label(_("Recurrences:")) lbl.show() align = gtk.Alignment() align.show() align.add(lbl) tbl.attach(align, 0, 1, 2, 3, gtk.FILL, 0, 2) text = _("every $INTERVAL$ ${days|weeks|months|years}$ for " "$TIMES$ times") hbox = self.__create_recurrences_entry(text) tbl.attach(hbox, 1, 2, 2, 3, gtk.EXPAND | gtk.FILL, 0, 0) # # Creates a button. # def __create_button(self, icon, label): btn = gtk.Button() box = gtk.HBox() box.show() btn.add(box) if (icon): img = gtk.Image() img.set_from_stock(icon, gtk.ICON_SIZE_BUTTON) img.show() box.pack_start(img, gtk.FALSE, gtk.FALSE, 4) #end if lbl = gtk.Label(label) lbl.show() box.pack_start(lbl, gtk.FALSE, gtk.FALSE, 4) return btn # # Creates the recurrences entry. # def __create_recurrences_entry(self, data): hbox = gtk.HBox() hbox.show() parts = data.split("$") for p in parts: if (p == "INTERVAL"): spin = gtk.SpinButton(climb_rate = 1, digits = 0) spin.set_range(1, 1000) spin.set_increments(1, 10) spin.connect("value-changed", self.__on_rec_change, 0) spin.show() self.__entry_rec_interval = spin widget = spin elif (p == "TIMES"): spin = gtk.SpinButton(climb_rate = 1, digits = 0) spin.set_range(1, 1000) spin.set_increments(1, 10) spin.connect("value-changed", self.__on_rec_change, 2) spin.show() self.__entry_rec_times = spin widget = spin elif (p and p[0] == "{"): entries = p[1:-1].split("|") option = gtk.OptionMenu() option.show() menu = gtk.Menu() for e in entries: item = gtk.MenuItem(e) item.show() menu.append(item) #end for option.set_menu(menu) self.__entry_rec_freq = option option.connect("changed", self.__on_rec_change, 1) widget = option else: lbl = gtk.Label(p) lbl.show() widget = lbl hbox.pack_start(widget, gtk.FALSE, gtk.FALSE, 0) #end for return hbox # # Reacts on closing the window. # def __on_close(self, *args): self.destroy() if (self.__changed_flag and self.__close_handler): self.__close_handler() return gtk.TRUE # # Reacts on selecting an event. # def __on_select(self, src, row): self.__current_event = self.__events[row] summary = self.__current_event.get_summary() hours, mins, secs = self.__current_event.get_start().get_daytime() self.__edit_frame.set_sensitive(gtk.TRUE) self.__entry_summary.set_text(self.__current_event.get_summary()) self.__entry_hours.set_value(hours) self.__entry_mins.set_value(mins) rrules = self.__current_event.get_recurrences().get_rules() if (rrules): rrule = rrules[0] freq = rrule.get_frequency() interval = rrule.get_interval() times = rrule.get_count() self.__entry_rec_interval.set_value(interval) self.__entry_rec_freq.set_history(freq) self.__entry_rec_times.set_value(times) else: self.__entry_rec_interval.set_value(1) self.__entry_rec_freq.set_history(0) self.__entry_rec_times.set_value(1) #end if # # Reacts on changing text. # def __on_text_change(self, src): if (self.__events_blocked): return text = src.get_text() if (self.__current_event): self.__current_event.set_summary(text) self.__changed_flag = 1 self.__update_list() # # Reacts on changing time values. # def __on_time_change(self, src, field): if (self.__events_blocked): return value = src.get_value_as_int() cyear, cmonth, cday = self.__current_event.get_start().get_day() chour, cmin, csec = self.__current_event.get_start().get_daytime() if (field == 0): chour = value elif (field == 1): cmin = value dtstart = Date(cyear, cmonth, cday, chour, cmin, csec) self.__current_event.set_start(dtstart) self.__current_event.invalidate() self.__changed_flag = 1 self.__update_list() # # Reacts on changing recurrence values. # def __on_rec_change(self, src, field): if (self.__events_blocked): return interval = self.__entry_rec_interval.get_value_as_int() freq = self.__entry_rec_freq.get_history() times = self.__entry_rec_times.get_value_as_int() rrules = self.__current_event.get_recurrences().get_rules() if (not rrules): rrule = RRule() self.__current_event.get_recurrences().add_rule(rrule) else: rrule = rrules[0] # reset all delta values rrule.set_delta(RRule.DAY, 0) rrule.set_delta(RRule.MONTH, 0) rrule.set_delta(RRule.YEAR, 0) if (freq == 0): rrule.set_frequency(RRule.DAY) rrule.set_delta(RRule.DAY, 1) elif (freq == 1): rrule.set_frequency(RRule.WEEK) rrule.set_delta(RRule.DAY, 7) elif (freq == 2): rrule.set_frequency(RRule.MONTH) rrule.set_delta(RRule.MONTH, 1) elif (freq == 3): rrule.set_frequency(RRule.YEAR) rrule.set_delta(RRule.YEAR, 1) rrule.set_interval(interval) rrule.set_count(times) rrule.set_until(None) self.__current_event.invalidate() self.__changed_flag = 1 # # Reacts on pressing a command button. # def __on_button(self, src, cmd): if (self.__events_blocked): return year, month, day = self.__day if (cmd == self.__CMD_NEW): new_event = CalEvent() new_event.set_start(Date(year, month, day, 8, 0, 0)) self.__calendar.add_event(new_event) self.__display_events() row = self.__events.index(new_event) self.__listbox.set_cursor(row) self.__changed_flag = 1 elif (cmd == self.__CMD_REMOVE and self.__current_event): row = self.__listbox.get_cursor() self.__calendar.remove_event(self.__current_event) self.__current_event = None self.__edit_frame.set_sensitive(gtk.FALSE) self.__display_events() row = min(row, len(self.__events) - 1) if (row >= 0): self.__listbox.set_cursor(row) self.__changed_flag = 1 # # Displays the existing events. # def __display_events(self): year, month, day = self.__day events = self.__calendar.get_events(year, month, day) if (events): events.sort(events[0].daytime_comparator) self.__listbox.clear() self.__events = [] for e in events: hour, min, sec = e.get_start().get_daytime() daytime = formats.DAYTIMEFORMAT % vars() self.__listbox.append(daytime, e.get_summary()) self.__events.append(e) #end for # # Updates the events list. # def __update_list(self): summary = self.__current_event.get_summary() hour, min, sec = self.__current_event.get_start().get_daytime() daytime = formats.DAYTIMEFORMAT % vars() % vars() row = self.__listbox.get_cursor() self.__listbox.set(row, daytime, summary) self.__ensure_order() # # Makes sure that the events are always listed in chronological order. # def __ensure_order(self): if (self.__events): e = self.__events[0] l1 = tuple(self.__events) self.__events.sort(e.daytime_comparator) l2 = tuple(self.__events) if (l1 != l2): self.__display_events() row = self.__events.index(self.__current_event) self.__listbox.set_cursor(row) #end if # # Sets the day to edit. # def set_day(self, year, month, day, calendar): def unblock(self): self.__events_blocked = 0 self.__events_blocked = 1 self.__day = (year, month, day) self.__calendar = calendar self.__current_event = None self.__entry_summary.set_text("") self.__entry_hours.set_value(0) self.__entry_mins.set_value(0) date = formats.YEARDATEFORMAT % vars() self.__events_frame.set_label(_("Your appointments on %(date)s") % vars()) self.__edit_frame.set_sensitive(gtk.FALSE) self.__display_events() gtk.idle_add(unblock, self) # # Connects an action handler to the close action. # def connect_close(self, handler): self.__close_handler = handler gdeskcal-0.57.1/code/planner/categories.py0000644000175000017500000000150510025431055020457 0ustar seb128seb12800000000000000# # The categories used by Evolution. # CAT_BIRTHDAY = "Birthday" CAT_BUSINESS = "Business" CAT_COMPETITION = "Competition" CAT_FAVORITES = "Favorites" CAT_GIFTS = "Gifts" CAT_GOALS = "Goals/Objectives" CAT_HOLIDAY = "Holiday" CAT_HOLIDAY_CARDS = "Holiday Cards" CAT_HOT_CONTACTS = "Hot Contacts" CAT_IDEAS = "Ideas" CAT_INTERNATIONAL = "International" CAT_KEY_CUSTOMER = "Key Customer" CAT_MISCELLANEOUS = "Miscellaneous" CAT_PERSONAL = "Personal" CAT_PHONE_CALLS = "Phone Calls" CAT_STATUS = "Status" CAT_STRATEGIES = "Strategies" CAT_SUPPLIERS = "Suppliers" CAT_TIME_EXPENSES = "Time & Expenses" CAT_VIP = "VIP" CAT_WAITING = "Waiting" # # Icons for the categories. # ICONS = {CAT_BUSINESS: "business.png", CAT_FAVORITES: "favorites.png", CAT_MISCELLANEOUS: "misc.png", CAT_PHONE_CALLS: "phone.png" } gdeskcal-0.57.1/code/planner/iCalLoader.py0000644000175000017500000001564310025431055020341 0ustar seb128seb12800000000000000# # Parser for a subset of the iCalendar data format (RFC 2445). # from cal.Date import Date from cal.Calendar import Calendar from cal.CalEvent import CalEvent from cal.Recurrences import Recurrences from cal.RRule import RRule _WEEK = ["MO", "TU", "WE", "TH", "FR", "SA", "SU"] # # Case-insenisitive string matching. # def _match(a, b): return (a.upper() == b.upper()) def _parse_contentline(line): index = line.find(":") left = line[:index] value = line[index + 1:] index2 = left.find(";") if (index2 != -1): name = left[:index2] params = left[index2 + 1:] else: name = left params = "" return (name, _parse_params(params), value) def _parse_params(params): dict = {} for p in params.split(";"): if (p): name, value = p.split("=") dict[name.upper()] = value #end for return dict def _parse_stringlist(values): ret = [] parts = values.split(",") for p in parts: ret.append(p.strip()) return ret def _parse_intlist(values): ret = [] parts = _parse_stringlist(values) for p in parts: ret.append(int(p)) return ret # # Parses a time value. # def _parse_time(value): parts = value.split("T") is_utc = (value[-1] == "Z") year = int(parts[0][:4]) month = int(parts[0][4:6]) day = int(parts[0][6:8]) if (len(parts) > 1): hours = int(parts[1][:2]) mins = int(parts[1][2:4]) secs = int(parts[1][4:6]) else: hours = 0 mins = 0 secs = 0 return Date(year, month, day, hours, mins, secs, is_utc) # # Parses a list of weekdays. # def _parse_weekdays(values): weekdays = [] parts = _parse_stringlist(values) for p in parts: index = _WEEK.index(p[-2:]) if (len(p) > 2): week = int(p[:-2]) else: week = 0 if (week >= 0): weekdays.append(10 * week + index) else: weekdays.append(10 * week - index) #end for return weekdays # # Parser for loading data in the iCalendar format (RFC 2445). # class iCalLoader: def __init__(self): # stack of created objects self.__objects = [] # # Opens and parses the given iCalendar file. # def load(self, filename): fd = open(filename, "r") data = fd.read() fd.close() return self.__parse(data) def __parse(self, data): # unwrap long lines data = data.replace("\r\n ", "") data = data.replace("\n ", "") data = data.replace("\,", ",") lines = data.splitlines() lines.reverse() while (1): l = lines.pop() name, params, value = _parse_contentline(l) if (_match(name, "BEGIN") and _match(value, "VCALENDAR")): self.__parse_vcalendar(lines) break #end while return self.__objects[-1] # # Parses calendar data. # def __parse_vcalendar(self, lines): calendar = Calendar() self.__objects.append(calendar) while (1): l = lines.pop() name, params, value = _parse_contentline(l) if (_match(name, "END") and _match(value, "VCALENDAR")): break elif (_match(name, "BEGIN") and _match(value, "VEVENT")): self.__parse_vevent(lines) elif (_match(name, "VERSION")): pass elif (_match(name, "PRODID")): pass #end while #self.__objects.pop() # # Parses event data. # def __parse_vevent(self, lines): event = CalEvent() self.__objects[-1].add_event(event) self.__objects.append(event) rrule = event.get_recurrences() event.set_recurrences(rrule) while (1): l = lines.pop() name, params, value = _parse_contentline(l) tzid = params.get("TZID", "") if (_match(name, "END") and _match(value, "VEVENT")): break elif (_match(name, "DTSTART")): date = _parse_time(value) event.set_start(date) elif (_match(name, "DTEND")): date = _parse_time(value) event.set_end(date) elif (_match(name, "CATEGORIES")): categs = value.split(",") event.set_categories(categs) elif (_match(name, "SUMMARY")): event.set_summary(value) elif (_match(name, "LOCATION")): event.set_location(value) elif (_match(name, "RDATE")): date = _parse_time(value) rrule.add_date(date) elif (_match(name, "EXDATE")): date = _parse_time(value) rrule.add_exdate(date) elif (_match(name, "RRULE")): values = _parse_params(value) rrule.add_rule(self.__parse_rrule(values)) #end while self.__objects.pop() # # Parses a recurrency rule. # def __parse_rrule(self, values): rule = RRule() # [bysetpos, bymonths, byweeknrs, byyeardays, bymonthdays, bydays] bysets = [[]] * 6 for key, value in values.items(): if (_match(key, "FREQ")): if (_match(value, "YEARLY")): rule.set_delta(RRule.YEAR, 1) rule.set_frequency(RRule.YEAR) elif (_match(value, "MONTHLY")): rule.set_delta(RRule.MONTH, 1) rule.set_frequency(RRule.MONTH) elif (_match(value, "WEEKLY")): rule.set_delta(RRule.DAY, 7) rule.set_frequency(RRule.WEEK) elif (_match(value, "DAILY")): rule.set_delta(RRule.DAY, 1) rule.set_frequency(RRule.DAY) elif (_match(key, "INTERVAL")): rule.set_interval(int(value)) elif (_match(key, "COUNT")): rule.set_count(int(value)) elif (_match(key, "UNTIL")): date = _parse_time(value) rule.set_until(date) elif (_match(key, "BYDAY")): weekdays = _parse_weekdays(value) rule.set_by(RRule.DAY, weekdays) elif (_match(key, "BYMONTHDAY")): rule.set_by(RRule.MONTHDAY, _parse_intlist(value)) elif (_match(key, "BYYEARDAY")): rule.set_by(RRule.YEARDAY, _parse_intlist(value)) elif (_match(key, "BYWEEKNO")): rule.set_by(RRule.WEEKNO, _parse_intlist(value)) elif (_match(key, "BYMONTH")): rule.set_by(RRule.MONTH, _parse_intlist(value)) elif (_match(key, "BYSETPOS")): rule.set_by(RRule.SETPOS, _parse_intlist(value)) #end for return rule gdeskcal-0.57.1/code/planner/iCalWriter.py0000644000175000017500000000362010025431055020377 0ustar seb128seb12800000000000000# # Class for serializing a calendar to iCalendar format (RFC 2445). # class iCalWriter: def __init__(self): pass def save(self, filename, cal): print "saving to ", filename data = self.__write_calendar(cal) # only save when there is data so the user does not lose data due # because bugs if (data): fd = open(filename, "w") fd.write(data) fd.close() def __write_calendar(self, cal): out = "" out += "BEGIN:VCALENDAR\r\n" out += "PROGID:-//www.pycage.de//NONSGML gDeskCal//EN\r\n" out += "VERSION:2.0\r\n" for e in cal.get_all_events(): out += self.__write_event(e) out += "END:VCALENDAR\r\n" return out def __write_event(self, event): out = "" out += "BEGIN:VEVENT\r\n" out += "DTSTART:" + self.__write_time(event.get_start()) + "\r\n" out += "SUMMARY:" + event.get_summary() + "\r\n" recs = event.get_recurrences() if (recs): for r in recs.get_rules(): out += "RRULE:" + self.__write_rrule(r) + "\r\n" #end if out += "END:VEVENT\r\n" return out def __write_time(self, t): year, month, day = t.get_day() hour, min, sec = t.get_daytime() part1 = "%(year)04d%(month)02d%(day)02d" % vars() part2 = "%(hour)02d%(min)02d%(sec)02d" % vars() return part1 + "T" + part2 def __write_rrule(self, rrule): interval = rrule.get_interval() freq = rrule.get_frequency() count = rrule.get_count() #by = rrule.get_by() out = "" out += "FREQ=" + ["DAILY", "WEEKLY", "MONTHLY", "YEARLY"][freq] + ";" out += "INTERVAL=" + str(interval) + ";" out += "COUNT=" + str(count) #print out return out gdeskcal-0.57.1/code/planner/__init__.py0000644000175000017500000000000010025431055020056 0ustar seb128seb12800000000000000gdeskcal-0.57.1/code/planner/Planner.py0000644000175000017500000001111010025431055017722 0ustar seb128seb12800000000000000from code.Observable import Observable from iCalLoader import iCalLoader from iCalWriter import iCalWriter from code import formats from Popup import Popup from cal.Calendar import Calendar from CalEditor import CalEditor from code.FileWatcher import FileWatcher from code import sfrmapper from code import configvalues as conf from code import values from code import errormessage import gtk import os # # Class for day planning functionality. # class Planner(Observable): OBS_CHANGE_CALENDAR = 0 def __init__(self): self.__local_numerals = 0 #self.__caleditor = CalEditor() self.__popup = Popup() self.__calendars = {} self.__my_calendar = None #self.__caleditor.connect_close(self.__propagate_calendar_change) # try loading Evolution's calendar file evocal = os.path.expanduser(values.EVOLUTION_CALENDAR) filewatcher = FileWatcher(evocal) filewatcher.add_observer(self.__on_calendar_change) # try loading my calendar file mycal = os.path.join(os.environ[values.DESKCALUSERHOME], values.MY_CALENDAR) self.__calendars[mycal] = Calendar() #filewatcher = FileWatcher(mycal) #filewatcher.add_observer(self.__on_calendar_change) self.__on_calendar_change(None, None, mycal) self.__my_calendar = mycal # # Reacts on changes to calendar files. # def __on_calendar_change(self, src, cmd, file): if (not os.path.exists(file)): return try: self.__calendars[file] = iCalLoader().load(file) except: errormessage.error(_("Invalid calendar file %(file)s.") % vars()) self.__propagate_calendar_change(dontsave = 1) # # Propagates changes of calendar data. # def __propagate_calendar_change(self, dontsave = 0): self.update_observer(self.OBS_CHANGE_CALENDAR) if (not dontsave): self.__save_calendars() # # Saves the calendars. # def __save_calendars(self): # save only the gDeskCal calendar filename = self.__my_calendar cal = self.__calendars[self.__my_calendar] try: iCalWriter().save(filename, cal) pass except: pass # # Finds a good position for the popup window. # def __find_position(self, calx, caly, calwidth, calheight): w, h = self.__popup.size_request() if (caly + calheight + h < gtk.gdk.screen_height()): y = caly + calheight + 4 if (calx + w < gtk.gdk.screen_width()): x = calx else: x = calx + calwidth - w else: y = caly if (calx + calwidth + w < gtk.gdk.screen_width()): x = calx + calwidth + 4 else: x = calx - w - 4 return (x, y) # # Returns the events of all active calendars. # def get_events(self, year, month, day): events = [] for cal in self.__calendars.values(): events += cal.get_events(year, month, day) # sort events by time if (events): e = events[0] events.sort(e.daytime_comparator) return events # # Displays a popup window with events. # def popup(self, year, month, day, calwindow): events = self.get_events(year, month, day) if (not events): self.close_popup() return offx, offy = calwindow.get_position() w, h = calwindow.size_request() title = formats.DATEFORMAT % vars() if (self.__local_numerals): title = sfrmapper.map(title, sfrmapper.LOCAL) self.__popup.set_title(title) self.__popup.show(year, month, day, events) x, y = self.__find_position(offx, offy, w, h) self.__popup.move(x, y) # # Closes the popup window. # def close_popup(self): self.__popup.hide() # # Displays an editor for events. # def edit(self, year, month, day): caleditor = CalEditor() caleditor.connect_close(self.__propagate_calendar_change) caleditor.set_day(year, month, day, self.__calendars[self.__my_calendar]) caleditor.show() # # Configures the planner. # def set_config(self, config): # whether we use local numerals self.__local_numerals = config.get([conf.BEHAVIOUR, conf.NATIONAL_NUMERALS]) gdeskcal-0.57.1/code/planner/Popup.py0000644000175000017500000000761310025431055017443 0ustar seb128seb12800000000000000import categories from code import values import gtk import os # # Class for appointments popup window. # class Popup(gtk.Window): def __init__(self): gtk.Window.__init__(self, gtk.WINDOW_POPUP) #self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("lightyellow")) frame = gtk.Frame() frame.show() frame.set_shadow_type(gtk.SHADOW_OUT) self.add(frame) vbox = gtk.VBox() vbox.show() frame.add(vbox) titleframe = gtk.Viewport() titleframe.show() #titleframe.modify_bg(gtk.STATE_NORMAL, # gtk.gdk.color_parse("yellow")) titleframe.set_shadow_type(gtk.SHADOW_OUT) vbox.add(titleframe) self.__title = gtk.Label("") self.__title.show() titleframe.add(self.__title) self.__vbox = gtk.VBox() self.__vbox.show() vbox.pack_start(self.__vbox, gtk.TRUE, gtk.TRUE, 0) def __create_item(self, etime, text, location, categs): # escape certain characters for Pango text = text.replace("&", "&") text = text.replace("<", "<") text = text.replace(">", ">") text = text.replace("\\\"", "\"") location = location.replace("&", "&") location = location.replace("<", "<") location = location.replace(">", ">") location = location.replace("\\\"", "\"") item = gtk.HBox() item.show() align = gtk.Alignment(1, 0.5, 0, 0) align.show() item.pack_start(align, gtk.FALSE, gtk.FALSE, 10) lbl = gtk.Label("") lbl.set_markup("%(etime)s" % vars()) lbl.show() align.add(lbl) align = gtk.Alignment(0, 0.5, 0, 0) align.show() item.pack_start(align, gtk.TRUE, gtk.TRUE, 8) lbl = gtk.Label("") lbl.set_justify(gtk.JUSTIFY_LEFT) lbl.set_markup("%(text)s" % vars()) lbl.show() align.add(lbl) if (location): align = gtk.Alignment(1, 0.5, 0, 0) align.show() item.pack_start(align, gtk.FALSE, gtk.FALSE, 4) lbl = gtk.Label("") lbl.set_justify(gtk.JUSTIFY_LEFT) lbl.set_markup("[%(location)s]" % vars()) lbl.show() align.add(lbl) for c in categs: icon = categories.ICONS.get(c) if (not icon): continue imgfile = os.path.join(os.environ[values.DESKCALHOME], values.GFXDIR, icon) img = gtk.Image() img.show() img.set_from_file(imgfile) item.pack_end(img, gtk.FALSE, gtk.FALSE, 2) #end for return item def set_title(self, title): self.__title.set_markup("" + title + "") def show(self, year, month, day, events): # remove old event items for c in self.__vbox.get_children(): self.__vbox.remove(c) # display the given events for e in events: estart = e.get_occurrence(year, month, day) if (estart): shour, smin, ssec = estart.get_daytime() if (estart.has_daytime()): etime = "%(shour)02d:%(smin)02d" % vars() else: etime = "--:--" summary = e.get_summary() location = e.get_location() categs = e.get_categories() sep = gtk.HSeparator() sep.show() self.__vbox.pack_start(sep, gtk.FALSE, gtk.FALSE, 0) item = self.__create_item(etime, summary, location, categs) self.__vbox.pack_start(item, gtk.FALSE, gtk.FALSE, 8) #end for # this does not resize the window to 10, 10 but to its minimal size # request self.resize(10, 10) gtk.Window.show(self) gdeskcal-0.57.1/code/planner/cal/0002755000175000017500000000000010025431055016520 5ustar seb128seb12800000000000000gdeskcal-0.57.1/code/planner/cal/Calendar.py0000644000175000017500000000147310025431055020606 0ustar seb128seb12800000000000000from CalEvent import CalEvent # # Class for calendar objects. # class Calendar: def __init__(self): # the events in this calendar self.__events = {} # # Adds a new event to this calendar. # def add_event(self, event): self.__events[event] = 1 # # Removes the given event. # def remove_event(self, event): del self.__events[event] # # Returns a list of events occuring on the given day. # def get_events(self, year, month, day): events = [] for e in self.__events.keys(): if (e.occurs_on(year, month, day)): events.append(e) #end for return events # # Returns a list of all events. # def get_all_events(self): return self.__events.keys() gdeskcal-0.57.1/code/planner/cal/CalEvent.py0000644000175000017500000001140210025431055020567 0ustar seb128seb12800000000000000from Date import Date from Recurrences import Recurrences # # Class for calendar events. # class CalEvent: def __init__(self): # (y,m,d) -> date self.__occur_table = {} # the recurrence rules of this event self.__recs = Recurrences() # start and end time self.__dtstart = Date(1970, 1, 1, 0, 0, 0) self.__dtend = Date(1970, 1, 1, 0, 0, 0) self.__summary = "" self.__location = "" self.__description = "" self.__categories = [] self.__current_year = 0 # # Computes the recurrences of this event for the given year. # def __compute_recurrences(self, year): self.__current_year = year self.__occur_table = {} recs = [] if (self.__recs): # get rule-based recurrences recs = self.__recs.get_recurrences(self.get_start(), year) # get additional recurrences for date in self.__recs.get_dates(): ryear, rmonth, rday = date.get_day() if (not (year - 1 <= ryear <= year)): continue recs.append(date.copy()) #end for else: recs.append(self.get_start()) recs = self.__bloat_recurrences(recs, year) for r in recs: self.__occur_table[r.get_day()] = r # # Inflates every recurrence to occupy as much time as the duration of this # events is. # def __bloat_recurrences(self, recs, year): duration = self.get_duration() bloated_recs = [] for date in recs: bloated_recs.append(date.copy()) dsecs = duration % 60 duration /= 60 dmins = duration % 60 duration /= 60 dhours = duration % 24 duration /= 24 ddays = duration end_date = date.copy() end_date.add_time(0, 0, ddays, dhours, dmins, dsecs) new_date = date.copy() new_date.add_time(0, 0, 1) # exclude the last day since the iCal specification says so loop_counter = 0 while (new_date < end_date): y, m, d = new_date.get_day() nd = Date(y, m, d) bloated_recs.append(nd) new_date = new_date.copy() new_date.add_time(0, 0, 1) # work around a Python 2.2.3 bug on FreeBSD # (thanks, Tero Koskinen) loop_counter += 1 if (loop_counter > 10000): print "Your version of Python has a bug.\nCalendar " \ "events with recurrences will not be available." break #end while #end for return bloated_recs # # Returns whether this event occurs on the given day. # def occurs_on(self, year, month, day): if (year != self.__current_year): self.__compute_recurrences(year) return self.__occur_table.has_key((year, month, day)) # # Returns the occurrence (i.e. start time) of this event on the given day. # If day and month are omitted, a list of occurrences in the given year # will be returned. # def get_occurrence(self, year, month = 0, day = 0): if (year != self.__current_year): self.__compute_recurrences(year) if (not month): return self.__occur_table.values() else: return self.__occur_table.get((year, month, day), None) # # Returns the duration of this event in seconds. # def get_duration(self): duration = self.get_start().get_interval(self.get_end()) return duration def set_recurrences(self, rrule): self.__recs = rrule def get_recurrences(self): return self.__recs def set_start(self, date): self.__dtstart = date def get_start(self): return self.__dtstart def set_end(self, date): self.__dtend = date def get_end(self): return self.__dtend def set_summary(self, text): self.__summary = text def get_summary(self): return self.__summary def set_location(self, text): self.__location = text def get_location(self): return self.__location def set_description(self, text): self.__description = text def get_description(self): return self.__description def set_categories(self, categs): self.__categories = categs def get_categories(self): return self.__categories # # Forces the recomputation of recurrences. # def invalidate(self): self.__current_year = 0 def day_comparator(self, e1, e2): return cmp(t1, t2) def daytime_comparator(self, e1, e2): t1 = e1.get_start().get_daytime() t2 = e2.get_start().get_daytime() return cmp(t1, t2) gdeskcal-0.57.1/code/planner/cal/Date.py0000644000175000017500000001033510025431055017747 0ustar seb128seb12800000000000000import time import calendar # # Class for encapsulating date objects. # class Date: UNSET = -1 def __init__(self, year, month, day, hours = -1, mins = -1, secs = -1, is_utc = 0): self.__year = year self.__month = month self.__day = day self.__hours = hours self.__mins = mins self.__secs = secs if (is_utc): self.__utc_to_localtime() def __cmp__(self, other): return cmp(self.get_day(), other.get_day()) def __repr__(self): return str(self.get_day()) + str(self.get_daytime()) def __hash__(self): return hash(repr(self)) # # Converts this UTC date to local time. # def __utc_to_localtime(self): secs = calendar.timegm(self._to_time()) localtime = time.localtime(secs) localsecs = calendar.timegm(localtime) diff = int(localsecs - secs) self.add_time(0, 0, 0, 0, 0, diff) def copy(self): clone = Date(self.__year, self.__month, self.__day, self.__hours, self.__mins, self.__secs) return clone def get_day(self): return (self.__year, self.__month, self.__day) def get_daytime(self): return (self.__hours, self.__mins, self.__secs) def has_daytime(self): return (self.__hours != self.UNSET) def _to_time(self): year = self.__year month = self.__month day = self.__day h = self.__hours m = self.__mins s = self.__secs if (h != self.UNSET): value = time.strptime("%(year)d %(month)d %(day)d " "%(h)d %(m)d %(s)d" % vars(), "%Y %m %d %H %M %S") else: value = time.strptime("%(year)d %(month)d %(day)d" % vars(), "%Y %m %d") return value # # Adds a given amount of time to the given date. Amounts may be negative. # def add_time(self, dyear, dmonth, dday, dhour = 0, dmin = 0, dsec = 0): current_time = self._to_time() year = current_time[0] month = current_time[1] day = current_time[2] julian_day = current_time[7] if (calendar.isleap(year)): ndays = 366 else: ndays = 365 julian_day += dday while (julian_day > ndays): julian_day -= ndays year += 1 while (julian_day < 1): julian_day += ndays year -= 1 month += dmonth while (month > 12): month -= 12 year += 1 while (month < 1): month += 12 year -= 1 year += dyear if (dday): t = time.strptime("%(year)d %(julian_day)d" % vars(), "%Y %j") elif (dyear): t = time.strptime("%(year)d %(month)d %(day)d" % vars(), "%Y %m %d") else: t = time.strptime("%(year)d %(month)d %(day)d" % vars(), "%Y %m %d") #t = time.strptime("%(year)d %(month)d %(julian_day)d" % vars(), # "%Y %m %j") self.__year = t[0] self.__month = t[1] self.__day = t[2] if (dhour or dmin or dsec): self.__add_daytime(dhour, dmin, dsec) def __add_daytime(self, dhour, dmin, dsec): ch, cm, cs = self.get_daytime() ch += dhour cm += dmin cs += dsec while (cs >= 60): cs -= 60 cm += 1 while (cs < 0): cs += 60 cm -= 1 while (cm >= 60): cm -= 60 ch += 1 while (cm < 0): cm += 60 ch -= 1 while (ch >= 24): ch -= 24 self.add_time(0, 0, 1) while (ch < 0): ch += 24 self.add_time(0, 0, -1) self.__hours = ch self.__mins = cm self.__secs = cs # # Returns the time interval to another date in seconds. # def get_interval(self, other): t1 = self._to_time() t2 = other._to_time() diff = time.mktime(t2) - time.mktime(t1) return int(diff) gdeskcal-0.57.1/code/planner/cal/__init__.py0000644000175000017500000000000010025431055020615 0ustar seb128seb12800000000000000gdeskcal-0.57.1/code/planner/cal/Recurrences.py0000644000175000017500000001617010025431055021355 0ustar seb128seb12800000000000000from Date import Date import calendar # # Class for recurrences of events. # class Recurrences: DAY = 0 WEEK = 1 MONTH = 2 YEAR = 3 def __init__(self): self.__dates = {} self.__exdates = {} self.__rules = [] def add_date(self, date): self.__dates[date] = 1 def remove_date(self, date): del self.__dates[date] def get_dates(self): return self.__dates.keys() def add_exdate(self, date): self.__exdates[date] = 1 def remove_exdate(self, date): del self.__exdates[date] def get_exdates(self): return self.__exdates.keys() def is_excluded(self, date): y, m, d = date.get_day() tmp = Date(y, m, d, 0, 0, 0) return self.__exdates.has_key(tmp) def add_rule(self, rule): self.__rules.append(rule) def remove_rule(self, rule): self.__rules.remove(rule) def get_rules(self): return self.__rules # # Returns a list of all recurrences in the given year. # # TODO: Rewrite! This method is ugly. # def get_recurrences(self, dtstart, of_year): all_recs = [] syear, smonth, sday = dtstart.get_day() if (not self.get_rules()): # include start date if available if (syear and syear == of_year): all_recs.append(dtstart.copy()) # for every rule for rule in self.get_rules(): freq = rule.get_frequency() count = rule.get_count() until = rule.get_until() recs = [] # include start date if available if (syear): recs.append(dtstart.copy()) # compute all recurrences next = dtstart.copy() while (1): year, month, day = next.get_day() # check termination conditions if (year > of_year): break # process daily events if (freq == rule.DAY and year <= of_year): recs.append(next.copy()) # process weekly events elif (freq == rule.WEEK and year <= of_year): weekdays = self.__make_weekdays(next, rule.get_by(rule.DAY)) for w in self.__pos_filter(weekdays, rule.get_by(rule.SETPOS)): y, m, d = w.get_day() if (y <= of_year): recs.append(w.copy()) #end for # process monthly events elif (freq == rule.MONTH and year <= of_year): monthdays = self.__make_monthdays(next, rule.get_by(rule.MONTHDAY), rule.get_by(rule.DAY)) for md in self.__pos_filter(monthdays, rule.get_by(rule.SETPOS)): y, m, d = md.get_day() if (y <= of_year): recs.append(md.copy()) #end for # process yearly events elif (freq == rule.YEAR and year <= of_year): recs.append(next.copy()) #end if # add time interval next.add_time(rule.get_delta(rule.YEAR), rule.get_delta(rule.MONTH), rule.get_delta(rule.DAY)) #end while # filter out unwanted events recs.sort() cnt = 0 prev = None for date in recs: # ignore duplicates if (prev and prev == date): continue # check termination conditions elif ((count and cnt == count) or (until and date > until)): break elif (date < dtstart): continue # remove excluded recurrences elif (self.is_excluded(date)): continue # we need to take the recurrences of the year before, too, # so that bloating events works correctly over a year change if (of_year - 1 <= date.get_day()[0] <= of_year): all_recs.append(date.copy()) cnt += 1 prev = date #end for #end for return all_recs def __pos_filter(self, set, bypos): if (not bypos): return set ret = [] for p in bypos: if (p > 0): p -= 1 ret.append(set[p]) #end for return ret # # Converts the given weekday into a list of monthdays. # def __weekday2monthdays(self, year, month, day): if (day < 0): reverse = 1 day = -day else: reverse = 0 mrange = calendar.monthrange(year, month)[1] weekday = day % 10 weekno = (day - weekday) / 10 if (weekno == 0): weeks = [0, 1, 2, 3, 4] else: weeks = [weekno - 1] tmp = range(7) * 2 if (reverse): firstday = 7 - calendar.weekday(year, month, mrange) tmp.reverse() oneweek = tmp[firstday:firstday + 7] else: firstday = calendar.weekday(year, month, 1) oneweek = tmp[firstday:firstday + 7] ret = [] for w in weeks: index = (w * 7 + oneweek.index(weekday)) + 1 if (reverse): index = mrange - index if (0 < index <= mrange): ret.append(index) return ret # # TODO: implement # def __weekno2yeardays(self, weekno): return [] # # Returns the specified days. # def __make_weekdays(self, date, bydays): if (not bydays): return [date.copy()] year, month, day = date.get_day() weekday = calendar.weekday(year, month, day) ret = [] for d in bydays: diff = d - weekday new_date = date.copy() new_date.add_time(0, 0, diff) ret.append(new_date) return ret # # Returns the specified month days. # def __make_monthdays(self, date, bymonthdays, bydays): if (not bymonthdays and not bydays): return [date.copy()] year, month, day = date.get_day() if (not bymonthdays): bymonthdays = [] for d in bydays: bymonthdays += self.__weekday2monthdays(year, month, d) #end if mrange = calendar.monthrange(year, month)[1] firstday = Date(year, month, 1, 0, 0, 0) lastday = Date(year, month, mrange, 0, 0, 0) ret = [] for d in bymonthdays: if (0 < d <= mrange): day = firstday.copy() day.add_time(0, 0, d - 1) ret.append(day) elif (-mrange <= d < 0): day = lastday.copy() day.add_time(0, 0, d + 1) ret.append(day) #end for return ret gdeskcal-0.57.1/code/planner/cal/RRule.py0000644000175000017500000000205710025431055020125 0ustar seb128seb12800000000000000# # Class for a recurrence rule. # class RRule: DAY = 0 WEEK = 1 MONTH = 2 YEAR = 3 SECOND = 4 MIN = 5 HOUR = 6 MONTHDAY = 7 YEARDAY = 8 WEEKNO = 9 SETPOS = 10 def __init__(self): self.__interval = 1 self.__freq = None self.__count = 0 self.__until = None self.__deltas = {} self.__by = {} def set_interval(self, interval): self.__interval = interval def get_interval(self): return self.__interval def set_frequency(self, freq): self.__freq = freq def get_frequency(self): return self.__freq def set_count(self, c): self.__count = c def get_count(self): return self.__count def set_until(self, date): self.__until = date def get_until(self): return self.__until def set_delta(self, key, value): self.__deltas[key] = value def get_delta(self, key): return self.__deltas.get(key, 0) * self.__interval def set_by(self, key, value): self.__by[key] = value def get_by(self, key): return self.__by.get(key, []) gdeskcal-0.57.1/data/0002755000175000017500000000000010025431055014321 5ustar seb128seb12800000000000000gdeskcal-0.57.1/data/config.xml0000644000175000017500000000052210025431055016305 0ustar seb128seb12800000000000000 gdeskcal-0.57.1/data/format.xml0000644000175000017500000000673310025431055016342 0ustar seb128seb12800000000000000 gdeskcal-0.57.1/data/format.xml~0000644000175000017500000000664610025431055016543 0ustar seb128seb12800000000000000 gdeskcal-0.57.1/data/gfx/0002755000175000017500000000000010025431055015105 5ustar seb128seb12800000000000000gdeskcal-0.57.1/data/gfx/phone.png0000644000175000017500000000247010025431055016725 0ustar seb128seb12800000000000000PNG  IHDRw=bKGD pHYs  ~tIME K.IDATx]lUwvf;j--HBhhb b"!CJ}"1& Ϟ>/ι?)Zs|hx&N$T2"ex a/BCCǃW nISVEvA8HG)V]ɁB!sҼ}]Olu]/v:E,V54(GBn,j/^\6s%%|qk+OMr,&niْڭ\T<"GrrtT`MhyFhf'̾}rMc#J].(Q&]R* rShB'Ntv"KidWSQEge%^ܼ n NZY@)1߮ӧTWkVVȦZQÊ/sb _r]0 p+ $AhP(Rp|c*l0JLC媁m.d4J,`Q 렳4 4A3r7x$gR PY!+̲kȔ׋4 h`tw_jz"qiL]09IXRŠȒp&I24l¡C(ZCQd&eTUxzUU= `=XAK&]Iq:)fvQ$FFC)&T[@8l'cR<ύ;wnݲe˕2YniQk%G*iBxח?tAR*DS)܌GF#~yvxׁv(eLLLsZ{~W{'e³sbJD!H&$Bz ˺ݵe]b}px1`c=]yd̲:R6(g8ҽ˷m+ڻ{$eYqj [sIL%ԯ.{=Zxfܥ 㳟 "˚9msiff斦iS *KP +=~zu7vohiϝ;w=NlذSU(pHis9K97V={^M4  6s )g}2, i|P~Aw3055S2LIENDB`gdeskcal-0.57.1/data/gfx/misc.png0000644000175000017500000000237710025431055016555 0ustar seb128seb12800000000000000PNG  IHDRw=bKGD pHYs  ~tIME)0ǙA6IDATx_hSw?M4jڤmj)Vu}pRTP,XŇY6GAެcleC&cRdLv[]kĵd1o$᦮={|9gUTTTd2 j@G;NG\)Ȍ*e@v3u  }vmiwT*T{bhTxV-J熀ҵtzDv v`' J1҃#G$y6)X^.4қ(\_ fyߟp])dOe0 fgí ^A(C~q&d۷Tb$WUIrW4kKN.pxyJz`υa瀣 m8#-@O4{7iz B$IM7$J牻*RXcZRNpMOariHUa5F[΁Q-5:1`/`,?jSTѻ{Y EĴUjLbZ%35H 3Of2owW=T[-]^WXZ-F[qwųGܸx#C)8@]4هsBĶkk  AR4U^yԊ(ag;$鳳ҬS{DžϠä#7B9] o/4nt n5 vGS,'#G7CvM=C㽧/N+nr> v+O2=3< *|e=MMh 7y{ M:IENDB`gdeskcal-0.57.1/data/gfx/business.png0000644000175000017500000000176710025431055017457 0ustar seb128seb12800000000000000PNG  IHDRw=bKGD pHYs.!.![tIME97YhIDATxMhe&&-)-֘C Тx`A<-RUPQ x?Ҩh4vg̼v iS/>˼?}:0oœW|| 'N 'WOao) P!PEQNh1i}]-\Yh`-R8%`9}`SBAS5,Mqe-mUBH!; ^Z!f; sK0DT$! iD#Z# yk2 eHT7@6 0|*n Hf-+0!s?<{l{۸huZaݳ!hk3E PUCLeKǁ^hVgE"/ e5-@]rm3A,N1^, Y g` V G&#7t`ޙ ͲluTfʹ]ϑX~.s@6;q칷ԣ{_, N0 k]WtT[- 7;g΁I1Oi. Y"avq? "+=+_2 :2{o,&sG^uP S,x|>"t 0!0y&c.3:1AznfCOpql>J$$r`[hzMh2HKQ0t(a%O1Fpz"Fui/ZN( aQ&?@4wE# #C1 "0>82Ahy!-f -zҚ tCX'0_BH+0Vpw{ߗـ 8}'tttJHEd>66FiinnP(y|>n7qwq&nqmd \-++c׮][asff},#jժC$^իWd]7@<iQIa4MC$6lؐ/^ٗ/_fƍ_^/$177nQc[{Ys8~5y|M$IBt'O 0@ ˗/#Id{ȋlڴf˲,lvD"R]]!ӧqKv݋I@4N _ʕ+ܸq#G ݗ@ @SSe̵ߺu먯Y] 9~D"AsssVMMMt002aVa!v;+&ª*:oq5~TnOLǿ~wHF2cnOOp ATopph4b<ׯ'<5ñNsgмnLعomoY`Cz*4n$Gz5ׯ_G:t{H$"I\pnJ>s(+9Bqq1?<. zG#iUZ[[),,DUU"zfh^7Vb˖-,.G76Eq\n$p8LMM Νĉ9^(*((x4q ߽w7iNO\v5Gm۷n$Ibdd$=餶P(Dgg'. ]WđvxSfffhhhvv$ܹsqoN2@fϓe8ÖCTU-@~keD"&ܹ۷y!Fypp˥KxBEQD"|b19qd2P(\L&iooiYx"Nf~:zD"Amm-]]]|>K2 A4t]G_@m$iӦ tvvzq@ּFtZ#TCrhmmŋ[[hY6}WVhhhȉ<nn݊)2%N܌(9sz))d\.;DjYXҲ={6M޽;Ǹ @ <]7gItܪ06Et:&H:yډL=;vܵkWa4RիWs166Faa!.kcIٳgO:,PܦfuZϋn  bf*Bgg'դR)$:,GVwޗT5d>fcGRZZJ[[[Ẁٿ?W\Q-(r(DOernn޼ItzvvލattEI&u;ax'c9>,Hh``qBp8p:(B"@חb#G΢Ν;D"Ƕm>!L$O͵k  B\.0uuu|>~?2$SC7xNb``͛@+f/**299I__ŤR)֯_᰸o8Μ9C8lٲRTUMB㍥8l_Jee<22\.(++ 8%Jay駭|P&( ,s-$sss\.^{5Cyy9~ߏa:u~Px@0vT@ brr]׹ub10 (a Ix gdeskcal-0.57.1/skins/default/0002755000175000017500000000000010025431055016163 5ustar seb128seb12800000000000000gdeskcal-0.57.1/skins/default/bg.png0000644000175000017500000000127710025431055017266 0ustar seb128seb12800000000000000PNG  IHDRbKGD pHYs  ~tIME@yLIDATx!rP@oOQvQf*J n#fHX*1Jg:UCH#=;k6c1׷>Ү뫧c1l!AH`!AH`!AH`!AH`!AH`!AH`zjڃfv%8_yn}> 0M%O8÷U8Nc B $0 B $0 B $0 B $0 B $0 B $0 B $0 B $0 B $0 B $0 B $0 B $0 B $0 B $0 B $0 B $0 B $0 B $0 B $0 B $0 B $0 B $0 B $0 B $0 BρMӴ 򼹘.V_^wIRؽA3IENDB`gdeskcal-0.57.1/skins/default/bg.xcf0000644000175000017500000004456510025431055017271 0ustar seb128seb12800000000000000gimp xcf fileJ!BB(h!#Layer3     8TP\& rBj<===================================================;<===================================================;<===================================================;==<==================================================<? ? ?  ? ? ?  ==============================================<==============================================<==============================================<<==============================================>= @? @? @? ? @? @? @? ?222JlZ6-Layer2M      '! !cs +K ========================================================================================================================================================================================================================        ================================================================================================================================================================================================        aaaalZ6-Layer1     !!I]Ii"*>1.99=>>*BEEE=================================================================================~~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV~}|zyxvutrqonmkjigfecba_^][ZYWV>==========================>==========================>==========================USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!  USRPONLKJHGFDCB@?><;:8754310/-,+)('%$#!   gdeskcal-0.57.1/skins/default/today.png0000644000175000017500000000120410025431055020004 0ustar seb128seb12800000000000000PNG  IHDRw=bKGD pHYs  ~tIME IDATxջkTA]#F!-TbNK* k-I#XhHPD##GBBݝy`ݹ|߹gΜ_A?p&'wp[]>c% [P Z3TO ~n`_Mfrev\Ɍ%,r0؄Q$_J-/o= A'NaH$TX5ΡHg3]4"1I\JdӼ'ݒj 0چq_1\ٴCi<^y.b:Jt3ZHs&~]!f٤X\ GmآQlҡK{Cs6x.Tŀ "& jxvmPxzhh'.my .jbe%]|M~\ VhY gdeskcal-0.57.1/skins/miderat/bg.xcf0000644000175000017500000022106210025431055017257 0ustar seb128seb12800000000000000gimp xcf fileBЗBЗgO` New Layer#1     +NOg ANzNNNNNNN@../.-./.,./.,./0.+./0.+./0.*./0.*./0.)./0.). /0.(. /0.(. /01.(. /01.'. /01.'. /01.&. /01.&. /01.%. /01.%. /01.$. /012.$. /012.#. /012.#. /012.". /012."./012.!. /012.!./012. ./0123. ./0123../0123../0123../0123../0123../0123../0123../0123../01234../01234../01234../01234../01234../01234../012345../012345@.010-010,010,0120+0120+0120*0120*0120*0 120)0 120)0 120(0 1230(0 1230'0 1230'0 1230&0 1230&0 1230%0 1230%0 1230$0 1230$0 12340#0 12340#0 12340"0 12340"0 12340!0 12340!012340 012340 0123450012345001234500123450012345001234500123450012345001234560012345600123456001234560012345600123456001234567001234567@8665543 3 2 1 1 0 0 / . . - - , + + * ) ( ' & & % $ # " !              [?/01234567889:;<==>?@ABCDEFG/001234567889:;<<=>?@ABCDEFGG00123456789:;;<=>?@ABCDEFFGH00123456789:;;<=>?@ABCDEEFGHI00123456789::;<=>?@ABCDEEFGHIJ00123456789::;<=>?@ABCDDEFGHIJK001234567899:;<=>?@ABCCDEFGHIJKL0011234567889:;<=>?@ABCCDEFGHIJKLM011234567889:;<=>?@ABBCDEFGHIJKLLM1123456789:;<=>?@AABCDEFGHIJKLLMN1123456789:;<=>?@@ABCDEFGHIJKKLMNO1123456789:;<=>?@@ABCDEFGHIJJKLMNOP1123456789:;<=>??@ABCDEFGHIJJKLMNOPQ1123456789:;<=>>?@ABCDEFGHIIJKLMNOPQR1123456789:;<=>>?@ABCDEFGHHIJKLMNOPQRS1123456789:;<==>?@ABCDEFGGHIJKLMNOPQRRS11223456789:;<<=>?@ABCDEFGGHIJKLMNOPQQRST1223456789:;;<=>?@ABCDEFFGHIJKLMNOPQQRSTU223456789:;;<=>?@ABCDEEFGHIJKLMNOPPQRSTTU223456789::;<=>?@ABCDEEFGHIJKLMNOOPQRSTTUV2234567899:;<=>?@ABCDDEFGHIJKLMNOOPQRSSTUVW2234567899:;<=>?@ABCCDEFGHIJKLMNNOPQRRSTUVWW2234567889:;<=>?@ABCCDEFGHIJKLMMNOPQRRSTUVWWX2233456789:;<=>?@ABBCDEFGHIJKLLMNOPQQRSTUVVWXY2233456789:;<=>?@AABCDEFGHIJKLLMNOPQQRSTUUVWXYZ233456789:;<=>?@@ABCDEFGHIJKKLMNOPPQRSTUUVWXYZ[33456789:;<=>?@@ABCDEFGHIJJKLMNOPPQRSTTUVWXYZ[\33456789:;<=>??@ABCDEFGHIJJKLMNOOPQRSSTUVWXYZ[\]33456789:;<=>>?@ABCDEFGHIIJKLMNOOPQRSSTUVWXYZ[\]]33456789:;<=>>?@ABCDEFGHHIJKLMNNOPQRRSTUVWXYZ[\\]^33456789:;<==>?@ABCDEFGHHIJKLMNNOPQQRSTUVWXYZ[\\]^_33456789:;<<=>?@ABCDEEFGHIJKLLMNOPQQRSTUVWXYZ[[\]^_`334456789:;<<=>?@ABCDDEFGHIJJKLMNOPPQRSTUVWXYZZ[\]^_`a34456789:;;<=>?@ABCDDEFGGHIJKLMNOOPQRSTUVWXYZZ[\]^_`ab34456789::;<=>?@ABCCDEFGGHIJKLMNNOPQRSTUVWXYYZ[\]^_`abc44567899:;<=>?@ABCCDEFFGHIJKLMNNOPQRSTUVWXXYZ[\]^_`abcc44567899:;<=>?@ABBCDEFFGHIJKLMMNOPQRSTUVWXXYZ[\]^_`abbcd44567889:;<=>?@ABBCDEEFGHIJKLLMNOPQRSTUVWWXYZ[\]^_`aabcde445567789:;<=>?@AABCDEEFGHIJKLLMNOPQRSTUVVWXYZ[\]^_`aabcdef45567789:;<=>?@@ABCDDEFGHIJKKLMNOPQRSTUUVWXYZ[\]^_``abcdefg4556789:;<=>?@@ABCDDEFGHIJJKLMNOPQRSTUUVWXYZ[\]^__`abcdefgh556789:;<=>??@ABCCDEFGHIIJKLMNOPQRSTTUVWXYZ[\]^__`abcdefghi556789:;<=>??@ABCCDEFGHIIJKLMNOPQRSSTUVWXYZ[\]^^_`abcdefghii556789:;<<=>?@ABBCDEFGHHIJKLMNOPQRSSTUVWXYZ[\]]^_`abcdefghhij?123456789:;<=>>?@ABCDEFGHH1223456789:;<=>>?@ABCDEFGGHI223456789:;<==>?@ABCDEFFGHIJ223456789:;<<=>?@ABCDEFFGHIJK223456789:;<<=>?@ABCDEEFGHIJKL223456789:;;<=>?@ABCDEEFGHIJKLM223456789::;<=>?@ABCDDEFGHIJKLMM2233456789::;<=>?@ABCCDEFGHIJKLMMN233456789:;<=>?@ABCCDEFGHIJKLLMNO233456789:;<=>?@ABBCDEFGHIJKLLMNOP33456789:;<=>?@AABCDEFGHIJKKLMNOPQ33456789:;<=>?@AABCDEFGHIJJKLMNOPQR33456789:;<=>?@@ABCDEFGHIJJKLMNOPQRS33456789:;<=>?@@ABCDEFGHIIJKLMNOPQRRS33456789:;<=>??@ABCDEFGHHIJKLMNOPQRRST33456789:;<=>>?@ABCDEFGHHIJKLMNOPQQRSTU334456789:;<=>>?@ABCDEFGGHIJKLMNOPQQRSTTU34456789:;<==>?@ABCDEFGGHIJKLMNOPPQRSTTUV34456789:;<<=>?@ABCDEFFGHIJKLMNOOPQRSSTUVW4456789:;<<=>?@ABCDEEFGHIJKLMNOOPQRSSTUVWW4456789:;;<=>?@ABCDEEFGHIJKLMNNOPQRRSTUVWWX4456789::;<=>?@ABCDDEFGHIJKLMNNOPQRRSTUVVWXY4456789::;<=>?@ABCCDEFGHIJKLMMNOPQQRSTUUVWXYZ4456789:;<=>?@ABCCDEFGHIJKLLMNOPQQRSTUUVWXYZ[44556789:;<=>?@ABBCDEFGHIJKLLMNOPPQRSTTUVWXYZ[\4556789:;<=>?@AABCDEFGHIJKKLMNOPPQRSTTUVWXYZ[\]556789:;<=>?@AABCDEFGHIJJKLMNOOPQRSSTUVWXYZ[\\]556789:;<=>?@@ABCDEFGHIJJKLMNOOPQRRSTUVWXYZ[\\]^556789:;<=>?@@ABCDEFGHIIJKLMNNOPQRRSTUVWXYZ[[\]^_556789:;<=>??@ABCDEFGHHIJKLMNNOPQQRSTUVWXYZ[[\]^_`556789:;<=>>?@ABCDEEFGHIJKLMMNOPQQRSTUVWXYZZ[\]^_`a556789:;<=>>?@ABCDEEFGHIJJKLMNOPPQRSTUVWXYYZ[\]^_`ab5566789:;<==>?@ABCDDEFGHHIJKLMNOOPQRSTUVWXYYZ[\]^_`abb5566789:;<<=>?@ABCDDEFGGHIJKLMNNOPQRSTUVWXXYZ[\]^_`abbc566789:;<<=>?@ABCCDEFGGHIJKLMNNOPQRSTUVWWXYZ[\]^_`aabcd66789:;;<=>?@ABCCDEFFGHIJKLMMNOPQRSTUVWWXYZ[\]^_``abcde66789:;;<=>?@ABBCDEFFGHIJKLMMNOPQRSTUVVWXYZ[\]^_``abcdef66789::;<=>?@ABBCDEEFGHIJKLLMNOPQRSTUUVWXYZ[\]^__`abcdefg667899:;<=>?@AABCDEEFGHIJKKLMNOPQRSTUUVWXYZ[\]^^_`abcdefgh6677899:;<=>?@AABCDDEFGHIJKKLMNOPQRSTTUVWXYZ[\]^^_`abcdefggh67789:;<=>?@@ABCDDEFGHIJJKLMNOPQRSTTUVWXYZ[\]]^_`abcdefgghi7789:;<=>?@@ABCCDEFGHIIJKLMNOPQRSSTUVWXYZ[\\]^_`abcdeffghij7789:;<=>>?@ABCCDEFGHIIJKLMNOPQRRSTUVWXYZ[\\]^_`abcdeefghijk7789:;;<=>?@ABBCDEFGHHIJKLMNOPQRRSTUVWXYZ[[\]^_`abcdeefghijkl? 󍎎 򍎎 󎏏 򎏏 󏐐  񐑑 񐑑 󑒒 򑒒 󒓓  勌 䋌 匍 䌍 华 䍎 厏 䎏 叐 䏐 㐑 㐑 呒 䑒 咓 딕 ܋   閗 떗 ꔕ  𕖗  㖗▗ᖗߖג֒ ? GHIJKLMNOPQRRSTUVWXYZ[\]]^_`abbcefgghijklmnoopqrsstuvwxyz{{|}~HIJKLMNOPQQRSTUVWXYZ[\\]^_`abbcefgghijklmnnopqrsstuvwxyz{{|}~IJKLMNOPQQRSTUVWXYZ[[\]^_`aabceffghijkklmnopqrrstuvwxyzz{|}~JKLMNOPPQRSTUVWXYZ[[\]^_`aabceefghiijklmnoopqrstuvwxyyz{|}~KLMNOOPQRSTUVWXYZZ[\]^_``abcdefghiijklmnnopqrstuvwxyyz{|}~LMNOOPQRSTUVWXYYZ[\]^_``abccefghhijklmmnopqrstuvwxxyz{|}~MNNOPQRSTUVWXXYZ[\]^__`abccefghhijklmmnopqrstuvwwxyz{|}~MNOPQRSTUVWXXYZ[\]^__`abbcefgghijkllmnopqrstuvvwxyz{|}~NOPQRSTUVWWXYZ[\]^^_`abbceffghijkklmnopqrstuvvwxyz{|}~OPQRSTUVVWXYZ[\]^^_`aabceffghijjklmnopqrstuuvwxyz{|}~PQRSTUVVWXYZ[\]]^_`aabceefghijjklmnopqrsttuvwxyz{|}~QRSTUUVWXYZ[\\]^_``abceefghiijklmnopqrsttuvwxyz{|}~~RSTTUVWXYZ[\\]^_``abcdefghhijklmnopqrsstuvwxyz{|}~~SSTUVWXYZ[[\]^__`abcdefghhijklmnopqrrstuvwxyz{|}}~STUVWXYZ[[\]^__`abcdefgghijklmnopqrrstuvwxyz{||}~TUVWXXYZ[\]^^_`abcdeffghijklmnopqqrstuvwxyz{{|}~UVVWXYZ[\]]^_`abcdeffghijklmnoppqrstuvwxyz{{|}~UVWXYZZ[\]^_`abcdeefghijklmnoopqrstuvwxyzz{|}~VWXYZZ[\]^_`abcdeefghijklmnoopqrstuvwxyyz{|}~WXYYZ[\]^_`abccdefghijklmnnopqrstuvwxyyz{|}~XXYZ[\]^_`abccdefghijklmmnopqrstuvwxxyz{|}~XYZ[\]^_`abbcdefghijklmmnopqrstuvwwxyz{|}~YZ[\]^_`aabcdefghijkllmnopqrstuvwwxyz{|}~Z[\]^_`aabcdefghijkklmnopqrstuvvwxyz{|}~[\]^_``abcdefghijkklmnopqrstuuvwxyz{|}~\]^__`abcdefghijjklmnopqrsttuvwxyz{|}~]^__`abcdefghiijklmnopqrsttuvwxyz{|}~~^^_`abcdefghhijklmnopqrsstuvwxyz{|}~~^_`abcdefghhijklmnopqrrstuvwxyz{|}}~_`abcdefgghijklmnopqrrstuvwxyz{||}~`abcdeffghijklmnopqqrstuvwxyz{||}~abcdeffghijklmnoppqrstuvwxyz{{|}~bcdeefghijklmnoppqrstuvwxyzz{|}~cddefghijklmnoopqrstuvwxyyz{|}~~ddefghijklmnnopqrstuvwxxyz{|}~~defghijklmmnopqrstuuvwxyz{||}~efghijklmmnopqrsttuvwxyzz{|}~fghijkllmnopqrsttuvwwxyz{|}~ghijkklmnopqrsstuvwwxyz{|}~hijkklmnopqrsstuvvwxyz{|}~ijjklmnopqrrstuvvwxyz{|}~~ijklmnopqrrstuuvwxyz{|}}~jklmnopqqrstuuvwxyz{|}}~klmnopqqrsttuvwxyz{||}~? IJKLMNOPQQRSTUVWXYZ[[\]^_`aabcdefghijkklmnopqqrstuvvwxyz{|}~JKLMNOPQQRSTUVWXYZZ[\]^_``abcddfghiijklmnoopqrstuvvwxyz{|}~KLMNOPPQRSTUVWXYYZ[\]^_``abccdfghhijklmmnopqrstuuvwxyz{|}~LMNOOPQRSTUVWXYYZ[\]^__`abccdfgghijkklmnopqrsttuvwxyz{|}~~MNOOPQRSTUVWXXYZ[\]^__`abbcdegghijkklmnopqrsttuvwxyz{|}}~NNOPQRSTUVWXXYZ[\]^^_`abbcdefghijjklmnopqrsstuvwxyz{|}}~NOPQRSTUVWWXYZ[\]^^_`aabcdefghiijklmnopqrsstuvwxyz{||}~OPQRSTUVVWXYZ[\]]^_`aabcdefghiijklmnopqrrstuvwxyz{{|}~PQRSTUVVWXYZ[\]]^_``abcdefghhijklmnopqqrstuvwxyz{{|}~QRSTUUVWXYZ[\\]^_``abcdefghhijklmnopqqrstuvwxyzz{|}~RSTTUVWXYZ[\\]^__`abcdefgghijklmnoppqrstuvwxyzz{|}~STTUVWXYZ[[\]^__`abcdefgghijklmnoopqrstuvwxyyz{|}~STUVWXYZ[[\]^^_`abcdeffghijklmnoopqrstuvwxxyz{|}~TUVWXYZZ[\]^^_`abcdeffghijklmnnopqrstuvwxxyz{|}~UVWWXYZ[\]]^_`abcddefghijklmmnopqrstuvwwxyz{|}~UVWXYZ[[\]^_`abccdefghijklmmnopqrstuvvwxyz{|}~VWXYYZ[\]^_`abccdefghijkllmnopqrstuvvwxyz{|}~WXYYZ[\]^_`abbcdefghijkllmnopqrstuuvwxyz{|}~XXYZ[\]^_`aabcdefghijkklmnopqrsttuvwxyz{|}~~XYZ[\]^_`aabcdefghijjklmnopqrsttuvwxyz{|}}~YZ[\]^_``abcdefghijjklmnopqrsstuvwxyz{|}}~Z[\]^_``abcdefghiijklmnopqrsstuvwxyz{||}~[\]^__`abcdefghhijklmnopqrrstuvwxyz{{|}~\]^^_`abcdefghhijklmnopqqrstuvwxyz{{|}~]^^_`abcdefgghijklmnopqqrstuvwxyzz{|}~]^_`abcdefgghijklmnoppqrstuvwxyzz{|}~^_`abcdeffghijklmnoopqrstuvwxyyz{|}~_`abcdeefghijklmnoopqrstuvwxxyz{|}~`abcdeefghijklmnnopqrstuvwxxyz{|}~~abcddefghijklmnnopqrstuvwwxyz{|}~~bccdefghijklmmnopqrstuvvwxyz{|}}~ccdefghijkllmnopqrstuvvwxyz{|}}~cdefghijkllmnopqrstuuvwxyz{||}~defghijkklmnopqrstuuvwxyz{||}~efghijjklmnopqrsstuvwxyyz{|}~fghijjklmnopqrsstuvwwxyz{|}}~ghiijklmnopqrrstuvvwxyz{{|}~hiijklmnopqrrstuuvwxyz{{|}~hijklmnopqqrstuuvwxyzz{|}~ijklmnopqqrsttuvwxyyz{|}~jklmnoppqrsttuvwxyyz{|}~klmnoppqrsstuvwxxyz{|}~lmnoopqrsstuvwwxyz{|}~mnnopqrrstuvwwxyz{|}~?ɓɳ˳ϴѴӵ൶ŨϩѪհ԰ǩ˩ϪѪӫի٬۬ҭǦɦͧͧѨި¡¡áâĢģţŤŤƥƥǦǦǧȧȨ   ̀P            lZ6- New Layer     OO_` PQSXgZ-Z\c^____ A>============== A>============== A>==============  @ @+++++++++++++++ @خɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭٮ  @............... @                @ʀ                                =====;;@6 =====;;@6 =====;;@6  $%%$#5# ::?? +++++?+?? خɭخɭخɬحȬحȭخɭخ>? ?# ....?..?1         ?1  ʀ>1  1#.# #        )        )  ) #&##! )            lZ6- Background     ``""&ag:A  @../.-./.,./.,./0.+./0.+./0.*./0.*./0.)./0.). /0.(. /0.(. /01.(. /01.'. /01.'. /01.&. /01.&. /01.%. /01.%. /01.$. /012.$. /012.#. /012.#. /012.". /012."./012.!. /012.!./012. ./0123. ./0123../0123../0123../0123../0123../0123../0123../0123../01234../01234../01234../01234../01234../01234../012345../012345>==============@.010-010,010,0120+0120+0120*0120*0120*0 120)0 120)0 120(0 1230(0 1230'0 1230'0 1230&0 1230&0 1230%0 1230%0 1230$0 1230$0 12340#0 12340#0 12340"0 12340"0 12340!0 12340!012340 012340 0123450012345001234500123450012345001234500123450012345001234560012345600123456001234560012345600123456001234567001234567>==============@8665543 3 2 1 1 0 0 / . . - - , + + * ) ( ' & & % $ # " !             >==============?/01234567889:;<==>?@ABCDEFG/001234567889:;<<=>?@ABCDEFGG00123456789:;;<=>?@ABCDEFFGH00123456789:;;<=>?@ABCDEEFGHI00123456789::;<=>?@ABCDEEFGHIJ00123456789::;<=>?@ABCDDEFGHIJK001234567899:;<=>?@ABCCDEFGHIJKL0011234567889:;<=>?@ABCCDEFGHIJKLM011234567889:;<=>?@ABBCDEFGHIJKLLM1123456789:;<=>?@AABCDEFGHIJKLLMN1123456789:;<=>?@@ABCDEFGHIJKKLMNO1123456789:;<=>?@@ABCDEFGHIJJKLMNOP1123456789:;<=>??@ABCDEFGHIJJKLMNOPQ1123456789:;<=>>?@ABCDEFGHIIJKLMNOPQR1123456789:;<=>>?@ABCDEFGHHIJKLMNOPQRS1123456789:;<==>?@ABCDEFGGHIJKLMNOPQRRS11223456789:;<<=>?@ABCDEFGGHIJKLMNOPQQRST1223456789:;;<=>?@ABCDEFFGHIJKLMNOPQQRSTU223456789:;;<=>?@ABCDEEFGHIJKLMNOPPQRSTTU223456789::;<=>?@ABCDEEFGHIJKLMNOOPQRSTTUV2234567899:;<=>?@ABCDDEFGHIJKLMNOOPQRSSTUVW2234567899:;<=>?@ABCCDEFGHIJKLMNNOPQRRSTUVWW2234567889:;<=>?@ABCCDEFGHIJKLMMNOPQRRSTUVWWX2233456789:;<=>?@ABBCDEFGHIJKLLMNOPQQRSTUVVWXY2233456789:;<=>?@AABCDEFGHIJKLLMNOPQQRSTUUVWXYZ233456789:;<=>?@@ABCDEFGHIJKKLMNOPPQRSTUUVWXYZ[33456789:;<=>?@@ABCDEFGHIJJKLMNOPPQRSTTUVWXYZ[\33456789:;<=>??@ABCDEFGHIJJKLMNOOPQRSSTUVWXYZ[\]33456789:;<=>>?@ABCDEFGHIIJKLMNOOPQRSSTUVWXYZ[\]]33456789:;<=>>?@ABCDEFGHHIJKLMNNOPQRRSTUVWXYZ[\\]^33456789:;<==>?@ABCDEFGHHIJKLMNNOPQQRSTUVWXYZ[\\]^_33456789:;<<=>?@ABCDEEFGHIJKLLMNOPQQRSTUVWXYZ[[\]^_`334456789:;<<=>?@ABCDDEFGHIJJKLMNOPPQRSTUVWXYZZ[\]^_`a34456789:;;<=>?@ABCDDEFGGHIJKLMNOOPQRSTUVWXYZZ[\]^_`ab34456789::;<=>?@ABCCDEFGGHIJKLMNNOPQRSTUVWXYYZ[\]^_`abc44567899:;<=>?@ABCCDEFFGHIJKLMNNOPQRSTUVWXXYZ[\]^_`abcc44567899:;<=>?@ABBCDEFFGHIJKLMMNOPQRSTUVWXXYZ[\]^_`abbcd44567889:;<=>?@ABBCDEEFGHIJKLLMNOPQRSTUVWWXYZ[\]^_`aabcde445567789:;<=>?@AABCDEEFGHIJKLLMNOPQRSTUVVWXYZ[\]^_`aabcdef45567789:;<=>?@@ABCDDEFGHIJKKLMNOPQRSTUUVWXYZ[\]^_``abcdefg4556789:;<=>?@@ABCDDEFGHIJJKLMNOPQRSTUUVWXYZ[\]^__`abcdefgh556789:;<=>??@ABCCDEFGHIIJKLMNOPQRSTTUVWXYZ[\]^__`abcdefghi556789:;<=>??@ABCCDEFGHIIJKLMNOPQRSSTUVWXYZ[\]^^_`abcdefghii556789:;<<=>?@ABBCDEFGHHIJKLMNOPQRSSTUVWXYZ[\]]^_`abcdefghhij?123456789:;<=>>?@ABCDEFGHH1223456789:;<=>>?@ABCDEFGGHI223456789:;<==>?@ABCDEFFGHIJ223456789:;<<=>?@ABCDEFFGHIJK223456789:;<<=>?@ABCDEEFGHIJKL223456789:;;<=>?@ABCDEEFGHIJKLM223456789::;<=>?@ABCDDEFGHIJKLMM2233456789::;<=>?@ABCCDEFGHIJKLMMN233456789:;<=>?@ABCCDEFGHIJKLLMNO233456789:;<=>?@ABBCDEFGHIJKLLMNOP33456789:;<=>?@AABCDEFGHIJKKLMNOPQ33456789:;<=>?@AABCDEFGHIJJKLMNOPQR33456789:;<=>?@@ABCDEFGHIJJKLMNOPQRS33456789:;<=>?@@ABCDEFGHIIJKLMNOPQRRS33456789:;<=>??@ABCDEFGHHIJKLMNOPQRRST33456789:;<=>>?@ABCDEFGHHIJKLMNOPQQRSTU334456789:;<=>>?@ABCDEFGGHIJKLMNOPQQRSTTU34456789:;<==>?@ABCDEFGGHIJKLMNOPPQRSTTUV34456789:;<<=>?@ABCDEFFGHIJKLMNOOPQRSSTUVW4456789:;<<=>?@ABCDEEFGHIJKLMNOOPQRSSTUVWW4456789:;;<=>?@ABCDEEFGHIJKLMNNOPQRRSTUVWWX4456789::;<=>?@ABCDDEFGHIJKLMNNOPQRRSTUVVWXY4456789::;<=>?@ABCCDEFGHIJKLMMNOPQQRSTUUVWXYZ4456789:;<=>?@ABCCDEFGHIJKLLMNOPQQRSTUUVWXYZ[44556789:;<=>?@ABBCDEFGHIJKLLMNOPPQRSTTUVWXYZ[\4556789:;<=>?@AABCDEFGHIJKKLMNOPPQRSTTUVWXYZ[\]556789:;<=>?@AABCDEFGHIJJKLMNOOPQRSSTUVWXYZ[\\]556789:;<=>?@@ABCDEFGHIJJKLMNOOPQRRSTUVWXYZ[\\]^556789:;<=>?@@ABCDEFGHIIJKLMNNOPQRRSTUVWXYZ[[\]^_556789:;<=>??@ABCDEFGHHIJKLMNNOPQQRSTUVWXYZ[[\]^_`556789:;<=>>?@ABCDEEFGHIJKLMMNOPQQRSTUVWXYZZ[\]^_`a556789:;<=>>?@ABCDEEFGHIJJKLMNOPPQRSTUVWXYYZ[\]^_`ab5566789:;<==>?@ABCDDEFGHHIJKLMNOOPQRSTUVWXYYZ[\]^_`abb5566789:;<<=>?@ABCDDEFGGHIJKLMNNOPQRSTUVWXXYZ[\]^_`abbc566789:;<<=>?@ABCCDEFGGHIJKLMNNOPQRSTUVWWXYZ[\]^_`aabcd66789:;;<=>?@ABCCDEFFGHIJKLMMNOPQRSTUVWWXYZ[\]^_``abcde66789:;;<=>?@ABBCDEFFGHIJKLMMNOPQRSTUVVWXYZ[\]^_``abcdef66789::;<=>?@ABBCDEEFGHIJKLLMNOPQRSTUUVWXYZ[\]^__`abcdefg667899:;<=>?@AABCDEEFGHIJKKLMNOPQRSTUUVWXYZ[\]^^_`abcdefgh6677899:;<=>?@AABCDDEFGHIJKKLMNOPQRSTTUVWXYZ[\]^^_`abcdefggh67789:;<=>?@@ABCDDEFGHIJJKLMNOPQRSTTUVWXYZ[\]]^_`abcdefgghi7789:;<=>?@@ABCCDEFGHIIJKLMNOPQRSSTUVWXYZ[\\]^_`abcdeffghij7789:;<=>>?@ABCCDEFGHIIJKLMNOPQRRSTUVWXYZ[\\]^_`abcdeefghijk7789:;;<=>?@ABBCDEFGHHIJKLMNOPQRRSTUVWXYZ[[\]^_`abcdeefghijkl+++++++++++++++? 󍎎 򍎎 󎏏 򎏏 󏐐  񐑑 񐑑 󑒒 򑒒 󒓓  勌 䋌 匍 䌍 华 䍎 厏 䎏 叐 䏐 㐑 㐑 呒 䑒 咓 딕 ܋   閗 떗 ꔕ  𕖗  㖗▗ᖗߖג֒خɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭٮ? GHIJKLMNOPQRRSTUVWXYZ[\]]^_`abbcefgghijklmnoopqrsstuvwxyz{{|}~HIJKLMNOPQQRSTUVWXYZ[\\]^_`abbcefgghijklmnnopqrsstuvwxyz{{|}~IJKLMNOPQQRSTUVWXYZ[[\]^_`aabceffghijkklmnopqrrstuvwxyzz{|}~JKLMNOPPQRSTUVWXYZ[[\]^_`aabceefghiijklmnoopqrstuvwxyyz{|}~KLMNOOPQRSTUVWXYZZ[\]^_``abcdefghiijklmnnopqrstuvwxyyz{|}~LMNOOPQRSTUVWXYYZ[\]^_``abccefghhijklmmnopqrstuvwxxyz{|}~MNNOPQRSTUVWXXYZ[\]^__`abccefghhijklmmnopqrstuvwwxyz{|}~MNOPQRSTUVWXXYZ[\]^__`abbcefgghijkllmnopqrstuvvwxyz{|}~NOPQRSTUVWWXYZ[\]^^_`abbceffghijkklmnopqrstuvvwxyz{|}~OPQRSTUVVWXYZ[\]^^_`aabceffghijjklmnopqrstuuvwxyz{|}~PQRSTUVVWXYZ[\]]^_`aabceefghijjklmnopqrsttuvwxyz{|}~QRSTUUVWXYZ[\\]^_``abceefghiijklmnopqrsttuvwxyz{|}~~RSTTUVWXYZ[\\]^_``abcdefghhijklmnopqrsstuvwxyz{|}~~SSTUVWXYZ[[\]^__`abcdefghhijklmnopqrrstuvwxyz{|}}~STUVWXYZ[[\]^__`abcdefgghijklmnopqrrstuvwxyz{||}~TUVWXXYZ[\]^^_`abcdeffghijklmnopqqrstuvwxyz{{|}~UVVWXYZ[\]]^_`abcdeffghijklmnoppqrstuvwxyz{{|}~UVWXYZZ[\]^_`abcdeefghijklmnoopqrstuvwxyzz{|}~VWXYZZ[\]^_`abcdeefghijklmnoopqrstuvwxyyz{|}~WXYYZ[\]^_`abccdefghijklmnnopqrstuvwxyyz{|}~XXYZ[\]^_`abccdefghijklmmnopqrstuvwxxyz{|}~XYZ[\]^_`abbcdefghijklmmnopqrstuvwwxyz{|}~YZ[\]^_`aabcdefghijkllmnopqrstuvwwxyz{|}~Z[\]^_`aabcdefghijkklmnopqrstuvvwxyz{|}~[\]^_``abcdefghijkklmnopqrstuuvwxyz{|}~\]^__`abcdefghijjklmnopqrsttuvwxyz{|}~]^__`abcdefghiijklmnopqrsttuvwxyz{|}~~^^_`abcdefghhijklmnopqrsstuvwxyz{|}~~^_`abcdefghhijklmnopqrrstuvwxyz{|}}~_`abcdefgghijklmnopqrrstuvwxyz{||}~`abcdeffghijklmnopqqrstuvwxyz{||}~abcdeffghijklmnoppqrstuvwxyz{{|}~bcdeefghijklmnoppqrstuvwxyzz{|}~cddefghijklmnoopqrstuvwxyyz{|}~~ddefghijklmnnopqrstuvwxxyz{|}~~defghijklmmnopqrstuuvwxyz{||}~efghijklmmnopqrsttuvwxyzz{|}~fghijkllmnopqrsttuvwwxyz{|}~ghijkklmnopqrsstuvwwxyz{|}~hijkklmnopqrsstuvvwxyz{|}~ijjklmnopqrrstuvvwxyz{|}~~ijklmnopqrrstuuvwxyz{|}}~jklmnopqqrstuuvwxyz{|}}~klmnopqqrsttuvwxyz{||}~...............? IJKLMNOPQQRSTUVWXYZ[[\]^_`aabcdefghijkklmnopqqrstuvvwxyz{|}~JKLMNOPQQRSTUVWXYZZ[\]^_``abcddfghiijklmnoopqrstuvvwxyz{|}~KLMNOPPQRSTUVWXYYZ[\]^_``abccdfghhijklmmnopqrstuuvwxyz{|}~LMNOOPQRSTUVWXYYZ[\]^__`abccdfgghijkklmnopqrsttuvwxyz{|}~~MNOOPQRSTUVWXXYZ[\]^__`abbcdegghijkklmnopqrsttuvwxyz{|}}~NNOPQRSTUVWXXYZ[\]^^_`abbcdefghijjklmnopqrsstuvwxyz{|}}~NOPQRSTUVWWXYZ[\]^^_`aabcdefghiijklmnopqrsstuvwxyz{||}~OPQRSTUVVWXYZ[\]]^_`aabcdefghiijklmnopqrrstuvwxyz{{|}~PQRSTUVVWXYZ[\]]^_``abcdefghhijklmnopqqrstuvwxyz{{|}~QRSTUUVWXYZ[\\]^_``abcdefghhijklmnopqqrstuvwxyzz{|}~RSTTUVWXYZ[\\]^__`abcdefgghijklmnoppqrstuvwxyzz{|}~STTUVWXYZ[[\]^__`abcdefgghijklmnoopqrstuvwxyyz{|}~STUVWXYZ[[\]^^_`abcdeffghijklmnoopqrstuvwxxyz{|}~TUVWXYZZ[\]^^_`abcdeffghijklmnnopqrstuvwxxyz{|}~UVWWXYZ[\]]^_`abcddefghijklmmnopqrstuvwwxyz{|}~UVWXYZ[[\]^_`abccdefghijklmmnopqrstuvvwxyz{|}~VWXYYZ[\]^_`abccdefghijkllmnopqrstuvvwxyz{|}~WXYYZ[\]^_`abbcdefghijkllmnopqrstuuvwxyz{|}~XXYZ[\]^_`aabcdefghijkklmnopqrsttuvwxyz{|}~~XYZ[\]^_`aabcdefghijjklmnopqrsttuvwxyz{|}}~YZ[\]^_``abcdefghijjklmnopqrsstuvwxyz{|}}~Z[\]^_``abcdefghiijklmnopqrsstuvwxyz{||}~[\]^__`abcdefghhijklmnopqrrstuvwxyz{{|}~\]^^_`abcdefghhijklmnopqqrstuvwxyz{{|}~]^^_`abcdefgghijklmnopqqrstuvwxyzz{|}~]^_`abcdefgghijklmnoppqrstuvwxyzz{|}~^_`abcdeffghijklmnoopqrstuvwxyyz{|}~_`abcdeefghijklmnoopqrstuvwxxyz{|}~`abcdeefghijklmnnopqrstuvwxxyz{|}~~abcddefghijklmnnopqrstuvwwxyz{|}~~bccdefghijklmmnopqrstuvvwxyz{|}}~ccdefghijkllmnopqrstuvvwxyz{|}}~cdefghijkllmnopqrstuuvwxyz{||}~defghijkklmnopqrstuuvwxyz{||}~efghijjklmnopqrsstuvwxyyz{|}~fghijjklmnopqrsstuvwwxyz{|}}~ghiijklmnopqrrstuvvwxyz{{|}~hiijklmnopqrrstuuvwxyz{{|}~hijklmnopqqrstuuvwxyzz{|}~ijklmnopqqrsttuvwxyyz{|}~jklmnoppqrsttuvwxyyz{|}~klmnoppqrsstuvwxxyz{|}~lmnoopqrsstuvwwxyz{|}~mnnopqrrstuvwwxyz{|}~               ?ɓɳ˳ϴѴӵ൶ŨϩѪհ԰ǩ˩ϪѪӫի٬۬ҭǦɦͧͧѨި¡¡áâĢģţŤŤƥƥǦǦǧȧȨʀ _                _               ̀_ =====;;A<6@                                                                              =====;;A<6@                                                                              =====;;A~<6@                                                                               ::??                         +++++?+??                         خɭخɭخɬحȬحȭخɭخ~??                          ....?..??       ??ʀ~??       0       0 0                                                                               ?                                                                               ?                                                                               ? ??? ??? ?lZ6-gdeskcal-0.57.1/skins/miderat/bg.png0000644000175000017500000001341610025431055017265 0ustar seb128seb12800000000000000PNG  IHDRbKGD pHYs  @AtIME10AIDATxOƋ@2a^F#s;'pnMFbx&~?$%R*JUxRH>u{!:vGՙD %oZL"-'Cخ !}~;j(}sCFǗ\7hmX'G׿~h}JZBS9\FŚ/sAjP͸]Ͽ.W+ KL\T@g;@AN/A% oeAN~猝r> }$M\h&P\/-A[)@v}Ysss3lA KWenV<ĀB (zL xN|ME.>Ύcg3{DH K@W4x9?CWlB*}*^r.x'lK WHs5ܠp 1 Le.2m9\{Fv]ZW*Y)eR$fYZ*:}!t(fP @O 3Y|>]^j[1~OVehH^1M xa;aImHl \ѸA%l "nB.n}ƯXķӭ`Q Y2\JUr 2͇:(h53+:9Fha& +BYMaZ0!`eR 6q] J(X@ɯU^ ,k,>OļW+1Wҿ&Ȗtv^(cu"sU+֫Pz QfjD)U+$%77' >[Zǎ׌fSgj5U^ KfRe Vqi0=8 \Q\܄QJKgVٰA3\(,y%&z;T@t2p\*#0d|.rj\D.i@%q=&xvP#~HWc˲NqqA Ə'F#(epiʀz+TAIV-P %r9JՓP έ#|55 A\Qpa=3,675hn԰uEBV57)Ej$}*ԯ`5K( V2 FT0y*֭K[ a צf:J1<\rMy{V/R +خcf9qz@$20Ǥ1\u\ En" R 6Dưbmif!V(d"*kWJ㈦cv`4*brK(\.ev U RCV",XV( [n~%` c Ԏ2ks9Y> 7x5H ^L շL`v4P<ǷeF=\A=YVr0Z`j2|LL:\z}Vo7Ԭn&KM\N>KO\o4ΈT$20 ܬxXrBz|ܛd_ڗnҾEDcFۂruRHmQB@'dA2ޮIW"\sc!s9k2 H8J*[?W,`'2 :\ Zr5O Pmh~ HZɂ37\6d%-%`P_ y MEum:le`43&Un@:3nkjXiSC3P P&y\pq@} .?p%5'C?>J\ f:ܚT*a)S¦4` \aϮBay#I^4's$7 J̏{CKSAtԒ+o3@l~ xuU(U\1CW~Ċx;H;߂st,0 U gIr \>0 Vίy[m "ʃ(15=~ޫ#?7iu0 . 8gRpI_)xcf8ܐWfXBu;jR=6"0QC~?}U(}#-p=7U w.ɘ$%̰@kIdak-*1M11Iw>ar>ܼ;0.f. ZW `XZB,IMl_JPjXV)7җ>d\iϺRZU&ycH&Xcy딇ϫExx5_汾4n8v^Ws..Զxa@Fz*D?W_8`p<<100yx c`8`p<<100yx c`C`ۛ1ޓW0߶cX|'_gY޽ o_ !<) w߽ꫯsV{?ï>_eeY>O?|ɏSYZ<<Z]?0RNڜAKqr\_|qلIZzhE kM?m沤FR p:+nsv_lfsYb\e0`-i\w"EmV;>Hōnf~`IݎKVY$X2ͻ"-? LeIzlr螡EmY)}-RXXSҟ 7Y-}W=HAas,Znc˴t)4ÀY)kub1:3kdWS`Oy`I}.-〺*-{jg’FbBKczKbZvhCUjufFF`Oy`I}^-вq@]3~`O,),it-6{[沪EZ%CG 7k*5Z5ō~/-"`wPZ2 gfIӵHaIk$KZ->oߣ]=jhf摝՚?,i%y@)4^ 2kUx[ |),it-!zu-pLJ> Gqs"`-U5ZFÒƎJ܉ֵX24AKcz,7kWbu-jɣcz).ci@]K[cu2À^ blԒZG:ˍZklf]W5,)Zxx1}+1rkأSHqݏ饸ziQߍ·%'j9RT C,~v@ZZRHaIݴ4%h"%VuG-RH5ӷoW[5\ *%B/-3:W9).|#Љsgk9`W'utnvэ~-şM$Ѫ\K]Z= dW=#40-R05zڽx뮑E K~F̝(u3UROꬖv-4>I >w4QOMGl.vЧr~6Gm [r`hvAUg6Fn {x),isw}FFe]#k?i3tMXꗙ5Rw-gogI~\-Z/-"ŎcUj4\_{,i’Bc*#eD홵̠f,]#krW8pm\ѯҢH!{9r{[ZӻJ7 gn [rfHZ{؇?ƕxְGh’F-cG)FP˘sDF?8:VUf9ވ]-ZbkɏzWp^ckؒ{7sͬEwi3;'{}7-RXPc}ְ73Kigvqz]mJ9Wu's-]Grl˾)zu{x7sY"%{!-5G;jhۛWsSL4Z `oh誴-ib+#;k# gh5\?uWKusQ˕?VL5y=_9>ݴH1;\tVm^mݎƫi}"-FkoЍn_KmQ6}::u\Kr-'=wyӛ֯kkIZG6wGjHq5\#^)s[xգƬFs|D'Ï,)wFt[Ҳ7zhU@kܞŮ2S~;U{'pqܵ5<6mRCf\ִHqQT)Wb{=5soW0 /FG򬘨),i< וš~46{ĬFBYcޔ ߰,IENDB`gdeskcal-0.57.1/skins/miderat/prev.png0000644000175000017500000000035610025431055017650 0ustar seb128seb12800000000000000PNG  IHDR Vu\bKGD pHYs  tIME;6{IDATxc`z~g_ ~e+S̴߿1{ tb8N'2 c````hmf````PTNgx#ZtRT D5+IENDB`gdeskcal-0.57.1/skins/miderat/today.png0000644000175000017500000000047010025431055020011 0ustar seb128seb12800000000000000PNG  IHDRw=bKGD pHYs ?@"tIME 5EXIDATxQ @eg  ~D3KAmI p`z1~} v9PGl>d ?Bٟp"k@#66. 8H ֻ0)3003@BA-Ėi`g``p=|)IIENDB`gdeskcal-0.57.1/skins/august/0000755000175000017500000000000007717021277016064 5ustar seb128seb12800000000000000gdeskcal-0.57.1/skins/august/today.png0000644000175000017500000000152007717016757017717 0ustar seb128seb12800000000000000PNG  IHDRw=bKGDC pHYs  ~tIME jttEXtCommentCreated with The GIMPd%nIDATxڵkeͦKQ"_``o A ( dGY``bB43!Ӗng?ps~7ߗ뺾\j9̠)$pV1<Ӹa\hQYpփlŋxч\k85ƊJ3oVqx3,Bw |8˭$]s_}x;LW\J?vf˹ (A`/>IJ~oćEeh#:v2RKS+[x18ӂ3؉GR=KSz̽x Oc*)*|ֺ/MنMe+X8O]q1`m!-*8{`Ms y(<{IENDB`gdeskcal-0.57.1/skins/august/skin.xml0000644000175000017500000000252007717021277017551 0ustar seb128seb12800000000000000 gdeskcal-0.57.1/skins/august/home.png0000644000175000017500000000033207717016757017527 0ustar seb128seb12800000000000000PNG  IHDR 6 bKGDC pHYs  ~tIME 06autEXtCommentCreated with The GIMPd%n>IDATxڥ _.k "sT[)RɥRc4­"ܿ*u{K,eAܾ9IENDB`gdeskcal-0.57.1/skins/august/prev.png0000644000175000017500000000034607717016757017560 0ustar seb128seb12800000000000000PNG  IHDR 6 bKGDC pHYs  ~tIME + [CtEXtCommentCreated with The GIMPd%nJIDATxڝEQsF-ei[RwaQ%Tzz )0ҁl n+8a|46s+7IENDB`gdeskcal-0.57.1/skins/august/next.png0000644000175000017500000000034507717016757017561 0ustar seb128seb12800000000000000PNG  IHDR 6 bKGDC pHYs  ~tIME + +~tEXtCommentCreated with The GIMPd%nIIDATxڍA .5&X5:zXA&ṱjQK+xG9|g6+ MIENDB`gdeskcal-0.57.1/skins/august/bg.png0000644000175000017500000000242207717020415017153 0ustar seb128seb12800000000000000PNG  IHDR=&bKGD pHYsPNtIME51bWtEXtCommentCreated with The GIMPd%nvIDATxONd5n]wpnIƝ+zMcwƕqALFₙ8!iff'i@T5`cU.*ppppXb>+>X `:T888 G:+j,{%kk  @ @B=G @o0@ @ @ @ ZO80'0%/ͭsR}_=h.:?O}! `<[s#..................................+y1G"q{j[4/7W@C:oO؟=3+L3+.|Q>G(|Q>G(5}z( G(|Q>G(|Q>G(|Q>G(|Q>G(_(|Q>G(|Q>G(|Q>G(|Q>G(bbdzg6^Gln}?䊗TTt-Q?غ>_AUEaf1?~ßEWkn.Gߙ~2 X'ڳ_oUW?Ϳνzۘe|?n#`?`?`?`?p:aFu:x>0~0~0~0~0~0~0~?`?`?`?`?`?`?`?`?`?`?`klsZ;bUm^2w^YMdk9z6 ^WmWw  d 5CEF3FC93B54B F5B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6?F????????????????????????????????????????????????????FyF???????????????????????????????????????????????????Fy'FC5C'Ę9 B35A5F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????>6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????>6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F B F6BD5Bc3C8c3F 3 ?????????? ????????  nnn>6F A5D A3cA'c9B ' i?4Title      %0 +;K[k{a407089a:::<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  v3a607089a99:::::::::::::::::::::::::::::::::::::znnnni?4 New Layer?     k';OH\p <<<<<<<<<<   J::::::::::<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<<<::a:90807a4nnn:::999a870603ai?4 Background     ~&6FVfvnnnni?4gdeskcal-0.57.1/skins/august_big_no_backgr/0000755000175000017500000000000010010200733020662 5ustar seb128seb12800000000000000gdeskcal-0.57.1/skins/august_big_no_backgr/bg.xcf0000644000175000017500000001537607717020323022007 0ustar seb128seb12800000000000000gimp xcf file6 BBp/ gimp-commentCreated with The GIMP/ gimp-commentCreated with The GIMPShading&     KKGtl F >  d 5CEF3FC93B54B F5B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6?F????????????????????????????????????????????????????FyF???????????????????????????????????????????????????Fy'FC5C'Ę9 B35A5F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????>6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6B F6????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????>6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F A6F B F6BD5Bc3C8c3F 3 ?????????? ????????  nnn>6F A5D A3cA'c9B ' i?4Title      %0 +;K[k{a407089a:::<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  v3a607089a99:::::::::::::::::::::::::::::::::::::znnnni?4 New Layer?     k';OH\p <<<<<<<<<<   J::::::::::<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::<<<::a:90807a4nnn:::999a870603ai?4 Background     ~&6FVfvnnnni?4gdeskcal-0.57.1/skins/august_big_no_backgr/home.png0000644000175000017500000000033207717016757022355 0ustar seb128seb12800000000000000PNG  IHDR 6 bKGDC pHYs  ~tIME 06autEXtCommentCreated with The GIMPd%n>IDATxڥ _.k "sT[)RɥRc4­"ܿ*u{K,eAܾ9IENDB`gdeskcal-0.57.1/skins/august_big_no_backgr/today.png0000644000175000017500000000262210006766442022535 0ustar seb128seb12800000000000000PNG  IHDR$$bKGD pHYsnn [tIME͌tEXtCommentCreated with The GIMPd%nIDATx͘SW](QAP/RNgl77QA*ƪ$sc*T$d7~ّ@Q^˅ѱ=PQ!R`(Egp@hxn@kdI@ƀhK9 ԼW,u 00 #F]^Kmx%1$+.t@ sq2艧"p ,uXʶɚ(p9"Zu; Rxd|u,1fe.x?"'{ >`Rspx"2[kUx,fރ,*9Y9+3m`ne,lY mo]mɲԲț= |Jr;1ph2Z2ʞ'dVƋ"3ix rY[L2qӻu+Yx:xF3i('9޺vS}xjg:0K5MBC8 ݨ͢_e[jJ0ԪH7bUG,2O#PKqEVm[\3d`3 ggڋp?1<2fz h Ҳ+N?uxd :*uPQ6}6i4LZ*y{Y#)w{l>ko8,1YYoЃ1uQy#ǤIFynXCM.7!fhXٞh$XH],8LtRݗ턝L".9I ;-z.̆Vvӡ,+v ̔C%?ˆI(W hU5SCR\rV*OBϔFɃ:u:6쟁,2رs ;"GZzBgfiL:c]\ңwȮn.Gl>2+XZAkͬc5e cy{ _ۇnZI<ɣ!| hzy^>l62ん݌l ERnj}w8[y/:*sx < QfL76V /CBܣSO]ൌln7} vJµܳVIENDB`gdeskcal-0.57.1/skins/august_big_no_backgr/skin.xml0000644000175000017500000000234710006771711022374 0ustar seb128seb12800000000000000 gdeskcal-0.57.1/skins/august_big_no_backgr/prev.png0000644000175000017500000000034607717016757022406 0ustar seb128seb12800000000000000PNG  IHDR 6 bKGDC pHYs  ~tIME + [CtEXtCommentCreated with The GIMPd%nJIDATxڝEQsF-ei[RwaQ%Tzz )0ҁl n+8a|46s+7IENDB`gdeskcal-0.57.1/skins/august_big_no_backgr/next.png0000644000175000017500000000034507717016757022407 0ustar seb128seb12800000000000000PNG  IHDR 6 bKGDC pHYs  ~tIME + +~tEXtCommentCreated with The GIMPd%nIIDATxڍA .5&X5:zXA&ṱjQK+xG9|g6+ MIENDB`gdeskcal-0.57.1/skins/ClearLemon/0000755000175000017500000000000010012007031016543 5ustar seb128seb12800000000000000gdeskcal-0.57.1/skins/ClearLemon/home.png0000644000175000017500000000033010012007031020175 0ustar seb128seb12800000000000000PNG  IHDR KU'bKGD pHYs 7˭tIME #-('tEXtCommentCreated by RonMon with The GIMPޮ2IDATxcd`dTfDcb"`!v|F 5DKL՟ IENDB`gdeskcal-0.57.1/skins/ClearLemon/today.png0000644000175000017500000000044410012007031020373 0ustar seb128seb12800000000000000PNG  IHDRU\bKGD pHYs 7˭tIME 1)ܱ6'tEXtCommentCreated by RonMon with The GIMPޮ~IDATx1 @{!B#B a<(XZVSfgK< U`q/pˠ0AIvwO*.᜸X#F0bwZIv;>AQ/r$;/IENDB`gdeskcal-0.57.1/skins/ClearLemon/skin.xml0000644000175000017500000000245510012013706020245 0ustar seb128seb12800000000000000 gdeskcal-0.57.1/skins/ClearLemon/prev.png0000644000175000017500000000066010012007031020227 0ustar seb128seb12800000000000000PNG  IHDR&N:bKGD pHYs 7˭tIME 81_'tEXtCommentCreated by RonMon with The GIMPޮ IDATxڝ;/DA߬KXDٸQƣ Jp$7j]M9q2b&dzc%xlb*KY)Cw\jSIENDB`gdeskcal-0.57.1/skins/e/0000755000175000017500000000000007647232247015003 5ustar seb128seb12800000000000000gdeskcal-0.57.1/skins/e/bg.png0000644000175000017500000001342407647232134016100 0ustar seb128seb12800000000000000PNG  IHDR3vbKGD pHYs oytIME -0IDATxkUvc1c yyG1&ԦB(JTBEI%Oy*}Y%lJRjKmE05`l 0'S|8=gԭZRa4֕{ιMF"WX lzSp6=߸Qi!+lv[5 Q`6=ըiOӈWY܇{oi :D=lY(\sML \+1{ K9:F"4xWtfLu2f<6ڐ6"ğ&i:d7ƣ_8TMxm=@'YTpx/~85%tUIp"0 & .Н& `ȜF.`u 꼡 +<Ăwc!.\!?CĹl7KOizX{I4sQl_Tea$&,b8]pgX90*p?5lQ3ۺNcD S{nDtW"S;" dl؎L¬J2P$-uh sn&2;پTsy_of @ܡjPW @xBu!h^;_ t)2uds'4/k\0OÍH= Z0"ɮl<X/K4֛`iw25^~,0q|AV.4 a0} i`p(7p %謲6< ˷+"j],\^E: Iռ,s"&=rT[$"YϪ!h׫r EhP<6KeoDr.D.;ТS>wq$hZnWV}zn$fzXYnƣU8syxDGmTCҸo2E*6 3^.k k}cpO.ۀ^¯@;d:8Iڕ} g1k;Lu zi2sHxloYDXt S؁؈}| ":?.TڒLoDnn@j r|++ LOfF x %V4F|DƑxpF|[Yz7_-6ď¼X^HbV#Spnh_5\,Ȫ:|ϖé 8/6?t%ې;ىrK+x%`{|:WKRU?jD?qCW߀v\ʐr |/pFȥr N.>M˻5E`k2O >JD됉bڴnw0 |[V.04BifNhGrgCp;Dmi *[Ǖp֤l<}Y805vB6=BpXr:9#tL*& EZRiBFt[1qp"ǴՙCⱇ}j|x3(2s>JM _C&D8}]myx90,"~M}pZ"1)CY6$& G^\ "%Zk P Y$)r4!dzT0`"O)2=RNdR OS \Gi슜%/1L*Y#_d: K)g IF<&d:I $UL*jW^mxI Ǒꎟ'CZY # @ߥz&wp }G'(aދlpA ]H5A߉߭8=7Q:٨o1 $'/Uɐfq#mwiG]Y@ \s"xu&AW?TE{nf]5H\߮r<R7Y WbΛE^ײ&WʃHW;ʤbTd &,vav Bx5Ȥb2ؿBl; NKj:⼢^eqbhJ |kp{mdqFBx둋d:G4-{ZV?y$zpY +.ú~m,Zu \fH~eF]9ϸ*]T&Rq=Rq1T ("gP ~`"W ?ŕm rkg>J^?e#}?ix* H@lJF&jYB\aܷ݉\mHsi=>ohʼޟ7+t2eT\D8 @vF/~m%o5:4xlP&rȭxµ؁7O2 Fe­E.iN0%|vP0*{7)YG\7܃$J'\E.JKΡa_uR]h-״JH $yqiyJ gP:)u|B3Ra 4m۱;}⥎=t~/ѧl1Hӓg~ρK~f\agZinQ(NL;)N!~n_ިlFL7Dy w݃<!CE#- ұ@^[iMaũI4Ak0~YPo[v֮<@ @WI8yaέ:̶RG9eP,qHގ,Qj/w/k[Mز4IN̽8gf7) l5{%t '$6 imƣ^dIe /|a`vQn 0{2wM*4InH ksYG%cfaÜ 4K헎7KTܾH%=|bw6=(H×mC.RCg.b ;sD} ɧ(hv"U\J'rx6dRBygЬS_R)Ȅ $_\EljfRZf,nَ߲X]2U3\am"Wx Y~Iބ>BQ3lw3rbuG/Ძq7z1"^?Y5fǖL`o1M,m ܚʫSʏD~{0Zఉg&Rn@6L ߀0Uf sv*2;~>R ?&_ $Ev"ԹB62l<*ccncvtdŰϴMdL*fl/=cwMToTW֖=ۦ|msM`qKeo%g8W0K k"lFz:,eo+ZDE("c) TT* ~`cS*ڶCD%B6Pv^A.LTJ!ͱ"B dLDp?Qmj"+Dp5ژ.!gPC)^QQp[}_S{aI:LPP飯HDkсmݏ1\aS_h+؂yC7ЭQ 3#o/Kf.cyFX~6jKoYrV%H"W WAbcxtܧ {{ys*BdahAEu%y_ Ad*ԗfe !v^Ei`Ju ~7=z ۞:0WL$ ė{l"8±ֻE;H A vȟ݆Z;c|x M=1nE&w ]WVo8;1_x"`iک[ *^iX۶ gdeskcal-0.57.1/skins/e/today.png0000644000175000017500000000114007647130023016612 0ustar seb128seb12800000000000000PNG  IHDRw=bKGD#12\0 pHYs  d_tIMEHC<IDATxKkTA$$4 52*d#AF;WE \A$݈FL0MdQݓtyNfνSLU5:vu?j81lvckx9_`o,6-}~ a:3]71}: ZEZ-+Q!D[rnIf'p CE;8yptH_*3=TF1y:<7*+eSp µn30F=^bQzr]b&Subb)M=ScQ`3km/! gdeskcal-0.57.1/skins/GNOME/today.png0000644000175000017500000000105607651647430017253 0ustar seb128seb12800000000000000PNG  IHDRw=bKGD pHYs  @AtIME* o%IDATxUK1R`B-7:Hũ( :zB\tE9)b+^sߔx^c"-Z ߈1k3 eajD]ɸm8V37bg r#Lb19"oRo`>\ p%hPxD4n63[)5yDЂw5yyX!j'iLxG @AuH;DDc˕ʵdӯKj* %{Ro`' <ӽ׵6s$pDZZK$og%Gy:_Fkga[2BB] ۆcg}I- Wz{5a kXְ5a kXְ5a ^d3d2ZwKu4pktZV1y׵H&^Q]YC^3""ALi?d+}A7B ]rs' 9~YAo8Ȋ S$)XYQ{t1r<~LՔi;Ǻ Z}v *(LLݯy}3}{nsO}StoIZ04 §eЅ0aQ;2:ޞ$Y#$I|ElEYi/Ӛ{Yv6)d着"˲a=Os⅒GpɹTU G~Ǟ -k Q`Vijj")-ʽB/To Y7B5ϙ%3990@NR={Xh{նJ^E3<{"Lhhh{[nOlC E[Mk慬#Xx[x=H'<~ ] rZnL!($N>LѧT*ŕW9rh$e:|ޕG-[p}ѷp(GO-IMK yOCHPaUٳ"j>4 tvvw^$HZ툢Hss3SSQ$߸asUX6:CGx#q1Bロ} -WWBT4]/IPD-v,NTAX{?НEih@TcTTA::7pǢLOO[}&hAɔH&,\!A8\J!QO>zaqD Og``S0dbryy$C!lݶϚؾ};PxX+{1XWQN>ͅ 8&Ν;ǣ~vՖjdY~_߿(x*BTJ? |#2saF$IүKɧe199I<=Cu۷oIȆ5䤕1pH`P@&ޤ{,V5';ky% e%~suc4owy'--U7iqS ~n޼X8dYiE(ZzNZZZȿҨ9yH1,͛7~z2<Ѓˑ cϑ$%ZeY&ホ3022B?ccck3He)&''z*`p8LSc6cZ[[_  [ ޸6tv47IV"(lhh(rhnn#.^;b1>&'&%Is}s=WE$IHL|7np)6lP-[.V y5_m4&''KclY$Ahmm%#fZl6k5,ˤR)FGFb*:lin套^BenޚrHI`PpcFY}jN^{o@ Aeb4y<jy,v ۑN-"B&xf!MA4nqՂp/M />Dk$1b~- PUs@IkkkQ!_41;;(/_.v~<#۷Zr\^]n SkN+:'dP;v찦~gU8HR?Av{3|ӟfjjʐ "K i-*kXV/`rewt+,U ,o׮]\zՓmmmщH:)I|6owH%(B8Gy#GB24a3෴ZW UU M2TCL&S0/m6G`CI2`ÇRQL(8ӓ̗E#sݻxt155U0,xRnٳg9 νw|\~{O}M]IXaê +>Z Dlmm_#'me^ʥKxZPZdҼی|H,\/JaUװӰ-[Dx׈bȲ立ב3,ܹs\xqY-m1LLW?/,*:*k;`^,xgr ###A瞂RAx N:US115~7ٵr5RHDɫ*&\j`W"{/L֍UA^lvY,o1HD6%͒J7Ͽ\>,(M)G^$e\ZMV rNXӺJ/KerXل5W^]PmZy|"|"T#K%^1 CCC|\uބRغu+=== ( Z:\P2kջ#Qӥgr i zE`ϳ^xw/[ladd3UYD1P UMσCBxاe RR"O$6&S>\p_?g~QrVw4^S…$Czk['+jN^&ܖ aOVTRY33 U  ajjJ %lYGFܺln)c8d(̙& {!OF\vC[G: CCCqv,i9}wBͯ^ Ԕ$#˲RAN -ۣμ X$^S,#YG幱*c|k_c˖- ^a2:K:ϕtrPȊ_D-P$$ A 84v/شaQ,6->l%|O{{Gz tUR[jVH5'/Yɲ" (߬"ӳIl2ۉlv@of^z_pL&f|*,TV Yu ֐ pL`- U$]J5^MKf3,Ͽ<LMEBek*⒬n%j`bU l R Δ5X$WMK&jî9~8K2bE G2Ex/.U2ʿk<-0'1a;*\D>>GKcQ:3}z-PZݕ l*9Qf, I ;:<$>Gyl޼?d*WkA=J[Jj^X9UI<{ O!Klb" `==xGձ>&|0t%%q0DZuKͨ9S% 6Hh n6:lM51Yy|+3qkYƧv ^c8[d(FnS2ѷF;9mq+3)K 8 77ذbc_ʗyOL~h4Wc.ѹ{{1T-8#!5'y ZaXngOރԵ1 35u;֡Vw5 !qAB@i+loJ@5vK ;v];o/s hԈ+ .6H+ðT "+AUA^P &D4s}iD8 ===twrsƲo/Ͽ٪mZbEQДBn.cMKuX7qֵsGzoϿ<6bݧqOog?YCty"@,eu1vvX5 "Yș(Fbg!2?cCU72$n?9.^XBAq"~ޚ=q`QZD\+'-l8 n2{}DQ'}ɲԌnyOC8Vd+UֶV†^ʗ;H[ֵ'+`+mM ȲlX✜:X̰\~f]8x z8VLC*,ߏX;XףX,CVw1iGEU5'/VW+ 4% +]#?&LO?MKs"DQ̳>=>\Y ?"q2\(mu(ukQ䵖Bn- 5MIYm R$y$駟&[}ӷEњP1NYM>DEO4r=0%͖-'ѶY4ꮀì vhYdMIYeǢdYfϮ;9ҽg?d]K=(kݳpE_Ib:7qM#`j]AV?Qev).'PF0_2O=%eUO$;w1@Z-G.<3s>YV2tKAkFGDgWTU%%%;>IDAT!18lZeG[8bd:_ ]_E%cǮ9vLOOM^ cKyA ړ\9-Y&VƂZKǪм`\-C:S7u S ^1` \RogzUv?N2dxxLfH^k *~ci\}*D]f :bR e ~di!""}L*Be/r#U#/c ;hV?MRVWVd\ȣc{ OϤ0a/ J p~.FQ0g-1/3 /`mKYhX 9G&(L2|;+ @8\oرc\ύ\Xm1 P-˲%VJ6T]W ~Ϝ667m6^t]>O^9jsDAEǏ=BP;~>fTC!e%FFn. -ͭ|_8Ciw[ q˱.CuX]Y!)R.Ǐɨ)g@@Do.滰XՂ(GbpZbpjBH _ .H$hhhcǎG?^$];ws] 28|z G\.3i\XTVyAbR"/D>^y8y򍪦4sϑL&9F&-^ :`#n/712![TG}2M#1Gd$t!/L|t:w͕+W^[?o vl[\!9.MB=.~. *j7rA$~" ;lL]X/OR  vg&9s˗/359URV4yGgrr3grr2O&TJ\c #L擭AhqYs _ą9(MKr#Nal", gGA$fggI&gDdYB7mvihh H0<ȏ*UL%7:WbJk^(Mb1m TZTha9S PE>3i]pܴVRԜPҺgҊrEf˖u\)kלX)\n1s#-w@*!r,הp%5;;ikC\-/yr/h5e{xǛ"A92bWZz[lPfָĵ{4[AVV duo+& n$ o)ֶT򲸦us͟+eqMԜv[Mdf^(MH$H'6illt {jm#6Q__wL&ܼXtL&C8&Q1G ak$IdYdYF!@(BFRK̄}̇~)9yMxJ~L)*FXt*scȊY/@C}9p`׿~ )''iG N[S7?I?T ƽCۺo sU< =ݤ Ӝ{u]d҆5w{n. qȥ-<̈́Dl~*u> ,RnRʲ̹s͑'d(L&f:w&Xfܹs47XyL&M&{#,sE~qӱu EOqs?}}0CerW՘b,˜f~uVB~sa3GG|iu/zMdT5[yȨdYFf&?)/`D)iyǍ; ,2j2bd}>k:ݛ=nذa !@$2 LёWu`d2ٳg߿_ѣo3Ǐ[E;D^asڈF}>E ڿ?t7I&<أHį)s m6$Yu:%(_`l̙Fioogrbұ]$- #샳-:qA{EC ,oPм4{:O9:~c<^'ȑ#q.\`uL&a4y *8NLӟu-pBZə;`xxd2((B08̢DUD"~&FGF-/_… 0087? *إ,vX}Zu0_nYejNbcC֭֭[ghL| gm>Gܶᵟso}['kSU5oT{Ό%SFM`o8tb@?>o޵20t&&&6`{gسgĮ( hYzbcה μ,").B&jyE&iUMլnmC'?vY׼5z]UUz{{>˾}JÇl0A='Oڋlݺ;6UM)p]wx`~-eww7mmm pw}7Dj|l($IwU|dsf(3~`jX\0k={W.N^/n\.IIZkߋv"WBfMӈGۼ`~#(B:& Id2]w- MK7ʃ=ب7Wڶu1<0tokgfnr3o \t9Ӱo3$kd2i|A8dcQnܼA$Onݲ[)4W2ȦkrME'YpI)幯Tڧ&M|=@2N|]$vMǢ֬[of~+ǵk׸5zD2A ҽ0A~:6}vn߾M*"RMR7! ~::е[ȗ P;N\__cUeIE(R];wέe Ŋ}A6l  111 dӦMCs8=tuu厍~}+  dصk---׿& #J155e0GH… Vwƍx{HD"`=ݻ3g066j477Hww78?(B+ t[^YQP3/kmEɫJ%,yAϦ i ]*&g @cS#p^nZ㹕y2d3YbAQ2̫L__t׮;VׅYn5#'˲18YQ7  .K2I i]xl6"-ڂ߅|O%e`QYYT+*# u$R>vul 8pZۜm-ѭRp(l? C!9nt kN+B-lOTpٳhz'.+4*UjTGEtA4{e_* ۼ;5>Դ3H(2U$.,#y?'Nq2 Iz&nGS[WݤXB#^pC%tUl$mgQEGtYW@K JkJq5яOӍ0tBE066R沮rA`+S϶>:<#J^ 8&M,,ےPf<[E`Sg($ /N3q6̩rNMtп_(w]Ɔ&:;:Tr|&M}])mj YZ4ļK`*KL*2~E͋5s1XA B\X|=u_v}/J& bUjP k^.ҙZl XF\X7?|v Fau47Vd?wy+/+]3d ~ϗ+S:Wϊ饢kXhinv4Ċ//K⫯m%5",Lpf.ňu˶WX՜59}L:QF`lXL[ed&*kp2uHlܙ<{gV[^u\Ow)_%Gw+Lnx-,`\%yٛ@~|]" @Qpτݻv:_Gi sv;BIfYL`u^VYVGXPyγ2W\u=yfAS3^QY56Mi4L+_fWk~ٿT:32"hBDc0VIiPMxV.Y+ӲFj:f2.K,[8=Ѻ;KW 9V3|kLȱchcXl p蝖%O|veU`m3`_oH \q$Am]ZJ%FcP0cԱ"$V8/2X#zN`z3H tz7{z~:  }lJ$vUx4×?.f xfBHiSh9'O2iSݲ8Tg393rPם@W'Wi])L`-[4Y;ؠkGzhžG! 5(]s4/V-t͌LXDMQVg4T9ЧkrbFy*gWr3 IL;}XaVᩤU8Tf V|GC.̜:"u݃r!;9cSN~FqTZCf`* gBٝ0%y"O\ןXgh3@ӄEߺq\;뾤smun9u ?Rp4ew(/)5p[S,iSh"ja(;})M^ט0҉Hq0qn&muJ"՟4uzrd`A ՝߷+EuС:嘬eNGUx|e@;7UH?`os o:Vf#y{, `2V7,45M:pTo `crѲ崖+w1_˾Tg97]g9Yjorxi `e& 8"m>reʯo$mݕæX/$65}gjS|L(2Gn=k{TϻwH7CBHe3Ot 3:&sR]V&kޓ`7.'ѻ8R0 3`*EDC8&xᶵdpNP=We9Փ_cn& { X0 .4yjH0+dtNËN[C[ 83ߖ>@bG&!vqXEkgCL4|ȬI;q@{Hi<#D/\+p]|{;!;Ap6ˏkw ZZY(mc)mGpVGY,=8m68a1@>bq<9m*?.΋Q>G9J%*N ]mp! Ͽ?W7߬|w}.…S~Y~7n7n?}˗/&,,[.\XGq»"_DWzW=}<+]߫tӞ򫪶uJ?dOY{{꨿BV-`u_?zP2CLLqpy .,a ]m(끧)]FNI'׻q, Ow7"n1 ept$ra( y;܁UiFmGofP>ʷ˃Iյ F/:54鳯!쵢sr3Q`0^-qK9ݮwu9T8k.r՗"`Ea09lLRK b/ծ$^:ϽT;^u_5ey`w}=H LdW Wt^Lf/ś<{l;""ZCp<{{l:CNN^W+S i{CثÅ|'T/J '`b-ady(^,殇;ݥN`/Kԭc/؋mِ^3 bUu5ޑ*N^}#v { kź'f0vMf@{K^+k`eJT@&` @9]uqe^=֛~'rm5+T09\4X{^h`{gg;p) o;[ s]oӏ'S"hf#k*{)%LfHnId/=DP͡UP # BV${uGm47fhp$^a/S|#fe {[b/AGTb/Skmw2f:؋_? `;{ e90"#d%cJ .bHW,r S^ f/mt^TmPdIϪLj <{Ldw`/7n}7\u; k}`{r^VdMFP01u\<ġ`/3r$u >ǐ^B]| C+SGÖSkźr쵻"څ/K^#)mb)ER%Bªp`NğlUapk,=U8٫. 8;u{ً/%forǿ"vDkEb/ zaQUZ^=U$^ x-3 A3kBPp&1WkE6{d/"RJ%,}=_f/=Alf߷`/-DWI|^9)e5^D*όb9bfeAe;%Bj$J@׊lZݲ̰T%9^DWVx(=^@V;;n6o*q8@a\WW`/"'d/$jyQZHd/ky0]k㝨Z%Ԡ^f6w _{`:U:{^dMk\d/3r$^P"H3w?ġ e_@gbW8@QlS:{aj#s^{1St$/^=uRQ*^`  ^zڰ7bݕ{YB${meFًY^?@)٢⓲׊3_zr8Q$[X5t׊lP ^lb/.b/yՎֻh@ {f^~U*eKiWCq"F:>֑y؋3k5J^X^433fW2{5^4/HWA${!==3"_Ii_}(TGם{W}RNy,rvw˾ Ɯ gdeskcal-0.57.1/skins/gorillerat/home.png0000644000175000017500000000024707706517133020360 0ustar seb128seb12800000000000000PNG  IHDR Vu\bKGDBBB0D pHYs  ~tIME0t4IDATxc`5`Db'F-%.ˆ 8~-,h|BAKņ {3WIENDB`gdeskcal-0.57.1/skins/gorillerat/next.png0000644000175000017500000000023607706517133020404 0ustar seb128seb12800000000000000PNG  IHDR Vu\bKGDBBB0D pHYs  ~tIME;'S+IDATxc`?$j%it+IENDB`gdeskcal-0.57.1/skins/gorillerat/prev.png0000644000175000017500000000024207706517133020377 0ustar seb128seb12800000000000000PNG  IHDR Vu\bKGDBBB0D pHYs  ~tIME;J7/IDATxc`?BFlXFF4೑jIENDB`gdeskcal-0.57.1/skins/gorillerat/today.png0000644000175000017500000000120407706517133020542 0ustar seb128seb12800000000000000PNG  IHDRw=bKGD pHYs  ~tIME IDATxջkTA]#F!-TbNK* k-I#XhHPD##GBBݝy`ݹ|߹gΜ_A?p&'wp[]>c% [P Z3TO ~n`_Mfrev\Ɍ%,r0؄Q$_J-/o= A'NaH$TX5ΡHg3]4"1I\JdӼ'ݒj 0چq_1\ٴCi<^y.b:Jt3ZHs&~]!f٤X\ GmآQlҡK{Cs6x.Tŀ "& jxvmPxzhh'.my .jbe%]|M~\ VhYc% [P Z3TO ~n`_Mfrev\Ɍ%,r0؄Q$_J-/o= A'NaH$TX5ΡHg3]4"1I\JdӼ'ݒj 0چq_1\ٴCi<^y.b:Jt3ZHs&~]!f٤X\ GmآQlҡK{Cs6x.Tŀ "& jxvmPxzhh'.my .jbe%]|M~\ VhY gdeskcal-0.57.1/skins/Grey_skin/prev.png0000644000175000017500000000024407710342253020161 0ustar seb128seb12800000000000000PNG  IHDR |lbKGD̿ pHYs  @AtIME+yFV5IDATxc``3fd`81 #L(&t+\hvÚ2 zd. IENDB`gdeskcal-0.57.1/skins/Grey_skin/next.png0000644000175000017500000000022507710342224020160 0ustar seb128seb12800000000000000PNG  IHDR |lbKGD̿ pHYs  @AtIME {&IDATxc`b)&tI6}8$a`d$UD |IENDB`gdeskcal-0.57.1/skins/Grey_skin/bg.png0000644000175000017500000000104107710340055017567 0ustar seb128seb12800000000000000PNG  IHDR\*GbKGD̿ pHYs  @AtIME)! :dIDATx=R`2l]5Ktnҡւ\ &hes|IArΐrHku\MP=.j6Jd2xfw~t8jϾSא ՐlVIr~`ܻ]a! `&>X/t,L0㢃&yC0`e"%$\cMv]tM]?eox۟#``! `&!``! `&!``!!``! `&!``! `&!``&!``! `&!``! `&! `&!``e$T,aWIJM{)s0v/!-IENDB`gdeskcal-0.57.1/skins/Grey_skin/home.png0000644000175000017500000000032207710337705020140 0ustar seb128seb12800000000000000PNG  IHDR Vu\bKGDW)t pHYs  d_tIME * +z_IDATx1 0 E|:}WB 5huYm$0W5EZ4+ЀyݮOԋL,MQ{ol.Ŧ)IENDB`gdeskcal-0.57.1/skins/LCD/0000755000175000017500000000000007630635742015160 5ustar seb128seb12800000000000000gdeskcal-0.57.1/skins/LCD/bg.xcf0000644000175000017500000005620507627770072016264 0ustar seb128seb12800000000000000gimp xcf fileAn BB/ gimp-commentCreated with The GIMPPfad 0 #BC BC BCBCBCBCBCBCBC  ,8#<DQ Neue Ebene#6     <X  I 6 5ff5ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff56 5ff5ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff56 5ff5ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff575 5 5 5 5 5 5 5 5 5 5 5 5 5 6 f#Lf#f f#f#f ff#ffff#fff#fff#ffff#f#fff#ffff#ff#fff#fff#fff#fff#ff#fff##fff#ffff##fff#ff#ff#f ff#f ffU f#Lf#f f#f#f ff#ffff#fff#fff#ffff#f#fff#ffff#ff#fff#fff#fff#fff#ff#fff##fff#ffff##fff#ff#ff#f ff#f ffU f#Lf#f f#f#f ff#ffff#fff#fff#ffff#f#fff#ffff#ff#fff#fff#fff#fff#ff#fff##fff#ffff##fff#ff#ff#f ff#f ffU C5 5ff5ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff55 5ff5ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff55 5ff5ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff#f#f#4ff565 5 5 5 5 5 5 5 5 5 5 5 5 5 6f#Lf#f f#f#f ff#ffff#ff#fffff#fff#ff#fff#ffff#ff#fff#fffff#f#fff#fffff##fff#ff#f#fff#ff#ff#f ff#f ffL2f#Lf#f f#f#f ff#ffff#ff#fffff#fff#ff#fff#ffff#ff#fff#fffff#f#fff#fffff##fff#ff#f#fff#ff#ff#f ff#f ffL2f#Lf#f f#f#f ff#ffff#ff#fffff#fff#ff#fff#ffff#ff#fff#fffff#f#fff#fffff##fff#ff#f#fff#ff#ff#f ff#f ffL2#iP4( Neue Ebene#5        ,-=M$CScs[<[[:[[;[[:[[9[[[9[[;[[;[[;[[:[[;[[;[[;[[;[[;[[;[[;[[;[[;[[<[[<[[[:[[:[[<[[[:[[;[=[@l#L #Lf #[Lf #[[#f #[[f [[ [[ [[ [[ [[ [[ [[ [[ [[[[ [ [l#L #Lf #Lf ##f #fl#L #Lf #Lf ##f #f  a f f#a f f#a f f#a  ### ### ###  iP4( Neue Ebene#2     )AQaqy#7#5 #4 #3 #2#> 3 3 15 05 /5 .5 -5 -5 ,5 ,5 +555# y#7#5 #4 #3 #2#> 3 3 15 05 /5 .5 -5 -5 ,5 ,5 +555# y#7#5 #4 #3 #2#> 3 3 15 05 /5 .5 -5 -5 ,5 ,5 +555#  2 2 2 2 2 2 2 2 2 2 2 2 3 5=5<5 #####5###5#5 #55#56#57#5 ###5###5######5######5######5######5######5######5######5######55#####55####55 ###5555#55##55##555=5<5 #####5###5#5 #55#56#57#5 ###5###5######5######5######5######5######5######5######5######55#####55####55 ###5555#55##55##555=5<5 #####5###5#5 #55#56#57#5 ###5###5######5######5######5######5######5######5######5######55#####55####55 ###5555#55##55##55              @@@@iP4( Neue Ebene#4     z#$#0$4D!U#L=L=L<L=LL=L=L<L=LL=L=L<L=L,L)L'L&Lf$LfLff#LfLfff#LfLLfff"fLff!fLLff LfLLffLfLLfffLfLLfLffLfLLfLffLfLLfLLffLfLLfLLffLfLLfLLffLfLLfLLffLfLLfLLff LfLLfLLff LfLLfLLffLf,L)L'L&Lf$LfLff#LfLfff#LfLLfff"fLff!fLLff LfLLffLfLLfffLfLLfLffLfLLfLffLfLLfLLffLfLLfLLffLfLLfLLffLfLLfLLffLfLLfLLff LfLLfLLff LfLLfLLffLf,L)L'L&Lf$LfLff#LfLfff#LfLLfff"fLff!fLLff LfLLffLfLLfffLfLLfLffLfLLfLffLfLLfLLffLfLLfLLffLfLLfLLffLfLLfLLffLfLLfLLff LfLLfLLff LfLLfLLffLf.--,,,,,,,,,,,,,,6L;L;L:L8L5 L/L"L9L9L9L9f:f:f:f:f:f:f:f:f:f:f:f:f:f9f9f9f9f6L;L;L:L8L5 L/L"L9L9L9L9f:f:f:f:f:f:f:f:f:f:f:f:f:f9f9f9f9f6L;L;L:L8L5 L/L"L9L9L9L9f:f:f:f:f:f:f:f:f:f:f:f:f:f9f9f9f9f::::::::::::::9999@@@@iP4( Neue Ebene#3     A#$D9DE$=**117^7n==@A D)=<:?f?L?#??f?L?#??f?L?#?9fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#:LfL#:fLL#9fL#8LffLL#6fL#7L#7#G9fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#:LfL#:fLL#9fL#8LffLL#6fL#7L#7#G9fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#;fL#:LfL#:fLL#9fL#8LffLL#6fL#7L#7#G9;;;;;;;;;;;;;;;;;;;;;;;;::8<;:8@@@@iP4( Hintergrund     DE\m\yEQIJNeNuRuSWX YZ\];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;????????????????????????????????????????????????????????????????????????????????????9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999@@@@iP4(gdeskcal-0.57.1/skins/LCD/bg.png0000644000175000017500000000310107627770102016245 0ustar seb128seb12800000000000000PNG  IHDRys2bKGD pHYs  ~tIME:W9IDATxܱXfyZ.}u~=JKOJ[G:`i:#n1b`!7Rrx$58>Խh$ɨ5>,Pn]cw;.:@y.Лtg/// H|*5EQT~REXnT($u׋}{=OOFCE6AM:;=]yEUz9@/u:Ukf=M׵:LoP#hAFd+@(E  P"(@f;+s✓|^uoQ$xIfYFNr/7vX,$˲Vma("r(bD'y:aJQ/Ut ܇MŢHRE*4Mù3 ^HMC䜓ju6P ^HuCЎ"]#"OuQ!JӴ ^HY5Q/u=jv0s9E{ِ$? p$ɨܦH@E! PH"cvVn;9'|4I8L ^zYewY+Eq;MSY,eY04MEs$xIN$ HSHp}xT,/uUj%a_;j"KZ4MTOUK"S])˲@ OE:Gj;L ^0աHҭE*υD.qT%'y]U~ZUvI^{ ?g(R ͒$8>v;\_eͶvaoDZ}7}qڥrD(JM5JD:5;˲Ά?i.]v7\6ִU2]H fG[{t")D")D")D")D8HTH PP(d΢?~HsvhQe%g$"Ti.i\}H΍Dޞw|:X&+4@u"ta 4M5gDD(y."4 ^99'e>16@_HQJaIENDB`gdeskcal-0.57.1/skins/LCD/skin.xml0000644000175000017500000000303507630635742016647 0ustar seb128seb12800000000000000 gdeskcal-0.57.1/skins/LCD/today.png0000644000175000017500000000024107627410201016766 0ustar seb128seb12800000000000000PNG  IHDR5~bKGD pHYs  ~tIME 3O.IDATxc`1`Db!N i4IJ<&*Z0jt,*h8 fIENDB`gdeskcal-0.57.1/skins/LCD/prev.png0000644000175000017500000000026507627767541016656 0ustar seb128seb12800000000000000PNG  IHDRbKGD pHYs  d_tIME Z*2BIDATx1 880hR*f;&N$I#"'7 2ͷA&:IENDB`gdeskcal-0.57.1/skins/LCD/next.png0000644000175000017500000000027607627767511016657 0ustar seb128seb12800000000000000PNG  IHDRbKGD pHYs  d_tIME1l^~KIDATx1 S_ЦmBrJ+9$HJ]<̼ ~T%%$_zWli҅J=IENDB`gdeskcal-0.57.1/skins/LCD/home.png0000644000175000017500000000026707627767437016640 0ustar seb128seb12800000000000000PNG  IHDRbKGD pHYs  ~tIMEDIDATx1 ĮqBI' V(*Ch% v]BW:11-FIENDB`gdeskcal-0.57.1/skins/light_01/0000755000175000017500000000000007677021063016161 5ustar seb128seb12800000000000000gdeskcal-0.57.1/skins/light_01/home.png0000644000175000017500000000140307644105601017610 0ustar seb128seb12800000000000000PNG  IHDRw=bKGDIDATxՕK[Q?1-P(d#[,uli *H".%:àbͳĖ%ty$i,t?~7}q.ἴ` Hǀf 5u3`K41 C,qq,K M& Sm\5 n"M=ii6UN—qՌDVVV܇prYlnEPT*Rd2R>σ>Zŀ*\kI%RT\'b<^/8p_Tj[P~te 16pRKY9]]BU~C9Ԭw)KS=IENDB`gdeskcal-0.57.1/skins/light_01/next.png0000644000175000017500000000104407644105562017645 0ustar seb128seb12800000000000000PNG  IHDRw=bKGDIDATxՕOnPDZ-%;X^p p"U=\ `wD("it5!1H<M1v737.,sU'""YUɺO=:skm6 0L>'#_)1Qn8+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`gdeskcal-0.57.1/skins/light_01/prev.png0000644000175000017500000000107107644105567017650 0ustar seb128seb12800000000000000PNG  IHDRw=bKGDCIDATxՕ@?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`gdeskcal-0.57.1/skins/light_01/bg.png0000644000175000017500000000142307644110223017246 0ustar seb128seb12800000000000000PNG  IHDR[bKGD pHYs9 tIME'/⮹IDATx!OaocHf:`L!0Kd\D!97tcS1A|ب6 U_:9YQ.x @X@X ,@X , ,   aaa@X@X , ,   JI|a h],aa@X@X ,@X ?*M>"{OV@X , ,   JmPѬ(\,aa@X@X ,@X , ,   aaa(:rj a!JP"rPE~Vjn6K]_F7q׻lVAT" aaoրOA   aaa@X@X ,@X , ,  aaa@X@X ,@X , ,   aa@X@X ,@X , ,   aaa@X@X , ,   aaa@X@X ,@X , , Zacp;? gdeskcal-0.57.1/skins/light_02/0000755000175000017500000000000007677021067016166 5ustar seb128seb12800000000000000gdeskcal-0.57.1/skins/light_02/home.png0000644000175000017500000000140307644111237017613 0ustar seb128seb12800000000000000PNG  IHDRw=bKGDIDATxՕK[Q?1-P(d#[,uli *H".%:àbͳĖ%ty$i,t?~7}q.ἴ` Hǀf 5u3`K41 C,qq,K M& Sm\5 n"M=ii6UN—qՌDVVV܇prYlnEPT*Rd2R>σ>Zŀ*\kI%RT\'b<^/8p_Tj[P~te 16pRKY9]]BU~C9Ԭw)KS=IENDB`gdeskcal-0.57.1/skins/light_02/next.png0000644000175000017500000000104407644111237017642 0ustar seb128seb12800000000000000PNG  IHDRw=bKGDIDATxՕOnPDZ-%;X^p p"U=\ `wD("it5!1H<M1v737.,sU'""YUɺO=:skm6 0L>'#_)1Qn8+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`gdeskcal-0.57.1/skins/light_02/prev.png0000644000175000017500000000107107644111237017640 0ustar seb128seb12800000000000000PNG  IHDRw=bKGDCIDATxՕ@?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`gdeskcal-0.57.1/skins/light_02/bg.png0000644000175000017500000000114607644114034017255 0ustar seb128seb12800000000000000PNG  IHDRrbKGD pHYs9 tIME 8Y=IDATxA A 8G(bHhi=O @H $ $  B!B!@H@H $ $  BB!!@H $@H $  \VB!B!@H@H $ $  B!B!@H@H $HmH $ $  B!B!@H@H $ $  B!B!!@H $@H $  )1#@H@H $ $  B!B!@H@H $ $ d  B!B!@H@H $ $  B!B!!@H $@H $  BB!!@H $@H $   B!B!@H@H $ $  B!B!@H@H $@H $  BB!A :IENDB`gdeskcal-0.57.1/skins/light_02/skin.xml0000644000175000017500000000247407644113400017646 0ustar seb128seb12800000000000000 gdeskcal-0.57.1/skins/miderat_RTL/0000755000175000017500000000000007643545724016730 5ustar seb128seb12800000000000000gdeskcal-0.57.1/skins/miderat_RTL/skin.xml0000644000175000017500000000503007643545360020410 0ustar seb128seb12800000000000000 gdeskcal-0.57.1/skins/miderat_RTL/bg.xcf0000644000175000017500000022106207643544707020025 0ustar seb128seb12800000000000000gimp xcf fileBЗBЗgO` New Layer#1     +NOg ANzNNNNNNN@../.-./.,./.,./0.+./0.+./0.*./0.*./0.)./0.). /0.(. /0.(. /01.(. /01.'. /01.'. /01.&. /01.&. /01.%. /01.%. /01.$. /012.$. /012.#. /012.#. /012.". /012."./012.!. /012.!./012. ./0123. ./0123../0123../0123../0123../0123../0123../0123../0123../01234../01234../01234../01234../01234../01234../012345../012345@.010-010,010,0120+0120+0120*0120*0120*0 120)0 120)0 120(0 1230(0 1230'0 1230'0 1230&0 1230&0 1230%0 1230%0 1230$0 1230$0 12340#0 12340#0 12340"0 12340"0 12340!0 12340!012340 012340 0123450012345001234500123450012345001234500123450012345001234560012345600123456001234560012345600123456001234567001234567@8665543 3 2 1 1 0 0 / . . - - , + + * ) ( ' & & % $ # " !              [?/01234567889:;<==>?@ABCDEFG/001234567889:;<<=>?@ABCDEFGG00123456789:;;<=>?@ABCDEFFGH00123456789:;;<=>?@ABCDEEFGHI00123456789::;<=>?@ABCDEEFGHIJ00123456789::;<=>?@ABCDDEFGHIJK001234567899:;<=>?@ABCCDEFGHIJKL0011234567889:;<=>?@ABCCDEFGHIJKLM011234567889:;<=>?@ABBCDEFGHIJKLLM1123456789:;<=>?@AABCDEFGHIJKLLMN1123456789:;<=>?@@ABCDEFGHIJKKLMNO1123456789:;<=>?@@ABCDEFGHIJJKLMNOP1123456789:;<=>??@ABCDEFGHIJJKLMNOPQ1123456789:;<=>>?@ABCDEFGHIIJKLMNOPQR1123456789:;<=>>?@ABCDEFGHHIJKLMNOPQRS1123456789:;<==>?@ABCDEFGGHIJKLMNOPQRRS11223456789:;<<=>?@ABCDEFGGHIJKLMNOPQQRST1223456789:;;<=>?@ABCDEFFGHIJKLMNOPQQRSTU223456789:;;<=>?@ABCDEEFGHIJKLMNOPPQRSTTU223456789::;<=>?@ABCDEEFGHIJKLMNOOPQRSTTUV2234567899:;<=>?@ABCDDEFGHIJKLMNOOPQRSSTUVW2234567899:;<=>?@ABCCDEFGHIJKLMNNOPQRRSTUVWW2234567889:;<=>?@ABCCDEFGHIJKLMMNOPQRRSTUVWWX2233456789:;<=>?@ABBCDEFGHIJKLLMNOPQQRSTUVVWXY2233456789:;<=>?@AABCDEFGHIJKLLMNOPQQRSTUUVWXYZ233456789:;<=>?@@ABCDEFGHIJKKLMNOPPQRSTUUVWXYZ[33456789:;<=>?@@ABCDEFGHIJJKLMNOPPQRSTTUVWXYZ[\33456789:;<=>??@ABCDEFGHIJJKLMNOOPQRSSTUVWXYZ[\]33456789:;<=>>?@ABCDEFGHIIJKLMNOOPQRSSTUVWXYZ[\]]33456789:;<=>>?@ABCDEFGHHIJKLMNNOPQRRSTUVWXYZ[\\]^33456789:;<==>?@ABCDEFGHHIJKLMNNOPQQRSTUVWXYZ[\\]^_33456789:;<<=>?@ABCDEEFGHIJKLLMNOPQQRSTUVWXYZ[[\]^_`334456789:;<<=>?@ABCDDEFGHIJJKLMNOPPQRSTUVWXYZZ[\]^_`a34456789:;;<=>?@ABCDDEFGGHIJKLMNOOPQRSTUVWXYZZ[\]^_`ab34456789::;<=>?@ABCCDEFGGHIJKLMNNOPQRSTUVWXYYZ[\]^_`abc44567899:;<=>?@ABCCDEFFGHIJKLMNNOPQRSTUVWXXYZ[\]^_`abcc44567899:;<=>?@ABBCDEFFGHIJKLMMNOPQRSTUVWXXYZ[\]^_`abbcd44567889:;<=>?@ABBCDEEFGHIJKLLMNOPQRSTUVWWXYZ[\]^_`aabcde445567789:;<=>?@AABCDEEFGHIJKLLMNOPQRSTUVVWXYZ[\]^_`aabcdef45567789:;<=>?@@ABCDDEFGHIJKKLMNOPQRSTUUVWXYZ[\]^_``abcdefg4556789:;<=>?@@ABCDDEFGHIJJKLMNOPQRSTUUVWXYZ[\]^__`abcdefgh556789:;<=>??@ABCCDEFGHIIJKLMNOPQRSTTUVWXYZ[\]^__`abcdefghi556789:;<=>??@ABCCDEFGHIIJKLMNOPQRSSTUVWXYZ[\]^^_`abcdefghii556789:;<<=>?@ABBCDEFGHHIJKLMNOPQRSSTUVWXYZ[\]]^_`abcdefghhij?123456789:;<=>>?@ABCDEFGHH1223456789:;<=>>?@ABCDEFGGHI223456789:;<==>?@ABCDEFFGHIJ223456789:;<<=>?@ABCDEFFGHIJK223456789:;<<=>?@ABCDEEFGHIJKL223456789:;;<=>?@ABCDEEFGHIJKLM223456789::;<=>?@ABCDDEFGHIJKLMM2233456789::;<=>?@ABCCDEFGHIJKLMMN233456789:;<=>?@ABCCDEFGHIJKLLMNO233456789:;<=>?@ABBCDEFGHIJKLLMNOP33456789:;<=>?@AABCDEFGHIJKKLMNOPQ33456789:;<=>?@AABCDEFGHIJJKLMNOPQR33456789:;<=>?@@ABCDEFGHIJJKLMNOPQRS33456789:;<=>?@@ABCDEFGHIIJKLMNOPQRRS33456789:;<=>??@ABCDEFGHHIJKLMNOPQRRST33456789:;<=>>?@ABCDEFGHHIJKLMNOPQQRSTU334456789:;<=>>?@ABCDEFGGHIJKLMNOPQQRSTTU34456789:;<==>?@ABCDEFGGHIJKLMNOPPQRSTTUV34456789:;<<=>?@ABCDEFFGHIJKLMNOOPQRSSTUVW4456789:;<<=>?@ABCDEEFGHIJKLMNOOPQRSSTUVWW4456789:;;<=>?@ABCDEEFGHIJKLMNNOPQRRSTUVWWX4456789::;<=>?@ABCDDEFGHIJKLMNNOPQRRSTUVVWXY4456789::;<=>?@ABCCDEFGHIJKLMMNOPQQRSTUUVWXYZ4456789:;<=>?@ABCCDEFGHIJKLLMNOPQQRSTUUVWXYZ[44556789:;<=>?@ABBCDEFGHIJKLLMNOPPQRSTTUVWXYZ[\4556789:;<=>?@AABCDEFGHIJKKLMNOPPQRSTTUVWXYZ[\]556789:;<=>?@AABCDEFGHIJJKLMNOOPQRSSTUVWXYZ[\\]556789:;<=>?@@ABCDEFGHIJJKLMNOOPQRRSTUVWXYZ[\\]^556789:;<=>?@@ABCDEFGHIIJKLMNNOPQRRSTUVWXYZ[[\]^_556789:;<=>??@ABCDEFGHHIJKLMNNOPQQRSTUVWXYZ[[\]^_`556789:;<=>>?@ABCDEEFGHIJKLMMNOPQQRSTUVWXYZZ[\]^_`a556789:;<=>>?@ABCDEEFGHIJJKLMNOPPQRSTUVWXYYZ[\]^_`ab5566789:;<==>?@ABCDDEFGHHIJKLMNOOPQRSTUVWXYYZ[\]^_`abb5566789:;<<=>?@ABCDDEFGGHIJKLMNNOPQRSTUVWXXYZ[\]^_`abbc566789:;<<=>?@ABCCDEFGGHIJKLMNNOPQRSTUVWWXYZ[\]^_`aabcd66789:;;<=>?@ABCCDEFFGHIJKLMMNOPQRSTUVWWXYZ[\]^_``abcde66789:;;<=>?@ABBCDEFFGHIJKLMMNOPQRSTUVVWXYZ[\]^_``abcdef66789::;<=>?@ABBCDEEFGHIJKLLMNOPQRSTUUVWXYZ[\]^__`abcdefg667899:;<=>?@AABCDEEFGHIJKKLMNOPQRSTUUVWXYZ[\]^^_`abcdefgh6677899:;<=>?@AABCDDEFGHIJKKLMNOPQRSTTUVWXYZ[\]^^_`abcdefggh67789:;<=>?@@ABCDDEFGHIJJKLMNOPQRSTTUVWXYZ[\]]^_`abcdefgghi7789:;<=>?@@ABCCDEFGHIIJKLMNOPQRSSTUVWXYZ[\\]^_`abcdeffghij7789:;<=>>?@ABCCDEFGHIIJKLMNOPQRRSTUVWXYZ[\\]^_`abcdeefghijk7789:;;<=>?@ABBCDEFGHHIJKLMNOPQRRSTUVWXYZ[[\]^_`abcdeefghijkl? 󍎎 򍎎 󎏏 򎏏 󏐐  񐑑 񐑑 󑒒 򑒒 󒓓  勌 䋌 匍 䌍 华 䍎 厏 䎏 叐 䏐 㐑 㐑 呒 䑒 咓 딕 ܋   閗 떗 ꔕ  𕖗  㖗▗ᖗߖג֒ ? GHIJKLMNOPQRRSTUVWXYZ[\]]^_`abbcefgghijklmnoopqrsstuvwxyz{{|}~HIJKLMNOPQQRSTUVWXYZ[\\]^_`abbcefgghijklmnnopqrsstuvwxyz{{|}~IJKLMNOPQQRSTUVWXYZ[[\]^_`aabceffghijkklmnopqrrstuvwxyzz{|}~JKLMNOPPQRSTUVWXYZ[[\]^_`aabceefghiijklmnoopqrstuvwxyyz{|}~KLMNOOPQRSTUVWXYZZ[\]^_``abcdefghiijklmnnopqrstuvwxyyz{|}~LMNOOPQRSTUVWXYYZ[\]^_``abccefghhijklmmnopqrstuvwxxyz{|}~MNNOPQRSTUVWXXYZ[\]^__`abccefghhijklmmnopqrstuvwwxyz{|}~MNOPQRSTUVWXXYZ[\]^__`abbcefgghijkllmnopqrstuvvwxyz{|}~NOPQRSTUVWWXYZ[\]^^_`abbceffghijkklmnopqrstuvvwxyz{|}~OPQRSTUVVWXYZ[\]^^_`aabceffghijjklmnopqrstuuvwxyz{|}~PQRSTUVVWXYZ[\]]^_`aabceefghijjklmnopqrsttuvwxyz{|}~QRSTUUVWXYZ[\\]^_``abceefghiijklmnopqrsttuvwxyz{|}~~RSTTUVWXYZ[\\]^_``abcdefghhijklmnopqrsstuvwxyz{|}~~SSTUVWXYZ[[\]^__`abcdefghhijklmnopqrrstuvwxyz{|}}~STUVWXYZ[[\]^__`abcdefgghijklmnopqrrstuvwxyz{||}~TUVWXXYZ[\]^^_`abcdeffghijklmnopqqrstuvwxyz{{|}~UVVWXYZ[\]]^_`abcdeffghijklmnoppqrstuvwxyz{{|}~UVWXYZZ[\]^_`abcdeefghijklmnoopqrstuvwxyzz{|}~VWXYZZ[\]^_`abcdeefghijklmnoopqrstuvwxyyz{|}~WXYYZ[\]^_`abccdefghijklmnnopqrstuvwxyyz{|}~XXYZ[\]^_`abccdefghijklmmnopqrstuvwxxyz{|}~XYZ[\]^_`abbcdefghijklmmnopqrstuvwwxyz{|}~YZ[\]^_`aabcdefghijkllmnopqrstuvwwxyz{|}~Z[\]^_`aabcdefghijkklmnopqrstuvvwxyz{|}~[\]^_``abcdefghijkklmnopqrstuuvwxyz{|}~\]^__`abcdefghijjklmnopqrsttuvwxyz{|}~]^__`abcdefghiijklmnopqrsttuvwxyz{|}~~^^_`abcdefghhijklmnopqrsstuvwxyz{|}~~^_`abcdefghhijklmnopqrrstuvwxyz{|}}~_`abcdefgghijklmnopqrrstuvwxyz{||}~`abcdeffghijklmnopqqrstuvwxyz{||}~abcdeffghijklmnoppqrstuvwxyz{{|}~bcdeefghijklmnoppqrstuvwxyzz{|}~cddefghijklmnoopqrstuvwxyyz{|}~~ddefghijklmnnopqrstuvwxxyz{|}~~defghijklmmnopqrstuuvwxyz{||}~efghijklmmnopqrsttuvwxyzz{|}~fghijkllmnopqrsttuvwwxyz{|}~ghijkklmnopqrsstuvwwxyz{|}~hijkklmnopqrsstuvvwxyz{|}~ijjklmnopqrrstuvvwxyz{|}~~ijklmnopqrrstuuvwxyz{|}}~jklmnopqqrstuuvwxyz{|}}~klmnopqqrsttuvwxyz{||}~? IJKLMNOPQQRSTUVWXYZ[[\]^_`aabcdefghijkklmnopqqrstuvvwxyz{|}~JKLMNOPQQRSTUVWXYZZ[\]^_``abcddfghiijklmnoopqrstuvvwxyz{|}~KLMNOPPQRSTUVWXYYZ[\]^_``abccdfghhijklmmnopqrstuuvwxyz{|}~LMNOOPQRSTUVWXYYZ[\]^__`abccdfgghijkklmnopqrsttuvwxyz{|}~~MNOOPQRSTUVWXXYZ[\]^__`abbcdegghijkklmnopqrsttuvwxyz{|}}~NNOPQRSTUVWXXYZ[\]^^_`abbcdefghijjklmnopqrsstuvwxyz{|}}~NOPQRSTUVWWXYZ[\]^^_`aabcdefghiijklmnopqrsstuvwxyz{||}~OPQRSTUVVWXYZ[\]]^_`aabcdefghiijklmnopqrrstuvwxyz{{|}~PQRSTUVVWXYZ[\]]^_``abcdefghhijklmnopqqrstuvwxyz{{|}~QRSTUUVWXYZ[\\]^_``abcdefghhijklmnopqqrstuvwxyzz{|}~RSTTUVWXYZ[\\]^__`abcdefgghijklmnoppqrstuvwxyzz{|}~STTUVWXYZ[[\]^__`abcdefgghijklmnoopqrstuvwxyyz{|}~STUVWXYZ[[\]^^_`abcdeffghijklmnoopqrstuvwxxyz{|}~TUVWXYZZ[\]^^_`abcdeffghijklmnnopqrstuvwxxyz{|}~UVWWXYZ[\]]^_`abcddefghijklmmnopqrstuvwwxyz{|}~UVWXYZ[[\]^_`abccdefghijklmmnopqrstuvvwxyz{|}~VWXYYZ[\]^_`abccdefghijkllmnopqrstuvvwxyz{|}~WXYYZ[\]^_`abbcdefghijkllmnopqrstuuvwxyz{|}~XXYZ[\]^_`aabcdefghijkklmnopqrsttuvwxyz{|}~~XYZ[\]^_`aabcdefghijjklmnopqrsttuvwxyz{|}}~YZ[\]^_``abcdefghijjklmnopqrsstuvwxyz{|}}~Z[\]^_``abcdefghiijklmnopqrsstuvwxyz{||}~[\]^__`abcdefghhijklmnopqrrstuvwxyz{{|}~\]^^_`abcdefghhijklmnopqqrstuvwxyz{{|}~]^^_`abcdefgghijklmnopqqrstuvwxyzz{|}~]^_`abcdefgghijklmnoppqrstuvwxyzz{|}~^_`abcdeffghijklmnoopqrstuvwxyyz{|}~_`abcdeefghijklmnoopqrstuvwxxyz{|}~`abcdeefghijklmnnopqrstuvwxxyz{|}~~abcddefghijklmnnopqrstuvwwxyz{|}~~bccdefghijklmmnopqrstuvvwxyz{|}}~ccdefghijkllmnopqrstuvvwxyz{|}}~cdefghijkllmnopqrstuuvwxyz{||}~defghijkklmnopqrstuuvwxyz{||}~efghijjklmnopqrsstuvwxyyz{|}~fghijjklmnopqrsstuvwwxyz{|}}~ghiijklmnopqrrstuvvwxyz{{|}~hiijklmnopqrrstuuvwxyz{{|}~hijklmnopqqrstuuvwxyzz{|}~ijklmnopqqrsttuvwxyyz{|}~jklmnoppqrsttuvwxyyz{|}~klmnoppqrsstuvwxxyz{|}~lmnoopqrsstuvwwxyz{|}~mnnopqrrstuvwwxyz{|}~?ɓɳ˳ϴѴӵ൶ŨϩѪհ԰ǩ˩ϪѪӫի٬۬ҭǦɦͧͧѨި¡¡áâĢģţŤŤƥƥǦǦǧȧȨ   ̀P            lZ6- New Layer     OO_` PQSXgZ-Z\c^____ A>============== A>============== A>==============  @ @+++++++++++++++ @خɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭٮ  @............... @                @ʀ                                =====;;@6 =====;;@6 =====;;@6  $%%$#5# ::?? +++++?+?? خɭخɭخɬحȬحȭخɭخ>? ?# ....?..?1         ?1  ʀ>1  1#.# #        )        )  ) #&##! )            lZ6- Background     ``""&ag:A  @../.-./.,./.,./0.+./0.+./0.*./0.*./0.)./0.). /0.(. /0.(. /01.(. /01.'. /01.'. /01.&. /01.&. /01.%. /01.%. /01.$. /012.$. /012.#. /012.#. /012.". /012."./012.!. /012.!./012. ./0123. ./0123../0123../0123../0123../0123../0123../0123../0123../01234../01234../01234../01234../01234../01234../012345../012345>==============@.010-010,010,0120+0120+0120*0120*0120*0 120)0 120)0 120(0 1230(0 1230'0 1230'0 1230&0 1230&0 1230%0 1230%0 1230$0 1230$0 12340#0 12340#0 12340"0 12340"0 12340!0 12340!012340 012340 0123450012345001234500123450012345001234500123450012345001234560012345600123456001234560012345600123456001234567001234567>==============@8665543 3 2 1 1 0 0 / . . - - , + + * ) ( ' & & % $ # " !             >==============?/01234567889:;<==>?@ABCDEFG/001234567889:;<<=>?@ABCDEFGG00123456789:;;<=>?@ABCDEFFGH00123456789:;;<=>?@ABCDEEFGHI00123456789::;<=>?@ABCDEEFGHIJ00123456789::;<=>?@ABCDDEFGHIJK001234567899:;<=>?@ABCCDEFGHIJKL0011234567889:;<=>?@ABCCDEFGHIJKLM011234567889:;<=>?@ABBCDEFGHIJKLLM1123456789:;<=>?@AABCDEFGHIJKLLMN1123456789:;<=>?@@ABCDEFGHIJKKLMNO1123456789:;<=>?@@ABCDEFGHIJJKLMNOP1123456789:;<=>??@ABCDEFGHIJJKLMNOPQ1123456789:;<=>>?@ABCDEFGHIIJKLMNOPQR1123456789:;<=>>?@ABCDEFGHHIJKLMNOPQRS1123456789:;<==>?@ABCDEFGGHIJKLMNOPQRRS11223456789:;<<=>?@ABCDEFGGHIJKLMNOPQQRST1223456789:;;<=>?@ABCDEFFGHIJKLMNOPQQRSTU223456789:;;<=>?@ABCDEEFGHIJKLMNOPPQRSTTU223456789::;<=>?@ABCDEEFGHIJKLMNOOPQRSTTUV2234567899:;<=>?@ABCDDEFGHIJKLMNOOPQRSSTUVW2234567899:;<=>?@ABCCDEFGHIJKLMNNOPQRRSTUVWW2234567889:;<=>?@ABCCDEFGHIJKLMMNOPQRRSTUVWWX2233456789:;<=>?@ABBCDEFGHIJKLLMNOPQQRSTUVVWXY2233456789:;<=>?@AABCDEFGHIJKLLMNOPQQRSTUUVWXYZ233456789:;<=>?@@ABCDEFGHIJKKLMNOPPQRSTUUVWXYZ[33456789:;<=>?@@ABCDEFGHIJJKLMNOPPQRSTTUVWXYZ[\33456789:;<=>??@ABCDEFGHIJJKLMNOOPQRSSTUVWXYZ[\]33456789:;<=>>?@ABCDEFGHIIJKLMNOOPQRSSTUVWXYZ[\]]33456789:;<=>>?@ABCDEFGHHIJKLMNNOPQRRSTUVWXYZ[\\]^33456789:;<==>?@ABCDEFGHHIJKLMNNOPQQRSTUVWXYZ[\\]^_33456789:;<<=>?@ABCDEEFGHIJKLLMNOPQQRSTUVWXYZ[[\]^_`334456789:;<<=>?@ABCDDEFGHIJJKLMNOPPQRSTUVWXYZZ[\]^_`a34456789:;;<=>?@ABCDDEFGGHIJKLMNOOPQRSTUVWXYZZ[\]^_`ab34456789::;<=>?@ABCCDEFGGHIJKLMNNOPQRSTUVWXYYZ[\]^_`abc44567899:;<=>?@ABCCDEFFGHIJKLMNNOPQRSTUVWXXYZ[\]^_`abcc44567899:;<=>?@ABBCDEFFGHIJKLMMNOPQRSTUVWXXYZ[\]^_`abbcd44567889:;<=>?@ABBCDEEFGHIJKLLMNOPQRSTUVWWXYZ[\]^_`aabcde445567789:;<=>?@AABCDEEFGHIJKLLMNOPQRSTUVVWXYZ[\]^_`aabcdef45567789:;<=>?@@ABCDDEFGHIJKKLMNOPQRSTUUVWXYZ[\]^_``abcdefg4556789:;<=>?@@ABCDDEFGHIJJKLMNOPQRSTUUVWXYZ[\]^__`abcdefgh556789:;<=>??@ABCCDEFGHIIJKLMNOPQRSTTUVWXYZ[\]^__`abcdefghi556789:;<=>??@ABCCDEFGHIIJKLMNOPQRSSTUVWXYZ[\]^^_`abcdefghii556789:;<<=>?@ABBCDEFGHHIJKLMNOPQRSSTUVWXYZ[\]]^_`abcdefghhij?123456789:;<=>>?@ABCDEFGHH1223456789:;<=>>?@ABCDEFGGHI223456789:;<==>?@ABCDEFFGHIJ223456789:;<<=>?@ABCDEFFGHIJK223456789:;<<=>?@ABCDEEFGHIJKL223456789:;;<=>?@ABCDEEFGHIJKLM223456789::;<=>?@ABCDDEFGHIJKLMM2233456789::;<=>?@ABCCDEFGHIJKLMMN233456789:;<=>?@ABCCDEFGHIJKLLMNO233456789:;<=>?@ABBCDEFGHIJKLLMNOP33456789:;<=>?@AABCDEFGHIJKKLMNOPQ33456789:;<=>?@AABCDEFGHIJJKLMNOPQR33456789:;<=>?@@ABCDEFGHIJJKLMNOPQRS33456789:;<=>?@@ABCDEFGHIIJKLMNOPQRRS33456789:;<=>??@ABCDEFGHHIJKLMNOPQRRST33456789:;<=>>?@ABCDEFGHHIJKLMNOPQQRSTU334456789:;<=>>?@ABCDEFGGHIJKLMNOPQQRSTTU34456789:;<==>?@ABCDEFGGHIJKLMNOPPQRSTTUV34456789:;<<=>?@ABCDEFFGHIJKLMNOOPQRSSTUVW4456789:;<<=>?@ABCDEEFGHIJKLMNOOPQRSSTUVWW4456789:;;<=>?@ABCDEEFGHIJKLMNNOPQRRSTUVWWX4456789::;<=>?@ABCDDEFGHIJKLMNNOPQRRSTUVVWXY4456789::;<=>?@ABCCDEFGHIJKLMMNOPQQRSTUUVWXYZ4456789:;<=>?@ABCCDEFGHIJKLLMNOPQQRSTUUVWXYZ[44556789:;<=>?@ABBCDEFGHIJKLLMNOPPQRSTTUVWXYZ[\4556789:;<=>?@AABCDEFGHIJKKLMNOPPQRSTTUVWXYZ[\]556789:;<=>?@AABCDEFGHIJJKLMNOOPQRSSTUVWXYZ[\\]556789:;<=>?@@ABCDEFGHIJJKLMNOOPQRRSTUVWXYZ[\\]^556789:;<=>?@@ABCDEFGHIIJKLMNNOPQRRSTUVWXYZ[[\]^_556789:;<=>??@ABCDEFGHHIJKLMNNOPQQRSTUVWXYZ[[\]^_`556789:;<=>>?@ABCDEEFGHIJKLMMNOPQQRSTUVWXYZZ[\]^_`a556789:;<=>>?@ABCDEEFGHIJJKLMNOPPQRSTUVWXYYZ[\]^_`ab5566789:;<==>?@ABCDDEFGHHIJKLMNOOPQRSTUVWXYYZ[\]^_`abb5566789:;<<=>?@ABCDDEFGGHIJKLMNNOPQRSTUVWXXYZ[\]^_`abbc566789:;<<=>?@ABCCDEFGGHIJKLMNNOPQRSTUVWWXYZ[\]^_`aabcd66789:;;<=>?@ABCCDEFFGHIJKLMMNOPQRSTUVWWXYZ[\]^_``abcde66789:;;<=>?@ABBCDEFFGHIJKLMMNOPQRSTUVVWXYZ[\]^_``abcdef66789::;<=>?@ABBCDEEFGHIJKLLMNOPQRSTUUVWXYZ[\]^__`abcdefg667899:;<=>?@AABCDEEFGHIJKKLMNOPQRSTUUVWXYZ[\]^^_`abcdefgh6677899:;<=>?@AABCDDEFGHIJKKLMNOPQRSTTUVWXYZ[\]^^_`abcdefggh67789:;<=>?@@ABCDDEFGHIJJKLMNOPQRSTTUVWXYZ[\]]^_`abcdefgghi7789:;<=>?@@ABCCDEFGHIIJKLMNOPQRSSTUVWXYZ[\\]^_`abcdeffghij7789:;<=>>?@ABCCDEFGHIIJKLMNOPQRRSTUVWXYZ[\\]^_`abcdeefghijk7789:;;<=>?@ABBCDEFGHHIJKLMNOPQRRSTUVWXYZ[[\]^_`abcdeefghijkl+++++++++++++++? 󍎎 򍎎 󎏏 򎏏 󏐐  񐑑 񐑑 󑒒 򑒒 󒓓  勌 䋌 匍 䌍 华 䍎 厏 䎏 叐 䏐 㐑 㐑 呒 䑒 咓 딕 ܋   閗 떗 ꔕ  𕖗  㖗▗ᖗߖג֒خɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭٮ? GHIJKLMNOPQRRSTUVWXYZ[\]]^_`abbcefgghijklmnoopqrsstuvwxyz{{|}~HIJKLMNOPQQRSTUVWXYZ[\\]^_`abbcefgghijklmnnopqrsstuvwxyz{{|}~IJKLMNOPQQRSTUVWXYZ[[\]^_`aabceffghijkklmnopqrrstuvwxyzz{|}~JKLMNOPPQRSTUVWXYZ[[\]^_`aabceefghiijklmnoopqrstuvwxyyz{|}~KLMNOOPQRSTUVWXYZZ[\]^_``abcdefghiijklmnnopqrstuvwxyyz{|}~LMNOOPQRSTUVWXYYZ[\]^_``abccefghhijklmmnopqrstuvwxxyz{|}~MNNOPQRSTUVWXXYZ[\]^__`abccefghhijklmmnopqrstuvwwxyz{|}~MNOPQRSTUVWXXYZ[\]^__`abbcefgghijkllmnopqrstuvvwxyz{|}~NOPQRSTUVWWXYZ[\]^^_`abbceffghijkklmnopqrstuvvwxyz{|}~OPQRSTUVVWXYZ[\]^^_`aabceffghijjklmnopqrstuuvwxyz{|}~PQRSTUVVWXYZ[\]]^_`aabceefghijjklmnopqrsttuvwxyz{|}~QRSTUUVWXYZ[\\]^_``abceefghiijklmnopqrsttuvwxyz{|}~~RSTTUVWXYZ[\\]^_``abcdefghhijklmnopqrsstuvwxyz{|}~~SSTUVWXYZ[[\]^__`abcdefghhijklmnopqrrstuvwxyz{|}}~STUVWXYZ[[\]^__`abcdefgghijklmnopqrrstuvwxyz{||}~TUVWXXYZ[\]^^_`abcdeffghijklmnopqqrstuvwxyz{{|}~UVVWXYZ[\]]^_`abcdeffghijklmnoppqrstuvwxyz{{|}~UVWXYZZ[\]^_`abcdeefghijklmnoopqrstuvwxyzz{|}~VWXYZZ[\]^_`abcdeefghijklmnoopqrstuvwxyyz{|}~WXYYZ[\]^_`abccdefghijklmnnopqrstuvwxyyz{|}~XXYZ[\]^_`abccdefghijklmmnopqrstuvwxxyz{|}~XYZ[\]^_`abbcdefghijklmmnopqrstuvwwxyz{|}~YZ[\]^_`aabcdefghijkllmnopqrstuvwwxyz{|}~Z[\]^_`aabcdefghijkklmnopqrstuvvwxyz{|}~[\]^_``abcdefghijkklmnopqrstuuvwxyz{|}~\]^__`abcdefghijjklmnopqrsttuvwxyz{|}~]^__`abcdefghiijklmnopqrsttuvwxyz{|}~~^^_`abcdefghhijklmnopqrsstuvwxyz{|}~~^_`abcdefghhijklmnopqrrstuvwxyz{|}}~_`abcdefgghijklmnopqrrstuvwxyz{||}~`abcdeffghijklmnopqqrstuvwxyz{||}~abcdeffghijklmnoppqrstuvwxyz{{|}~bcdeefghijklmnoppqrstuvwxyzz{|}~cddefghijklmnoopqrstuvwxyyz{|}~~ddefghijklmnnopqrstuvwxxyz{|}~~defghijklmmnopqrstuuvwxyz{||}~efghijklmmnopqrsttuvwxyzz{|}~fghijkllmnopqrsttuvwwxyz{|}~ghijkklmnopqrsstuvwwxyz{|}~hijkklmnopqrsstuvvwxyz{|}~ijjklmnopqrrstuvvwxyz{|}~~ijklmnopqrrstuuvwxyz{|}}~jklmnopqqrstuuvwxyz{|}}~klmnopqqrsttuvwxyz{||}~...............? IJKLMNOPQQRSTUVWXYZ[[\]^_`aabcdefghijkklmnopqqrstuvvwxyz{|}~JKLMNOPQQRSTUVWXYZZ[\]^_``abcddfghiijklmnoopqrstuvvwxyz{|}~KLMNOPPQRSTUVWXYYZ[\]^_``abccdfghhijklmmnopqrstuuvwxyz{|}~LMNOOPQRSTUVWXYYZ[\]^__`abccdfgghijkklmnopqrsttuvwxyz{|}~~MNOOPQRSTUVWXXYZ[\]^__`abbcdegghijkklmnopqrsttuvwxyz{|}}~NNOPQRSTUVWXXYZ[\]^^_`abbcdefghijjklmnopqrsstuvwxyz{|}}~NOPQRSTUVWWXYZ[\]^^_`aabcdefghiijklmnopqrsstuvwxyz{||}~OPQRSTUVVWXYZ[\]]^_`aabcdefghiijklmnopqrrstuvwxyz{{|}~PQRSTUVVWXYZ[\]]^_``abcdefghhijklmnopqqrstuvwxyz{{|}~QRSTUUVWXYZ[\\]^_``abcdefghhijklmnopqqrstuvwxyzz{|}~RSTTUVWXYZ[\\]^__`abcdefgghijklmnoppqrstuvwxyzz{|}~STTUVWXYZ[[\]^__`abcdefgghijklmnoopqrstuvwxyyz{|}~STUVWXYZ[[\]^^_`abcdeffghijklmnoopqrstuvwxxyz{|}~TUVWXYZZ[\]^^_`abcdeffghijklmnnopqrstuvwxxyz{|}~UVWWXYZ[\]]^_`abcddefghijklmmnopqrstuvwwxyz{|}~UVWXYZ[[\]^_`abccdefghijklmmnopqrstuvvwxyz{|}~VWXYYZ[\]^_`abccdefghijkllmnopqrstuvvwxyz{|}~WXYYZ[\]^_`abbcdefghijkllmnopqrstuuvwxyz{|}~XXYZ[\]^_`aabcdefghijkklmnopqrsttuvwxyz{|}~~XYZ[\]^_`aabcdefghijjklmnopqrsttuvwxyz{|}}~YZ[\]^_``abcdefghijjklmnopqrsstuvwxyz{|}}~Z[\]^_``abcdefghiijklmnopqrsstuvwxyz{||}~[\]^__`abcdefghhijklmnopqrrstuvwxyz{{|}~\]^^_`abcdefghhijklmnopqqrstuvwxyz{{|}~]^^_`abcdefgghijklmnopqqrstuvwxyzz{|}~]^_`abcdefgghijklmnoppqrstuvwxyzz{|}~^_`abcdeffghijklmnoopqrstuvwxyyz{|}~_`abcdeefghijklmnoopqrstuvwxxyz{|}~`abcdeefghijklmnnopqrstuvwxxyz{|}~~abcddefghijklmnnopqrstuvwwxyz{|}~~bccdefghijklmmnopqrstuvvwxyz{|}}~ccdefghijkllmnopqrstuvvwxyz{|}}~cdefghijkllmnopqrstuuvwxyz{||}~defghijkklmnopqrstuuvwxyz{||}~efghijjklmnopqrsstuvwxyyz{|}~fghijjklmnopqrsstuvwwxyz{|}}~ghiijklmnopqrrstuvvwxyz{{|}~hiijklmnopqrrstuuvwxyz{{|}~hijklmnopqqrstuuvwxyzz{|}~ijklmnopqqrsttuvwxyyz{|}~jklmnoppqrsttuvwxyyz{|}~klmnoppqrsstuvwxxyz{|}~lmnoopqrsstuvwwxyz{|}~mnnopqrrstuvwwxyz{|}~               ?ɓɳ˳ϴѴӵ൶ŨϩѪհ԰ǩ˩ϪѪӫի٬۬ҭǦɦͧͧѨި¡¡áâĢģţŤŤƥƥǦǦǧȧȨʀ _                _               ̀_ =====;;A<6@                                                                              =====;;A<6@                                                                              =====;;A~<6@                                                                               ::??                         +++++?+??                         خɭخɭخɬحȬحȭخɭخ~??                          ....?..??       ??ʀ~??       0       0 0                                                                               ?                                                                               ?                                                                               ? ??? ??? ?lZ6-gdeskcal-0.57.1/skins/miderat_RTL/bg.png0000644000175000017500000001341607643544707020033 0ustar seb128seb12800000000000000PNG  IHDRbKGD pHYs  @AtIME10AIDATxOƋ@2a^F#s;'pnMFbx&~?$%R*JUxRH>u{!:vGՙD %oZL"-'Cخ !}~;j(}sCFǗ\7hmX'G׿~h}JZBS9\FŚ/sAjP͸]Ͽ.W+ KL\T@g;@AN/A% oeAN~猝r> }$M\h&P\/-A[)@v}Ysss3lA KWenV<ĀB (zL xN|ME.>Ύcg3{DH K@W4x9?CWlB*}*^r.x'lK WHs5ܠp 1 Le.2m9\{Fv]ZW*Y)eR$fYZ*:}!t(fP @O 3Y|>]^j[1~OVehH^1M xa;aImHl \ѸA%l "nB.n}ƯXķӭ`Q Y2\JUr 2͇:(h53+:9Fha& +BYMaZ0!`eR 6q] J(X@ɯU^ ,k,>OļW+1Wҿ&Ȗtv^(cu"sU+֫Pz QfjD)U+$%77' >[Zǎ׌fSgj5U^ KfRe Vqi0=8 \Q\܄QJKgVٰA3\(,y%&z;T@t2p\*#0d|.rj\D.i@%q=&xvP#~HWc˲NqqA Ə'F#(epiʀz+TAIV-P %r9JՓP έ#|55 A\Qpa=3,675hn԰uEBV57)Ej$}*ԯ`5K( V2 FT0y*֭K[ a צf:J1<\rMy{V/R +خcf9qz@$20Ǥ1\u\ En" R 6Dưbmif!V(d"*kWJ㈦cv`4*brK(\.ev U RCV",XV( [n~%` c Ԏ2ks9Y> 7x5H ^L շL`v4P<ǷeF=\A=YVr0Z`j2|LL:\z}Vo7Ԭn&KM\N>KO\o4ΈT$20 ܬxXrBz|ܛd_ڗnҾEDcFۂruRHmQB@'dA2ޮIW"\sc!s9k2 H8J*[?W,`'2 :\ Zr5O Pmh~ HZɂ37\6d%-%`P_ y MEum:le`43&Un@:3nkjXiSC3P P&y\pq@} .?p%5'C?>J\ f:ܚT*a)S¦4` \aϮBay#I^4's$7 J̏{CKSAtԒ+o3@l~ xuU(U\1CW~Ċx;H;߂st,0 U gIr \>0 Vίy[m "ʃ(15=~ޫ#?7iu0 . 8gRpI_)xcf8ܐWfXBu;jR=6"0QC~?}U(}#-p=7U w.ɘ$%̰@kIdak-*1M11Iw>ar>ܼ;0.f. ZW `XZB,IMl_JPjXV)7җ>d\iϺRZU&ycH&Xcy딇ϫExx5_汾4n8v^Ws..Զxa@Fz*D?W_8`p<<100yx c`8`p<<100yx c`C`ۛ1ޓW0߶cX|'_gY޽ o_ !<) w߽ꫯsV{?ï>_eeY>O?|ɏSYZ<<Z]?0RNڜAKqr\_|qلIZzhE kM?m沤FR p:+nsv_lfsYb\e0`-i\w"EmV;>Hōnf~`IݎKVY$X2ͻ"-? LeIzlr螡EmY)}-RXXSҟ 7Y-}W=HAas,Znc˴t)4ÀY)kub1:3kdWS`Oy`I}.-〺*-{jg’FbBKczKbZvhCUjufFF`Oy`I}^-вq@]3~`O,),it-6{[沪EZ%CG 7k*5Z5ō~/-"`wPZ2 gfIӵHaIk$KZ->oߣ]=jhf摝՚?,i%y@)4^ 2kUx[ |),it-!zu-pLJ> Gqs"`-U5ZFÒƎJ܉ֵX24AKcz,7kWbu-jɣcz).ci@]K[cu2À^ blԒZG:ˍZklf]W5,)Zxx1}+1rkأSHqݏ饸ziQߍ·%'j9RT C,~v@ZZRHaIݴ4%h"%VuG-RH5ӷoW[5\ *%B/-3:W9).|#Љsgk9`W'utnvэ~-şM$Ѫ\K]Z= dW=#40-R05zڽx뮑E K~F̝(u3UROꬖv-4>I >w4QOMGl.vЧr~6Gm [r`hvAUg6Fn {x),isw}FFe]#k?i3tMXꗙ5Rw-gogI~\-Z/-"ŎcUj4\_{,i’Bc*#eD홵̠f,]#krW8pm\ѯҢH!{9r{[ZӻJ7 gn [rfHZ{؇?ƕxְGh’F-cG)FP˘sDF?8:VUf9ވ]-ZbkɏzWp^ckؒ{7sͬEwi3;'{}7-RXPc}ְ73Kigvqz]mJ9Wu's-]Grl˾)zu{x7sY"%{!-5G;jhۛWsSL4Z `oh誴-ib+#;k# gh5\?uWKusQ˕?VL5y=_9>ݴH1;\tVm^mݎƫi}"-FkoЍn_KmQ6}::u\Kr-'=wyӛ֯kkIZG6wGjHq5\#^)s[xգƬFs|D'Ï,)wFt[Ҳ7zhU@kܞŮ2S~;U{'pqܵ5<6mRCf\ִHqQT)Wb{=5soW0 /FG򬘨),i< וš~46{ĬFBYcޔ ߰,IENDB`gdeskcal-0.57.1/skins/miderat_RTL/prev.png0000644000175000017500000000035607643544707020416 0ustar seb128seb12800000000000000PNG  IHDR Vu\bKGD pHYs  tIME;6{IDATxc`z~g_ ~e+S̴߿1{ tb8N'2 c````hmf````PTNgx#ZtRT D5+IENDB`gdeskcal-0.57.1/skins/miderat_RTL/today.png0000644000175000017500000000047007643544707020557 0ustar seb128seb12800000000000000PNG  IHDRw=bKGD pHYs ?@"tIME 5EXIDATxQ @eg  ~D3KAmI p`z1~} v9PGl>d ?Bٟp"k@#66. 8H ֻ0)3003@BA-Ėi`g``p=|)IIENDB`gdeskcal-0.57.1/skins/Red_skin/0000755000175000017500000000000007633071535016311 5ustar seb128seb12800000000000000gdeskcal-0.57.1/skins/Red_skin/bg.png0000644000175000017500000000164007632465041017406 0ustar seb128seb12800000000000000PNG  IHDRbKGDww pHYs  tIME %X&-IDATxٱn@ȚQ1"̼ ݐ:UEb@: chQhSB,W*wO^UodžŸ49w޻;aϳ U}zU5NMyVիsM5yv<6a9^{vjl}Tu?Y_XsOd׶}?9w4Wս?}{iٳ)A[c'#ui뾎 H`$_ A A~ñ`|bK`$0 Co&0 }d A A}mX!7zUu}ss #߮_UUC N˷UU_]WUp A A H`$0 A A H`$0 A A H`$0 A A H`$0 A A H`$0 A A H`$0 A A H`$0 A A H`$0 A A H`$0 A A H`$0 A A H`$0 A A H`$0Qry{EybWWYKIENDB`gdeskcal-0.57.1/skins/Red_skin/prev.png0000644000175000017500000000026107632463775020004 0ustar seb128seb12800000000000000PNG  IHDR Vu\bKGD pHYs  #utIME +0٢>IDATxc`t0v hLcr6P j ng#~,IENDB`gdeskcal-0.57.1/skins/Red_skin/skin.xml0000644000175000017500000000511207632465117020000 0ustar seb128seb12800000000000000 gdeskcal-0.57.1/skins/Red_skin/today.png0000644000175000017500000000077507632463775020162 0ustar seb128seb12800000000000000PNG  IHDRw=bKGD pHYs  @AtIME !/IDATxտkA G%$TzJI2[Bv+)#AȜfoϻ};{>.LKFP? E#\{ '+e|}Wr>*H񦞫r"I=)뇮\/WODԇ=`yKLK"V<#~R4leIENDB`gdeskcal-0.57.1/skins/SimpleForDark/0000755000175000017500000000000007677021041017250 5ustar seb128seb12800000000000000gdeskcal-0.57.1/skins/SimpleForDark/today.png0000644000175000017500000000120407640614414021075 0ustar seb128seb12800000000000000PNG  IHDRw=bKGD pHYs  ~tIME IDATxջkTA]#F!-TbNK* k-I#XhHPD##GBBݝy`ݹ|߹gΜ_A?p&'wp[]>c% [P Z3TO ~n`_Mfrev\Ɍ%,r0؄Q$_J-/o= A'NaH$TX5ΡHg3]4"1I\JdӼ'ݒj 0چq_1\ٴCi<^y.b:Jt3ZHs&~]!f٤X\ GmآQlҡK{Cs6x.Tŀ "& jxvmPxzhh'.my .jbe%]|M~\ VhY gdeskcal-0.57.1/skins/tiny_and_simple/0000755000175000017500000000000007630637670017736 5ustar seb128seb12800000000000000gdeskcal-0.57.1/skins/tiny_and_simple/skin.xml0000644000175000017500000000155307630637670021430 0ustar seb128seb12800000000000000 gdeskcal-0.57.1/skins/tnf/0000755000175000017500000000000007640653410015336 5ustar seb128seb12800000000000000gdeskcal-0.57.1/skins/tnf/bg.png0000644000175000017500000000146507640651060016441 0ustar seb128seb12800000000000000PNG  IHDRA\bKGD pHYs ,tIME"/ϽTIDATx=jTQ $X,½!$UV>J 0y9pg7$633G{pp~||1L`!AH`!AH`!AH`!AH`!AH`!AH`!Ah;ffu[_23=8TWo=88_޳%AH`!AH`!AH`!AH`!AH`!m23|϶Ǐ<{,3_=..._.//NNN~:^o|[ef=8dƙ]D B $0 BM`.0,cЍ $0\ : $0 Bmz9hc5W !AH`бM!Pt`\ $0 :!J B`Pt\RP!A6=4CI`1A JRrU J $0ئf( :f0YAI`qU BJAI`r %A !k0( :!AH`!AH`!AH`!AH`!AH`!Ah}OC;IENDB`gdeskcal-0.57.1/skins/tnf/bg.xcf0000644000175000017500000015442407640650326016445 0ustar seb128seb12800000000000000gimp xcf fileBЗBЗVgP New Layer#1     +g.m y@>===========================================@>===========================================@>=========================================== [?1 .,)%$!  !!!""##$%&'()*+,---..--- - , + + * ) ( ' & z#?1 .,)%$!  !!!""##$%&'()*+,---..--- - , + + * ) ( ' & #?1 .,)%$!  !!!""##$%&'()*+,---...// . - , , + * ) ( ' $ ? #!"#$%&''() * + , - . /01234456889<<<>? #!"#$%&''() * + , - . /01234456889<<<>?999:<999999988889999999999888889<<<> P            lZ6- New Layer     8D;- N( A>rr=rr=rr=rr=rr=rr=rr=rr=rr=rr=rr=rr=rr=rr=r A>============== A>==============  @r @ @  @r @ @ rrrrrrrrrrrrrrrrrrrrrrrrrrrrrr=rr=rr=rr=rr=rr=rr=r@6 =======@6 =======@6  $%%$#5# r?? ?? ?? ?# r?1  ?1  ?1  1#.# # rrrrrrrrrrrrr ) ) ) #&##! )            lZ6- Background     W?8]lz#}Г@../.-./.,./.,./0.+./0.+./0.*./0.*./0.)./0.). /0.(. /0.(. /01.(. /01.'. /01.'. /01.&. /01.&. /01.%. /01.%. /01.$. /012.$. /012.#. /012.#. /012.". /012."./012.!. /012.!./012. ./0123. ./0123../0123../0123../0123../0123../0123../0123../0123../01234../01234../01234../01234../01234../01234../012345../012345>==============@.010-010,010,0120+0120+0120*0120*0120*0 120)0 120)0 120(0 1230(0 1230'0 1230'0 1230&0 1230&0 1230%0 1230%0 1230$0 1230$0 12340#0 12340#0 12340"0 12340"0 12340!0 12340!012340 012340 0123450012345001234500123450012345001234500123450012345001234560012345600123456001234560012345600123456001234567001234567>==============@8665543 3 2 1 1 0 0 / . . - - , + + * ) ( ' & & % $ # " !             >==============?/01234567889:;<==>?@ABCDEFG/001234567889:;<<=>?@ABCDEFGG00123456789:;;<=>?@ABCDEFFGH00123456789:;;<=>?@ABCDEEFGHI00123456789::;<=>?@ABCDEEFGHIJ00123456789::;<=>?@ABCDDEFGHIJK001234567899:;<=>?@ABCCDEFGHIJKL0011234567889:;<=>?@ABCCDEFGHIJKLM011234567889:;<=>?@ABBCDEFGHIJKLLM1123456789:;<=>?@AABCDEFGHIJKLLMN1123456789:;<=>?@@ABCDEFGHIJKKLMNO1123456789:;<=>?@@ABCDEFGHIJJKLMNOP1123456789:;<=>??@ABCDEFGHIJJKLMNOPQ1123456789:;<=>>?@ABCDEFGHIIJKLMNOPQR1123456789:;<=>>?@ABCDEFGHHIJKLMNOPQRS1123456789:;<==>?@ABCDEFGGHIJKLMNOPQRRS11223456789:;<<=>?@ABCDEFGGHIJKLMNOPQQRST1223456789:;;<=>?@ABCDEFFGHIJKLMNOPQQRSTU223456789:;;<=>?@ABCDEEFGHIJKLMNOPPQRSTTU223456789::;<=>?@ABCDEEFGHIJKLMNOOPQRSTTUV2234567899:;<=>?@ABCDDEFGHIJKLMNOOPQRSSTUVW2234567899:;<=>?@ABCCDEFGHIJKLMNNOPQRRSTUVWW2234567889:;<=>?@ABCCDEFGHIJKLMMNOPQRRSTUVWWX2233456789:;<=>?@ABBCDEFGHIJKLLMNOPQQRSTUVVWXY2233456789:;<=>?@AABCDEFGHIJKLLMNOPQQRSTUUVWXYZ233456789:;<=>?@@ABCDEFGHIJKKLMNOPPQRSTUUVWXYZ[33456789:;<=>?@@ABCDEFGHIJJKLMNOPPQRSTTUVWXYZ[\33456789:;<=>??@ABCDEFGHIJJKLMNOOPQRSSTUVWXYZ[\]33456789:;<=>>?@ABCDEFGHIIJKLMNOOPQRSSTUVWXYZ[\]]33456789:;<=>>?@ABCDEFGHHIJKLMNNOPQRRSTUVWXYZ[\\]^33456789:;<==>?@ABCDEFGHHIJKLMNNOPQQRSTUVWXYZ[\\]^_33456789:;<<=>?@ABCDEEFGHIJKLLMNOPQQRSTUVWXYZ[[\]^_`334456789:;<<=>?@ABCDDEFGHIJJKLMNOPPQRSTUVWXYZZ[\]^_`a34456789:;;<=>?@ABCDDEFGGHIJKLMNOOPQRSTUVWXYZZ[\]^_`ab34456789::;<=>?@ABCCDEFGGHIJKLMNNOPQRSTUVWXYYZ[\]^_`abc44567899:;<=>?@ABCCDEFFGHIJKLMNNOPQRSTUVWXXYZ[\]^_`abcc44567899:;<=>?@ABBCDEFFGHIJKLMMNOPQRSTUVWXXYZ[\]^_`abbcd44567889:;<=>?@ABBCDEEFGHIJKLLMNOPQRSTUVWWXYZ[\]^_`aabcde445567789:;<=>?@AABCDEEFGHIJKLLMNOPQRSTUVVWXYZ[\]^_`aabcdef45567789:;<=>?@@ABCDDEFGHIJKKLMNOPQRSTUUVWXYZ[\]^_``abcdefg4556789:;<=>?@@ABCDDEFGHIJJKLMNOPQRSTUUVWXYZ[\]^__`abcdefgh556789:;<=>??@ABCCDEFGHIIJKLMNOPQRSTTUVWXYZ[\]^__`abcdefghi556789:;<=>??@ABCCDEFGHIIJKLMNOPQRSSTUVWXYZ[\]^^_`abcdefghii556789:;<<=>?@ABBCDEFGHHIJKLMNOPQRSSTUVWXYZ[\]]^_`abcdefghhij?123456789:;<=>>?@ABCDEFGHH1223456789:;<=>>?@ABCDEFGGHI223456789:;<==>?@ABCDEFFGHIJ223456789:;<<=>?@ABCDEFFGHIJK223456789:;<<=>?@ABCDEEFGHIJKL223456789:;;<=>?@ABCDEEFGHIJKLM223456789::;<=>?@ABCDDEFGHIJKLMM2233456789::;<=>?@ABCCDEFGHIJKLMMN233456789:;<=>?@ABCCDEFGHIJKLLMNO233456789:;<=>?@ABBCDEFGHIJKLLMNOP33456789:;<=>?@AABCDEFGHIJKKLMNOPQ33456789:;<=>?@AABCDEFGHIJJKLMNOPQR33456789:;<=>?@@ABCDEFGHIJJKLMNOPQRS33456789:;<=>?@@ABCDEFGHIIJKLMNOPQRRS33456789:;<=>??@ABCDEFGHHIJKLMNOPQRRST33456789:;<=>>?@ABCDEFGHHIJKLMNOPQQRSTU334456789:;<=>>?@ABCDEFGGHIJKLMNOPQQRSTTU34456789:;<==>?@ABCDEFGGHIJKLMNOPPQRSTTUV34456789:;<<=>?@ABCDEFFGHIJKLMNOOPQRSSTUVW4456789:;<<=>?@ABCDEEFGHIJKLMNOOPQRSSTUVWW4456789:;;<=>?@ABCDEEFGHIJKLMNNOPQRRSTUVWWX4456789::;<=>?@ABCDDEFGHIJKLMNNOPQRRSTUVVWXY4456789::;<=>?@ABCCDEFGHIJKLMMNOPQQRSTUUVWXYZ4456789:;<=>?@ABCCDEFGHIJKLLMNOPQQRSTUUVWXYZ[44556789:;<=>?@ABBCDEFGHIJKLLMNOPPQRSTTUVWXYZ[\4556789:;<=>?@AABCDEFGHIJKKLMNOPPQRSTTUVWXYZ[\]556789:;<=>?@AABCDEFGHIJJKLMNOOPQRSSTUVWXYZ[\\]556789:;<=>?@@ABCDEFGHIJJKLMNOOPQRRSTUVWXYZ[\\]^556789:;<=>?@@ABCDEFGHIIJKLMNNOPQRRSTUVWXYZ[[\]^_556789:;<=>??@ABCDEFGHHIJKLMNNOPQQRSTUVWXYZ[[\]^_`556789:;<=>>?@ABCDEEFGHIJKLMMNOPQQRSTUVWXYZZ[\]^_`a556789:;<=>>?@ABCDEEFGHIJJKLMNOPPQRSTUVWXYYZ[\]^_`ab5566789:;<==>?@ABCDDEFGHHIJKLMNOOPQRSTUVWXYYZ[\]^_`abb5566789:;<<=>?@ABCDDEFGGHIJKLMNNOPQRSTUVWXXYZ[\]^_`abbc566789:;<<=>?@ABCCDEFGGHIJKLMNNOPQRSTUVWWXYZ[\]^_`aabcd66789:;;<=>?@ABCCDEFFGHIJKLMMNOPQRSTUVWWXYZ[\]^_``abcde66789:;;<=>?@ABBCDEFFGHIJKLMMNOPQRSTUVVWXYZ[\]^_``abcdef66789::;<=>?@ABBCDEEFGHIJKLLMNOPQRSTUUVWXYZ[\]^__`abcdefg667899:;<=>?@AABCDEEFGHIJKKLMNOPQRSTUUVWXYZ[\]^^_`abcdefgh6677899:;<=>?@AABCDDEFGHIJKKLMNOPQRSTTUVWXYZ[\]^^_`abcdefggh67789:;<=>?@@ABCDDEFGHIJJKLMNOPQRSTTUVWXYZ[\]]^_`abcdefgghi7789:;<=>?@@ABCCDEFGHIIJKLMNOPQRSSTUVWXYZ[\\]^_`abcdeffghij7789:;<=>>?@ABCCDEFGHIIJKLMNOPQRRSTUVWXYZ[\\]^_`abcdeefghijk7789:;;<=>?@ABBCDEFGHHIJKLMNOPQRRSTUVWXYZ[[\]^_`abcdeefghijkl+++++++++++++++? 󍎎 򍎎 󎏏 򎏏 󏐐  񐑑 񐑑 󑒒 򑒒 󒓓  勌 䋌 匍 䌍 华 䍎 厏 䎏 叐 䏐 㐑 㐑 呒 䑒 咓 딕 ܋   閗 떗 ꔕ  𕖗  㖗▗ᖗߖג֒خɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭخɭٮ? GHIJKLMNOPQRRSTUVWXYZ[\]]^_`abbcefgghijklmnoopqrsstuvwxyz{{|}~HIJKLMNOPQQRSTUVWXYZ[\\]^_`abbcefgghijklmnnopqrsstuvwxyz{{|}~IJKLMNOPQQRSTUVWXYZ[[\]^_`aabceffghijkklmnopqrrstuvwxyzz{|}~JKLMNOPPQRSTUVWXYZ[[\]^_`aabceefghiijklmnoopqrstuvwxyyz{|}~KLMNOOPQRSTUVWXYZZ[\]^_``abcdefghiijklmnnopqrstuvwxyyz{|}~LMNOOPQRSTUVWXYYZ[\]^_``abccefghhijklmmnopqrstuvwxxyz{|}~MNNOPQRSTUVWXXYZ[\]^__`abccefghhijklmmnopqrstuvwwxyz{|}~MNOPQRSTUVWXXYZ[\]^__`abbcefgghijkllmnopqrstuvvwxyz{|}~NOPQRSTUVWWXYZ[\]^^_`abbceffghijkklmnopqrstuvvwxyz{|}~OPQRSTUVVWXYZ[\]^^_`aabceffghijjklmnopqrstuuvwxyz{|}~PQRSTUVVWXYZ[\]]^_`aabceefghijjklmnopqrsttuvwxyz{|}~QRSTUUVWXYZ[\\]^_``abceefghiijklmnopqrsttuvwxyz{|}~~RSTTUVWXYZ[\\]^_``abcdefghhijklmnopqrsstuvwxyz{|}~~SSTUVWXYZ[[\]^__`abcdefghhijklmnopqrrstuvwxyz{|}}~STUVWXYZ[[\]^__`abcdefgghijklmnopqrrstuvwxyz{||}~TUVWXXYZ[\]^^_`abcdeffghijklmnopqqrstuvwxyz{{|}~UVVWXYZ[\]]^_`abcdeffghijklmnoppqrstuvwxyz{{|}~UVWXYZZ[\]^_`abcdeefghijklmnoopqrstuvwxyzz{|}~VWXYZZ[\]^_`abcdeefghijklmnoopqrstuvwxyyz{|}~WXYYZ[\]^_`abccdefghijklmnnopqrstuvwxyyz{|}~XXYZ[\]^_`abccdefghijklmmnopqrstuvwxxyz{|}~XYZ[\]^_`abbcdefghijklmmnopqrstuvwwxyz{|}~YZ[\]^_`aabcdefghijkllmnopqrstuvwwxyz{|}~Z[\]^_`aabcdefghijkklmnopqrstuvvwxyz{|}~[\]^_``abcdefghijkklmnopqrstuuvwxyz{|}~\]^__`abcdefghijjklmnopqrsttuvwxyz{|}~]^__`abcdefghiijklmnopqrsttuvwxyz{|}~~^^_`abcdefghhijklmnopqrsstuvwxyz{|}~~^_`abcdefghhijklmnopqrrstuvwxyz{|}}~_`abcdefgghijklmnopqrrstuvwxyz{||}~`abcdeffghijklmnopqqrstuvwxyz{||}~abcdeffghijklmnoppqrstuvwxyz{{|}~bcdeefghijklmnoppqrstuvwxyzz{|}~cddefghijklmnoopqrstuvwxyyz{|}~~ddefghijklmnnopqrstuvwxxyz{|}~~defghijklmmnopqrstuuvwxyz{||}~efghijklmmnopqrsttuvwxyzz{|}~fghijkllmnopqrsttuvwwxyz{|}~ghijkklmnopqrsstuvwwxyz{|}~hijkklmnopqrsstuvvwxyz{|}~ijjklmnopqrrstuvvwxyz{|}~~ijklmnopqrrstuuvwxyz{|}}~jklmnopqqrstuuvwxyz{|}}~klmnopqqrsttuvwxyz{||}~...............? IJKLMNOPQQRSTUVWXYZ[[\]^_`aabcdefghijkklmnopqqrstuvvwxyz{|}~JKLMNOPQQRSTUVWXYZZ[\]^_``abcddfghiijklmnoopqrstuvvwxyz{|}~KLMNOPPQRSTUVWXYYZ[\]^_``abccdfghhijklmmnopqrstuuvwxyz{|}~LMNOOPQRSTUVWXYYZ[\]^__`abccdfgghijkklmnopqrsttuvwxyz{|}~~MNOOPQRSTUVWXXYZ[\]^__`abbcdegghijkklmnopqrsttuvwxyz{|}}~NNOPQRSTUVWXXYZ[\]^^_`abbcdefghijjklmnopqrsstuvwxyz{|}}~NOPQRSTUVWWXYZ[\]^^_`aabcdefghiijklmnopqrsstuvwxyz{||}~OPQRSTUVVWXYZ[\]]^_`aabcdefghiijklmnopqrrstuvwxyz{{|}~PQRSTUVVWXYZ[\]]^_``abcdefghhijklmnopqqrstuvwxyz{{|}~QRSTUUVWXYZ[\\]^_``abcdefghhijklmnopqqrstuvwxyzz{|}~RSTTUVWXYZ[\\]^__`abcdefgghijklmnoppqrstuvwxyzz{|}~STTUVWXYZ[[\]^__`abcdefgghijklmnoopqrstuvwxyyz{|}~STUVWXYZ[[\]^^_`abcdeffghijklmnoopqrstuvwxxyz{|}~TUVWXYZZ[\]^^_`abcdeffghijklmnnopqrstuvwxxyz{|}~UVWWXYZ[\]]^_`abcddefghijklmmnopqrstuvwwxyz{|}~UVWXYZ[[\]^_`abccdefghijklmmnopqrstuvvwxyz{|}~VWXYYZ[\]^_`abccdefghijkllmnopqrstuvvwxyz{|}~WXYYZ[\]^_`abbcdefghijkllmnopqrstuuvwxyz{|}~XXYZ[\]^_`aabcdefghijkklmnopqrsttuvwxyz{|}~~XYZ[\]^_`aabcdefghijjklmnopqrsttuvwxyz{|}}~YZ[\]^_``abcdefghijjklmnopqrsstuvwxyz{|}}~Z[\]^_``abcdefghiijklmnopqrsstuvwxyz{||}~[\]^__`abcdefghhijklmnopqrrstuvwxyz{{|}~\]^^_`abcdefghhijklmnopqqrstuvwxyz{{|}~]^^_`abcdefgghijklmnopqqrstuvwxyzz{|}~]^_`abcdefgghijklmnoppqrstuvwxyzz{|}~^_`abcdeffghijklmnoopqrstuvwxyyz{|}~_`abcdeefghijklmnoopqrstuvwxxyz{|}~`abcdeefghijklmnnopqrstuvwxxyz{|}~~abcddefghijklmnnopqrstuvwwxyz{|}~~bccdefghijklmmnopqrstuvvwxyz{|}}~ccdefghijkllmnopqrstuvvwxyz{|}}~cdefghijkllmnopqrstuuvwxyz{||}~defghijkklmnopqrstuuvwxyz{||}~efghijjklmnopqrsstuvwxyyz{|}~fghijjklmnopqrsstuvwwxyz{|}}~ghiijklmnopqrrstuvvwxyz{{|}~hiijklmnopqrrstuuvwxyz{{|}~hijklmnopqqrstuuvwxyzz{|}~ijklmnopqqrsttuvwxyyz{|}~jklmnoppqrsttuvwxyyz{|}~klmnoppqrsstuvwxxyz{|}~lmnoopqrsstuvwwxyz{|}~mnnopqrrstuvwwxyz{|}~               ?ɓɳ˳ϴѴӵ൶ŨϩѪհ԰ǩ˩ϪѪӫի٬۬ҭǦɦͧͧѨި¡¡áâĢģţŤŤƥƥǦǦǧȧȨʀ _                _               ̀_ =====;;A<6@                                                                              =====;;A<6@                                                                              =====;;A~<6@                                                                              @>====================================================::??                         +++++?+??                         خɭخɭخɬحȬحȭخɭخ~??                         ? @....?..??       ??ʀ~??? @       0       0 0                                                                               ?                                                                               ?                                                                               ?===================================================???? ???? ?lZ6-gdeskcal-0.57.1/skins/tnf/home.png0000644000175000017500000000037607640653251017005 0ustar seb128seb12800000000000000PNG  IHDR Vu\bKGD pHYs  #utIME5 Z&MIDATxc` 04v!7pkk-\2}=#3[0N"Y Űq%?ncFt=dЀ>Il200000*dQd4V`щ!'%IENDB`gdeskcal-0.57.1/skins/tnf/today.png0000644000175000017500000000052707640652523017174 0ustar seb128seb12800000000000000PNG  IHDRw=bKGD pHYs ?@"tIME/FIDATx픽 0+P`&=Jc& NIE4Q^u;Og[ Κ)7e*q1D"k!R ZkVmZ5;_ c[8k8keaCk !,ReY:,1* y]uhs 0\ekmMR6o{Sqրs}ަ:R{;XkIENDB`gdeskcal-0.57.1/skins/tnf/skin.xml0000644000175000017500000000473407640653352017041 0ustar seb128seb12800000000000000 gdeskcal-0.57.1/skins/tnf/prev.png0000644000175000017500000000034107640652632017023 0ustar seb128seb12800000000000000PNG  IHDR Vu\bKGD pHYs  tIME0*[cnIDATxc`z/a|| aM14 + A,*аI?nc^Q=grҿǕpbL8d3ɶ'Z$@O:oIENDB`gdeskcal-0.57.1/skins/tnf/next.png0000644000175000017500000000036007640653041017021 0ustar seb128seb12800000000000000PNG  IHDR Vu\bKGD pHYs  #utIME294ӯ?}IDATxc`/ c16m>rnǩWTт!$÷= jϯ/!87XY%g=DXX50}=S!a-hIENDB`gdeskcal-0.57.1/skins/XFCE/0000755000175000017500000000000010012770140015257 5ustar seb128seb12800000000000000gdeskcal-0.57.1/skins/XFCE/bg.png0000644000175000017500000002450110004275537016372 0ustar seb128seb12800000000000000PNG  IHDRbKGD̿ pHYs  tIME3;#2tEXtCommentCreated with The GIMPd%n IDATxY%y[u (n2QE-&Q EmX0N0 $yK r@ VGdYF%SE9ٺ{/'=ݴ>4gvU;glu:[glu:[ǿ_2),wpW^)-^r_l['L(6/Xϛx=x}^9 ܍Z~Z4hPFNB6]W6N;% AB4={ A>kc'~]$7ΦK Û?{jNڣz1SƯx'PФLI<|! 0hPyX_]?Lmj?^t\$)C["?KlI@"12'o/BF0;a/>XV^j&m[Ɨuq>D ?垙;?u;>Qxbz{N \Qy84p>k38F;OVys{R,YCY]S?LEЌ.p$G1EțŸn zW+@ְ(O܉y#=hF?.V{pJedF&n(·JrQCI 0HoHdLnK*t\r2k|UɎp߻+7i15ٍxcXQ7wG 5[ǂ2U6كҭĤX=ҷ';U?˶?:Gu &n~y˂.6ӏYI3߹,7 Kt=&}>(H bv{$ yT7}_xtP&핂;[9> qLAz 6eG'1pޙ|y>o2}ؑ_֫#0}3go5mZԲVvk.[J?\f; "x}M1Bg47p!bHg/w1|D:}%ֹK獻sry{8eL)O6ye ~y~qQ(wKTOEi\-|Dxعzkl0Š ti&-JuAĘ]?荚axenG\klb8Gڂ;\1TMnN4M{G{ѐsڕڏlE.*B:f E;2s4$LᑱFOIN aN%| v"1f]_c2dȀk2ˬңv7x{a bȲPܗxl~翽~s291 1)/T,>I VOɭGƆveE^f=h ȇ++qC௵zrssHHI I -l 칊gG'+os0Mmv&c%^nu$a ό&.}+hh"R}W(=̅=1 ߱"V:) ZtXbm6E+<ǽ:V7 ; d |\4\۔zNLLHLXP")NHY  I bLF4i=an@S2c&..u4i` uT74Ld C+,zڛ4 r2RrF[jfgd 9|99)׸A޷y+"Z NmtL)lq/ib)SwfW$o.j0+@ .) P>޵bb$1W` ;X:N=W^7oτt0-ZtXeglqױT9. j_E7L&l1B&!/]>]jXJ=$hy 61/}joRUx$ DC`cb3i%n0a1o Ikg0{4B8N)fOH2e.=iҠNɐ&5brt B6gVv֙$ŧN0hhظxe^.O͐7sNEpUK=4Eq`(JRg* CC(&II5LltYf%%8t1HHBڠCicH5VO``QťEK\%2 cݴKP0 W!73wSyu0teup{ЁKtaShH6cŕ1;\[a ?} gL4t,,\x\d5bB$pFBH,i4)<8:?&6V8 NwfUe/1۬:sC =Vlfr4`J9 lL/ZQ %{9 IŰUCވ-$.1W}3rg駣, /47ࡱ)&`P@MMɉf XHJT?6u8PgRd_*cSGHr|V4y,?uNJZQLsR $&8Qw^h0εe1zx4!\-}.RCaI*Y`h8d^Nϲ\ϳ,>&"{L?:@rbb}r++0 srNhdۋ tib|=CuE͈] S[,q %r7qK8IHIhXYMoRv .e;Z2ܠ9:W4,B'lX#{+5`wW##Rb%5ڗ_9`6lq  ZLX͖eNAotUVboASvRpjx4iQ4_l򰗬d=Ԏ~qFAHTy Z>/SE:^+y :'2aϨ7W9M4d˜P]W)RQ[t{z ۲Kp*L~rE4n~וlnl\LjhѺf3I94.;>|tJ=Aӹǻ=idw;YFfě:i$ ƙ6I pi`ӠgV<ʚQM:' |F %EI$R&'{nmu~ҁ?6ƅGƉH.$HAi'tXTW+d1b8YEXjn}rZ{}Jq|,$D:-pvZ|S7bzoRRؕ~p-vS~Swr;<#MZ(T ~{mtۋox K 9Je6O{Dmjԭ8ڣW -l Yì"Ku]o𚃷̣cjffGؠENNJBFʐkz3j9 c*ګ\(nܬU3#]N)L6F'#_SJ]&mLʺJLkeYOqt^` i &q!,+טzͿw¿riX*.(HIITcl< *GU1^5؎ѢG{>_=dmәzw5~Et]$GbҠjyM42մ:" *Ltt4 |9>]lEؚu'-wWWFaPA5L U:M+9!TZN̄LUڬ1pXPpנkhl8踸84heR%9gurO+Uԃ %dȀmI@ p]fƧħ"  `qG.Q2Itg^-;WSc.&e!Rc?m;_]?fy*~.6cd`+7j8PbRUs%!TPJˌaHՖEڷ75? t0 Re%Z` Iʄ >9:- -ީ6eMI`ʈ1J4nWL@,)H +*ǻ_k9p,H!4M7aƎNޑ~d'Mj2i4g'=i*o˜ӝ?jξAɡUmګٲ QS4X$DǡEEMTVfh{fRi[]}Z;'Š6-1& \jXBb*Ek\dEWd`:0hD{~^R^;#bS7!Cg74*;?;E=Fo~`BBNFZGvssҒ-L)H+㼿-%fMKdܬOE![0b#(gI?2WQ.7M/ 2efU}Ej͞"8325Jr|Fh,a-tǪx~LWR:Αy6zD5:l߯_L*Ԥ<ʍRW!DLp=`g_Ir ޔ)}R<Ԕ {dEQzկs@5Iq4 좣|4b']$Q喳Jb_AJ p vyӶ$'b€DDD콼%i\]YІLU$/N^+pǝO~r:\$ԡ#j yWԀ B&fRd $$q3l<#=8dQs%U]u ՜Q?ɁuV36ZjxH5^rA& lXh*q-&3zli>0=Zm43&?2$]ޙKnW4mAkt0@"SI(0isa[+ B6)S|jlTN 6myQz_hUCt'qSOԎ|Ñ6 ^z/'HJR3eRf*]5r6+u 1Ew5#Z2;뵋=11S$JCTz1BPQUB5}~C>st+ \B²UG! ;&^Nԝi% YAW*4 2D%,Mglw$z4gBN2= 5*`),5?Rb;FQ^4s&3pn!iKY@Įv_o$xټ:R?3B'd \Z~mr\ 5\Tv 40gϔ !MTAswNS!}x݈iԮ_ˎ>{]w>ܹPGzY]&*|bc{{wl_?fK8*z >6+s;XK6g("^(q1E))< %X>bIW4j.E joߏ*q5>?*6O~YtksҥĽ Pk&g*VhH@j igJGZfߓQРAm! UfPyeh^rz }&-&Z,D:5%RZ6xrYl#1D n^X/Fcxq6lWQU?|oUI`b/񳼘j\).sR,f%j%#qsqR*sD0JJ.L! B*b,W*ȠSH\Kxso~Y!ӤNMrI}Y!" +|&Iɹ`6_=0AG޷q 9 Z;N"\z!pd|j YIzgm^t1GO0bR=bA@i`*~O4T=^my$ ~, x TXT]VHUag5G̘S7aԘwKp}Py!ۊ9Ef΢ I+CF㪣⪿.:dAphO7Ė}$o[o?sl.#QM_{㍻-{+W_TgP>R̫̀JG(HicJ]Zxu]!GR.`f=gVT~,MqQ XonmzT>ɓ%};;Ex{?CX"ʑ-#$usCe=uvTͬ2dVbp/QţX;Cʤ IDAT$J(E2  Y^boWn,Q&Yk]}fi›m?nQQ3Eh@KpHV)vKA"qing&]mnm6?F,(!u͋W5 e:(_N+nw8c͋l鎍=H7n|lkܽ" uU_&T"Str\u{,.7hԺXDKO1O4a@]@wGxg usƩd"0 rƊ$4@\&fMKCExUOy,ͨ{mBҤ2vZ9TVJ, o# VQ[yDRR;j]x`T:A繍s,(vŁ^UT$whZƂYâkW0bI$$5`3 LN"9M)4&)*K,ʲ:r㴽d`KwsU80&1b\~`Ar- (9ZLF}] w,a%:8HLf"ϩ+"/MͽE"J3_}q| -VUmV?&T1 tZ1%2m,l3Q_U[vhB&%5\n#&:TW}`P_BuuhS"PYɈIU\?/JFe5j7#glBRD);P m8łse=#44 M-ove$O[9:u,8z>Qe&0R&š4&8ĕ##.ޖ}!rwA˛͘hh5q 5&#GsIv1/מvW,SϧHr<,Lux,=4tS !sY ;/0oJր V4?]wr_yÚ:svNɄPUeVj١h6EM)ti WjJz[`I3 vg0APCZ}k'y. 0f}WϺ \ ,iq}7z𖈴(Q&M:RǠv1P˅'"9sO= -ySb͗L5MZH+liCisBSaaSCgEDWk5 Cf A{'ze$"nkÇԴ13UkxHUWnrh~ S圉}ԨқEMjoL.E::2mk>=V TN؄/tsBdnnBQ̬ m2I<λwI8 GhHkY3V8jJK̏:2#҄3exC]M ''0*}rƙ"@҅ CLO:(I.qkťo:DwKyɣI=)u$hr\fYޢI 1ЌJ2#yrF\g/E{q<;La;@ ވ:QT-gī>Կ$iξ-_0*+_\NdnH$Og`u(rQgڲ~,!J$أd~gZDK]~}C3nW)q nJkdw=8ApOlDgE;1:!qۖ;+1l!ѥckgeUx|ʩ(lzW XӕIY>c !a#r'Zf1Z?%N~sFL\b̓ ʃ-1>X2f^ RT@UXc8$NIf:[glu:[gljS3f^ IENDB`gdeskcal-0.57.1/skins/XFCE/today.png0000644000175000017500000000105610004013636017110 0ustar seb128seb12800000000000000PNG  IHDRw=bKGD pHYs  @AtIME* o%IDATxUK1R`B-7:Hũ( :zB\tE9)b+^sߔx^c"-Z ߈1k3 eajD]ɸm8V37bg r#Lb19"oRo`>\ p%hPxD4n63[)5yDЂw5yyX!j'iLxG @AuH;DDc˕ʵdӯKj* %{Ro`' <ӽ׵6s$pDZZK$og%Gy:_Fkga[2BB] ۆcg}I- gdeskcal-0.57.1/po/0002755000175000017500000000000010025431056014027 5ustar seb128seb12800000000000000gdeskcal-0.57.1/po/ar.po0000644000175000017500000000531410025431056014772 0ustar seb128seb12800000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2003-04-04 14:13+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:73 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" #: ../code/CalMediator.py:66 msgid "_Current Month" msgstr "" #: ../code/CalMediator.py:67 msgid "_Previous Month" msgstr "" #: ../code/CalMediator.py:68 msgid "_Next Month" msgstr "" #: ../code/CalMediator.py:70 msgid "_Move" msgstr "" #: ../code/CalMediator.py:72 msgid "Change _Skin..." msgstr "" #: ../code/CalMediator.py:74 msgid "_Quit" msgstr "" #: ../code/Cal.py:17 msgid "January" msgstr "يناير" #: ../code/Cal.py:17 msgid "February" msgstr "فبراير" #: ../code/Cal.py:17 msgid "March" msgstr "مارس" #: ../code/Cal.py:18 msgid "April" msgstr "أبريل" #: ../code/Cal.py:18 msgid "May" msgstr "مايو" #: ../code/Cal.py:18 msgid "June" msgstr "يونيو" #: ../code/Cal.py:19 msgid "July" msgstr "يوليو" #: ../code/Cal.py:19 msgid "August" msgstr "أغسطس" #: ../code/Cal.py:19 msgid "September" msgstr "سبتمبر" #: ../code/Cal.py:20 msgid "October" msgstr "أكتوبر" #: ../code/Cal.py:20 msgid "November" msgstr "نوفمبر" #: ../code/Cal.py:20 msgid "December" msgstr "ديسمبر" #: ../code/Cal.py:21 msgid "Mo" msgstr "ن" #: ../code/Cal.py:21 msgid "Tu" msgstr "ث" #: ../code/Cal.py:21 msgid "We" msgstr "ر" #: ../code/Cal.py:21 msgid "Th" msgstr "خ" #: ../code/Cal.py:21 msgid "Fr" msgstr "ج" #: ../code/Cal.py:21 msgid "Sa" msgstr "س" #: ../code/Cal.py:21 msgid "Su" msgstr "ح" #: ../code/CalWindow.py:158 msgid "" "Could not access background image. Screen capturing will be used instead." msgstr "" #: ../code/Config.py:123 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "" #: ../code/Config.py:134 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "" #: ../code/Config.py:167 msgid "Could not save configuration." msgstr "" #: ../code/sfrmapper.py:7 msgid "LOCALMAPPING" msgstr "HINDI" #: ../code/SkinBrowser.py:31 msgid "Skin Browser" msgstr "" #: ../code/SkinBrowser.py:45 msgid "Name of Skin" msgstr "" #: ../code/SkinBrowser.py:63 msgid "" "New skins can be installed by dragging\n" "them into this window." msgstr "" gdeskcal-0.57.1/po/bg.po0000644000175000017500000001141410025431056014756 0ustar seb128seb12800000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Philip Andonov , 2003. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2003-08-16 09:11+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Philip Andonov \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:75 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "Не мога да инсталирам конфигурационен файл.\n" "gDeskCal няма да запомни конфигурационните промени." #: ../code/CalMediator.py:73 msgid "_Current Month" msgstr "_Текущ Месец" #: ../code/CalMediator.py:74 msgid "_Previous Month" msgstr "_Предишен Месец" #: ../code/CalMediator.py:75 msgid "_Next Month" msgstr "_Следващ месец" #: ../code/CalMediator.py:77 msgid "_Open Evolution Calendar" msgstr "Отвори календар на Еволюция" #: ../code/CalMediator.py:79 msgid "_Move" msgstr "Пре_местване" #: ../code/CalMediator.py:81 msgid "Change _Skin..." msgstr "Смени _кожа..." #: ../code/CalMediator.py:83 msgid "_Quit" msgstr "Из_ход" #: ../code/Cal.py:17 msgid "January" msgstr "Януари" #: ../code/Cal.py:17 msgid "February" msgstr "Февруари" #: ../code/Cal.py:17 msgid "March" msgstr "Март" #: ../code/Cal.py:18 msgid "April" msgstr "Април" #: ../code/Cal.py:18 msgid "May" msgstr "Май" #: ../code/Cal.py:18 msgid "June" msgstr "Юни" #: ../code/Cal.py:19 msgid "July" msgstr "Юли" #: ../code/Cal.py:19 msgid "August" msgstr "Август" #: ../code/Cal.py:19 msgid "September" msgstr "Септември" #: ../code/Cal.py:20 msgid "October" msgstr "Октомври" #: ../code/Cal.py:20 msgid "November" msgstr "Ноември" #: ../code/Cal.py:20 msgid "December" msgstr "Декември" #: ../code/Cal.py:21 msgid "Mo" msgstr "Пн" #: ../code/Cal.py:21 msgid "Tu" msgstr "Вт" #: ../code/Cal.py:21 msgid "We" msgstr "Ср" #: ../code/Cal.py:21 msgid "Th" msgstr "Чт" #: ../code/Cal.py:21 msgid "Fr" msgstr "Пт" #: ../code/Cal.py:21 msgid "Sa" msgstr "Сб" #: ../code/Cal.py:21 msgid "Su" msgstr "Нд" #: ../code/Config.py:125 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "Не мога да отворя конфигурационен файл %(filename)s." #: ../code/Config.py:136 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "Невалиден конфигурационен файл %(filename)s." #: ../code/Config.py:170 msgid "Could not save configuration." msgstr "Не мога да съхраня конфигурация." #: ../code/formats.py:2 #, python-format msgid "%(year)04d / %(month)02d / %(day)02d" msgstr "" #: ../code/formats.py:3 #, python-format msgid "%(month)02d / %(day)02d" msgstr "" #: ../code/formats.py:4 #, python-format msgid "%(hour)02d:%(min)02d" msgstr "" #: ../code/sfrmapper.py:7 msgid "LOCALMAPPING" msgstr "" #: ../code/SkinBrowser.py:33 msgid "Skin Browser" msgstr "Браузер на Кожи" #: ../code/SkinBrowser.py:38 msgid "Name of Skin" msgstr "Име на Кожа" #: ../code/SkinBrowser.py:72 msgid "" "New skins can be installed by dragging\n" "them into this window." msgstr "Нова кожа може да бъде инсталирана с влачене\n" "в този прозорец." #: ../code/planner/CalEditor.py:50 msgid "Edit Appointments" msgstr "Редактира Срещи" #: ../code/planner/CalEditor.py:83 msgid "New Appointment" msgstr "Нова Среща" #: ../code/planner/CalEditor.py:87 msgid "Remove Appointment" msgstr "Премахване на Среща" #: ../code/planner/CalEditor.py:96 msgid "Edit Appointment" msgstr "Редакция на Среща" #: ../code/planner/CalEditor.py:106 msgid "Summary:" msgstr "Общо:" #: ../code/planner/CalEditor.py:119 msgid "Time:" msgstr "Време:" #: ../code/planner/CalEditor.py:150 msgid "Recurrences:" msgstr "Повторения:" #: ../code/planner/CalEditor.py:157 msgid "every $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ times" msgstr "всеки $INTERVAL$ ${days|weeks|months|years}$ за $TIMES$ пъти" #: ../code/planner/CalEditor.py:475 #, python-format msgid "Your appointments on %(date)s" msgstr "Вашите срещи на %(date)s" #: ../code/planner/Planner.py:66 #, python-format msgid "Invalid calendar file %(file)s." msgstr "Невалиден календарен файл %(file)s." gdeskcal-0.57.1/po/cs.po0000644000175000017500000000475510025431056015005 0ustar seb128seb12800000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2003-02-24 17:51+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:69 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" #: ../code/CalMediator.py:54 msgid "_Current Month" msgstr "" #: ../code/CalMediator.py:55 msgid "_Previous Month" msgstr "" #: ../code/CalMediator.py:56 msgid "_Next Month" msgstr "" #: ../code/CalMediator.py:58 msgid "_Move" msgstr "" #: ../code/CalMediator.py:60 msgid "Change _Skin..." msgstr "" #: ../code/CalMediator.py:62 msgid "_Quit" msgstr "" #: ../code/Cal.py:12 msgid "January" msgstr "leden" #: ../code/Cal.py:12 msgid "February" msgstr "únor" #: ../code/Cal.py:12 msgid "March" msgstr "březen" #: ../code/Cal.py:13 msgid "April" msgstr "duben" #: ../code/Cal.py:13 msgid "May" msgstr "květen" #: ../code/Cal.py:13 msgid "June" msgstr "červen" #: ../code/Cal.py:14 msgid "July" msgstr "červenec" #: ../code/Cal.py:14 msgid "August" msgstr "srpen" #: ../code/Cal.py:14 msgid "September" msgstr "září" #: ../code/Cal.py:15 msgid "October" msgstr "říjen" #: ../code/Cal.py:15 msgid "November" msgstr "listopad" #: ../code/Cal.py:15 msgid "December" msgstr "prosinec" #: ../code/Cal.py:17 msgid "Mo" msgstr "Po" #: ../code/Cal.py:17 msgid "Tu" msgstr "Út" #: ../code/Cal.py:17 msgid "We" msgstr "St" #: ../code/Cal.py:17 msgid "Th" msgstr "Čt" #: ../code/Cal.py:17 msgid "Fr" msgstr "Pá" #: ../code/Cal.py:17 msgid "Sa" msgstr "So" #: ../code/Cal.py:17 msgid "Su" msgstr "Ne" #: ../code/CalWindow.py:159 msgid "" "Could not access background image. Screen capturing will be used instead." msgstr "" #: ../code/Config.py:123 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "" #: ../code/Config.py:134 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "" #: ../code/Config.py:167 msgid "Could not save configuration." msgstr "" #: ../code/SkinBrowser.py:31 msgid "Skin Browser" msgstr "" #: ../code/SkinBrowser.py:44 msgid "Name of Skin" msgstr "" gdeskcal-0.57.1/po/de_AT.po0000644000175000017500000000573710025431056015355 0ustar seb128seb12800000000000000# Austrian locale for gDeskCal # Copyright (c) 2003, Martin Grimme # #, fuzzy msgid "" msgstr "" "Project-Id-Version: gDeskCal\n" "POT-Creation-Date: 2003-03-01 23:57+0100\n" "PO-Revision-Date: 2003-02-24 16:00+0100\n" "Last-Translator: Martin Grimme \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:73 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" "Die Konfigurationsdatei konnte nicht installiert werden. gDeskCal wird " "keine\n" "Einstellungen speichern können." #: ../code/CalMediator.py:55 msgid "_Current Month" msgstr "_Aktueller Monat" #: ../code/CalMediator.py:56 msgid "_Previous Month" msgstr "_Vorheriger Monat" #: ../code/CalMediator.py:57 msgid "_Next Month" msgstr "_Nächster Monat" #: ../code/CalMediator.py:59 msgid "_Move" msgstr "V_erschieben" #: ../code/CalMediator.py:61 msgid "Change _Skin..." msgstr "_Skin wechseln..." #: ../code/CalMediator.py:63 msgid "_Quit" msgstr "_Beenden" #: ../code/Cal.py:12 msgid "January" msgstr "Jänner" #: ../code/Cal.py:12 msgid "February" msgstr "Feber" #: ../code/Cal.py:12 msgid "March" msgstr "März" #: ../code/Cal.py:13 msgid "April" msgstr "April" #: ../code/Cal.py:13 msgid "May" msgstr "Mai" #: ../code/Cal.py:13 msgid "June" msgstr "Juni" #: ../code/Cal.py:14 msgid "July" msgstr "Juli" #: ../code/Cal.py:14 msgid "August" msgstr "August" #: ../code/Cal.py:14 msgid "September" msgstr "September" #: ../code/Cal.py:15 msgid "October" msgstr "Oktober" #: ../code/Cal.py:15 msgid "November" msgstr "November" #: ../code/Cal.py:15 msgid "December" msgstr "Dezember" #: ../code/Cal.py:17 msgid "Mo" msgstr "Mo" #: ../code/Cal.py:17 msgid "Tu" msgstr "Di" #: ../code/Cal.py:17 msgid "We" msgstr "Mi" #: ../code/Cal.py:17 msgid "Th" msgstr "Do" #: ../code/Cal.py:17 msgid "Fr" msgstr "Fr" #: ../code/Cal.py:17 msgid "Sa" msgstr "Sa" #: ../code/Cal.py:17 msgid "Su" msgstr "So" #: ../code/CalWindow.py:159 msgid "" "Could not access background image. Screen capturing will be used instead." msgstr "" "Konnte nicht auf den Hintergrund zugreifen und mache statt dessen " "Screenshots." #: ../code/Config.py:123 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "Konnte Konfigurationsdatei %(filename)s nicht finden." #: ../code/Config.py:134 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "Ungültige Konfigurationsdatei %(configfile)s." #: ../code/Config.py:167 msgid "Could not save configuration." msgstr "Konfiguration konnte nicht gesichert werden." #: ../code/SkinBrowser.py:31 msgid "Skin Browser" msgstr "Skin-Browser" #: ../code/SkinBrowser.py:45 msgid "Name of Skin" msgstr "Skin-Name" #: ../code/SkinBrowser.py:63 msgid "" "New skins can be installed by dragging\n" "them into this window." msgstr "Sie können neue Skins installieren,\n" "indem Sie diese in dieses Fenster ziehen\n" "und dort ablegen." gdeskcal-0.57.1/po/de.po0000644000175000017500000001064510025431056014763 0ustar seb128seb12800000000000000# German locale for gDeskCal # Copyright (c) 2003, Martin Grimme # #, fuzzy msgid "" msgstr "" "Project-Id-Version: gDeskCal\n" "POT-Creation-Date: 2003-07-22 14:33+0200\n" "PO-Revision-Date: 2003-02-24 16:00+0100\n" "Last-Translator: Martin Grimme \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:75 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" "Die Konfigurationsdatei konnte nicht installiert werden. gDeskCal wird " "keine\n" "Einstellungen speichern können." #: ../code/CalMediator.py:73 msgid "_Current Month" msgstr "_Aktueller Monat" #: ../code/CalMediator.py:74 msgid "_Previous Month" msgstr "_Vorheriger Monat" #: ../code/CalMediator.py:75 msgid "_Next Month" msgstr "_Nächster Monat" #: ../code/CalMediator.py:77 msgid "_Open Evolution Calendar" msgstr "Evolution-_Kalender öffnen" #: ../code/CalMediator.py:79 msgid "_Move" msgstr "V_erschieben" #: ../code/CalMediator.py:81 msgid "Change _Skin..." msgstr "_Skin wechseln..." #: ../code/CalMediator.py:83 msgid "_Quit" msgstr "_Beenden" #: ../code/Cal.py:17 msgid "January" msgstr "Januar" #: ../code/Cal.py:17 msgid "February" msgstr "Februar" #: ../code/Cal.py:17 msgid "March" msgstr "März" #: ../code/Cal.py:18 msgid "April" msgstr "April" #: ../code/Cal.py:18 msgid "May" msgstr "Mai" #: ../code/Cal.py:18 msgid "June" msgstr "Juni" #: ../code/Cal.py:19 msgid "July" msgstr "Juli" #: ../code/Cal.py:19 msgid "August" msgstr "August" #: ../code/Cal.py:19 msgid "September" msgstr "September" #: ../code/Cal.py:20 msgid "October" msgstr "Oktober" #: ../code/Cal.py:20 msgid "November" msgstr "November" #: ../code/Cal.py:20 msgid "December" msgstr "Dezember" #: ../code/Cal.py:21 msgid "Mo" msgstr "Mo" #: ../code/Cal.py:21 msgid "Tu" msgstr "Di" #: ../code/Cal.py:21 msgid "We" msgstr "Mi" #: ../code/Cal.py:21 msgid "Th" msgstr "Do" #: ../code/Cal.py:21 msgid "Fr" msgstr "Fr" #: ../code/Cal.py:21 msgid "Sa" msgstr "Sa" #: ../code/Cal.py:21 msgid "Su" msgstr "So" #: ../code/Config.py:125 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "Konnte Konfigurationsdatei %(filename)s nicht finden." #: ../code/Config.py:136 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "Ungültige Konfigurationsdatei %(configfile)s." #: ../code/Config.py:170 msgid "Could not save configuration." msgstr "Konfiguration konnte nicht gesichert werden." #: ../code/formats.py:2 #, python-format msgid "%(year)04d / %(month)02d / %(day)02d" msgstr "%(day)d. %(month)d. %(year)d" #: ../code/formats.py:3 #, python-format msgid "%(month)02d / %(day)02d" msgstr "%(day)d. %(month)d." #: ../code/formats.py:4 #, python-format msgid "%(hour)02d:%(min)02d" msgstr "" #: ../code/sfrmapper.py:7 msgid "LOCALMAPPING" msgstr "" #: ../code/SkinBrowser.py:33 msgid "Skin Browser" msgstr "Skin-Browser" #: ../code/SkinBrowser.py:38 msgid "Name of Skin" msgstr "Skin-Name" #: ../code/SkinBrowser.py:72 msgid "" "New skins can be installed by dragging\n" "them into this window." msgstr "" "Sie können neue Skins installieren,\n" "indem Sie diese in dieses Fenster ziehen\n" "und dort ablegen." #: ../code/planner/CalEditor.py:50 msgid "Edit Appointments" msgstr "Termine bearbeiten" #: ../code/planner/CalEditor.py:83 msgid "New Appointment" msgstr "Neuer Termin" #: ../code/planner/CalEditor.py:87 msgid "Remove Appointment" msgstr "Termin entfernen" #: ../code/planner/CalEditor.py:96 msgid "Edit Appointment" msgstr "Termin bearbeiten" #: ../code/planner/CalEditor.py:106 msgid "Summary:" msgstr "Zusammenfassung:" #: ../code/planner/CalEditor.py:119 msgid "Time:" msgstr "Uhrzeit:" #: ../code/planner/CalEditor.py:150 msgid "Recurrences:" msgstr "Wiederholungen:" #: ../code/planner/CalEditor.py:157 msgid "every $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ times" msgstr "alle $INTERVAL$ ${Tage|Wochen|Monate|Jahre}$, insgesamt $TIMES$ mal" #: ../code/planner/CalEditor.py:475 #, python-format msgid "Your appointments on %(date)s" msgstr "Termine am %(date)s" #: ../code/planner/Planner.py:66 #, python-format msgid "Invalid calendar file %(file)s." msgstr "Ungültige Kalenderdatei %(file)s." #~ msgid "" #~ "Could not access background image. Screen capturing will be used instead." #~ msgstr "" #~ "Konnte nicht auf den Hintergrund zugreifen und mache statt dessen " #~ "Screenshots." gdeskcal-0.57.1/po/el.po0000644000175000017500000000516610025431056014775 0ustar seb128seb12800000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2003-02-24 17:51+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:69 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" #: ../code/CalMediator.py:54 msgid "_Current Month" msgstr "" #: ../code/CalMediator.py:55 msgid "_Previous Month" msgstr "" #: ../code/CalMediator.py:56 msgid "_Next Month" msgstr "" #: ../code/CalMediator.py:58 msgid "_Move" msgstr "" #: ../code/CalMediator.py:60 msgid "Change _Skin..." msgstr "" #: ../code/CalMediator.py:62 msgid "_Quit" msgstr "" #: ../code/Cal.py:12 msgid "January" msgstr "Ιανουάριος" #: ../code/Cal.py:12 msgid "February" msgstr "Φεβρουάριος" #: ../code/Cal.py:12 msgid "March" msgstr "Μάρτιος" #: ../code/Cal.py:13 msgid "April" msgstr "Απρίλιος" #: ../code/Cal.py:13 msgid "May" msgstr "Μάιος" #: ../code/Cal.py:13 msgid "June" msgstr "Ιούνιος" #: ../code/Cal.py:14 msgid "July" msgstr "Ιούλιος" #: ../code/Cal.py:14 msgid "August" msgstr "Αύγουστος" #: ../code/Cal.py:14 msgid "September" msgstr "Σεπτέμβριος" #: ../code/Cal.py:15 msgid "October" msgstr "Οκτώβριος" #: ../code/Cal.py:15 msgid "November" msgstr "Νοέμβριος" #: ../code/Cal.py:15 msgid "December" msgstr "Δεκέμβριος" #: ../code/Cal.py:17 msgid "Mo" msgstr "Δε" #: ../code/Cal.py:17 msgid "Tu" msgstr "Τρ" #: ../code/Cal.py:17 msgid "We" msgstr "Τε" #: ../code/Cal.py:17 msgid "Th" msgstr "Πε" #: ../code/Cal.py:17 msgid "Fr" msgstr "Πα" #: ../code/Cal.py:17 msgid "Sa" msgstr "Σα" #: ../code/Cal.py:17 msgid "Su" msgstr "Κυ" #: ../code/CalWindow.py:159 msgid "" "Could not access background image. Screen capturing will be used instead." msgstr "" #: ../code/Config.py:123 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "" #: ../code/Config.py:134 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "" #: ../code/Config.py:167 msgid "Could not save configuration." msgstr "" #: ../code/SkinBrowser.py:31 msgid "Skin Browser" msgstr "" #: ../code/SkinBrowser.py:44 msgid "Name of Skin" msgstr "" gdeskcal-0.57.1/po/es.po0000644000175000017500000001060510025431056014776 0ustar seb128seb12800000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2003-07-22 14:33+0200\n" "PO-Revision-Date: 2003-8-12 1:31+GMT+2\n" "Last-Translator: Toms Javier Robles Prado \n" "Language-Team: es \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:75 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "No se pudo instalar el archivo de configuracin.\n" "gDeskCal no recordar los cambios de configuracin""" #: ../code/CalMediator.py:73 msgid "_Current Month" msgstr "Mes Actual" #: ../code/CalMediator.py:74 msgid "_Previous Month" msgstr "Mes Anterior" #: ../code/CalMediator.py:75 msgid "_Next Month" msgstr "Prximo mes" #: ../code/CalMediator.py:77 msgid "_Open Evolution Calendar" msgstr "Abrir Calendario de Evolution" #: ../code/CalMediator.py:79 msgid "_Move" msgstr "Mover" #: ../code/CalMediator.py:81 msgid "Change _Skin..." msgstr "Cambiar Skin" #: ../code/CalMediator.py:83 msgid "_Quit" msgstr "Cerrar" #: ../code/Cal.py:17 msgid "January" msgstr "Enero" #: ../code/Cal.py:17 msgid "February" msgstr "Febrero" #: ../code/Cal.py:17 msgid "March" msgstr "Marzo" #: ../code/Cal.py:18 msgid "April" msgstr "Abril" #: ../code/Cal.py:18 msgid "May" msgstr "Mayo" #: ../code/Cal.py:18 msgid "June" msgstr "Junio" #: ../code/Cal.py:19 msgid "July" msgstr "Julio" #: ../code/Cal.py:19 msgid "August" msgstr "Agosto" #: ../code/Cal.py:19 msgid "September" msgstr "Septiembre" #: ../code/Cal.py:20 msgid "October" msgstr "Octubre" #: ../code/Cal.py:20 msgid "November" msgstr "Noviembre" #: ../code/Cal.py:20 msgid "December" msgstr "Diciembre" #: ../code/Cal.py:21 msgid "Mo" msgstr "Lu" #: ../code/Cal.py:21 msgid "Tu" msgstr "Ma" #: ../code/Cal.py:21 msgid "We" msgstr "Mi" #: ../code/Cal.py:21 msgid "Th" msgstr "Ju" #: ../code/Cal.py:21 msgid "Fr" msgstr "Vi" #: ../code/Cal.py:21 msgid "Sa" msgstr "Sa" #: ../code/Cal.py:21 msgid "Su" msgstr "Do" #: ../code/Config.py:125 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "No se ha podido encontrar el archivo de configuracin %(filename)s." #: ../code/Config.py:136 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "Archivo de configuracin incorrecto %(configfile)s." #: ../code/Config.py:170 msgid "Could not save configuration." msgstr "No se pudo guardar la configuracin" #: ../code/formats.py:2 #, python-format msgid "%(year)04d / %(month)02d / %(day)02d" msgstr "%(year)04d / %(month)02d / %(day)02d" #: ../code/formats.py:3 #, python-format msgid "%(month)02d / %(day)02d" msgstr "%(month)02d / %(day)02d" #: ../code/formats.py:4 #, python-format msgid "%(hour)02d:%(min)02d" msgstr "%(hour)02d:%(min)02d" #: ../code/sfrmapper.py:7 msgid "LOCALMAPPING" msgstr "LOCALMAPPING" #: ../code/SkinBrowser.py:33 msgid "Skin Browser" msgstr "Navegador de Skins" #: ../code/SkinBrowser.py:38 msgid "Name of Skin" msgstr "Nombre del Skin" #: ../code/SkinBrowser.py:72 msgid "" "New skins can be installed by dragging\n" "them into this window." msgstr "Se pueden instalar nuevas Skins\n" "arrastrndolas a esta ventana." #: ../code/planner/CalEditor.py:50 msgid "Edit Appointments" msgstr "Editar Citas" #: ../code/planner/CalEditor.py:83 msgid "New Appointment" msgstr "Nueva Cita" #: ../code/planner/CalEditor.py:87 msgid "Remove Appointment" msgstr "Borrar Cita" #: ../code/planner/CalEditor.py:96 msgid "Edit Appointment" msgstr "Editar Cita" #: ../code/planner/CalEditor.py:106 msgid "Summary:" msgstr "Resumen:" #: ../code/planner/CalEditor.py:119 msgid "Time:" msgstr "Hora:" #: ../code/planner/CalEditor.py:150 msgid "Recurrences:" msgstr "Repeticiones:" #: ../code/planner/CalEditor.py:157 msgid "every $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ times" msgstr "todos los $INTERVAL$ ${days|weeks|months|years}$ durante $TIMES$ veces" #: ../code/planner/CalEditor.py:475 #, python-format msgid "Your appointments on %(date)s" msgstr "Tus citas en %(date)s" #: ../code/planner/Planner.py:66 #, python-format msgid "Invalid calendar file %(file)s." msgstr "Fichero de calendario incorrecto %(file)s." gdeskcal-0.57.1/po/fi.po0000644000175000017500000001130210025431056014760 0ustar seb128seb12800000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2003-07-22 14:33+0200\n" "PO-Revision-Date: 2003-08-14 23:20+0300\n" "Last-Translator: Tero Koskinen \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:75 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" "Ei voinut asentaa konfiguraatiotiedostoa.\n" "gDeskCal ei pysty muistamaan muutoksia asetuksissa." #: ../code/CalMediator.py:73 msgid "_Current Month" msgstr "_Nykyinen kuukausi" #: ../code/CalMediator.py:74 msgid "_Previous Month" msgstr "_Edellinen kuukausi" #: ../code/CalMediator.py:75 msgid "_Next Month" msgstr "_Seuraava kuukausi" #: ../code/CalMediator.py:77 msgid "_Open Evolution Calendar" msgstr "_Avaa Evolutionin kalenteri" #: ../code/CalMediator.py:79 msgid "_Move" msgstr "S_iirrä" #: ../code/CalMediator.py:81 msgid "Change _Skin..." msgstr "_Vaihda nahka..." #: ../code/CalMediator.py:83 msgid "_Quit" msgstr "_Lopeta" #: ../code/Cal.py:17 msgid "January" msgstr "Tammikuu" #: ../code/Cal.py:17 msgid "February" msgstr "Helmikuu" #: ../code/Cal.py:17 msgid "March" msgstr "Maaliskuu" #: ../code/Cal.py:18 msgid "April" msgstr "Huhtikuu" #: ../code/Cal.py:18 msgid "May" msgstr "Toukokuu" #: ../code/Cal.py:18 msgid "June" msgstr "Kesäkuu" #: ../code/Cal.py:19 msgid "July" msgstr "Heinäkuu" #: ../code/Cal.py:19 msgid "August" msgstr "Elokuu" #: ../code/Cal.py:19 msgid "September" msgstr "Syyskuu" #: ../code/Cal.py:20 msgid "October" msgstr "Lokakuu" #: ../code/Cal.py:20 msgid "November" msgstr "Marraskuu" #: ../code/Cal.py:20 msgid "December" msgstr "Joulukuu" #: ../code/Cal.py:21 msgid "Mo" msgstr "Ma" #: ../code/Cal.py:21 msgid "Tu" msgstr "Ti" #: ../code/Cal.py:21 msgid "We" msgstr "Ke" #: ../code/Cal.py:21 msgid "Th" msgstr "To" #: ../code/Cal.py:21 msgid "Fr" msgstr "Pe" #: ../code/Cal.py:21 msgid "Sa" msgstr "La" #: ../code/Cal.py:21 msgid "Su" msgstr "Su" #: ../code/Config.py:125 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "Ei löytynyt konfiguraatiotiedostoa %(filename)s." #: ../code/Config.py:136 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "Virheellinen konfiguraatiotiedosto %(configfile)s." #: ../code/Config.py:170 msgid "Could not save configuration." msgstr "Ei pystynyt tallentamaan asetuksia." #: ../code/formats.py:2 #, python-format msgid "%(year)04d / %(month)02d / %(day)02d" msgstr "" #: ../code/formats.py:3 #, python-format msgid "%(month)02d / %(day)02d" msgstr "" #: ../code/formats.py:4 #, python-format msgid "%(hour)02d:%(min)02d" msgstr "" #: ../code/sfrmapper.py:7 msgid "LOCALMAPPING" msgstr "" #: ../code/SkinBrowser.py:33 # # Some notes: # Previously translation for this was 'Selaa nahkoja' (action) # Then I noticed that the text was in a window title, so I changed it to # a better one. The current translation (Nahkojen selaus) is quite # liberal (meaning: browsing of the skins), but in my ear it sounds # better than the exact translation, which would be 'Nahkaselain'. # -tkoskine 2003-08-14 # msgid "Skin Browser" msgstr "Nahkojen selaus" #: ../code/SkinBrowser.py:38 msgid "Name of Skin" msgstr "Nahan nimi" #: ../code/SkinBrowser.py:72 msgid "" "New skins can be installed by dragging\n" "them into this window." msgstr "" "Uusia nahkoja voi asentaa raahaamalla\n" "tähän ikkunaan." #: ../code/planner/CalEditor.py:50 msgid "Edit Appointments" msgstr "Muokkaa tapaamisia" #: ../code/planner/CalEditor.py:83 msgid "New Appointment" msgstr "Uusi tapaaminen" #: ../code/planner/CalEditor.py:87 msgid "Remove Appointment" msgstr "Poista tapaaminen" #: ../code/planner/CalEditor.py:96 msgid "Edit Appointment" msgstr "Muokkaa tapaamista" #: ../code/planner/CalEditor.py:106 msgid "Summary:" msgstr "Yhteenveto:" #: ../code/planner/CalEditor.py:119 msgid "Time:" msgstr "Aika:" #: ../code/planner/CalEditor.py:150 msgid "Recurrences:" msgstr "Toistumiset:" #: ../code/planner/CalEditor.py:157 msgid "every $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ times" msgstr "joka $INTERVAL$. ${päivä|viikko|kuukausi|vuosi}$ $TIMES$ kertaa" #: ../code/planner/CalEditor.py:475 #, python-format msgid "Your appointments on %(date)s" msgstr "Tapaamisesi hetkellä %(date)s" #: ../code/planner/Planner.py:66 #, python-format msgid "Invalid calendar file %(file)s." msgstr "Virheellinen kalenteritiedosto %(file)s." gdeskcal-0.57.1/po/fr.po0000644000175000017500000001076610025431056015006 0ustar seb128seb12800000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gDeskCal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2003-08-14 21:42+0200\n" "PO-Revision-Date: 2003-05-04 21:08+0200\n" "Last-Translator: Sebastien Bacher \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:75 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" "Impossible d'installer le fichier de configuration.\n" "gDeskCal ne pourra pas méoriser vos changements de configuration." #: ../code/CalMediator.py:73 msgid "_Current Month" msgstr "Mois en _cours" #: ../code/CalMediator.py:74 msgid "_Previous Month" msgstr "Mois _précédant" #: ../code/CalMediator.py:75 msgid "_Next Month" msgstr "Mois suiva_nt" #: ../code/CalMediator.py:77 msgid "_Open Evolution Calendar" msgstr "_Ouvrir le calendrier d'Evolution" #: ../code/CalMediator.py:79 msgid "_Move" msgstr "Déplacer" #: ../code/CalMediator.py:81 msgid "Change _Skin..." msgstr "Changer de revêtement" #: ../code/CalMediator.py:83 msgid "_Quit" msgstr "_Quitter" #: ../code/Cal.py:17 msgid "January" msgstr "janvier" #: ../code/Cal.py:17 msgid "February" msgstr "février" #: ../code/Cal.py:17 msgid "March" msgstr "mars" #: ../code/Cal.py:18 msgid "April" msgstr "avril" #: ../code/Cal.py:18 msgid "May" msgstr "mai" #: ../code/Cal.py:18 msgid "June" msgstr "juin" #: ../code/Cal.py:19 msgid "July" msgstr "juillet" #: ../code/Cal.py:19 msgid "August" msgstr "août" #: ../code/Cal.py:19 msgid "September" msgstr "septembre" #: ../code/Cal.py:20 msgid "October" msgstr "octobre" #: ../code/Cal.py:20 msgid "November" msgstr "novembre" #: ../code/Cal.py:20 msgid "December" msgstr "décembre" #: ../code/Cal.py:21 msgid "Mo" msgstr "lu" #: ../code/Cal.py:21 msgid "Tu" msgstr "ma" #: ../code/Cal.py:21 msgid "We" msgstr "me" #: ../code/Cal.py:21 msgid "Th" msgstr "je" #: ../code/Cal.py:21 msgid "Fr" msgstr "ve" #: ../code/Cal.py:21 msgid "Sa" msgstr "sa" #: ../code/Cal.py:21 msgid "Su" msgstr "di" #: ../code/Config.py:125 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "Impossible de trouver le fichier de configuration %(filename)s." #: ../code/Config.py:136 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "Fichier de configuration incorrect %(configfile)s." #: ../code/Config.py:170 msgid "Could not save configuration." msgstr "Impossible de sauvegarder la configuration." #: ../code/formats.py:2 #, python-format msgid "%(year)04d / %(month)02d / %(day)02d" msgstr "%(day)02d / %(month)02d / %(year)04d" #: ../code/formats.py:3 #, python-format msgid "%(month)02d / %(day)02d" msgstr "%(day)02d / %(month)02d" #: ../code/formats.py:4 #, python-format msgid "%(hour)02d:%(min)02d" msgstr "%(hour)02d:%(min)02d" #: ../code/sfrmapper.py:7 msgid "LOCALMAPPING" msgstr "LOCALMAPPING" #: ../code/SkinBrowser.py:33 msgid "Skin Browser" msgstr "Navigateur de revêtement" #: ../code/SkinBrowser.py:38 msgid "Name of Skin" msgstr "Nom du revêtement" #: ../code/SkinBrowser.py:72 msgid "" "New skins can be installed by dragging\n" "them into this window." msgstr "" "De nouveaux revêtements peuvent être installés\n" "en les faisant glisser dans cette fenêtre" #: ../code/planner/CalEditor.py:50 msgid "Edit Appointments" msgstr "Modification des rendez-vous" #: ../code/planner/CalEditor.py:83 msgid "New Appointment" msgstr "Nouveau rendez-vous" #: ../code/planner/CalEditor.py:87 msgid "Remove Appointment" msgstr "Supprimer le rendez-vous" #: ../code/planner/CalEditor.py:96 msgid "Edit Appointment" msgstr "Modifier un rendez-vous" #: ../code/planner/CalEditor.py:106 msgid "Summary:" msgstr "Résumé:" #: ../code/planner/CalEditor.py:119 msgid "Time:" msgstr "Heure:" #: ../code/planner/CalEditor.py:150 msgid "Recurrences:" msgstr "Répétition:" #: ../code/planner/CalEditor.py:157 msgid "every $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ times" msgstr "tous les $INTERVAL$ ${jours|semaines|mois|ans}$ pour $TIMES$ fois" #: ../code/planner/CalEditor.py:475 #, python-format msgid "Your appointments on %(date)s" msgstr "Vos rendez-vous le %(date)s" #: ../code/planner/Planner.py:66 #, python-format msgid "Invalid calendar file %(file)s." msgstr "Fichier de configuration incorrect %(configfile)s." gdeskcal-0.57.1/po/gdeskcal.pot0000644000175000017500000000706010025431056016331 0ustar seb128seb12800000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2003-07-22 14:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:75 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" #: ../code/CalMediator.py:73 msgid "_Current Month" msgstr "" #: ../code/CalMediator.py:74 msgid "_Previous Month" msgstr "" #: ../code/CalMediator.py:75 msgid "_Next Month" msgstr "" #: ../code/CalMediator.py:77 msgid "_Open Evolution Calendar" msgstr "" #: ../code/CalMediator.py:79 msgid "_Move" msgstr "" #: ../code/CalMediator.py:81 msgid "Change _Skin..." msgstr "" #: ../code/CalMediator.py:83 msgid "_Quit" msgstr "" #: ../code/Cal.py:17 msgid "January" msgstr "" #: ../code/Cal.py:17 msgid "February" msgstr "" #: ../code/Cal.py:17 msgid "March" msgstr "" #: ../code/Cal.py:18 msgid "April" msgstr "" #: ../code/Cal.py:18 msgid "May" msgstr "" #: ../code/Cal.py:18 msgid "June" msgstr "" #: ../code/Cal.py:19 msgid "July" msgstr "" #: ../code/Cal.py:19 msgid "August" msgstr "" #: ../code/Cal.py:19 msgid "September" msgstr "" #: ../code/Cal.py:20 msgid "October" msgstr "" #: ../code/Cal.py:20 msgid "November" msgstr "" #: ../code/Cal.py:20 msgid "December" msgstr "" #: ../code/Cal.py:21 msgid "Mo" msgstr "" #: ../code/Cal.py:21 msgid "Tu" msgstr "" #: ../code/Cal.py:21 msgid "We" msgstr "" #: ../code/Cal.py:21 msgid "Th" msgstr "" #: ../code/Cal.py:21 msgid "Fr" msgstr "" #: ../code/Cal.py:21 msgid "Sa" msgstr "" #: ../code/Cal.py:21 msgid "Su" msgstr "" #: ../code/Config.py:125 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "" #: ../code/Config.py:136 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "" #: ../code/Config.py:170 msgid "Could not save configuration." msgstr "" #: ../code/formats.py:2 #, python-format msgid "%(year)04d / %(month)02d / %(day)02d" msgstr "" #: ../code/formats.py:3 #, python-format msgid "%(month)02d / %(day)02d" msgstr "" #: ../code/formats.py:4 #, python-format msgid "%(hour)02d:%(min)02d" msgstr "" #: ../code/sfrmapper.py:7 msgid "LOCALMAPPING" msgstr "" #: ../code/SkinBrowser.py:33 msgid "Skin Browser" msgstr "" #: ../code/SkinBrowser.py:38 msgid "Name of Skin" msgstr "" #: ../code/SkinBrowser.py:72 msgid "" "New skins can be installed by dragging\n" "them into this window." msgstr "" #: ../code/planner/CalEditor.py:50 msgid "Edit Appointments" msgstr "" #: ../code/planner/CalEditor.py:83 msgid "New Appointment" msgstr "" #: ../code/planner/CalEditor.py:87 msgid "Remove Appointment" msgstr "" #: ../code/planner/CalEditor.py:96 msgid "Edit Appointment" msgstr "" #: ../code/planner/CalEditor.py:106 msgid "Summary:" msgstr "" #: ../code/planner/CalEditor.py:119 msgid "Time:" msgstr "" #: ../code/planner/CalEditor.py:150 msgid "Recurrences:" msgstr "" #: ../code/planner/CalEditor.py:157 msgid "every $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ times" msgstr "" #: ../code/planner/CalEditor.py:475 #, python-format msgid "Your appointments on %(date)s" msgstr "" #: ../code/planner/Planner.py:66 #, python-format msgid "Invalid calendar file %(file)s." msgstr "" gdeskcal-0.57.1/po/he.po0000644000175000017500000000606410025431056014767 0ustar seb128seb12800000000000000# translation of he.po to Hebrew # This file is distributed under the same license as the PACKAGE package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # Gil 'Dolfin' Osher , 2003 # msgid "" msgstr "" "Project-Id-Version: he\n" "POT-Creation-Date: 2003-02-24 17:51+0100\n" "PO-Revision-Date: 2003-08-14 01:00+0300\n" "Last-Translator: Gil 'Dolfin' Osher \n" "Language-Team: Hebrew \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.0.1\n" #: ../gdeskcal:69 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" "לא ניתן להתקין את קובץ ההגדרות.\n" "gDeskCal לא יוכל לזכור את השינויים בהגדרות." #: ../code/CalMediator.py:54 msgid "_Current Month" msgstr "חודש _נוכחי" #: ../code/CalMediator.py:55 msgid "_Previous Month" msgstr "חודש _קודם" #: ../code/CalMediator.py:56 msgid "_Next Month" msgstr "חודש ה_בא" #: ../code/CalMediator.py:58 msgid "_Move" msgstr "ה_עבר" #: ../code/CalMediator.py:60 msgid "Change _Skin..." msgstr "שנה _מראה..." #: ../code/CalMediator.py:62 msgid "_Quit" msgstr "_יציאה" #: ../code/Cal.py:12 msgid "January" msgstr "ינואר" #: ../code/Cal.py:12 msgid "February" msgstr "פברואר" #: ../code/Cal.py:12 msgid "March" msgstr "מרץ" #: ../code/Cal.py:13 msgid "April" msgstr "אפריל" #: ../code/Cal.py:13 msgid "May" msgstr "מאי" #: ../code/Cal.py:13 msgid "June" msgstr "יוני" #: ../code/Cal.py:14 msgid "July" msgstr "יולי" #: ../code/Cal.py:14 msgid "August" msgstr "אוגוסט" #: ../code/Cal.py:14 msgid "September" msgstr "ספטמבר" #: ../code/Cal.py:15 msgid "October" msgstr "אוקטובר" #: ../code/Cal.py:15 msgid "November" msgstr "נובמבר" #: ../code/Cal.py:15 msgid "December" msgstr "דצמבר" #: ../code/Cal.py:17 msgid "Mo" msgstr "ב'" #: ../code/Cal.py:17 msgid "Tu" msgstr "ג'" #: ../code/Cal.py:17 msgid "We" msgstr "ד'" #: ../code/Cal.py:17 msgid "Th" msgstr "ה'" #: ../code/Cal.py:17 msgid "Fr" msgstr "ו'" #: ../code/Cal.py:17 msgid "Sa" msgstr "ש'" #: ../code/Cal.py:17 msgid "Su" msgstr "א'" #: ../code/CalWindow.py:159 msgid "Could not access background image. Screen capturing will be used instead." msgstr "לא ניתן לגשת לתמונת הרקע. לכידת מסך תתבצע במקום." #: ../code/Config.py:123 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "לא ניתן למצוא את קובץ ההגדרות %(filename)s." #: ../code/Config.py:134 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "קובץ הגדרות לא תקני %(configfile)s." #: ../code/Config.py:167 msgid "Could not save configuration." msgstr "לא ניתן לשמור הגדרות." #: ../code/SkinBrowser.py:31 msgid "Skin Browser" msgstr "דפדפן מראות" #: ../code/SkinBrowser.py:44 msgid "Name of Skin" msgstr "שם המראה" gdeskcal-0.57.1/po/hu.po0000644000175000017500000000476410025431056015014 0ustar seb128seb12800000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2003-02-24 17:51+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:69 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" #: ../code/CalMediator.py:54 msgid "_Current Month" msgstr "" #: ../code/CalMediator.py:55 msgid "_Previous Month" msgstr "" #: ../code/CalMediator.py:56 msgid "_Next Month" msgstr "" #: ../code/CalMediator.py:58 msgid "_Move" msgstr "" #: ../code/CalMediator.py:60 msgid "Change _Skin..." msgstr "" #: ../code/CalMediator.py:62 msgid "_Quit" msgstr "" #: ../code/Cal.py:12 msgid "January" msgstr "január" #: ../code/Cal.py:12 msgid "February" msgstr "február" #: ../code/Cal.py:12 msgid "March" msgstr "március" #: ../code/Cal.py:13 msgid "April" msgstr "április" #: ../code/Cal.py:13 msgid "May" msgstr "május" #: ../code/Cal.py:13 msgid "June" msgstr "június" #: ../code/Cal.py:14 msgid "July" msgstr "július" #: ../code/Cal.py:14 msgid "August" msgstr "augusztus" #: ../code/Cal.py:14 msgid "September" msgstr "szeptember" #: ../code/Cal.py:15 msgid "October" msgstr "október" #: ../code/Cal.py:15 msgid "November" msgstr "november" #: ../code/Cal.py:15 msgid "December" msgstr "december" #: ../code/Cal.py:17 msgid "Mo" msgstr "h" #: ../code/Cal.py:17 msgid "Tu" msgstr "k" #: ../code/Cal.py:17 msgid "We" msgstr "sz" #: ../code/Cal.py:17 msgid "Th" msgstr "cs" #: ../code/Cal.py:17 msgid "Fr" msgstr "p" #: ../code/Cal.py:17 msgid "Sa" msgstr "sz" #: ../code/Cal.py:17 msgid "Su" msgstr "v" #: ../code/CalWindow.py:159 msgid "" "Could not access background image. Screen capturing will be used instead." msgstr "" #: ../code/Config.py:123 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "" #: ../code/Config.py:134 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "" #: ../code/Config.py:167 msgid "Could not save configuration." msgstr "" #: ../code/SkinBrowser.py:31 msgid "Skin Browser" msgstr "" #: ../code/SkinBrowser.py:44 msgid "Name of Skin" msgstr "" gdeskcal-0.57.1/po/is.po0000644000175000017500000000613610025431056015006 0ustar seb128seb12800000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gDeskCal-0.33\n" "POT-Creation-Date: 2003-03-23 15:38+0100\n" "PO-Revision-Date: 2003-03-24 19:38--100\n" "Last-Translator: Samuel Jon Gunnarsson \n" "Language-Team: Icelandic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:73 msgid "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "Ekki tókst að innsetja stillingarskrá.\n" "gDeskCal mun ekki muna breyttar stillingar." #: ../code/CalMediator.py:58 msgid "_Current Month" msgstr "Nú_verandi Mánuður" #: ../code/CalMediator.py:59 msgid "_Previous Month" msgstr "_Síðastliðin Mánuður" #: ../code/CalMediator.py:60 msgid "_Next Month" msgstr "_Næsti Mánuður" #: ../code/CalMediator.py:62 msgid "_Move" msgstr "F_lytja" #: ../code/CalMediator.py:64 msgid "Change _Skin..." msgstr "Breyta _Skinni..." #: ../code/CalMediator.py:66 msgid "_Quit" msgstr "_Hætta" #: ../code/Cal.py:13 msgid "January" msgstr "Janúar" #: ../code/Cal.py:13 msgid "February" msgstr "Febrúar" #: ../code/Cal.py:13 msgid "March" msgstr "Mars" #: ../code/Cal.py:14 msgid "April" msgstr "Apríl" #: ../code/Cal.py:14 msgid "May" msgstr "Maí" #: ../code/Cal.py:14 msgid "June" msgstr "Júní" #: ../code/Cal.py:15 msgid "July" msgstr "Júlí" #: ../code/Cal.py:15 msgid "August" msgstr "Ágúst" #: ../code/Cal.py:15 msgid "September" msgstr "September" #: ../code/Cal.py:16 msgid "October" msgstr "Október" #: ../code/Cal.py:16 msgid "November" msgstr "Nóvember" #: ../code/Cal.py:16 msgid "December" msgstr "Desember" #: ../code/Cal.py:17 msgid "Mo" msgstr "Má" #: ../code/Cal.py:17 msgid "Tu" msgstr "Þr" #: ../code/Cal.py:17 msgid "We" msgstr "Mi" #: ../code/Cal.py:17 msgid "Th" msgstr "Fi" #: ../code/Cal.py:17 msgid "Fr" msgstr "Fö" #: ../code/Cal.py:17 msgid "Sa" msgstr "La" #: ../code/Cal.py:17 msgid "Su" msgstr "Su" #: ../code/CalWindow.py:157 msgid "Could not access background image. Screen capturing will be used instead." msgstr "Ekki fékkst aðgengi að bakgrunnsmynd. Skjáföngun verður notuð í staðin." #: ../code/Config.py:123 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "Ekki tókst að finna stillingarskrá %(filenames)s." #: ../code/Config.py:134 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "Invalid configuration file %(configfile)s." #: ../code/Config.py:167 msgid "Could not save configuration." msgstr "Ekki tókst að vista stillingar." #: ../code/SkinBrowser.py:31 msgid "Skin Browser" msgstr "Skinn vafri" #: ../code/SkinBrowser.py:45 msgid "Name of Skin" msgstr "Nafn skinns" #: ../code/SkinBrowser.py:63 msgid "New skins can be installed by dragging\n" "them into this window." msgstr "Hægt er að innsetja ný skinn með því að\n" "draga þau inn í þennan glugga." gdeskcal-0.57.1/po/it.po0000644000175000017500000000475410025431056015013 0ustar seb128seb12800000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2003-02-24 17:51+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:69 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" #: ../code/CalMediator.py:54 msgid "_Current Month" msgstr "" #: ../code/CalMediator.py:55 msgid "_Previous Month" msgstr "" #: ../code/CalMediator.py:56 msgid "_Next Month" msgstr "" #: ../code/CalMediator.py:58 msgid "_Move" msgstr "" #: ../code/CalMediator.py:60 msgid "Change _Skin..." msgstr "" #: ../code/CalMediator.py:62 msgid "_Quit" msgstr "" #: ../code/Cal.py:12 msgid "January" msgstr "gennaio" #: ../code/Cal.py:12 msgid "February" msgstr "febbraio" #: ../code/Cal.py:12 msgid "March" msgstr "marzo" #: ../code/Cal.py:13 msgid "April" msgstr "aprile" #: ../code/Cal.py:13 msgid "May" msgstr "maggio" #: ../code/Cal.py:13 msgid "June" msgstr "giugno" #: ../code/Cal.py:14 msgid "July" msgstr "luglio" #: ../code/Cal.py:14 msgid "August" msgstr "agosto" #: ../code/Cal.py:14 msgid "September" msgstr "settembre" #: ../code/Cal.py:15 msgid "October" msgstr "ottobre" #: ../code/Cal.py:15 msgid "November" msgstr "novembre" #: ../code/Cal.py:15 msgid "December" msgstr "dicembre" #: ../code/Cal.py:17 msgid "Mo" msgstr "lu" #: ../code/Cal.py:17 msgid "Tu" msgstr "ma" #: ../code/Cal.py:17 msgid "We" msgstr "me" #: ../code/Cal.py:17 msgid "Th" msgstr "gi" #: ../code/Cal.py:17 msgid "Fr" msgstr "ve" #: ../code/Cal.py:17 msgid "Sa" msgstr "sa" #: ../code/Cal.py:17 msgid "Su" msgstr "do" #: ../code/CalWindow.py:159 msgid "" "Could not access background image. Screen capturing will be used instead." msgstr "" #: ../code/Config.py:123 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "" #: ../code/Config.py:134 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "" #: ../code/Config.py:167 msgid "Could not save configuration." msgstr "" #: ../code/SkinBrowser.py:31 msgid "Skin Browser" msgstr "" #: ../code/SkinBrowser.py:44 msgid "Name of Skin" msgstr "" gdeskcal-0.57.1/po/ja.po0000644000175000017500000001103210025431056014754 0ustar seb128seb12800000000000000# Japanese locale for gDeskCal # Copyright (c) 2003, Martin Grimme # Martin Grimme , 2003. # Takeshi AIHANA , 2003. # msgid "" msgstr "" "Project-Id-Version: gDeskCal 0.54\n" "POT-Creation-Date: 2003-07-22 14:33+0200\n" "PO-Revision-Date: 2003-07-28 01:13+0900\n" "Last-Translator: Takeshi AIHANA \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:75 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" "設定ファイルがインストールできませんでした。\n" "gDeskCal は変更した設定を保持することができません。" #: ../code/CalMediator.py:73 msgid "_Current Month" msgstr "今月(_C)" #: ../code/CalMediator.py:74 msgid "_Previous Month" msgstr "先月(_P)" #: ../code/CalMediator.py:75 msgid "_Next Month" msgstr "来月(_N)" #: ../code/CalMediator.py:77 msgid "_Open Evolution Calendar" msgstr "Evolution カレンダを開く(_O)" #: ../code/CalMediator.py:79 msgid "_Move" msgstr "カレンダの移動(_M)" #: ../code/CalMediator.py:81 msgid "Change _Skin..." msgstr "スキンの変更...(_S)" #: ../code/CalMediator.py:83 msgid "_Quit" msgstr "終了(_Q)" #: ../code/Cal.py:17 msgid "January" msgstr "1月" #: ../code/Cal.py:17 msgid "February" msgstr "2月" #: ../code/Cal.py:17 msgid "March" msgstr "3月" #: ../code/Cal.py:18 msgid "April" msgstr "4月" #: ../code/Cal.py:18 msgid "May" msgstr "5月" #: ../code/Cal.py:18 msgid "June" msgstr "6月" #: ../code/Cal.py:19 msgid "July" msgstr "7月" #: ../code/Cal.py:19 msgid "August" msgstr "8月" #: ../code/Cal.py:19 msgid "September" msgstr "9月" #: ../code/Cal.py:20 msgid "October" msgstr "10月" #: ../code/Cal.py:20 msgid "November" msgstr "11月" #: ../code/Cal.py:20 msgid "December" msgstr "12月" #: ../code/Cal.py:21 msgid "Mo" msgstr "月" #: ../code/Cal.py:21 msgid "Tu" msgstr "火" #: ../code/Cal.py:21 msgid "We" msgstr "水" #: ../code/Cal.py:21 msgid "Th" msgstr "木" #: ../code/Cal.py:21 msgid "Fr" msgstr "金" #: ../code/Cal.py:21 msgid "Sa" msgstr "土" #: ../code/Cal.py:21 msgid "Su" msgstr "日" #: ../code/Config.py:125 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "設定ファイル %(filename)s が見つかりません。" #: ../code/Config.py:136 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "設定ファイル %(configfile)s が正しくありません。" #: ../code/Config.py:170 msgid "Could not save configuration." msgstr "設定を保存することができませんでした。" #: ../code/formats.py:2 #, python-format msgid "%(year)04d / %(month)02d / %(day)02d" msgstr "%(year)04d年%(month)02d月%(day)02d日" #: ../code/formats.py:3 #, python-format msgid "%(month)02d / %(day)02d" msgstr "%(month)02d月%(day)02d日" #: ../code/formats.py:4 #, python-format msgid "%(hour)02d:%(min)02d" msgstr "%(hour)02d:%(min)02d" #: ../code/sfrmapper.py:7 msgid "LOCALMAPPING" msgstr "LOCALMAPPING" #: ../code/SkinBrowser.py:33 msgid "Skin Browser" msgstr "スキン・ブラウサ" #: ../code/SkinBrowser.py:38 msgid "Name of Skin" msgstr "スキンの名前" #: ../code/SkinBrowser.py:72 msgid "" "New skins can be installed by dragging\n" "them into this window." msgstr "" "新しいスキンをこのウィンドウの中に\n" "ドラッグするとインストールできます。" #: ../code/planner/CalEditor.py:50 msgid "Edit Appointments" msgstr "約束の編集" #: ../code/planner/CalEditor.py:83 msgid "New Appointment" msgstr "新しい約束" #: ../code/planner/CalEditor.py:87 msgid "Remove Appointment" msgstr "約束の削除" #: ../code/planner/CalEditor.py:96 msgid "Edit Appointment" msgstr "約束の編集" #: ../code/planner/CalEditor.py:106 msgid "Summary:" msgstr "タイトル:" #: ../code/planner/CalEditor.py:119 msgid "Time:" msgstr "時刻:" #: ../code/planner/CalEditor.py:150 msgid "Recurrences:" msgstr "繰り返し:" #: ../code/planner/CalEditor.py:157 msgid "every $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ times" msgstr "毎 $INTERVAL$ ${日|週|月|年}$ で $TIMES$ 時間" #: ../code/planner/CalEditor.py:475 #, python-format msgid "Your appointments on %(date)s" msgstr "%(date)s の約束" #: ../code/planner/Planner.py:66 #, python-format msgid "Invalid calendar file %(file)s." msgstr "カレンダ・ファイル %(file)s が正しくありません" gdeskcal-0.57.1/po/ko.po0000644000175000017500000001031310025431056014774 0ustar seb128seb12800000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gDeskCal\n" "POT-Creation-Date: 2003-06-04 02:52+0900\n" "PO-Revision-Date: 2003-06-03 21:08+0200\n" "Last-Translator: Son KwonNam \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:75 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" "설정 파일을 설치할 수 없습니다.\n" "gDeskCal이 설정 변화를 기억할 수 없게 됩니다.." #: ../code/Cal.py:17 msgid "January" msgstr "1월" #: ../code/Cal.py:17 msgid "February" msgstr "2월" #: ../code/Cal.py:17 msgid "March" msgstr "3월" #: ../code/Cal.py:18 msgid "April" msgstr "4월" #: ../code/Cal.py:18 msgid "May" msgstr "5월" #: ../code/Cal.py:18 msgid "June" msgstr "6월" #: ../code/Cal.py:19 msgid "July" msgstr "7월" #: ../code/Cal.py:19 msgid "August" msgstr "8월" #: ../code/Cal.py:19 msgid "September" msgstr "9월" #: ../code/Cal.py:20 msgid "October" msgstr "10월" #: ../code/Cal.py:20 msgid "November" msgstr "11월" #: ../code/Cal.py:20 msgid "December" msgstr "12월" #: ../code/Cal.py:21 msgid "Mo" msgstr "월" #: ../code/Cal.py:21 msgid "Tu" msgstr "화" #: ../code/Cal.py:21 msgid "We" msgstr "수" #: ../code/Cal.py:21 msgid "Th" msgstr "목" #: ../code/Cal.py:21 msgid "Fr" msgstr "금" #: ../code/Cal.py:21 msgid "Sa" msgstr "토" #: ../code/Cal.py:21 msgid "Su" msgstr "일" #: ../code/CalMediator.py:73 msgid "_Current Month" msgstr "이번 달(_C)" #: ../code/CalMediator.py:74 msgid "_Previous Month" msgstr "지난 달(_P)" #: ../code/CalMediator.py:75 msgid "_Next Month" msgstr "다음 달(_N)" #: ../code/CalMediator.py:77 msgid "_Move" msgstr "옮기기(_M)" #: ../code/CalMediator.py:79 msgid "Change _Skin..." msgstr "스킨 바꾸기(_S)..." #: ../code/CalMediator.py:81 msgid "_Quit" msgstr "종료(_Q)" #: ../code/Config.py:125 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "설정 파일 %(filename)s을 찾을 수 없습니다." #: ../code/Config.py:136 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "%(configfile)s는 잘못된 설정 파일입니다." #: ../code/Config.py:170 msgid "Could not save configuration." msgstr "설정을 저장할 수 없습니다." #: ../code/SkinBrowser.py:33 msgid "Skin Browser" msgstr "스킨 브라우저" #: ../code/SkinBrowser.py:38 msgid "Name of Skin" msgstr "스킨 이름" #: ../code/SkinBrowser.py:72 msgid "" "New skins can be installed by dragging\n" "them into this window." msgstr "" "새로운 스킨을 추가하려면\n" "이 창에 끌어다 놓으면 됩니다." #: ../code/formats.py:2 #, python-format msgid "%(year)04d / %(month)02d / %(day)02d" msgstr "%(year)04d / %(month)02d / %(day)02d" #: ../code/formats.py:3 #, python-format msgid "%(month)02d / %(day)02d" msgstr "%(month)02d / %(day)02d" #: ../code/formats.py:4 #, python-format msgid "%(hour)02d:%(min)02d" msgstr "%(hour)02d:%(min)02d" #: ../code/sfrmapper.py:7 msgid "LOCALMAPPING" msgstr "LOCALMAPPING" #: ../code/planner/CalEditor.py:49 msgid "Edit Appointments" msgstr "일정 편집" #: ../code/planner/CalEditor.py:82 msgid "New Appointment" msgstr "새 일정" #: ../code/planner/CalEditor.py:86 msgid "Remove Appointment" msgstr "일정 삭제" #: ../code/planner/CalEditor.py:95 msgid "Edit Appointment" msgstr "일정 편집" #: ../code/planner/CalEditor.py:105 msgid "Summary:" msgstr "요약:" #: ../code/planner/CalEditor.py:118 msgid "Time:" msgstr "시간:" #: ../code/planner/CalEditor.py:340 #, python-format msgid "Your appointments on %(date)s" msgstr "%(date)s에 일정이 있슴" #: ../code/planner/Planner.py:63 #, fuzzy, python-format msgid "Invalid calendar file %(file)s." msgstr "%(file)s는 잘못된 달력 파일입니다." #~ msgid "" #~ "Could not access background image. Screen capturing will be used instead." #~ msgstr "" #~ "Impossible d'accéder à l'image de fond. Une capture d'écran va être " #~ "utilisé à la place." gdeskcal-0.57.1/po/lt.po0000604000175000017500000001005010025431056014774 0ustar seb128seb12800000000000000# 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 , 2003. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: gDeskCal 0.55\n" "POT-Creation-Date: 2003-03-01 23:57+0200\n" "PO-Revision-Date: 2003-11-05 14:40+0200\n" "Last-Translator: kesmis \n" "Language-Team: LITHUANIAN \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:75 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" #: ../code/CalMediator.py:73 msgid "_Current Month" msgstr "Esantis mėnuo" #: ../code/CalMediator.py:74 msgid "_Previous Month" msgstr "Buvęs mėnuo" #: ../code/CalMediator.py:75 msgid "_Next Month" msgstr "Būsimas mėnuo" #: ../code/CalMediator.py:77 msgid "_Open Evolution Calendar" msgstr "Atidaryti Evolution kalendorių" #: ../code/CalMediator.py:79 msgid "_Move" msgstr "Perkelti" #: ../code/CalMediator.py:81 msgid "Change _Skin..." msgstr "Keisti apvalkalą..." #: ../code/CalMediator.py:83 msgid "_Quit" msgstr "Išeiti" #: ../code/Cal.py:17 msgid "January" msgstr "Sausis" #: ../code/Cal.py:17 msgid "February" msgstr "Vasaris" #: ../code/Cal.py:17 msgid "March" msgstr "Kovas" #: ../code/Cal.py:18 msgid "April" msgstr "Balandis" #: ../code/Cal.py:18 msgid "May" msgstr "Gegužė" #: ../code/Cal.py:18 msgid "June" msgstr "Birželis" #: ../code/Cal.py:19 msgid "July" msgstr "Liepa" #: ../code/Cal.py:19 msgid "August" msgstr "Rugpjūtis" #: ../code/Cal.py:19 msgid "September" msgstr "Rugsėjis" #: ../code/Cal.py:20 msgid "October" msgstr "Spalis" #: ../code/Cal.py:20 msgid "November" msgstr "Lapkritis" #: ../code/Cal.py:20 msgid "December" msgstr "Gruodis" #: ../code/Cal.py:21 msgid "Mo" msgstr "Pr" #: ../code/Cal.py:21 msgid "Tu" msgstr "An" #: ../code/Cal.py:21 msgid "We" msgstr "Tr" #: ../code/Cal.py:21 msgid "Th" msgstr "Kt" #: ../code/Cal.py:21 msgid "Fr" msgstr "Pn" #: ../code/Cal.py:21 msgid "Sa" msgstr "Še" #: ../code/Cal.py:21 msgid "Su" msgstr "Sk" #: ../code/Config.py:125 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "" #: ../code/Config.py:136 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "" #: ../code/Config.py:170 msgid "Could not save configuration." msgstr "" #: ../code/formats.py:2 #, python-format msgid "%(year)04d / %(month)02d / %(day)02d" msgstr "" #: ../code/formats.py:3 #, python-format msgid "%(month)02d / %(day)02d" msgstr "" #: ../code/formats.py:4 #, python-format msgid "%(hour)02d:%(min)02d" msgstr "" #: ../code/sfrmapper.py:7 msgid "LOCALMAPPING" msgstr "" #: ../code/SkinBrowser.py:33 msgid "Skin Browser" msgstr "Apvalkalo naršyklė" #: ../code/SkinBrowser.py:38 msgid "Name of Skin" msgstr "Apvalkalo vardas" #: ../code/SkinBrowser.py:72 msgid "" "New skins can be installed by dragging\n" "them into this window." msgstr "Naujas apvalkalas gali būti įdiegtas\n" "nutempus jį ant šio lango." #: ../code/planner/CalEditor.py:50 msgid "Edit Appointments" msgstr "Priminimai" #: ../code/planner/CalEditor.py:83 msgid "New Appointment" msgstr "Naujas priminimas" #: ../code/planner/CalEditor.py:87 msgid "Remove Appointment" msgstr "Pašalinti priminimą" #: ../code/planner/CalEditor.py:96 msgid "Edit Appointment" msgstr "Redaguoti priminimą" #: ../code/planner/CalEditor.py:106 msgid "Summary:" msgstr "Aprašymas:" #: ../code/planner/CalEditor.py:119 msgid "Time:" msgstr "Laikas:" #: ../code/planner/CalEditor.py:150 msgid "Recurrences:" msgstr "Pasikartojimas" #: ../code/planner/CalEditor.py:157 msgid "every $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ times" msgstr "kas $INTERVAL$ ${dieną|savaitę|mėnėsį|metus}$ $TIMES$ kartus" #: ../code/planner/CalEditor.py:475 #, python-format msgid "Your appointments on %(date)s" msgstr "Priminimai %(date)s" #: ../code/planner/Planner.py:66 #, python-format msgid "Invalid calendar file %(file)s." msgstr ""gdeskcal-0.57.1/po/Makefile0000644000175000017500000000244510025431056015472 0ustar seb128seb12800000000000000FILES = ../gdeskcal ../code/*.py ../code/planner/*.py DOMAIN = gdeskcal LOCALEDIR = ../locale GETTEXT = xgettext MSGFMT = msgfmt --statistics MSGMERGE = msgmerge .PHONY: help update template new install help: @echo "Makefile for localization" @echo "-------------------------" @echo "Usage:" @echo " Set environment variable LOCALE to the desired locale and" @echo " invoke Makefile rules:" @echo "" @echo " $ make update Updates the .po file (it must exist)." @echo " $ make template Creates the .po template." @echo " $ make new Creates a new locale (template must exist)." @echo " $ make install Installs the locale (.po file must exist)." update: template @echo "Updating locale [$$LOCALE]" @$(MSGMERGE) --update \ -vvv \ $$LOCALE.po $(DOMAIN).pot template: @echo "Updating template." @$(GETTEXT) --output=$(DOMAIN).pot \ --output-dir=. \ --language=Python \ $(FILES) new: @mkdir --parents $(LOCALEDIR)/$$LOCALE/LC_MESSAGES @cp $(DOMAIN).pot $$LOCALE.po @echo "$$LOCALE.po created." install: @echo "Installing locale for [$$LOCALE]" @SOURCE=$$LOCALE.po ; \ TARGET=$(LOCALEDIR)/$$LOCALE/LC_MESSAGES/$(DOMAIN).mo ; \ $(MSGFMT) --output=$$TARGET $$SOURCE gdeskcal-0.57.1/po/nl.po0000644000175000017500000000474610025431056015011 0ustar seb128seb12800000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2003-02-24 17:51+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:69 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" #: ../code/CalMediator.py:54 msgid "_Current Month" msgstr "" #: ../code/CalMediator.py:55 msgid "_Previous Month" msgstr "" #: ../code/CalMediator.py:56 msgid "_Next Month" msgstr "" #: ../code/CalMediator.py:58 msgid "_Move" msgstr "" #: ../code/CalMediator.py:60 msgid "Change _Skin..." msgstr "" #: ../code/CalMediator.py:62 msgid "_Quit" msgstr "" #: ../code/Cal.py:12 msgid "January" msgstr "januari" #: ../code/Cal.py:12 msgid "February" msgstr "februari" #: ../code/Cal.py:12 msgid "March" msgstr "maart" #: ../code/Cal.py:13 msgid "April" msgstr "april" #: ../code/Cal.py:13 msgid "May" msgstr "mei" #: ../code/Cal.py:13 msgid "June" msgstr "juni" #: ../code/Cal.py:14 msgid "July" msgstr "juli" #: ../code/Cal.py:14 msgid "August" msgstr "augustus" #: ../code/Cal.py:14 msgid "September" msgstr "september" #: ../code/Cal.py:15 msgid "October" msgstr "oktober" #: ../code/Cal.py:15 msgid "November" msgstr "november" #: ../code/Cal.py:15 msgid "December" msgstr "december" #: ../code/Cal.py:17 msgid "Mo" msgstr "ma" #: ../code/Cal.py:17 msgid "Tu" msgstr "di" #: ../code/Cal.py:17 msgid "We" msgstr "wo" #: ../code/Cal.py:17 msgid "Th" msgstr "do" #: ../code/Cal.py:17 msgid "Fr" msgstr "vr" #: ../code/Cal.py:17 msgid "Sa" msgstr "za" #: ../code/Cal.py:17 msgid "Su" msgstr "zo" #: ../code/CalWindow.py:159 msgid "" "Could not access background image. Screen capturing will be used instead." msgstr "" #: ../code/Config.py:123 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "" #: ../code/Config.py:134 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "" #: ../code/Config.py:167 msgid "Could not save configuration." msgstr "" #: ../code/SkinBrowser.py:31 msgid "Skin Browser" msgstr "" #: ../code/SkinBrowser.py:44 msgid "Name of Skin" msgstr "" gdeskcal-0.57.1/po/no.po0000644000175000017500000000513010025431056015000 0ustar seb128seb12800000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2003-03-01 23:57+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:73 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" #: ../code/CalMediator.py:55 msgid "_Current Month" msgstr "" #: ../code/CalMediator.py:56 msgid "_Previous Month" msgstr "" #: ../code/CalMediator.py:57 msgid "_Next Month" msgstr "" #: ../code/CalMediator.py:59 msgid "_Move" msgstr "" #: ../code/CalMediator.py:61 msgid "Change _Skin..." msgstr "" #: ../code/CalMediator.py:63 msgid "_Quit" msgstr "" #: ../code/Cal.py:12 msgid "January" msgstr "januar" #: ../code/Cal.py:12 msgid "February" msgstr "februar" #: ../code/Cal.py:12 msgid "March" msgstr "mars" #: ../code/Cal.py:13 msgid "April" msgstr "april" #: ../code/Cal.py:13 msgid "May" msgstr "mai" #: ../code/Cal.py:13 msgid "June" msgstr "juni" #: ../code/Cal.py:14 msgid "July" msgstr "juli" #: ../code/Cal.py:14 msgid "August" msgstr "august" #: ../code/Cal.py:14 msgid "September" msgstr "september" #: ../code/Cal.py:15 msgid "October" msgstr "oktober" #: ../code/Cal.py:15 msgid "November" msgstr "november" #: ../code/Cal.py:15 msgid "December" msgstr "desember" #: ../code/Cal.py:17 msgid "Mo" msgstr "ma" #: ../code/Cal.py:17 msgid "Tu" msgstr "ti" #: ../code/Cal.py:17 msgid "We" msgstr "on" #: ../code/Cal.py:17 msgid "Th" msgstr "to" #: ../code/Cal.py:17 msgid "Fr" msgstr "fr" #: ../code/Cal.py:17 msgid "Sa" msgstr "lø" #: ../code/Cal.py:17 msgid "Su" msgstr "sø" #: ../code/CalWindow.py:159 msgid "" "Could not access background image. Screen capturing will be used instead." msgstr "" #: ../code/Config.py:123 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "" #: ../code/Config.py:134 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "" #: ../code/Config.py:167 msgid "Could not save configuration." msgstr "" #: ../code/SkinBrowser.py:31 msgid "Skin Browser" msgstr "" #: ../code/SkinBrowser.py:45 msgid "Name of Skin" msgstr "" #: ../code/SkinBrowser.py:63 msgid "" "New skins can be installed by dragging\n" "them into this window." msgstr "" gdeskcal-0.57.1/po/pl.po0000644000175000017500000001020210025431056014773 0ustar seb128seb12800000000000000# Polish translation of gDeskCal # Copyright (C) 2003 Free Software Foundation # This file is distributed under the same license as the gDeskCal package. # Arkadiusz Lipiec , 2003. # msgid "" msgstr "" "Project-Id-Version: gDeskCal\n" "POT-Creation-Date: 2003-05-02 23:06+0200\n" "PO-Revision-Date: 2003-05-02 08:49+0100\n" "Last-Translator: Arkadiusz Lipiec \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:75 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" "Nie można zainstalować pliku konfiguracyjnego.\n" "gDeskCall nie będzie miał możliwości zapamiętania zmian konfiguracyjnych." #: ../code/CalMediator.py:73 msgid "_Current Month" msgstr "_Bieżący miesiąc" #: ../code/CalMediator.py:74 msgid "_Previous Month" msgstr "_Poprzedni miesiąc" #: ../code/CalMediator.py:75 msgid "_Next Month" msgstr "_Następny miesiąc" #: ../code/CalMediator.py:77 msgid "_Move" msgstr "_Przenieś" #: ../code/CalMediator.py:79 msgid "Change _Skin..." msgstr "Zmień _skórkę..." #: ../code/CalMediator.py:81 msgid "_Quit" msgstr "_Zakończ" #: ../code/Cal.py:17 msgid "January" msgstr "Styczeń" #: ../code/Cal.py:17 msgid "February" msgstr "Luty" #: ../code/Cal.py:17 msgid "March" msgstr "Marzec" #: ../code/Cal.py:18 msgid "April" msgstr "Kwiecień" #: ../code/Cal.py:18 msgid "May" msgstr "Maj" #: ../code/Cal.py:18 msgid "June" msgstr "Czerwiec" #: ../code/Cal.py:19 msgid "July" msgstr "Lipiec" #: ../code/Cal.py:19 msgid "August" msgstr "Sierpień" #: ../code/Cal.py:19 msgid "September" msgstr "Wrzesień" #: ../code/Cal.py:20 msgid "October" msgstr "Październik" #: ../code/Cal.py:20 msgid "November" msgstr "Listopad" #: ../code/Cal.py:20 msgid "December" msgstr "Grudzień" #: ../code/Cal.py:21 msgid "Mo" msgstr "Po" #: ../code/Cal.py:21 msgid "Tu" msgstr "Wt" #: ../code/Cal.py:21 msgid "We" msgstr "Śr" #: ../code/Cal.py:21 msgid "Th" msgstr "Cz" #: ../code/Cal.py:21 msgid "Fr" msgstr "Pt" #: ../code/Cal.py:21 msgid "Sa" msgstr "So" #: ../code/Cal.py:21 msgid "Su" msgstr "Ni" #: ../code/Config.py:125 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "Nie można znaleźć pliku konfiguracyjnego %(filename)s" #: ../code/Config.py:136 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "Niepoprawny plik konfiguracji %s(configfile)s." #: ../code/Config.py:170 msgid "Could not save configuration." msgstr "Nie można zapisać konfiguracji." #: ../code/sfrmapper.py:7 msgid "LOCALMAPPING" msgstr "LOCALMAPPING" #: ../code/SkinBrowser.py:32 msgid "Skin Browser" msgstr "Przeglądarka skórek" #: ../code/SkinBrowser.py:37 msgid "Name of Skin" msgstr "Nazwa skórki" #: ../code/SkinBrowser.py:71 msgid "" "New skins can be installed by dragging\n" "them into this window." msgstr "" "Nowe skórki mogą być instalowane poprzez\n" "przeniesienie je na to okno." #: ../code/planner/CalEditor.py:44 msgid "Edit Appointments" msgstr "Edytuj spotkania" #: ../code/planner/CalEditor.py:77 msgid "New Appointment" msgstr "Nowe spotkanie" #: ../code/planner/CalEditor.py:81 msgid "Remove Appointment" msgstr "Usuń spotkanie" #: ../code/planner/CalEditor.py:90 msgid "Edit Appointment" msgstr "Edytuj spotkanie" #: ../code/planner/CalEditor.py:99 msgid "Summary:" msgstr "Zestawienie:" #: ../code/planner/CalEditor.py:109 msgid "Time:" msgstr "Czas:" #: ../code/planner/CalEditor.py:310 #, python-format msgid "Your appointments on %(date)s" msgstr "Twoje spotkania dnia %(date)s" #: ../code/planner/caltime.py:7 #, python-format msgid "%(year)04d / %(month)02d / %(day)02d" msgstr "%(year)04d / %(month)02d / %(day)02d" #: ../code/planner/caltime.py:8 #, python-format msgid "%(month)02d / %(day)02d" msgstr "%(month)02d / %(day)02d" #: ../code/planner/caltime.py:9 #, python-format msgid "%(hour)02d:%(min)02d" msgstr "%(hour)02d:%(min)02d" #: ../code/planner/Planner.py:62 #, python-format msgid "Invalid calendar file %(file)s." msgstr "Niepoprawny plik kalendarze %(file)s." gdeskcal-0.57.1/po/ru.po0000644000175000017500000001215410025431056015016 0ustar seb128seb12800000000000000# Russian translation of gdeskcal. # Copyright (C) 2003 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Lubimov Alexey , 2003. # # msgid "" msgstr "" "Project-Id-Version: gdeskcal 1\n" "Report-Msgid-Bugs-To: (null)\n" "POT-Creation-Date: 2003-08-04 23:37+0400\n" "PO-Revision-Date: 2003-08-04 23:58+0400\n" "Last-Translator: Lubimov Alexey \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit" #: ../gdeskcal:75 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "Не·могу·установить·файл·конфигурации.\n gDeskCal не·будет·запоминать·изменения·в·конфигурации." #: ../code/CalMediator.py:73 msgid "_Current Month" msgstr "Текущий месяц" #: ../code/CalMediator.py:74 msgid "_Previous Month" msgstr "Предыдущий месяц" #: ../code/CalMediator.py:75 msgid "_Next Month" msgstr "Следующий месяц" #: ../code/CalMediator.py:77 msgid "_Open Evolution Calendar" msgstr "Открыть календарь·Evolution" #: ../code/CalMediator.py:79 msgid "_Move" msgstr "Передвинуть" #: ../code/CalMediator.py:81 msgid "Change _Skin..." msgstr "Сменить шкурку" #: ../code/CalMediator.py:83 msgid "_Quit" msgstr "Выход" #: ../code/Cal.py:17 msgid "January" msgstr "Январь" #: ../code/Cal.py:17 msgid "February" msgstr "Февраль" #: ../code/Cal.py:17 msgid "March" msgstr "Март" #: ../code/Cal.py:18 msgid "April" msgstr "Апрель" #: ../code/Cal.py:18 msgid "May" msgstr "Май" #: ../code/Cal.py:18 msgid "June" msgstr "Июнь" #: ../code/Cal.py:19 msgid "July" msgstr "Июль" #: ../code/Cal.py:19 msgid "August" msgstr "Август" #: ../code/Cal.py:19 msgid "September" msgstr "Сентября" #: ../code/Cal.py:20 msgid "October" msgstr "Октябрь" #: ../code/Cal.py:20 msgid "November" msgstr "Ноябрь" #: ../code/Cal.py:20 msgid "December" msgstr "Декабря" #: ../code/Cal.py:21 msgid "Mo" msgstr "Пн" #: ../code/Cal.py:21 msgid "Tu" msgstr "Вт" #: ../code/Cal.py:21 msgid "We" msgstr "Ср" #: ../code/Cal.py:21 msgid "Th" msgstr "Чт" #: ../code/Cal.py:21 msgid "Fr" msgstr "Пт" #: ../code/Cal.py:21 msgid "Sa" msgstr "Сб" #: ../code/Cal.py:21 msgid "Su" msgstr "Вс" #: ../code/Config.py:125 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "Не могу найти конфигурационный файл %(filename)s." #: ../code/Config.py:136 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "Конфигурационный файл испорчен %(configfile)s" #: ../code/Config.py:170 msgid "Could not save configuration." msgstr "Невозможно сохранить конфигурацию" #: ../code/formats.py:2 #, python-format msgid "%(year)04d / %(month)02d / %(day)02d" msgstr "" #: ../code/formats.py:3 #, python-format msgid "%(month)02d / %(day)02d" msgstr "" #: ../code/formats.py:4 #, python-format msgid "%(hour)02d:%(min)02d" msgstr "" #: ../code/sfrmapper.py:7 msgid "LOCALMAPPING" msgstr "" #: ../code/SkinBrowser.py:33 msgid "Skin Browser" msgstr "Броузер шкурок" #: ../code/SkinBrowser.py:38 msgid "Name of Skin" msgstr "Название·шкурки" #: ../code/SkinBrowser.py:72 msgid "" "New skins can be installed by dragging\n" "them into this window." msgstr "Новые·шкурки·могут·быть·установлены·путем\n·их·перетаскивания·в·это·окно." #: ../code/planner/CalEditor.py:50 msgid "Edit Appointments" msgstr "Редактировать·встречи" #: ../code/planner/CalEditor.py:83 msgid "New Appointment" msgstr "Новая·встреча" #: ../code/planner/CalEditor.py:87 msgid "Remove Appointment" msgstr "Удалить·встречу" #: ../code/planner/CalEditor.py:96 msgid "Edit Appointment" msgstr "Редактировать·встречу" #: ../code/planner/CalEditor.py:106 msgid "Summary:" msgstr "Сводка:" #: ../code/planner/CalEditor.py:119 msgid "Time:" msgstr "Время:" #: ../code/planner/CalEditor.py:150 msgid "Recurrences:" msgstr "Повторить:" #: ../code/planner/CalEditor.py:157 msgid "every $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ times" msgstr "каждый·$INTERVAL$ ${день|неделю|месяц|год}$ всего $TIMES$ раз" #: ../code/planner/CalEditor.py:475 #, python-format msgid "Your appointments on %(date)s" msgstr "Ваши·встречи·на %(date)s" #: ../code/planner/Planner.py:66 #, python-format msgid "Invalid calendar file %(file)s." msgstr "Файл календаря·испорчен %(file)s" #~ msgid "" #~ "Could not access background image. Screen capturing will be used instead." #~ msgstr "" #~ "Фоновый рисунок недоступен. Вместо него будет использован снимок экрана." gdeskcal-0.57.1/po/sk.po0000644000175000017500000000564710025431056015016 0ustar seb128seb12800000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2003-02-24 17:51+0100\n" "PO-Revision-Date: 2003-07-04 15:18-0100\n" "Last-Translator: John Whiteline \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:69 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" "Nemôžem nainštalovať konfiguračný súbor.\n" "gDeskCal si nebude môcť zapamätať zmeny v konfigurácii." #: ../code/CalMediator.py:54 msgid "_Current Month" msgstr "_Tento mesiac" #: ../code/CalMediator.py:55 msgid "_Previous Month" msgstr "_Predchádzajúci mesiac" #: ../code/CalMediator.py:56 msgid "_Next Month" msgstr "_Nasledujúci mesiac" #: ../code/CalMediator.py:58 msgid "_Move" msgstr "Pr_esunúť" #: ../code/CalMediator.py:60 msgid "Change _Skin..." msgstr "Zmeniť _Vzhľad..." #: ../code/CalMediator.py:62 msgid "_Quit" msgstr "_Koniec" #: ../code/Cal.py:12 msgid "January" msgstr "Január" #: ../code/Cal.py:12 msgid "February" msgstr "Február" #: ../code/Cal.py:12 msgid "March" msgstr "Marec" #: ../code/Cal.py:13 msgid "April" msgstr "Apríl" #: ../code/Cal.py:13 msgid "May" msgstr "Máj" #: ../code/Cal.py:13 msgid "June" msgstr "Jún" #: ../code/Cal.py:14 msgid "July" msgstr "Júl" #: ../code/Cal.py:14 msgid "August" msgstr "August" #: ../code/Cal.py:14 msgid "September" msgstr "September" #: ../code/Cal.py:15 msgid "October" msgstr "Október" #: ../code/Cal.py:15 msgid "November" msgstr "November" #: ../code/Cal.py:15 msgid "December" msgstr "December" #: ../code/Cal.py:17 msgid "Mo" msgstr "Po" #: ../code/Cal.py:17 msgid "Tu" msgstr "Ut" #: ../code/Cal.py:17 msgid "We" msgstr "St" #: ../code/Cal.py:17 msgid "Th" msgstr "Št" #: ../code/Cal.py:17 msgid "Fr" msgstr "Pi" #: ../code/Cal.py:17 msgid "Sa" msgstr "So" #: ../code/Cal.py:17 msgid "Su" msgstr "Ne" #: ../code/CalWindow.py:159 msgid "Could not access background image. Screen capturing will be used instead." msgstr "Nemôžem nájsť obrázok pozadia. Budem používat snímanie obrazovky." #: ../code/Config.py:123 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "Nemôžem nájsť konfiguračný súbor %(filename)s." #: ../code/Config.py:134 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "Chybný konfiguračný súbor %(configfile)s." #: ../code/Config.py:167 msgid "Could not save configuration." msgstr "Nemôžem uložiť konfiguráciu." #: ../code/SkinBrowser.py:31 msgid "Skin Browser" msgstr "Prehliadač vzhľadov" #: ../code/SkinBrowser.py:44 msgid "Name of Skin" msgstr "Názov vzhľadu" gdeskcal-0.57.1/po/sr.po0000644000175000017500000001172410025431056015016 0ustar seb128seb12800000000000000# translation of gdeskcal.po to serbian # This file is distributed under the same license as the PACKAGE package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # Veljko Stanojevic , 2003 # msgid "" msgstr "" "Project-Id-Version: gdeskcal\n" "POT-Creation-Date: 2003-07-22 14:33+0200\n" "PO-Revision-Date: 2003-07-27 17:19+0200\n" "Last-Translator: Veljko Stanojevic \n" "Language-Team: serbian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.0.1\n" #: ../gdeskcal:75 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" "Нисам успео да инсталирам датотеку са подешењима.\n" "gDeskCal неће моћи да запамти промене у подешењима." #: ../code/CalMediator.py:73 msgid "_Current Month" msgstr "Актуелни месец" #: ../code/CalMediator.py:74 msgid "_Previous Month" msgstr "Претходни месец" #: ../code/CalMediator.py:75 msgid "_Next Month" msgstr "Следећи месец" #: ../code/CalMediator.py:77 msgid "_Open Evolution Calendar" msgstr "Отвори календар програма Еволуција" #: ../code/CalMediator.py:79 msgid "_Move" msgstr "Премести" #: ../code/CalMediator.py:81 msgid "Change _Skin..." msgstr "Промените кошуљицу..." #: ../code/CalMediator.py:83 msgid "_Quit" msgstr "Изађи" #: ../code/Cal.py:17 msgid "January" msgstr "Јануар" #: ../code/Cal.py:17 msgid "February" msgstr "Фебруар" #: ../code/Cal.py:17 msgid "March" msgstr "Март" #: ../code/Cal.py:18 msgid "April" msgstr "Април" #: ../code/Cal.py:18 msgid "May" msgstr "Мај" #: ../code/Cal.py:18 msgid "June" msgstr "Јун" #: ../code/Cal.py:19 msgid "July" msgstr "Јул" #: ../code/Cal.py:19 msgid "August" msgstr "Август" #: ../code/Cal.py:19 msgid "September" msgstr "Септембар" #: ../code/Cal.py:20 msgid "October" msgstr "Октобар" #: ../code/Cal.py:20 msgid "November" msgstr "Новембар" #: ../code/Cal.py:20 msgid "December" msgstr "Децембар" #: ../code/Cal.py:21 msgid "Mo" msgstr "Пон" #: ../code/Cal.py:21 msgid "Tu" msgstr "Уто" #: ../code/Cal.py:21 msgid "We" msgstr "Сре" #: ../code/Cal.py:21 msgid "Th" msgstr "Чет" #: ../code/Cal.py:21 msgid "Fr" msgstr "Пет" #: ../code/Cal.py:21 msgid "Sa" msgstr "Суб" #: ../code/Cal.py:21 msgid "Su" msgstr "Нед" #: ../code/Config.py:125 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "Не могу да пронађем датотеку са подешењима %(filename)s ." #: ../code/Config.py:136 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "Неисправна датотека са подешењима %(configfile)s." #: ../code/Config.py:170 msgid "Could not save configuration." msgstr "Нисам успео да сачувам подешења." #: ../code/formats.py:2 #, python-format msgid "%(year)04d / %(month)02d / %(day)02d" msgstr "%(day)02d / %(month)02d / %(year)04d" #: ../code/formats.py:3 #, python-format msgid "%(month)02d / %(day)02d" msgstr "%(day)02d / %(month)02d" #: ../code/formats.py:4 #, python-format msgid "%(hour)02d:%(min)02d" msgstr "%(hour)02d:%(min)02d" #: ../code/sfrmapper.py:7 msgid "LOCALMAPPING" msgstr "" #: ../code/SkinBrowser.py:33 msgid "Skin Browser" msgstr "Прегледач кошуљица" #: ../code/SkinBrowser.py:38 msgid "Name of Skin" msgstr "Назив кошуљие" #: ../code/SkinBrowser.py:72 msgid "" "New skins can be installed by dragging\n" "them into this window." msgstr "" "Нове кошуљице се инсталирају превлачењем\n" "у овај прозор." #: ../code/planner/CalEditor.py:50 msgid "Edit Appointments" msgstr "Уредите састанке" #: ../code/planner/CalEditor.py:83 msgid "New Appointment" msgstr "Нови састанак" #: ../code/planner/CalEditor.py:87 msgid "Remove Appointment" msgstr "Избриши састанак" #: ../code/planner/CalEditor.py:96 msgid "Edit Appointment" msgstr "Уредите састанак" #: ../code/planner/CalEditor.py:106 msgid "Summary:" msgstr "Сиже:" #: ../code/planner/CalEditor.py:119 msgid "Time:" msgstr "Време:" #: ../code/planner/CalEditor.py:150 msgid "Recurrences:" msgstr "Понављање:" #: ../code/planner/CalEditor.py:157 msgid "every $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ times" msgstr "every $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ times" #: ../code/planner/CalEditor.py:475 #, python-format msgid "Your appointments on %(date)s" msgstr "Ваши састанци за %(date)s" #: ../code/planner/Planner.py:66 #, python-format msgid "Invalid calendar file %(file)s." msgstr "Неисправна датотека календара %(file)s." gdeskcal-0.57.1/po/sv.po0000644000175000017500000000513410025431056015020 0ustar seb128seb12800000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2003-03-01 23:57+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:73 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" #: ../code/CalMediator.py:55 msgid "_Current Month" msgstr "" #: ../code/CalMediator.py:56 msgid "_Previous Month" msgstr "" #: ../code/CalMediator.py:57 msgid "_Next Month" msgstr "" #: ../code/CalMediator.py:59 msgid "_Move" msgstr "" #: ../code/CalMediator.py:61 msgid "Change _Skin..." msgstr "" #: ../code/CalMediator.py:63 msgid "_Quit" msgstr "" #: ../code/Cal.py:12 msgid "January" msgstr "januari" #: ../code/Cal.py:12 msgid "February" msgstr "februari" #: ../code/Cal.py:12 msgid "March" msgstr "mars" #: ../code/Cal.py:13 msgid "April" msgstr "april" #: ../code/Cal.py:13 msgid "May" msgstr "maj" #: ../code/Cal.py:13 msgid "June" msgstr "juni" #: ../code/Cal.py:14 msgid "July" msgstr "juli" #: ../code/Cal.py:14 msgid "August" msgstr "augusti" #: ../code/Cal.py:14 msgid "September" msgstr "september" #: ../code/Cal.py:15 msgid "October" msgstr "oktober" #: ../code/Cal.py:15 msgid "November" msgstr "november" #: ../code/Cal.py:15 msgid "December" msgstr "december" #: ../code/Cal.py:17 msgid "Mo" msgstr "må" #: ../code/Cal.py:17 msgid "Tu" msgstr "ti" #: ../code/Cal.py:17 msgid "We" msgstr "on" #: ../code/Cal.py:17 msgid "Th" msgstr "to" #: ../code/Cal.py:17 msgid "Fr" msgstr "fr" #: ../code/Cal.py:17 msgid "Sa" msgstr "lö" #: ../code/Cal.py:17 msgid "Su" msgstr "sö" #: ../code/CalWindow.py:159 msgid "" "Could not access background image. Screen capturing will be used instead." msgstr "" #: ../code/Config.py:123 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "" #: ../code/Config.py:134 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "" #: ../code/Config.py:167 msgid "Could not save configuration." msgstr "" #: ../code/SkinBrowser.py:31 msgid "Skin Browser" msgstr "" #: ../code/SkinBrowser.py:45 msgid "Name of Skin" msgstr "" #: ../code/SkinBrowser.py:63 msgid "" "New skins can be installed by dragging\n" "them into this window." msgstr "" gdeskcal-0.57.1/po/tr.po0000644000175000017500000000556710025431056015027 0ustar seb128seb12800000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2003-02-24 17:51+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:69 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" "Konfigurasyon dosyası kurulamadı. \n " "gDeskCal konfigurasyon değişikliklerini hatırlayamayacak." #: ../code/CalMediator.py:54 msgid "_Current Month" msgstr "_Şimdiki Ay" #: ../code/CalMediator.py:55 msgid "_Previous Month" msgstr "_Geçen Ay" #: ../code/CalMediator.py:56 msgid "_Next Month" msgstr "_Gelecek Ay" #: ../code/CalMediator.py:58 msgid "_Move" msgstr "_Taşı" #: ../code/CalMediator.py:60 msgid "Change _Skin..." msgstr "Kabuk Değiştir" #: ../code/CalMediator.py:62 msgid "_Quit" msgstr "_Çık" #: ../code/Cal.py:12 msgid "January" msgstr "Ocak" #: ../code/Cal.py:12 msgid "February" msgstr "Şubat" #: ../code/Cal.py:12 msgid "March" msgstr "Mart" #: ../code/Cal.py:13 msgid "April" msgstr "Nisan" #: ../code/Cal.py:13 msgid "May" msgstr "Mayıs" #: ../code/Cal.py:13 msgid "June" msgstr "Haziran" #: ../code/Cal.py:14 msgid "July" msgstr "Temmuz" #: ../code/Cal.py:14 msgid "August" msgstr "Ağustos" #: ../code/Cal.py:14 msgid "September" msgstr "Eylül" #: ../code/Cal.py:15 msgid "October" msgstr "Ekim" #: ../code/Cal.py:15 msgid "November" msgstr "Kasım" #: ../code/Cal.py:15 msgid "December" msgstr "Aralık" #: ../code/Cal.py:17 msgid "Mo" msgstr "Pz" #: ../code/Cal.py:17 msgid "Tu" msgstr "Sa" #: ../code/Cal.py:17 msgid "We" msgstr "Çr" #: ../code/Cal.py:17 msgid "Th" msgstr "Pr" #: ../code/Cal.py:17 msgid "Fr" msgstr "Cu" #: ../code/Cal.py:17 msgid "Sa" msgstr "Ct" #: ../code/Cal.py:17 msgid "Su" msgstr "Pa" #: ../code/CalWindow.py:159 msgid "" "Could not access background image. Screen capturing will be used instead." msgstr "" "Arkaplan görüntüsüne ulaşılamadı. Onun yerine ekran görüntüsü kullanılacak." #: ../code/Config.py:123 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "Konfigurasyon dosyası bulunamadı %(filename)s." #: ../code/Config.py:134 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "Geçersiz konfigurasyon dosyası %(configfile)s." #: ../code/Config.py:167 msgid "Could not save configuration." msgstr "Konfigurasyon kaydedilemedi." #: ../code/SkinBrowser.py:31 msgid "Skin Browser" msgstr "Kabuk Tarayıcı" #: ../code/SkinBrowser.py:44 msgid "Name of Skin" msgstr "Kabuk ismi" gdeskcal-0.57.1/po/uk.po0000644000175000017500000001221610025431056015006 0ustar seb128seb12800000000000000# Ukranian translation of gdeskcal. # Copyright (C) 2003 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Khohlov Vadim , 2003. # # msgid "" msgstr "" "Project-Id-Version: gdeskcal 1\n" "Report-Msgid-Bugs-To: (null)\n" "POT-Creation-Date: 2003-09-04 23:37+0400\n" "PO-Revision-Date: 2003-09-04 23:58+0400\n" "Last-Translator: Khohlov Vadim \n" "Language-Team: Ukranian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit" #: ../gdeskcal:75 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "Не можу встановити файл конфигурації.\n gDeskCal не буде запам'ятовувати зміни в конфигурації." #: ../code/CalMediator.py:73 msgid "_Current Month" msgstr "Поточний місяць" #: ../code/CalMediator.py:74 msgid "_Previous Month" msgstr "Попередний місяць" #: ../code/CalMediator.py:75 msgid "_Next Month" msgstr "Наступний місяць" #: ../code/CalMediator.py:77 msgid "_Open Evolution Calendar" msgstr "Відкрити календар Evolution" #: ../code/CalMediator.py:79 msgid "_Move" msgstr "Пересунути" #: ../code/CalMediator.py:81 msgid "Change _Skin..." msgstr "Змінити 'жупан'" #: ../code/CalMediator.py:83 msgid "_Quit" msgstr "Вихід" #: ../code/Cal.py:17 msgid "January" msgstr "Січень" #: ../code/Cal.py:17 msgid "February" msgstr "Лютий" #: ../code/Cal.py:17 msgid "March" msgstr "Березень" #: ../code/Cal.py:18 msgid "April" msgstr "Квітень" #: ../code/Cal.py:18 msgid "May" msgstr "Травень" #: ../code/Cal.py:18 msgid "June" msgstr "Червень" #: ../code/Cal.py:19 msgid "July" msgstr "Липень" #: ../code/Cal.py:19 msgid "August" msgstr "Серпень" #: ../code/Cal.py:19 msgid "September" msgstr "Вересень" #: ../code/Cal.py:20 msgid "October" msgstr "Жовтень" #: ../code/Cal.py:20 msgid "November" msgstr "Листопад" #: ../code/Cal.py:20 msgid "December" msgstr "Грудень" #: ../code/Cal.py:21 msgid "Mo" msgstr "Пн" #: ../code/Cal.py:21 msgid "Tu" msgstr "Вт" #: ../code/Cal.py:21 msgid "We" msgstr "Ср" #: ../code/Cal.py:21 msgid "Th" msgstr "Чт" #: ../code/Cal.py:21 msgid "Fr" msgstr "Пт" #: ../code/Cal.py:21 msgid "Sa" msgstr "Сб" #: ../code/Cal.py:21 msgid "Su" msgstr "Нд" #: ../code/Config.py:125 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "Не можу знайти конфігураційний файл %(filename)s." #: ../code/Config.py:136 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "Конфігураційний файл пошкоджено %(configfile)s" #: ../code/Config.py:170 msgid "Could not save configuration." msgstr "Неможливо зберегти конфігурацію" #: ../code/formats.py:2 #, python-format msgid "%(year)04d / %(month)02d / %(day)02d" msgstr "" #: ../code/formats.py:3 #, python-format msgid "%(month)02d / %(day)02d" msgstr "" #: ../code/formats.py:4 #, python-format msgid "%(hour)02d:%(min)02d" msgstr "" #: ../code/sfrmapper.py:7 msgid "LOCALMAPPING" msgstr "" #: ../code/SkinBrowser.py:33 msgid "Skin Browser" msgstr "Переглядач 'жупанів'" #: ../code/SkinBrowser.py:38 msgid "Name of Skin" msgstr "Назва 'жупану'" #: ../code/SkinBrowser.py:72 msgid "" "New skins can be installed by dragging\n" "them into this window." msgstr "Нові 'жупани' можуть бути встановлені шляхом\n" "їх перетягувавання в це вікно." #: ../code/planner/CalEditor.py:50 msgid "Edit Appointments" msgstr "Редагувати зустрічи" #: ../code/planner/CalEditor.py:83 msgid "New Appointment" msgstr "Нова зустріч" #: ../code/planner/CalEditor.py:87 msgid "Remove Appointment" msgstr "Видалити зустріч" #: ../code/planner/CalEditor.py:96 msgid "Edit Appointment" msgstr "Редагувати зустріч" #: ../code/planner/CalEditor.py:106 msgid "Summary:" msgstr "Сводка:" #: ../code/planner/CalEditor.py:119 msgid "Time:" msgstr "Час:" #: ../code/planner/CalEditor.py:150 msgid "Recurrences:" msgstr "Повторити:" #: ../code/planner/CalEditor.py:157 msgid "every $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ times" msgstr "кожний $INTERVAL$ ${день|тиждень|місяць|рік}$ всього $TIMES$ разів" #: ../code/planner/CalEditor.py:475 #, python-format msgid "Your appointments on %(date)s" msgstr "Ваші зустрічі на %(date)s" #: ../code/planner/Planner.py:66 #, python-format msgid "Invalid calendar file %(file)s." msgstr "Файл календаря пошкоджено %(file)s" #~ msgid "" #~ "Could not access background image. Screen capturing will be used instead." #~ msgstr "" #~ "Фоновый рисунок недоступен. Вместо него будет использован снимок экрана." gdeskcal-0.57.1/po/zh_CN.po0000644000175000017500000000524510025431056015374 0ustar seb128seb12800000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2003-04-04 14:16+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gdeskcal:73 msgid "" "Could not install the configuration file.\n" "gDeskCal will not be able to remember configuration changes." msgstr "" #: ../code/CalMediator.py:66 msgid "_Current Month" msgstr "" #: ../code/CalMediator.py:67 msgid "_Previous Month" msgstr "" #: ../code/CalMediator.py:68 msgid "_Next Month" msgstr "" #: ../code/CalMediator.py:70 msgid "_Move" msgstr "" #: ../code/CalMediator.py:72 msgid "Change _Skin..." msgstr "" #: ../code/CalMediator.py:74 msgid "_Quit" msgstr "" #: ../code/Cal.py:17 msgid "January" msgstr "一月" #: ../code/Cal.py:17 msgid "February" msgstr "二月" #: ../code/Cal.py:17 msgid "March" msgstr "三月" #: ../code/Cal.py:18 msgid "April" msgstr "四月" #: ../code/Cal.py:18 msgid "May" msgstr "五月" #: ../code/Cal.py:18 msgid "June" msgstr "六月" #: ../code/Cal.py:19 msgid "July" msgstr "七月" #: ../code/Cal.py:19 msgid "August" msgstr "八月" #: ../code/Cal.py:19 msgid "September" msgstr "九月" #: ../code/Cal.py:20 msgid "October" msgstr "十月" #: ../code/Cal.py:20 msgid "November" msgstr "十一月" #: ../code/Cal.py:20 msgid "December" msgstr "十二月" #: ../code/Cal.py:21 msgid "Mo" msgstr "一" #: ../code/Cal.py:21 msgid "Tu" msgstr "二" #: ../code/Cal.py:21 msgid "We" msgstr "三" #: ../code/Cal.py:21 msgid "Th" msgstr "四" #: ../code/Cal.py:21 msgid "Fr" msgstr "五" #: ../code/Cal.py:21 msgid "Sa" msgstr "六" #: ../code/Cal.py:21 msgid "Su" msgstr "日" #: ../code/CalWindow.py:158 msgid "" "Could not access background image. Screen capturing will be used instead." msgstr "" #: ../code/Config.py:123 #, python-format msgid "Unable to find configuration file %(filename)s." msgstr "" #: ../code/Config.py:134 #, python-format msgid "Invalid configuration file %(configfile)s." msgstr "" #: ../code/Config.py:167 msgid "Could not save configuration." msgstr "" #: ../code/sfrmapper.py:7 msgid "LOCALMAPPING" msgstr "CHINESE" #: ../code/SkinBrowser.py:31 msgid "Skin Browser" msgstr "" #: ../code/SkinBrowser.py:45 msgid "Name of Skin" msgstr "" #: ../code/SkinBrowser.py:63 msgid "" "New skins can be installed by dragging\n" "them into this window." msgstr "" gdeskcal-0.57.1/locale/0002755000175000017500000000000010025431056014650 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/ar/0002755000175000017500000000000010025431056015252 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/ar/LC_MESSAGES/0002755000175000017500000000000010025431056017037 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/ar/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000203510025431056021147 0ustar seb128seb12800000000000000l  "(,/8@ CMPSVY x             AprilAugustDecemberFebruaryFrJanuaryJulyJuneLOCALMAPPINGMarchMayMoNovemberOctoberSaSeptemberSuThTuWeProject-Id-Version: PACKAGE VERSION POT-Creation-Date: 2003-04-04 14:04+0200 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE Last-Translator: FULL NAME Language-Team: LANGUAGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit أبريلأغسطسديسمبرفبرايرجينايريوليويونيوHINDIمارسمايوننوفمبرأكتوبرسسبتمبرحخثرgdeskcal-0.57.1/locale/bg/0002755000175000017500000000000010025431056015240 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/bg/LC_MESSAGES/0002755000175000017500000000000010025431056017025 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/bg/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000500210025431056021132 0ustar seb128seb12800000000000000",/<f}*  ='env y /  " -:KL m~8I $+2;BG|X  $ ) a.      "    ! AprilAugustChange _Skin...Could not install the configuration file. gDeskCal will not be able to remember configuration changes.Could not save configuration.DecemberFebruaryFrInvalid calendar file %(file)s.Invalid configuration file %(configfile)s.JanuaryJulyJuneMarchMayMoName of SkinNew skins can be installed by dragging them into this window.NovemberOctoberSaSeptemberSkin BrowserSuThTuUnable to find configuration file %(filename)s.We_Current Month_Move_Next Month_Previous Month_QuitProject-Id-Version: PACKAGE VERSION POT-Creation-Date: 2003-04-27 12:50+0300 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE Last-Translator: FULL NAME Language-Team: LANGUAGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit АприлАвгуст_Смени SkinКонфигурационният файл не може да бъде инсталиран. gDeskCal няма да е в състояние да запомни конфигурационните промени.Конфигурацията не може да бъде съхранена.ДекемвриФевруариПеНевалиден календарен файл %(file)Невалиден конфигурационен файл %(configfile).ЯнуариЮлиЮниМартМайПоИме на SkinНови skin-ове могат да бъдат инсталирани чрез влачене в този прозорец.НоемвриОктовриСъСептемвриSkin БраузерНеЧеВтКонфигурационният файл %(filename) не може да бъде открит.Ср_Текущ МесецПре_мести_Следващ Месец_Предишен МесецИз_ходgdeskcal-0.57.1/locale/cs/0002755000175000017500000000000010025431056015255 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/cs/LC_MESSAGES/0002755000175000017500000000000010025431056017042 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/cs/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000171710025431056021160 0ustar seb128seb12800000000000000\ # &0369<[agpvz     AprilAugustDecemberFebruaryFrJanuaryJulyJuneMarchMayMoNovemberOctoberSaSeptemberSuThTuWeProject-Id-Version: PACKAGE VERSION POT-Creation-Date: 2003-02-24 17:51+0100 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE Last-Translator: FULL NAME Language-Team: LANGUAGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit dubensrpenprosinecúnorPáledenčervenecčervenbřezenkvětenPolistopadříjenSozáříNeČtÚtStgdeskcal-0.57.1/locale/de/0002755000175000017500000000000010025431056015240 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/de/LC_MESSAGES/0002755000175000017500000000000010025431056017025 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/de/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000557410025431056021150 0ustar seb128seb12800000000000000.=$ .4;fK*(S[`eko r=   $'-/0`c > <BIm[, $ , "/ .R       _   ' 7 H K U b e v y  5       / C8  ) -,  (!+&% ."'*$#%(month)02d / %(day)02d%(year)04d / %(month)02d / %(day)02dAprilAugustChange _Skin...Could not install the configuration file. gDeskCal will not be able to remember configuration changes.Could not save configuration.DecemberEdit AppointmentEdit AppointmentsFebruaryFrInvalid calendar file %(file)s.Invalid configuration file %(configfile)s.JanuaryJulyJuneMarchMayMoName of SkinNew AppointmentNew skins can be installed by dragging them into this window.NovemberOctoberRecurrences:Remove AppointmentSaSeptemberSkin BrowserSuSummary:ThTime:TuUnable to find configuration file %(filename)s.WeYour appointments on %(date)s_Current Month_Move_Next Month_Open Evolution Calendar_Previous Month_Quitevery $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ timesProject-Id-Version: gDeskCal POT-Creation-Date: 2003-07-22 14:33+0200 PO-Revision-Date: 2003-02-24 16:00+0100 Last-Translator: Martin Grimme MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit %(day)d. %(month)d.%(day)d. %(month)d. %(year)dAprilAugust_Skin wechseln...Die Konfigurationsdatei konnte nicht installiert werden. gDeskCal wird keine Einstellungen speichern können.Konfiguration konnte nicht gesichert werden.DezemberTermin bearbeitenTermine bearbeitenFebruarFrUngültige Kalenderdatei %(file)s.Ungültige Konfigurationsdatei %(configfile)s.JanuarJuliJuniMärzMaiMoSkin-NameNeuer TerminSie können neue Skins installieren, indem Sie diese in dieses Fenster ziehen und dort ablegen.NovemberOktoberWiederholungen:Termin entfernenSaSeptemberSkin-BrowserSoZusammenfassung:DoUhrzeit:DiKonnte Konfigurationsdatei %(filename)s nicht finden.MiTermine am %(date)s_Aktueller MonatV_erschieben_Nächster MonatEvolution-_Kalender öffnen_Vorheriger Monat_Beendenalle $INTERVAL$ ${Tage|Wochen|Monate|Jahre}$, insgesamt $TIMES$ malgdeskcal-0.57.1/locale/de_AT/0002755000175000017500000000000010025431056015624 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/de_AT/LC_MESSAGES/0002755000175000017500000000000010025431056017411 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/de_AT/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000426210025431056021525 0ustar seb128seb12800000000000000",/<If`*%-27=A D=Q  / '-(.5NGm,1:@.Crz _   &),5/eh y"   ! AprilAugustChange _Skin...Could not access background image. Screen capturing will be used instead.Could not install the configuration file. gDeskCal will not be able to remember configuration changes.Could not save configuration.DecemberFebruaryFrInvalid configuration file %(configfile)s.JanuaryJulyJuneMarchMayMoName of SkinNew skins can be installed by dragging them into this window.NovemberOctoberSaSeptemberSkin BrowserSuThTuUnable to find configuration file %(filename)s.We_Current Month_Move_Next Month_Previous Month_QuitProject-Id-Version: gDeskCal POT-Creation-Date: 2003-03-01 23:57+0100 PO-Revision-Date: 2003-02-24 16:00+0100 Last-Translator: Martin Grimme MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AprilAugust_Skin wechseln...Konnte nicht auf den Hintergrund zugreifen und mache statt dessen Screenshots.Die Konfigurationsdatei konnte nicht installiert werden. gDeskCal wird keine Einstellungen speichern können.Konfiguration konnte nicht gesichert werden.DezemberFeberFrUngültige Konfigurationsdatei %(configfile)s.JännerJuliJuniMärzMaiMoSkin-NameSie können neue Skins installieren, indem Sie diese in dieses Fenster ziehen und dort ablegen.NovemberOktoberSaSeptemberSkin-BrowserSoDoDiKonnte Konfigurationsdatei %(filename)s nicht finden.Mi_Aktueller MonatV_erschieben_Nächster Monat_Vorheriger Monat_Beendengdeskcal-0.57.1/locale/el/0002755000175000017500000000000010025431056015250 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/el/LC_MESSAGES/0002755000175000017500000000000010025431056017035 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/el/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000213010025431056021141 0ustar seb128seb12800000000000000\ # &0369<[l (-DINS    AprilAugustDecemberFebruaryFrJanuaryJulyJuneMarchMayMoNovemberOctoberSaSeptemberSuThTuWeProject-Id-Version: PACKAGE VERSION POT-Creation-Date: 2003-02-24 17:51+0100 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE Last-Translator: FULL NAME Language-Team: LANGUAGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ΑπρίλιοςΑύγουστοςΔεκέμβριοςΦεβρουάριοςΠαΙανουάριοςΙούλιοςΙούνιοςΜάρτιοςΜάιοςΔεΝοέμβριοςΟκτώβριοςΣαΣεπτέμβριοςΚυΠεΤρΤεgdeskcal-0.57.1/locale/es/0002755000175000017500000000000010025431056015257 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/es/LC_MESSAGES/0002755000175000017500000000000010025431056017044 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/es/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000600510025431056021155 0ustar seb128seb128000000000000000C()>$V{f&7IRU*u  ='0 8EX [ eru~/ %>+:j$  c #u   * 3 & , 2 8 E K P S c >n         C V Y o z   F /) ( & #0%$! *",+' -.%(hour)02d:%(min)02d%(month)02d / %(day)02d%(year)04d / %(month)02d / %(day)02dAprilAugustChange _Skin...Could not install the configuration file. gDeskCal will not be able to remember configuration changes.Could not save configuration.DecemberEdit AppointmentEdit AppointmentsFebruaryFrInvalid calendar file %(file)s.Invalid configuration file %(configfile)s.JanuaryJulyJuneLOCALMAPPINGMarchMayMoName of SkinNew AppointmentNew skins can be installed by dragging them into this window.NovemberOctoberRecurrences:Remove AppointmentSaSeptemberSkin BrowserSuSummary:ThTime:TuUnable to find configuration file %(filename)s.WeYour appointments on %(date)s_Current Month_Move_Next Month_Open Evolution Calendar_Previous Month_Quitevery $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ timesProject-Id-Version: PACKAGE VERSION POT-Creation-Date: 2003-07-22 14:33+0200 PO-Revision-Date: 2003-8-12 1:31+GMT+2 Last-Translator: Toms Javier Robles Prado Language-Team: es MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit %(hour)02d:%(min)02d%(month)02d / %(day)02d%(year)04d / %(month)02d / %(day)02dAbrilAgostoCambiar SkinNo se pudo instalar el archivo de configuracin. gDeskCal no recordar los cambios de configuracinNo se pudo guardar la configuracinDiciembreEditar CitaEditar CitasFebreroViFichero de calendario incorrecto %(file)s.Archivo de configuracin incorrecto %(configfile)s.EneroJulioJunioLOCALMAPPINGMarzoMayoLuNombre del SkinNueva CitaSe pueden instalar nuevas Skins arrastrndolas a esta ventana.NoviembreOctubreRepeticiones:Borrar CitaSaSeptiembreNavegador de SkinsDoResumen:JuHora:MaNo se ha podido encontrar el archivo de configuracin %(filename)s.MiTus citas en %(date)sMes ActualMoverPrximo mesAbrir Calendario de EvolutionMes AnteriorCerrartodos los $INTERVAL$ ${days|weeks|months|years}$ durante $TIMES$ vecesgdeskcal-0.57.1/locale/fi/0002755000175000017500000000000010025431056015246 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/fi/LC_MESSAGES/0002755000175000017500000000000010025431056017033 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/fi/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000477710025431056021162 0ustar seb128seb12800000000000000)d;f;DUgps* =8AI\ _ ivy/ 0GPW]h#%!2Gz   :    & ) 1 ? B N Q W 1Z  $       & $") % #'! ( AprilAugustChange _Skin...Could not install the configuration file. gDeskCal will not be able to remember configuration changes.Could not save configuration.DecemberEdit AppointmentEdit AppointmentsFebruaryFrInvalid calendar file %(file)s.Invalid configuration file %(configfile)s.JanuaryJulyJuneMarchMayMoName of SkinNew AppointmentNew skins can be installed by dragging them into this window.NovemberOctoberRemove AppointmentSaSeptemberSkin BrowserSuSummary:ThTime:TuUnable to find configuration file %(filename)s.WeYour appointments on %(date)s_Current Month_Move_Next Month_Previous Month_QuitProject-Id-Version: PACKAGE VERSION POT-Creation-Date: 2003-05-15 20:53+0300 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE Last-Translator: Tero Koskinen Language-Team: LANGUAGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit HuhtikuuElokuu_Vaihda nahka...Ei voinut asentaa konfiguraatiotiedostoa. gDeskCal ei pysty muistamaan muutoksia asetuksissa.Ei pystynyt tallentamaan asetuksia.JoulukuuMuuta tapaamistaMuuta tapaamisiaHelmikuuPeViallinen kalenteritiedosto (%file)s.Virheellinen konfiguraatiotiedosto %(configfile)s.TammikuuHeinäkuuKesäkuuMaaliskuuToukokuuMaNahan nimiUusi tapaaminenUusia nahkoja voi asentaa raahaamalla ne tähän ikkunaan.MarraskuuLokakuuPoista tapaaminenLaSyyskuuSelaa nahkojaSuYhteenveto:ToAika:TiEi löytynyt konfiguraatiotiedostoa %(filename)s.KeSinun tapaamisesi hetkellä %(date)s_Nykyinen kuukausiS_iirrä_Seuraava kuukausi_Edellinen kuukausi_Lopetagdeskcal-0.57.1/locale/fr/0002755000175000017500000000000010025431056015257 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/fr/LC_MESSAGES/0002755000175000017500000000000010025431056017044 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/fr/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000617210025431056021162 0ustar seb128seb128000000000000000C()>$V{f&7IRU*u  ='0 8EX [ eru~/ %>+j$v+m     2 2 J R Z _ l q u x  \    4 7 A [ ^ h k r ?u    !  / A8 /) ( & #0%$! *",+' -.%(hour)02d:%(min)02d%(month)02d / %(day)02d%(year)04d / %(month)02d / %(day)02dAprilAugustChange _Skin...Could not install the configuration file. gDeskCal will not be able to remember configuration changes.Could not save configuration.DecemberEdit AppointmentEdit AppointmentsFebruaryFrInvalid calendar file %(file)s.Invalid configuration file %(configfile)s.JanuaryJulyJuneLOCALMAPPINGMarchMayMoName of SkinNew AppointmentNew skins can be installed by dragging them into this window.NovemberOctoberRecurrences:Remove AppointmentSaSeptemberSkin BrowserSuSummary:ThTime:TuUnable to find configuration file %(filename)s.WeYour appointments on %(date)s_Current Month_Move_Next Month_Open Evolution Calendar_Previous Month_Quitevery $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ timesProject-Id-Version: gDeskCal Report-Msgid-Bugs-To: POT-Creation-Date: 2003-08-14 21:42+0200 PO-Revision-Date: 2003-05-04 21:08+0200 Last-Translator: Sebastien Bacher MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit %(hour)02d:%(min)02d%(day)02d / %(month)02d%(day)02d / %(month)02d / %(year)04davrilaoûtChanger de revêtementImpossible d'installer le fichier de configuration. gDeskCal ne pourra pas méoriser vos changements de configuration.Impossible de sauvegarder la configuration.décembreModifier un rendez-vousModification des rendez-vousfévrierveFichier de configuration incorrect %(configfile)s.Fichier de configuration incorrect %(configfile)s.janvierjuilletjuinLOCALMAPPINGmarsmailuNom du revêtementNouveau rendez-vousDe nouveaux revêtements peuvent être installés en les faisant glisser dans cette fenêtrenovembreoctobreRépétition:Supprimer le rendez-voussaseptembreNavigateur de revêtementdiRésumé:jeHeure:maImpossible de trouver le fichier de configuration %(filename)s.meVos rendez-vous le %(date)sMois en _coursDéplacerMois suiva_nt_Ouvrir le calendrier d'EvolutionMois _précédant_Quittertous les $INTERVAL$ ${jours|semaines|mois|ans}$ pour $TIMES$ foisgdeskcal-0.57.1/locale/he/0002755000175000017500000000000010025431056015244 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/he/LC_MESSAGES/0002755000175000017500000000000010025431056017031 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/he/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000426610025431056021151 0ustar seb128seb12800000000000000!$/,IfP*"'-1 4AJR U _lor/u 6  !.VB& A LY3]   Ccg | !   AprilAugustChange _Skin...Could not access background image. Screen capturing will be used instead.Could not install the configuration file. gDeskCal will not be able to remember configuration changes.Could not save configuration.DecemberFebruaryFrInvalid configuration file %(configfile)s.JanuaryJulyJuneMarchMayMoName of SkinNovemberOctoberSaSeptemberSkin BrowserSuThTuUnable to find configuration file %(filename)s.We_Current Month_Move_Next Month_Previous Month_QuitProject-Id-Version: he POT-Creation-Date: 2003-02-24 17:51+0100 PO-Revision-Date: 2003-08-14 01:00+0300 Last-Translator: Gil 'Dolfin' Osher Language-Team: Hebrew MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: KBabel 1.0.1 אפרילאוגוסטשנה _מראה...לא ניתן לגשת לתמונת הרקע. לכידת מסך תתבצע במקום.לא ניתן להתקין את קובץ ההגדרות. gDeskCal לא יוכל לזכור את השינויים בהגדרות.לא ניתן לשמור הגדרות.דצמברפברוארו'קובץ הגדרות לא תקני %(configfile)s.ינואריולייונימרץמאיב'שם המראהנובמבראוקטוברש'ספטמברדפדפן מראותא'ה'ג'לא ניתן למצוא את קובץ ההגדרות %(filename)s.ד'חודש _נוכחיה_עברחודש ה_באחודש _קודם_יציאהgdeskcal-0.57.1/locale/hu/0002755000175000017500000000000010025431056015264 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/hu/LC_MESSAGES/0002755000175000017500000000000010025431056017051 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/hu/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000172610025431056021167 0ustar seb128seb12800000000000000\ # &0369<[ dnw     AprilAugustDecemberFebruaryFrJanuaryJulyJuneMarchMayMoNovemberOctoberSaSeptemberSuThTuWeProject-Id-Version: PACKAGE VERSION POT-Creation-Date: 2003-02-24 17:51+0100 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE Last-Translator: FULL NAME Language-Team: LANGUAGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit áprilisaugusztusdecemberfebruárpjanuárjúliusjúniusmárciusmájushnovemberoktóberszszeptembervcskszgdeskcal-0.57.1/locale/is/0002755000175000017500000000000010025431056015263 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/is/LC_MESSAGES/0002755000175000017500000000000010025431056017050 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/is/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000432310025431056021162 0ustar seb128seb12800000000000000",/<If`*%-27=A D=Q  / '9-gnvPU!/QZc*g P & ) 3?BE4I~"   ! AprilAugustChange _Skin...Could not access background image. Screen capturing will be used instead.Could not install the configuration file. gDeskCal will not be able to remember configuration changes.Could not save configuration.DecemberFebruaryFrInvalid configuration file %(configfile)s.JanuaryJulyJuneMarchMayMoName of SkinNew skins can be installed by dragging them into this window.NovemberOctoberSaSeptemberSkin BrowserSuThTuUnable to find configuration file %(filename)s.We_Current Month_Move_Next Month_Previous Month_QuitProject-Id-Version: gDeskCal-0.33 POT-Creation-Date: 2003-03-23 15:38+0100 PO-Revision-Date: 2003-03-24 19:38--100 Last-Translator: Samuel Jon Gunnarsson Language-Team: Icelandic MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit AprílÁgústBreyta _Skinni...Ekki fékkst aðgengi að bakgrunnsmynd. Skjáföngun verður notuð í staðin.Ekki tókst að innsetja stillingarskrá. gDeskCal mun ekki muna breyttar stillingar.Ekki tókst að vista stillingar.DesemberFebrúarFöInvalid configuration file %(configfile)s.JanúarJúlíJúníMarsMaíMáNafn skinnsHægt er að innsetja ný skinn með því að draga þau inn í þennan glugga.NóvemberOktóberLaSeptemberSkinn vafriSuFiÞrEkki tókst að finna stillingarskrá %(filenames)s.MiNú_verandi MánuðurF_lytja_Næsti Mánuður_Síðastliðin Mánuður_Hættagdeskcal-0.57.1/locale/it/0002755000175000017500000000000010025431056015264 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/it/LC_MESSAGES/0002755000175000017500000000000010025431056017051 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/it/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000171610025431056021166 0ustar seb128seb12800000000000000\ # &0369<[bir{~     AprilAugustDecemberFebruaryFrJanuaryJulyJuneMarchMayMoNovemberOctoberSaSeptemberSuThTuWeProject-Id-Version: PACKAGE VERSION POT-Creation-Date: 2003-02-24 17:51+0100 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE Last-Translator: FULL NAME Language-Team: LANGUAGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit aprileagostodicembrefebbraiovegennaiolugliogiugnomarzomaggiolunovembreottobresasettembredogimamegdeskcal-0.57.1/locale/ja/0002755000175000017500000000000010025431056015242 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/ja/LC_MESSAGES/0002755000175000017500000000000010025431056017027 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/ja/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000630310025431056021141 0ustar seb128seb128000000000000000C()>$V{f&7IRU*u  ='0 8EX [ eru~/ %>+:j'  % 9      @ @]         j ` f l z        ;   # . H #S w 5 /) ( & #0%$! *",+' -.%(hour)02d:%(min)02d%(month)02d / %(day)02d%(year)04d / %(month)02d / %(day)02dAprilAugustChange _Skin...Could not install the configuration file. gDeskCal will not be able to remember configuration changes.Could not save configuration.DecemberEdit AppointmentEdit AppointmentsFebruaryFrInvalid calendar file %(file)s.Invalid configuration file %(configfile)s.JanuaryJulyJuneLOCALMAPPINGMarchMayMoName of SkinNew AppointmentNew skins can be installed by dragging them into this window.NovemberOctoberRecurrences:Remove AppointmentSaSeptemberSkin BrowserSuSummary:ThTime:TuUnable to find configuration file %(filename)s.WeYour appointments on %(date)s_Current Month_Move_Next Month_Open Evolution Calendar_Previous Month_Quitevery $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ timesProject-Id-Version: gDeskCal 0.54 POT-Creation-Date: 2003-07-22 14:33+0200 PO-Revision-Date: 2003-07-28 01:13+0900 Last-Translator: Takeshi AIHANA Language-Team: Japanese MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit %(hour)02d:%(min)02d%(month)02d月%(day)02d日%(year)04d年%(month)02d月%(day)02d日4月8月スキンの変更...(_S)設定ファイルがインストールできませんでした。 gDeskCal は変更した設定を保持することができません。設定を保存することができませんでした。12月約束の編集約束の編集2月金カレンダ・ファイル %(file)s が正しくありません設定ファイル %(configfile)s が正しくありません。1月7月6月LOCALMAPPING3月5月月スキンの名前新しい約束新しいスキンをこのウィンドウの中に ドラッグするとインストールできます。11月10月繰り返し:約束の削除土9月スキン・ブラウサ日タイトル:木時刻:火設定ファイル %(filename)s が見つかりません。水%(date)s の約束今月(_C)カレンダの移動(_M)来月(_N)Evolution カレンダを開く(_O)先月(_P)終了(_Q)毎 $INTERVAL$ ${日|週|月|年}$ で $TIMES$ 時間gdeskcal-0.57.1/locale/ko/0002755000175000017500000000000010025431056015261 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/ko/LC_MESSAGES/0002755000175000017500000000000010025431056017046 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/ko/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000515010025431056021157 0ustar seb128seb12800000000000000,|;$!(f8* (- 2?EI LY=i  /-0N] co$j%a  3      M) w }         6   " 1 ? N ] ) '% #,! ( & *+$"%(hour)02d:%(min)02d%(month)02d / %(day)02d%(year)04d / %(month)02d / %(day)02dAprilAugustChange _Skin...Could not install the configuration file. gDeskCal will not be able to remember configuration changes.Could not save configuration.DecemberEdit AppointmentEdit AppointmentsFebruaryFrInvalid configuration file %(configfile)s.JanuaryJulyJuneLOCALMAPPINGMarchMayMoName of SkinNew AppointmentNew skins can be installed by dragging them into this window.NovemberOctoberRemove AppointmentSaSeptemberSkin BrowserSuSummary:ThTime:TuUnable to find configuration file %(filename)s.WeYour appointments on %(date)s_Current Month_Move_Next Month_Previous Month_QuitProject-Id-Version: gDeskCal POT-Creation-Date: 2003-06-04 02:52+0900 PO-Revision-Date: 2003-06-03 21:08+0200 Last-Translator: Son KwonNam MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit %(hour)02d:%(min)02d%(month)02d / %(day)02d%(year)04d / %(month)02d / %(day)02d4월8월스킨 바꾸기(_S)...설정 파일을 설치할 수 없습니다. gDeskCal이 설정 변화를 기억할 수 없게 됩니다..설정을 저장할 수 없습니다.12월일정 편집일정 편집2월금%(configfile)s는 잘못된 설정 파일입니다.1월7월6월LOCALMAPPING3월5월월스킨 이름새 일정새로운 스킨을 추가하려면 이 창에 끌어다 놓으면 됩니다.11월10월일정 삭제토9월스킨 브라우저일요약:목시간:화설정 파일 %(filename)s을 찾을 수 없습니다.수%(date)s에 일정이 있슴이번 달(_C)옮기기(_M)다음 달(_N)지난 달(_P)종료(_Q)gdeskcal-0.57.1/locale/lt/0002755000175000017500000000000010025431056015267 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/lt/LC_MESSAGES/0002755000175000017500000000000010025431056017054 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/lt/LC_MESSAGES/gdeskcal.mo0000604000175000017500000000277110025431056021167 0ustar seb128seb12800000000000000) =-6> A KX[^ads y!   C1 u      AprilAugustChange _Skin...DecemberFebruaryFrJanuaryJulyJuneMarchMayMoName of SkinNew skins can be installed by dragging them into this window.NovemberOctoberSaSeptemberSkin BrowserSuThTuWe_Current Month_Move_Next Month_Previous Month_QuitProject-Id-Version: gDeskCal 0.32 POT-Creation-Date: 2003-03-01 23:57+0200 PO-Revision-Date: 2003-03-13 10:52+0200 Last-Translator: kesmis Language-Team: LITHUANIAN MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BalandisRugpjūtisKeisti a_pvalkaląGruodisVasarisPnSausisLiepaBirželisKovasGegužėPrApvalkalo vardasNaujas apvalkalas gali būti įdiegtas, nutempus jį ant šio langoLapkritisSpalisŠeRugsėjisApvalkalų naršyklėSkKtAnTr_Esantis mėnuo_PerkeltiBūsim_as mėnuoBuvę_s mėnuo_Išeitigdeskcal-0.57.1/locale/nl/0002755000175000017500000000000010025431056015261 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/nl/LC_MESSAGES/0002755000175000017500000000000010025431056017046 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/nl/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000171010025431056021155 0ustar seb128seb12800000000000000\ # &0369<[ajs|     AprilAugustDecemberFebruaryFrJanuaryJulyJuneMarchMayMoNovemberOctoberSaSeptemberSuThTuWeProject-Id-Version: PACKAGE VERSION POT-Creation-Date: 2003-02-24 17:51+0100 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE Last-Translator: FULL NAME Language-Team: LANGUAGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit aprilaugustusdecemberfebruarivrjanuarijulijunimaartmeimanovemberoktoberzaseptemberzododiwogdeskcal-0.57.1/locale/no/0002755000175000017500000000000010025431056015264 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/no/LC_MESSAGES/0002755000175000017500000000000010025431056017051 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/no/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000170510025431056021164 0ustar seb128seb12800000000000000\ # &0369<[ahqy|     AprilAugustDecemberFebruaryFrJanuaryJulyJuneMarchMayMoNovemberOctoberSaSeptemberSuThTuWeProject-Id-Version: PACKAGE VERSION POT-Creation-Date: 2003-03-01 23:57+0100 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE Last-Translator: FULL NAME Language-Team: LANGUAGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit aprilaugustdesemberfebruarfrjanuarjulijunimarsmaimanovemberoktoberløseptembersøtotiongdeskcal-0.57.1/locale/pl/0002755000175000017500000000000010025431056015263 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/pl/LC_MESSAGES/0002755000175000017500000000000010025431056017050 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/pl/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000546310025431056021170 0ustar seb128seb12800000000000000-=$39@fP  *-X`e jw} =   ),2/5eh %$ 5 ?I]!   + 0 %3 .Y        H " + 8 H K U k n { ~  8      )  ,*-  )" '& !#(+%$%(hour)02d:%(min)02d%(month)02d / %(day)02d%(year)04d / %(month)02d / %(day)02dAprilAugustChange _Skin...Could not install the configuration file. gDeskCal will not be able to remember configuration changes.Could not save configuration.DecemberEdit AppointmentEdit AppointmentsFebruaryFrInvalid calendar file %(file)s.Invalid configuration file %(configfile)s.JanuaryJulyJuneLOCALMAPPINGMarchMayMoName of SkinNew AppointmentNew skins can be installed by dragging them into this window.NovemberOctoberRemove AppointmentSaSeptemberSkin BrowserSuSummary:ThTime:TuUnable to find configuration file %(filename)s.WeYour appointments on %(date)s_Current Month_Move_Next Month_Previous Month_QuitProject-Id-Version: gDeskCal POT-Creation-Date: 2003-05-02 23:06+0200 PO-Revision-Date: 2003-05-02 08:49+0100 Last-Translator: Arkadiusz Lipiec Language-Team: Polish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit %(hour)02d:%(min)02d%(month)02d / %(day)02d%(year)04d / %(month)02d / %(day)02dKwiecieńSierpieńZmień _skórkę...Nie można zainstalować pliku konfiguracyjnego. gDeskCall nie będzie miał możliwości zapamiętania zmian konfiguracyjnych.Nie można zapisać konfiguracji.GrudzieńEdytuj spotkanieEdytuj spotkaniaLutyPtNiepoprawny plik kalendarze %(file)s.Niepoprawny plik konfiguracji %s(configfile)s.StyczeńLipiecCzerwiecLOCALMAPPINGMarzecMajPoNazwa skórkiNowe spotkanieNowe skórki mogą być instalowane poprzez przeniesienie je na to okno.ListopadPaździernikUsuń spotkanieSoWrzesieńPrzeglądarka skórekNiZestawienie:CzCzas:WtNie można znaleźć pliku konfiguracyjnego %(filename)sŚrTwoje spotkania dnia %(date)s_Bieżący miesiąc_Przenieś_Następny miesiąc_Poprzedni miesiąc_Zakończgdeskcal-0.57.1/locale/ru/0002755000175000017500000000000010025431056015276 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/ru/LC_MESSAGES/0002755000175000017500000000000010025431056017063 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/ru/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000202610025431056021173 0ustar seb128seb12800000000000000\ # &0369< [hw        AprilAugustDecemberFebruaryFrJanuaryJulyJuneMarchMayMoNovemberOctoberSaSeptemberSuThTuWeProject-Id-Version: PACKAGE VERSION POT-Creation-Date: 2003-02-24 17:51+0100 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE Last-Translator: FULL NAME Language-Team: LANGUAGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit АпреляАвгустаДекабряФевраляПтЯнваряИюляИюняМартаМаяПнНоябряОктябряСбСентябряВсЧтВтСрgdeskcal-0.57.1/locale/sk/0002755000175000017500000000000010025431056015265 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/sk/LC_MESSAGES/0002755000175000017500000000000010025431056017052 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/sk/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000407510025431056021170 0ustar seb128seb12800000000000000!$/,IfP*"'-1 4AJR U _lor/u 'I)ls! -EMRW]beu~ 5  5!   AprilAugustChange _Skin...Could not access background image. Screen capturing will be used instead.Could not install the configuration file. gDeskCal will not be able to remember configuration changes.Could not save configuration.DecemberFebruaryFrInvalid configuration file %(configfile)s.JanuaryJulyJuneMarchMayMoName of SkinNovemberOctoberSaSeptemberSkin BrowserSuThTuUnable to find configuration file %(filename)s.We_Current Month_Move_Next Month_Previous Month_QuitProject-Id-Version: PACKAGE VERSION POT-Creation-Date: 2003-02-24 17:51+0100 PO-Revision-Date: 2003-07-04 15:18-0100 Last-Translator: John Whiteline Language-Team: LANGUAGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AprílAugustZmeniť _Vzhľad...Nemôžem nájsť obrázok pozadia. Budem používat snímanie obrazovky.Nemôžem nainštalovať konfiguračný súbor. gDeskCal si nebude môcť zapamätať zmeny v konfigurácii.Nemôžem uložiť konfiguráciu.DecemberFebruárPiChybný konfiguračný súbor %(configfile)s.JanuárJúlJúnMarecMájPoNázov vzhľaduNovemberOktóberSoSeptemberPrehliadač vzhľadovNeŠtUtNemôžem nájsť konfiguračný súbor %(filename)s.St_Tento mesiacPr_esunúť_Nasledujúci mesiac_Predchádzajúci mesiac_Koniecgdeskcal-0.57.1/locale/sr/0002755000175000017500000000000010025431056015274 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/sr/LC_MESSAGES/0002755000175000017500000000000010025431056017061 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/sr/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000704010025431056021172 0ustar seb128seb12800000000000000/C .$Fkqxf '9BE*e =  (; > HUXadj/m >PM$  & / ;  / O o ~ B O  % , 3 < C J d f~     9 @ #S w ~   ]  ' / K \ Av  > .( ' % "/$#  )!+*& ,-%(hour)02d:%(min)02d%(month)02d / %(day)02d%(year)04d / %(month)02d / %(day)02dAprilAugustChange _Skin...Could not install the configuration file. gDeskCal will not be able to remember configuration changes.Could not save configuration.DecemberEdit AppointmentEdit AppointmentsFebruaryFrInvalid calendar file %(file)s.Invalid configuration file %(configfile)s.JanuaryJulyJuneMarchMayMoName of SkinNew AppointmentNew skins can be installed by dragging them into this window.NovemberOctoberRecurrences:Remove AppointmentSaSeptemberSkin BrowserSuSummary:ThTime:TuUnable to find configuration file %(filename)s.WeYour appointments on %(date)s_Current Month_Move_Next Month_Open Evolution Calendar_Previous Month_Quitevery $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ timesProject-Id-Version: gdeskcal POT-Creation-Date: 2003-07-22 14:33+0200 PO-Revision-Date: 2003-07-27 17:19+0200 Last-Translator: Veljko Stanojevic Language-Team: serbian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: KBabel 1.0.1 %(hour)02d:%(min)02d%(day)02d / %(month)02d%(day)02d / %(month)02d / %(year)04dАприлАвгустПромените кошуљицу...Нисам успео да инсталирам датотеку са подешењима. gDeskCal неће моћи да запамти промене у подешењима.Нисам успео да сачувам подешења.ДецембарУредите састанакУредите састанкеФебруарПетНеисправна датотека календара %(file)s.Неисправна датотека са подешењима %(configfile)s.ЈануарЈулЈунМартМајПонНазив кошуљиеНови састанакНове кошуљице се инсталирају превлачењем у овај прозор.НовембарОктобарПонављање:Избриши састанакСубСептембарПрегледач кошуљицаНедСиже:ЧетВреме:УтоНе могу да пронађем датотеку са подешењима %(filename)s .СреВаши састанци за %(date)sАктуелни месецПреместиСледећи месецОтвори календар програма ЕволуцијаПретходни месецИзађиevery $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ timesgdeskcal-0.57.1/locale/sv/0002755000175000017500000000000010025431056015300 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/sv/LC_MESSAGES/0002755000175000017500000000000010025431056017065 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/sv/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000171110025431056021175 0ustar seb128seb12800000000000000\ # &0369<[air{~     AprilAugustDecemberFebruaryFrJanuaryJulyJuneMarchMayMoNovemberOctoberSaSeptemberSuThTuWeProject-Id-Version: PACKAGE VERSION POT-Creation-Date: 2003-03-01 23:57+0100 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE Last-Translator: FULL NAME Language-Team: LANGUAGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit aprilaugustidecemberfebruarifrjanuarijulijunimarsmajmånovemberoktoberlöseptembersötotiongdeskcal-0.57.1/locale/tr/0002755000175000017500000000000010025431056015275 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/tr/LC_MESSAGES/0002755000175000017500000000000010025431056017062 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/tr/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000377710025431056021210 0ustar seb128seb12800000000000000!$/,IfP*"'-1 4AJR U _lor/u  Wbv09>EMRY \gnsv}0   !   AprilAugustChange _Skin...Could not access background image. Screen capturing will be used instead.Could not install the configuration file. gDeskCal will not be able to remember configuration changes.Could not save configuration.DecemberFebruaryFrInvalid configuration file %(configfile)s.JanuaryJulyJuneMarchMayMoName of SkinNovemberOctoberSaSeptemberSkin BrowserSuThTuUnable to find configuration file %(filename)s.We_Current Month_Move_Next Month_Previous Month_QuitProject-Id-Version: PACKAGE VERSION POT-Creation-Date: 2003-02-24 17:51+0100 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE Last-Translator: FULL NAME Language-Team: LANGUAGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit NisanAğustosKabuk DeğiştirArkaplan görüntüsüne ulaşılamadı. Onun yerine ekran görüntüsü kullanılacak.Konfigurasyon dosyası kurulamadı. gDeskCal konfigurasyon değişikliklerini hatırlayamayacak.Konfigurasyon kaydedilemedi.AralıkŞubatCuGeçersiz konfigurasyon dosyası %(configfile)s.OcakTemmuzHaziranMartMayısPzKabuk ismiKasımEkimCtEylülKabuk TarayıcıPaPrSaKonfigurasyon dosyası bulunamadı %(filename)s.Çr_Şimdiki Ay_Taşı_Gelecek Ay_Geçen Ay_Çıkgdeskcal-0.57.1/locale/uk/0002755000175000017500000000000010025431056015267 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/uk/LC_MESSAGES/0002755000175000017500000000000010025431056017054 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/uk/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000651110025431056021167 0ustar seb128seb12800000000000000,|;fMkt*  =*hq y  /+ 1=Vf>lB (< # %< b m 9r K   ! 2 A F ` x   " 6 V [ %l     P  ' 5 S h + ! g !' %#) & $ (" *+ ,AprilAugustChange _Skin...Could not install the configuration file. gDeskCal will not be able to remember configuration changes.Could not save configuration.DecemberEdit AppointmentEdit AppointmentsFebruaryFrInvalid calendar file %(file)s.Invalid configuration file %(configfile)s.JanuaryJulyJuneMarchMayMoName of SkinNew AppointmentNew skins can be installed by dragging them into this window.NovemberOctoberRecurrences:Remove AppointmentSaSeptemberSkin BrowserSuSummary:ThTime:TuUnable to find configuration file %(filename)s.WeYour appointments on %(date)s_Current Month_Move_Next Month_Open Evolution Calendar_Previous Month_Quitevery $INTERVAL$ ${days|weeks|months|years}$ for $TIMES$ timesProject-Id-Version: gdeskcal 1 Report-Msgid-Bugs-To: (null) POT-Creation-Date: 2003-09-04 23:37+0400 PO-Revision-Date: 2003-09-04 23:58+0400 Last-Translator: Khohlov Vadim Language-Team: Ukranian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bitКвітеньСерпеньЗмінити 'жупан'Не можу встановити файл конфигурації. gDeskCal не буде запам'ятовувати зміни в конфигурації.Неможливо зберегти конфігураціюГруденьРедагувати зустрічРедагувати зустрічиЛютийПтФайл календаря пошкоджено %(file)sКонфігураційний файл пошкоджено %(configfile)sСіченьЛипеньЧервеньБерезеньТравеньПнНазва 'жупану'Нова зустрічНові 'жупани' можуть бути встановлені шляхом їх перетягувавання в це вікно.ЛистопадЖовтеньПовторити:Видалити зустрічСбВересеньПереглядач 'жупанів'НдСводка:ЧтЧас:ВтНе можу знайти конфігураційний файл %(filename)s.СрВаші зустрічі на %(date)sПоточний місяцьПересунутиНаступний місяцьВідкрити календар EvolutionПопередний місяцьВихідкожний $INTERVAL$ ${день|тиждень|місяць|рік}$ всього $TIMES$ разівgdeskcal-0.57.1/locale/zh_CN/0002755000175000017500000000000010025431056015651 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/zh_CN/LC_MESSAGES/0002755000175000017500000000000010025431056017436 5ustar seb128seb12800000000000000gdeskcal-0.57.1/locale/zh_CN/LC_MESSAGES/gdeskcal.mo0000644000175000017500000000176610025431056021560 0ustar seb128seb12800000000000000l  "(,/8@ CMPSVYx      AprilAugustDecemberFebruaryFrJanuaryJulyJuneLOCALMAPPINGMarchMayMoNovemberOctoberSaSeptemberSuThTuWeProject-Id-Version: PACKAGE VERSION POT-Creation-Date: 2003-04-04 14:16+0200 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE Last-Translator: FULL NAME Language-Team: LANGUAGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 四月八月十二月二月五一月七月六月CHINESE三月五月一十一月十月六九月日四二三