pax_global_header00006660000000000000000000000064143567206060014523gustar00rootroot0000000000000052 comment=bd13d99636dd58f01fb21b60b082fb0430f00c8e alarm-clock-0.4.1/000077500000000000000000000000001435672060600137125ustar00rootroot00000000000000alarm-clock-0.4.1/.clang-format000066400000000000000000000043041435672060600162660ustar00rootroot00000000000000# vim: set syntax=yaml : # clang-format-13 crashes... # Tested with clang-format-15 AccessModifierOffset: -4 AlignEscapedNewlines: Left AlignTrailingComments: true AllowAllParametersOfDeclarationOnNextLine: false AllowShortFunctionsOnASingleLine: Inline AllowShortIfStatementsOnASingleLine: false AllowShortLoopsOnASingleLine: false AlwaysBreakBeforeMultilineStrings: false AlwaysBreakTemplateDeclarations: false BinPackParameters: true BreakBeforeBinaryOperators: All BreakBeforeBraces: Custom BraceWrapping: SplitEmptyFunction: false AfterEnum: false AfterStruct: false AfterClass: true AfterCaseLabel: true AfterControlStatement: Never AfterFunction: true AfterNamespace: true AfterObjCDeclaration: true AfterUnion: false AfterExternBlock: true BeforeCatch: true BeforeElse: false BeforeLambdaBody: false IndentBraces: false SplitEmptyRecord: false BreakBeforeTernaryOperators: false BreakConstructorInitializersBeforeComma: false ColumnLimit: 0 CommentPragmas: '' ConstructorInitializerAllOnOneLineOrOnePerLine: false ConstructorInitializerIndentWidth: 4 ContinuationIndentWidth: 4 Cpp11BracedListStyle: false DerivePointerBinding: false PointerAlignment: Left IndentCaseLabels: false IndentFunctionDeclarationAfterType: false IndentWidth: 4 Language: Cpp MaxEmptyLinesToKeep: 2 NamespaceIndentation: All ObjCSpaceAfterProperty: true ObjCSpaceBeforeProtocolList: true PenaltyBreakBeforeFirstCallParameter: 100 PenaltyBreakComment: 100 PenaltyBreakFirstLessLess: 0 PenaltyBreakString: 100 PenaltyExcessCharacter: 0 PenaltyReturnTypeOnItsOwnLine: 100 PenaltyBreakAssignment: 20 PointerBindsToType: false SpaceBeforeAssignmentOperators: true SpaceBeforeParens: Never SpaceInEmptyParentheses: false SpacesBeforeTrailingComments: 1 SpacesInAngles: false SpacesInCStyleCastParentheses: false SpacesInContainerLiterals: false SpacesInParentheses: false Standard: Auto TabWidth: 4 UseTab: Never IndentPPDirectives: None IndentGotoLabels: true SortIncludes: false SpaceAfterCStyleCast: false #AlignAfterOpenBracket: DontAlign AlignConsecutiveMacros: true SpaceAfterLogicalNot: false SpaceBeforeCpp11BracedList: true SpaceBeforeCtorInitializerColon: true SpaceBeforeInheritanceColon: true AlignArrayOfStructures: Left alarm-clock-0.4.1/.gitignore000066400000000000000000000002301435672060600156750ustar00rootroot00000000000000CMakeLists.txt.user build/ alarm-clock*tar.gz* *~ *# obj-* .debhelper/ *.debhelper.log *.substvars *-build-stamp debian/alarm-clock-applet debian/files alarm-clock-0.4.1/AUTHORS000066400000000000000000000004101435672060600147550ustar00rootroot00000000000000Johannes H. Jensen Tasos Sahanidis Contributors: Arnaud Soyez Chow Loong Jin Kamal Mostafa Artwork by Lasse Gullvåg Sætre alarm-clock-0.4.1/CMakeLists.txt000066400000000000000000000044151435672060600164560ustar00rootroot00000000000000# SPDX-License-Identifier: GPL-2.0-or-later cmake_minimum_required(VERSION 3.10) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake") set(HARDCODED_VERSION "0.4.1") set(IS_RELEASE TRUE) if(IS_RELEASE) set(GIT_PROJECT_VER "${HARDCODED_VERSION}") else() # Ask git for the version number execute_process(COMMAND git describe --tags --dirty WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE GIT_PROJECT_VER OUTPUT_STRIP_TRAILING_WHITESPACE ) if(NOT GIT_PROJECT_VER) # Try asking dpkg-parsechangelog for a version number execute_process(COMMAND dpkg-parsechangelog -S Version WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE GIT_PROJECT_VER OUTPUT_STRIP_TRAILING_WHITESPACE ) # Did dpkg-parsechangelog fail too? if(NOT GIT_PROJECT_VER) set(GIT_PROJECT_VER "${HARDCODED_VERSION}-unknown") elseif(NOT(GIT_PROJECT_VER MATCHES "-")) set(GIT_PROJECT_VER "${GIT_PROJECT_VER}-deb") endif() endif() endif() string(REGEX REPLACE "-.*" "" PARSED_PROJECT_VER "${GIT_PROJECT_VER}") project("alarm-clock-applet" VERSION "${PARSED_PROJECT_VER}" LANGUAGES C) # Manually set the version string to keep the suffix set(PROJECT_VERSION "${GIT_PROJECT_VER}") if(NOT(PARSED_PROJECT_VER VERSION_EQUAL HARDCODED_VERSION)) message(AUTHOR_WARNING "Hardcoded version is not equal to git version. Please correct it!") endif() include_directories("${CMAKE_BINARY_DIR}") include(GNUInstallDirs) find_package(PkgConfig REQUIRED) find_package(Gettext REQUIRED) # Uninstall target add_custom_target(uninstall COMMAND xargs -r -t rm -f < "${CMAKE_BINARY_DIR}/install_manifest.txt" ) option(ENABLE_GCONF_MIGRATION "Enables GConf to GSettings migration for existing alarms (and adds a dependency to GConf)." ON) option(ALLOW_MISSING_GCONF "Allows the project to build with GConf missing. Useful for existing installations (AUR) that already had GConf." OFF) if(ENABLE_GCONF_MIGRATION) add_subdirectory("gconf-migration") endif() option(WITH_MANPAGE_COMPRESSION "Compresses the manpage with Gzip if installed." ON) add_compile_options("-Wshadow" "-Werror=return-type" ) add_subdirectory("po") add_subdirectory("src") add_subdirectory("debian") alarm-clock-0.4.1/COPYING000066400000000000000000000431031435672060600147460ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. alarm-clock-0.4.1/ChangeLog000066400000000000000000000000601435672060600154600ustar00rootroot00000000000000This file is automatically updated by dist-hook alarm-clock-0.4.1/INSTALL000066400000000000000000000000731435672060600147430ustar00rootroot00000000000000 Please see the README file for installation instructions. alarm-clock-0.4.1/NEWS000066400000000000000000000126721435672060600144210ustar00rootroot00000000000000Overview of changes in Alarm Clock 0.3.4 "Hipp, hipp" =============================================================== Bugs fixed: 1122500 - Don't cancel the next alarm if alarm triggers a day late 1137453 - Port to GStreamer 1.0 Overview of changes in Alarm Clock 0.3.3 "Squish" =============================================================== * Set app indicator title Bugs fixed: 290733 - Automatically detect daylight savings time 800635 - Let the WM decide the initial position of the list window 823585 - Check that media player was created successfully 908636 - Don't show notifications when alarms are stopped/snoozed 885059 - Update timestamp when type is changed for active alarms 977110 - Use segment seeks to prevent playback delays when looping 824337 - Enable alarm when closing the Edit alarm dialog Overview of changes in Alarm Clock 0.3.2 "Indicate this" =============================================================== * Add support for application indicators * Countdown label for application indicator * New status icon indicating triggered alarms Bugs fixed: 565302 - Add countdown label (for application indicator) 610632 - Create ~/.config/autostart if it doesn't exist 671962 - Add support for libnotify 0.7 682999 - Properly stop triggered alarms that are not playing sound 704956 - Add support for application indicators 706832 - Clicking on status icon should bring up list instead of snoozing New and updated translations: ar, courtesy of Ahmed Mohammed ast, courtesy of Xuacu Saturio be, courtesy of Mikola Tsekhan ca, courtesy of I. De Marchi cs, courtesy of Oliwer de, courtesy of Christoph Wickert es, courtesy of Fitoschido et, courtesy of Tarmo Ilves fi, courtesy of Jiri Grönroos fo, courtesy of Gunleif Joensen fr, courtesy of Nicolas Delvaux gl, courtesy of Miguel Anxo Bouzada he, courtesy of Yaron hu, courtesy of Papp Bence id, courtesy of Arief Setiadi Wibowo ja, courtesy of jugger Yamamoto ka, courtesy of Giorgi Maghlakelidze la, courtesy of nivek1385 nb, courtesy of Johannes H. Jensen nl, courtesy of Rachid pl, courtesy of XeonBloomfield pt_BR, courtesy of André Gondim ru, courtesy of Сергій Матрунчик (SkyMan) tr, courtesy of Burak Ilgıcıoğlu uk, courtesy of Сергій Матрунчик (SkyMan) zh_CN, courtesy of Lele Long zh_TW, courtesy of Cheng-Chia Tseng Overview of changes in Alarm Clock 0.3.1 "It's gettin' pretty" =============================================================== * Properly toggle alarm-list-window * Parse command-line options * Add --hidden command-line flag * Start --hidden on autostart Bugs fixed: 558559 - Double-clicking on alarm erratically changes alarm time/duration 559514 - The alarms list window should be shown when launching the application 559531 - Remember the alarms list window position 567564 - repeat once: checkbox does not work in gtk+ 2.20 567762 - deleting running alarm doesn't cancel them New and updated translations: be, courtesy of Mikola Tsekhan bg, courtesy of svilborg da, courtesy of nanker de, courtesy of Jakob Kramer fr, courtesy of Pierre Slamich gl, courtesy of Dario id, courtesy of Waluyo Adi Siswanto ru, courtesy of Misha Shnurapet Overview of changes in Alarm Clock 0.3.0 "Less snooze" ======================================================= * Alarm Clock has moved to the notification area and can be started as a normal application * An option to autostart Alarm Clock on log in has been added * Blink icon when an alarm is triggered * General User Interface improvements * Improvements to the alarm list window * Add sorting of the alarm list * Notify bubble improvements - remove per-alarm notify bubble settings * Snooze improvements - global snooze settings, enable snooze for timers * Add translation support - translations are now done in Launchpad Bugs fixed: 243153 - No hint bubble when there is a "&" sign in the lable 334684 - Notification needs to be improved in jaunty 421098 - Source code an Gentoo QA 490824 - Sorting alarms on time 500600 - Update countdown for active alarms in alarm list 501069 - Remove deprecated gnome-vfs dependency and use gio instead 501073 - Remove deprecated libgnomeui dependency 502230 - Properly seek player to start when looping New and updated translations: ar, courtesy of Propeng be, courtesy of Mikola Tsekhan da, courtesy of nanker de, courtesy of theunexpecteds es, courtesy of Gonzalo Testa fo, courtesy of Gunleif Joensen fr, courtesy of Pierre Slamich he, courtesy of Yaron hi, courtesy of manishmahabir hu, courtesy of Gergely Szarka ja, courtesy of Yuki Kodama ms, courtesy of Ibrahim Elias nb, courtesy of Johannes H. Jensen nn, courtesy of Håkon Sandsmark pl, courtesy of Stanisław Gackowski pt, courtesy of Renato Martins pt_BR, courtesy of Gilfran Ribeiro ru, courtesy of Oleg Koptev zh_CN, courtesy of lhquark alarm-clock-0.4.1/README.md000066400000000000000000000035141435672060600151740ustar00rootroot00000000000000# Alarm Clock This package contains an Alarm Clock for use with an AppIndicator implementation. ![Alarm Applet Main Window](https://alarm-clock-applet.github.io/assets/screenshots/list-alarms.png) ## Requirements This program requires the following packages: ``` cmake >= 3.10 gettext >= 0.19.8 glib-2.0 >= 2.56.4 gtk-3.0 >= 3.22.30 gio-2.0 >= 2.56.4 libnotify >= 0.7.7 gstreamer-1.0 >= 1.14.5 ayatana-appindicator3 >= 0.5.3 gnome-icon-theme gconf-2.0 >= 3.2.6 pod2man gzip ``` This software has been tested with the specified version of each dependency as written above. It might function with older versions of these packages, however there is no support for them. **NOTE: pod2man and gzip are optional and only needed during build time to generate the manpage** The dependency to GConf can be removed by passing `-DENABLE_GCONF_MIGRATION=OFF` to cmake. **WARNING: Doing so disables migration of old alarms.** ### Debian/Ubuntu-specific dependency packages All the dependencies on a Debian/Ubuntu system can be installed with: ``` sudo apt install build-essential cmake libgconf2-dev libxml2-dev libgtk-3-dev libgstreamer1.0-dev libnotify-dev libayatana-appindicator3-dev gettext gnome-icon-theme perl gzip ``` ## Building and Installing Extract the source code with: ``` tar zxvf alarm-clock-applet-.tar.gz cd alarm-clock-applet- ``` And compile - install with the usual: ``` mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release make sudo make install ``` ## Usage ### Start applet ``` alarm-clock-applet ``` ### Start applet with main window hidden ``` alarm-clock-applet --hidden ``` ### Stop all alarms ``` alarm-clock-applet --stop-all ``` ### Snooze all alarms ``` alarm-clock-applet --snooze-all ``` alarm-clock-0.4.1/clang-format.sh000077500000000000000000000001451435672060600166230ustar00rootroot00000000000000#!/usr/bin/env bash clang-format-15 -i src/*.c src/*.h gconf-migration/alarm-clock-gconf-migration.c alarm-clock-0.4.1/cmake/000077500000000000000000000000001435672060600147725ustar00rootroot00000000000000alarm-clock-0.4.1/cmake/Pod2man.cmake000066400000000000000000000101371435672060600172760ustar00rootroot00000000000000# SPDX-License-Identifier: BSD-3-Clause # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Use pod2man to generate manual pages from .pod files # Usage: pod2man( ) # # E.g.: pod2man("/path/to/file/mypod.pod" "1.2.3" 1 "My Manual Pages") include(GNUInstallDirs) find_program(POD2MAN pod2man) if(NOT POD2MAN) message(STATUS "Could not find pod2man - man pages disabled") endif() find_program(GZIP gzip) if(NOT GZIP) message(STATUS "Could not find gzip - man pages uncompressed") endif() macro(pod2man PODFILE_FULL RELEASE SECTION CENTER) get_filename_component(PODFILE ${PODFILE_FULL} NAME) string(REPLACE "." ";" PODFILE_LIST ${PODFILE}) list(GET PODFILE_LIST 0 NAME) list(GET PODFILE_LIST 1 LANG) string(TOUPPER ${NAME} NAME_UPCASE) if(${LANG} STREQUAL "pod") set(LANG "") endif() if(NOT EXISTS ${PODFILE_FULL}) message(FATAL_ERROR "Could not find pod file ${PODFILE_FULL} to generate man page") endif(NOT EXISTS ${PODFILE_FULL}) if(POD2MAN) if(LANG) set(MANPAGE_TARGET "man-${NAME}-${LANG}") set(MANFILE_FULL "${CMAKE_CURRENT_BINARY_DIR}/${NAME}.${LANG}.${SECTION}") set(MANFILE_FULL_GZ "${CMAKE_CURRENT_BINARY_DIR}/${NAME}.${LANG}.${SECTION}.gz") set(MANFILE_DEST "${CMAKE_INSTALL_FULL_MANDIR}/${LANG}/man${SECTION}") else() set(MANPAGE_TARGET "man-${NAME}") set(MANFILE_FULL "${CMAKE_CURRENT_BINARY_DIR}/${NAME}.${SECTION}") set(MANFILE_FULL_GZ "${CMAKE_CURRENT_BINARY_DIR}/${NAME}.${SECTION}.gz") set(MANFILE_DEST "${CMAKE_INSTALL_FULL_MANDIR}/man${SECTION}") endif() add_custom_command( OUTPUT ${MANFILE_FULL} COMMAND ${POD2MAN} --utf8 --section="${SECTION}" --center="${CENTER}" --release="${RELEASE}" --name="${NAME_UPCASE}" "${PODFILE_FULL}" "${MANFILE_FULL}" DEPENDS ${PODFILE_FULL} ) if(GZIP AND WITH_MANPAGE_COMPRESSION) add_custom_command( OUTPUT ${MANFILE_FULL_GZ} COMMAND ${GZIP} -f -k --best -n "${MANFILE_FULL}" DEPENDS ${MANFILE_FULL} ) add_custom_target(${MANPAGE_TARGET} ALL DEPENDS ${MANFILE_FULL_GZ} ) install( FILES ${MANFILE_FULL_GZ} RENAME ${NAME}.${SECTION}.gz DESTINATION ${MANFILE_DEST} ) else() add_custom_target(${MANPAGE_TARGET} ALL DEPENDS ${MANFILE_FULL} ) install( FILES ${MANFILE_FULL} RENAME ${NAME}.${SECTION} DESTINATION ${MANFILE_DEST} ) endif() endif() endmacro(pod2man PODFILE NAME SECTION CENTER) alarm-clock-0.4.1/data/000077500000000000000000000000001435672060600146235ustar00rootroot00000000000000alarm-clock-0.4.1/data/alarm-clock-applet.desktop.in000066400000000000000000000003131435672060600222700ustar00rootroot00000000000000[Desktop Entry] Name=Alarm Clock Comment=Wake up in the morning Icon=alarm-clock Exec=alarm-clock-applet Terminal=false Type=Application Categories=GNOME;GTK;Utility; X-Ubuntu-Gettext-Domain=alarm-clock alarm-clock-0.4.1/data/alarm-clock-applet_autostart.desktop.in000066400000000000000000000003241435672060600244000ustar00rootroot00000000000000[Desktop Entry] Name=Alarm Clock Comment=Wake up in the morning Icon=alarm-clock Exec=alarm-clock-applet --hidden Terminal=false Type=Application Categories=GNOME;GTK;Utility; X-Ubuntu-Gettext-Domain=alarm-clock alarm-clock-0.4.1/data/alarm-clock.css000066400000000000000000000001271435672060600175220ustar00rootroot00000000000000image { -gtk-icon-style: regular; } .titlebar image { -gtk-icon-style: requested; } alarm-clock-0.4.1/data/alarm-clock.ui000066400000000000000000002142521435672060600173550ustar00rootroot00000000000000 False 5 About Alarm Clock True True alarm-clock normal Alarm Clock 0.0.0 © 2007-2015 Johannes H. Jensen © 2022 Tasos Sahanidis Get up in the morning! https://alarm-clock-applet.github.io/ alarm-clock-applet.github.io Johannes H. Jensen <joh@pseudoberries.com> Tasos Sahanidis <code@tasossah.com> Contributors: Arnaud Soyez <weboide@codealpha.net> Chow Loong Jin <hyperair@ubuntu.com> Kamal Mostafa <kamal@canonical.com> Johannes H. Jensen <joh@pseudoberries.com> Lasse Gulvåg Sætre <lassegs@gmail.com> alarm-clock True False vertical 2 True False end False True end 0 99 1 10 59 1 10 59 1 10 23 1 10 False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 5 Edit alarm False True center-on-parent True alarm-clock dialog True False vertical 6 True False end gtk-close True True False True False False 0 False True end 0 True False 2 True True True False True False 6 True False end 24 alarm-clock True True 0 True False start Alarm Clock 0 True True 1 True True 0 True True False True False 6 True False end 24 alarm-timer True True 0 True False start Timer 0 True True 1 True True 1 False True 1 True False 6 6 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True Wake up sleepy head! False False 1 0 3 True False _Time: True True hour-spin 0 0 1 True False _Name: True True 0 0 0 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 2 4 0 1 False False adjustment4 1 True 1 1 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 2 4 0 1 False False adjustment3 1 True 2 1 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 2 4 0 1 False False adjustment2 1 True 3 1 False True 2 True True True False 24 vertical True False Mon True True False True True True True 0 Tue True True False True True True True 1 Wed True True False True True True True 2 Thu True True False True True True True 3 Fri True True False True True True True 4 Sat True True False True True True True 5 Sun True True False True True True True 6 True True 0 True False True True 1 True False Every day True True True True True 0 Weekdays True True True True True 1 Weekends True True True True True 2 Once True True True True True 3 True True 2 True False _Repeat: True True True 3 True False Alert 0 False False 4 True False 12 vertical 6 Play _sound True True False start True True True False False 0 True False 12 2 2 True False True 0 0 gtk-media-play True True False True 1 0 Repea_t sound True True False start True True 0 1 2 False True 1 Start _Application True True False start True True True sound-radio False False 2 True False 12 2 2 True False True 0 0 2 True False start Co_mmand: True 0 1 True False True True False False 1 1 False True 3 False True 5 close-button 1 99 5 1 10 False 5 Snooze alarm False True alarm-clock normal True False vertical 2 True False end gtk-cancel True True True True False False 0 _Snooze True True True True True True False False 1 False True end 0 True False 12 True False 48 weather-few-clouds-night False True 0 True False center 6 True False Snooze for: 0 False True 0 True True 2 4 5 1 False False adjustment5 5 True True 1 True False minutes True True 2 True True 1 False True 1 button2 snooze-dialog-button False Alarms 200 alarm-clock True False vertical True False True False New alarm win.alarm_new New... True gtk-add False True True False Edit the selected alarm win.alarm_edit Edit... True gtk-edit False True True False Delete the selected alarm win.alarm_delete Delete True gtk-remove False True True False False True True False Enable/disable the selected alarm win.alarm_enable Enable True gtk-apply False True True False Stop the selected alarm True win.alarm_stop Stop True gtk-cancel False True True False Snooze the selected alarm True win.alarm_snooze Snooze True weather-few-clouds-night False True False True 0 True True in True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK alarms-liststore False False 2 fixed Type 6 3 6 1 Time 36 0 2 fixed Label True 3 6 fixed Actions 10 1 4 True True 1 290 False Alarm Clock Preferences False True alarm-clock dialog True False vertical True False end gtk-close True True True False True False False 0 False True end 0 True False vertical True False General 0 False False 0 Start automatically at login True True False Controls whether the application will start when the user logs in start 12 app.autostart True True False True 1 True False Appearance 0 False False 2 Show countdown label True True False Shows a countdown next to the tray icon Please note that this feature is not supported by all desktop environments start 12 app.show_countdown True True False True 3 False True 1 closebutton1 True False alarm-clock True False True False 1 minute True True True True False 3 minutes True True snooze-menu-1 True False 5 minutes True True snooze-menu-1 True False 10 minutes True True snooze-menu-1 True False Custom... True True False weather-few-clouds-night True False gtk-cancel True False Snooze all alarms True False Snooze all beeping alarms app.snooze_all snooze_image False Stop all alarms True False Stop all beeping alarms app.stop_all stop_all_image False True False Show _alarms True False Manage your alarms app.show_alarms_list True show_alarms_icon False gtk-preferences True False True True gtk-about True False True True True False gtk-quit True False app.quit True True alarm-clock-0.4.1/data/icons/000077500000000000000000000000001435672060600157365ustar00rootroot00000000000000alarm-clock-0.4.1/data/icons/icons/000077500000000000000000000000001435672060600170515ustar00rootroot00000000000000alarm-clock-0.4.1/data/icons/icons/hicolor/000077500000000000000000000000001435672060600205105ustar00rootroot00000000000000alarm-clock-0.4.1/data/icons/icons/hicolor/16x16/000077500000000000000000000000001435672060600212755ustar00rootroot00000000000000alarm-clock-0.4.1/data/icons/icons/hicolor/16x16/apps/000077500000000000000000000000001435672060600222405ustar00rootroot00000000000000alarm-clock-0.4.1/data/icons/icons/hicolor/16x16/apps/alarm-clock-triggered.png000066400000000000000000000017651435672060600271160ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs  >tEXtSoftwarewww.inkscape.org<rIDAT8=MLu۷֖B!c2V^[8vF;LA%:332L` 36gՉF@\h g[iү=y~B)EoSZ;fr>]QQGHT29͢3wwzV=yJmȏp(}=`q&._+N}?Ŏ|~'=q]^Xj#%`r{?|-To?̹7?1|>]BLpwbDF)U^+mľ距;byN#[_+@3BP^Z!d+/^Ϭ|<ʠ66vԷ5;_gdrE7X [Ú{306 \J8]sgȰ'B!4+JNH X52s gS; Bf U^umA'22{_,rW*oQW4(YERF4Jc UnE N (SzAQ` N݋ r,"YCYD 6}:~1W nf)SL4}9kC((8 x/X֗L]UW9\RKj9R P]$Ksnc.r(:ދSfHjB(R_B; i+QHMʡoVI̲`*Pf̍n1^3G,_g2h,5\M>me _fIENDB`alarm-clock-0.4.1/data/icons/icons/hicolor/16x16/apps/alarm-clock.png000066400000000000000000000016101435672060600251310ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs  >tEXtSoftwarewww.inkscape.org<IDAT8m_hWKm?ki2:Rc1)cJK0qaC|y&"L {JZIXѢMe4Ҍ56]^ s+R4]cQ]b)5sID.B*RWDϮF?8j>w R瞂?=I-~3vȉksϧE^JLYq!q7о{ce}gOFavXcdA&/m{S6x/ql޷l:컽㞗M0+~"nRn#}7~BߏeYpwܹ:P[[Ym52KnY|qS˩l ǃP?_7<\E Ks.e^YJs3N* 192 ^Zv.$Y,; muH$ڊr1<<̥˗ |@&u8 m% _T9vp֭[E֭?8txt3=5 o罽4,s&qwǟ9o-' pad[#-"^.*s<~S-MO+4U),TK*~SE)9&~t|$}@L he!IIF;|)fI*ZB”4 k3lUxF"40#.?"5x#n:*}ϝ\BWE4SW.IENDB`alarm-clock-0.4.1/data/icons/icons/hicolor/16x16/apps/alarm-timer.png000066400000000000000000000013071435672060600251610ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<DIDAT8OHq?wڤDiM5<l yK$DA\b+Gkl8[V}ކ8Թ-?|J[}\J[都 z&Kgd~\I=|G"~ vf1mŗ<ڴE}?a>c Kd;b6ɓܸJz6(Q?>Gt7xhͪN?/\xyi5YcQf [ 1apB `4e&$T`SK;'~ɎF9 //O뙺̎z)K=k;IJ[Wآ]<*rn)G"*ٿapí1}uA2$"Y@;R #^Q7l鱱H[olݓũ_:8'"~^arW>t$̝۾{+ލTD^Q룈bĥ32N]Ou5k]b ҽ`[9ĎSZR X-O`3Ja$F;)^_=om\kvF{D~KuW? w'>gr6EJx (J(ndHlv:[׭PH`k[=ڌX$op,bͭI'}(B%U䳾ufl=t#Ch[X$a`teeBD Rl~kDzVY,D)%T/D+@z()QH9RYR6  - \='>/AJ(lT*l.Qr( =@Vz]wsD1J4s(J,,(!&O3;Y)l' ,u1/6"r#PfqZ+]X9_60:t}tAhbzсD9|;ۉa #:!B*;nUt ÅS0v~сQGt([`n"90(ڏ节E11 18kh(K}X!<3 }k/Pm b#bA.E{0g̾#ޟK /[FA4CO8ź6QP*obƓď 5>u{V쒊1G ^T#x}ka/;U PV;FO ŧqIvJGf6!\:Ѐ$NJb Off8*cnt :A.e]vUR Gx>`y1X ?v7~> @'_]ː/By<]<  UAEpF 772,Pux\`|xWP-K 9Cנb*?malZ"zkOQJJ+{VkWc04VUa+J0gOuRhTE@? TERhf>q-\fWş}+C<1/G,q{te1B B6=6Ш8uٕiIG`hǚ9U#mVsiVeuh)8ז2{ɳ2q>llQyVW.:ݰn}CqiٳrLfnV3$$w.[u Ը8}} >zy'ww]*pi^^9<4xo;\u."μ{;{F~ /gd#[vmqN4DT1TK?d́cǰkvo;OQ{p(wV `s{J+c1\KZN>jt43O#< ]=Ν;><:jt4i9hYXkFW.>O bs LqqH8$8x*+]Ga$GATl|hk,: Պ!(lٰ׮Q]S.,(!`ZILET|B˿]m6T ba.,`fV俁AhD5ЃAzы'=]WjrĔbG|bbR_P @_io4%omvXF={( c0 BÔWTx-CݴT{6uEvJw-IJduuI{Gv-IvJ;xTeKXo:&'c`@j]}8e4 .fe}3Iڌzݐ m>2E$2 vV()+(TMl"8X;695Po<;m!vs8 yMV"|L'x:l@`A#ȄfJx8cb|ӞǿQfđbr(:K(:DˆTC"3_l[$8ɬ, x=өD:( O|Z3[ ^~wF& [ڻD""zbڡp y«sݜF#z\&Td,PL ɲ@rD0lS8O_4,cUO[qb7ԱַϿw)Ϫ!TCh<&W)L̾w&񰏃=oIa`w1zx`3 >nJ|~÷nvi_sf߅S{rB,=BTkEd4}tG0Z%DcdAׇV!#4\Ȳj'?X_GG.p'ڱO^|.{n;#Zg/_N8N09AH  SI՛S:Wm8qjwQ5qژ6 9KxelOmʜ9Ą2xqPi#BH &@ 7BFv^dM3ǃƻ"ͩZDg~KR ""aAF _s[y{M^Gh,7.ufCߙ<aD*hNAI0B duY $BJIAIe1Li"GH#H! J*axCa4b\%ҏѻIAI,H}Z0t_mՊPEb!,c "%sHHa B`!`; YTZhZ{KS ݅'\~Y M(5*V pN`Y},t= kjN4Q :ntQoE8te <-+P3Xnڅ UT T DD}yE0.6XnfR29TF HpC&Ni%Er4L qU1J8nqU1BhiƱJ~5dMz(%֪!ډ#Rpᔢ8is!Fk(}Zѕ؎bdZ6ܳ+[qbSkh *Z9gײQƮDъuuډȴoķf'@XIXi9Naw& ښyu!_jcյBkBh ![a |q71()낥 d;"55PBcHݏc0E-&BqSupd7s-R};_(L)8{cOKNl(Ew1j v8u41iu5&UHQŵmleOvjsG:;QOyO>| *?Ё(p0| <T (!TlNO[]S˵G'æi $5 Ϛ'5G_TTĞ={z-fI5AB4C$/^ xHga\OZjvI&lG=08]z(OcƶKOj %}Mbf2rLF}Mި-b;]rduvi3[=?8CD4w} @{`\X%W"$1 #P`"!e!eTN@(z~c:{]kzGY~dPVlʅ#`xk9rgGC{DJ)77 +[TL"Ɓ[645kdr tIENDB`alarm-clock-0.4.1/data/icons/icons/hicolor/24x24/apps/alarm-timer.png000066400000000000000000000025261435672060600251630ustar00rootroot00000000000000PNG  IHDRw=sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATH[lTU}L;C/g)B`妱(h!K!A @$MhCB01 *&(VA;P{mg:i;מ}--3/degg_kRS_%}ǃ-1CRB--fE*K:3 $T$Rru[n\=Vaii?#.|g44t͕#cEN<%AWg=tz؆ K3Ϩ555ӋW;?j5V9vr4 /.͢^?"x|4]430\s_bmr:)LeK͡lZ v;)Yd#jƬ*Uۜ$V/`׆<䦒Pl%wffhnljK-\PfEuK2sj7{ xr-!g|{cqyEY \]ӴzoHfX8ƗunvS8s(_CĒN \} wLfl;fʲ 0T2%5tmC,5b6Q07dg "Z-6-$ ͊n<ڶP%MZD7`Af At%-c:o R2٦ؼ69j[#K|aną(Io xLALU0$~FsS) & ɠo`8: .Ejv,rsR*;6-#ܸiXU,bOE~\q 4}r~/@Y},I&\Ĥ*ly1kf7<8R_=,*b:[-bE shFu #ݗ/WOx=:vMC|rF@dH7w H)z<>3p&ӑV,;z]CWGwؐRn< @޶Gl6,+ˆ=CfKG >CÌ7#ݏ{L!(-c82,P ..Ulona CN`;s-b Y $?;0Kpm#hX +^<`j1a6~#KN4y$2rlnk9`察(oȶfHGM"A{3t[0i-*DpY_8|Nr@Ycst8G #/C䟖oZYvvd']ʋ̃6TMc 2~] ;_{m&D>xS{x8X! e ^co3eh]?Oo=?iXey"e.JG .4r ;߶[W'_MwVD5d<2L YbY=?߶{rkߞ V`K8j+iCy<ϡ՞BU3.W~`|ϭ[Oe]5">C@,@Fq=oŧ'vv=pÚܷ ȽݯL>y2Q>b ZZo_Gw~\E(kuKi^ގm{r H%`cnNBt8z| ]x#O/+;L`zb|qv=^rXIU؎jQ9!lD_@b;Vfን('z@T`G urB,^pFy4-TC~>Pkխ7Sb¶NNX"m9~W-OGbe7zbIQ9^};C.AQQQ JPJe!X 6ʊRQ=hq/$‘`1SAzQ˿t8.Y{n#V b4\߬4?y).ڃ8(\7fvj%/p c \<AoތQrYͭn,H֡AĐ))1>aʼn~x[;JJ% bRÍnnq S]]1DوrP#U"DKJ,Xm.Xl(J(̷D!"$+kDbLTRJE̮.D] " 1&̍HՠUqQ*–;)*+zT+V-I$RD+rHjpeZ&  ýB`=<aa3 B24S/` |qU9"DDEatY<{Sb2cѿ!V`.Y*qMj9ű n>ƂE8&:y6Sr% R>SE7qXkcc&S ]'_-}'NYA)BS@ SS##h m. WЖ+vmLf/ #DDa1c Bm}51aD4Gt  1e8k4>-WԂf0CfCkr80:L1&1 .xq\AZfLQFe|с~,"CLggA#, dz+,i:9:6-^RRBX(q0@E $]a9$:K}5͌͟Y^t]]aT@E-Ns|~t(nV@„it”cD 8Kc-\!|;yfQQ˲h}]Ѕi-1oXm?'xr;U|SIM쟦#!ʍ`EJEP65hAiW >@ t0cǜ~*@DaPg` NvhDaY6* hMhB4 ,#!!X+; U ?m{E]s &F[2`bޒLک?Yjo =IENDB`alarm-clock-0.4.1/data/icons/icons/hicolor/32x32/apps/alarm-clock.png000066400000000000000000000041671435672060600251370ustar00rootroot00000000000000PNG  IHDR szzsBIT|d pHYs"" GtEXtSoftwarewww.inkscape.org<IDATX{pT9g[vCpCtkDK*c xij:j26:u("X EԊ+Kt 1\6Ktv7M|#tо3|3y<3# Eu@cz`ȔQe@0 x'dʣCŐxXfw{ to7H˲j_Ly+_ YQ*& 쎧'B\9,: Vq{0.s0 H'{.f(c'^ RaWl?,두)WjYۗM5ko yy$Sqzb_D=@4ߑNO싋jK "@u8o۴: joKXhw{߻%6D*uOJ)^23İ4(B2@ {f*c!ij3oti'a$4`_hDk 2>Ÿɰ\,`dP]v*Bkbvqw[BR_Nc4>ۍ4 4ȯ 2'Bї/eQ f͜47.nq_BWWhm]\i{5`4$eZ2ey]]97]Twz)n76@axLw7-ծwD#aC`%U=/2Ӑ)C!.z*gQ1y'/N8|M~Gy}\<[p\ sn%؏p=bvyi&-6 6%GZpNU^8ͷ>`H:/ {8w ת,, 9d^Q\: w I~~>ڶF0^xEjkk}w _Fqt{F7w:˷Ϝ;] 4ESAZ8vX)%֬!NhklfQ5 ˅TD( A߉u;9}36D#acm(MCh6%KPPTp8P aRbCcw\ $dR4?+WRQQ1sL*@"AX+[<v7@""@GSM1RΈTERWVFokD#Eok+=ml}eRʸ,n ';t:}%|d.nrEox!N} 3nׄx/ 0FϤRioMh.H\g]PYu3gsBwuazyIH$hj`++:߬`4Qx2 8 0&L’rN  T2`AiS(ǐҒڎvXw Iˇ߅_VT~5YIZ/%6QAt\!A$%I*7o0P:gdk9`K@Dn3`W"nj 5ȋ-_c!൧OҠȏ܇ggP>knѾicWHzUNESjvUrXg`s_3g]e{n|:ӱl>IENDB`alarm-clock-0.4.1/data/icons/icons/hicolor/32x32/apps/alarm-timer.png000066400000000000000000000037451435672060600251650ustar00rootroot00000000000000PNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<bIDATXŗ[lTs5]66-Ȑ@RJH i*j}xJZ!M^J(DIKCE\ "A` m|]_ٛٵvamc{}y'7?|3i;oB S b RHWHq~ua≕2ե'Ϳ8zj,TJ*fƬV a=(0Oyeee/E… UhF-oZ~A.l;N# @4# w/DS[7g7C;vC@44t~ƂÖL8]e5cCvpk?|D]1 lQ7oz[HBKQU*(ͳbTZBTؙObLNjtt26i5p'^-Ru47[=^`J<"4U!ä&uETۑR=F9:Ax*1۟細j5[pڳx\s5GyNjK82M,vP CrZ݆/46O1+^n#+web23~`y\i4gFST&򭸬f;ղ̘bN; CH,u5b-&36|g&L=\22f(8! GcI:B\o)2 R09E3i1|Bj=Yl*9U#gTz*A ф>;J#J5`0acvz@lp쳖E \ RRQ+X@ 453gx?''L?ld{MQZun|&g4B$}@tk~z`  t NPSФ)|:DQE<ǫ JsjՆa0 #l4H> D&Z398b;fm+#ul.\tB1I0 $9w,aM7POz2Kv8<$z#/;>Tē^gЗn35KJKׯHMm暑B[n9z@$> 'h  ~s8͓whHo!뽧6.[Tmɗff>Ze#]5b;q~1Ř4 эTޞAnvL&ofoY% <{H3Կ x峲l%NŸ8餢hEiEY^oزurdfZ$v'&ǖ"GJtUy!v&\.,HIr=9-<]g {YB%;^DP9(sg61`e@$ Ѐ, 0:1dX .y%))Q`H)u}*L%\ӜeLm&9}r ~gD\j+XԒ_nSHz]IENDB`alarm-clock-0.4.1/data/icons/icons/hicolor/36x36/000077500000000000000000000000001435672060600213015ustar00rootroot00000000000000alarm-clock-0.4.1/data/icons/icons/hicolor/36x36/apps/000077500000000000000000000000001435672060600222445ustar00rootroot00000000000000alarm-clock-0.4.1/data/icons/icons/hicolor/36x36/apps/alarm-clock-triggered.png000066400000000000000000000065561435672060600271250ustar00rootroot00000000000000PNG  IHDR$$sBIT|d pHYs؉tEXtSoftwarewww.inkscape.org< IDATX{Uŝ?>{{g 0: C(Š1ˍ]X)D$qSɺ\Mv2UkiD@Fy03 0;{NwJ~UNw~~}MD䁉5JGb:=HxjP7",J_mۆ:@;#yr,+}kπ?"^*z(EXCl1<ݟrQ}"RN/c>xP= C\;)j2yU_咯]G|U{r\%"&<ehk_@PBNܠ sPpo!(2/%l! A0B(2ILE(?g.S E[n^ ?Pn3R6W⥋iu>* Vazn#C*}'^BP#1N4+Src&3b5&'zhc-rGTễ1~NqDŽ3ygWI \q>s\w#Qɰg.:B'3:w;9a/?BC\ MXjӊdEwb3;@xbz9:>~[_\U.msfΒk&pjWYzdEs.7,cyqo<Ǵg-pjՆJGs옴緳NL>Ɗε jdQBYz]= qfF [_XC`㘘싿| 4?&Q7v u3*Q>zzٻg/}ljh!<}mwGft! 1۝|\3fl6z=d,wxfN[su90ʫhhC.i@Up=h8\Ϧ`7Qڐ‰ilز.̸8nn'4ܻs<߽Ur0(8& ϺUgQwr_qp*8S AERb$DJJ8 ӯXL@~g3!Y7 aXc?ɅX<JZcd)m 9A~A~b[7'9T81$U!ҶLM=1[(]8t#Z45F6Gfuߌn>ySQOpZˌee (D) Q(61><'xsM+VaDA,z}k*(tt :٢pû61н k(P$@Is' 0gZScRUUs R&1w۱;xg oxrhR>P0q8^ #*4ߺG TT񥗏 fcl`tJn|pd`l#vlvEMaxh } EPX]chӍ ue>D,K.;̴Iomh mbmV} "<)iylkRsl1ӎ9BqX!#*IPpW1i 田<0>B6XG`4964ƭa6ZO!l҄1$sX8gO@kXbML, f;Ϛk@6>GA'PL1&i¶7Xa'NuI6E~Ad&5S<ɁN͘T9c| =Qllκ$:LaQZ'27`t][O4$Q(`0lYvV)sl בTRߵD02T?Օb,D$mѕoW y s). L/:au:'k^@BǪܡ+e+p Tt3TUL~q7WE%^q$9]\ > er GC%V =@4gφ9 @ hDC&#d9C12"8*qAĸƠ1Of:`~F|B_TЇ8HXLM>QN师1iEI5&l!!qPL~'3V ,q?ˡFFp}!azQ=)DX]ĺ.I5$~,/1ilD #{#̀n=Ԁm\ٸ9,a?= Dl^˲>J/そS`ʝ@B5ɦ7'j2x"`i<,)Ys- Cso AP/KlM-88DUkU=>lX&gb}O~/oZ T/JeoSQ-D\tfe~}H4+# @͙$L0# @yU'ZS3IM$vDžEUK1 1 5j4ħ`8R(lG!X!$M>>\Oj6} #+ r.)H}.șhi4y (S  c|E+zX|@-><)MU"2Uc/,bYoH!'5Kfbun7ۍvmo'N3>bo_E)5E3':"hꬅ8m3}5 xj 8?_6 !Ċkd"&ge,( eWº鬫|hA >{IRJȩWNnVĢ$Pp,Or5sO*23o3-- WQ6c@55DΞeŲſm"痭J"Z:WV\XRbic8eBSqAM0~|t 08JB.Z`/o͝ks)nòqȑ<1*h8 \pfܭwPS^k\[⛶:Mvt$+437H18y$-MH˼MppdFw:KN-!V;B$]sedA4Lea:Ο߷liYH2MXC<{']D4 `ޚ%MKIjҳs;`Y=~50axLkbb`Y|o'OÆy&vT́:?~t#%[x2GT~۲,-|ɓq:Sw)CXV ӕpb7 }<';k8r!3g^?va8qedNƲR/4K^d,PHo4>#yE-)deah'G;Dٓ i&%'5')%4`R"-G/X@8`vi)vB"@(- 'O젯,acDGv;Bbz)++CY7aJj*Ӊb8UEH0HKñ>F(ZJ%PK^pE6{lƎKAA -!K}~'@Q`B1$ j`G9b]TCXW55QGv&4TJ˴нs:M쩵IIAMܼ۴@:'6Tnm*R.Mm*Uɕu=#B%^SG*f}; Lg @GM FmT!DX+.)lg̔Rlǃz5u4$  1C!duznqyr A aٗ_z{G1,OM1M&p h0r{ІW̕7n}? Ĺ+$<ӺhR6)Xsv-”0%m-$m1Ɂ.tK1A#T/nF= *hNLF q"B7`%}fY7x haɭ6PRu1-3ƞ6@ u$>9I$0?8m(vܐrHaK$fkDcҒ&e!iٟ|MIdۖh^|+~ϏN kSg(+ IENDB`alarm-clock-0.4.1/data/icons/icons/hicolor/36x36/apps/alarm-timer.png000066400000000000000000000043211435672060600251640ustar00rootroot00000000000000PNG  IHDR$$sBIT|d pHYspMBtEXtSoftwarewww.inkscape.org<NIDATX͘Yp[suZlY^$/KR30>@/Pv2tJ'v`h)N6&6fJ(-۱-۲e9e=}x@_Ϝ:,w?=GBJ_u`]/8v)J{PBi>|:Uc'N(.K}/fR[c!!D*ouoMOOgo67_?sŒ%T*՞J*جfL3RI$ “W _A$& |gձW:}}u<=vDk[55J5]gxp e4M`]wط6VНv_vٯOKYVڀ.KM5?7w|es^@>ߠǽ~pjIu44PYUnة3z%Ωiv7[ LDIgssK C# @={Cnlk[;rɭF_X]{:Z(দ v7HTFFVq__`ZJ%.::/q}mm>YDYI=\s"D-u8J,a[62j)A"P{"}k5ww`5Pƻ EڣkִB{́Jw9<XMܳـ;\lp-u) LF9e>85L4;n@5Z@ss=bq́O Z\7ˀz&^~ ,[6c0(`j&RVhвUv\ D0[ ?3W`&??؞Jkkk=جܰ΁܊FJ y=ǿYA{}%n$*L˘Ķw7n>{0|٤*b6yK)dH?N'nuȪ*DRtSٛKJ V#v=opC}|2S7'wCy]6T,p NOeo^Q5x6+|+ly&['”-qwXjb6 ?hфaQ  h8h7Lx6& P *`5L^Rlt4IJ -F6N (ȅt[M{S=PE!֘Oe%s?2E,r-}k5,D5nf6$Qf7ȁf,\,^͝|O D"2tO@ F"| ?%ћ0 ڬf_Umx|Me ^Z$oG"QN$UՓc=z=ӨnV<%y DsxxQgA #HN(NO{x` jJ{M|{-\c!݈<2{& b~>gڏUqg' O^xAg~ )y6Ӿ1x3\b$Q>4 @:ܙK9UgW{bWHǶf67l]j6R- ??5X~9;0ûu'??:ԽBR$]2\îЪ|OYw> V"c#!tlV<ުŶR lp2qܗs*j+m\=YrVA3pASa ^ڷ5c2uPڃ/zvX vZ,&ڷ]WS^i\}Mӑ3j88Tpqu޿9ujy!& w ͂yO'4 %=~PB@4yҞrU>*PQn/ #oN:*o5 ln\xL(y[ۄc5Բ2.EBрBւ+TP|$W m LHkQZp[!pkZ^,+BsӔIENDB`alarm-clock-0.4.1/data/icons/icons/hicolor/48x48/000077500000000000000000000000001435672060600213075ustar00rootroot00000000000000alarm-clock-0.4.1/data/icons/icons/hicolor/48x48/apps/000077500000000000000000000000001435672060600222525ustar00rootroot00000000000000alarm-clock-0.4.1/data/icons/icons/hicolor/48x48/apps/alarm-clock-triggered.png000066400000000000000000000123561435672060600271260ustar00rootroot00000000000000PNG  IHDR00WsBIT|d pHYs33o~tEXtSoftwarewww.inkscape.org<kIDATh{p_ŕ?ソ-ٖmM xCE$R0,vdRI&bڐ݈f86/+`6Hl{} T:OOG'{X8 `”;Ni>;t';=ca4Eo/ @)"-HUQ=p{kl "\. (}#, r0lB?:у JwqAv nrk+(^+o[Ɛ+45nۥչ9&OrQDq*ޯqLG,j5!+΁S^6ttVt'CRC G77Y93F(W,[+54}y38GZ/w3ok'bP-Wȏ;B9 c=?9y*1"if͍$uUUp|corGg(U\~ %@ڈ㏐Ċ*w !_ saVr~ńg36v~Y~é"LȾ Wq _f\ZR#2RLwhU 8Dw]EpmM\&Gi,c՚tTr:Moa ۑ[h&+=RGb|΁ yܶ҂!h0՘ ރPqh.Y\~)V'qɕ1ڻVq-װbc GAK Iž:W=kYn%Ka(=1&m9xq%Xn&CP&4A拘b$+,f -.NWJ!q16D؇bQƄ\.lw/GSu$uo2{fF01v &B0 2qo}{B~{lV"2 aG6smeb4Cr&>ه8oW]?+W1UGd{IMF V ,Ruq [3ly~Yv+Wԗ~΍_.reP0f>P R ,$Gx7;Eɓ\sBҷl+ӕɧ呧v2tCB2VcӬ 0$WM09: |#w|/yƆ|MrΦM9:J$$@bcQq,mkXyVjT_G#Xt}Ҍ^43>KykA?8='>y;oI:*_nDkuO6t T06Gs?z(oAxbb FE,q( D+o!2LZeWSg}PĮY3򩱉KZ:yᱟPq&⶞􍉪wou`@e.GjJfgj{dႏ_Oy*E@O "͠ηNyڅsn[OPl|kg0)ЋPv(&ɫwFN]~o溢|oc]" *1Wf#&^x򿥚yu]lx;Q>C]~o\&* &IP.Kx/@/|{!Vv1%ܿkVOF 7vk7,Tytio>K Z~VE?$MD V ܿk1M4a#+:O^}6n;˚l1ǦcCwogxz_ X$HV,8ObwA |ߘd᳘ ,86]l1G&5[|>vK+:3` (}'7Pf^~hE֯ـm `bf  / bhJPS#`@д% 2279jfXL۶F|-hC`zvѼ1d%fhhmKĘy5x|e-)?~,F$H}J5Jm}/c m a&+'7bE:X ; kWa0ʐ1c6@$)/D.7fK %=ɂvn"!H:/< Q0PE\AsXW%\c% '1=h64ڀ"c\\ux›˂A-,;W}\!8y?vˢUMph(=g~TUm8[*6lS^$a!=9D(4l\Ej 8 y8F"!빐V[ՆTyDLc DU2}<,EYaŘ**P5|^>ʤ=~#x񱇉k7>>\jB=?M\v3Mq\O_aA=y-yl!C 63:nׄɸ/<0ۋ9T65%kS_ q6cA&7_mą I~)}Pœ8}G5;ҍv铘D+<`௟ajl{>A%#$Hbި:;_#hxuQF&lnh\%҂=f,8"" !lF؁pC#a' bz_]<( (oXwA7]|cCjB^]n0191r8Sq\!YV$af(QzQPU=/' b0 &u,,! !4/_Ҽ|b\jsTK%N2!NbpuHb w|Ԧj$ I4Pvzݝ{yKn!Є+F/hOЃ|Bj M$UM<:6r}؎ 8B]4D,42m-M! SFvjshTSAՓ& 3KعBn q h_+$Ei>6'^B1!P_ӓ?,L@PUt$ DTg&!~q?kw1},w}B bCN Qp70!A!`0bơ1.`m~jD(`x G|{_= "_ T~ X Q ɐ_!A$ 09Z&PwZ Ƅġ`pb3o64w]#wqB.HH`0AQEL$gY\$K2JT| ,(B+IZG1$:Q;zH H m8lϮIK,#^=ݲ5߇oF&Œ@ Ԉ LT>^TqRBm#%Nqwq&! ޿ܴ>~_nق^;/y`ix3IENDB`alarm-clock-0.4.1/data/icons/icons/hicolor/48x48/apps/alarm-clock.png000066400000000000000000000065751435672060600251620ustar00rootroot00000000000000PNG  IHDR00WsBIT|d pHYs33o~tEXtSoftwarewww.inkscape.org< IDAThypUU?.oI^$K$A-(T4 Ta\ZfJEzR#GŮ^hzqtFKDA Y<$Ix!{^w?&eoթw==9BJI(9 4luF_" P}n#+ Ay7%~Q?<, | "U:/חD֔:[rPYFd+PD<Jjf6ɣ3p% T1M`u@P*QB0`ڂ娪Phu3jڱF@P^F/3m f*g*vI]iRJ{BxSdO)nPGJɩoqa`i (/ !wy3"@!ZZ0SSA9y){a`F (l ,Eף\cA1&BA@P~VR3ܽRLB9f fZ5w S]<3 ^_xׯuu:Hmevl=H7Aef*~T2I)ŠV7cǚwhΒ$=1W#/K& gƱxWj&'(?:@PF ?=VL KLrBvH#Vޱ['Btv`&%afevܧayDԦ0 5!CTX[ASM7B B/v'_8'D;(6|'U e7]&Eg`x*o9 gz03YGff4qOJ%~D 6?w`Uk* {Mk~lMl y/Ne'3. qlϲƩlSbgϯ 0 @QUfΥ`|)zwjiFP}9UfOR%yϚA\_ئ*?P&?ϯ$Ts6 ^ ~,l_o\8s `] (|~rJiRn̛{~JB zR4dTE׭qrp}=MM %-R/?Ui {l(uxX>~"KVe^[@pdLpr>"Xf`_qCVWd;~y!PH0=1'0ۑRrd6|Kc Ѐ}sޤR L QNxHaoRmWv(./\A-wI3] iplvΙkյFܶa"=%@{Otwy"fEs{H./;F/;hny3rEhMw'\DGK@40+dqV^:yLr|475mFiNZ_^. 4w)yqxqVGۜ;HvnݽNsebEg|Q|-> =1oF0u~1Njr+nݽWu{ FK3qVuSn'.% ś4M.-р_r}=4)y33Q^RȞr;BzgnKF}GgTz5݅Ƚe6B|!@JnٳύAʫҥKزu+uuu#esomWx-'^Mwf}?23[%~D*#Rho .x꣟lR}p e'IA%!)|N!y!'$ϫ&r M FdJ)Htt389HۃbX#PYw&|./yCn.urn -ȏ6;L&y/"J8ț3!02*@mFAW_5I ~y<>TTUX isB(CW nHnԕ~tOX՝:]gS! "Bj6i翓(N簔/caXS( 3jȈWlggkDS<$\> K0V;G!.*D.2D?@IENDB`alarm-clock-0.4.1/data/icons/icons/hicolor/48x48/apps/alarm-timer.png000066400000000000000000000056671435672060600252100ustar00rootroot00000000000000PNG  IHDR00WsBIT|d pHYs^tEXtSoftwarewww.inkscape.org< 4IDATh՚{l\W?><3؞8q; i@ `7+؅ejh UjRPRA)ǒfp=<=3\؞iV{=;9!YoTwPWfZ?v1B0}HQZ Y y+jg'\ABj<4M_ј4KΜBV]7o2KM퉿~twR$|YR̖2'6Ղj0 "`*YuCmnnl̙Kjy}lj>m)e)Qֺj**[ ;1Ͱ{V!Ly~ۋh"zz,*+.81dCO@8 l4SUULH$p2ATYYN±*ʮ;ܒnHjJm4Ui*^4=/p`j>V_A&_?z{4s&s( ;ͧ1USi?BIOW,cko;~9,ra\G~'O 9 q`GH:/}|f!|TUviQTh)wX-U8 ojg^e:wQW.L^\9DY}חF#6 gH={|A!]SDS6KPPP8T?ZKqݕI0}uvyfݶFJE"=<@kwD)./ Wo?(rQw4Xgp)wyhKc, y^xIAjܹ`HG;CG4Mq+ic_\#xϿ6ȰwT[{O9|c@AZWi|##_iٜ+SsW>*uKi΢d%O厶rr]{06Vʒ| ,k)իSuu.fIsW>]tRDQV{˰ZԬW]}#=\Pr!ZZjX*+09tonH[ ͚QdbU\[lHy1x/m)ܾ6i1_8Y^܌u-+6&pmtnMSq*)6P4Ɠ_Mjּ[YiĖBNEH\x6~4jri8Q%\tru&AӖlWS5JE蚆aȴ%{MtMj"M؊D^Ws4[dۊlVtMEӴc OpuyNw{MzګLsy#wK=mjygpM_gcX3A|8yح: %ey ;J{9/wsmI; Fh1BhC\C *pO%̇#|ݪo4abs p{ r\Xcq8HP,X/g" $`G8pXh`4)Y.rDcק֚(N#w5(!w|K8MŶ1v *Ԯd PU=fMIt&/+|$^ŶFWBz¡`%ɼ X#w`o-|C`\5oB [ 0_pg"߼6V.yMZIŞaLOϚJ i љPL{cH׆9l<:qG5o}]AoH75K<Ob[qKɫ@o?@yEimśx'4:%_<ߋ{@Pmk3ȄysgFYn&^wϙ/.Ƹqc´V2B}z'|LM.8ϼ:~  ,3kՁ .cJNxjO)H]}M$<ت!ѥC]'-X4n[({oֆdo/NKܻ2cl8Ë|<* ϼ2яalr)O[tp{? %<&6O)F<IENDB`alarm-clock-0.4.1/data/icons/icons/hicolor/64x64/000077500000000000000000000000001435672060600213035ustar00rootroot00000000000000alarm-clock-0.4.1/data/icons/icons/hicolor/64x64/apps/000077500000000000000000000000001435672060600222465ustar00rootroot00000000000000alarm-clock-0.4.1/data/icons/icons/hicolor/64x64/apps/alarm-clock-triggered.png000066400000000000000000000203241435672060600271140ustar00rootroot00000000000000PNG  IHDR@@iqsBIT|d pHYs(D(D |tEXtSoftwarewww.inkscape.org< IDATxy]u翧^ZZBBKHb1N@K88D|ⱝ瓏cgq@` Ƙ`d E ԭ~{Q2$O}wyU;u:\QU+VYd,NHț~ ufdغYcm֭C мOl2'-ľMގNF'ppOwش a*)5m&+?qI͛ش nȉikr*WKt;$oxE~p2Ц~k()߿ڛrv'r`0 c_7]9AhceS8QD Լ_\{^G\D>5cQf R'jXsͳ*(!$`D!d840o:zѡ0JRE:/ B@w{1'LR*ѨN04^;~m p7(Nϯs{ޏ@x=ITA(+r572E #&B"sc9CWm:ˡGuy(z_|d SGbS_AR u|*73L ČL"PoP-!ž]l-T&o@PxM I~S$C50 įf("Uc?CcXq-_N|/Y HmؖM8.q]IJb )gl9%e, c@ LѡW s_h) bqꓸ"J1$mT_9sC`TP׍^%? 0_.;Gl11XL 5ADPUE?Q>Ż?3g>=c5S"vcfɟW{\D2_-|SN*&'OTОWU* kmeu3Rm@yC7] {y>HԗB8ǘ/xJS %]~kjL48Ym6BcL?t_(XYELIէ3o9= xA%ԠFphp7{AZgS20 OwU5J3p*/}/$0\tLj]f೙<~ם+ο'M6мyS7ullJXqŬ(t1I9Fo϶ҝ}BljQB?t_`mFxnk? Қ}+rpzsv26\g/Q=ӯQ0&æ=8P%Jθ#/[%$ Ř4~u1ڔϊ1&Pr%\O22bD\@{)&JQ~u Vî_lclh';Oul s7 /p ;lgd)K+B l:hKQ16b83$3:PI᥁7)^Riु.o_ 6gsPIIftp~3&*bLTMeoqy Yy#KH2Y2qt a{Ws/ eSk|*GUJ|f3+)wv|s1ĉaXD)Hq@QQ$*Po4BQMxxѭ KTΜpc'nN8c BTx4ح·Ua|xUE3{tdSψ*̌[BbB /c`j* L %EMLI{7Ly$<6WP8\ /9~T;?3}ʳdC7y-eTUsL·7i{T[ܻ 6bju=}/%l%} uJXa)F„ !Aھ&yZwB Y뚑,p cNa J"lA,z_6:vTmwx Ta7)%ȈM4;خcR쎟Z|Uq1&..cY ƃeWcCLCC$ ̈́kFgkYл|jOg0is0\#Xߜzc>41%x9&lW|6Tc_b6JbbCbpyqwv﯇k=g|NxU!FYq:b(&Vc19&6mk89ۉjvX̶,Z/qLǜ4]]`oibW'8(qRxaU̜mpگr aC[ƍ!u+2v1!%P(Xy:L-6V 9'v3Y IQV-5-υy7mRG;(U#!D;gnj^s'ZwtW^(ݤ ֗/ lE0ȕȮɽȒ:Ad- =GQ!- Wbւd9hz3:`bd6"tYlt.X7 rGv'Mw -]R$blSye)ݛ< k?7LQkMh':2QD3^| hu-seT˝?>@X?}M{5\SÜ|f? "LaγDr Lk#41qww[TZaJ`Up9}e꿑r JlxqO;7!z!G2BLcJ3ӥg6cAn!9- 2r`VG%%ED6P*["0o>!` WuS,|~w}Ni80з^94R(l"()Jغu#kW2ǐJ%J<3gqsM*Wɵe֌k;= 7`A)B5b<3gcm|SN>DHOB E& n1fPL-vDMR+A$>Mb(;Z4QLҽR'O;|kS=3(ww;7CIrkvd4hO]=/4suxzh}u# M.Q6KS?%oi V7w6:8E*^Q,^}Ec"AL11ˉ,\?;8+MoKv~`@ DQ M-*J}rT'MTX|(7m%!эFڨ9_i%듕VI毭 U$bjx_GH߻?iy(纙5N[y77y4Ȇ&F}hZ@}j9TCH8ZYً|1BeU=m | ߣUfbPOIeZu[N>e /^0u}krbkټƞ:C䊱6ek(V!'%|'zhE4k''|MFsMEf2~m?{\;9i~i2<}>k4ԗXáxHJ@)p;%%LI4^3 )%.s@fC<e ^ [ $$")#2 ^Zcx"!#GxTNRH}mseb('D91iY(EB^| ݋e艫xz2߅ |W^[fAS+4P7/p1TBϲ#)q>Oo:6bm|B^R2B LAq75D:6CKI/,;k?r,`qB] V,ee;}nZwh8y^YT| Z@("Z `Z ˛h1M@I{|-Y( ݉eۚP} sU5yPS9b vS=ŕo f2tU5`dGT[[vn26.cQGEǙSaiiy?}>-dv#6i4O".Q$wl,^4} =. ]`p$qb"yXi|U @vSg%!{{i)m=T C^ܳ} ťS~uOliLp`ݔUR-+c֔292DDdqCI_=M`ٙ!yO qxD9j8gy5Nac!QGٻI5sV;事cKlI 5Re YVvw5Uo!N҉1\V%+YK鬿y3l؅: F.،ЋЅa3Tcب= [K?_|jlV`^&ww3w>N NJy\2N}r8ejJ˵ahkvbL6v WdY v/ZdՇ\`+)l wgrtT_G`Ɔ'lDwkUSI+yi<ݮmV(C)གྷ!>1|/CVӍOsLS+= i[O-{7fyps;Q|rh"OGژR<3[բykJ>*F,#I-K5l:q:f{:K98fA7zJB}[-E}Fε'ϹEOv0T{ФSXb\89πfn 籉ɽ ͲPcNL7GlGN>Lkxw?;\DMhڥfX>-7ymm} WBU?9d|^PPkc#zl$HllbQ:fI,Lp8'tV`3Fհz Zn4[~< p׉ >;fԄ1tkCV݆Iޱ:yhݣ[缦6c- F4cY5Am9Z2ԅ| o2Ȳ ,jvS_l৿^17('BsҪEx /ǎAS i 6HcDC%m5ruOJxpY::C\&KS,Gܼ?|z֭_Fj;1Z9v!Ǐcud"* id[4Q"1с4:h_.nt.tS6oa` %N%F 嗑Wr,8v,`,wwffR?>,X3/ni謹*EIDAT'jѤim#F5oXv۲HMC{I'$~bB%kvwcڸ iI?}_\IENDB`alarm-clock-0.4.1/data/icons/icons/hicolor/64x64/apps/alarm-clock.png000066400000000000000000000114601435672060600251430ustar00rootroot00000000000000PNG  IHDR@@iqsBIT|d pHYs(D(D |tEXtSoftwarewww.inkscape.org<IDATxś{tTս?=o}FH)   bbσ!y2# ". ek`H=BA@L8ہ?C6Q$t<uM FOw&!^ , (\.o #'Dȱ|~Z(;ƉwiVCbJX+=TFM̜ٹpS}!y ҁ\fɄ9wڕ1Zo7v>$!F.7=N`SJJ3)JF.U_P[yM6X V?v~jF_;}h0:\?=M a;)=F!B DTT .\@D" 2%cx:}}7:|< O{b12 ? 1pX.459)bzq ) u憯(jiYaށw8g%̷:zD ~ }qSp9#^ה#@Q`7ۏ 6;Y.o =UwBq[cgxj^ d{`eD$$ @ jse)I"R_>~s6Gړ`ϗ?!9[}3W3F5^*%!_-&>/GQv wZ2("T</ [mOt')!UeSF fx g ֦Yw7o@!(TW9W)'~ 04 _ _ "'^aSk9kM>M1Mk8h5{|=] 7hAE~c=n  %?m\5:]JbjM+Fk+JY A 07)?b_Ʀ6]o`@)+o-bs|a0$W3>ד+U:w0i  c}ȱpsP0'N?(JY,Sy:@Y0$ۑk'ߍEuѬ,JNv7iUhz(2YZi'37( BKKÝwPC@KKC\ϴpcoŮ_|vjlڼ-]\uSfefz][5h &&/X˨:Ǧ0"`|p\ Il;~>2brߏ{&й-4WU\]M.\X?7Ĺ2C/qaqO:fߛط}-6)߁;]x=s!~[b0erkV}>k\)-h0(~s=?t`)ʷHr'd7˦U%Z`$)edQ[u~ :+zʐQ*,cԔ[?7off,6'~]m@46׋*L}̉8B:p05zc/c+c @MYKKJWOjZ騚E2j,%kdf"1%Iעx b{W5-U{cQ%6`s"~y sIkcm|x#O+6Z4McԴٌ|3P!}TjR}>>}73jll=]#O;ut_ȺlW"zU]̓go>Z٣1\?)BT|kRWǮݻM(NZ~>ǃ/epAwG[m |xs=!~UzÚb-m555H)yi {#%@ ~&^۳cfƙ fwn'0wrlfaEӅ鸼~E 0 6h8}:2Zc/Ξek|0KP|>M뷻nq/S}vHH@6%KT흭:3|4<^? Bqy{ooP*$JػiD*KV  Ӱٛ,QfU GUC魚kdϋ6i1rMH5/0"dez~3<ЏD"- eIKKEyA@fl4]Oj(5ے"@=KOoV6+=2YRVBr$]EEJO!蛕ǟ4ݳ$If*jdavzjjvۦJEEE;m۷m޼{m!s6`_* p8s Is ľ/&%˗޳K-fև[%SMH[Wl1<"ptƒ0 JUk7dH69Cѣђ)zupdrafh& -ⳍLמWw/ϔP__D(js}{ȟǞv.s&._j& M湝m΅ŞN鶗6Ͷ eMW;_ሾ@XRʲ;24yz6쪂tBΞȰd2aWxt_/Y?uq}iلt k57>x0rfc})+UAMYeYpU=7Mj˲غѐFG8ڇ7A}}ݝlC?oKM ]UF.2->TH}vp[qP0qOUNۆX&Iue%E^l%E9zBP[<**]n Ds"vn:vⰩ ՋYP"0 ;YKsA0[%*i R!Ȱ*Xr^*ĥ!ˏ^hRE8|em ݭ ^hnSxt})Yvұ*UEIuGatǮw?i,aTcIwQ|`SQ"iܶ:ID3E" kǚ{VmR5զцE~7d5O"kQY3z'|M5PMkMn$@JY ?LPHNX[;=) u.-BCe1#lԶ"I+'nHB7F|E^L$@164``$Hdmx]hrQU>Dp0)&XVNJECO7$ch6y ;(S<5zcℂ!>aQ5tU܎\<.]DU^:Lvö́QO`S7F Eh(tK%Z]a3Ft [5dYP 7nQm22z- Dwo?-K)Ϙv"ؼ~|mڲV'O7U SLKϨ)4v!, $B2,  H䳫ݙJ+JzWuZeC:c /S<, ФNޑ _d{`R`ܕKׇ1V1>vUKwO2WF'kyu9vbۼ{Ø 0զ>Ѡ=@XleT(>Ǯ?ÊE8 eg͒BFF }ۗ4]r+NӺg_)w0R[^rssLϏ5 ~qn+{|߸Ðvr(h!1kaK,Ԁȇ _%N8'g)4҂  =GɀHi=k4wT&/79s>>w4x9h)X OĘEZ4M]5JG?w4rw t6~u:4>!f+ȭMxTE>,rpW"xBpl=-Ɇ@ >k5UH s=vYGpcG?fx(ܖ)'Zj`ܲ9!_TUkj-wbp;TVTdSQࡢ z9fjee[Q՞1{Fi9粛7G8~LC v3U[| KLhPAawlXaq[AwWNG&=;VQE[^~DJS v|b*gNxKiBB>}isNoyN~U,u+Q\R8vGBKS{B4*ZU?|m{=y xlʊ))-MyaKG{O)r ¡ڿxeWR4YogYJJ vv9q]Sh!A=?oArDCˡc*e`uh@uIA4|<wŕ|TH\&ĭ뉜RwD$7'Vwٴ1! cX"v`Se⇄U ! &ыi=Ԯj#]zOqIΖ0!m"5.%DFu į"DSMJ9sFj^%/ѿظ%|,'wb^⛐׉o^@ !"3Մ#^+ 嬮jwgd͒$kݧGR !bjQM+ JSi@61l`o#v#6;rdX$Y988zVJ& =25z<>A~_KIi`cIENDB`alarm-clock-0.4.1/data/icons/icons/hicolor/scalable/000077500000000000000000000000001435672060600222565ustar00rootroot00000000000000alarm-clock-0.4.1/data/icons/icons/hicolor/scalable/apps/000077500000000000000000000000001435672060600232215ustar00rootroot00000000000000alarm-clock-0.4.1/data/icons/icons/hicolor/scalable/apps/alarm-clock-triggered.svg000066400000000000000000000267741435672060600301210ustar00rootroot00000000000000 image/svg+xml image/svg+xml alarm-clock-0.4.1/data/icons/icons/hicolor/scalable/apps/alarm-clock.svg000066400000000000000000000235341435672060600261360ustar00rootroot00000000000000 image/svg+xml image/svg+xml alarm-clock-0.4.1/data/icons/icons/hicolor/scalable/apps/alarm-timer.svg000066400000000000000000000214121435672060600261540ustar00rootroot00000000000000 image/svg+xml image/svg+xml alarm-clock-0.4.1/data/icons/render-icon.sh000077500000000000000000000003231435672060600205000ustar00rootroot00000000000000#!/bin/bash if [ -z "$1" ]; then echo "Usage: $0 " exit 1 fi source="${1%.svg}" for s in 16 22 24 32 36 48 64; do cmd="inkscape -e $source.$s.png -w $s -h $s $source.svg" echo $cmd $cmd done alarm-clock-0.4.1/data/io.github.alarm-clock-applet.gschema.xml000066400000000000000000000066621435672060600243240ustar00rootroot00000000000000 false Show countdown label Whether to show a label on the right side of the icon with the time remaining to the next alarm. [] List of alarm IDs that exist Contains a list of all the alarms that are currently stored in GSettings false Migrated from GConf Whether a migration from GConf has been attempted. 'clock' Alarm Type The type of the alarm. Either "clock" for an alarm at a specific time of day, or "timer" for an alarm after a specified period of time. 0 Alarm Timestamp The UNIX timestamp for the alarm. Must be set before the alarm is activated. 0 Alarm Time The time for the alarm. Should be in GMT for "clock" alarms or length in seconds for "timer" alarms. 'Alarm!' Alarm Message A short message which describes the alarm. false Alarm Running State Indicates whether the alarm has started. [] Alarm Repeat A list of days when the alarm should be repeated. This setting is only applicable for "clock" alarms. 'sound' Notification Type The type of notification to use when the alarm goes off. This can be one of the following: "sound" to play a sound (specified in the "sound_file" property.) "command" to run a command (specified in the "command" property.) '' Sound File The sound file to play for the "sound" notification type. true Repeat Sound Whether to repeat the alarm sound. 'rhythmbox-client --play' Command The command to run for the "command" notification type. alarm-clock-0.4.1/debian/000077500000000000000000000000001435672060600151345ustar00rootroot00000000000000alarm-clock-0.4.1/debian/CMakeLists.txt000066400000000000000000000003741435672060600177000ustar00rootroot00000000000000add_custom_target(dch COMMAND dch --distribution unstable --newversion "${CMAKE_PROJECT_VERSION}" -u medium "New upstream release ${CMAKE_PROJECT_VERSION}" --check-dirname-level 0 WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}" ) alarm-clock-0.4.1/debian/changelog000066400000000000000000000203451435672060600170120ustar00rootroot00000000000000alarm-clock-applet (0.4.1) unstable; urgency=medium * New upstream release 0.4.1 + Major Changes: - The application has been ported to GTK 3, and will thus look slightly different. - Old GTK Tray Icon support has been removed. A desktop environment with support for AppIndicators/StatusNotifierItem is required. - Alarms have been migrated to GSettings. + Notable Fixes: - Many memory leaks (including a massive one while the UI was visible) - Alarm labels bouncing horizontally every second - Debug messages breaking alarms and timers - Compile errors + New Features: - Default media players are now autodetected. - More media players can be controlled using playerctl out of the box. - More system sounds are now added to the list by default. -- Tasos Sahanidis Mon, 09 Jan 2023 07:00:08 +0200 alarm-clock-applet (0.4.0) unstable; urgency=medium * New upstream release 0.4.0 -- Tasos Sahanidis Sun, 20 Nov 2022 18:22:20 +0200 alarm-clock-applet (0.3.4-1) unstable; urgency=medium * [0499cae] Fix debian/watch. Launchpad URLs have changed again. * [3becb10] Imported Upstream version 0.3.4 * [9a0d479] Update gstreamer deps * [74a4d3e] No-change bump of Standards-Version to 3.9.6 * [6ddde20] Improve short description -- Chow Loong Jin Tue, 19 May 2015 13:51:08 +0800 alarm-clock-applet (0.3.3-1) unstable; urgency=low * [05ffad2] New upstream bugfix release: - Automatically detect daylight savings time (LP: #290733) - Let the WM decide the initial position of the list window (LP: #800635) - Check that media player was created successfully (LP: #823585) - Don't show notifications when alarms are stopped/snoozed (LP: #908636) - Update timestamp when type is changed for active alarms (LP: #885059) - Use segment seeks to prevent playback delays when looping (LP: #977110) - Enable alarm when closing the Edit alarm dialog (LP: #824337) * [c6f6846] Drop upstreamed Set-appindicator-title.patch * [6901288] Bump debhelper compat level to 9 for buildflags * [224a210] Drop redundant clean rule * [600f7b3] Don't override LDFLAGS directly. Use DEB_LDFLAGS_MAINT_APPEND instead to append --as-needed stuff, as per the dpkg-buildflags manpage. -- Chow Loong Jin Mon, 04 Jun 2012 04:38:46 +0800 alarm-clock-applet (0.3.2-3ubuntu2) quantal; urgency=low * [7f8361d] Add patch to set appindicator title (LP: #992148) * [954b717] Bump Standards-Version to 3.9.3 - Update debian/copyright format URL -- Chow Loong Jin Tue, 01 May 2012 03:33:53 +0800 alarm-clock-applet (0.3.2-3ubuntu1) precise; urgency=low * [293a87a] Merge from Debian unstable, remaining changes: + [67ffb6e] Add appindicator support -- Chow Loong Jin Sun, 01 Apr 2012 02:20:35 +0800 alarm-clock-applet (0.3.2-3) unstable; urgency=low * [db69482] Change from "--hide" to "--hidden" in autostart desktop file. Thanks to bojo42 (LP: #877037) -- Chow Loong Jin Sun, 01 Apr 2012 01:53:08 +0800 alarm-clock-applet (0.3.2-2ubuntu1) precise; urgency=low * [01603b4] Merge from Debian Unstable, remaining changes: + [67ffb6e] Add appindicator support -- Chow Loong Jin Mon, 09 Jan 2012 12:02:08 +0800 alarm-clock-applet (0.3.2-2) unstable; urgency=low * [ba5585c] Add missing period to package description. Thanks to Paul Stewart (LP: #830806) * [a48460e] Add --hide option to autostart desktop file (LP: #877037) * [63a9f44] Add gstreamer dependencies. This should fix segfaults to do with not being able to create a media player (Closes: #626364) * [7eb7fbc] Update maintainer email address * [294a018] Update copyright to DEP-5 format * [1a1883d] No-change Standards-Version bump (3.9.1 → 3.9.2) -- Chow Loong Jin Mon, 09 Jan 2012 11:41:59 +0800 alarm-clock-applet (0.3.2-1ubuntu1) oneiric; urgency=low * [67ffb6e] Add appindicator support -- Chow Loong Jin Wed, 03 Aug 2011 12:56:52 +0800 alarm-clock-applet (0.3.2-1) unstable; urgency=low [ Chow Loong Jin ] * [48e1cb8] New upstream release: + New features: - Add support for application indicators - Countdown label for application indicator - New status icon indicating triggered alarms + Bugs fixed: - Add countdown label (for application indicator) (LP: #565302) - Create ~/.config/autostart if it doesn't exist (LP: #610632) - Add support for libnotify 0.7 (LP: #671962) - Properly stop triggered alarms that are not playing sound (LP: #682999) - Add support for application indicators (LP: #704956) - Clicking on status icon should bring up list instead of snoozing (LP: #706832) + Translation updates: - ar, courtesy of Ahmed Mohammed - ast, courtesy of Xuacu Saturio - be, courtesy of Mikola Tsekhan - ca, courtesy of I. De Marchi - cs, courtesy of Oliwer - de, courtesy of Christoph Wickert - es, courtesy of Fitoschido - et, courtesy of Tarmo Ilves - fi, courtesy of Jiri Grönroos - fo, courtesy of Gunleif Joensen - fr, courtesy of Nicolas Delvaux - gl, courtesy of Miguel Anxo Bouzada - he, courtesy of Yaron - hu, courtesy of Papp Bence - id, courtesy of Arief Setiadi Wibowo - ja, courtesy of jugger Yamamoto - ka, courtesy of Giorgi Maghlakelidze - la, courtesy of nivek1385 - nb, courtesy of Johannes H. Jensen - nl, courtesy of Rachid - pl, courtesy of XeonBloomfield - pt_BR, courtesy of André Gondim - ru, courtesy of Сергій Матрунчик (SkyMan) - tr, courtesy of Burak Ilgıcıoğlu - uk, courtesy of Сергій Матрунчик (SkyMan) - zh_CN, courtesy of Lele Long - zh_TW, courtesy of Cheng-Chia Tseng * [002292e] Drop README.source since we use debsrc3.0 * [8dbb35e] No-change Standards-Version (3.8.4 → 3.9.1) * [45f456f] Drop override_dh_auto_install (no longer needed) [ Peter Pentchev ] * [e8eaaa5] Fix a typo in the get-orig-source target. -- Chow Loong Jin Tue, 29 Mar 2011 00:25:40 +0800 alarm-clock-applet (0.3.1-1) unstable; urgency=low * New upstraem release * debian/alarm-clock-applet.links: + Link alarm-clock-applet.desktop into /etc/xdg/autostart to make it start up automatically (Closes: #577276) -- Chow Loong Jin Wed, 19 May 2010 00:26:36 +0800 alarm-clock-applet (0.3.0-1) unstable; urgency=low * New upstream release * debian/control: + No change bump of Standards-Version to 3.8.4 + Update build-deps: - Drop libglade, libpanel-applet, libgnomevfs2, libgnome{2,ui} - Add libxml2-dev and libunique-dev, intltool * debian/patches/01_update-alarms-eta,patch: + Dropped, applied upstream * debian/(alarm-clock-applet.1, alarm-clock-applet.manpages): + Add manpage for alarm-clock-applet, now that the binary is moved to /usr/bin. -- Chow Loong Jin Wed, 17 Mar 2010 09:02:44 +0800 alarm-clock-applet (0.2.6-2) unstable; urgency=low * debian/watch: + Updated with new alarm clock tarball name * debian/source/format, debian/README.source: + Use 3.0 (quilt) for patches and document it in README.source * debian/patches/01_update-alarms-eta.patch: + return TRUE after alarms_list_update_timer is called to make sure it continues to be called every second (LP: #500600) * debian/control: + No change Standards-Version bump from 3.8.1 to 3.8.3 -- Chow Loong Jin Sun, 27 Dec 2009 15:30:59 +0800 alarm-clock-applet (0.2.6-1) unstable; urgency=low * Initial release (Closes: #531065) -- Chow Loong Jin Sat, 30 May 2009 23:24:27 +0800 alarm-clock-0.4.1/debian/compat000066400000000000000000000000031435672060600163330ustar00rootroot0000000000000011 alarm-clock-0.4.1/debian/control000066400000000000000000000025621435672060600165440ustar00rootroot00000000000000Source: alarm-clock-applet Section: gnome Priority: optional Maintainer: Tasos Sahanidis Uploaders: Tasos Sahanidis Build-Depends: debhelper (>= 11), cmake (>= 3.10), gettext (>= 0.19.8), libglib2.0-dev (>= 2.16.0), libgtk-3-dev (>= 3.22.30), libgstreamer1.0-dev, libnotify-dev (>= 0.7.7), gnome-icon-theme (>= 2.15.91), libayatana-appindicator3-dev (>= 0.5.3), libgconf2-dev (>= 3.2.6), perl, gzip Standards-Version: 3.9.6 Vcs-Git: https://github.com/alarm-clock-applet/alarm-clock.git Vcs-Browser: https://github.com/alarm-clock-applet/alarm-clock Homepage: https://alarm-clock-applet.github.io/ Package: alarm-clock-applet Architecture: any Depends: gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, ${shlibs:Depends}, ${misc:Depends} Suggests: playerctl Description: alarm clock panel indicator Alarm Clock is a fully-featured alarm clock which resides in the notification area. It is easy to use yet powerful with support for multiple and repeatable alarms, as well as snoozing and a flexible notification system. . Two types of alarms are supported: Alarm Clocks and Timers. Notification is done by either playing a sound or launching an application. alarm-clock-0.4.1/debian/copyright000066400000000000000000000027241435672060600170740ustar00rootroot00000000000000Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: alarm-clock-applet Upstream-Contact: Tasos Sahanidis Source: https://alarm-clock-applet.github.io/ Files: * Copyright: 2007-2008, 2010, Johannes H. Jensen 2022, Tasos Sahanidis License: GPL-2+ Files: data/icons/* Copyright: Lasse Gullvåg Sætre License: GPL-2+ Files: debian/* Copyright: 2008, Johannes H. Jensen 2009-2012, Chow Loong Jin 2022, Tasos Sahanidis License: GPL-2+ License: GPL-2+ This package 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 package 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 package; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA . On Debian systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL-2'. alarm-clock-0.4.1/debian/rules000077500000000000000000000003751435672060600162210ustar00rootroot00000000000000#!/usr/bin/make -f # -*- makefile -*- export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed -Wl,-z,defs # disable tests; it requires a running D-Bus session override_dh_auto_test: override_dh_installchangelogs: dh_installchangelogs ChangeLog %: dh $@ alarm-clock-0.4.1/debian/source/000077500000000000000000000000001435672060600164345ustar00rootroot00000000000000alarm-clock-0.4.1/debian/source/format000066400000000000000000000000151435672060600176430ustar00rootroot000000000000003.0 (native) alarm-clock-0.4.1/gconf-migration/000077500000000000000000000000001435672060600167755ustar00rootroot00000000000000alarm-clock-0.4.1/gconf-migration/CMakeLists.txt000066400000000000000000000046571435672060600215510ustar00rootroot00000000000000# SPDX-License-Identifier: GPL-2.0-or-later pkg_check_modules(GIO REQUIRED gio-2.0) pkg_check_modules(GCONF2 gconf-2.0) if(NOT GCONF2_FOUND) if(ALLOW_MISSING_GCONF) message(WARNING "GConf was not found but the package will still be built.\nIf you want to migrate old alarms created by alarm-clock-applet < 0.4.0, please install GConf and re-run CMake/rebuild the package.") add_custom_target(alarm-clock-applet-gconf-migration) return() else() message(FATAL_ERROR "GConf not found.\nPlease install it or pass `-DENABLE_GCONF_MIGRATION=OFF` if you do not want to migrate alarms created by alarm-clock-applet < 0.4.0.") endif() endif() add_executable(alarm-clock-applet-gconf-migration alarm-clock-gconf-migration.c) set_property(TARGET alarm-clock-applet-gconf-migration PROPERTY C_STANDARD 11) target_link_libraries(alarm-clock-applet-gconf-migration PRIVATE ${GCONF2_LIBRARIES} ${GIO_LIBRARIES} ) target_include_directories(alarm-clock-applet-gconf-migration PRIVATE ${GCONF2_INCLUDE_DIRS} ${GIO_INCLUDE_DIRS} ) if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.13") target_link_directories(alarm-clock-applet-gconf-migration PRIVATE ${GCONF2_LIBRARY_DIRS} ${GIO_LIBRARY_DIRS} ) endif() install( TARGETS alarm-clock-applet-gconf-migration DESTINATION "bin" ) install( FILES "alarm-clock.schemas" DESTINATION "${CMAKE_INSTALL_FULL_SYSCONFDIR}/gconf/schemas/" ) set(GCONF_CONFIG_SOURCE "") if(EXISTS "/etc/gconf/gconf.xml.defaults") set(GCONF_CONFIG_SOURCE "xml:merged:/etc/gconf/gconf.xml.defaults") endif() find_program(GCONFTOOL_2_EXECUTABLE gconftool-2) if(NOT GCONFTOOL_2_EXECUTABLE) message(FATAL_ERROR "gconftool-2 not found") endif() install( CODE "set(ENV{GCONF_CONFIG_SOURCE} \"https://gitlab.kitware.com/cmake/cmake/-/issues/22624\") set(ENV{GCONF_CONFIG_SOURCE} \"${GCONF_CONFIG_SOURCE}\") execute_process(COMMAND ${GCONFTOOL_2_EXECUTABLE} --makefile-install-rule alarm-clock.schemas WORKING_DIRECTORY \"${CMAKE_CURRENT_LIST_DIR}\" )" ) add_custom_target(uninstall_gconf_schema COMMAND ${CMAKE_COMMAND} -E env GCONF_CONFIG_SOURCE="${GCONF_CONFIG_SOURCE}" ${GCONFTOOL_2_EXECUTABLE} --makefile-uninstall-rule alarm-clock.schemas WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}" ) add_dependencies(uninstall uninstall_gconf_schema) alarm-clock-0.4.1/gconf-migration/alarm-clock-gconf-migration.c000066400000000000000000000153031435672060600244110ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * alarm-clock-gconf-migration.c -- GConf to GSettings migration * * Copyright (C) 2022 Tasos Sahanidis */ #include #include #include #include #include #define MIGRATED_KEY "gconf-migrated" #define ALARM_GCONF_DIR "/apps/alarm-clock" #define GSETTINGS_ALARM_BASE "/io/github/alarm-clock-applet/" // Because gsettings-data-convert is absolutely broken on Ubuntu (at least 20.04)... int main(int argc, char** argv) { int force = (argc == 2 && !strcmp(argv[1], "--force")); GSettings* settings = g_settings_new("io.github.alarm-clock-applet"); if(!force) { // First, check if we have finished the migration GSettingsSchema* schema = NULL; g_object_get(settings, "settings-schema", &schema, NULL); // Maybe the key in the schema will be removed at some point in the future // So let's assume that if we can't find the key, or if it's true, then the migration has been completed gboolean migrated = !g_settings_schema_has_key(schema, MIGRATED_KEY) || g_settings_get_boolean(settings, MIGRATED_KEY); g_settings_schema_unref(schema); if(migrated) { g_object_unref(settings); return 0; } } g_print("Migrating config to GSettings...\n"); // Set up GConf GConfClient* gconf = gconf_client_get_default(); // Copy over the single setting (if it exists) GConfValue* val = gconf_client_get_without_default(gconf, ALARM_GCONF_DIR "/show_label", NULL); if(val) { g_print(ALARM_GCONF_DIR "/show_label -> " GSETTINGS_ALARM_BASE "show_label\n"); g_settings_set_boolean(settings, "show-label", gconf_value_get_bool(val)); gconf_value_free(val); } // Move on to the alarms themselves GSList* dlist = gconf_client_all_dirs(gconf, ALARM_GCONF_DIR, NULL); GSList* l = NULL; if(dlist) { // Allocate memory for, and store the alarm ids guint32* alarm_ids = malloc(((size_t)g_slist_length(dlist)) * sizeof(guint32)); guint i = 0; // For each alarm for(l = dlist; l; l = l->next) { gchar* path = l->data; guint32 id; if(sscanf(path, ALARM_GCONF_DIR "/alarm%" G_GUINT32_FORMAT, &id) != 1) { g_print("Unexpected string %s\n", path); g_free(path); continue; } alarm_ids[i++] = id; gchar alarm_gs_path[128]; snprintf(alarm_gs_path, sizeof(alarm_gs_path), "%salarm-%" G_GUINT32_FORMAT "/", GSETTINGS_ALARM_BASE, id); g_print("%s -> %s\n", path, alarm_gs_path); // Make a new object GSettings* gs_alarm = g_settings_new_with_path("io.github.alarm-clock-applet.alarm", alarm_gs_path); // Get the values from GConf and save them in GSettings gchar alarm_gc_path[128]; // Bools snprintf(alarm_gc_path, sizeof(alarm_gc_path), "%s/%s", path, "active"); g_settings_set_boolean(gs_alarm, "active", gconf_client_get_bool(gconf, alarm_gc_path, NULL)); snprintf(alarm_gc_path, sizeof(alarm_gc_path), "%s/%s", path, "sound_repeat"); g_settings_set_boolean(gs_alarm, "sound-repeat", gconf_client_get_bool(gconf, alarm_gc_path, NULL)); // Strings gchar* val; snprintf(alarm_gc_path, sizeof(alarm_gc_path), "%s/%s", path, "command"); val = gconf_client_get_string(gconf, alarm_gc_path, NULL); if(val) { g_settings_set_string(gs_alarm, "command", val); g_free(val); } snprintf(alarm_gc_path, sizeof(alarm_gc_path), "%s/%s", path, "message"); val = gconf_client_get_string(gconf, alarm_gc_path, NULL); if(val) { g_settings_set_string(gs_alarm, "message", val); g_free(val); } snprintf(alarm_gc_path, sizeof(alarm_gc_path), "%s/%s", path, "notify_type"); val = gconf_client_get_string(gconf, alarm_gc_path, NULL); if(val) { g_settings_set_string(gs_alarm, "notify-type", val); g_free(val); } snprintf(alarm_gc_path, sizeof(alarm_gc_path), "%s/%s", path, "sound_file"); val = gconf_client_get_string(gconf, alarm_gc_path, NULL); if(val) { g_settings_set_string(gs_alarm, "sound-file", val); g_free(val); } snprintf(alarm_gc_path, sizeof(alarm_gc_path), "%s/%s", path, "type"); val = gconf_client_get_string(gconf, alarm_gc_path, NULL); if(val) { g_settings_set_string(gs_alarm, "type", val); g_free(val); } val = NULL; // 32 bit ints (get converted to 64) snprintf(alarm_gc_path, sizeof(alarm_gc_path), "%s/%s", path, "time"); g_settings_set_int64(gs_alarm, "time", gconf_client_get_int(gconf, alarm_gc_path, NULL)); snprintf(alarm_gc_path, sizeof(alarm_gc_path), "%s/%s", path, "timestamp"); g_settings_set_int64(gs_alarm, "timestamp", gconf_client_get_int(gconf, alarm_gc_path, NULL)); // Finally, the array of strings snprintf(alarm_gc_path, sizeof(alarm_gc_path), "%s/%s", path, "repeat"); GSList* repeat_list = gconf_client_get_list(gconf, alarm_gc_path, GCONF_VALUE_STRING, NULL); if(repeat_list) { int i = 0; // Max 7 days + NULL item at the end const gchar* repeat[8] = { NULL }; for(GSList* ri = repeat_list; ri && i < 7; ri = ri->next, i++) { repeat[i] = ri->data; } const gchar** ptr = repeat; g_settings_set_strv(gs_alarm, "repeat", ptr); for(GSList* ri = repeat_list; ri; ri = ri->next) { g_free(ri->data); } g_slist_free(repeat_list); } else { g_settings_set_strv(gs_alarm, "repeat", NULL); } g_free(path); path = NULL; g_object_unref(gs_alarm); } // Store the array of alarm ids GVariant* v = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32, alarm_ids, i, sizeof(guint32)); g_settings_set_value(settings, "alarms", v); free(alarm_ids); g_slist_free(dlist); } g_object_unref(gconf); g_settings_set_boolean(settings, MIGRATED_KEY, TRUE); g_settings_sync(); g_object_unref(settings); g_print("Migration successfully completed!\n"); return 0; } alarm-clock-0.4.1/gconf-migration/alarm-clock.schemas000066400000000000000000002167671435672060600225520ustar00rootroot00000000000000 /schemas/apps/alarm-clock/show_label /apps/alarm-clock/show_label alarm-clock bool false Show countdown label Whether to show a label on the right side of the icon with the time remaining to the next alarm. Amosar etiqueta de cuenta atrás Si se tien d'amosar una etiqueta a mandrecha del iconu col tiempu que falta pa la siguiente alarma. Показване на отброяване Дали да се показва надпис от дясната страна на иконата с оставащо време до следващата аларма. Zeige Countdown Anzeige an Ob eine Beschriftung mit der Zeit zum nächsten Alarm, rechts vom Icon angezeigt wird. Mostrar la etiqueta de cuenta regresiva Mostrar o no una etiqueta en el lado derecho del icono con el tiempo restante hasta la próxima alarma. Afficher une étiquette de décompte S'il faut afficher une étiquette à droite de l’icône avec le temps restant jusqu’à la prochaine alarme. Mostrar a etiqueta de conta atrás Para mostrar unha etiqueta no lado dereito da icona co tempo restante ata a próxima alarma. הצגת תווית ספירה לאחור Whether to show a label on the right side of the icon with the time remaining to the next alarm. Mutassa a visszaszámláló feliratot Mutassa-e a hátralevő idő a következő riasztásig feliratot a jobb oldali ikonon . უკუთვლის წარწერის ჩვენება ხატულის მარჯვენა მხარეს წარწერა დროით შემდეგი მაღვიძარის ჩართვამდე. Papar label kira detik Sama ada hendak paparkan label pada bahagian kanan ikon dengan masa berbaki kepada penggera berikutnya. Vis nedtelling Vis en nedtelling ved siden av ikonet som angir gjenstående tid til neste alarm. Toon aftelling Of een label getoond moet worden rechts van het pictogram met de resterende tijd tot het volgende alarm. Wyświetl etykietę odliczania Mostrar rótulo de contagem regressiva Se mostra rótulo no lado direito do ícone com o tempo faltando para o próximo alarme. Показывать счетчик обратного отсчета Показывать надпись слева от значка со временем следующего будильника ගණන ලේබලය දැක්වීම ඊලග සංඥා සලකුණේ නිවැරදි පැත්ත දැක්වීම Visa nedräkning Geri sayım etiketini göster İkonun sağ tarafında bir sonraki alarm için kalan sürenin gösterilip gösterilmeyeceği Показати лічильник зворотнього відліку Чи показувати напис зліва від піктограми з часом наступної події 查看倒计时标签 是否在图标右侧显示距离下次闹铃的剩余时间。 顯示倒數標籤 是否要在圖示的右邊顯示距離下次吵鬧還剩多久的標籤 /schemas/apps/alarm-clock/alarm/type alarm-clock string clock Alarm Type The type of the alarm. Either "clock" for an alarm at a specific time of day, or "timer" for an alarm after a specified period of time. نوع التنبيه نوع التنبيه.إما "ساعة" للتنبيه في وقت محدد من اليوم,أو "مؤقت" للتنبيه بعد فترة محددة من الزمن. Triba d'alarma Triba d'alarma. O «reló» pa una alarma a determinada hora del día, o «temporizador» pa una alarma en pasando un periodu de tiempu. Тып нагадваньня Тып будзільніка. «Гадзіньнік» — у вызначаны час дня альбо «тамер» — па сканчэньні вызначанага пэрыяда. Тип на алармата Вид на алармата. Може да бъде "будилник" за аларма в определено време на деня или "таймер" за аларма след определен период от време. Tipus d'alarma Tipus d'alarma. Qualsevol "clock" per una alarma per una hora específica del dia, o "timer" per a una alarma transcorregut un període de temps determinat. Typ budíku Alarmtype Alarmtypen. Enten "clock" for en alarm på et angivet tidspunkt på dagen, eller "timer" for en alarm efter en angivet tidsperiode. Alarm-Typ Der Typ des Alarms. Entweder "Wecker" für einen Alarm zu einer bestimmten Uhrzeit des Tages oder "Timer" für einen Alarm nach einer bestimmten Dauer. Tipo de alarma El tipo de la alarma. Puede ser «reloj» para una alarma a una hora específica del día o «temporizador» para una alarma que sonará una vez transcurrido un tiempo especificado. Äratuse tüüp Hälytyksen tyyppi Hälytyksen tyyppi. Joko "kello" jolloin herätys tapahtuu tiettyyn päivän aikaan, tai "ajastin" jolloin hälytys tapahtuu tietyn ajan kuluttua. Vekjara slag Type d'alarme Le type d'alarme. Soit "horaire" pour une alarme se déclenchant à un moment spécifique du jour, ou "minuteur" pour une alarme se déclenchant après un laps de temps. Tipo de alarma Tipo de alarma. «Reloxo» para unha alarma a unha hora especifica do dia, ou «temporizador» para unha alarma despois dun período de tempo especificado Alarm Type The type of the alarm. Either "clock" for an alarm at a specific time of day, or "timer" for an alarm after a specified period of time. अलार्म क़िस्म अलार्म का प्रकार. दिन के किसी विशेष समय पर अलार्म के लिये 'घड़ी' अथवा एक निर्धारित अवधि के बाद एक अलार्म के लिए "टाइमर '. Riasztás típusa Riasztás típusa. "Ébresztőóra" egy bizonyos időpontban riaszt, vagy "Időzítő" egy bizonyos idő múlva riaszt. Tipe Alarm Tipe alarm. Bisa "clock" untuk alarm pada suatu saat, atau "timer" untuk alarm setelah suatu perioda waktu yang dinyatakan. アラームの種類 アラームの種類。"clock" は指定した日時に動作します。"timer" は指定間隔ごとに動作します。 მაღვიძარის ტიპი განგაშის სახეობა. "მაღვიძარა" ჩაირთვება მოცემულ დროს, ხოლო "წამზომი" კი - მითითებული დროის შემდეგ. Jenis penggera Jenis penggera. Sama ada "clock" untuk penggera pada waktu tertentu sehari, atau "timer" bagi penggera selepas jangka masa tertentu. Alarmtype Alarmtypen. Enten "clock" for en alarm på en angitt tid på døgnet, eller"timer" for en alarm etter en angitt tidsperiode. Alarm type Het alarm-type. "Klok" voor een ingesteld alarm op een specifieke tijd, of "timer" voor een alarm na een verstreken tijdsperiode. Varslingstype Varslingstypa. Enten "clock" for ei varsling på ei gitt tid av døgnet, eller "timer" for ei varsling etter ei gitt tid. Typ alarmu Typ alarmu. Zegarowy - dla alarmów o określonej godzinie, czasowy - dla alarmów po upływie określonego czasu. Tipo de Alarme Tipo de Alarme Tipo de alarme. Pode ser "relógio" para o alarme tocar a uma hora específica do dia ou "regressivo" para ele tocar após um período de tempo específico. Тип сигнала Тип будильника. "По времени" - в конкретное время дня или "таймер" - по истечении определенного периода. සංඥා වර්ගය සංඥා වර්ගය අනුව දවසක විශේෂිත වේලාව දැක්වීම සදහා "ඔරලෝසුව" හෝ සද විශේෂිත කාලයකට පසුව සංඥා දැක්වීමට "කාලගණනය" යොදාගැනේ. Alarmtyp Alarm Türü Alarmın türü. Günün belli bir zamanı çalması için "Saat", belli bir süre sonunda çalması için "Zamanlayıcı" olabilir. Тип сигналу Тип будильника. Саме будильник - налагоджується на конкретний час доби, чи таймер - активується через певний час. 闹铃类型 闹钟类型。“时钟”为在特定时间起闹,“计时器”为经过一特定时间段后起闹。 鬧鐘類型 鬧鐘的類型:「定時鬧鐘」可指定於某個時間動作、「倒數計時器」可指定在某段時間之後動作。 /schemas/apps/alarm-clock/alarm/timestamp alarm-clock int 0 Alarm Timestamp The UNIX timestamp for the alarm. Must be set before the alarm is activated. طابع التنبه بصمة وقت التنبيه ليونكس.يجب تحديده قبل تغعيل المنبه. Marca de tiempu de l'alarma Marca de tiempu UNIX pa l'alarma. Tien de conseñase enantes d'activar l'alarma. Часовая адзнака сыгналу Часовая пазнака UNIX для будзільніка. Павінна быць усталявана да актывацыі будзільніка. Вмъкване на време UNIX формат на времето. Трябва да бъде зададен преди алармата да е задействана. Hora del despertador L'hora UNIX per l'alarma. Ha de ser posat abans que l'alarma s'activi. Alarmtidsstempel UNIX-tidsstempel for alarmen. Må indstilles før alarmen aktiveres. Alarm Zeitstempel Der Unix-Zeitstempel für den Alarm. Muss gesetzt sein, bevor dieser aktiviert ist. Marca de tiempo de la alarma La marca de tiempo UNIX para la alarma. Debe asignarse antes que la alarma sea activada. Hälytyksen aikaleima UNIX-aikaleima hälytykselle. Täytyy asettaa ennen hälytyksen alkamisajankohtaa. Vekjara tíðarstempul UNIX tíðastemplið fyri vekjaraklokkuna, má ásetast áðrenn vekjarin kann virkjast. Horodatage de l'alarme La répétition (horodatage) de l'alarme doit être configurée avant que l'alarme soit activée. Date e hora da alarma Marca de tempo de UNIX para a alarma. Debe ser definido antes de que a alarma sexa activada. Alarm Timestamp The UNIX timestamp for the alarm. Must be set before the alarm is activated. अलार्म के लिए UNIX टाइमस्टैम्प. अलार्म सक्रिय करने से पहले निर्धारित किया जाना चाहिए. Riasztás időbélyege UNIX időbélyeg a riasztáshoz. A riasztás aktiválása előtt be kell állítani. Penanda Waktu Alarm Penanda waktu UNIX bagi alarm. Mesti ditata sebelum alarm diaktifkan. アラームのタイムスタンプ アラームに使用する UNIX のタイムスタンプ。アラームをオンにする前に設定する必要があります。 მაღვიძარის დროის ანაბეჭდი UNIX დროის ანაბეჭდი მაღვიძარისათვის. უნდა იყოს მითითებული მაღვიძარის გააქტიურებამდე. Timestamp Penggera Timestamp UNIX untuk penggera. Mesti diset sebelum penggera diaktifkan. Alarmtidsstempel UNIX-tidsstempelet for alarmen. Må settes før alarmen aktiveres. Alarm timestamp De UNIX timestamp voor het alarm. Dit moet worden ingesteld voor het alarm is geactiveerd. Varslingstidsstempel UNIX-tidsstempel for varslinga. Må settast før varslinga er starta. Znaczniki Czasu Alarmu Znaczniki czasu UNIX dla alarmu. Muszą być ustawione przed aktywacją alarmu. Carimbo de Hora do Alarme O carimbo de tempo UNIX do alarme. Deve ser obrigatoriamente definido antes de se ativar o alarme. Временная отметка сигнала Временная отметка UNIX для будильника. Должна быть установлена до активации будильника. සම්මත සංඥාව සංඥාව සදහා යුනික්ස් සලකුණ.සංඥාව ක්‍රියාත්මක කිරීමට පෙර සැකසිය යුතුය. Tidsstämpel för alarm UNIX-tidsstämpeln för alarmet. Måste sättas innan alarmet aktiveras. Alarm Tarih bilgisi Alarm için UNIX tarih bilgisi. Alarm etkinleştirilmeden önce ayarlanmalıdır. Часова мітка сигналу Часова мітка UNIX для будильника. Має бути встановлена, щоб активувати будильник. 闹铃时间戳 闹钟的 UNIX 时间戳。必须在闹钟激活前设定。 鬧鐘時間戳記 鬧鐘的 UNIX 時間戳記,必須在鬧鐘啟動前就先設定。 /schemas/apps/alarm-clock/alarm/time alarm-clock int 0 Alarm Time The time for the alarm. Should be in GMT for "clock" alarms or length in seconds for "timer" alarms. وقت التبيه وقت التنبيه.يجب أن يكون بتوقيت غرينتش لتنبيهات "ساعة" أو بصيغة الثواني لتنبيهات "مؤقت". Hora d'alarma La hora de l'alarma. Tien de ser una hora GMT p'alarmes «de reló» o bien la duración en segundos p'alarmes «de temporizador». Час сыгналу Час для нагадваньня. Павінен быць у GMT для «пагадзінных» нагадваньняў ці ў сэкундах для таймера. Час на алармата Час на алармата. Трябва да бъде в GMT за алармите, тип "будилник" или в продължителност в секунди за "таймер". Hora de l'alarma Hora de l'alarma. Hauria d'esser en GMT per a alarmes "clock" o duradaen segons per a alarmes "timer". Čas budíku Alarmtid Tiden for alarmen. Skal være i GMT for "clock"-alarmer eller længde i sekunder for "timer"-alarmer. Alarm Zeit Die Uhrzeit des Alarms. Sollte bei Uhrzeit im GMT Format oder bei Dauer Alarmen in Sekunden sein. Hora de alarma Hora para la alarma. Debe ser una hora GMT para alarmas «reloj» o bien la duración en segundos para alarmas «temporizador». Herätysaika Vekjara tíðspunkt Heure de l'alarme L'heure de l'alarme doit être en GMT pour les alarmes "horaires" et en secondes pour les alarmes "minuteurs". Hora da alarma Hora para a alarma. Debe estar en GMT para alarmas «reloxo» ou o tempo en segundos para alarmas «temporizador» זמן ההתרעה The time for the alarm. Should be in GMT for "clock" alarms or length in seconds for "timer" alarms. अलार्म के लिए समय. "घड़ी" अलार्म के लिए GMT में अथवा "टाइमर" अलार्म के लिए सेकंड में होना चाहिए. Figyelmeztetés időpontja A riasztás ideje. "Ébresztőóra"-hoz az időt GMT-ben vagy "Időzítő"-nek a hosszat másodpercben kell megadni. Waktu Alarm Waktu bagi alarm. Mesti dalam GMT bagi alarm "jam" atau lama waktu dalam detik bagi alarm "pewaktu". アラームの時間 アラームの時間。時刻の時はGMT(UTC)、タイマーの時は時間を秒で指定。 მაღვიძარის დრო ჩართვის დრო. მიუთითეთ დრო GMT-ს მიხედვით "მაღვიძარისთვის", ან დრო წამებში "წამზომისთვის". Waktu Penggera Waktu untuk penggera. Hendaklah dalam GMT untuk penggera "jam" atau jangka masa panjang dalam saat untuk penggera "pemasa". Alarmtid Tiden for alarmen. Skal være i GMT for "clock"-alarmer eller lengde i sekunder for "timer"-alarmer. Alarmtijd De tijd voor het alarm. Dit moet GMT notatie zijn voor "klok" alarms of de lengte in seconden voor "timer" alarms. Varslingstid Tida for varslinga. Skal vere i GMT for "clock"-varslingar eller lengde i sekund for "timer"-varslingar. Czas alarmu Czas alarmu.Według czasu Greenwich dla alarmów zegarowych, długość w sekundach dla alarmów czasowych. Tempo do Alarme Hora do Alarme A hora para o alarme tocar. Deve ser informado em GMT para alarmes de relógio ou em segundos para alarmes regressivos. Время сигнала Время срабатывания. Укажите в GMT для будильника "по времени" или в секундах для таймера. සංඥා කාලය සංඥා සදහා කාලය.සම්මත කාලය ඔරලෝසු සංඥා හෝ කාල පරාසය අනුව කාලගණන සංඥාටද යෙදිය යුතුය. Alarmtid Alarm Zamanı Alarmın çalacağı zaman. "Zamanlayıcı" alarmlar için saniye mertebesinde, "Saat" alarmları için GMT olmalıdır. Час сигналу Час запуску будильника. Встановіть час доби для будильника або кількість хвилин для таймера. 闹铃时间 闹铃时间。“时钟”闹钟下应为 GMT 时间,“计时器”闹钟下应为秒长。 鬧鐘時間 鬧鐘的時間。「定時鬧鐘」用標準時間格式,「倒數計時器」用秒數。 /schemas/apps/alarm-clock/alarm/message alarm-clock string Alarm! Alarm Message A short message which describes the alarm. انذار رسالة التنبيه . رسالة قصيرة تصف التنبيه . ¡Alarma! Mensaxe d'alarma Mensaxe curtiu que describe l'alarma. Пад'ём! Паведамленьне будзільніка Кароткае паведамленьне, якое апісвае будзільнік. Аларма! Съобщение на алармата Кратко съобщение, което описва алармата. Despertador! Missatge del despertador Descripció breu de l'alarma Budík! Zpráva budíku Zpráva popisující alarm. Alarm! Alarmmeddelelse En kort meddelelse, der beskriver alarmen. Alarm! Alarm Nachricht Eine kurze Nachricht die den Alarm beschreibt. ¡Alarma! Mensaje de la alarma Una breve descripción de la alarma. Äratus Äratuse sõnum Herätys! Herätysviesti Lyhyt herätystä kuvaava syy. Vekjari! Vekjara fráboðan Eini stutt boð, ið greiåir frá vekjaranum. Alarme ! Message de l'alarme Description de l'alarme. Alarma! Mensaxe da alarma Unha mensaxe curta que describa a alarma Alarm! Alarm Message A short message which describes the alarm. अलार्म! Ébresztő! Figyelmeztető üzenet Egy rövid üzenet a riasztásról. Alarm! Pesan Alarm Pesan singkat yang mendeskripsikan alarm. アラーム アラームのメッセージ アラームのときに表示される短いメッセージ განგაში! მაღვიძარის შეტყობინება მაღვიძარის მოკლე აღწერა Penggera! Mesej Penggera Mesej ringkas menyatakan tentang penggera. Alarm! Alarmmelding En kort melding som beskriver alarmen. Alarm! Alarmbericht Een korte omschrijving van het alarm. Varsling! Varslingsmelding Ei kort melding som beskriv varslinga. Alarm! Wiadomość alarmu Krótka wiadomość opisująca alarm. Mensagem do Alarme Uma pequena mensagem que descreva o alarme. Alarme! Mensagem do Alarme Uma pequena mensagem descrevendo o alarme. Подъем! Сообщение будильника Краткое сообщение, описывающее будильник. සංඥාව! සංඥා පණිවිඩය කෙටි සංඥා පණිවිඩයක් Alarm! Alarm-meddelande En kort beskrivning av alarmet Alarm! Alarm iletisi Alarmı açıklayan kısa bir ileti. Увага! Повідомлення будильника Короткий опис будильника 闹铃 闹钟消息 描述闹钟的简短消息。 鬧鐘! 鬧鐘訊息 說明這個鬧鐘的簡短訊息。 /schemas/apps/alarm-clock/alarm/active alarm-clock bool false Alarm Running State Indicates whether the alarm has started. حالة تشغيل التنبيه التحقق ما إذا كان المنبه قد بدأ. Estáu de l'alarma Indica si comenzó l'alarma. Прастора запуска будзільніка Паказвае, ці было актывізавана нагадваньне. Текущо състояние на алармата Показва дали алармата е започнала. Estat de funcionament del despertador Indica si l'alarma ha començat. Alarmstatus Angiv om alarm er startet. Status des Alarms Zeigt ob der Alarm gestartet worden ist. Estado de la alarma Indica si la alarma ha comenzado. Ilmoittaa onko hälytys on alkanut. Vekjara koyrslustandir Ábending um vekjaraklokkan er byrja. Etat de l'alarme en cours d'exécution. Indique si l'alarme s'est déclenchée Estado da alarma Indica se a a alama comezou. Alarm Running State Indicates whether the alarm has started. बताता है कि क्या अलार्म शुरू हो गया है. Riasztás állapota Jelzi, hogy a riasztás aktív-e. Status Alarm Berjalan Terindikasi apakah alarm sudah mulai. アラーム状態 アラームが開始されているかの表示 მაღვიძარის მდგომარეობა აჩვენებს მაღვიძარა ჩართულია თუ არა. Keadaan Penggera Menandakan sama ada penggera telah bermula. Alarm kjørestatus Indikerer om alarmen har startet. Alarmstatus Geeft aan of het alarm is gestart. Varsling kjøyrestatus Indikerer om varslinga har starta. Stan Działania Alarmu Wskazuje, czy alarm został uruchomiony. Estado Actual do Alarme Indica se o alarme foi iniciado. Estado de Funcionamento do Alarme Indica se o alarme foi iniciado. Область запуска будильника Будильник включён සංඥා ක්‍රියාත්මක තත්වය සංඥාවේ ආරම්භය දැක්වීම හෝ Tillstånd: Alarmet körs Indikerar om alarmet har startat. Alarm Çalışma Durumu Alarmın başlayıp başlamadığını belirtir. Запускання будильника Будильник увімкнено 闹钟运行状态 用于指示闹钟是否启动。 鬧鐘執行狀態 顯示鬧鐘是否已啟動。 /schemas/apps/alarm-clock/alarm/repeat alarm-clock list string [] Alarm Repeat A list of days when the alarm should be repeated. This settings is only applicable for "clock" alarms. تكرار التنبيه . سرد الأيام التي يجب أن يتكرر فيها التنبيه.هذا الإعداد فاعل فقط لمنبهات "clock". Repetición d'alarma Llista de los díes que tien de repetise l'alarma. Estes preferencies s'apliquen namái pa les alarmes «del reló». Паўтор сыгналу Сьпіс дзен, калі трэба паўтараць нагадваньне. Налады ўжывальныя толькі для «пагадзінных» нагадваньняў. Повтаряне на алармата Списък с дните, в които трябва да се повтаря алармата. Настройката е приложима само към аларми тип "будилник". Repetició de l'alarma Llista de dies en què l'alarma s'hauria de repetir. Aquesta configuració només és aplicable per a "clock" alarmes. Opakování budíku Seznam dnů kdy se má alarm opakovat.Toto nastavení je pouze pro alarmy v režimu hodin. Gentagelse af alarm En liste over dage hvor alarmen skal gentages. Denne indstilling er kun gyldig for "clock" -alarmer. Alarm Wiederholung Eine Liste der Tage, an denen der Alarm wiederholt wird. Diese Einstellung ist nur für Alarme mit Uhrzeit. Repetición de la alarma Una lista de días en que la alarma debería repetirse. Esta configuración solo se aplica para las alarmas «reloj». Herätyksen toisto Lista päivistä, jolloin tulisi herättää. Tämä asetus pätee vain "kello"-tyyppisille herätyksille. Vekjara endurtøka Listi yvir dagar ið vekjaraklokkan skal endurtakast. Henda setanin er einans galdandi fyri vekjara tíðir. Répéter l'Alarme Liste des jours où l'alarme doit se déclencher. Ne s'applique qu'aux alarmes de type 'horaire'. Repetición da alarma Unha lista de dias nos que a alarma debe ser repetida. Estas comfiguracions son só aplicábeis para alarmas de «reloxo» חזרה על ההתרעה A list of days when the alarm should be repeated. This settings is only applicable for "clock" alarms. Figyelmeztetés ismétlése A napok listája amikor a riasztások ismétlődni fognak. Ez a beállítás csak az "ébresztőóra" riasztásokhoz érhető el. Ulangi Alarm Daftar hari ketika alarm mesti diulang. Tatanan ini hanya berlaku bagi alarm "jam". アラームのリピート間隔 მაღვიძარის გამეორება დღეების ჩამონათვალი, როცა განგაში გამეორდება. ეს პარამეტრი გამოყენებადია მხოლოდ "მაღვიძარისთვის". Penggera Diulang Senarai hari yang penggera perlu diulang. Keutamaan ini hanya boleh digunakan untuk penggera "jam". Alarmrepetering En liste av dager når alarmen skal repeteres. Denne innstillingen er kun gyldig for "clock"-alarmer. Herhaling van het alarm Een lijst met dagen dat het alarm herhaald moet worden. Deze instelling is alleen van toepassing op "klok" alarms. Varslingsgjentaking Ei liste over dagar kor varslinga skal gjentakast. Innstillinga er berre gjeldande for "clock" varslingar. Powtarzanie alarmu Lista dni w których alarm by się miał powtarzać. To ustawienie tylko dotyczy "zegarowych" alarmów. Repetição do Alarme Repetição do Alarme Uma lista de dias em que o alarme deve se repetir. Essa configuração somente se aplica a alarmes de relógio. Повтор будильника Повтор будильника по дням. Настройка только для будильников "по времени". සංඥා නැවත කිරිම දවස අනුව සංඥාව නැවත දැක්විය යුතුය. කට්ටල අංග යෙදිය හැකිවන්නේ ඔරලෝසුවට පමණි. Återupprepa alarm En lista på dagar när alarmet ska återupprepas. Denna inställning är endast tillgänglig för väckarklockor. Alarm tekrarı Alarmın tekrar edeceği günlerin listesi. Bu ayarlar sadece "saat" alarmlarına uygulanabilir. Повторювання Повторювання будильника у певні дні. Має сенс тільки для будильників (не таймерів) 循环闹铃 闹钟的重复列表。此设置仅应用于“时钟”闹钟。 鬧鐘週期 在哪幾天啟動鬧鐘的清單,只適用於「定時鬧鐘」。 /schemas/apps/alarm-clock/alarm/notify_type alarm-clock string sound Notification Type The type of notification to use when the alarm goes off. This can be one of the following: "sound" to play a sound (specified in the "sound_file" property.) "command" to run a command (specified in the "command" property.) نوع الاشعار نوع التنبيه المستخدم عند إيقاف المنبه.قد يكون شيئا مما يلي:"صوت" لتشغيل صوت (يحدد في خاصية "sound_file"."أكر" لتنفيذ أمر ما (يحدد في خاصية "command") Triba de notificación La triba de notificación a utilizar cuando s'activa l'alarma. Pue ser una de les darréu: «soníu» pa reproducir un soníu (conseñáu na propiedá «sound_file») «comandu» pa executar un comandu (conseñáu na propiedá «command») Тып апавяшчэньня Што рабіць падчас спрацоўваньня будзільніка? Абярыце адзін з варыянтаў: прайграць гук (пазначаецца ў парамэтры «гукавы файл») альбо выканаць каманду (пазначаецца ў парамэтры «каманда»). Вид на известието Вид известие, щом алармата се включи. Можете да избирате между просвирване на звук и изпълнение на команда. Tipus de notificació Tipus de notificació per fer servir quan l'alarma sona. Pot ésser un dels següents tipus: "sound" per reproduïr un so (especificat a la propietat "sound_file") "command" per executar un comandament (especificat a la propietat "command") Typ upozornění Varslingstype Meddelelsestypen som skal bruges når alarmen starter. Denne kan være en af følgende: "sound" for at afspille en lyd (specifiseret i "sound_file" indstillingen.) "command" for at køre en kommando (specifiseret i "command" indstillingen.) Benachrichtigungstyp Der Typ der Benachrichtigung wenn dieser ausgelöst wird. Dies kann einer der folgenden sein: "Ton" gibt einen Ton wieder ( festgelegt in der "Ton_Datei" Eigenschaft.) "Befehl" welcher einen Befehl ausführt ( festgelegt in der "Befehl" Eigenschaft.) Tipo de notificación Tipo de notificación a utilizar cuando se active la alarma. Puede ser una de las siguientes: "sound" para reproducir un sonido (especificado en la propiedad "sound_file") "command" para ejecutar un comando (especificado en la propiedad "command") Huomautuksen tyyppi Fráboðanar snið Type de notification Le type de notification à utiliser lorsque l'alarme se déclenche. Cela peut être l'un des types de notifications suivants : "son" pour lire un son (spécifié dans la propriété "sound_file"), "commande" pour exécuter une commande (spécifiée dans la propriété "commande") Tipo de notificación. Tipo de notificación para usar cando a alarma se apaga. Isto pode ser un dos seguintes: «son» para reproducir un son (especificado na propiedade «Ficheiro_de_son») «orde» para executar unha orde (especificado na propiedade «orde») Notification Type The type of notification to use when the alarm goes off. This can be one of the following: "sound" to play a sound (specified in the "sound_file" property.) "command" to run a command (specified in the "command" property.) अधिसूचना प्रकार अलार्म बजने पर अधिसूचना का प्रकार. यह निम्न में से एक हो सकता है: ध्वनि बजाने के लिए "ध्वनि" (ध्वनि फाइल मे निर्दिष्ट ). कमांड चलाने के लिए "कमांड" (कमांड में निर्दिष्ट) Figyelmeztetés típusa Figyelmeztetés típusa, amikor a riasztás elkezdődik. Ezek a következők lehetnek: "hang " valamilyen hang lejátszásához (paraméterezve a "sound_file"-ban.), "parancs" valamilyen parancs futtatásához (paraméterezve a "command"-ban) Jenis Pemberitahuan Tipe pemberitahuan yang dipakai ketika alarm terjadi. Ini bisa salah satu dari: "sound" (suara) untuk memainkan suatu suara (dinyatakan dalam properti "sound_file"), "command" (perintah) untuk menjalankan suatu perintah (dinyatakan dalam properti "command"). 通知の種類 アラームが起動したときの通知の種類。次のいずれか1つです: "sound" は "sound_file" プロパティで指定した音ファイルを再生します。 "command" は "command" プロパティで指定したコマンドを実行します。 შეტყობინების ტიპი მოქმედება მაღვიძარის ჩართვისას. აირჩიეთ ერთ-ერთი: ხმოვანი ფაილის დაკვრა (უნდა მიუთითოთ "sound_file" ), ან ბრძანების შესრულება (მიუთითებთ ველში "ბრძანება") Jenis Pemberitahuan Jenis notifikasi untuk digunakan bila penggera berbunyi. Ini boleh dilakukan dengan cara: "sound" untuk main bunyi (dinyatakan dalam properti "sound_file"). "command" untuk jalan perintah (dinyatakan dalam properti "command"). Varslingstype Notifiseringstypen som skal brukes når alarmen går av. Denne kan være en av følgende: "sound" for å spille en lyd (spesifisert i "sound_file" innstillingen.) "command" for å kjøre en kommando (spesifisert i "command" innstillingen.) Notificatie type Varslingstype Notifiseringstypen som skal nyttast når varslinga går av. Vel ein av disse: "sound" for å spille ein lyd (spesifisert i "sound_file"-innstillinga), "command" for å køyre ein kommando (spesifisert i "command"-innstillinga). Typ powiadomienia Typ powiadomienia po wyłączeniu alarmu. Tipo de notificação Tipo de Notificação Tipo de notificação a ser usado quando o alarme tocar. Pode ser um dos seguintes: "som" para tocar um som (especificado na propriedade "arquivo_de_som"), "comando" para executar uma instrução (especificada na propriedade "comando"). Тип оповещения Что делать при срабатывании будильника? Выберите один из вариантов: проиграть звук (указывается в настройке "звуковой_файл") или выполнить команду (указывается в настройке "команда"). නිවේදන වර්ගය නිවේදන වර්ගය අනුව සංඥාව පැමිණීම. Meddelandetyp Bildirim Türü Alarm çalıştığında kullanılacak bildirim yöntemi. Bir ses dosyası çalınacak ise "ses" ("sound_file" özelliğinde belirtildiği üzere), bir komut koşulacak ise "komut" ("komut" özelliğinde belirtildiği gibi) olabilir. Тип сповіщення Яким чином активувати будильник? Оберіть один з варіантів: відтворити звук (вказаний у параметрі "sound_file" звуковий файл) або виконати команду (вказану у параметрі "command") 通知类型 闹钟起闹时的通知类型。可以是下列之一:“响铃” 播放一个声音文件(在“声音文件”属性中指定。) “命令” 运行一个命令(在“命令”属性中指定。) 提醒方式 鬧鐘設定的時間到達時的提醒方式,可以是以下方式之一:「聲音」→播放聲音 (在「聲音檔案(_F)」處做設定)、「指令」→執行指令 (在「指令」處做設定) /schemas/apps/alarm-clock/alarm/sound_file alarm-clock string Sound File The sound file to play for the "sound" notification type. ملف الصوت نوع ملف الصوت المستخدم للتنبيه. Ficheru de soníu Soníu a reproducir pa la triba de notificación «soníu». Гукавы файл Гукавы файл для прайграваньня ў рэжыме «мелодыя» Аудио файл Звуков файл, който да бъде възпроизведен за типа известяване "звук". Arxiu de so Arxiu de so per reproduir pel tipus de "sound" de notificació. Zvukový soubor Lydfil Lydfilen som skal afspilles for en "sound"-varsling. Klangdatei Der Ton zur Wiedergabe bei Benachrichtigungstyp mit Ton. Archivo de sonido Sonido a reproducir en el tipo de notificación de "sonido". Helifail Äänitiedosto Ljóðfíla Fichier sonore Le fichier audio à jouer pour une notification de type "son". Ficheiro de son Ficheiro de son para reproducir no tipo de notificación «son» Sound File The sound file to play for the "sound" notification type. ध्वनि फ़ाइल "ध्वनि" अधिसूचना प्रकार के लिए ध्वनि फ़ाइल. Hangfájl Hang fájl beállítása a "hang" riasztás típushoz. Berkas Suara Berkas suara untuk dimainkan bagi tipe pemberitahuan "suara". アラーム音のファイル "sound" 通知のときに再生される音ファイル。 ხმოვანი ფაილი დასაკვრელი ხმოვანი ფაილი "ხმოვანი" შეტყობინებისათვის. Fail Bunyi Fail bunyi untuk main bagi jenis notifikasi "sound". Lydfil Lydfilen som skal spilles for "sound"-varsling. Geluidsbestand Het af te spelen geluidsbestand voor het "geluid" notificatie type. Lydfil Lydfilen som skal spelast for "sound"-varsling. Plik dźwiękowy Plik dźwiękowy dla powiadomienia dźwiękowego. Ficheiro de Som Arquivo de Som O arquivo de som a ser tocado quando o tipo de notificação for "Som". Звуковой файл Звуковой файл для проигрывания в режиме "звук". ශබ්ද ගොනුව ශබ්ද ගොනුව ශබ්ද නිවේදන වර්ගය ක්‍රියාත්මක කිරිමට Ljudfil Ses Dosyası "Ses" bildirimi için çalınacak ses dosyası. Звуковий файл Звуковий файл для відтворення у режимі «звук» 声音文件 “响铃”通知类型下要播放的声音文件。 聲音檔案 用於「聲音」提醒類型要播放的聲音檔案。 /schemas/apps/alarm-clock/alarm/sound_repeat alarm-clock bool true Repeat Sound Whether to repeat the alarm sound. تكرار الصوت سواء لإعادة تشغيل صوت التنبيه. Repetir soníu Si se tien de repetir el soníu d'alarma. Паўтор мелодыі Ці паўтараць мелодыю нагадваньня. Повторение на звука Дали да се повтаря звука на алармата. Repeteix el so. Repeticions de l'alarma sonora. Opakovat zvuk Jestli opakovat zvuk budíku. Gentag lyd Om alarmlyden skal gentages. Klang wiederholen Ob der Alarm Ton wiederholt werden soll. Repetir sonido Repetición del sonido de la alarma. Toista ääni Toistetaanko herätysääni. Endurtøku ljóð Um vekjaraljóðurin skal endurtakast. Répéter le Son Si il faut répéter le son de l'alarme. Repetir son Se se repite o son da alarma Repeat Sound Whether to repeat the alarm sound. ध्वनि दोहराएँ क्या अलार्म ध्वनि दोहराई जानी चाहिए ? Hang ismétlése Ismételje-e a riasztási hangot. Ulangi Suara Apakah akan mengulang suara alarm. リピートの音 アラーム音を連続再生するかどうか ხმის გამეორება მაღვიძარის ხმის გამეორება. Ulang Bunyi Sama ada untuk diulangi bunyi penggera. Repeter Lyd Om alarmlyden skal gjentas. Herhaal geluid Of het alarm herhaald moet worden. Gjenta lyd Om varslingslyden skal gjentakast. Powtarzanie dźwięku Powtarzaj alarm dźwiękowy Repetir Som Som de repetição Especificar se se deve repetir o som do alarme. Повтор сигнала Повторять звук будильника ශබ්ද නැවත කියවීම එක්කෝ සංඥා ශබ්දය නැවත කියවීම Upprepa ljud Om alarmljudet ska upprepas. Sesi Tekrarla Alarm sesinin tekrar edip etmeyeceği. Повторювати сигнал Повторювати звук будильника 重复响铃 是否要重复闹钟响铃。 重播聲音 是否重複播放聲音。 /schemas/apps/alarm-clock/alarm/command alarm-clock string rhythmbox-client --play Command The command to run for the "command" notification type. أمر نوع الامر المستخدم لتنفيذ نوع التنبيه. Comandu Comandu a executar pa la triba de notificación «comandu». Загад Загад для «загаднага» нагадваньня Команда Командата, която трябва да се изпълни за тип известяване "команда". Comanda El comandament per executar el tipus de "command" de notificació. Příkaz Kommando Kommandoen som skal køres for en "command"-varsling. Befehl Der auszuführende Befehl bei Benachrichtigungenstyp mit Befehl. Orden Orden para ejecutar en el tipo de notificación "orden". Käsklus Komento Boð Commande La commande à exécuter pour les alertes de type 'commande'. Orde Otde para executar polo tipo de notificación «orde» Command The command to run for the "command" notification type. निर्देश कमांड "कमांड" अधिसूचना प्रकार के को चलाने के लिए. Parancs Parancs szerkesztése a "parancs" riasztás típus futtatásához. Perintah Perintah yang dijalankan bagi tipe pemberitahuan "perintah". コマンド "command" 通知のときに実行されるコマンド。 ბრძანება შესასრულებელი ბრძანება "ბძანების" შეტყობინებისათვის. Arahan Perintah untuk jalan bagi jenis notifikasi "command" Kommando Kommandoen som skal kjøres for "command"-varsling. Actie De uit te voeren actie voor het "command" notificatie type. Kommando Kommandoen som skal kjøyrast for "command"-varsling. Polecenie Komenda dla powiadomienia typu "komenda". Comando Comando O comando a ser executado quando o tipo de notificação for "Comando". Команда Выполнить команду (если настроено выполнение команды) විධානය "විධානය" නිවේදන වර්ගය ක්‍රියාත්මක කිරිමට Kommando Komut "Komut" bildirim türü için çalıştırılacak komut. Команда Виконати команду (якщо налагоджено) 命令 “命令”通知类型下要运行的命令。 指令 用於「指令」提醒類型要執行的指令。 alarm-clock-0.4.1/po/000077500000000000000000000000001435672060600143305ustar00rootroot00000000000000alarm-clock-0.4.1/po/CMakeLists.txt000066400000000000000000000020301435672060600170630ustar00rootroot00000000000000# SPDX-License-Identifier: GPL-2.0-or-later set(POTFILE "alarm-clock-applet.pot") # Dummy target for LINGUAS to force regeneration add_custom_target(linguas DEPENDS "LINGUAS") file(STRINGS "LINGUAS" LINGUAS) list(FILTER LINGUAS EXCLUDE REGEX "^#") # FIXME: Remove when Ubuntu 18.04 goes EOL if(CMAKE_VERSION VERSION_LESS "3.12") set(POFILES "") foreach(PO IN LISTS LINGUAS) list(APPEND POFILES "${PO}.po") endforeach() set(LINGUAS "${POFILES}") else() list(TRANSFORM LINGUAS APPEND ".po") endif() gettext_create_translations("${POTFILE}" ALL "${LINGUAS}") # Add dep to LINGUAS add_dependencies(translations linguas) find_program(GETTEXT_XGETTEXT_EXECUTABLE xgettext) if(NOT GETTEXT_XGETTEXT_EXECUTABLE) message(FATAL_ERROR "xgettext not found") endif() add_custom_target("pot" COMMAND ${GETTEXT_XGETTEXT_EXECUTABLE} --from-code=UTF-8 --keyword=_ --add-comments -f po/POTFILES.in -o po/${POTFILE} DEPENDS "POTFILES.in" WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) alarm-clock-0.4.1/po/LINGUAS000066400000000000000000000002741435672060600153600ustar00rootroot00000000000000# keep this file sorted alphabetically, one language code per line ar ast be bg ca cs da de el es et fi fo fr gl he hi hu id it ja ka la ms nb nl nn pl pt_BR pt ru si sv tr uk zh_CN zh_TW alarm-clock-0.4.1/po/POTFILES.in000066400000000000000000000002351435672060600161050ustar00rootroot00000000000000data/alarm-clock-applet.desktop.in #data/alarm-clock.schemas.in data/alarm-clock.ui src/alarm-applet.c src/alarm-settings.c src/alarm.c src/ui.c src/prefs.c alarm-clock-0.4.1/po/POTFILES.skip000066400000000000000000000002441435672060600164450ustar00rootroot00000000000000data/mockups.ui src/alarms-list.c src/tests/test_alarm.c src/ui/alarm-clock.glade src/ui/edit-alarm.ui src/ui/list-alarms.ui src/ui/preferences.ui src/ui/status.ui alarm-clock-0.4.1/po/alarm-clock-applet.pot000066400000000000000000000123371435672060600205320ustar00rootroot00000000000000# 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" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "" #: data/alarm-clock-applet.desktop.in:5 msgid "alarm-clock" msgstr "" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "" #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "" #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "" #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "" #: data/alarm-clock.ui:1259 msgid "General" msgstr "" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "" #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "" #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "" alarm-clock-0.4.1/po/ar.po000066400000000000000000000251171435672060600153000ustar00rootroot00000000000000# Arabic translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2010-10-30 23:01+0000\n" "Last-Translator: Ahmed Mohammed \n" "Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "دقيقة واحدة" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "١٠ دقائق" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "٣ دقائق" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "٥ دقائق" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "حوْل %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "حول المنبه" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "ساعة منبهة" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "تفضيلات المنبه" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "المنبّهات" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "تنبيه" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "أ_مر:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "ﻻ يعمل" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "ﻻ يعمل '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "أمر مخصص..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "مخصّص..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "حذف" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "حذف المنبهات المختارة" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "تعديل المنبه" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "تعديل المنبهات المختارة" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "حرّر..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "مكّن" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "تفعيلظ/تعطيل المنبهات المختارة" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "يوميا" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "الجمعة" #: data/alarm-clock.ui:1259 msgid "General" msgstr "عام" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "استيقظ في الصباح !" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "إدارة تنبيهاتك" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "الإثنين" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "تنبيه جديد" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "جديد..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "مرة واحدة" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "تشغيل _الصوت" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "تكرار الص_وت" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "السبت" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "اخترِ ملف صوت..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "عرض المنبهات" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "قيلولة" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "منبه القلولة" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "كل منبهات القلولة" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "إغفال كل التنبيهات" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "قلولة لأجل :" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "إغفال التنبيه المحدد" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "بدا _التطبيق" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "بدء تلقائي عند التشغيل" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "إيقاف" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "إيقاف جميع التنبهات" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "إيقاف جميع التنبهات الفاعلة" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "إيقاف التنبه المختارة" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "الأحد" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "الخميس" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "المُؤقِت" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "الثلاثاء" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "استيقظ في الصباح" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "استيقظ أيها النائم!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "الأربعاء" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "أيام الأسبوع" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "عُطل نهاية الاسبوع" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "تستطيع إبقاف أو تعطيل المنبهات من قائمة ساعة التنبيه" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_الاسم:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_كرر :" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_تكرار: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_غفوة" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "الو_قت:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "ساعة منبهة" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "دقائق" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s يعمل,خروج...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "سرد الأيام التي يجب أن يتكرر فيها التنبيه.هذا الإعداد فاعل فقط لمنبهات " #~ "\"clock\"." #~ msgid "A short message which describes the alarm." #~ msgstr "رسالة قصيرة تصف التنبيه ." #~ msgid "Alarm Message" #~ msgstr "رسالة التنبيه ." #~ msgid "Alarm Repeat" #~ msgstr "تكرار التنبيه ." #~ msgid "Alarm Running State" #~ msgstr "حالة تشغيل التنبيه" #~ msgid "Alarm Time" #~ msgstr "وقت التبيه" #~ msgid "Alarm Timestamp" #~ msgstr "طابع التنبه" #~ msgid "Alarm Type" #~ msgstr "نوع التنبيه" #~ msgid "Alarm!" #~ msgstr "انذار" #~ msgid "Command" #~ msgstr "أمر" #~ msgid "Delete alarm" #~ msgstr "حذف المنبه" #~ msgid "Enable/disable" #~ msgstr "تفعيل/تعطيل" #~ msgid "Enable/disable alarm" #~ msgstr "تفعيل /تعطيل المنبه" #~ msgid "Indicates whether the alarm has started." #~ msgstr "التحقق ما إذا كان المنبه قد بدأ." #~ msgid "New" #~ msgstr "جديد" #~ msgid "Notification Type" #~ msgstr "نوع الاشعار" #~ msgid "Quit Alarm Clock" #~ msgstr "انهاء المنبه" #~ msgid "Repeat Sound" #~ msgstr "تكرار الصوت" #~ msgid "Snooze alarms" #~ msgstr "منبهات القلولة" #~ msgid "Sound File" #~ msgstr "ملف الصوت" #~ msgid "Stop alarm" #~ msgstr "إيقاف التنبه" #~ msgid "Stop alarms" #~ msgstr "إيقاف التنبهات" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "بصمة وقت التنبيه ليونكس.يجب تحديده قبل تغعيل المنبه." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "نوع الامر المستخدم لتنفيذ نوع التنبيه." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "نوع ملف الصوت المستخدم للتنبيه." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "وقت التنبيه.يجب أن يكون بتوقيت غرينتش لتنبيهات \"ساعة\" أو بصيغة الثواني " #~ "لتنبيهات \"مؤقت\"." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "نوع التنبيه المستخدم عند إيقاف المنبه.قد يكون شيئا مما يلي:\"صوت\" لتشغيل " #~ "صوت (يحدد في خاصية \"sound_file\".\"أكر\" لتنفيذ أمر ما (يحدد في خاصية " #~ "\"command\")" #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "نوع التنبيه.إما \"ساعة\" للتنبيه في وقت محدد من اليوم,أو \"مؤقت\" للتنبيه " #~ "بعد فترة محددة من الزمن." #~ msgid "Toggle alarms" #~ msgstr "تبديل التنبيهات" #~ msgid "Toggle alarms window" #~ msgstr "تبديل نافذة التنبيهات" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "تغيير درجة وضوح نافذة التنبيهات" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "سواء لإعادة تشغيل صوت التنبيه." #~ msgid "_Preferences" #~ msgstr "_تفضيلات" #~ msgid "_Quit" #~ msgstr "_خروج" alarm-clock-0.4.1/po/ast.po000066400000000000000000000245171435672060600154700ustar00rootroot00000000000000# Asturian translation for alarm-clock # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2011-01-28 01:38+0000\n" "Last-Translator: Xuacu Saturio \n" "Language-Team: Asturian \n" "Language: ast\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 minutu" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 minutos" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 minutos" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 minutos" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Tocante a %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Tocante a Despertador" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Despertador" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Preferencies de Despertador" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Alarmes" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Alerta" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "Aspeutu" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "Co_mandu:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "Nun se pue reproducir" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "Nun se pue reproducir '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Comandu personalizáu..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Personalizáu..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Desaniciar" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Desaniciar l'alarma seleicionada" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Editar alarma" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Editar l'alarma seleicionada" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Editar..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Activar" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Activar/desactivar l'alarma seleicionada" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Cada día" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Vie" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Xeneral" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "¡Despierta de mañana!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Xestiona les alarmes" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Llu" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Alarma nueva" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Nuevu..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Una vegada" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "Reproducir _soníu" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Repe_tir soníu" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Sáb" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Seleiciona un ficheru de soníu…" #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Ver _alarmes" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "Amosar etiqueta de cuenta atrás" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Apostalgar" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Alarma apostalgada" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Apostalgar toles alarmes" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Apostalgar toles alarmes que suenen" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Apostalgar por:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "Apostalgar l'alarma seleicionada" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Aniciar _aplicación" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Aniciar automáticamente al coneutar" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Parar" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Parar toles alarmes" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Parar toles alarmes que suenen" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Parar l'alarma seleicionada" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Dom" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Xue" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Temporizador" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Mar" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Despertase pola mañana" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "¡Despierta, apigazáu!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Mié" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Díes llaborables" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Fines de selmana" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "Puedes apostalgar o aparar les alarmes dende'l menú de Despertador." #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Nome:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Repetir:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Repetir: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "Apo_stalgar" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Hora:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Despertador" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "minutos" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s ta n'execución, colando...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Llista de los díes que tien de repetise l'alarma. Estes preferencies " #~ "s'apliquen namái pa les alarmes «del reló»." #~ msgid "A short message which describes the alarm." #~ msgstr "Mensaxe curtiu que describe l'alarma." #~ msgid "Alarm Message" #~ msgstr "Mensaxe d'alarma" #~ msgid "Alarm Repeat" #~ msgstr "Repetición d'alarma" #~ msgid "Alarm Running State" #~ msgstr "Estáu de l'alarma" #~ msgid "Alarm Time" #~ msgstr "Hora d'alarma" #~ msgid "Alarm Timestamp" #~ msgstr "Marca de tiempu de l'alarma" #~ msgid "Alarm Type" #~ msgstr "Triba d'alarma" #~ msgid "Alarm!" #~ msgstr "¡Alarma!" #~ msgid "Command" #~ msgstr "Comandu" #~ msgid "Delete alarm" #~ msgstr "Desaniciar alarma" #~ msgid "Enable/disable" #~ msgstr "Activar/desactivar" #~ msgid "Enable/disable alarm" #~ msgstr "Activar/desactivar alarma" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Indica si comenzó l'alarma." #~ msgid "New" #~ msgstr "Nueva" #~ msgid "Notification Type" #~ msgstr "Triba de notificación" #~ msgid "Quit Alarm Clock" #~ msgstr "Colar de Despertador" #~ msgid "Repeat Sound" #~ msgstr "Repetir soníu" #~ msgid "Requires application indicators" #~ msgstr "Requier indicadores d'aplicación" #~ msgid "Snooze alarms" #~ msgstr "Alarmes apostalgaes" #~ msgid "Sound File" #~ msgstr "Ficheru de soníu" #~ msgid "Stop alarm" #~ msgstr "Parar l'alarma" #~ msgid "Stop alarms" #~ msgstr "Parar les alarmes" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "Marca de tiempu UNIX pa l'alarma. Tien de conseñase enantes d'activar " #~ "l'alarma." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "Comandu a executar pa la triba de notificación «comandu»." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "Soníu a reproducir pa la triba de notificación «soníu»." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "La hora de l'alarma. Tien de ser una hora GMT p'alarmes «de reló» o bien " #~ "la duración en segundos p'alarmes «de temporizador»." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "La triba de notificación a utilizar cuando s'activa l'alarma. Pue ser una " #~ "de les darréu: «soníu» pa reproducir un soníu (conseñáu na propiedá " #~ "«sound_file») «comandu» pa executar un comandu (conseñáu na propiedá " #~ "«command»)" #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Triba d'alarma. O «reló» pa una alarma a determinada hora del día, o " #~ "«temporizador» pa una alarma en pasando un periodu de tiempu." #~ msgid "Toggle alarms" #~ msgstr "Conmutar les alarmes" #~ msgid "Toggle alarms window" #~ msgstr "Conmutar la pantalla d'alarmes" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Conmutar la visibilidá de la pantalla d'alarmes" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Si se tien de repetir el soníu d'alarma." #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "" #~ "Si se tien d'amosar una etiqueta a mandrecha del iconu col tiempu que " #~ "falta pa la siguiente alarma." #~ msgid "_Preferences" #~ msgstr "_Preferencies" #~ msgid "_Quit" #~ msgstr "_Colar" alarm-clock-0.4.1/po/be.po000066400000000000000000000271661435672060600152720ustar00rootroot00000000000000# Belarusian translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2010-06-13 18:30+0000\n" "Last-Translator: Mikola Tsekhan \n" "Language-Team: Belarusian \n" "Language: be\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 хвіліна" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 хвілін" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 хвіліны" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 хвілін" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Пра %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Пра Будзільнік" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Будзільнік" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Перавагі будзільніка" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Сыгналы" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Апавяшчэньне" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "_Загад:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "Немагчыма прайграць" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "Немагчыма прайграць «%s»: %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Іншы загад..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Іншае..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Выдаліць" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Выдаліць вылучаны напамін" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Зьмяніць напамін" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Зьмяніць вылучаны напамін" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Рэдагаваць…" #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Уключыць" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Уключыць/выключыць вылучаны напамін" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Штодзень" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Пт" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Агульнае" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Падыміцеся раніцай!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Кіраваць Вашымі нагадваньнямі" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Пан" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Новы напамін" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Новае…" #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Аднаразова" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "Граць _музыку" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Паўта_раць гук" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Суб" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Абярыце мелодыю..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Паказаць нагадваньні" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Пазьней" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Адкласьці нагадваньне" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Адкласьці ўсе нагадваньні" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Адкласьці ўсе нагадваньні, якія зьвіняць" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Адтэрміноўка для:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "Адкласьці вылучаныя нагадваньні" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Запусьціць _дастасаваньне" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Запускаць аўтаматычна пры ўключэньні" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Спыніць" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Спыніць усе нагадваньні" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Спыніць усе нагадваньні, якія зьвіняць" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Спыніць вылучаныя нагадваньні" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Няд" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Чцв" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Таймер" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Аўт" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Абудзіць мяне ранкам" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Прачнісь, сонная галава!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Сер" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Працоўныя дні" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Выходныя" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "Вы можаце адтэрмінаваць або спыніць нагадваньні з мэню Будзільніка" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Назва:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Паўтарыць:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Паўтор: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "Ад_класьці" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Час:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Будзільнік" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "хвіліны" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s ужо запушчаны, выхад...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Сьпіс дзен, калі трэба паўтараць нагадваньне. Налады ўжывальныя толькі " #~ "для «пагадзінных» нагадваньняў." #~ msgid "A short message which describes the alarm." #~ msgstr "Кароткае паведамленьне, якое апісвае будзільнік." #~ msgid "Alarm Message" #~ msgstr "Паведамленьне будзільніка" #~ msgid "Alarm Repeat" #~ msgstr "Паўтор сыгналу" #~ msgid "Alarm Running State" #~ msgstr "Прастора запуска будзільніка" #~ msgid "Alarm Time" #~ msgstr "Час сыгналу" #~ msgid "Alarm Timestamp" #~ msgstr "Часовая адзнака сыгналу" #~ msgid "Alarm Type" #~ msgstr "Тып нагадваньня" #~ msgid "Alarm!" #~ msgstr "Пад'ём!" #~ msgid "Command" #~ msgstr "Загад" #~ msgid "Delete alarm" #~ msgstr "Выдаліць напамін" #~ msgid "Enable/disable" #~ msgstr "Уключыць/выключыць" #~ msgid "Enable/disable alarm" #~ msgstr "Уключыць/выключыць напамін" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Паказвае, ці было актывізавана нагадваньне." #~ msgid "New" #~ msgstr "Новы" #~ msgid "Notification Type" #~ msgstr "Тып апавяшчэньня" #~ msgid "Quit Alarm Clock" #~ msgstr "Выйсьці" #~ msgid "Repeat Sound" #~ msgstr "Паўтор мелодыі" #~ msgid "Snooze alarms" #~ msgstr "Адкласьці нагадваньні" #~ msgid "Sound File" #~ msgstr "Гукавы файл" #~ msgid "Stop alarm" #~ msgstr "Спыніць нагадваньне" #~ msgid "Stop alarms" #~ msgstr "Спыніць нагадваньні" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "Часовая пазнака UNIX для будзільніка. Павінна быць усталявана да " #~ "актывацыі будзільніка." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "Загад для «загаднага» нагадваньня" #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "Гукавы файл для прайграваньня ў рэжыме «мелодыя»" #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "Час для нагадваньня. Павінен быць у GMT для «пагадзінных» нагадваньняў ці " #~ "ў сэкундах для таймера." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "Што рабіць падчас спрацоўваньня будзільніка? Абярыце адзін з варыянтаў: " #~ "прайграць гук (пазначаецца ў парамэтры «гукавы файл») альбо выканаць " #~ "каманду (пазначаецца ў парамэтры «каманда»)." #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Тып будзільніка. «Гадзіньнік» — у вызначаны час дня альбо «тамер» — па " #~ "сканчэньні вызначанага пэрыяда." #~ msgid "Toggle alarms" #~ msgstr "Пераключыць будзільнікі" #~ msgid "Toggle alarms window" #~ msgstr "Пераключыць вакно нагадваньняў" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Пераключыць бачнасьць вакна нагадваньняў" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Ці паўтараць мелодыю нагадваньня." #~ msgid "_Preferences" #~ msgstr "_Перавагі" #~ msgid "_Quit" #~ msgstr "_Выйсьці" alarm-clock-0.4.1/po/bg.po000066400000000000000000000304661435672060600152710ustar00rootroot00000000000000# Bulgarian translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2011-09-03 18:14+0000\n" "Last-Translator: Ivaylo Bozhurin \n" "Language-Team: Svetoslav Stefanov \n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" "X-Poedit-Country: BULGARIA\n" "X-Poedit-Language: Bulgarian\n" "X-Poedit-SourceCharset: utf-8\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 минута" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 минути" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 минути" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 минути" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Относно %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Относно Alarm Clock" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Будилник" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Настройки на будилника" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Аларми" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Внимание" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "Облик" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "Ко_манда:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "Не може да се възпроизведе" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "Не може да се възпроизведе '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Потребителска команда..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Потребителски..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Изтриване" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Изтриване на избраната аларма" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Редактиране на аларма" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Редактиране на избраната аларма" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Редактиране..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Включване" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Включване/изключване на избраната аларма" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Всеки ден" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Пет" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Общи" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Събудете се на сутринта!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Управление на алармите" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Пон" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Нова аларма" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Нова..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Веднъж" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "Възпроизвеждане на _звук" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Повторение на _звука" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Съб" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Избор на звуков файл…" #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Показване на _аларми" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "Показване на отброяване" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Отлагане" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Отлагане на алармата" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Отлагане на всички аларми" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Отлагане на всички свирещи аларми" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Отлагане за:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "Отлагане на избраната аларма" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Пускане на _приложение" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Автоматично пускане при вход" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Спиране" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Спиране на всички аларми" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Спиране на всички свирещи аларми" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Спиране на текущата аларма" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Нед" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Четв" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Таймер" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Вто" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Събудете се сутринта" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Събуди се, поспаланко!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Сря" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Делнични дни" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "В събота и неделя" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "Можете да отлагате или спирате аларми от менюто на будилника" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Име:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Повторение:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Повторение: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_Отлагане" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Час:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Будилник" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "минути" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s вече се изпълнява, изход...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Списък с дните, в които трябва да се повтаря алармата. Настройката е " #~ "приложима само към аларми тип \"будилник\"." #~ msgid "A short message which describes the alarm." #~ msgstr "Кратко съобщение, което описва алармата." #~ msgid "Alarm Message" #~ msgstr "Съобщение на алармата" #~ msgid "Alarm Repeat" #~ msgstr "Повтаряне на алармата" #~ msgid "Alarm Running State" #~ msgstr "Текущо състояние на алармата" #~ msgid "Alarm Time" #~ msgstr "Час на алармата" #~ msgid "Alarm Timestamp" #~ msgstr "Вмъкване на време" #~ msgid "Alarm Type" #~ msgstr "Тип на алармата" #~ msgid "Alarm!" #~ msgstr "Аларма!" #~ msgid "Command" #~ msgstr "Команда" #~ msgid "Delete alarm" #~ msgstr "Изтриване на аларма" #~ msgid "Enable/disable" #~ msgstr "Включване/изключване" #~ msgid "Enable/disable alarm" #~ msgstr "Включване/изключване на алармата" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Показва дали алармата е започнала." #~ msgid "New" #~ msgstr "Нова" #~ msgid "Notification Type" #~ msgstr "Вид на известието" #~ msgid "Quit Alarm Clock" #~ msgstr "Изход" #~ msgid "Repeat Sound" #~ msgstr "Повторение на звука" #~ msgid "Requires application indicators" #~ msgstr "Изисква индикатори на приложения" #~ msgid "Snooze alarms" #~ msgstr "Отлагане на аларми" #~ msgid "Sound File" #~ msgstr "Аудио файл" #~ msgid "Stop alarm" #~ msgstr "Спиране на алармата" #~ msgid "Stop alarms" #~ msgstr "Спиране на алармите" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "UNIX формат на времето. Трябва да бъде зададен преди алармата да е " #~ "задействана." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "" #~ "Командата, която трябва да се изпълни за тип известяване \"команда\"." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "" #~ "Звуков файл, който да бъде възпроизведен за типа известяване \"звук\"." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "Час на алармата. Трябва да бъде в GMT за алармите, тип \"будилник\" или в " #~ "продължителност в секунди за \"таймер\"." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "Вид известие, щом алармата се включи. Можете да избирате между " #~ "просвирване на звук и изпълнение на команда." #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Вид на алармата. Може да бъде \"будилник\" за аларма в определено време " #~ "на деня или \"таймер\" за аларма след определен период от време." #~ msgid "Toggle alarms" #~ msgstr "Превключване на алармите" #~ msgid "Toggle alarms window" #~ msgstr "Показване/скриване на прозореца на алармите" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Превключване на видимостта на прозореца на алармите" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Дали да се повтаря звука на алармата." #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "" #~ "Дали да се показва надпис от дясната страна на иконата с оставащо време " #~ "до следващата аларма." #~ msgid "_Preferences" #~ msgstr "_Предпочитания" #~ msgid "_Quit" #~ msgstr "_Изход" alarm-clock-0.4.1/po/ca.po000066400000000000000000000237421435672060600152630ustar00rootroot00000000000000# Catalan translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2010-10-26 11:24+0000\n" "Last-Translator: I. De Marchi \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 mnut" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 minuts" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 minuts" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 minuts" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Quant a %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Quant a Despertador" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Despertador" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Preferències del despertador" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Alarmes" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Alerta" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "Co_mand" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "No és possible la reproducció" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "No és possible reproduir '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Comanda personalitzada..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Personalitza..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Suprimeix" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Suprimeix les alarmes seleccionades" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Edita l'alarma" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Edita l'alarma seleccionada" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Edita..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Activat" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Activa/Desactiva les alarmes seleccionades" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Cada dia" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Dv." #: data/alarm-clock.ui:1259 msgid "General" msgstr "General" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Aixequi's al matí!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Gestioni les seves alarmes" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Dl." #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Nova alarma" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Nou..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Una vegada" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "Reprodueix _so" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Repetie_x so" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Ds." #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Arxiu de so seleccionat..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Mostra _alarmes" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "En espera" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Alarma en espera" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "En espera totes les alarmes" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "En espera totes les alarmes amb senyal sonora" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "En espera per a:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "En espera les alarmes seleccionades" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Inicia l'_aplicació" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Inici automàtic en validar-se" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Atura" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Atura totes les alarmes" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Atura totes les alarmes sonores" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Atura les alarmes seleccionades" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Dg." #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Dj." #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Hora" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Dt." #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Desperti's al matí" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Desperta't!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Dm." #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Dies feiners" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Caps de setmana" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "Podeu posar en espera o aturar les alarmes des del menú Despertador." #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Nom:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Repeteix:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Repeteix: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_En espera" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Hora:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Despertador" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "minuts" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s encara està executant-se, tancant...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Llista de dies en què l'alarma s'hauria de repetir. Aquesta configuració " #~ "només és aplicable per a \"clock\" alarmes." #~ msgid "A short message which describes the alarm." #~ msgstr "Descripció breu de l'alarma" #~ msgid "Alarm Message" #~ msgstr "Missatge del despertador" #~ msgid "Alarm Repeat" #~ msgstr "Repetició de l'alarma" #~ msgid "Alarm Running State" #~ msgstr "Estat de funcionament del despertador" #~ msgid "Alarm Time" #~ msgstr "Hora de l'alarma" #~ msgid "Alarm Timestamp" #~ msgstr "Hora del despertador" #~ msgid "Alarm Type" #~ msgstr "Tipus d'alarma" #~ msgid "Alarm!" #~ msgstr "Despertador!" #~ msgid "Command" #~ msgstr "Comanda" #~ msgid "Delete alarm" #~ msgstr "Suprimeix l'alarma" #~ msgid "Enable/disable" #~ msgstr "Activa/Desactiva" #~ msgid "Enable/disable alarm" #~ msgstr "Activa/Desactiva alarma" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Indica si l'alarma ha començat." #~ msgid "New" #~ msgstr "Nova" #~ msgid "Notification Type" #~ msgstr "Tipus de notificació" #~ msgid "Quit Alarm Clock" #~ msgstr "Tanca Despertador" #~ msgid "Repeat Sound" #~ msgstr "Repeteix el so." #~ msgid "Snooze alarms" #~ msgstr "Alarmes en espera" #~ msgid "Sound File" #~ msgstr "Arxiu de so" #~ msgid "Stop alarm" #~ msgstr "Atura l'alarma" #~ msgid "Stop alarms" #~ msgstr "Atura les alarmes" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "L'hora UNIX per l'alarma. Ha de ser posat abans que l'alarma s'activi." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "" #~ "El comandament per executar el tipus de \"command\" de notificació." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "Arxiu de so per reproduir pel tipus de \"sound\" de notificació." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "Hora de l'alarma. Hauria d'esser en GMT per a alarmes \"clock\" o " #~ "duradaen segons per a alarmes \"timer\"." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "Tipus de notificació per fer servir quan l'alarma sona. Pot ésser un dels " #~ "següents tipus: \"sound\" per reproduïr un so (especificat a la propietat " #~ "\"sound_file\") \"command\" per executar un comandament (especificat a la " #~ "propietat \"command\")" #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Tipus d'alarma. Qualsevol \"clock\" per una alarma per una hora " #~ "específica del dia, o \"timer\" per a una alarma transcorregut un " #~ "període de temps determinat." #~ msgid "Toggle alarms" #~ msgstr "Activa les alarmes" #~ msgid "Toggle alarms window" #~ msgstr "Activa la pantalla d'alarmes" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Canviar la visibilitat de la pantalla d'alarmes" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Repeticions de l'alarma sonora." #~ msgid "_Preferences" #~ msgstr "_Preferències" #~ msgid "_Quit" #~ msgstr "_Tanca" alarm-clock-0.4.1/po/cs.po000066400000000000000000000146061435672060600153040ustar00rootroot00000000000000# Czech translation for alarm-clock # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2011-08-31 09:13+0000\n" "Last-Translator: Kuvaly [LCT] \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 minuta" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 minut" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 minuty" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 minut" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Budík" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Nastavení budíku" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Budíky" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Výstraha" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "" #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Vlastní..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Odstranit" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Smazat vybraný budík" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Upravit budík" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "" #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "" #: data/alarm-clock.ui:1259 msgid "General" msgstr "" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "" #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "" #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Ranní buzení" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Budík" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Seznam dnů kdy se má alarm opakovat.Toto nastavení je pouze pro alarmy v " #~ "režimu hodin." #~ msgid "A short message which describes the alarm." #~ msgstr "Zpráva popisující alarm." #~ msgid "Alarm Message" #~ msgstr "Zpráva budíku" #~ msgid "Alarm Repeat" #~ msgstr "Opakování budíku" #~ msgid "Alarm Time" #~ msgstr "Čas budíku" #~ msgid "Alarm Type" #~ msgstr "Typ budíku" #~ msgid "Alarm!" #~ msgstr "Budík!" #~ msgid "Command" #~ msgstr "Příkaz" #~ msgid "Delete alarm" #~ msgstr "Smazat budík" #~ msgid "Notification Type" #~ msgstr "Typ upozornění" #~ msgid "Repeat Sound" #~ msgstr "Opakovat zvuk" #~ msgid "Sound File" #~ msgstr "Zvukový soubor" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Jestli opakovat zvuk budíku." alarm-clock-0.4.1/po/da.po000066400000000000000000000231261435672060600152600ustar00rootroot00000000000000# Danish translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2010-03-16 18:19+0000\n" "Last-Translator: Johannes H. Jensen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 minut" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 minutter" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 minutter" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 minutter" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Om %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Om væggeuret" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Vækkeur" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Indstilling for væggeuret" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Alarmer" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Advarsel" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "Ko_mmando:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "Kunne ikke afspille" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "Kunne ikke afspille '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Brugerdefineret kommando..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Brugerdefineret..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Slet" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Slet den valgte alarm" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Rediger alarm" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Rediger den valgte alarm" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Rediger..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Aktiver" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Aktiver/deaktiver den valgte alarm" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Hver dag" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Fre" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Generel" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Stå op om morgenen!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Administrer dine alarmer" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Man" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Ny alarm" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Ny..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Én gang" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "Af_spil lyd" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Gen_tag lyd" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Lør" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Vælg lydfil..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Vis _alarmer" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Snooze" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Snooze alarm" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Snooze alle alarmer" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Snooze alle bippene alarmer" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Snooze for:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "Snooze den valgte alarm" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Start _applikation" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Start automatisk ved log på" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Stop" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Stop alle alarmer" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Stop alle bippende alarmer" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Stop den valgte alarm" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Søn" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Tor" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Stopur" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Tir" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Vågn om morgenen" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Vågn op dit dovendyr!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Ons" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Ugedage" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Weekender" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "Du kan snooze eller stoppe alarmer fra the væggeurs-menuen." #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Navn:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Gentag:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Gentag: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_Snooze" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Tid:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Vækkeur" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "minutter" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s kører allerede, afslutter...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "En liste over dage hvor alarmen skal gentages. Denne indstilling er kun " #~ "gyldig for \"clock\" -alarmer." #~ msgid "A short message which describes the alarm." #~ msgstr "En kort meddelelse, der beskriver alarmen." #~ msgid "Alarm Message" #~ msgstr "Alarmmeddelelse" #~ msgid "Alarm Repeat" #~ msgstr "Gentagelse af alarm" #~ msgid "Alarm Running State" #~ msgstr "Alarmstatus" #~ msgid "Alarm Time" #~ msgstr "Alarmtid" #~ msgid "Alarm Timestamp" #~ msgstr "Alarmtidsstempel" #~ msgid "Alarm Type" #~ msgstr "Alarmtype" #~ msgid "Alarm!" #~ msgstr "Alarm!" #~ msgid "Command" #~ msgstr "Kommando" #~ msgid "Delete alarm" #~ msgstr "Slet alarm" #~ msgid "Enable/disable" #~ msgstr "Aktiver/deaktiver" #~ msgid "Enable/disable alarm" #~ msgstr "Aktiver/deaktiver alarm" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Angiv om alarm er startet." #~ msgid "New" #~ msgstr "Ny" #~ msgid "Notification Type" #~ msgstr "Varslingstype" #~ msgid "Quit Alarm Clock" #~ msgstr "Luk væggeur" #~ msgid "Repeat Sound" #~ msgstr "Gentag lyd" #~ msgid "Snooze alarms" #~ msgstr "Snooze alarmer" #~ msgid "Sound File" #~ msgstr "Lydfil" #~ msgid "Stop alarm" #~ msgstr "Stop alarm" #~ msgid "Stop alarms" #~ msgstr "Stop alarmer" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "UNIX-tidsstempel for alarmen. Må indstilles før alarmen aktiveres." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "Kommandoen som skal køres for en \"command\"-varsling." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "Lydfilen som skal afspilles for en \"sound\"-varsling." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "Tiden for alarmen. Skal være i GMT for \"clock\"-alarmer eller længde i " #~ "sekunder for \"timer\"-alarmer." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "Meddelelsestypen som skal bruges når alarmen starter. Denne kan være en " #~ "af følgende: \"sound\" for at afspille en lyd (specifiseret i \"sound_file" #~ "\" indstillingen.) \"command\" for at køre en kommando (specifiseret i " #~ "\"command\" indstillingen.)" #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Alarmtypen. Enten \"clock\" for en alarm på et angivet tidspunkt på " #~ "dagen, eller \"timer\" for en alarm efter en angivet tidsperiode." #~ msgid "Toggle alarms" #~ msgstr "Toggle alarmer" #~ msgid "Toggle alarms window" #~ msgstr "Toggle alarmvinduet" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Toggle visning af alarmvinduet" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Om alarmlyden skal gentages." #~ msgid "_Preferences" #~ msgstr "_Præferencer" #~ msgid "_Quit" #~ msgstr "_Luk" alarm-clock-0.4.1/po/de.po000066400000000000000000000244261435672060600152700ustar00rootroot00000000000000# German translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2022-11-23 19:37+0200\n" "Last-Translator: cmdrhenner \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Poedit 2.3\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 Minute" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 Minuten" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 Minuten" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 Minuten" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Über %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Über Alarm Clock" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Wecker" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Alarm Clock-Einstellungen" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Alarme" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Alarm" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "Darstellung" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "Be_fehl:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "Konnte nicht wiedergeben" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "Konnte »%s« nicht wiedergeben: %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Benutzerdefinierter Befehl ..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Benutzerdefiniert ..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Löschen" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Löscht den Ausgewählten Alarm" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Alarm bearbeiten" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Den ausgewählten Alarm bearbeiten" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Bearbeiten ..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Einschalten" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Ausgewählten Alarm ein-/ausschalten" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Täglich" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Fr" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Allgemein" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Aufstehen am Morgen!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Verwalten Sie Ihre Alarme" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Mo" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Neuer Alarm" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Neu ..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Einmalig" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "_Klang wiedergeben" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Ton _wiederholen" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Sa" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Tondatei wählen ..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Zeige Al_arme" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "Zeige Countdown Anzeige an" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Schlummern" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Schlummere Alarm" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Schlummere alle Alarme" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Schlummere alle klingelnde Alarme" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Schlummern für:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "Schlummern für den ausgewählten Alarm" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "_Anwendung starten" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Automatisch beim Anmelden starten" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Stop" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Alle Alarme stoppen" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Alle klingelden Alarme stoppen" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Stoppe den ausgewählten Alarm" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "So" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Do" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Timer" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Di" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Morgens aufwecken" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Aufstehen, Schlafmütze!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Mi" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Wochentags" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "An Wochenenden" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "" "Sie können Alarme aus dem Alarm Clock-Menü heraus schlummern oder stoppen " "lassen." #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Name:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "Wiede_rholung:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "Wiede_rholung: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_Schlummern" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Uhrzeit:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Wecker" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "Minuten" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s wird bereits ausgeführt, beenden …\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Eine Liste der Tage, an denen der Alarm wiederholt wird. Diese " #~ "Einstellung ist nur für Alarme mit Uhrzeit." #~ msgid "A short message which describes the alarm." #~ msgstr "Eine kurze Nachricht die den Alarm beschreibt." #~ msgid "Alarm Message" #~ msgstr "Alarm Nachricht" #~ msgid "Alarm Repeat" #~ msgstr "Alarm Wiederholung" #~ msgid "Alarm Running State" #~ msgstr "Status des Alarms" #~ msgid "Alarm Time" #~ msgstr "Alarm Zeit" #~ msgid "Alarm Timestamp" #~ msgstr "Alarm Zeitstempel" #~ msgid "Alarm Type" #~ msgstr "Alarm-Typ" #~ msgid "Alarm!" #~ msgstr "Alarm!" #~ msgid "Command" #~ msgstr "Befehl" #~ msgid "Delete alarm" #~ msgstr "Alarm löschen" #~ msgid "Enable/disable" #~ msgstr "Einschalten/Ausschalten" #~ msgid "Enable/disable alarm" #~ msgstr "Alarm ein-/ausschalten" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Zeigt ob der Alarm gestartet worden ist." #~ msgid "New" #~ msgstr "Neu" #~ msgid "Notification Type" #~ msgstr "Benachrichtigungstyp" #~ msgid "Quit Alarm Clock" #~ msgstr "Wecker beenden" #~ msgid "Repeat Sound" #~ msgstr "Klang wiederholen" #~ msgid "Requires application indicators" #~ msgstr "Benötigt Anwendungsindikatoren" #~ msgid "Snooze alarms" #~ msgstr "Schlummere Alarme" #~ msgid "Sound File" #~ msgstr "Klangdatei" #~ msgid "Stop alarm" #~ msgstr "Stoppe Alarm" #~ msgid "Stop alarms" #~ msgstr "Alarme stoppen" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "Der Unix-Zeitstempel für den Alarm. Muss gesetzt sein, bevor dieser " #~ "aktiviert ist." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "Der auszuführende Befehl bei Benachrichtigungenstyp mit Befehl." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "Der Ton zur Wiedergabe bei Benachrichtigungstyp mit Ton." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "Die Uhrzeit des Alarms. Sollte bei Uhrzeit im GMT Format oder bei Dauer " #~ "Alarmen in Sekunden sein." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "Der Typ der Benachrichtigung wenn dieser ausgelöst wird. Dies kann einer " #~ "der folgenden sein: \"Ton\" gibt einen Ton wieder ( festgelegt in der " #~ "\"Ton_Datei\" Eigenschaft.) \"Befehl\" welcher einen Befehl ausführt " #~ "( festgelegt in der \"Befehl\" Eigenschaft.)" #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Der Typ des Alarms. Entweder \"Wecker\" für einen Alarm zu einer " #~ "bestimmten Uhrzeit des Tages oder \"Timer\" für einen Alarm nach einer " #~ "bestimmten Dauer." #~ msgid "Toggle alarms" #~ msgstr "Alarme ausschalten" #~ msgid "Toggle alarms window" #~ msgstr "Alarmfenster anzeigen/verbergen" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Umstellen der Sichtbarkeit der Alarm Fenster" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Ob der Alarm Ton wiederholt werden soll." #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "" #~ "Ob eine Beschriftung mit der Zeit zum nächsten Alarm, rechts vom Icon " #~ "angezeigt wird." #~ msgid "_Preferences" #~ msgstr "_Einstellungen" #~ msgid "_Quit" #~ msgstr "_Beenden" alarm-clock-0.4.1/po/el.po000066400000000000000000000166471435672060600153060ustar00rootroot00000000000000# 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: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2022-10-28 13:07+0300\n" "Last-Translator: \n" "Language-Team: \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 λεπτό" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 λεπτά" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 λεπτά" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 λεπτά" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Σχετικά %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Σχετικά με το Ξυπνητήρι" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Ξυπνητήρι" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Προτιμήσεις Ξυπνητηριού" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Ξυπνητήρια" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Ειδοποίηση" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "Εμφάνιση" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "Ε_ντολή:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "Αδυναμία αναπαραγωγής! Παρακαλώ ελέγξτε τις ρυθμίσεις ήχου." #: src/ui.c:389 msgid "Could not play" msgstr "Αδυναμία αναπαραγωγής" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "Αδυναμία αναπαραγωγής '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Προσαρμοσμένη εντολή..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Προσαρμοσμένο..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Διαγραφή" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Διαγραφή του επιλεγμένου ξυπνητηριού" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "Εμφάνιση πληροφοριών έκδοσης" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Επεξεργασία ξυπνητηριού" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Επεξεργασία του επιλεγμένου ξυπνητηριού" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Επεξεργασία..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Ενεργοποίηση" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Ενεργοποίηση/απενεργοποίηση του επιλεγμένου ξυπνητηριού" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Καθημερινά" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Παρ" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Γενικά" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Σηκωθείτε το πρωί!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Διαχείριση των ξυπνητηριών" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Δευ" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Νέο ξυπνητήρι" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Νέο..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Μια φορά" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "Αναπαραγωγή _ήχου" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Ε_πανάληψη ήχου" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Σάβ" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Επιλογή αρχείου ήχου..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Εμφάνιση _Ξυπνητηριών" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "Εμφάνιση ετικέτας αντίστροφης μέτρησης" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Αναστολή" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Αναστολή" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Αναστολή όλων των ξυπνητηριών" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Αναστολή όλων των ξυπνητηριών" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Αναστολή για:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "Αναστολή του επιλεγμένου ξυπνητηριού" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Εκκίνηση Ε_φαρμογής" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Αυτόματη εκκίνηση κατά την είσοδο" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "Κρυφή εκκίνηση" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Διακοπή" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Διακοπή όλων των ξυπνητηριών" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Διακοπή όλων των ξυπνητηριών" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Διακοπή του επιλεγμένου ξυπνητηριού" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Κυρ" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Πέμ" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Αντίστροφη Μέτρηση" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Τρί" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Ξυπνήστε το πρωί" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Τετ" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Καθημερινές" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Σαββατοκύρια" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "Μπορείτε να αναβάλλετε ή να διακόψετε ξυπνητήρια από το μενού." #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "Ά_κυρο" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Όνομα:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "_Άνοιγμα" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Επανάληψη:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Επανάληψη: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_Αναστολή" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Χρόνος:" #: data/alarm-clock-applet.desktop.in:5 msgid "alarm-clock" msgstr "" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "λεπτά" alarm-clock-0.4.1/po/es.po000066400000000000000000000250521435672060600153030ustar00rootroot00000000000000# Spanish translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2012-04-30 22:21+0000\n" "Last-Translator: Monkey \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 minuto" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 minutos" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 minutos" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 minutos" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Acerca de %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Acerca de Reloj despertador" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Reloj despertador" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Preferencias del reloj despertador" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Alarmas" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Alertas" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "Apariencia" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "_Orden:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "No se pudo crear el reproductor. Compruebe su configuración de sonido." #: src/ui.c:389 msgid "Could not play" msgstr "No se pudo reproducir" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "No se pudo reproducir «%s»: %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Orden personalizada…" #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Personalizado…" #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Eliminar" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Eliminar la alarma seleccionada" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Editar alarma" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Editar la alarma seleccionada" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Editar…" #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Activar" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Activa/desactiva la alarma seleccionada" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Diariamente" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Vie" #: data/alarm-clock.ui:1259 msgid "General" msgstr "General" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Levántese por la mañana" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Gestionar sus alarmas" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Lun" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Alarma nueva" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Nuevo…" #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Una vez" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "Reproducir _sonido" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "_Repetir sonido" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Sáb" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Seleccione un archivo de sonido…" #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Ver _alarmas" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "Mostrar la etiqueta de cuenta regresiva" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Posponer" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Posponer alarma" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Posponer todas las alarmas" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Poner en espera todas las alarmas sonoras" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Posponer por:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "Posponer las alarmas seleccionadas" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Iniciar _aplicación" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Iniciar automáticamente al iniciar sesión" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Detener" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Detener todas las alarmas" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Para todas las alarmas sonoras" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Detener la alarma seleccionada" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Dom" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Jue" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Temporizador" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Mar" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Despiértese por la mañana" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "¡Despierte, dormilón/a!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Mié" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Entre semana" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Fines de semana" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "" "Puede posponer o detener las alarmas desde el menú del Reloj despertador." #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Nombre:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Repetir:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Repetir: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_Posponer" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Hora:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Reloj despertador" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "minutos" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s ya está ejecutándose, saliendo…\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Una lista de días en que la alarma debería repetirse. Esta configuración " #~ "solo se aplica para las alarmas «reloj»." #~ msgid "A short message which describes the alarm." #~ msgstr "Una breve descripción de la alarma." #~ msgid "Alarm Message" #~ msgstr "Mensaje de la alarma" #~ msgid "Alarm Repeat" #~ msgstr "Repetición de la alarma" #~ msgid "Alarm Running State" #~ msgstr "Estado de la alarma" #~ msgid "Alarm Time" #~ msgstr "Hora de alarma" #~ msgid "Alarm Timestamp" #~ msgstr "Marca de tiempo de la alarma" #~ msgid "Alarm Type" #~ msgstr "Tipo de alarma" #~ msgid "Alarm!" #~ msgstr "¡Alarma!" #~ msgid "Command" #~ msgstr "Orden" #~ msgid "Delete alarm" #~ msgstr "Eliminar alarma" #~ msgid "Enable/disable" #~ msgstr "Activar/desactivar" #~ msgid "Enable/disable alarm" #~ msgstr "Activar/desactivar alarma" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Indica si la alarma ha comenzado." #~ msgid "New" #~ msgstr "Nuevo" #~ msgid "Notification Type" #~ msgstr "Tipo de notificación" #~ msgid "Quit Alarm Clock" #~ msgstr "Cerrar Reloj despertador" #~ msgid "Repeat Sound" #~ msgstr "Repetir sonido" #~ msgid "Requires application indicators" #~ msgstr "Requiere los indicadores de aplicación" #~ msgid "Snooze alarms" #~ msgstr "Posponer alarmas" #~ msgid "Sound File" #~ msgstr "Archivo de sonido" #~ msgid "Stop alarm" #~ msgstr "Detener alarma" #~ msgid "Stop alarms" #~ msgstr "Detener alarmas" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "La marca de tiempo UNIX para la alarma. Debe asignarse antes que la " #~ "alarma sea activada." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "Orden para ejecutar en el tipo de notificación \"orden\"." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "Sonido a reproducir en el tipo de notificación de \"sonido\"." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "Hora para la alarma. Debe ser una hora GMT para alarmas «reloj» o bien la " #~ "duración en segundos para alarmas «temporizador»." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "Tipo de notificación a utilizar cuando se active la alarma. Puede ser una " #~ "de las siguientes: \"sound\" para reproducir un sonido (especificado en " #~ "la propiedad \"sound_file\") \"command\" para ejecutar un comando " #~ "(especificado en la propiedad \"command\")" #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "El tipo de la alarma. Puede ser «reloj» para una alarma a una hora " #~ "específica del día o «temporizador» para una alarma que sonará una vez " #~ "transcurrido un tiempo especificado." #~ msgid "Toggle alarms" #~ msgstr "Activa las alarmas" #~ msgid "Toggle alarms window" #~ msgstr "Activa la pantalla de alarmas" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Activa la visibilidad de las pantallas de alarmas" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Repetición del sonido de la alarma." #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "" #~ "Mostrar o no una etiqueta en el lado derecho del icono con el tiempo " #~ "restante hasta la próxima alarma." #~ msgid "_Preferences" #~ msgstr "_Preferencias" #~ msgid "_Quit" #~ msgstr "_Salir" alarm-clock-0.4.1/po/et.po000066400000000000000000000147411435672060600153070ustar00rootroot00000000000000# Estonian translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2010-09-12 15:25+0000\n" "Last-Translator: Tarmo Ilves \n" "Language-Team: Estonian \n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 minut" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 minutit" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 minutit" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 minutit" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "%s teave" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Teave äratus kellast" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Äratuskell" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Äratuskella eelistused" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Äratused" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Hoiatus" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "K_äsk:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "Ei suuda mängida" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "Ei mängi '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "" #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Kohandatud..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Kustuta" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Äratuse muutmine" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Muuda..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Luba" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Iga päev" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Ree" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Üldine" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Halda oma äratusi" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Esm" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Uus äratus" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Uus..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Üks kord" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Lau" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Vali helifail..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Kordus" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Kordus äratus" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Korda kõiki äratusi" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Peata" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Peata kõik äratused" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Püh" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Nel" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Taimer" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Tei" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Ärka ülesse hommikul" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Kol" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Tööpäevadel" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Nädalavahetusel" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Nimi:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Kordus:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Kordus: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Aeg:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Äratuskell" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "minutid" #~ msgid "Alarm Message" #~ msgstr "Äratuse sõnum" #~ msgid "Alarm Type" #~ msgstr "Äratuse tüüp" #~ msgid "Alarm!" #~ msgstr "Äratus" #~ msgid "Command" #~ msgstr "Käsklus" #~ msgid "Delete alarm" #~ msgstr "Äratuse kustutamine" #~ msgid "Enable/disable" #~ msgstr "Luba/keela" #~ msgid "Enable/disable alarm" #~ msgstr "Luba/keela äratus" #~ msgid "New" #~ msgstr "Uus" #~ msgid "Snooze alarms" #~ msgstr "Kordus äratused" #~ msgid "Sound File" #~ msgstr "Helifail" #~ msgid "Stop alarm" #~ msgstr "Peata äratus" #~ msgid "Stop alarms" #~ msgstr "Peata äratused" #~ msgid "_Preferences" #~ msgstr "_Eelistused" #~ msgid "_Quit" #~ msgstr "_Välju" alarm-clock-0.4.1/po/fi.po000066400000000000000000000205311435672060600152670ustar00rootroot00000000000000# Finnish translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2011-08-31 11:55+0000\n" "Last-Translator: Tommi Saira \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 minuutti" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 minuuttia" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 minuuttia" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 minuuttia" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Tietoja - %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Tietoja herätyskellosta" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Herätyskello" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Herätyskellon asetukset" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Herätykset" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Hälytys" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "Ulkoasu" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "Ko_mento:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Mukautettu komento..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Mukautettu..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Poista" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Poista valittu herätys" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Muokkaa herätystä" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Muokkaa valittua herätystä" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Muokkaa..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Käytä" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Käytä/älä käytä valittua herätystä" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Joka päivä" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Pe" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Yleiset" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Herää jo!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Hallitse herätyksiä" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Ma" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Uusi herätys" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Uusi..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Kerran" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "Soita _ääni" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Toist_a ääni" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "La" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Valitse äänitiedosto..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Näytä _herätykset" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Torkku" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Herätyksen torkku" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Torkut kaikissa herätyksissä" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Torku:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Käynnistä _sovellus" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Käynnistä automaattisesti sisäänkirjautumisen yhteydessä" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Lopeta" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Lopeta kaikki herätykset" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Lopeta kaikki toistettavat herätykset" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Lopeta valittu herätys" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Su" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "To" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Ajastin" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Ti" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Herää jo!" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Herätys unikeko!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Ke" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Arkisin" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Viikonloppuisin" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Nimi:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Toisto:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Toisto: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Aika:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Herätyskello" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "minuuttia" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s on jo käynnissä, poistutaan...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Lista päivistä, jolloin tulisi herättää. Tämä asetus pätee vain \"kello\"-" #~ "tyyppisille herätyksille." #~ msgid "A short message which describes the alarm." #~ msgstr "Lyhyt herätystä kuvaava syy." #~ msgid "Alarm Message" #~ msgstr "Herätysviesti" #~ msgid "Alarm Repeat" #~ msgstr "Herätyksen toisto" #~ msgid "Alarm Time" #~ msgstr "Herätysaika" #~ msgid "Alarm Timestamp" #~ msgstr "Hälytyksen aikaleima" #~ msgid "Alarm Type" #~ msgstr "Hälytyksen tyyppi" #~ msgid "Alarm!" #~ msgstr "Herätys!" #~ msgid "Command" #~ msgstr "Komento" #~ msgid "Delete alarm" #~ msgstr "Poista herätys" #~ msgid "Enable/disable" #~ msgstr "Käytä/älä käytä" #~ msgid "Enable/disable alarm" #~ msgstr "Käytä/älä käytä herätystä" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Ilmoittaa onko hälytys on alkanut." #~ msgid "New" #~ msgstr "Uusi" #~ msgid "Notification Type" #~ msgstr "Huomautuksen tyyppi" #~ msgid "Quit Alarm Clock" #~ msgstr "Lopeta herätyskello" #~ msgid "Repeat Sound" #~ msgstr "Toista ääni" #~ msgid "Snooze alarms" #~ msgstr "Herätysten torkut" #~ msgid "Sound File" #~ msgstr "Äänitiedosto" #~ msgid "Stop alarm" #~ msgstr "Lopeta herätys" #~ msgid "Stop alarms" #~ msgstr "Lopeta herätykset" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "UNIX-aikaleima hälytykselle. Täytyy asettaa ennen hälytyksen " #~ "alkamisajankohtaa." #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Hälytyksen tyyppi. Joko \"kello\" jolloin herätys tapahtuu tiettyyn " #~ "päivän aikaan, tai \"ajastin\" jolloin hälytys tapahtuu tietyn ajan " #~ "kuluttua." #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Toistetaanko herätysääni." #~ msgid "_Preferences" #~ msgstr "_Asetukset" #~ msgid "_Quit" #~ msgstr "_Lopeta" alarm-clock-0.4.1/po/fo.po000066400000000000000000000206571435672060600153060ustar00rootroot00000000000000# Faroese translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2010-06-12 15:12+0000\n" "Last-Translator: Gunleif Joensen \n" "Language-Team: Faroese \n" "Language: fo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 minuttur" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 minuttir" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 minuttir" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 minuttir" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Um %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Um Vekjaraklokku" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Vekjari" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Vekjaraklokku sertokkar" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Vekjara tíðir" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Gev gætur" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "Stýriboð" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "Kundi ikki spæla" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "Kundi ikki spæla '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Serstýriboð..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Laga til..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Strika" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Strika valdu vekjara tíðina" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Ritstjórna vekjaratíðir" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Ritsjórna tí valdu vekjara tíðina" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Ritstjórna..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Gilda" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Gilda/ógilda tí valdu vekjara tíðina" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Hvønn dag" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "frí" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Alment" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Kom upp á morgni!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Stýr tinar vekjara tíðir" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "mán" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Nýggj vekjaratíð" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Nýggj..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Eina ferð" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "Spæl _ljóð" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Endurta_k ljóð" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "ley" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Vel ljóðfílu..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Sýn _vekjaratíðir" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Durva" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Durvi vekjari" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Durva allar alarmar" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Durva allar bippandi alarmar" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Durva fyri:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "Durva tann valda alarmin" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Byrja nýtsluskip_an" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Byrja sjálvvirkandi við innritan" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Steðga" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Steðga allar vekjaraklokkur" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Steðga allar bippandi alarmar" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Steðga tí valdu vekjaraklokkuna" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "sun" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "hós" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Tíðarvørður" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "týs" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Vakna á morgni" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Vækna tín svøvnhít" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "mik" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Gerðandisdagar" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Vikuskifti" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Navn:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "Endu_rtak:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "Endu_rtak: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_Durva" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Tíð" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Vekjari" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "minuttir" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s koyrir longu, gevist...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Listi yvir dagar ið vekjaraklokkan skal endurtakast. Henda setanin er " #~ "einans galdandi fyri vekjara tíðir." #~ msgid "A short message which describes the alarm." #~ msgstr "Eini stutt boð, ið greiåir frá vekjaranum." #~ msgid "Alarm Message" #~ msgstr "Vekjara fráboðan" #~ msgid "Alarm Repeat" #~ msgstr "Vekjara endurtøka" #~ msgid "Alarm Running State" #~ msgstr "Vekjara koyrslustandir" #~ msgid "Alarm Time" #~ msgstr "Vekjara tíðspunkt" #~ msgid "Alarm Timestamp" #~ msgstr "Vekjara tíðarstempul" #~ msgid "Alarm Type" #~ msgstr "Vekjara slag" #~ msgid "Alarm!" #~ msgstr "Vekjari!" #~ msgid "Command" #~ msgstr "Boð" #~ msgid "Delete alarm" #~ msgstr "Strika vekjara tíð" #~ msgid "Enable/disable" #~ msgstr "Gilda/ógilda" #~ msgid "Enable/disable alarm" #~ msgstr "Gilda/ógilda vekjaraklokku" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Ábending um vekjaraklokkan er byrja." #~ msgid "New" #~ msgstr "Nýggj" #~ msgid "Notification Type" #~ msgstr "Fráboðanar snið" #~ msgid "Quit Alarm Clock" #~ msgstr "Sløkk vekjaraklokkuna" #~ msgid "Repeat Sound" #~ msgstr "Endurtøku ljóð" #~ msgid "Snooze alarms" #~ msgstr "Durva alarmar" #~ msgid "Sound File" #~ msgstr "Ljóðfíla" #~ msgid "Stop alarm" #~ msgstr "Steðga vekjaraklokku" #~ msgid "Stop alarms" #~ msgstr "Steðga vekjaraklokkur" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "UNIX tíðastemplið fyri vekjaraklokkuna, má ásetast áðrenn vekjarin kann " #~ "virkjast." #~ msgid "Toggle alarms" #~ msgstr "Skift vekjaraklokkur" #~ msgid "Toggle alarms window" #~ msgstr "Skift vekjara gluggar" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Skift sjónleikan á vekjara glugganum" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Um vekjaraljóðurin skal endurtakast." #~ msgid "_Preferences" #~ msgstr "_Sertokkar" #~ msgid "_Quit" #~ msgstr "_Gevst" alarm-clock-0.4.1/po/fr.po000066400000000000000000000250141435672060600153010ustar00rootroot00000000000000# French translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2011-01-24 18:50+0000\n" "Last-Translator: Nicolas Delvaux \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 minute" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 minutes" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 minutes" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 minutes" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "A propos de %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "À propos du Réveil-Matin" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Réveil" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Préférences du Réveil-Matin" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Alarmes" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Alerte" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "Apparence" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "_Commande :" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "Erreur lecture" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "Impossible de lire '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Commande personnalisée..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Personnalisée..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Supprimer" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Supprimer l'alarme sélectionnée" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Modifier l'alarme" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Modifier l'alarme sélectionnée" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Modifier..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Activer" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Activer/Desactiver l'alarme sélectionnée" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Tous les jours" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Ven" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Général" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Réveille-toi le matin !" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Gérer vos alarmes" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Lun" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Nouvelle alarme" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Nouveau..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Une seule fois" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "Lire_son" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Répé_ter son" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Sam" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Sélectionnez un fichier son..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Afficher les _alarmes" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "Afficher une étiquette de décompte" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Report" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Reporter l'alarme" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Reporter toutes les alarmes" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Reporter toutes les alarmes bip" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Reporter :" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "Reporter l'alarme sélectionnée" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Démarrer _Application" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Démarrer automatiquement au démarrage" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Arrêter" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Arrêter toutes les alarmes" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Arrêter toutes les alarmes qui sonnent" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Arrêter l'alarme sélectionnée" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Dim" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Jeu" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Minuterie" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Mar" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Se reveiller le matin" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Réveille-toi fainéant !" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Mer" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Les jours ouvrables" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Les weekends" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "" "Vous pouvez reporter les alarmes ou arrêter les répétitions dans le menu " "Alarme." #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Nom :" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Répéter :" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Répéter : %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_Reporter" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Heure :" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Réveil" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "minutes" #~ msgid "%s is already running, exiting...\n" #~ msgstr "% s fonctionne déjà, sortie...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Liste des jours où l'alarme doit se déclencher. Ne s'applique qu'aux " #~ "alarmes de type 'horaire'." #~ msgid "A short message which describes the alarm." #~ msgstr "Description de l'alarme." #~ msgid "Alarm Message" #~ msgstr "Message de l'alarme" #~ msgid "Alarm Repeat" #~ msgstr "Répéter l'Alarme" #~ msgid "Alarm Running State" #~ msgstr "Etat de l'alarme en cours d'exécution." #~ msgid "Alarm Time" #~ msgstr "Heure de l'alarme" #~ msgid "Alarm Timestamp" #~ msgstr "Horodatage de l'alarme" #~ msgid "Alarm Type" #~ msgstr "Type d'alarme" #~ msgid "Alarm!" #~ msgstr "Alarme !" #~ msgid "Command" #~ msgstr "Commande" #~ msgid "Delete alarm" #~ msgstr "Supprimer l'alarme" #~ msgid "Enable/disable" #~ msgstr "Activer/Desactiver" #~ msgid "Enable/disable alarm" #~ msgstr "Activer/Desactiver l'alarme" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Indique si l'alarme s'est déclenchée" #~ msgid "New" #~ msgstr "Nouveau" #~ msgid "Notification Type" #~ msgstr "Type de notification" #~ msgid "Quit Alarm Clock" #~ msgstr "Quitter Réveil-Matin" #~ msgid "Repeat Sound" #~ msgstr "Répéter le Son" #~ msgid "Requires application indicators" #~ msgstr "Nécessite les indicateurs d'application" #~ msgid "Snooze alarms" #~ msgstr "Reporter les alarmes" #~ msgid "Sound File" #~ msgstr "Fichier sonore" #~ msgid "Stop alarm" #~ msgstr "Arrêter l'alarme" #~ msgid "Stop alarms" #~ msgstr "Arrêter les alarmes" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "La répétition (horodatage) de l'alarme doit être configurée avant que " #~ "l'alarme soit activée." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "La commande à exécuter pour les alertes de type 'commande'." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "Le fichier audio à jouer pour une notification de type \"son\"." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "L'heure de l'alarme doit être en GMT pour les alarmes \"horaires\" et en " #~ "secondes pour les alarmes \"minuteurs\"." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "Le type de notification à utiliser lorsque l'alarme se déclenche. Cela " #~ "peut être l'un des types de notifications suivants : \"son\" pour lire un " #~ "son (spécifié dans la propriété \"sound_file\"), \"commande\" pour " #~ "exécuter une commande (spécifiée dans la propriété \"commande\")" #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Le type d'alarme. Soit \"horaire\" pour une alarme se déclenchant à un " #~ "moment spécifique du jour, ou \"minuteur\" pour une alarme se déclenchant " #~ "après un laps de temps." #~ msgid "Toggle alarms" #~ msgstr "Changer l'état des alarmes" #~ msgid "Toggle alarms window" #~ msgstr "Changer la fenêtre des alarmes" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Changer l'apparence des fenêtres des alarmes" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Si il faut répéter le son de l'alarme." #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "" #~ "S'il faut afficher une étiquette à droite de l’icône avec le temps " #~ "restant jusqu’à la prochaine alarme." #~ msgid "_Preferences" #~ msgstr "_Préférences" #~ msgid "_Quit" #~ msgstr "_Quitter" alarm-clock-0.4.1/po/gl.po000066400000000000000000000245071435672060600153020ustar00rootroot00000000000000# Galician translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2011-04-09 05:30+0000\n" "Last-Translator: Miguel Anxo Bouzada \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 minuto" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 minutos" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 minutos" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 minutos" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Sobre %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Sobre Alarm Clock" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Reloxo de alarma" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Preferencias do despertador" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Alarmas" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Alerta" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "Aparencia" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "_Orde:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "Non se pode reproducir" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "Non se pode reproducir «%s»: %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Orde personalizada..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Personalizar..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Eliminar" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Eliminar a alarma seleccionada" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Modificar a alarma" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Editar a alarma seleccionada" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Editar..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Activar" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Activar/desactivar a alarma escollida" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Todos os días" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "ven" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Xeral" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Espertar pola mañán!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Xestione as súas alarmas" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "lun" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Nova alarma" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Nova..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Unha vez" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "Reproducir un _son" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "_Repetir son" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "sáb" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Seleccionar ficheiro de son..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Mostrar _alarmas" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "Mostrar a etiqueta de conta atrás" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Pospor" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Pospor a alarma" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Pospor todas as alarmas" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Pospor todas as alarmas que están a soar" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Pospor durante:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "Pospor as alarmas seleccionadas" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Iniciar _aplicativo" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Iniciar automáticamente coa sesión" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Deter" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Deter todas as alarmas" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Deter todas as alarmas sonoras" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Deter a alarma seleccionada" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "dom" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "xov" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Temporizador" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "mar" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Espertarse pola mañan" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Esperta! hora de erguerse!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "mér" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Días da semana" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Fins de semana" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "Pode pospor ou deter as alarmas desde o menú do despertador" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Nome:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Repetir:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Repetir: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_Pospor" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Hora:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Reloxo de alarma" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "minutos" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s xa se está a executar, saíndo...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Unha lista de dias nos que a alarma debe ser repetida. Estas " #~ "comfiguracions son só aplicábeis para alarmas de «reloxo»" #~ msgid "A short message which describes the alarm." #~ msgstr "Unha mensaxe curta que describa a alarma" #~ msgid "Alarm Message" #~ msgstr "Mensaxe da alarma" #~ msgid "Alarm Repeat" #~ msgstr "Repetición da alarma" #~ msgid "Alarm Running State" #~ msgstr "Estado da alarma" #~ msgid "Alarm Time" #~ msgstr "Hora da alarma" #~ msgid "Alarm Timestamp" #~ msgstr "Date e hora da alarma" #~ msgid "Alarm Type" #~ msgstr "Tipo de alarma" #~ msgid "Alarm!" #~ msgstr "Alarma!" #~ msgid "Command" #~ msgstr "Orde" #~ msgid "Delete alarm" #~ msgstr "Eliminar a alarma" #~ msgid "Enable/disable" #~ msgstr "Activar/desactivar" #~ msgid "Enable/disable alarm" #~ msgstr "Activar/desactivar alarma" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Indica se a a alama comezou." #~ msgid "New" #~ msgstr "Nova" #~ msgid "Notification Type" #~ msgstr "Tipo de notificación." #~ msgid "Quit Alarm Clock" #~ msgstr "Saír do despertador" #~ msgid "Repeat Sound" #~ msgstr "Repetir son" #~ msgid "Requires application indicators" #~ msgstr "Require do aplicativo de indicadores" #~ msgid "Snooze alarms" #~ msgstr "Pospor as alarmas" #~ msgid "Sound File" #~ msgstr "Ficheiro de son" #~ msgid "Stop alarm" #~ msgstr "Deter a alarma" #~ msgid "Stop alarms" #~ msgstr "Deter as alarmas" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "Marca de tempo de UNIX para a alarma. Debe ser definido antes de que a " #~ "alarma sexa activada." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "Otde para executar polo tipo de notificación «orde»" #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "Ficheiro de son para reproducir no tipo de notificación «son»" #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "Hora para a alarma. Debe estar en GMT para alarmas «reloxo» ou o tempo en " #~ "segundos para alarmas «temporizador»" #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "Tipo de notificación para usar cando a alarma se apaga. Isto pode ser un " #~ "dos seguintes: «son» para reproducir un son (especificado na propiedade " #~ "«Ficheiro_de_son») «orde» para executar unha orde (especificado na " #~ "propiedade «orde»)" #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Tipo de alarma. «Reloxo» para unha alarma a unha hora especifica do dia, " #~ "ou «temporizador» para unha alarma despois dun período de tempo " #~ "especificado" #~ msgid "Toggle alarms" #~ msgstr "Intercambiar alarmas" #~ msgid "Toggle alarms window" #~ msgstr "Intercambiar as xanelas das alarmas" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Intercambiar a visibilidade das xanelas das alarmas" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Se se repite o son da alarma" #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "" #~ "Para mostrar unha etiqueta no lado dereito da icona co tempo restante ata " #~ "a próxima alarma." #~ msgid "_Preferences" #~ msgstr "_Preferencias" #~ msgid "_Quit" #~ msgstr "_Sair" alarm-clock-0.4.1/po/he.po000066400000000000000000000252611435672060600152720ustar00rootroot00000000000000# Hebrew translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2011-01-23 20:29+0000\n" "Last-Translator: Yaron \n" "Language-Team: Hebrew \n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "דקה אחת" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 דקות" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 דקות" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 דקות" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "על אודות %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "על אודות השעון המעורר" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "שעון מעורר" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "העדפות השעון המעורר" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "התרעות" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "התרעה" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "מראה" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "פ_קודה:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "לא ניתן לנגן" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "לא ניתן להשמיע את '%s':‏ %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "פקודה מותאמת אישית" #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "התאמה אישית..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "מחיקה" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "מחיקת ההתרעה הנבחרת" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "עריכת ההתרעה" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "עריכת ההתרעה הנבחרת" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "עריכה..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "הפעלה" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "הפעלה/נטרול של ההתרעה הנבחרת" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "כל יום" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "ו" #: data/alarm-clock.ui:1259 msgid "General" msgstr "כללי" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "להתעורר בבוקר!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "ניהול ההתרעות שלך" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "ב" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "התרעה חדשה" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "חדשה..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "פעם אחת" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "השמעת _צליל" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "ח_זרה על הצליל" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "ש" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "בחירת קובץ שמע..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "ה_צגת התרעות" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "הצגת תווית ספירה לאחור" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "נודניק" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "דחיית ההתרעה" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "דחיית כל ההתרעות" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "דחיית כל ההתרעות המזמזמות" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "דחייה למשך:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "דחיית ההתרעה הנבחרת" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "הפעלת _יישום" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "התחלה אוטומטית עם ההפעלה" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "עצירה" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "עצירת כל ההתרעות" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "עצירת כל ההתרעות המזמזמות" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "עצירת ההתרעה הנוכחית" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "א" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "ה" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "קוצב זמן" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "ג" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "להתעורר בבוקר" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "קדימה לקום ישנוני!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "ד" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "ימי השבוע" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "סופי שבוע" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "ניתן לדחות או לעצור התרעות מתפריט השעון המעורר." #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_שם:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_חזרה:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_חזרה: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_נודניק" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_שעה:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "שעון מעורר" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "דקות" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s כבר פעילה, מתבצעת יציאה...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgid "A short message which describes the alarm." #~ msgstr "A short message which describes the alarm." #~ msgid "Alarm Message" #~ msgstr "Alarm Message" #~ msgid "Alarm Repeat" #~ msgstr "חזרה על ההתרעה" #~ msgid "Alarm Running State" #~ msgstr "Alarm Running State" #~ msgid "Alarm Time" #~ msgstr "זמן ההתרעה" #~ msgid "Alarm Timestamp" #~ msgstr "Alarm Timestamp" #~ msgid "Alarm Type" #~ msgstr "Alarm Type" #~ msgid "Alarm!" #~ msgstr "Alarm!" #~ msgid "Command" #~ msgstr "Command" #~ msgid "Delete alarm" #~ msgstr "מחיקת התרעה" #~ msgid "Enable/disable" #~ msgstr "הפעלה/נטרול" #~ msgid "Enable/disable alarm" #~ msgstr "הפעלת/נטרול ההתרעה" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Indicates whether the alarm has started." #~ msgid "New" #~ msgstr "חדשה" #~ msgid "Notification Type" #~ msgstr "Notification Type" #~ msgid "Quit Alarm Clock" #~ msgstr "יציאה מהשעון המעורר" #~ msgid "Repeat Sound" #~ msgstr "Repeat Sound" #~ msgid "Requires application indicators" #~ msgstr "נדרשים מחווני יישומים" #~ msgid "Snooze alarms" #~ msgstr "דחיית ההתרעות" #~ msgid "Sound File" #~ msgstr "Sound File" #~ msgid "Stop alarm" #~ msgstr "עצירת ההתרעה" #~ msgid "Stop alarms" #~ msgstr "עצירת ההתרעות" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "The command to run for the \"command\" notification type." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "The sound file to play for the \"sound\" notification type." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgid "Toggle alarms" #~ msgstr "החלפת מצב ההתרעות" #~ msgid "Toggle alarms window" #~ msgstr "הצגה/הסתרה של חלון ההתרעות" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "הצגה/הסתרה של חלון ההתרעות" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Whether to repeat the alarm sound." #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgid "_Preferences" #~ msgstr "ה_עדפות" #~ msgid "_Quit" #~ msgstr "י_ציאה" alarm-clock-0.4.1/po/hi.po000066400000000000000000000231101435672060600152650ustar00rootroot00000000000000# Hindi translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2012-03-28 16:23+0000\n" "Last-Translator: Vibhav Pant \n" "Language-Team: Hindi \n" "Language: hi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 मिनट" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 मिनट्स" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 मिनट्स" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 मिनट्स" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "अलार्म घड़ी का परिचय" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "अलार्म घड़ी" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "अलार्म घड़ी प्राथमिकताएँ" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "अलार्म्स" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "सचेत" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "कमांड (_m):" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "" #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "मनपसंद..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "मिटाएँ" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "चयनित अलार्म हटाएँ" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "अलार्म का संपादन करें" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "चयनित अलार्म का संपादन करें" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "संपादन..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "सक्रिय करें" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "चयनित अलार्म को सक्रिय / निष्क्रिय करें" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "शुक्र" #: data/alarm-clock.ui:1259 msgid "General" msgstr "सामान्य" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "सुबह में जागें!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "अलार्म्स को व्यवस्थित करें" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "सोम" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "नया अलार्म" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "" #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "" #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "सुबह में जग जाएँ" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "अलार्म घड़ी" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "" #~ msgid "Alarm Type" #~ msgstr "अलार्म क़िस्म" #~ msgid "Alarm!" #~ msgstr "अलार्म!" #~ msgid "Command" #~ msgstr "निर्देश" #~ msgid "Delete alarm" #~ msgstr "अलार्म हटाएँ" #~ msgid "Enable/disable" #~ msgstr "सक्रिय / निष्क्रिय करें" #~ msgid "Enable/disable alarm" #~ msgstr "अलार्म को सक्रिय / निष्क्रिय करें" #~ msgid "Indicates whether the alarm has started." #~ msgstr "बताता है कि क्या अलार्म शुरू हो गया है." #~ msgid "New" #~ msgstr "नया" #~ msgid "Notification Type" #~ msgstr "अधिसूचना प्रकार" #~ msgid "Repeat Sound" #~ msgstr "ध्वनि दोहराएँ" #~ msgid "Sound File" #~ msgstr "ध्वनि फ़ाइल" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "अलार्म के लिए UNIX टाइमस्टैम्प. अलार्म सक्रिय करने से पहले निर्धारित किया जाना चाहिए." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "कमांड \"कमांड\" अधिसूचना प्रकार के को चलाने के लिए." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "\"ध्वनि\" अधिसूचना प्रकार के लिए ध्वनि फ़ाइल." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "अलार्म के लिए समय. \"घड़ी\" अलार्म के लिए GMT में अथवा \"टाइमर\" अलार्म के लिए सेकंड " #~ "में होना चाहिए." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "अलार्म बजने पर अधिसूचना का प्रकार. यह निम्न में से एक हो सकता है: ध्वनि बजाने के लिए " #~ "\"ध्वनि\" (ध्वनि फाइल मे निर्दिष्ट ). कमांड चलाने के लिए \"कमांड\" (कमांड में निर्दिष्ट)" #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "अलार्म का प्रकार. दिन के किसी विशेष समय पर अलार्म के लिये 'घड़ी' अथवा एक " #~ "निर्धारित अवधि के बाद एक अलार्म के लिए \"टाइमर '." #~ msgid "Whether to repeat the alarm sound." #~ msgstr "क्या अलार्म ध्वनि दोहराई जानी चाहिए ?" alarm-clock-0.4.1/po/hu.po000066400000000000000000000250321435672060600153060ustar00rootroot00000000000000# Hungarian translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2011-01-30 16:12+0000\n" "Last-Translator: Papp Bence \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 perc" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 perc" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 perc" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 perc" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "%s névjegye" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Ébresztőóra névjegye" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Ébresztőóra" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Ébresztőóra beállításai" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Riasztások" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Figyelmeztetés" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "Megjelenés" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "Pa_rancs:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "Nem játszható le" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "Nem tudom lejátszani '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Saját parancs..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Egyedi…" #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Törlés" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "A kiválasztott riasztás törlése" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Riasztás módosítása" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "A kiválasztott riasztás módosítása" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Szerkesztés…" #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Engedélyezés" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Kiválasztott riasztás engedélyezése/tiltása" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Minden nap" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Pén" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Általános" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Kelts fel reggel!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Riasztások kezelése" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Hét" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Új riasztás" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Új…" #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Egyszer" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "_Hang lejátszása" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Hang ismé_tlése" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Szo" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Válasszon hangfájlt…" #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Ria_sztások listája" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "Mutassa a visszaszámláló feliratot" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Szundi" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Riasztás szüneteltetése" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Összes riasztás szüneteltetése" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Az összes sípoló riasztás szüneteltetése" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Szüneteltetés:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "A kíválasztott riasztás szüneteltetése" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Alkalmazás _futtatása" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Automatikus indítás bejelentkezéskor" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Leállítás" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Összes riasztás leállítása" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Az összes sípoló riasztás leállítása" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "A kiválasztott riasztás leállítása" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Vas" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Csü" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Időzítő" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Ked" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Reggeli ébresztő" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Kelj fel lustaság!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Sze" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Hétköznap" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Hétvége" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "" "A riasztásokat az Ébresztőóra menüjében tudja szüneteltetni vagy leállítani." #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Név:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Ismétlés:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Ismétlés: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_Szundi" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Idő:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Ébresztőóra" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "perc" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s épp fut, kilépés...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "A napok listája amikor a riasztások ismétlődni fognak. Ez a beállítás " #~ "csak az \"ébresztőóra\" riasztásokhoz érhető el." #~ msgid "A short message which describes the alarm." #~ msgstr "Egy rövid üzenet a riasztásról." #~ msgid "Alarm Message" #~ msgstr "Figyelmeztető üzenet" #~ msgid "Alarm Repeat" #~ msgstr "Figyelmeztetés ismétlése" #~ msgid "Alarm Running State" #~ msgstr "Riasztás állapota" #~ msgid "Alarm Time" #~ msgstr "Figyelmeztetés időpontja" #~ msgid "Alarm Timestamp" #~ msgstr "Riasztás időbélyege" #~ msgid "Alarm Type" #~ msgstr "Riasztás típusa" #~ msgid "Alarm!" #~ msgstr "Ébresztő!" #~ msgid "Command" #~ msgstr "Parancs" #~ msgid "Delete alarm" #~ msgstr "A riasztás törlése" #~ msgid "Enable/disable" #~ msgstr "Engedélyezés/Tiltás" #~ msgid "Enable/disable alarm" #~ msgstr "Riasztás engedélyezése/tiltása" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Jelzi, hogy a riasztás aktív-e." #~ msgid "New" #~ msgstr "Új" #~ msgid "Notification Type" #~ msgstr "Figyelmeztetés típusa" #~ msgid "Quit Alarm Clock" #~ msgstr "Kilépés az Ébresztőórából" #~ msgid "Repeat Sound" #~ msgstr "Hang ismétlése" #~ msgid "Requires application indicators" #~ msgstr "Alkalmazás indikátorok szükségesek" #~ msgid "Snooze alarms" #~ msgstr "Riasztások szüneteltetése" #~ msgid "Sound File" #~ msgstr "Hangfájl" #~ msgid "Stop alarm" #~ msgstr "Riasztás leállítása" #~ msgid "Stop alarms" #~ msgstr "Riasztások leállítása" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "UNIX időbélyeg a riasztáshoz. A riasztás aktiválása előtt be kell " #~ "állítani." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "Parancs szerkesztése a \"parancs\" riasztás típus futtatásához." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "Hang fájl beállítása a \"hang\" riasztás típushoz." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "A riasztás ideje. \"Ébresztőóra\"-hoz az időt GMT-ben vagy \"Időzítő\"-" #~ "nek a hosszat másodpercben kell megadni." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "Figyelmeztetés típusa, amikor a riasztás elkezdődik. Ezek a következők " #~ "lehetnek: \"hang \" valamilyen hang lejátszásához (paraméterezve a " #~ "\"sound_file\"-ban.), \"parancs\" valamilyen parancs futtatásához " #~ "(paraméterezve a \"command\"-ban)" #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Riasztás típusa. \"Ébresztőóra\" egy bizonyos időpontban riaszt, vagy " #~ "\"Időzítő\" egy bizonyos idő múlva riaszt." #~ msgid "Toggle alarms" #~ msgstr "Riasztás kiválasztása" #~ msgid "Toggle alarms window" #~ msgstr "Riasztási ablak kiválasztása" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Riasztási ablak kinézetének kiválasztása" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Ismételje-e a riasztási hangot." #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "" #~ "Mutassa-e a hátralevő idő a következő riasztásig feliratot a jobb oldali " #~ "ikonon ." #~ msgid "_Preferences" #~ msgstr "_Beállítások" #~ msgid "_Quit" #~ msgstr "_Kilépés" alarm-clock-0.4.1/po/id.po000066400000000000000000000217661435672060600153000ustar00rootroot00000000000000# Indonesian translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2010-12-10 09:02+0000\n" "Last-Translator: Arief Setiadi Wibowo \n" "Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 menit" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 menit" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 menit" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 menit" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Tentang %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Tentang Jam Alarm" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Jam Alarm" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Preferensi Jam Alarm" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Alarm" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Peringatan" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "_Perintah:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "Tidak dapat memutar" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "tidak dapat memutar '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "" #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Kustom..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Hapus" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Hapus alarm yang dipilih" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Edit alarm" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Sunting alarm terpilih" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Sunting..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Aktifkan" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Aktifkan/nonaktifkan alarm yang dipilih" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Setiap hari" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Jum" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Umum" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Bangun pagi!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Atur alrm anda" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Sen" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Alarm baru" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Baru..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Sekali" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "Mainkan _suara" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Sab" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Pilih berkas suara..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Tampilkan _alarm" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Henti" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Stop semua alarm" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Min" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Kam" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Penghitung" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Sel" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Bangun di pagi hari" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Bangun, tukang tidur!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Rab" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Hari-hari kerja" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Akhir pekan" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Nama:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "Wak_tu:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Jam Alarm" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "menit" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Daftar hari ketika alarm mesti diulang. Tatanan ini hanya berlaku bagi " #~ "alarm \"jam\"." #~ msgid "A short message which describes the alarm." #~ msgstr "Pesan singkat yang mendeskripsikan alarm." #~ msgid "Alarm Message" #~ msgstr "Pesan Alarm" #~ msgid "Alarm Repeat" #~ msgstr "Ulangi Alarm" #~ msgid "Alarm Running State" #~ msgstr "Status Alarm Berjalan" #~ msgid "Alarm Time" #~ msgstr "Waktu Alarm" #~ msgid "Alarm Timestamp" #~ msgstr "Penanda Waktu Alarm" #~ msgid "Alarm Type" #~ msgstr "Tipe Alarm" #~ msgid "Alarm!" #~ msgstr "Alarm!" #~ msgid "Command" #~ msgstr "Perintah" #~ msgid "Delete alarm" #~ msgstr "Hapus alarm" #~ msgid "Enable/disable" #~ msgstr "Aktifkan/nonaktifkan" #~ msgid "Enable/disable alarm" #~ msgstr "Aktifkan/nonaktifkan alarm" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Terindikasi apakah alarm sudah mulai." #~ msgid "New" #~ msgstr "Baru" #~ msgid "Notification Type" #~ msgstr "Jenis Pemberitahuan" #~ msgid "Quit Alarm Clock" #~ msgstr "Keluar Jam Alarm" #~ msgid "Repeat Sound" #~ msgstr "Ulangi Suara" #~ msgid "Sound File" #~ msgstr "Berkas Suara" #~ msgid "Stop alarm" #~ msgstr "Stop alarm" #~ msgid "Stop alarms" #~ msgstr "Stop alarm" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "Penanda waktu UNIX bagi alarm. Mesti ditata sebelum alarm diaktifkan." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "Perintah yang dijalankan bagi tipe pemberitahuan \"perintah\"." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "Berkas suara untuk dimainkan bagi tipe pemberitahuan \"suara\"." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "Waktu bagi alarm. Mesti dalam GMT bagi alarm \"jam\" atau lama waktu " #~ "dalam detik bagi alarm \"pewaktu\"." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "Tipe pemberitahuan yang dipakai ketika alarm terjadi. Ini bisa salah satu " #~ "dari: \"sound\" (suara) untuk memainkan suatu suara (dinyatakan dalam " #~ "properti \"sound_file\"), \"command\" (perintah) untuk menjalankan suatu " #~ "perintah (dinyatakan dalam properti \"command\")." #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Tipe alarm. Bisa \"clock\" untuk alarm pada suatu saat, atau \"timer\" " #~ "untuk alarm setelah suatu perioda waktu yang dinyatakan." #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Apakah akan mengulang suara alarm." #~ msgid "_Preferences" #~ msgstr "_Preferensi" #~ msgid "_Quit" #~ msgstr "_Keluar" alarm-clock-0.4.1/po/it.po000066400000000000000000000125121435672060600153050ustar00rootroot00000000000000# Italian translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2010-10-30 20:38+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "" #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "" #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "" #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "" #: data/alarm-clock.ui:1259 msgid "General" msgstr "" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "" #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "" #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "" #: data/alarm-clock-applet.desktop.in:5 msgid "alarm-clock" msgstr "" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "" alarm-clock-0.4.1/po/ja.po000066400000000000000000000241211435672060600152620ustar00rootroot00000000000000# Japanese translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2010-12-22 00:12+0000\n" "Last-Translator: jugger Yamamoto \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1分" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10分" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3分" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5分" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "%s について" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "アラーム時計について" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "アラーム時計" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "アラーム時計の設定" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "アラーム" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "アラート" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "コマンド(_M):" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "再生できませんでした" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "'%s' を再生できませんでした: %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "カスタムコマンド..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "カスタム..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "削除" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "選択中のアラームを削除" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "アラームを編集" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "選択中のアラームを編集" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "編集..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "有効" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "選択中のアラームのオン/オフ" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "毎日" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "金曜" #: data/alarm-clock.ui:1259 msgid "General" msgstr "一般" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "朝起きる" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "アラームの設定" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "月曜" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "新しいアラーム" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "新規..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "1回" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "音の再生(_S)" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "音のリピート(_T)" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "土曜" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "音ファイルの選択..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "アラームの表示(_A)" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "スヌーズ" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "アラームをスヌーズ" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "すべてのアラームをスヌーズ" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "動作中のすべてのアラームをスヌーズ" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "スヌーズする:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "選択中のアラームをスヌーズ" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "アプリケーションを起動(_A)" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "ログイン時に自動起動" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "停止" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "すべてのアラームを停止" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "すべての動作中のアラームを停止" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "選択中のアラームを停止" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "日曜" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "木曜" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "タイマー" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "火曜" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "朝起きる" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "起きろー!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "水曜" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "平日" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "週末" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "アラーム時計のメニューからスヌーズまたは停止できます。" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "名前(_N):" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "リピート(_R):" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "リピート(_R): %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "スヌーズ(_S)" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "時間(_T):" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "アラーム時計" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "分" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s はすでに実行されているため、終了します\n" #~ msgid "A short message which describes the alarm." #~ msgstr "アラームのときに表示される短いメッセージ" #~ msgid "Alarm Message" #~ msgstr "アラームのメッセージ" #~ msgid "Alarm Repeat" #~ msgstr "アラームのリピート間隔" #~ msgid "Alarm Running State" #~ msgstr "アラーム状態" #~ msgid "Alarm Time" #~ msgstr "アラームの時間" #~ msgid "Alarm Timestamp" #~ msgstr "アラームのタイムスタンプ" #~ msgid "Alarm Type" #~ msgstr "アラームの種類" #~ msgid "Alarm!" #~ msgstr "アラーム" #~ msgid "Command" #~ msgstr "コマンド" #~ msgid "Delete alarm" #~ msgstr "アラームを削除" #~ msgid "Enable/disable" #~ msgstr "オン/オフ" #~ msgid "Enable/disable alarm" #~ msgstr "アラームのオン/オフ" #~ msgid "Indicates whether the alarm has started." #~ msgstr "アラームが開始されているかの表示" #~ msgid "New" #~ msgstr "新規" #~ msgid "Notification Type" #~ msgstr "通知の種類" #~ msgid "Quit Alarm Clock" #~ msgstr "アラーム時計の終了" #~ msgid "Repeat Sound" #~ msgstr "リピートの音" #~ msgid "Snooze alarms" #~ msgstr "アラームをスヌーズ" #~ msgid "Sound File" #~ msgstr "アラーム音のファイル" #~ msgid "Stop alarm" #~ msgstr "アラームを停止" #~ msgid "Stop alarms" #~ msgstr "アラームを停止" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "アラームに使用する UNIX のタイムスタンプ。アラームをオンにする前に設定する" #~ "必要があります。" #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "\"command\" 通知のときに実行されるコマンド。" #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "\"sound\" 通知のときに再生される音ファイル。" #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "アラームの時間。時刻の時はGMT(UTC)、タイマーの時は時間を秒で指定。" #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "アラームが起動したときの通知の種類。次のいずれか1つです: \"sound\" は " #~ "\"sound_file\" プロパティで指定した音ファイルを再生します。 \"command\" " #~ "は \"command\" プロパティで指定したコマンドを実行します。" #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "アラームの種類。\"clock\" は指定した日時に動作します。\"timer\" は指定間隔" #~ "ごとに動作します。" #~ msgid "Toggle alarms" #~ msgstr "アラームの切り替え" #~ msgid "Toggle alarms window" #~ msgstr "アラームウィンドウの切り替え" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "アラームウィンドウの表示切り替え" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "アラーム音を連続再生するかどうか" #~ msgid "_Preferences" #~ msgstr "設定(_P)" #~ msgid "_Quit" #~ msgstr "終了(_Q)" alarm-clock-0.4.1/po/ka.po000066400000000000000000000333531435672060600152720ustar00rootroot00000000000000# Georgian translation for alarm-clock # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2011-05-22 20:13+0000\n" "Last-Translator: Giorgi Maghlakelidze \n" "Language-Team: Georgian \n" "Language: ka\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 წუთი" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 წუთი" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 წუთი" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 წუთი" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "%s-ს შესახებ" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "მაღვიძარის შესახებ" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "მაღვიძარა" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "მაღვიძარის გამართვა" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "მაღვიძარები" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "გაფრთხილება" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "გარეგნობა" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "ბრძა_ნება:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "დაკვრა შეუძლებელია" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "'%s'-ს დაკვრა შეუძლებელია: %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "სხვა ბრძანება..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "მორგებული..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "წაშლა" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "არჩეული მაღვიძარის წაშლა" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "მაღვიძარის ჩასწორება" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "არჩეული მაღვიძარის ჩასწორება" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "ჩასწორება..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "ჩართვა" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "არჩეული მაღვიძარის ჩართვა/გათიშვა" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "ყოველდღე" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "პარ" #: data/alarm-clock.ui:1259 msgid "General" msgstr "ზოგადი" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "გაიღვიძეთ, დილაა!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "მაღვიძარით მართვა" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "ორშ" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "ახალი მაღვიძარა" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "ახალი..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "ერთხელ" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "ხმის _დაკვრა" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "ხმის _გამეორება" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "შაბ" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "ხმოვანი ფაილის არჩევა..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "მაღვიძრების _ჩვენება" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "უკუთვლის წარწერის ჩვენება" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "დაყოვნება" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "მაღვიძარის დაყოვნება" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "ყველა მაღვიძარის დაყოვნება" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "ყველა ხმოვანი მაღვიძარის დაყოვნება" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "დაყოვნება:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "არჩეული მაღვიძარის დაყოვნება" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "პროგრამის _გაშვება" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "გაშვება სისტემაში შესვლისას" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "გაჩერება" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "ყველა მაღვიძარის გათიშვა" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "ყველა ხმოვანი მაღვიძარის გათიშვა" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "არჩეული მაღვიძარის გათიშვა" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "კვი" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "ხუთ" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "წამზომი" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "სამ" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "დილით გაღვიძება" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "გაიღვიძე, ძილის გუდავ!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "ოთხ" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "კვირის დღეები" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "შაბათ-კვირა" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "მაღვიძრების დაყოვნება ან გათიშვა შესაძლებელია პროგრამის მენიუში." #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_სახელი:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_გამეორება:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_გამეორება: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_დაყოვნება" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_დრო:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "მაღვიძარა" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "წუთი" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s უკვე გაშვებულია, ეს ითიშება...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "დღეების ჩამონათვალი, როცა განგაში გამეორდება. ეს პარამეტრი გამოყენებადია " #~ "მხოლოდ \"მაღვიძარისთვის\"." #~ msgid "A short message which describes the alarm." #~ msgstr "მაღვიძარის მოკლე აღწერა" #~ msgid "Alarm Message" #~ msgstr "მაღვიძარის შეტყობინება" #~ msgid "Alarm Repeat" #~ msgstr "მაღვიძარის გამეორება" #~ msgid "Alarm Running State" #~ msgstr "მაღვიძარის მდგომარეობა" #~ msgid "Alarm Time" #~ msgstr "მაღვიძარის დრო" #~ msgid "Alarm Timestamp" #~ msgstr "მაღვიძარის დროის ანაბეჭდი" #~ msgid "Alarm Type" #~ msgstr "მაღვიძარის ტიპი" #~ msgid "Alarm!" #~ msgstr "განგაში!" #~ msgid "Command" #~ msgstr "ბრძანება" #~ msgid "Delete alarm" #~ msgstr "მაღვიძარის წაშლა" #~ msgid "Enable/disable" #~ msgstr "ჩართვა/გათიშვა" #~ msgid "Enable/disable alarm" #~ msgstr "მაღვიძარის ჩართვა/გათიშვა" #~ msgid "Indicates whether the alarm has started." #~ msgstr "აჩვენებს მაღვიძარა ჩართულია თუ არა." #~ msgid "New" #~ msgstr "ახალი" #~ msgid "Notification Type" #~ msgstr "შეტყობინების ტიპი" #~ msgid "Quit Alarm Clock" #~ msgstr "გასვლა" #~ msgid "Repeat Sound" #~ msgstr "ხმის გამეორება" #~ msgid "Requires application indicators" #~ msgstr "საჭიროებს პროგრამულ ინდიკატორს" #~ msgid "Snooze alarms" #~ msgstr "მაღვიძარის დაყოვნება" #~ msgid "Sound File" #~ msgstr "ხმოვანი ფაილი" #~ msgid "Stop alarm" #~ msgstr "მაღვიძარის გათიშვა" #~ msgid "Stop alarms" #~ msgstr "მაღვიძრების გათიშვა" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "UNIX დროის ანაბეჭდი მაღვიძარისათვის. უნდა იყოს მითითებული მაღვიძარის " #~ "გააქტიურებამდე." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "შესასრულებელი ბრძანება \"ბძანების\" შეტყობინებისათვის." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "დასაკვრელი ხმოვანი ფაილი \"ხმოვანი\" შეტყობინებისათვის." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "ჩართვის დრო. მიუთითეთ დრო GMT-ს მიხედვით \"მაღვიძარისთვის\", ან დრო " #~ "წამებში \"წამზომისთვის\"." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "მოქმედება მაღვიძარის ჩართვისას. აირჩიეთ ერთ-ერთი: ხმოვანი ფაილის დაკვრა " #~ "(უნდა მიუთითოთ \"sound_file\" ), ან ბრძანების შესრულება (მიუთითებთ ველში " #~ "\"ბრძანება\")" #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "განგაშის სახეობა. \"მაღვიძარა\" ჩაირთვება მოცემულ დროს, ხოლო \"წამზომი\" " #~ "კი - მითითებული დროის შემდეგ." #~ msgid "Toggle alarms" #~ msgstr "მაღვიძრების გადართვა" #~ msgid "Toggle alarms window" #~ msgstr "მაღვიძრების ფანჯრის გადართვა" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "მაღვიძრების ფანჯრის ხილვადობის გადართვა" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "მაღვიძარის ხმის გამეორება." #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "ხატულის მარჯვენა მხარეს წარწერა დროით შემდეგი მაღვიძარის ჩართვამდე." #~ msgid "_Preferences" #~ msgstr "_გამართვა" #~ msgid "_Quit" #~ msgstr "_გასვლა" alarm-clock-0.4.1/po/la.po000066400000000000000000000127671435672060600153010ustar00rootroot00000000000000# Latin translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2010-10-10 03:04+0000\n" "Last-Translator: nivek1385 \n" "Language-Team: Latin \n" "Language: la\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "" #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "" #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Amove classicum exquisitum" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Edi classcium exquisitum" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "" #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Ven" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Generalis" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Lun" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "" #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Sat" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "" #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Sol" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Iov" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Mar" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Mane excita" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Mer" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "dies negotii" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Nomen:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Tempus" #: data/alarm-clock-applet.desktop.in:5 msgid "alarm-clock" msgstr "" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "" #~ msgid "_Preferences" #~ msgstr "_Optiones" alarm-clock-0.4.1/po/ms.po000066400000000000000000000241541435672060600153150ustar00rootroot00000000000000# Malay translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2011-04-03 17:48+0000\n" "Last-Translator: abuyop \n" "Language-Team: Malay \n" "Language: ms\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 minit" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 minit" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 minit" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 minit" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Perihal %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Perihal Alarm Clock" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Jam Penggera" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Keutamaan Alarm Clock" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Penggera" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Waspada" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "Penampilan" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "A_rahan:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "Tidak dapat main" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "Tidak dapat main '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Perintah langganan..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Langganan..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Hapus" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Hapus penggera yang dipilih" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Edit penggera" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Edit penggera yang dipilih" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Edit..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Bolehkan" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Enable/disable penggera yang dipiih" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Setiap hari" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Jumaat" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Am" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Bangun pada waktu pagi!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Urus penggera anda" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Isnin" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Penggera baru" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Baru..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Sekali" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "Main _bunyi" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Ulan_g bunyi" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Sabtu" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Pilih fail bunyi..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Papar _penggera" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "Papar label kira detik" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Tidur" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Tidur penggera" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Tidur semua penggera" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Tidur semua penggera yang berbunyi" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Tidur untuk:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "Tidur penggera yang dipilih" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Mula _Aplikasi" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Mula secara automatik pada log masuk" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Berhenti" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Henti semua penggera" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Henti semua penggera yang berbunyi" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Henti penggera yang dipilih" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Ahad" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Khamis" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Pemasa" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Selasa" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Bangun pada waktu pagi" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Bangunlah wahai tuan hamba!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Rabu" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Hari hari bekerja" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Hujung minggu" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "Anda boleh tidur atau hentikan penggera dari menu Alarm Clock." #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Nama:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Ulang:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Ulang: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_Tidur" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Masa:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Jam Penggera" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "minit" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s telah berjalan, keluar...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Senarai hari yang penggera perlu diulang. Keutamaan ini hanya boleh " #~ "digunakan untuk penggera \"jam\"." #~ msgid "A short message which describes the alarm." #~ msgstr "Mesej ringkas menyatakan tentang penggera." #~ msgid "Alarm Message" #~ msgstr "Mesej Penggera" #~ msgid "Alarm Repeat" #~ msgstr "Penggera Diulang" #~ msgid "Alarm Running State" #~ msgstr "Keadaan Penggera" #~ msgid "Alarm Time" #~ msgstr "Waktu Penggera" #~ msgid "Alarm Timestamp" #~ msgstr "Timestamp Penggera" #~ msgid "Alarm Type" #~ msgstr "Jenis penggera" #~ msgid "Alarm!" #~ msgstr "Penggera!" #~ msgid "Command" #~ msgstr "Arahan" #~ msgid "Delete alarm" #~ msgstr "Hapuskan penggera" #~ msgid "Enable/disable" #~ msgstr "Enable/disable" #~ msgid "Enable/disable alarm" #~ msgstr "Enable/disable penggera" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Menandakan sama ada penggera telah bermula." #~ msgid "New" #~ msgstr "Baru" #~ msgid "Notification Type" #~ msgstr "Jenis Pemberitahuan" #~ msgid "Quit Alarm Clock" #~ msgstr "Keluar dari Alarm Clock" #~ msgid "Repeat Sound" #~ msgstr "Ulang Bunyi" #~ msgid "Requires application indicators" #~ msgstr "Memerlukan penunjuk aplikasi" #~ msgid "Snooze alarms" #~ msgstr "Tidur penggera" #~ msgid "Sound File" #~ msgstr "Fail Bunyi" #~ msgid "Stop alarm" #~ msgstr "Henti penggera" #~ msgid "Stop alarms" #~ msgstr "Henti penggera-penggera" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "Timestamp UNIX untuk penggera. Mesti diset sebelum penggera diaktifkan." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "Perintah untuk jalan bagi jenis notifikasi \"command\"" #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "Fail bunyi untuk main bagi jenis notifikasi \"sound\"." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "Waktu untuk penggera. Hendaklah dalam GMT untuk penggera \"jam\" atau " #~ "jangka masa panjang dalam saat untuk penggera \"pemasa\"." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "Jenis notifikasi untuk digunakan bila penggera berbunyi. Ini boleh " #~ "dilakukan dengan cara: \"sound\" untuk main bunyi (dinyatakan dalam " #~ "properti \"sound_file\"). \"command\" untuk jalan perintah (dinyatakan " #~ "dalam properti \"command\")." #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Jenis penggera. Sama ada \"clock\" untuk penggera pada waktu tertentu " #~ "sehari, atau \"timer\" bagi penggera selepas jangka masa tertentu." #~ msgid "Toggle alarms" #~ msgstr "Togol penggera" #~ msgid "Toggle alarms window" #~ msgstr "Togol tentingkap penggera" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Togol darjah penglihatan bagi tetingkap penggera" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Sama ada untuk diulangi bunyi penggera." #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "" #~ "Sama ada hendak paparkan label pada bahagian kanan ikon dengan masa " #~ "berbaki kepada penggera berikutnya." #~ msgid "_Preferences" #~ msgstr "_Keutamaan" #~ msgid "_Quit" #~ msgstr "_Keluar" alarm-clock-0.4.1/po/nb.po000066400000000000000000000240051435672060600152700ustar00rootroot00000000000000# Norwegian translation of Alarm Clock (bokmål dialect) # Copyright (C) 2010 Johannes H. Jensen # This file is distributed under the same license as the alarm-clock-applet package. # Johannes H. Jensen , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock-applet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2011-01-23 16:52+0000\n" "Last-Translator: Johannes H. Jensen \n" "Language-Team: Norwegian \n" "Language: no\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 minutt" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 minutter" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 minutter" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 minutter" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Om %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Om Alarmklokke" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Alarmklokke" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Innstillinger for Alarmklokke" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Alarmer" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Varsel" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "Utseende" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "Ko_mmando:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "Kunne ikke spille" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "Kunne ikke spille '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Egendefinert kommando..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Egendefinert..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Slett" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Slett den valgte alarmen" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Rediger alarm" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Rediger den valgte alarmen" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Rediger..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Aktivere" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Aktivere/deaktivere den valgte alarmen" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Hver dag" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "fre" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Generelt" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Stå opp om morgenen!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Administrer dine alarmer" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "man" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Ny alarm" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Ny..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "En gang" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "_Spill lyd" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Repe_ter lyd" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "lør" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Velg lydfil..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Vis _alarmer" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "Vis nedtelling" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Slumre" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Slumre alarm" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Slumre alle alarmer" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Slumre alle pipende alarmer" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Slumre for:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "Slumre den valgte alarmen" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Start _Applikasjon" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Start automatisk ved innlogging" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Stopp" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Stopp alle alarmer" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Stopp alle pipende alarmer" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Stopp den valgte alarmen" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "søn" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "tor" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Nedtelling" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "tir" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Våkne opp om morgenen" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Våkn opp trøtthue!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "ons" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Ukedager" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Helger" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "Du kan slumre eller stoppe alarmer fra Alarmklokke-menyen." #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Navn:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Repeter:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Repeter: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_Slumre" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Tid:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Alarmklokke" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "minutter" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s kjører allerede, avslutter...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "En liste av dager når alarmen skal repeteres. Denne innstillingen er kun " #~ "gyldig for \"clock\"-alarmer." #~ msgid "A short message which describes the alarm." #~ msgstr "En kort melding som beskriver alarmen." #~ msgid "Alarm Message" #~ msgstr "Alarmmelding" #~ msgid "Alarm Repeat" #~ msgstr "Alarmrepetering" #~ msgid "Alarm Running State" #~ msgstr "Alarm kjørestatus" #~ msgid "Alarm Time" #~ msgstr "Alarmtid" #~ msgid "Alarm Timestamp" #~ msgstr "Alarmtidsstempel" #~ msgid "Alarm Type" #~ msgstr "Alarmtype" #~ msgid "Alarm!" #~ msgstr "Alarm!" #~ msgid "Command" #~ msgstr "Kommando" #~ msgid "Delete alarm" #~ msgstr "Slett alarm" #~ msgid "Enable/disable" #~ msgstr "Aktivere/deaktivere" #~ msgid "Enable/disable alarm" #~ msgstr "Aktivere/deaktivere alarm" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Indikerer om alarmen har startet." #~ msgid "New" #~ msgstr "Ny" #~ msgid "Notification Type" #~ msgstr "Varslingstype" #~ msgid "Quit Alarm Clock" #~ msgstr "Avslutt Alarmklokke" #~ msgid "Repeat Sound" #~ msgstr "Repeter Lyd" #~ msgid "Requires application indicators" #~ msgstr "Krever applikasjonsindikatorer" #~ msgid "Snooze alarms" #~ msgstr "Slumre alarmer" #~ msgid "Sound File" #~ msgstr "Lydfil" #~ msgid "Stop alarm" #~ msgstr "Stopp alarm" #~ msgid "Stop alarms" #~ msgstr "Stopp alarmer" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "UNIX-tidsstempelet for alarmen. Må settes før alarmen aktiveres." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "Kommandoen som skal kjøres for \"command\"-varsling." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "Lydfilen som skal spilles for \"sound\"-varsling." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "Tiden for alarmen. Skal være i GMT for \"clock\"-alarmer eller lengde i " #~ "sekunder for \"timer\"-alarmer." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "Notifiseringstypen som skal brukes når alarmen går av. Denne kan være en " #~ "av følgende: \"sound\" for å spille en lyd (spesifisert i \"sound_file\" " #~ "innstillingen.) \"command\" for å kjøre en kommando (spesifisert i " #~ "\"command\" innstillingen.)" #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Alarmtypen. Enten \"clock\" for en alarm på en angitt tid på døgnet, eller" #~ "\"timer\" for en alarm etter en angitt tidsperiode." #~ msgid "Toggle alarms" #~ msgstr "Toggle alarmer" #~ msgid "Toggle alarms window" #~ msgstr "Toggle alarmvinduet" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Toggle visningen av alarmvinduet" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Om alarmlyden skal gjentas." #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "" #~ "Vis en nedtelling ved siden av ikonet som angir gjenstående tid til neste " #~ "alarm." #~ msgid "_Preferences" #~ msgstr "_Innstillinger" #~ msgid "_Quit" #~ msgstr "_Avslutt" alarm-clock-0.4.1/po/nl.po000066400000000000000000000223661435672060600153120ustar00rootroot00000000000000# Dutch translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2011-05-13 10:16+0000\n" "Last-Translator: UndiFineD \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 minuut" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 minuten" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 minuten" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 minuten" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Over %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Over Alarmklok" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Alarmklok" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Alarmklok instellingen" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Alarms" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Alert" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "Uiterlijk" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "Op_dracht:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "Kon niet afspelen" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "Kon '%s' niet afspelen: %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Aangepaste opdracht..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Speciaal..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Wis" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Wis het geselecteerde alarm" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Wijzig alarm" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Wijzig het geslecteerde alarm" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Wijzig..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Activeer" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Activeer/deactiveer het geselecteerde alarm" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Dagelijks" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Vrij" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Algemeen" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Opstaan!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Beheer alarms" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Ma" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Nieuw alarm" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Nieuw..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "Speel _geluid" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Herhaa_l geluid" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Zat" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Geluidsbestand selecteren..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Toon _alarms" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "Toon aftelling" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Sluimer" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Sluimer alarm" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Sluimer alle alarms" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Sluimer alle hoorbare alarms" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Sluimer voor:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "Sluimer het geselecteerde alarm" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Start _Applicatie" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Start automatisch bij inloggen" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Stop" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Stop alle alarms" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Stop alle hoorbare alarms" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Stop het geselecteerde alarm" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Zon" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Don" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Timer" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "di" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Wakker worden" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Wakker worden slaapkop!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "wo" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Werkdagen" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Weekenden" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Naam:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Herhalen" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Herhaal: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_Sluimeren" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Tijd:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Alarmklok" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "minuten" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Een lijst met dagen dat het alarm herhaald moet worden. Deze instelling " #~ "is alleen van toepassing op \"klok\" alarms." #~ msgid "A short message which describes the alarm." #~ msgstr "Een korte omschrijving van het alarm." #~ msgid "Alarm Message" #~ msgstr "Alarmbericht" #~ msgid "Alarm Repeat" #~ msgstr "Herhaling van het alarm" #~ msgid "Alarm Running State" #~ msgstr "Alarmstatus" #~ msgid "Alarm Time" #~ msgstr "Alarmtijd" #~ msgid "Alarm Timestamp" #~ msgstr "Alarm timestamp" #~ msgid "Alarm Type" #~ msgstr "Alarm type" #~ msgid "Alarm!" #~ msgstr "Alarm!" #~ msgid "Command" #~ msgstr "Actie" #~ msgid "Delete alarm" #~ msgstr "Wis alarm" #~ msgid "Enable/disable" #~ msgstr "Activeer/deactiveer" #~ msgid "Enable/disable alarm" #~ msgstr "Activeer/deactiveer alarm" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Geeft aan of het alarm is gestart." #~ msgid "New" #~ msgstr "Nieuw" #~ msgid "Notification Type" #~ msgstr "Notificatie type" #~ msgid "Quit Alarm Clock" #~ msgstr "Beëindig Alarmklok" #~ msgid "Repeat Sound" #~ msgstr "Herhaal geluid" #~ msgid "Snooze alarms" #~ msgstr "Sluimer alarms" #~ msgid "Sound File" #~ msgstr "Geluidsbestand" #~ msgid "Stop alarm" #~ msgstr "Stop alarm" #~ msgid "Stop alarms" #~ msgstr "Stop alarms" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "De UNIX timestamp voor het alarm. Dit moet worden ingesteld voor het " #~ "alarm is geactiveerd." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "De uit te voeren actie voor het \"command\" notificatie type." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "" #~ "Het af te spelen geluidsbestand voor het \"geluid\" notificatie type." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "De tijd voor het alarm. Dit moet GMT notatie zijn voor \"klok\" alarms of " #~ "de lengte in seconden voor \"timer\" alarms." #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Het alarm-type. \"Klok\" voor een ingesteld alarm op een specifieke tijd, " #~ "of \"timer\" voor een alarm na een verstreken tijdsperiode." #~ msgid "Toggle alarms" #~ msgstr "Alarm aan/uit" #~ msgid "Toggle alarms window" #~ msgstr "Alarmvenster aan/uit" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Alarmvenster zichtbaar aan/uit" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Of het alarm herhaald moet worden." #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "" #~ "Of een label getoond moet worden rechts van het pictogram met de " #~ "resterende tijd tot het volgende alarm." #~ msgid "_Preferences" #~ msgstr "_Voorkeuren" alarm-clock-0.4.1/po/nn.po000066400000000000000000000201111435672060600152760ustar00rootroot00000000000000# Norwegian Nynorsk translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2011-04-30 15:02+0000\n" "Last-Translator: Johannes H. Jensen \n" "Language-Team: Norwegian Nynorsk \n" "Language: nn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 minutt" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 minutt" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 minutt" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 minutt" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Varslingsur" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "" #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "" #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "" #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "" #: data/alarm-clock.ui:1259 msgid "General" msgstr "" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "" #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "" #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Vakne om morgonen" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Varslingsur" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Ei liste over dagar kor varslinga skal gjentakast. Innstillinga er berre " #~ "gjeldande for \"clock\" varslingar." #~ msgid "A short message which describes the alarm." #~ msgstr "Ei kort melding som beskriv varslinga." #~ msgid "Alarm Message" #~ msgstr "Varslingsmelding" #~ msgid "Alarm Repeat" #~ msgstr "Varslingsgjentaking" #~ msgid "Alarm Running State" #~ msgstr "Varsling kjøyrestatus" #~ msgid "Alarm Time" #~ msgstr "Varslingstid" #~ msgid "Alarm Timestamp" #~ msgstr "Varslingstidsstempel" #~ msgid "Alarm Type" #~ msgstr "Varslingstype" #~ msgid "Alarm!" #~ msgstr "Varsling!" #~ msgid "Command" #~ msgstr "Kommando" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Indikerer om varslinga har starta." #~ msgid "Notification Type" #~ msgstr "Varslingstype" #~ msgid "Repeat Sound" #~ msgstr "Gjenta lyd" #~ msgid "Sound File" #~ msgstr "Lydfil" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "UNIX-tidsstempel for varslinga. Må settast før varslinga er starta." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "Kommandoen som skal kjøyrast for \"command\"-varsling." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "Lydfilen som skal spelast for \"sound\"-varsling." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "Tida for varslinga. Skal vere i GMT for \"clock\"-varslingar eller lengde " #~ "i sekund for \"timer\"-varslingar." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "Notifiseringstypen som skal nyttast når varslinga går av. Vel ein av " #~ "disse: \"sound\" for å spille ein lyd (spesifisert i \"sound_file\"-" #~ "innstillinga), \"command\" for å køyre ein kommando (spesifisert i " #~ "\"command\"-innstillinga)." #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Varslingstypa. Enten \"clock\" for ei varsling på ei gitt tid av døgnet, " #~ "eller \"timer\" for ei varsling etter ei gitt tid." #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Om varslingslyden skal gjentakast." alarm-clock-0.4.1/po/pl.po000066400000000000000000000230251435672060600153050ustar00rootroot00000000000000# Polish translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2011-06-15 20:08+0000\n" "Last-Translator: Piotr Kozica (\"koza\") \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 minuta" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 minut" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 minuty" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 minut" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "O %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "O budziku" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Budzik" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Preferencje budzika" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Alarmy" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Ostrzeżenie" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "Wygląd" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "_Polecenie:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "Nie udało się odtworzyć" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "Nie udało się odtworzyć '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Własne polecenie..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Własne..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Usuń" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Usuń zaznaczony alarm" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Modyfikuj alarm" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Modyfikuj zaznaczony alarm" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Edytuj..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Włącz" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Włącz/wyłącz wybrany alarm" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Codziennie" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Pt" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Ogólne" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Wstań rano!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Zarządzaj alarmami" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Pon" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Nowy alarm" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Nowe..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Raz" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "Odtwórz _dzwięk" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Powtórz dzwięk" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "So" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Wybór pliku dźwiękowego..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Pokaż _alarmy" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "Wyświetl etykietę odliczania" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Drzemka" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Uśpij alarm" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Uśpij wszystkie alarmy" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Uśpij wszystkie dzwoniące alarmy" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Uśpij na:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "Uśpij wybrany alarm" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Start _Application" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Uruchom automatycznie podczas logowania" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Zatrzymaj" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Zatrzymaj wszystkie alarmy" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Zatrzymaj wszystkie dzwoniące alarmy" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Zatrzymaj wybrany alarm" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Nie" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Czw" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Stoper" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Wto" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Obudź się rano" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Obudź się, śpiochu!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Śro" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Dni robocze" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Weekendy" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "Możesz odwlec lub zatrzymać alarmy używając menu programu Alarm Clock." #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Nazwa:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Powtórz:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Powtórz: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_Drzemka" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Czas:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Budzik" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "minut" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s jest już włączone, kończę...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Lista dni w których alarm by się miał powtarzać. To ustawienie tylko " #~ "dotyczy \"zegarowych\" alarmów." #~ msgid "A short message which describes the alarm." #~ msgstr "Krótka wiadomość opisująca alarm." #~ msgid "Alarm Message" #~ msgstr "Wiadomość alarmu" #~ msgid "Alarm Repeat" #~ msgstr "Powtarzanie alarmu" #~ msgid "Alarm Running State" #~ msgstr "Stan Działania Alarmu" #~ msgid "Alarm Time" #~ msgstr "Czas alarmu" #~ msgid "Alarm Timestamp" #~ msgstr "Znaczniki Czasu Alarmu" #~ msgid "Alarm Type" #~ msgstr "Typ alarmu" #~ msgid "Alarm!" #~ msgstr "Alarm!" #~ msgid "Command" #~ msgstr "Polecenie" #~ msgid "Delete alarm" #~ msgstr "Usuń alarm" #~ msgid "Enable/disable" #~ msgstr "Włącz/wyłącz" #~ msgid "Enable/disable alarm" #~ msgstr "Włącz/wyłącz alarm" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Wskazuje, czy alarm został uruchomiony." #~ msgid "New" #~ msgstr "Nowy" #~ msgid "Notification Type" #~ msgstr "Typ powiadomienia" #~ msgid "Quit Alarm Clock" #~ msgstr "Zakończ budzik" #~ msgid "Repeat Sound" #~ msgstr "Powtarzanie dźwięku" #~ msgid "Snooze alarms" #~ msgstr "Uśpij alarmy" #~ msgid "Sound File" #~ msgstr "Plik dźwiękowy" #~ msgid "Stop alarm" #~ msgstr "Zatrzymaj alarm" #~ msgid "Stop alarms" #~ msgstr "Zatrzymaj alarmy" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "Znaczniki czasu UNIX dla alarmu. Muszą być ustawione przed aktywacją " #~ "alarmu." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "Komenda dla powiadomienia typu \"komenda\"." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "Plik dźwiękowy dla powiadomienia dźwiękowego." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "Czas alarmu.Według czasu Greenwich dla alarmów zegarowych, długość w " #~ "sekundach dla alarmów czasowych." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "Typ powiadomienia po wyłączeniu alarmu." #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Typ alarmu. Zegarowy - dla alarmów o określonej godzinie, czasowy - dla " #~ "alarmów po upływie określonego czasu." #~ msgid "Toggle alarms" #~ msgstr "Odwróć stan alarmów" #~ msgid "Toggle alarms window" #~ msgstr "Włącz okno alarmów" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Włącz widoczność okna alarmów" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Powtarzaj alarm dźwiękowy" #~ msgid "_Preferences" #~ msgstr "_Preferencje" #~ msgid "_Quit" #~ msgstr "_Wyjdź" alarm-clock-0.4.1/po/pt.po000066400000000000000000000141671435672060600153240ustar00rootroot00000000000000# Portuguese translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2010-03-16 18:18+0000\n" "Last-Translator: Johannes H. Jensen \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 minuto" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 minutos" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 minutos" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 minutos" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Alarmes" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "Co_mando:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "" #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Personalizar..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Apagar" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "" #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "" #: data/alarm-clock.ui:1259 msgid "General" msgstr "" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "" #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "" #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Despertar de manhã" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "" #: data/alarm-clock-applet.desktop.in:5 msgid "alarm-clock" msgstr "" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "" #~ msgid "A short message which describes the alarm." #~ msgstr "Uma pequena mensagem que descreva o alarme." #~ msgid "Alarm Message" #~ msgstr "Mensagem do Alarme" #~ msgid "Alarm Repeat" #~ msgstr "Repetição do Alarme" #~ msgid "Alarm Running State" #~ msgstr "Estado Actual do Alarme" #~ msgid "Alarm Time" #~ msgstr "Tempo do Alarme" #~ msgid "Alarm Type" #~ msgstr "Tipo de Alarme" #~ msgid "Command" #~ msgstr "Comando" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Indica se o alarme foi iniciado." #~ msgid "Notification Type" #~ msgstr "Tipo de notificação" #~ msgid "Repeat Sound" #~ msgstr "Repetir Som" #~ msgid "Sound File" #~ msgstr "Ficheiro de Som" alarm-clock-0.4.1/po/pt_BR.po000066400000000000000000000250511435672060600157010ustar00rootroot00000000000000# Brazilian Portuguese translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2012-03-25 16:29+0000\n" "Last-Translator: Belenos Govannnon \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 minuto" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 minutos" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 minutos" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 minutos" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Sobre o %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Sobre o Alarme" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Alarme" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Opções do Alarme" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Alarmes" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Alerta" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "Aparência" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "Co_mando:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" "Não foi possível criar o reprodutor! Verifique suas configurações de som." #: src/ui.c:389 msgid "Could not play" msgstr "Impossível reproduzir" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "Impossível reproduzir '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Comando personalizado..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Personalizar..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Excluir" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Remove o alarme escolhido." #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Editar alarme" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Edit o alarme escolhido" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Editar..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Habilitar" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Habilita/desabilita o alarme escolhido" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Todos os dias" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Sex" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Geral" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Acorde de manhã!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Administre seus alarmes" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Seg" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Novo alarme" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Novo..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Uma vez" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "Reproduzir _som" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Repe_tir som" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Sáb" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Selecionar arquivo de som..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Mostrar _alarmes" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "Mostrar rótulo de contagem regressiva" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Soneca" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Repetir alarme daqui a pouco" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Repetir todos os alarmes daqui a pouco" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Repetir todos os alarmes que estão tocando daqui a pouco" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Soneca de:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "Repetir o alarme escolhido daqui a pouco" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Iniciar _Aplicativo" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Iniciar automaticamente ao entrar no sistema" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Parar" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Interromper todos os alarmes" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Interromper todos os alarmes que estão tocando" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Interromper alarme escolhido" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Dom" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Qui" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Cronômetro" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Ter" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Acordar de manhã" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Acorde, dorminhoco(a)!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Qua" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Dias da semana" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Finais de semana" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "Você pode adiar ou interromper alarmes do menu do Alarme." #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Nome:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Repetir:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Repetir: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_Adiar" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Hora:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Alarme" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "minutos" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s já está em execução. saindo...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Uma lista de dias em que o alarme deve se repetir. Essa configuração " #~ "somente se aplica a alarmes de relógio." #~ msgid "A short message which describes the alarm." #~ msgstr "Uma pequena mensagem descrevendo o alarme." #~ msgid "Alarm Message" #~ msgstr "Mensagem do Alarme" #~ msgid "Alarm Repeat" #~ msgstr "Repetição do Alarme" #~ msgid "Alarm Running State" #~ msgstr "Estado de Funcionamento do Alarme" #~ msgid "Alarm Time" #~ msgstr "Hora do Alarme" #~ msgid "Alarm Timestamp" #~ msgstr "Carimbo de Hora do Alarme" #~ msgid "Alarm Type" #~ msgstr "Tipo de Alarme" #~ msgid "Alarm!" #~ msgstr "Alarme!" #~ msgid "Command" #~ msgstr "Comando" #~ msgid "Delete alarm" #~ msgstr "Excluir alarme" #~ msgid "Enable/disable" #~ msgstr "Habilitar/desabilitar" #~ msgid "Enable/disable alarm" #~ msgstr "Habilitar/desabilitar alarme" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Indica se o alarme foi iniciado." #~ msgid "New" #~ msgstr "Novo" #~ msgid "Notification Type" #~ msgstr "Tipo de Notificação" #~ msgid "Quit Alarm Clock" #~ msgstr "Sair do Alarm" #~ msgid "Repeat Sound" #~ msgstr "Som de repetição" #~ msgid "Requires application indicators" #~ msgstr "Necessita do aplicativo de indicação" #~ msgid "Snooze alarms" #~ msgstr "Repetir alarmes daqui a pouco" #~ msgid "Sound File" #~ msgstr "Arquivo de Som" #~ msgid "Stop alarm" #~ msgstr "Interromper alarme" #~ msgid "Stop alarms" #~ msgstr "Interromper alarmes" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "O carimbo de tempo UNIX do alarme. Deve ser obrigatoriamente definido " #~ "antes de se ativar o alarme." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "" #~ "O comando a ser executado quando o tipo de notificação for \"Comando\"." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "" #~ "O arquivo de som a ser tocado quando o tipo de notificação for \"Som\"." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "A hora para o alarme tocar. Deve ser informado em GMT para alarmes de " #~ "relógio ou em segundos para alarmes regressivos." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "Tipo de notificação a ser usado quando o alarme tocar. Pode ser um dos " #~ "seguintes: \"som\" para tocar um som (especificado na propriedade " #~ "\"arquivo_de_som\"), \"comando\" para executar uma instrução " #~ "(especificada na propriedade \"comando\")." #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Tipo de alarme. Pode ser \"relógio\" para o alarme tocar a uma hora " #~ "específica do dia ou \"regressivo\" para ele tocar após um período de " #~ "tempo específico." #~ msgid "Toggle alarms" #~ msgstr "Alternar alarmes" #~ msgid "Toggle alarms window" #~ msgstr "Alternar janelas dos alarmes" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Alterna a visibilidade das janelas dos alarmes" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Especificar se se deve repetir o som do alarme." #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "" #~ "Se mostra rótulo no lado direito do ícone com o tempo faltando para o " #~ "próximo alarme." #~ msgid "_Preferences" #~ msgstr "_Preferências" #~ msgid "_Quit" #~ msgstr "_Sair" alarm-clock-0.4.1/po/ru.po000066400000000000000000000277711435672060600153340ustar00rootroot00000000000000# Russian translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2012-05-16 05:33+0000\n" "Last-Translator: Alexey Ivanov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 минута" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 минут" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 минуты" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 минут" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "О программе %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "О программе" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Будильник" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Настройки Alarm Clock" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Будильники" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Тревога" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "Внешний вид" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "Ко_манда:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "Невозможно воспроизвести звук! Пожалуйста, проверьте настройки звука." #: src/ui.c:389 msgid "Could not play" msgstr "Невозможно воспроизвести" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "Невозможно воспроизвести '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Другая команда..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Другой..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Удалить" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Удалить выбранный будильник" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Редактировать будильник" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Редактировать выбранный будильник" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Редактировать..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Включить" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Включить/выключить выбранный будильник" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Ежедневно" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Пт" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Основные" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Утренний подъем!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Управление будильниками" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Пн" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Новый будильник" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Новый..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Однократно" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "Проиграть_звук" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Повтор_звука" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Сб" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Выбрать звуковой файл..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Показать_будильники" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "Показывать счетчик обратного отсчета" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Отложить" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Отложить будильник" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Отложить все будильники" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Отложить все звуковые будильники" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Отложить на:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "Отложить выбранный будильник" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Запуск _приложения" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Запускать при входе в систему" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Остановить" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Выключить все будильники" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Выключить все звуковые будильники" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Выключить выбранный будильник" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Вс" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Чт" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Таймер" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Вт" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Вставайте по утрам" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Подъем, Соня!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Ср" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Будни" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Выходные" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "Отложить или отключить будильники можно в Меню будильника" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Имя" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Повторить:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "Повтор: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "Отложить" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "Время:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Будильник" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "минут(ы)" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s уже включён, выходим...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Повтор будильника по дням. Настройка только для будильников \"по времени" #~ "\"." #~ msgid "A short message which describes the alarm." #~ msgstr "Краткое сообщение, описывающее будильник." #~ msgid "Alarm Message" #~ msgstr "Сообщение будильника" #~ msgid "Alarm Repeat" #~ msgstr "Повтор будильника" #~ msgid "Alarm Running State" #~ msgstr "Область запуска будильника" #~ msgid "Alarm Time" #~ msgstr "Время сигнала" #~ msgid "Alarm Timestamp" #~ msgstr "Временная отметка сигнала" #~ msgid "Alarm Type" #~ msgstr "Тип сигнала" #~ msgid "Alarm!" #~ msgstr "Подъем!" #~ msgid "Command" #~ msgstr "Команда" #~ msgid "Delete alarm" #~ msgstr "Удалить будильник" #~ msgid "Enable/disable" #~ msgstr "Включить/выключить" #~ msgid "Enable/disable alarm" #~ msgstr "Включить/выключить будильник" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Будильник включён" #~ msgid "New" #~ msgstr "Новый" #~ msgid "Notification Type" #~ msgstr "Тип оповещения" #~ msgid "Quit Alarm Clock" #~ msgstr "Выйти" #~ msgid "Repeat Sound" #~ msgstr "Повтор сигнала" #~ msgid "Requires application indicators" #~ msgstr "Требует индикатор приложений" #~ msgid "Snooze alarms" #~ msgstr "Отложить будильники" #~ msgid "Sound File" #~ msgstr "Звуковой файл" #~ msgid "Stop alarm" #~ msgstr "Выключить будильник" #~ msgid "Stop alarms" #~ msgstr "Выключить будильники" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "Временная отметка UNIX для будильника. Должна быть установлена до " #~ "активации будильника." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "Выполнить команду (если настроено выполнение команды)" #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "Звуковой файл для проигрывания в режиме \"звук\"." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "Время срабатывания. Укажите в GMT для будильника \"по времени\" или в " #~ "секундах для таймера." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "Что делать при срабатывании будильника? Выберите один из вариантов: " #~ "проиграть звук (указывается в настройке \"звуковой_файл\") или выполнить " #~ "команду (указывается в настройке \"команда\")." #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Тип будильника. \"По времени\" - в конкретное время дня или \"таймер\" - " #~ "по истечении определенного периода." #~ msgid "Toggle alarms" #~ msgstr "Переключить будильники" #~ msgid "Toggle alarms window" #~ msgstr "Переключить окно будильников" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Переключить видимость окна будильников" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Повторять звук будильника" #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "" #~ "Показывать надпись слева от значка со временем следующего будильника" #~ msgid "_Preferences" #~ msgstr "_Настройки" #~ msgid "_Quit" #~ msgstr "В_ыход" alarm-clock-0.4.1/po/si.po000066400000000000000000000331041435672060600153040ustar00rootroot00000000000000# Sinhalese translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2012-05-25 09:24+0000\n" "Last-Translator: පසිඳු කාවින්ද \n" "Language-Team: Sinhalese \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "මිනිත්තුවක්" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "මිනිත්තු 10 ක්" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "මිනිත්තු 3 ක්" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "මිනිත්තු 5 ක්" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "%s සම්බන්ධව" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "සංඥා ඔරලෝසුව ගැන" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "සංඳාකිරීමේ ඔරලෝසුව" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "සංඥා ඔරලෝසු වර්ග" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "සංඥා" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "අවධානය" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "මුහුණුවර" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "විධානය" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "දාවකයක් සැදීමට නොහැක.කරුණාකර ඔබගේ සංගීත විදාන පරීක්ශා කරන්න" #: src/ui.c:389 msgid "Could not play" msgstr "ක්‍රියාත්මක කිරීමට නොහැක" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "ක්‍රියාත්මක කිරීමට නොහැක '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "පුරුදු නියෝගය..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "භාවිතාව" #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "මකන්න" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "තොරගන්නා ලද සංඥාව ඉවත් කිරීම" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "සංඥා සංස්කරණය" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "තොරගන්නා ලද සංඥාව සංස්කරණය" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "සකසන්න..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "සක්‍රීය කරන්න" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "තෝරගන්නා ලද සංඥාව සැකසිමේ/ක්‍රියාවිරහිත කිරීම" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "සෑම දිනකම" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "සිකුරාදා" #: data/alarm-clock.ui:1259 msgid "General" msgstr "පොදු" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "උදෑසන පිබිදීම" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "ඔබගේ සංඥා කළමණාකරනය" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "සඳුදා" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "නව සංඥාව" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "නව..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "එක් වරක්" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "ක්‍රියාත්මක ශබ්දය" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "නැවත කියවීමේ _ශබ්දය" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "සෙනසුරාදා" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "සංගීත ගොනුව තෝරගන්න..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "සංඥා _දැක්වීම" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "ගණන ලේබලය දැක්වීම" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "මද වේලාවක් නිදීම" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "විරාම සංඥාව" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "සියලු සංඥා ඔරලෝසු විරාම ගන්වන්න" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "සියලුම නාද ශබ්දයන් මදවේලාවක් නිදීම" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "කෙටි විරාමයක් සදහා" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "කෙටි විරාමයක් සදහා තෝරාගන්නා ලද සංඥාව" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "නියැලුම _ආරම්භය" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "ලොගින් එකෙ සිට ස්වයංක්‍රීයව ආරම්භ කරන්න" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "නවත්වන්න" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "සියලු සංඥා ඔරලෝසු නවත්වන්න" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "සියලුම නාද ශබ්දයන් නැවැත්වීම" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "තෝරාගන්නා ලද සංඥාව නතර කිරිම" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "ඉරිදා" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "බ්‍රහස්පතින්දා" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "වේලා ගණකය" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "අගහරුවාදා" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "උදෑසන පිබිදීම" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "නැගිටීම" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "බදාදා" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "සතියේ දින" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "සති අන්තයන්" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "සංඥා ඔරලෝසුව නැවත්වීම හෝ විරාම ගැන්වීම ඔරලෝසු මෙනුවෙන් කල හැකිය" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "නම (_N):" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_නැවත කියවීම" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "නැවත කියාකරවන්න(_k): %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_කෙටි විරාමය" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "වේලාව (_වේ):" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "සංඳාකිරීමේ ඔරලෝසුව" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "මිනිත්තු" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s දැනටමත් ක්‍රියත්මකවෙමින් පවතී, ...නවතිමින් ඇත\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "දවස අනුව සංඥාව නැවත දැක්විය යුතුය. කට්ටල අංග යෙදිය හැකිවන්නේ ඔරලෝසුවට පමණි." #~ msgid "A short message which describes the alarm." #~ msgstr "කෙටි සංඥා පණිවිඩයක්" #~ msgid "Alarm Message" #~ msgstr "සංඥා පණිවිඩය" #~ msgid "Alarm Repeat" #~ msgstr "සංඥා නැවත කිරිම" #~ msgid "Alarm Running State" #~ msgstr "සංඥා ක්‍රියාත්මක තත්වය" #~ msgid "Alarm Time" #~ msgstr "සංඥා කාලය" #~ msgid "Alarm Timestamp" #~ msgstr "සම්මත සංඥාව" #~ msgid "Alarm Type" #~ msgstr "සංඥා වර්ගය" #~ msgid "Alarm!" #~ msgstr "සංඥාව!" #~ msgid "Command" #~ msgstr "විධානය" #~ msgid "Delete alarm" #~ msgstr "සංඥාව ඉවත් කිරීම" #~ msgid "Enable/disable" #~ msgstr "සැකසිමේ/ක්‍රියාවිරහිත කිරිමේ" #~ msgid "Enable/disable alarm" #~ msgstr "සංඥා ඔරලෝසුව ක්‍රියත්මක කරවන්න/ක්‍රියත්මක කරවන්න එපා" #~ msgid "Indicates whether the alarm has started." #~ msgstr "සංඥාවේ ආරම්භය දැක්වීම හෝ" #~ msgid "New" #~ msgstr "නව" #~ msgid "Notification Type" #~ msgstr "නිවේදන වර්ගය" #~ msgid "Quit Alarm Clock" #~ msgstr "සංඥා ඔරලෝසුවෙන් ඉවත් වන්න" #~ msgid "Repeat Sound" #~ msgstr "ශබ්ද නැවත කියවීම" #~ msgid "Requires application indicators" #~ msgstr "යෙදවුම් දර්ශකයන් අවශ්‍ය වේ." #~ msgid "Snooze alarms" #~ msgstr "සංඥා ඔරලෝසු විරාම ගන්වන්න" #~ msgid "Sound File" #~ msgstr "ශබ්ද ගොනුව" #~ msgid "Stop alarm" #~ msgstr "සංඥාව නැවතීම" #~ msgid "Stop alarms" #~ msgstr "සංඥා ඔරලෝසු නවත්වන්න" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "සංඥාව සදහා යුනික්ස් සලකුණ.සංඥාව ක්‍රියාත්මක කිරීමට පෙර සැකසිය යුතුය." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "\"විධානය\" නිවේදන වර්ගය ක්‍රියාත්මක කිරිමට" #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "ශබ්ද ගොනුව ශබ්ද නිවේදන වර්ගය ක්‍රියාත්මක කිරිමට" #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "සංඥා සදහා කාලය.සම්මත කාලය ඔරලෝසු සංඥා හෝ කාල පරාසය අනුව කාලගණන සංඥාටද යෙදිය " #~ "යුතුය." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "නිවේදන වර්ගය අනුව සංඥාව පැමිණීම." #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "සංඥා වර්ගය අනුව දවසක විශේෂිත වේලාව දැක්වීම සදහා \"ඔරලෝසුව\" හෝ සද විශේෂිත කාලයකට " #~ "පසුව සංඥා දැක්වීමට \"කාලගණනය\" යොදාගැනේ." #~ msgid "Toggle alarms" #~ msgstr "සංඥා ඔරලෝසු ටොගල් කරන්න" #~ msgid "Toggle alarms window" #~ msgstr "සංඥා ඔරලෝසු කවුළුව ටොගල් කරන්න" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "සංඥා ඔරලෝසු කවුළු වල දර්ශනීය බව ටොගල් කරන්න" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "එක්කෝ සංඥා ශබ්දය නැවත කියවීම" #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "ඊලග සංඥා සලකුණේ නිවැරදි පැත්ත දැක්වීම" #~ msgid "_Preferences" #~ msgstr "රුචි අරුචි" #~ msgid "_Quit" #~ msgstr "ඉවත් වෙන්න (_Q)" alarm-clock-0.4.1/po/sv.po000066400000000000000000000166101435672060600153240ustar00rootroot00000000000000# Swedish translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2012-02-17 08:20+0000\n" "Last-Translator: Rikard Edgren \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 minut" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 minuter" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 minuter" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 minuter" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Om %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Om Väckarklocka" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Väckarklocka" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Inställningar för Väckarklocka" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Alarm" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Varning" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "Utseende" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "Ko_mmando:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "" #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Anpassad..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Ta bort" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Ta bort markerat alarm" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Redigera alarm" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Redigera markerat alarm" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Redigera..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Aktivera" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Varje dag" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Fre" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Allmänt" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Mån" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Nytt alarm" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Ny ..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "En gång" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Lör" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Välj ljudfil..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Visa _alarm" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "Visa nedräkning" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Slumra" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Slumra alarm" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Slumra alla alarm" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Stoppa" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Stoppa alla alarm" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Sön" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Tor" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Tis" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Vakna på morgonen" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Ons" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Veckodagar" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Helger" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Namn:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Upprepa:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_Slumra" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Tid:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Väckarklocka" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "minuter" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "En lista på dagar när alarmet ska återupprepas. Denna inställning är " #~ "endast tillgänglig för väckarklockor." #~ msgid "A short message which describes the alarm." #~ msgstr "En kort beskrivning av alarmet" #~ msgid "Alarm Message" #~ msgstr "Alarm-meddelande" #~ msgid "Alarm Repeat" #~ msgstr "Återupprepa alarm" #~ msgid "Alarm Running State" #~ msgstr "Tillstånd: Alarmet körs" #~ msgid "Alarm Time" #~ msgstr "Alarmtid" #~ msgid "Alarm Timestamp" #~ msgstr "Tidsstämpel för alarm" #~ msgid "Alarm Type" #~ msgstr "Alarmtyp" #~ msgid "Alarm!" #~ msgstr "Alarm!" #~ msgid "Command" #~ msgstr "Kommando" #~ msgid "Delete alarm" #~ msgstr "Ta bort alarm" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Indikerar om alarmet har startat." #~ msgid "New" #~ msgstr "Ny" #~ msgid "Notification Type" #~ msgstr "Meddelandetyp" #~ msgid "Repeat Sound" #~ msgstr "Upprepa ljud" #~ msgid "Snooze alarms" #~ msgstr "Slumra alarm" #~ msgid "Sound File" #~ msgstr "Ljudfil" #~ msgid "Stop alarm" #~ msgstr "Stoppa alarm" #~ msgid "Stop alarms" #~ msgstr "Stoppa alarm" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "UNIX-tidsstämpeln för alarmet. Måste sättas innan alarmet aktiveras." #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Om alarmljudet ska upprepas." #~ msgid "_Preferences" #~ msgstr "_Inställningar" #~ msgid "_Quit" #~ msgstr "_Avsluta" alarm-clock-0.4.1/po/tr.po000066400000000000000000000244041435672060600153210ustar00rootroot00000000000000# Turkish translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2012-03-20 12:18+0000\n" "Last-Translator: Hasan Yılmaz \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 dakika" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 dakika" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 dakika" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 dakika" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Hakkında %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Çalar Saat Hakkında" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Çalar Saat" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Çalar Saat Tercihleri" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Alarmlar" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Uyarı" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "Görünüm" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "Ko_mut:" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "Oynatıcı oluşturulamadı! Lütfen ses ayarlarınızı denetleyin." #: src/ui.c:389 msgid "Could not play" msgstr "Oynatılamadı." #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "'%s':%s oynatılamadı" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Özel komut..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Özel..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Sil" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Seçilen alarmı sil" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Alarmı düzenle" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Seçilen alarmı düzenle" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Düzenle..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Etkin" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Seçilen alarmı etkinleştir/devre dışı bırak" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Her gün" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Cu" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Genel" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Sabaha kalk!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Alarmlarını yönet" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Pts" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Yeni alarm" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Yeni..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Bir kez" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "_Sesi çal" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Sesi Tekrarl_a" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Cts" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Ses dosyası seçin..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "_Alarmları göster" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "Geri sayım etiketini göster" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Ertele" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Alarmı ertele" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Tüm alarmları ertele" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Tüm sesli uyarı alarmlarını ertele" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Ertele:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "Seçilen alarmı ertele" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "_Uygulamayı Başlat" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Açılışta otamatik başlat" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Durdur" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Bütün alarmları kapat" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Bütün sesli uyarı alarmlarını kapat" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Seçilen alarımı kapat" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Pzr" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Prş" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Zamanlayıcı" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Sal" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Sabah uyandır" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Uykucu, kalk haydi!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Çrş" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "Hafta içi günler" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "Hafta sonları" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "Çalar Saat menüsünden alarmları erteleyebilir yada kapatabilirsiniz." #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Adı:" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Tekrarla:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Tekrarla: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "_Ertele" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Saat:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Çalar Saat" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "dakikalar" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s halen koşmakta, çıkılıyor...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Alarmın tekrar edeceği günlerin listesi. Bu ayarlar sadece \"saat\" " #~ "alarmlarına uygulanabilir." #~ msgid "A short message which describes the alarm." #~ msgstr "Alarmı açıklayan kısa bir ileti." #~ msgid "Alarm Message" #~ msgstr "Alarm iletisi" #~ msgid "Alarm Repeat" #~ msgstr "Alarm tekrarı" #~ msgid "Alarm Running State" #~ msgstr "Alarm Çalışma Durumu" #~ msgid "Alarm Time" #~ msgstr "Alarm Zamanı" #~ msgid "Alarm Timestamp" #~ msgstr "Alarm Tarih bilgisi" #~ msgid "Alarm Type" #~ msgstr "Alarm Türü" #~ msgid "Alarm!" #~ msgstr "Alarm!" #~ msgid "Command" #~ msgstr "Komut" #~ msgid "Delete alarm" #~ msgstr "Alarmı sil" #~ msgid "Enable/disable" #~ msgstr "Etkin/devre dışı" #~ msgid "Enable/disable alarm" #~ msgstr "Alarmı etkinleştir/devre dışı bırak" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Alarmın başlayıp başlamadığını belirtir." #~ msgid "New" #~ msgstr "Yeni" #~ msgid "Notification Type" #~ msgstr "Bildirim Türü" #~ msgid "Quit Alarm Clock" #~ msgstr "Çalar Saati kapat" #~ msgid "Repeat Sound" #~ msgstr "Sesi Tekrarla" #~ msgid "Requires application indicators" #~ msgstr "Uygulama göstergeçlerine gereksinim duyar" #~ msgid "Snooze alarms" #~ msgstr "Alarmları ertele" #~ msgid "Sound File" #~ msgstr "Ses Dosyası" #~ msgid "Stop alarm" #~ msgstr "Alarmı kapat" #~ msgid "Stop alarms" #~ msgstr "Alarmları kapat" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "Alarm için UNIX tarih bilgisi. Alarm etkinleştirilmeden önce " #~ "ayarlanmalıdır." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "\"Komut\" bildirim türü için çalıştırılacak komut." #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "\"Ses\" bildirimi için çalınacak ses dosyası." #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "Alarmın çalacağı zaman. \"Zamanlayıcı\" alarmlar için saniye " #~ "mertebesinde, \"Saat\" alarmları için GMT olmalıdır." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "Alarm çalıştığında kullanılacak bildirim yöntemi. Bir ses dosyası " #~ "çalınacak ise \"ses\" (\"sound_file\" özelliğinde belirtildiği üzere), " #~ "bir komut koşulacak ise \"komut\" (\"komut\" özelliğinde belirtildiği " #~ "gibi) olabilir." #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Alarmın türü. Günün belli bir zamanı çalması için \"Saat\", belli bir " #~ "süre sonunda çalması için \"Zamanlayıcı\" olabilir." #~ msgid "Toggle alarms" #~ msgstr "Alarmları aç/kapat" #~ msgid "Toggle alarms window" #~ msgstr "Alarmlar penceresini aç/kapat" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Alarmlar penceresinin görünürlüğünü aç/kapat" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Alarm sesinin tekrar edip etmeyeceği." #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "" #~ "İkonun sağ tarafında bir sonraki alarm için kalan sürenin gösterilip " #~ "gösterilmeyeceği" #~ msgid "_Preferences" #~ msgstr "_Tercihler" #~ msgid "_Quit" #~ msgstr "_Çıkış" alarm-clock-0.4.1/po/uk.po000066400000000000000000000274661435672060600153260ustar00rootroot00000000000000# Ukrainian translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2011-01-23 20:32+0000\n" "Last-Translator: Сергій Матрунчик \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 хвилина" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 хвилин" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 хвилини" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 хвилин" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "Про програму %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "Про програму" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Будильник" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Налагодження будильника" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "Будильники" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "Сигнал" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "Зовнішній вигляд" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "Ко_манда" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "Неможливо відтворити" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "Неможливо відтворити '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "Інша команда..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "Інше..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "Видалити" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "Видалити обраний будильник" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "Редагувати будильник" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "Редагувати обраний будильник" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "Редагувати" #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "Увімкнути" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "Увімкнути/вимкнути обраний будильник" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "Щодня" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "Пт" #: data/alarm-clock.ui:1259 msgid "General" msgstr "Загальні" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "Прокидайтесь вчасно!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "Керування будильниками" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "Пн" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "Новий будильник" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "Новий..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "Один раз" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "Відтворити _звук" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "Повторювати звук" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "Сб" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "Обрати звуковий файл..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "Показати будильники" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "Показати лічильник зворотнього відліку" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "Відкласти" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "Відкласти будильник" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "Відкласти усі будильники" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "Відкласти усі звукові будильники" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "Відкласти на:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "Відкласти обраний будильник" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "Запустити _програму" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "Запускати після входу в систему" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "Зупинити" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "Вимкнути усі будильники" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "Вимкнути усі звукові будильники" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "Вимкнути обраний будильник" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "Нд" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "Чт" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "Таймер" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "Вт" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "Прокидайтесь вчасно" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "Прокидайся, спун!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "Ср" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "У будні" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "У вихідні" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "Відкласти або вимкнути будильники можна у меню будильника" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "_Назва" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "_Повторити:" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "_Повторювати: %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "Ві_дкласти" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "_Час:" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Будильник" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "хвилин(и)" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s уже працює, виходимо...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "" #~ "Повторювання будильника у певні дні. Має сенс тільки для будильників (не " #~ "таймерів)" #~ msgid "A short message which describes the alarm." #~ msgstr "Короткий опис будильника" #~ msgid "Alarm Message" #~ msgstr "Повідомлення будильника" #~ msgid "Alarm Repeat" #~ msgstr "Повторювання" #~ msgid "Alarm Running State" #~ msgstr "Запускання будильника" #~ msgid "Alarm Time" #~ msgstr "Час сигналу" #~ msgid "Alarm Timestamp" #~ msgstr "Часова мітка сигналу" #~ msgid "Alarm Type" #~ msgstr "Тип сигналу" #~ msgid "Alarm!" #~ msgstr "Увага!" #~ msgid "Command" #~ msgstr "Команда" #~ msgid "Delete alarm" #~ msgstr "Видалити будильник" #~ msgid "Enable/disable" #~ msgstr "Увімкнути/вимкнути" #~ msgid "Enable/disable alarm" #~ msgstr "Увімкнути/вимкнути будильник" #~ msgid "Indicates whether the alarm has started." #~ msgstr "Будильник увімкнено" #~ msgid "New" #~ msgstr "Новий" #~ msgid "Notification Type" #~ msgstr "Тип сповіщення" #~ msgid "Quit Alarm Clock" #~ msgstr "Вийти" #~ msgid "Repeat Sound" #~ msgstr "Повторювати сигнал" #~ msgid "Requires application indicators" #~ msgstr "Потребує індикаторів додатків" #~ msgid "Snooze alarms" #~ msgstr "Відкласти будильники" #~ msgid "Sound File" #~ msgstr "Звуковий файл" #~ msgid "Stop alarm" #~ msgstr "Вимкнути будильник" #~ msgid "Stop alarms" #~ msgstr "Вимкнути будильники" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "" #~ "Часова мітка UNIX для будильника. Має бути встановлена, щоб активувати " #~ "будильник." #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "Виконати команду (якщо налагоджено)" #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "Звуковий файл для відтворення у режимі «звук»" #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "" #~ "Час запуску будильника. Встановіть час доби для будильника або кількість " #~ "хвилин для таймера." #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "Яким чином активувати будильник? Оберіть один з варіантів: відтворити " #~ "звук (вказаний у параметрі \"sound_file\" звуковий файл) або виконати " #~ "команду (вказану у параметрі \"command\")" #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "Тип будильника. Саме будильник - налагоджується на конкретний час доби, " #~ "чи таймер - активується через певний час." #~ msgid "Toggle alarms" #~ msgstr "Перемкнути будильники" #~ msgid "Toggle alarms window" #~ msgstr "Перемкнути вікно будильників" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "Перемкнути видимість вікна будильників" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "Повторювати звук будильника" #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "Чи показувати напис зліва від піктограми з часом наступної події" #~ msgid "_Preferences" #~ msgstr "На_лаштування" #~ msgid "_Quit" #~ msgstr "_Вийти" alarm-clock-0.4.1/po/zh_CN.po000066400000000000000000000234611435672060600156770ustar00rootroot00000000000000# Chinese (Simplified) translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2011-03-20 01:22+0000\n" "Last-Translator: Lele Long \n" "Language-Team: Chinese (Simplified) \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" "X-Language: zh_CN\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 分钟" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 分钟" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 分钟" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 分钟" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "关于 %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "关于闹钟" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "闹钟" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "闹钟首选项" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "闹钟" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "警告" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "外观" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "命令(_M):" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "无法播放" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "无法播放 '%s': %s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "定制命令..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "定制..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "删除" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "删除选定闹钟" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "编辑闹钟" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "编辑选定闹钟" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "编辑..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "启用" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "启用/停用 选定闹钟" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "每天" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "星期五" #: data/alarm-clock.ui:1259 msgid "General" msgstr "常规" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "早晨起床!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "管理您的闹钟" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "星期一" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "新建闹钟" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "新建..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "一次" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "播放响铃(_S)" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "重复响铃(_T)" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "星期六" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "选择声音文件..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "显示闹钟(_A)" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "查看倒计时标签" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "打瞌睡" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "打盹闹铃" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "将所有闹钟设为贪睡" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "将所有蜂鸣闹钟设为贪睡" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "设置贪睡" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "为选定的闹钟设置贪睡" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "启动程序(_A)" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "登入时自动启动" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "停止" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "停止所有闹钟" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "停止所有正在起闹的闹钟" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "停止选定的闹钟" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "星期日" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "星期四" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "计时器" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "星期二" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "早晨唤醒" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "醒来,懒虫!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "星期三" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "工作日" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "周末" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "您可以在闹钟面板将闹钟禁用或设置为贪睡" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "名称(_N):" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "重复(_R):" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "重复(_R): %s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "贪睡(_S)" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "时间(_T):" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "闹钟" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "分钟" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s 已经在运行,正在退出...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "闹钟的重复列表。此设置仅应用于“时钟”闹钟。" #~ msgid "A short message which describes the alarm." #~ msgstr "描述闹钟的简短消息。" #~ msgid "Alarm Message" #~ msgstr "闹钟消息" #~ msgid "Alarm Repeat" #~ msgstr "循环闹铃" #~ msgid "Alarm Running State" #~ msgstr "闹钟运行状态" #~ msgid "Alarm Time" #~ msgstr "闹铃时间" #~ msgid "Alarm Timestamp" #~ msgstr "闹铃时间戳" #~ msgid "Alarm Type" #~ msgstr "闹铃类型" #~ msgid "Alarm!" #~ msgstr "闹铃" #~ msgid "Command" #~ msgstr "命令" #~ msgid "Delete alarm" #~ msgstr "删除闹钟" #~ msgid "Enable/disable" #~ msgstr "启用/停用" #~ msgid "Enable/disable alarm" #~ msgstr "启用/停用 闹钟" #~ msgid "Indicates whether the alarm has started." #~ msgstr "用于指示闹钟是否启动。" #~ msgid "New" #~ msgstr "新建" #~ msgid "Notification Type" #~ msgstr "通知类型" #~ msgid "Quit Alarm Clock" #~ msgstr "退出闹钟" #~ msgid "Repeat Sound" #~ msgstr "重复响铃" #~ msgid "Requires application indicators" #~ msgstr "需要应用程序指示器" #~ msgid "Snooze alarms" #~ msgstr "贪睡闹钟" #~ msgid "Sound File" #~ msgstr "声音文件" #~ msgid "Stop alarm" #~ msgstr "停止闹钟" #~ msgid "Stop alarms" #~ msgstr "停止闹钟" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "闹钟的 UNIX 时间戳。必须在闹钟激活前设定。" #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "“命令”通知类型下要运行的命令。" #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "“响铃”通知类型下要播放的声音文件。" #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "闹铃时间。“时钟”闹钟下应为 GMT 时间,“计时器”闹钟下应为秒长。" #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "闹钟起闹时的通知类型。可以是下列之一:“响铃” 播放一个声音文件(在“声音文" #~ "件”属性中指定。) “命令” 运行一个命令(在“命令”属性中指定。)" #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "闹钟类型。“时钟”为在特定时间起闹,“计时器”为经过一特定时间段后起闹。" #~ msgid "Toggle alarms" #~ msgstr "关闭/开启所有闹钟" #~ msgid "Toggle alarms window" #~ msgstr "切换闹钟窗口" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "切换闹钟窗口的可见性" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "是否要重复闹钟响铃。" #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "是否在图标右侧显示距离下次闹铃的剩余时间。" #~ msgid "_Preferences" #~ msgstr "首选项(_P)" #~ msgid "_Quit" #~ msgstr "退出(_Q)" alarm-clock-0.4.1/po/zh_TW.po000066400000000000000000000235041435672060600157270ustar00rootroot00000000000000# Chinese (Traditional) translation for alarm-clock # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the alarm-clock package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: alarm-clock\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-28 12:54+0300\n" "PO-Revision-Date: 2011-01-24 02:22+0000\n" "Last-Translator: Cheng-Chia Tseng \n" "Language-Team: Chinese (Traditional) \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-06-03 17:12+0000\n" "X-Generator: Launchpad (build 15342)\n" #: data/alarm-clock.ui:302 data/alarm-clock.ui:324 data/alarm-clock.ui:346 msgid "0" msgstr "" #: data/alarm-clock.ui:1358 msgid "1 minute" msgstr "1 分鐘" #: data/alarm-clock.ui:1391 msgid "10 minutes" msgstr "10 分鐘" #: data/alarm-clock.ui:1369 msgid "3 minutes" msgstr "3 分鐘" #: data/alarm-clock.ui:919 msgid "5" msgstr "" #: data/alarm-clock.ui:1380 msgid "5 minutes" msgstr "5 分鐘" #. About Alarm Clock #: src/ui.c:360 #, c-format msgid "About %s" msgstr "關於 %s" #: data/alarm-clock.ui:8 msgid "About Alarm Clock" msgstr "關於 Alarm Clock" #: data/alarm-clock-applet.desktop.in:3 data/alarm-clock.ui:164 src/ui.c:308 msgid "Alarm Clock" msgstr "Alarm Clock" #: data/alarm-clock.ui:1206 msgid "Alarm Clock Preferences" msgstr "Alarm Clock 偏好設定" #: data/alarm-clock.ui:987 msgid "Alarms" msgstr "鬧鐘" #: data/alarm-clock.ui:606 msgid "Alert" msgstr "提醒" #: data/alarm-clock.ui:1298 msgid "Appearance" msgstr "外觀" #: data/alarm-clock.ui:758 msgid "Co_mmand:" msgstr "指令(_M):" #: src/alarm-settings.c:839 src/alarm.c:1034 msgid "Could not create player! Please check your sound settings." msgstr "" #: src/ui.c:389 msgid "Could not play" msgstr "無法播放" #: src/ui.c:388 #, c-format msgid "Could not play '%s': %s" msgstr "無法播放 %s:%s" #: src/alarm-settings.c:310 msgid "Custom command..." msgstr "自訂指令..." #: data/alarm-clock.ui:1402 msgid "Custom..." msgstr "自訂..." #: data/alarm-clock.ui:1040 msgid "Delete" msgstr "刪除" #: data/alarm-clock.ui:1038 msgid "Delete the selected alarm" msgstr "刪除選取的鬧鐘" #: src/alarm-applet.c:653 msgid "Display version information" msgstr "" #: data/alarm-clock.ui:82 msgid "Edit alarm" msgstr "編輯鬧鐘" #: data/alarm-clock.ui:1023 msgid "Edit the selected alarm" msgstr "編輯選取的鬧鐘" #: data/alarm-clock.ui:1025 msgid "Edit..." msgstr "編輯..." #: data/alarm-clock.ui:1065 msgid "Enable" msgstr "啟用" #: data/alarm-clock.ui:1063 msgid "Enable/disable the selected alarm" msgstr "啟用/停用選取的鬧鐘" #: data/alarm-clock.ui:522 src/alarm.c:1364 msgid "Every day" msgstr "每天" #: data/alarm-clock.ui:452 msgid "Fri" msgstr "五" #: data/alarm-clock.ui:1259 msgid "General" msgstr "一般" #: data/alarm-clock.ui:16 msgid "Get up in the morning!" msgstr "早上起床!" #: data/alarm-clock.ui:1454 msgid "Manage your alarms" msgstr "管理您的鬧鐘" #: data/alarm-clock.ui:388 msgid "Mon" msgstr "一" #: data/alarm-clock.ui:1008 msgid "New alarm" msgstr "新增鬧鐘" #: data/alarm-clock.ui:1010 msgid "New..." msgstr "新增..." #: data/alarm-clock.ui:564 src/alarm.c:1355 msgid "Once" msgstr "一次" #: data/alarm-clock.ui:631 msgid "Play _sound" msgstr "播放聲音(_S)" #: data/alarm-clock.ui:686 msgid "Repea_t sound" msgstr "重播聲音(_T)" #: data/alarm-clock.ui:468 msgid "Sat" msgstr "六" #: src/alarm-settings.c:260 src/alarm-settings.c:440 msgid "Select sound file..." msgstr "選擇聲音檔案..." #: data/alarm-clock.ui:1451 msgid "Show _alarms" msgstr "顯示鬧鐘(_A)" #: data/alarm-clock.ui:1317 msgid "Show countdown label" msgstr "顯示倒數標籤" #: data/alarm-clock.ui:1097 msgid "Snooze" msgstr "延後" #: data/alarm-clock.ui:815 msgid "Snooze alarm" msgstr "延後鬧鐘" #: data/alarm-clock.ui:1423 src/alarm-applet.c:652 msgid "Snooze all alarms" msgstr "延後所有鬧鐘" #: data/alarm-clock.ui:1426 msgid "Snooze all beeping alarms" msgstr "延後所有發聲中的鬧鐘" #: data/alarm-clock.ui:900 msgid "Snooze for:" msgstr "延後:" #: data/alarm-clock.ui:1094 msgid "Snooze the selected alarm" msgstr "延後選取的鬧鐘" #: data/alarm-clock.ui:712 msgid "Start _Application" msgstr "啟動應用程式(_A)" #: data/alarm-clock.ui:1278 msgid "Start automatically at login" msgstr "登入時自動啟動" #: src/alarm-applet.c:650 msgid "Start hidden" msgstr "" #: data/alarm-clock.ui:1081 msgid "Stop" msgstr "停止" #: data/alarm-clock.ui:1434 src/alarm-applet.c:651 msgid "Stop all alarms" msgstr "停止所有鬧鐘" #: data/alarm-clock.ui:1437 msgid "Stop all beeping alarms" msgstr "停止所有發聲中的鬧鐘" #: data/alarm-clock.ui:1078 msgid "Stop the selected alarm" msgstr "停止選取的鬧鐘" #: data/alarm-clock.ui:484 msgid "Sun" msgstr "日" #: data/alarm-clock.ui:436 msgid "Thu" msgstr "四" #: data/alarm-clock.ui:215 msgid "Timer" msgstr "倒數計時器" #: data/alarm-clock.ui:404 msgid "Tue" msgstr "二" #: data/alarm-clock-applet.desktop.in:4 msgid "Wake up in the morning" msgstr "早上醒來" #: data/alarm-clock.ui:255 msgid "Wake up sleepy head!" msgstr "讓昏昏欲睡的腦袋清醒!" #: data/alarm-clock.ui:420 msgid "Wed" msgstr "三" #: data/alarm-clock.ui:536 src/alarm.c:1358 msgid "Weekdays" msgstr "平日" #: data/alarm-clock.ui:550 src/alarm.c:1361 msgid "Weekends" msgstr "週末" #: src/ui.c:446 msgid "You can snooze or stop alarms from the Alarm Clock menu." msgstr "您可以從 Alarm Clock 選單延後或停止鬧鐘。" #: src/alarm-settings.c:443 msgid "_Cancel" msgstr "" #: data/alarm-clock.ui:285 msgid "_Name:" msgstr "名稱(_N):" #: src/alarm-settings.c:444 msgid "_Open" msgstr "" #: data/alarm-clock.ui:591 msgid "_Repeat:" msgstr "週期(_R):" #: src/alarm-settings.c:94 #, c-format msgid "_Repeat: %s" msgstr "週期(_R):%s" #: data/alarm-clock.ui:850 msgid "_Snooze" msgstr "延後(_S)" #: data/alarm-clock.ui:270 msgid "_Time:" msgstr "時間(_T):" #: data/alarm-clock-applet.desktop.in:5 #, fuzzy msgid "alarm-clock" msgstr "Alarm Clock" #: data/alarm-clock.ui:937 msgid "minutes" msgstr "分鐘" #~ msgid "%s is already running, exiting...\n" #~ msgstr "%s 已經在執行了,退出...\n" #~ msgid "" #~ "A list of days when the alarm should be repeated. This settings is only " #~ "applicable for \"clock\" alarms." #~ msgstr "在哪幾天啟動鬧鐘的清單,只適用於「定時鬧鐘」。" #~ msgid "A short message which describes the alarm." #~ msgstr "說明這個鬧鐘的簡短訊息。" #~ msgid "Alarm Message" #~ msgstr "鬧鐘訊息" #~ msgid "Alarm Repeat" #~ msgstr "鬧鐘週期" #~ msgid "Alarm Running State" #~ msgstr "鬧鐘執行狀態" #~ msgid "Alarm Time" #~ msgstr "鬧鐘時間" #~ msgid "Alarm Timestamp" #~ msgstr "鬧鐘時間戳記" #~ msgid "Alarm Type" #~ msgstr "鬧鐘類型" #~ msgid "Alarm!" #~ msgstr "鬧鐘!" #~ msgid "Command" #~ msgstr "指令" #~ msgid "Delete alarm" #~ msgstr "刪除鬧鐘" #~ msgid "Enable/disable" #~ msgstr "啟用/停用" #~ msgid "Enable/disable alarm" #~ msgstr "啟用/停用鬧鐘" #~ msgid "Indicates whether the alarm has started." #~ msgstr "顯示鬧鐘是否已啟動。" #~ msgid "New" #~ msgstr "新增" #~ msgid "Notification Type" #~ msgstr "提醒方式" #~ msgid "Quit Alarm Clock" #~ msgstr "離開 Alarm Clock" #~ msgid "Repeat Sound" #~ msgstr "重播聲音" #~ msgid "Requires application indicators" #~ msgstr "需要應用程式指示器" #~ msgid "Snooze alarms" #~ msgstr "延後鬧鐘" #~ msgid "Sound File" #~ msgstr "聲音檔案" #~ msgid "Stop alarm" #~ msgstr "停止鬧鐘" #~ msgid "Stop alarms" #~ msgstr "停止鬧鐘" #~ msgid "" #~ "The UNIX timestamp for the alarm. Must be set before the alarm is " #~ "activated." #~ msgstr "鬧鐘的 UNIX 時間戳記,必須在鬧鐘啟動前就先設定。" #~ msgid "The command to run for the \"command\" notification type." #~ msgstr "用於「指令」提醒類型要執行的指令。" #~ msgid "The sound file to play for the \"sound\" notification type." #~ msgstr "用於「聲音」提醒類型要播放的聲音檔案。" #~ msgid "" #~ "The time for the alarm. Should be in GMT for \"clock\" alarms or length " #~ "in seconds for \"timer\" alarms." #~ msgstr "鬧鐘的時間。「定時鬧鐘」用標準時間格式,「倒數計時器」用秒數。" #~ msgid "" #~ "The type of notification to use when the alarm goes off. This can be one " #~ "of the following: \"sound\" to play a sound (specified in the \"sound_file" #~ "\" property.) \"command\" to run a command (specified in the \"command\" " #~ "property.)" #~ msgstr "" #~ "鬧鐘設定的時間到達時的提醒方式,可以是以下方式之一:「聲音」→播放聲音 (在" #~ "「聲音檔案(_F)」處做設定)、「指令」→執行指令 (在「指令」處做設定)" #~ msgid "" #~ "The type of the alarm. Either \"clock\" for an alarm at a specific time " #~ "of day, or \"timer\" for an alarm after a specified period of time." #~ msgstr "" #~ "鬧鐘的類型:「定時鬧鐘」可指定於某個時間動作、「倒數計時器」可指定在某段時" #~ "間之後動作。" #~ msgid "Toggle alarms" #~ msgstr "切換鬧鐘" #~ msgid "Toggle alarms window" #~ msgstr "切換鬧鐘視窗" #~ msgid "Toggle the visibility of the alarms window" #~ msgstr "切換鬧鐘視窗的能見度" #~ msgid "Whether to repeat the alarm sound." #~ msgstr "是否重複播放聲音。" #~ msgid "" #~ "Whether to show a label on the right side of the icon with the time " #~ "remaining to the next alarm." #~ msgstr "是否要在圖示的右邊顯示距離下次吵鬧還剩多久的標籤" #~ msgid "_Preferences" #~ msgstr "偏好設定(_P)" #~ msgid "_Quit" #~ msgstr "離開(_Q)" alarm-clock-0.4.1/src/000077500000000000000000000000001435672060600145015ustar00rootroot00000000000000alarm-clock-0.4.1/src/CMakeLists.txt000066400000000000000000000151101435672060600172370ustar00rootroot00000000000000# SPDX-License-Identifier: GPL-2.0-or-later pkg_check_modules(GTK3 REQUIRED gtk+-3.0) pkg_check_modules(GST REQUIRED gstreamer-1.0) pkg_check_modules(LIBNOTIFY REQUIRED libnotify) pkg_check_modules(APPINDICATOR REQUIRED ayatana-appindicator3-0.1) add_executable(alarm-clock-applet alarm-applet.c alarm-applet.h player.c player.h util.c util.h list-entry.c list-entry.h alarm.c alarm.h alarm-enums.h alarm-gsettings.c alarm-gsettings.h ui.c ui.h alarm-actions.c alarm-actions.h alarm-list-window.c alarm-list-window.h alarm-settings.c alarm-settings.h prefs.c prefs.h # Autogenerated io.github.alarm-clock-applet.enums.gschema.xml alarm-glib-enums.c alarm-glib-enums.h alarm-clock-applet.desktop autostart/alarm-clock-applet.desktop ) set_property(TARGET alarm-clock-applet PROPERTY C_STANDARD 11) target_compile_options(alarm-clock-applet PRIVATE ${GTK3_CFLAGS_OTHER}) # Set default log domain target_compile_definitions(alarm-clock-applet PUBLIC G_LOG_DOMAIN=\"alarm-clock-applet\") # Really awful hack if(CMAKE_VERSION VERSION_LESS "3.13") target_link_libraries(alarm-clock-applet PRIVATE "-rdynamic") else() target_link_options(alarm-clock-applet PRIVATE "-rdynamic") endif() target_link_libraries(alarm-clock-applet PRIVATE ${GTK3_LIBRARIES} ${GST_LIBRARIES} ${LIBNOTIFY_LIBRARIES} ${APPINDICATOR_LIBRARIES} ) target_include_directories(alarm-clock-applet PRIVATE ${GTK3_INCLUDE_DIRS} ${GST_INCLUDE_DIRS} ${LIBNOTIFY_INCLUDE_DIRS} ${APPINDICATOR_INCLUDE_DIRS} ) if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.13") target_link_directories(alarm-clock-applet PRIVATE ${GTK3_LIBRARY_DIRS} ${GST_LIBRARY_DIRS} ${LIBNOTIFY_LIBRARY_DIRS} ${APPINDICATOR_LIBRARY_DIRS} ) endif() # All generated files will go to build/src, so include it target_include_directories(alarm-clock-applet PRIVATE "${CMAKE_BINARY_DIR}/src/" ) configure_file( "${CMAKE_SOURCE_DIR}/src/config.h.in" "${CMAKE_BINARY_DIR}/src/config.h" ) # Binary install( TARGETS alarm-clock-applet DESTINATION "bin" ) # ui and css install( FILES "${CMAKE_SOURCE_DIR}/data/alarm-clock.ui" "${CMAKE_SOURCE_DIR}/data/alarm-clock.css" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/alarm-clock-applet/" ) # Desktop shortcut # This can't go in po/CMakeLists.txt... add_custom_command(OUTPUT "alarm-clock-applet.desktop" COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} --desktop --template "${CMAKE_SOURCE_DIR}/data/alarm-clock-applet.desktop.in" --output "alarm-clock-applet.desktop" -d "${CMAKE_SOURCE_DIR}/po/" WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/src/" DEPENDS "${CMAKE_SOURCE_DIR}/data/alarm-clock-applet.desktop.in" translations ) install( FILES "${CMAKE_BINARY_DIR}/src/alarm-clock-applet.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications/" ) # Autostart # Create a subdir and put the file in there so that we can keep the asme filename file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/src/autostart") add_custom_command(OUTPUT "autostart/alarm-clock-applet.desktop" COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} --desktop --template "${CMAKE_SOURCE_DIR}/data/alarm-clock-applet_autostart.desktop.in" --output "alarm-clock-applet.desktop" -d "${CMAKE_SOURCE_DIR}/po/" WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/src/autostart/" DEPENDS "${CMAKE_SOURCE_DIR}/data/alarm-clock-applet_autostart.desktop.in" translations ) # CMAKE_INSTALL_FULL_SYSCONFDIR is /usr/local/etc/ which doesn't work in this case set(SYSCONFDIR_XDG "${CMAKE_INSTALL_FULL_SYSCONFDIR}") if(SYSCONFDIR_XDG STREQUAL "/usr/local/etc") set(SYSCONFDIR_XDG "/etc") endif() install( FILES "${CMAKE_BINARY_DIR}/src/autostart/alarm-clock-applet.desktop" DESTINATION "${SYSCONFDIR_XDG}/xdg/autostart/" ) # GSettings schemas install( FILES "${CMAKE_SOURCE_DIR}/data/io.github.alarm-clock-applet.gschema.xml" "${CMAKE_BINARY_DIR}/src/io.github.alarm-clock-applet.enums.gschema.xml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/glib-2.0/schemas/" ) # Generate enums from header find_program(GLIB_MKENUMS "glib-mkenums" REQUIRED) add_custom_command(OUTPUT "io.github.alarm-clock-applet.enums.gschema.xml" COMMAND ${GLIB_MKENUMS} --comments "" --fhead "" --vhead " <@type@ id=\"io.github.alarm-clock-applet.@EnumName@\">" --vprod " " --vtail " " --ftail "" "${CMAKE_SOURCE_DIR}/src/alarm-enums.h" --output "io.github.alarm-clock-applet.enums.gschema.xml" WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/src/" DEPENDS "alarm-enums.h" VERBATIM ) add_custom_command(OUTPUT "alarm-glib-enums.c" COMMAND ${GLIB_MKENUMS} --template "${CMAKE_SOURCE_DIR}/src/alarm-glib-enums.c.etemplate" --output "alarm-glib-enums.c" "${CMAKE_SOURCE_DIR}/src/alarm-enums.h" WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/src/" DEPENDS "alarm-enums.h" "alarm-glib-enums.c.etemplate" ) add_custom_command(OUTPUT "alarm-glib-enums.h" COMMAND ${GLIB_MKENUMS} --template "${CMAKE_SOURCE_DIR}/src/alarm-glib-enums.h.etemplate" --output "alarm-glib-enums.h" "${CMAKE_SOURCE_DIR}/src/alarm-enums.h" WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/src/" DEPENDS "alarm-enums.h" "alarm-glib-enums.h.etemplate" ) install( CODE "execute_process(COMMAND glib-compile-schemas \"${CMAKE_INSTALL_FULL_DATAROOTDIR}/glib-2.0/schemas/\")" ) add_custom_target(compile_gsettings_schema COMMAND glib-compile-schemas "${CMAKE_INSTALL_FULL_DATAROOTDIR}/glib-2.0/schemas/" ) add_dependencies(uninstall compile_gsettings_schema) # Icons install(DIRECTORY "${CMAKE_SOURCE_DIR}/data/icons/icons" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" FILE_PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) # Needed to regenerate the icon cache # 3.12 first introduced TOUCH, and Ubuntu 18.04 has 3.10 install( CODE "if(NOT DEFINED ENV{DESTDIR}) file(WRITE \"\${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/.xdg-icon-resource-dummy\" \"\") file(REMOVE \"\${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/.xdg-icon-resource-dummy\") endif()" ) if(ENABLE_GCONF_MIGRATION) add_dependencies(alarm-clock-applet alarm-clock-applet-gconf-migration) endif() # Manpage include(Pod2man) pod2man("${CMAKE_SOURCE_DIR}/src/alarm-clock-applet.pod" "${PROJECT_VERSION}" 1 "General Commands Manual") alarm-clock-0.4.1/src/alarm-actions.c000066400000000000000000000271621435672060600174070ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * alarm-actions.h -- Alarm actions * * Copyright (C) 2010 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #include "alarm-actions.h" #include "alarm-applet.h" #include "alarm-list-window.h" #define GET_ACTION(map, name) G_SIMPLE_ACTION(g_action_map_lookup_action(G_ACTION_MAP(map), (name))) /** * Initialize the various actions */ void alarm_applet_actions_init(AlarmApplet* applet) { GtkBuilder* builder = applet->ui; // Actions on one alarm const GActionEntry win_action_entries[] = { { "alarm_new", alarm_action_new }, { "alarm_edit", alarm_action_edit }, { "alarm_delete", alarm_action_delete }, { "alarm_stop", alarm_action_stop }, { "alarm_snooze", alarm_action_snooze }, { "alarm_enable", alarm_action_enable, NULL, "false" }, }; g_action_map_add_action_entries(G_ACTION_MAP(applet->list_window->window), win_action_entries, G_N_ELEMENTS(win_action_entries), applet); applet->action_edit = GET_ACTION(applet->list_window->window, "alarm_edit"); applet->action_delete = GET_ACTION(applet->list_window->window, "alarm_delete"); applet->action_enable = GET_ACTION(applet->list_window->window, "alarm_enable"); applet->action_stop = GET_ACTION(applet->list_window->window, "alarm_stop"); applet->action_snooze = GET_ACTION(applet->list_window->window, "alarm_snooze"); // Global actions const GActionEntry app_action_entries[] = { { "snooze_all", alarm_action_snooze_all }, { "stop_all", alarm_action_stop_all }, { "quit", alarm_action_quit }, { "show_alarms_list", alarm_action_toggle_list_win }, { "autostart", alarm_action_toggle_autostart, NULL, "false" }, { "show_countdown", alarm_action_toggle_show_label, NULL, "false" }, }; g_action_map_add_action_entries(G_ACTION_MAP(applet->application), app_action_entries, G_N_ELEMENTS(app_action_entries), applet); applet->action_snooze_all = GET_ACTION(applet->application, "snooze_all"); applet->action_stop_all = GET_ACTION(applet->application, "stop_all"); applet->action_toggle_list_win = GET_ACTION(applet->application, "show_alarms_list"); applet->action_toggle_autostart = GET_ACTION(applet->application, "autostart"); applet->action_toggle_show_label = GET_ACTION(applet->application, "show_countdown"); // FIXME: Add more such as Ctrl Q, Ctrl N, etc etc const gchar* const toggle_list_win_accel[] = { "Escape", NULL, }; gtk_application_set_accels_for_action(applet->application, "app.show_alarms_list", toggle_list_win_accel); // Update actions alarm_applet_actions_update_sensitive(applet); } // // SINGLE ALARM ACTIONS: // /** * Edit alarm action */ void alarm_action_edit(GSimpleAction* action, GVariant* parameter, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmListWindow* list_window = applet->list_window; Alarm* a = alarm_list_window_get_selected_alarm(list_window); if(!a) { // No alarms selected return; } g_debug("AlarmAction: edit '%s'", a->message); // Stop alarm alarm_clear(a); // Show settings dialog for alarm alarm_settings_dialog_show(applet->settings_dialog, a); g_object_unref(a); } /** * Delete alarm action */ void alarm_action_delete(GSimpleAction* action, GVariant* parameter, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmListWindow* list_window = applet->list_window; Alarm* a = alarm_list_window_get_selected_alarm(list_window); if(!a) { // No alarms selected return; } g_debug("AlarmAction: delete '%s'", a->message); // Disable, clear and delete alarm alarm_disable(a); alarm_clear(a); // Not the best, but we do this here g_object_unref(a); // Remove from applet list and delete alarm_applet_alarms_remove_and_delete(applet, a); alarm_update_gsettings_alarm_list(applet->settings_global, applet->alarms); } /** * Enable alarm action */ void alarm_action_enable(GSimpleAction* action, GVariant* parameter, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmListWindow* list_window = applet->list_window; Alarm* a = alarm_list_window_get_selected_alarm(list_window); if(!a) return; GVariant* state = g_action_get_state(G_ACTION(action)); if(!state) { g_object_unref(a); return; } gboolean active = !g_variant_get_boolean(state); g_variant_unref(state); if(a->active == active) { // No alarms selected or no change g_object_unref(a); return; } g_debug("AlarmAction: enabled(%d) '%s'", active, a->message); alarm_set_enabled(a, active); g_object_unref(a); } /** * Update enabled action state */ void alarm_action_update_enabled(AlarmApplet* applet) { Alarm* a = alarm_list_window_get_selected_alarm(applet->list_window); if(!a) return; GVariant* state = g_action_get_state(G_ACTION(applet->action_enable)); if(!state) { g_object_unref(a); return; } gboolean active = g_variant_get_boolean(state); g_variant_unref(state); if(a->active == active) { // No alarms selected or no change g_object_unref(a); return; } state = g_variant_new("b", a->active); g_object_unref(a); g_simple_action_set_state(applet->action_enable, state); } /** * Stop alarm action */ void alarm_action_stop(GSimpleAction* action, GVariant* parameter, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmListWindow* list_window = applet->list_window; Alarm* a; if((a = alarm_list_window_get_selected_alarm(list_window))) { g_debug("AlarmAction: stop '%s'", a->message); alarm_clear(a); g_object_unref(a); } } /** * Snooze alarm action */ void alarm_action_snooze(GSimpleAction* action, GVariant* parameter, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmListWindow* list_window = applet->list_window; Alarm* a; if((a = alarm_list_window_get_selected_alarm(list_window))) { g_debug("AlarmAction: snooze '%s'", a->message); alarm_applet_alarm_snooze(applet, a); g_object_unref(a); } } // // GLOBAL ACTIONS // /** * New alarm action */ void alarm_action_new(GSimpleAction* action, GVariant* parameter, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmListWindow* list_window = applet->list_window; Alarm* alarm; GtkTreeIter iter; GtkTreeSelection* selection; g_debug("AlarmAction: new"); // Create new alarm, will fall back to defaults. alarm = alarm_new(applet, applet->settings_global, -1); // Set first sound / app in list if(applet->sounds != NULL) { AlarmListEntry* entry = (AlarmListEntry*)applet->sounds->data; g_object_set(alarm, "sound-file", entry->data, NULL); } if(applet->apps != NULL) { GAppInfo* entry = G_APP_INFO(applet->apps->data); g_object_set(alarm, "command", ALARM_APPLET_GET_APP_INFO_COMMAND(entry), NULL); } // Add alarm to list of alarms // This will indirectly add the alarm to the model alarm_applet_alarms_add(applet, alarm); // Select the new alarm in the list if(alarm_list_window_find_alarm(GTK_TREE_MODEL(list_window->model), alarm, &iter)) { selection = gtk_tree_view_get_selection(list_window->tree_view); gtk_tree_selection_select_iter(selection, &iter); } alarm_update_gsettings_alarm_list(applet->settings_global, applet->alarms); // Show edit alarm dialog alarm_settings_dialog_show(applet->settings_dialog, alarm); } /** * Stop all alarms action */ void alarm_action_stop_all(GSimpleAction* action, GVariant* parameter, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; g_debug("AlarmAction: stop all"); alarm_applet_alarms_stop(applet); } /** * Snooze all alarms action */ void alarm_action_snooze_all(GSimpleAction* action, GVariant* parameter, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; g_debug("AlarmAction: snooze all"); alarm_applet_alarms_snooze(applet); } /** * Toggle list window action */ void alarm_action_toggle_list_win(GSimpleAction* action, GVariant* parameter, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmListWindow* list_window = applet->list_window; gboolean active = !gtk_widget_get_mapped(GTK_WIDGET(list_window->window)); g_debug("AlarmAction: toggle list window"); /* if (!a || a->active == active) { // No alarms selected or no change return; } */ if(active) { alarm_list_window_show(list_window); } else { alarm_list_window_hide(list_window); } } /** * Quit action */ void alarm_action_quit(GSimpleAction* action, GVariant* parameter, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; g_debug("AlarmAction: Quit!"); // TODO: Free up resources g_application_quit(G_APPLICATION(applet->application)); } /* * Toggle autostart action */ void alarm_action_toggle_autostart(GSimpleAction* action, GVariant* parameter, gpointer data) { GVariant* state = g_action_get_state(G_ACTION(action)); if(!state) return; gboolean active = !g_variant_get_boolean(state); g_variant_unref(state); gboolean autostart_state = prefs_autostart_get_state(); g_debug("AlarmAction: toggle autostart to %d", active); if(active != autostart_state) { g_debug("AlarmAction: set autostart to %d!", active); prefs_autostart_set_state(active); } } /* * Toggle show_label action */ void alarm_action_toggle_show_label(GSimpleAction* action, GVariant* parameter, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; GVariant* state = g_action_get_state(G_ACTION(action)); if(!state) return; gboolean active = !g_variant_get_boolean(state); g_variant_unref(state); gboolean show_label_state = prefs_show_label_get(applet); // gboolean check_active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (applet->pref_autostart_check)); g_debug("AlarmAction: toggle show_label to %d", active); if(active != show_label_state) { g_debug("AlarmAction: set show_label to %d!", active); prefs_show_label_set(applet, active); } } /** * Update actions to a consistent state */ void alarm_applet_actions_update_sensitive(AlarmApplet* applet) { // // Update single alarm actions: // // Determine whether there is a selected alarm Alarm* a = alarm_list_window_get_selected_alarm(applet->list_window); gboolean selected = (a != NULL); g_simple_action_set_enabled(applet->action_enable, selected); g_simple_action_set_enabled(applet->action_edit, selected); g_simple_action_set_enabled(applet->action_delete, selected); g_simple_action_set_enabled(applet->action_stop, selected && a->triggered); g_simple_action_set_enabled(applet->action_snooze, selected && a->triggered); // // Update global actions // // If there are alarms triggered, snooze_all and stop_all should be sensitive g_simple_action_set_enabled(GET_ACTION(applet->application, "stop_all"), applet->n_triggered > 0); g_simple_action_set_enabled(GET_ACTION(applet->application, "snooze_all"), applet->n_triggered > 0); // Perhaps not the best place for this (as it's not an action) // This is needed because the action being disabled does not affect the GtkMenuButton gtk_widget_set_sensitive(applet->list_window->snooze_button, selected && a->triggered); if(a) g_object_unref(a); } alarm-clock-0.4.1/src/alarm-actions.h000066400000000000000000000030221435672060600174010ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * alarm-actions.h -- Alarm actions * * Copyright (C) 2010 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #ifndef ALARM_ACTIONS_H_ #define ALARM_ACTIONS_H_ #include "alarm-applet.h" void alarm_applet_actions_init(AlarmApplet* applet); void alarm_applet_actions_update_sensitive(AlarmApplet* applet); void alarm_action_update_enabled(AlarmApplet* applet); void alarm_action_edit(GSimpleAction* action, GVariant* parameter, gpointer data); void alarm_action_delete(GSimpleAction* action, GVariant* parameter, gpointer data); void alarm_action_enable(GSimpleAction* action, GVariant* parameter, gpointer data); void alarm_action_stop(GSimpleAction* action, GVariant* parameter, gpointer data); void alarm_action_stop_all(GSimpleAction* action, GVariant* parameter, gpointer data); void alarm_action_new(GSimpleAction* action, GVariant* parameter, gpointer data); void alarm_action_snooze(GSimpleAction* action, GVariant* parameter, gpointer data); void alarm_action_snooze_all(GSimpleAction* action, GVariant* parameter, gpointer data); void alarm_action_toggle_list_win(GSimpleAction* action, GVariant* parameter, gpointer data); void alarm_action_quit(GSimpleAction* action, GVariant* parameter, gpointer data); void alarm_action_toggle_autostart(GSimpleAction* action, GVariant* parameter, gpointer data); void alarm_action_toggle_show_label(GSimpleAction* action, GVariant* parameter, gpointer data); #endif // ALARM_ACTIONS_H alarm-clock-0.4.1/src/alarm-applet.c000066400000000000000000000445011435672060600172300ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * alarm-applet.c -- Alarm Clock applet bootstrap * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #include #include "alarm-applet.h" #include "alarm.h" #include "alarm-settings.h" /* * DEFINTIIONS {{ */ static const gchar* supported_sound_mime_types[] = { "audio", "video", "application/ogg", NULL, }; /* * }} DEFINTIIONS */ /* * Snooze any triggered alarms. * * Returns the number of snoozed alarms */ guint alarm_applet_alarms_snooze(AlarmApplet* applet) { GList* l; Alarm* a; guint n_snoozed = 0; g_debug("Snoozing alarms..."); // Loop through alarms and snooze all triggered ones for(l = applet->alarms; l; l = l->next) { a = ALARM(l->data); if(a->triggered) { alarm_applet_alarm_snooze(applet, a); n_snoozed++; } } // Reset the triggered counter applet->n_triggered = 0; // Update status icon alarm_applet_status_update(applet); return n_snoozed; } /* * Stop any running (read: playing sound) alarms. */ guint alarm_applet_alarms_stop(AlarmApplet* applet) { GList* l; Alarm* a; guint n_stopped = 0; g_debug("Stopping alarms..."); // Loop through alarms and clear all of 'em for(l = applet->alarms; l; l = l->next) { a = ALARM(l->data); if(a->triggered) { alarm_clear(a); n_stopped++; } } // Reset the triggered counter applet->n_triggered = 0; // Update status icon alarm_applet_status_update(applet); return n_stopped; } /** * Snooze an alarm, according to UI settings */ void alarm_applet_alarm_snooze(AlarmApplet* applet, Alarm* alarm) { guint mins = applet->snooze_mins; if(alarm->type == ALARM_TYPE_CLOCK) { // Clocks always snooze for 9 minutes mins = ALARM_STD_SNOOZE; } g_debug("AlarmApplet: snooze '%s' for %d minutes", alarm->message, mins); alarm_snooze(alarm, mins * 60); // Update status icon alarm_applet_status_update(applet); } /** * Stop an alarm, keeping UI consistent */ void alarm_applet_alarm_stop(AlarmApplet* applet, Alarm* alarm) { g_debug("Stopping alarm #%d...", alarm->id); // Stop the alarm alarm_clear(alarm); // Update status icon alarm_applet_status_update(applet); } /* * Sounds list {{ */ // Must be NULL terminated static const gchar* const sound_notification_paths[] = { "sounds/gnome/default/alerts", "sounds/ubuntu/notifications", NULL }; static const gchar* const freedesktop_sound_path[] = { "sounds/freedesktop/stereo", NULL }; static const gchar* const freedesktop_sound_ignore[] = { "audio-channel", "network", "phone", "device", "trash", "suspend", "dialog", "power", "screen-capture", "window-question", "onboard", NULL }; // Load sounds into list // TODO: Refactor to use a GHashTable with string hash GList* add_sound_dir_to_list(GList* sounds, const gchar* const* sound_paths, const gchar* const* ignore) { const gchar* const* sysdirs = g_get_system_data_dirs(); for(gint i = 0; sysdirs[i] != NULL; i++) { for(gint j = 0; sound_paths[j] != NULL; j++) { gchar* tmp = g_build_filename(sysdirs[i], sound_paths[j], NULL); if(g_file_test(tmp, G_FILE_TEST_IS_DIR)) { // Load stock sounds g_debug("AlarmApplet: sounds_load: Found %s!", tmp); gchar* sounds_dir = g_strdup_printf("file://%s", tmp); sounds = alarm_list_entry_list_new(sounds, sounds_dir, supported_sound_mime_types, ignore); g_free(sounds_dir); } g_free(tmp); } } return sounds; } void alarm_applet_sounds_load(AlarmApplet* applet) { // Free old list if(applet->sounds != NULL) alarm_list_entry_list_free(&(applet->sounds)); // Locate gnome/ubuntu sounds applet->sounds = add_sound_dir_to_list(applet->sounds, sound_notification_paths, NULL); // If none of the preferred sound directories were found, try to load the freedesktop ones if(!applet->sounds) applet->sounds = add_sound_dir_to_list(applet->sounds, freedesktop_sound_path, freedesktop_sound_ignore); if(!applet->sounds) g_warning("AlarmApplet: Could not locate sounds!"); // Load custom sounds from alarms for(GList* l = applet->alarms; l != NULL; l = l->next) { Alarm* alarm = ALARM(l->data); gboolean found = FALSE; AlarmListEntry* entry; for(GList* l2 = applet->sounds; l2 != NULL; l2 = l2->next) { entry = (AlarmListEntry*)l2->data; if(strcmp(alarm->sound_file, entry->data) == 0) { // FOUND found = TRUE; break; } } if(!found) { // Add to list entry = alarm_list_entry_new_file(alarm->sound_file, NULL, NULL); if(entry) { applet->sounds = g_list_append(applet->sounds, entry); } } } } // Notify callback for changes to an alarm's sound_file static void alarm_sound_file_changed(GObject* object, GParamSpec* param, gpointer data) { Alarm* alarm = ALARM(object); AlarmApplet* applet = (AlarmApplet*)data; g_debug("alarm_sound_file_changed: #%d", alarm->id); // Reload sounds list alarm_applet_sounds_load(applet); } /* * }} Sounds list */ /* * Apps list {{ */ static const char* alarm_applet_app_info_command_common(const AlarmApplet* applet, GAppInfo* app) { g_assert(applet->app_command_map != NULL); gchar* app_basename = g_path_get_basename(g_app_info_get_executable(app)); const char* const app_command_ret = g_hash_table_lookup(applet->app_command_map, app_basename); g_free(app_basename); app_basename = NULL; return app_command_ret; } const char* alarm_applet_get_app_info_command(const AlarmApplet* applet, GAppInfo* app) { const char* const app_command_ret = alarm_applet_app_info_command_common(applet, app); g_assert(app_command_ret != NULL); return app_command_ret; } static inline gboolean alarm_applet_app_info_command_exists(const AlarmApplet* applet, GAppInfo* app) { return !!alarm_applet_app_info_command_common(applet, app); } #define ALARM_APPLET_GET_APP_INFO_COMMAND_EXISTS(x) alarm_applet_app_info_command_exists(applet, x) static inline gboolean command_exists_in_system(const gchar* cmd) { int argcp; char** argvp; if(!g_shell_parse_argv(cmd, &argcp, &argvp, NULL)) return FALSE; /* In particular, if command_line is an empty string (or a string containing only whitespace), G_SHELL_ERROR_EMPTY_STRING will be returned. It’s guaranteed that argvp will be a non-empty array if this function returns successfully. */ gchar* found = g_find_program_in_path(argvp[0]); if(!found) { g_debug("Could not locate %s in PATH", argvp[0]); g_strfreev(argvp); return FALSE; } g_debug("located %s at %s", argvp[0], found); g_free(found); found = NULL; g_strfreev(argvp); return TRUE; } static const char* const app_list_content_type = "audio/x-vorbis+ogg"; static gint g_app_info_same_executable(GAppInfo* appinfo1, GAppInfo* appinfo2) { const char* const first = g_app_info_get_executable(appinfo1); const char* const second = g_app_info_get_executable(appinfo2); g_assert(first != NULL); g_assert(second != NULL); return strcmp(first, second); } // Load stock apps into list void alarm_applet_apps_load(AlarmApplet* applet) { // Free the list if it exists already g_list_free_full(g_steal_pointer(&applet->apps), g_object_unref); // Get all supported apps GList* app_list = g_app_info_get_recommended_for_type(app_list_content_type); // Get default app GAppInfo* default_audio_app = g_app_info_get_default_for_type(app_list_content_type, FALSE); g_debug("Default vorbis player: %p %s %s", default_audio_app, g_app_info_get_display_name(default_audio_app), g_app_info_get_executable(default_audio_app)); // Move default app to the top // First, find it in the list GList* default_audio_app_item = g_list_find_custom(app_list, default_audio_app, (GCompareFunc)g_app_info_same_executable); g_assert(default_audio_app_item != NULL); g_object_unref(g_steal_pointer(&default_audio_app)); // Remove it app_list = g_list_remove_link(app_list, default_audio_app_item); // Then, prepend it app_list = g_list_concat(default_audio_app_item, app_list); // Finally, remove any unknown apps for(GList* l = app_list; l;) { GAppInfo* cur = G_APP_INFO(l->data); const char* const executable = g_app_info_get_executable(cur); g_debug("Found %s (%s)", g_app_info_get_display_name(cur), executable); const gboolean exists = ALARM_APPLET_GET_APP_INFO_COMMAND_EXISTS(cur); const char* app_cmd = NULL; if(exists && command_exists_in_system((app_cmd = ALARM_APPLET_GET_APP_INFO_COMMAND(cur)))) { l = g_list_next(l); continue; } else if(exists) { g_debug("Removing %s because %s doesn't exist", executable, app_cmd); } else { g_debug("Removing %s because we don't know how to get it to play something", executable); } GList* to_remove = l; l = g_list_next(l); app_list = g_list_delete_link(app_list, to_remove); } applet->apps = app_list; } /* * Alarms list {{ */ // TODO: Refactor to use a GHashTable instead? void alarm_applet_alarms_load(AlarmApplet* applet) { GList* list = NULL; GList* l = NULL; if(applet->alarms != NULL) { // Free old alarm objects for(l = applet->alarms; l != NULL; l = l->next) { g_object_unref(ALARM(l->data)); } // Free list g_list_free(applet->alarms); } // Fetch list of alarms and add them applet->alarms = NULL; list = alarm_get_list(applet, applet->settings_global); for(l = list; l != NULL; l = l->next) { alarm_applet_alarms_add(applet, ALARM(l->data)); } } void alarm_applet_alarms_add(AlarmApplet* applet, Alarm* alarm) { applet->alarms = g_list_append(applet->alarms, alarm); g_signal_connect(alarm, "notify", G_CALLBACK(alarm_applet_alarm_changed), applet); g_signal_connect(alarm, "notify::sound-file", G_CALLBACK(alarm_sound_file_changed), applet); g_signal_connect(alarm, "alarm", G_CALLBACK(alarm_applet_alarm_triggered), applet); g_signal_connect(alarm, "cleared", G_CALLBACK(alarm_applet_alarm_cleared), applet); // Update alarm list window model if(applet->list_window) { alarm_list_window_alarm_add(applet->list_window, alarm); } } void alarm_applet_alarms_remove_and_delete(AlarmApplet* applet, Alarm* alarm) { AlarmSettingsDialog* sdialog = applet->settings_dialog; // If there's a settings dialog open for this alarm, close it. if(sdialog->alarm == alarm) { alarm_settings_dialog_close(sdialog); } alarm_delete(alarm); // Remove from list applet->alarms = g_list_remove(applet->alarms, alarm); // Clear list store. This will decrease the refcount of our alarms by 1. /*if (applet->list_alarms_store) gtk_list_store_clear (applet->list_alarms_store);*/ g_debug("alarm_applet_alarms_remove (..., %p): refcount = %d", alarm, G_OBJECT(alarm)->ref_count); // Remove any signal handlers for this alarm instance. g_signal_handlers_disconnect_matched(alarm, 0, 0, 0, NULL, NULL, NULL); // Update alarm list window model if(applet->list_window) { alarm_list_window_alarm_remove(applet->list_window, alarm); } // Dereference alarm alarm_unref(alarm); } /* * }} Alarms list */ // TODO: Is this function needed? /*void alarm_applet_destroy (AlarmApplet *applet) { GList *l; Alarm *a; AlarmSettingsDialog *dialog; g_debug ("AlarmApplet DESTROY"); // TODO: Destroy alarms list // if (applet->list_alarms_dialog) { // list_alarms_dialog_close (applet); // } // Destroy preferences dialog if (applet->prefs_dialog) { gtk_widget_destroy (GTK_WIDGET (applet->prefs_dialog)); } // Loop through all alarms and free like a mad man! for (l = applet->alarms; l; l = l->next) { a = ALARM (l->data); // Check if a dialog is open for this alarm //dialog = (AlarmSettingsDialog *)g_hash_table_lookup (applet->edit_alarm_dialogs, (gconstpointer)a->id); g_object_unref (a); } // Remove sounds list if (applet->sounds) { alarm_list_entry_list_free(&(applet->sounds)); } // Remove apps list if (applet->apps) { alarm_list_entry_list_free(&(applet->apps)); } if (applet->app_command_map) { g_hash_table_destroy (applet->app_command_map); applet->app_command_map = NULL; } // Free GConf dir //g_free (applet->gconf_dir); // Finally free the AlarmApplet struct itself g_free (applet); }*/ /* * INIT {{ */ static inline void alarm_applet_init_app_command_map(AlarmApplet* applet) { applet->app_command_map = g_hash_table_new(g_str_hash, g_str_equal); // `rhythmbox-client --play' doesn't actually start playing unless // Rhythmbox is already running. Sounds like a Bug. g_hash_table_insert(applet->app_command_map, "rhythmbox", "rhythmbox-client --play"); g_hash_table_insert(applet->app_command_map, "banshee", "banshee --play"); // Note that totem should already be open with a file for this to work. g_hash_table_insert(applet->app_command_map, "totem", "totem --play"); g_hash_table_insert(applet->app_command_map, "audacious", "audacious --play"); // The following require playerctl g_hash_table_insert(applet->app_command_map, "vlc", "playerctl -p vlc play"); g_hash_table_insert(applet->app_command_map, "celluloid", "playerctl -p io.github.celluloid_player.Celluloid play"); // mpv does not have an MPRIS implementation by default g_hash_table_insert(applet->app_command_map, "mpv", "playerctl -p mpv play #Needs mpv-mpris"); } void alarm_applet_activate(GtkApplication* app, gpointer user_data) { AlarmApplet* applet = user_data; // Check if there's another instance running GList* gtk_windows = gtk_application_get_windows(app); if(gtk_windows) { gtk_window_present(GTK_WINDOW(gtk_windows->data)); return; } #ifdef ENABLE_GCONF_MIGRATION // Call the GConf -> GSettings migration utility if(!g_spawn_command_line_sync("alarm-clock-applet-gconf-migration", NULL, NULL, NULL, NULL)) g_spawn_command_line_sync("./gconf-migration/alarm-clock-applet-gconf-migration", NULL, NULL, NULL, NULL); #endif // TODO: Add to gsettings applet->snooze_mins = 5; // Initialize gsettings alarm_applet_gsettings_init(applet); // Load alarms alarm_applet_alarms_load(applet); // Load sounds from alarms alarm_applet_sounds_load(applet); // Initialise map for app commands alarm_applet_init_app_command_map(applet); // Load apps for alarms alarm_applet_apps_load(applet); // Set up applet UI alarm_applet_ui_init(applet); // Show alarms window, unless --hidden if(!applet->hidden) g_action_activate(G_ACTION(applet->action_toggle_list_win), NULL); } /** * Cleanup */ static void alarm_applet_quit(AlarmApplet* applet) { g_debug("AlarmApplet: Quitting..."); } static gint handle_local_options(GApplication* application, GVariantDict* options, gpointer user_data) { guint32 count; if(g_variant_dict_lookup(options, "version", "b", &count)) { g_print(PACKAGE_NAME " " VERSION "\n"); return 0; } return -1; } static gint handle_command_line(GApplication* application, GApplicationCommandLine* cmdline, gpointer user_data) { AlarmApplet* applet = user_data; gboolean stop_all = FALSE; gboolean snooze_all = FALSE; GVariantDict* options = g_application_command_line_get_options_dict(cmdline); if(g_variant_dict_lookup(options, "stop-all", "b", &stop_all)) g_action_activate(G_ACTION(applet->action_stop_all), NULL); if(g_variant_dict_lookup(options, "snooze-all", "b", &snooze_all)) g_action_activate(G_ACTION(applet->action_snooze_all), NULL); if(!(stop_all || snooze_all)) g_application_activate(G_APPLICATION(application)); return 0; } /** * Alarm Clock main() */ int main(int argc, char* argv[]) { AlarmApplet* applet = NULL; // Internationalization bindtextdomain(GETTEXT_PACKAGE, ALARM_CLOCK_DATADIR "/locale"); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); textdomain(GETTEXT_PACKAGE); // Terminate on critical errors // g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL); // Initialize GTK+ GtkApplication* application = gtk_application_new("io.github.alarm-clock-applet", G_APPLICATION_HANDLES_COMMAND_LINE); // Initialize applet struct applet = g_new0(AlarmApplet, 1); applet->application = application; g_signal_connect(application, "activate", G_CALLBACK(alarm_applet_activate), applet); // Command line options applet->hidden = FALSE; // Start hidden GOptionEntry entries[] = { { "hidden", 'h', G_OPTION_FLAG_NONE, G_OPTION_ARG_NONE, &applet->hidden, _("Start hidden"), NULL }, { "stop-all", 's', G_OPTION_FLAG_NONE, G_OPTION_ARG_NONE, NULL, _("Stop all alarms"), NULL }, { "snooze-all", 'z', G_OPTION_FLAG_NONE, G_OPTION_ARG_NONE, NULL, _("Snooze all alarms"), NULL }, { "version", 'v', G_OPTION_FLAG_NONE, G_OPTION_ARG_NONE, NULL, _("Display version information"), NULL }, { NULL } }; g_application_add_main_option_entries(G_APPLICATION(application), entries); g_signal_connect(application, "handle-local-options", G_CALLBACK(handle_local_options), NULL); g_signal_connect(application, "command-line", G_CALLBACK(handle_command_line), applet); // Run the main loop gint ret = g_application_run(G_APPLICATION(application), argc, argv); // Clean up // FIXME: check for null? alarm_applet_quit(applet); g_object_unref(application); return ret; } /* * }} INIT */ void alarm_applet_request_resize(AlarmApplet* applet) { if(!applet->list_window) g_error("list_window is NULL in alarm_applet_request_resize()"); alarm_list_request_resize(applet->list_window); } alarm-clock-0.4.1/src/alarm-applet.h000066400000000000000000000063171435672060600172400ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * alarm-applet.h -- Alarm Clock applet bootstrap * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #ifndef ALARMAPPLET_H_ #define ALARMAPPLET_H_ #include #include #include #include #include #include #include #include #include G_BEGIN_DECLS typedef struct _AlarmApplet AlarmApplet; extern GHashTable* app_command_map; void alarm_applet_label_update(AlarmApplet* applet); void alarm_applet_clear_alarms(AlarmApplet* applet); #include "alarm.h" #include "prefs.h" #include "alarm-gsettings.h" #include "player.h" #include "util.h" #include "list-entry.h" #include "ui.h" #define ALARM_NAME "Alarm Clock" #define ALARM_ICON "alarm-clock" #define TIMER_ICON "alarm-timer" #define TRIGGERED_ICON "alarm-clock-triggered" #define ALARM_STD_SNOOZE 9 typedef enum { LABEL_TYPE_INVALID = 0, LABEL_TYPE_TIME, LABEL_TYPE_REMAIN, } LabelType; typedef enum { UNIQUE_STOP_ALL = 1, UNIQUE_SNOOZE_ALL, } UniqueCustomCommandID; struct _AlarmApplet { /* Gtk App */ GtkApplication* application; /* User Interface */ GtkBuilder* ui; /* App Indicator */ AppIndicator* app_indicator; /* Status menu */ GtkWidget* status_menu; /* Alarms */ GList* alarms; guint n_triggered; // Number of triggered alarms /* Sounds & apps list */ GList* sounds; GList* apps; GHashTable* app_command_map; /* List-alarms UI */ AlarmListWindow* list_window; /* Alarm settings dialog */ AlarmSettingsDialog* settings_dialog; /* Preferences */ GtkDialog* prefs_dialog; GtkWidget* prefs_autostart_check; guint snooze_mins; GSimpleAction* action_edit; GSimpleAction* action_delete; GSimpleAction* action_stop; GSimpleAction* action_snooze; GSimpleAction* action_enable; // Global actions GSimpleAction* action_snooze_all; GSimpleAction* action_stop_all; GSimpleAction* action_toggle_list_win; GSimpleAction* action_toggle_autostart; GSimpleAction* action_toggle_show_label; // Args gboolean hidden; // Start hidden // GSettings GSettings* settings_global; }; void alarm_applet_sounds_load(AlarmApplet* applet); const gchar* alarm_applet_get_app_info_command(const AlarmApplet* applet, GAppInfo* app); #define ALARM_APPLET_GET_APP_INFO_COMMAND(x) alarm_applet_get_app_info_command(applet, x) void alarm_applet_apps_load(AlarmApplet* applet); void alarm_applet_alarms_load(AlarmApplet* applet); void alarm_applet_alarms_add(AlarmApplet* applet, Alarm* alarm); void alarm_applet_alarms_remove_and_delete(AlarmApplet* applet, Alarm* alarm); guint alarm_applet_alarms_snooze(AlarmApplet* applet); guint alarm_applet_alarms_stop(AlarmApplet* applet); void alarm_applet_alarm_snooze(AlarmApplet* applet, Alarm* alarm); void alarm_applet_alarm_stop(AlarmApplet* applet, Alarm* alarm); void alarm_applet_destroy(AlarmApplet* applet); void alarm_applet_request_resize(AlarmApplet* applet); G_END_DECLS #endif /*ALARMAPPLET_H_*/ alarm-clock-0.4.1/src/alarm-clock-applet.pod000066400000000000000000000033761435672060600206660ustar00rootroot00000000000000=head1 NAME alarm-clock-applet - Alarm Clock for your notification area =head1 SYNOPSIS =over 8 =item B =item B =item B =item B =back =head1 DESCRIPTION B is an applet providing alarm clock functionality which lives within the notification area. It is easy to use yet powerful with support for multiple and repeatable alarms, as well as snoozing, and a flexible notification system. Two types of alarms are supported: B and B. Notification can be done by either playing a sound, launching an application, showing a notification bubble, or any combination of the aforementioned options. Please see https://alarm-clock-applet.github.io/ for more information. =head1 OPTIONS =over 8 =item B<-h, --hidden> Starts the application minimized to tray. =item B<-s, --stop-all> Stops all alarms. =item B<-z, --snooze-all> Snoozes all alarms. =item B<-?, --help> Shows help options. =item B<-v, --version> Displays information about the currently installed version and exists. =back =head1 BUGS Please report bugs at https://github.com/alarm-clock-applet/alarm-clock/issues/ =head1 AUTHORS B was written by Tasos Sahanidis and Johannes H. Jensen . =head1 COPYRIGHT 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, or (at your option) any later version. On Debian GNU/Linux systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL'. =cut alarm-clock-0.4.1/src/alarm-enums.h000066400000000000000000000013651435672060600171000ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * alarm-enums.h -- Enums used for alarms * * Copyright (C) 2022 Tasos Sahanidis */ typedef enum { ALARM_TYPE_INVALID = 0, ALARM_TYPE_CLOCK, /* Alarm at specific time */ ALARM_TYPE_TIMER, /* Alarm in X mins */ } AlarmType; typedef enum { ALARM_REPEAT_NONE = 0, ALARM_REPEAT_SUN = 1 << 0, ALARM_REPEAT_MON = 1 << 1, ALARM_REPEAT_TUE = 1 << 2, ALARM_REPEAT_WED = 1 << 3, ALARM_REPEAT_THU = 1 << 4, ALARM_REPEAT_FRI = 1 << 5, ALARM_REPEAT_SAT = 1 << 6, } AlarmRepeat; typedef enum { ALARM_NOTIFY_INVALID = 0, ALARM_NOTIFY_SOUND, /* Notification by sound */ ALARM_NOTIFY_COMMAND, /* Notification by command */ } AlarmNotifyType; alarm-clock-0.4.1/src/alarm-glib-enums.c.etemplate000066400000000000000000000034001435672060600217550ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * Virt Viewer: A virtual machine console viewer * * Copyright (C) 2007-2012 Red Hat, Inc. * * 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 * * Author: Marc-André Lureau */ /*** BEGIN file-header ***/ /*** END file-header ***/ /*** BEGIN file-production ***/ #include "@filename@" #include "alarm-glib-enums.h" /*** END file-production ***/ /*** BEGIN value-header ***/ GType @enum_name@_get_type(void) { static gsize g_define_type_id__cache = 0; if (g_once_init_enter(&g_define_type_id__cache)) { static const G@Type@Value values[] = { /*** END value-header ***/ /*** BEGIN value-production ***/ { @VALUENAME@, "@VALUENAME@", "@valuenick@" }, /*** END value-production ***/ /*** BEGIN value-tail ***/ { 0, NULL, NULL } }; GType g_define_type_id = g_@type@_register_static(g_intern_static_string("@EnumName@"), values); g_once_init_leave(&g_define_type_id__cache, g_define_type_id); } return g_define_type_id__cache; } /*** END value-tail ***/ alarm-clock-0.4.1/src/alarm-glib-enums.h.etemplate000066400000000000000000000024061435672060600217670ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * Virt Viewer: A virtual machine console viewer * * Copyright (C) 2007-2012 Red Hat, Inc. * * 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 * * Author: Marc-André Lureau */ /*** BEGIN file-header ***/ #ifndef ALARM_GLIB_ENUMS_H #define ALARM_GLIB_ENUMS_H #include /*** END file-header ***/ /*** BEGIN value-header ***/ GType @enum_name@_get_type(void) G_GNUC_CONST; #define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type()) /*** END value-header ***/ /*** BEGIN file-tail ***/ #endif /*** END file-tail ***/ alarm-clock-0.4.1/src/alarm-gsettings.c000066400000000000000000000053101435672060600177450ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * alarm-gconf.c -- GConf routines * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #include #include "alarm-applet.h" #include "alarm-gsettings.h" #include "alarm-settings.h" #include "alarm.h" static inline gboolean alarm_in_alarm_list(guint32 id, GList* alarms) { for(GList* l = alarms; l; l = l->next) { if(id == ALARM(l->data)->id) return TRUE; } return FALSE; } static inline gboolean alarm_in_gsettings_list(guint32 id, const guint32* values, gsize count) { for(guint32 i = 0; i < count; i++) { if(values[i] == id) return TRUE; } return FALSE; } void alarm_list_changed(GSettings* self, gchar* key, gpointer user_data) { AlarmApplet* applet = user_data; g_debug("alarm_list_changed"); // Get new list of alarms GVariant* var = g_settings_get_value(self, "alarms"); gsize count = 0; const guint32* values = g_variant_get_fixed_array(var, &count, sizeof(guint32)); // First, check if any new alarms have been added for(guint32 i = 0; i < count; i++) { const guint32 settings_id = values[i]; // Add the alarm if it doesn't exist if(!alarm_in_alarm_list(settings_id, applet->alarms)) { Alarm* a = alarm_new(applet, self, settings_id); g_debug("\tADD alarm #%d %p", settings_id, a); alarm_applet_alarms_add(applet, a); } } // Finally, check if any existing alarms no longer exist GList* l = applet->alarms; while(l) { Alarm* a = ALARM(l->data); if(!alarm_in_gsettings_list(a->id, values, count)) { g_debug("\tDELETE alarm #%d %p", a->id, a); alarm_disable(a); alarm_clear(a); // Remove from list alarm_applet_alarms_remove_and_delete(applet, a); // Start loop from beginning l = applet->alarms; continue; } l = l->next; } g_variant_unref(var); } void alarm_show_label_changed(GSettings* self, gchar* key, gpointer user_data) { g_debug("alarm_show_label_changed"); prefs_show_label_update(user_data); } /* * Init */ void alarm_applet_gsettings_init(AlarmApplet* applet) { applet->settings_global = g_settings_new("io.github.alarm-clock-applet"); g_signal_connect(applet->settings_global, "changed::alarms", G_CALLBACK(alarm_list_changed), applet); // Maybe GSettingsAction would work better here. If one can figure out how to use it, that is. g_signal_connect(applet->settings_global, "changed::show-label", G_CALLBACK(alarm_show_label_changed), applet); } alarm-clock-0.4.1/src/alarm-gsettings.h000066400000000000000000000007361435672060600177610ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * alarm-gconf.h -- GConf routines * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #ifndef ALARM_GCONF_H_ #define ALARM_GCONF_H_ #include #include "alarm-applet.h" G_BEGIN_DECLS void alarm_applet_gsettings_init(AlarmApplet* applet); void alarm_applet_gsettings_load(AlarmApplet* applet); G_END_DECLS #endif /*ALARM_GCONF_H_*/ alarm-clock-0.4.1/src/alarm-list-window.c000066400000000000000000000472431435672060600202310ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * alarms-list.d -- Alarm list window * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #include #include "alarm-list-window.h" #include "alarm-settings.h" #include "alarm-actions.h" gboolean alarm_list_window_delete_event(GtkWidget* window, GdkEvent* event, gpointer data); static void alarm_list_window_selection_changed(GtkTreeSelection*, gpointer); static gboolean alarm_list_window_update_timer(gpointer); static gint alarm_list_window_sort_iter_compare(GtkTreeModel* model, GtkTreeIter* a, GtkTreeIter* b, gpointer data); void alarm_list_window_rows_reordered(GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, gpointer arg3, gpointer data); void alarm_list_window_enable_toggled(GtkCellRendererToggle* cell_renderer, gchar* path, gpointer data); void alarm_list_window_snooze_menu_activated(GtkMenuItem* item, gpointer data); void alarm_list_window_snooze_menu_custom_activated(GtkMenuItem* menuitem, gpointer data); void alarm_list_window_snooze_menu_update(AlarmListWindow* list_window); static void alarm_list_window_update_row(AlarmListWindow* list_window, GtkTreeIter* iter); static void alarm_list_window_row_activated(GtkTreeView* self, GtkTreePath* path, GtkTreeViewColumn* column, gpointer user_data); /** * Create a new Alarm List Window */ AlarmListWindow* alarm_list_window_new(AlarmApplet* applet) { AlarmListWindow* list_window; GtkBuilder* builder = applet->ui; GtkTreeSelection* selection; GtkTreeSortable* sortable; // Initialize struct list_window = g_new0(AlarmListWindow, 1); list_window->applet = applet; // Widgets list_window->window = GTK_WINDOW(gtk_builder_get_object(builder, "alarm-list-window")); g_object_set(list_window->window, "application", applet->application, NULL); list_window->model = GTK_LIST_STORE(gtk_builder_get_object(builder, "alarms-liststore")); list_window->tree_view = GTK_TREE_VIEW(gtk_builder_get_object(builder, "alarm-list-view")); list_window->new_button = GTK_WIDGET(gtk_builder_get_object(builder, "new-button")); list_window->edit_button = GTK_WIDGET(gtk_builder_get_object(builder, "edit-button")); list_window->delete_button = GTK_WIDGET(gtk_builder_get_object(builder, "delete-button")); list_window->enable_button = GTK_WIDGET(gtk_builder_get_object(builder, "enable-button")); list_window->stop_button = GTK_WIDGET(gtk_builder_get_object(builder, "stop-button")); list_window->snooze_button = GTK_WIDGET(gtk_builder_get_object(builder, "snooze-button")); list_window->snooze_menu = GTK_WIDGET(gtk_builder_get_object(builder, "snooze-menu")); // Set up icons for the list // FIXME: Listen to icon theme changes and update these // First: get the appropriate size gint icon_size; if(!gtk_icon_size_lookup(GTK_ICON_SIZE_LARGE_TOOLBAR, &icon_size, NULL)) icon_size = 64; list_window->alarm_icon = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(), ALARM_ICON, icon_size, GTK_ICON_LOOKUP_USE_BUILTIN, NULL); list_window->timer_icon = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(), TIMER_ICON, icon_size, GTK_ICON_LOOKUP_USE_BUILTIN, NULL); // Connect some signals selection = gtk_tree_view_get_selection(list_window->tree_view); g_signal_connect(selection, "changed", G_CALLBACK(alarm_list_window_selection_changed), applet); g_signal_connect(list_window->tree_view, "row-activated", G_CALLBACK(alarm_list_window_row_activated), applet); // Update view every half a second for pretty countdowns g_timeout_add(500, (GSourceFunc)alarm_list_window_update_timer, applet); // Set up sorting sortable = GTK_TREE_SORTABLE(list_window->model); gtk_tree_sortable_set_sort_func(sortable, SORTID_TIME_REMAINING, alarm_list_window_sort_iter_compare, GINT_TO_POINTER(SORTID_TIME_REMAINING), NULL); // Set initial sort order gtk_tree_sortable_set_sort_column_id(sortable, SORTID_TIME_REMAINING, GTK_SORT_ASCENDING); // Populate with alarms alarm_list_window_alarms_add(list_window, applet->alarms); // Update snooze menu alarm_list_window_snooze_menu_update(list_window); // Add toplevel window to GtkApplication gtk_window_set_application(list_window->window, applet->application); return list_window; } /** * Show and present list window */ void alarm_list_window_show(AlarmListWindow* list_window) { gtk_window_present_with_time(list_window->window, gtk_get_current_event_time()); alarm_list_request_resize(list_window); } /** * Hide list window */ void alarm_list_window_hide(AlarmListWindow* list_window) { gtk_widget_hide(GTK_WIDGET(list_window->window)); } /** * Delete-event handler for list-window */ gboolean alarm_list_window_delete_event(GtkWidget* window, GdkEvent* event, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; g_action_activate(G_ACTION(applet->action_toggle_list_win), NULL); return TRUE; } // // ALARM LIST MODEL: // /** * Find alarm in the model * * Returns TRUE if found and sets iter to the location * Returns FALSE otherwise */ gboolean alarm_list_window_find_alarm(GtkTreeModel* model, Alarm* alarm, GtkTreeIter* iter) { GtkTreeIter it; Alarm* a; gboolean valid; valid = gtk_tree_model_get_iter_first(model, &it); while(valid) { gtk_tree_model_get(model, &it, COLUMN_ALARM, &a, -1); if(a == alarm) { if(iter) { *iter = it; } g_object_unref(a); return TRUE; } valid = gtk_tree_model_iter_next(model, &it); g_object_unref(a); } return FALSE; } /** * Check whether the list window contains an alarm */ gboolean alarm_list_window_contains(AlarmListWindow* list_window, Alarm* alarm) { return alarm_list_window_find_alarm(GTK_TREE_MODEL(list_window->model), alarm, NULL); } /** * Update the row in the list at the position specified by iter */ static void alarm_list_window_update_row(AlarmListWindow* list_window, GtkTreeIter* iter) { GtkTreeModel* model = GTK_TREE_MODEL(list_window->model); Alarm* a; gchar tmp[200]; gchar* tmp2; struct tm tm; GdkPixbuf* type_col; GString* time_col; gchar* label_col; // Get the alarm at iter gtk_tree_model_get(GTK_TREE_MODEL(model), iter, COLUMN_ALARM, &a, -1); // If alarm is running (active), show remaining time if(a->active) alarm_get_remain(a, &tm); else alarm_get_time(a, &tm); if(a->type == ALARM_TYPE_CLOCK) { type_col = list_window->alarm_icon; strftime(tmp, sizeof(tmp), TIME_COL_CLOCK_FORMAT, &tm); } else { type_col = list_window->timer_icon; strftime(tmp, sizeof(tmp), TIME_COL_TIMER_FORMAT, &tm); } // Create time column time_col = g_string_new(tmp); if(a->type == ALARM_TYPE_CLOCK && a->repeat != ALARM_REPEAT_NONE) { tmp2 = alarm_repeat_to_pretty(a->repeat); g_string_append_printf(time_col, TIME_COL_REPEAT_FORMAT, tmp2); g_free(tmp2); } // Create label column tmp2 = g_markup_escape_text(a->message, -1); if(a->triggered) { label_col = g_strdup_printf(LABEL_COL_TRIGGERED_FORMAT, tmp2); } else { label_col = g_strdup_printf(LABEL_COL_FORMAT, tmp2); } g_free(tmp2); gtk_list_store_set(GTK_LIST_STORE(model), iter, COLUMN_TYPE, type_col, COLUMN_TIME, time_col->str, COLUMN_LABEL, label_col, COLUMN_ACTIVE, a->active, COLUMN_TRIGGERED, a->triggered, -1); // Restore icon visibility when an alarm is cleared / snoozed if(!a->triggered) { gtk_list_store_set(GTK_LIST_STORE(model), iter, COLUMN_SHOW_ICON, TRUE, -1); } g_object_unref(a); g_string_free(time_col, TRUE); g_free(label_col); } /** * Add alarm to the list window */ void alarm_list_window_alarm_add(AlarmListWindow* list_window, Alarm* alarm) { GtkListStore* store = list_window->model; GtkTreeIter iter; gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, COLUMN_ALARM, alarm, -1); alarm_list_window_update_row(list_window, &iter); } /** * Update alarm in the list window */ void alarm_list_window_alarm_update(AlarmListWindow* list_window, Alarm* alarm) { GtkTreeIter iter; g_debug("AlarmListWindow alarm_update: %p (%s)", alarm, alarm->message); if(alarm_list_window_find_alarm(GTK_TREE_MODEL(list_window->model), alarm, &iter)) { alarm_list_window_update_row(list_window, &iter); } else { g_warning("AlarmListWindow alarm_update: Could not find alarm %p", alarm); } } /** * Remove alarm from the list window */ void alarm_list_window_alarm_remove(AlarmListWindow* list_window, Alarm* alarm) { GtkTreeIter iter; if(alarm_list_window_find_alarm(GTK_TREE_MODEL(list_window->model), alarm, &iter)) { gtk_list_store_remove(list_window->model, &iter); } else { g_warning("AlarmListWindow alarm_remove: Could not find alarm %p", alarm); } } /** * Add several alarms to the list window */ void alarm_list_window_alarms_add(AlarmListWindow* list_window, GList* alarms) { AlarmApplet* applet = list_window->applet; GList* l = NULL; Alarm* a; for(l = applet->alarms; l; l = l->next) { a = ALARM(l->data); alarm_list_window_alarm_add(list_window, a); } } /** * Update the alarm view every half a second */ static gboolean alarm_list_window_update_timer(gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; GtkTreeModel* model = GTK_TREE_MODEL(applet->list_window->model); GtkTreeIter iter; Alarm* a; gboolean show_icon; gboolean valid; // Don't attempt to update if the window is not mapped if(!gtk_widget_get_mapped(GTK_WIDGET(applet->list_window->window))) return TRUE; valid = gtk_tree_model_get_iter_first(model, &iter); while(valid) { gtk_tree_model_get(model, &iter, COLUMN_ALARM, &a, COLUMN_SHOW_ICON, &show_icon, -1); // Always update active alarms regardless of the changed state if(a->active || a->triggered || a->changed) { alarm_list_window_update_row(applet->list_window, &iter); // Blink icon on triggered alarms if(a->triggered) { gtk_list_store_set(GTK_LIST_STORE(model), &iter, COLUMN_SHOW_ICON, !show_icon, -1); } a->changed = FALSE; } valid = gtk_tree_model_iter_next(model, &iter); g_object_unref(a); } // Keep updating return TRUE; } /** * Sort compare function */ static gint alarm_list_window_sort_iter_compare(GtkTreeModel* model, GtkTreeIter* i1, GtkTreeIter* i2, gpointer data) { gint sortcol = GPOINTER_TO_INT(data); Alarm *a1, *a2; gint ret = 0; // Fetch ze alarms gtk_tree_model_get(model, i1, COLUMN_ALARM, &a1, -1); gtk_tree_model_get(model, i2, COLUMN_ALARM, &a2, -1); switch(sortcol) { case SORTID_TIME_REMAINING: { // Sort by remaining time time_t t1, t2; // Show active alarms first if(a1->active && a2->active) { t1 = alarm_get_remain_seconds(a1); t2 = alarm_get_remain_seconds(a2); } else if(a1->active && !a2->active) { t1 = 0; t2 = 1; } else if(!a1->active && a2->active) { t1 = 1; t2 = 0; } else { // Both inactive, sort by time t1 = a1->time; t2 = a2->time; } ret = t1 - t2; } break; default: g_return_val_if_reached(0); } g_object_unref(a1); g_object_unref(a2); return ret; } // // TREE VIEW: // /** * Get the selected alarm * Returned alarm must be unref'd */ Alarm* alarm_list_window_get_selected_alarm(AlarmListWindow* list_window) { GtkTreeModel* model; GtkTreeSelection* selection; GtkTreeIter iter; Alarm* a; g_assert(list_window); // Fetch selection selection = gtk_tree_view_get_selection(list_window->tree_view); if(!gtk_tree_selection_get_selected(selection, &model, &iter)) { // No alarms selected // g_debug ("get_selected_alarm: No alarms selected!"); return NULL; } gtk_tree_model_get(model, &iter, COLUMN_ALARM, &a, -1); // gtk_tree_model_get () will increase the reference count // of the alarms each time it's called. We dereference it // here so they can be properly freed later with g_object_unref() // Ugh, we use gtk_tree_model_get a lot, is there no other way? return a; } /** * Set the selected alarm */ static void alarm_list_window_select_alarm(AlarmListWindow* list_window, Alarm* alarm) { GtkTreeModel* model = GTK_TREE_MODEL(list_window->model); GtkTreeSelection* selection; GtkTreeIter iter; if(!alarm_list_window_find_alarm(model, alarm, &iter)) { g_warning("AlarmListWindow select_alarm: Alarm %p not found!", alarm); return; } selection = gtk_tree_view_get_selection(list_window->tree_view); gtk_tree_selection_select_iter(selection, &iter); } /** * Selection changed in tree view * * Here we update the associated actions */ void alarm_list_window_selection_changed(GtkTreeSelection* selection, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmListWindow* list_window = applet->list_window; Alarm* a = list_window->selected_alarm; // If rows have just been reordered, retain the selected row // But only if the reordering was triggered by a click on the toggle cell if(list_window->reordered && list_window->toggled) { list_window->reordered = FALSE; list_window->toggled = FALSE; alarm_list_window_select_alarm(list_window, list_window->selected_alarm); return; } // Reset reordered and toggled flags list_window->reordered = FALSE; list_window->toggled = FALSE; // Update actions alarm_applet_actions_update_sensitive(applet); alarm_action_update_enabled(applet); // Update selected alarm (might be NULL) list_window->selected_alarm = alarm_list_window_get_selected_alarm(list_window); if(list_window->selected_alarm) { // Update snooze button menu if(list_window->selected_alarm->type == ALARM_TYPE_CLOCK) { // We always snooze for 9 mins on alarm clocks gtk_menu_tool_button_set_menu(GTK_MENU_TOOL_BUTTON(list_window->snooze_button), NULL); } else { // Allow custom snooze mins gtk_menu_tool_button_set_menu(GTK_MENU_TOOL_BUTTON(list_window->snooze_button), list_window->snooze_menu); } } g_debug("AlarmListWindow: selection-changed from %s (%p) to %s (%p)", (a) ? a->message : "", a, (list_window->selected_alarm) ? list_window->selected_alarm->message : "", list_window->selected_alarm); if(list_window->selected_alarm) g_object_unref(list_window->selected_alarm); } /** * Toggle cell changed */ void alarm_list_window_enable_toggled(GtkCellRendererToggle* cell_renderer, gchar* path, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmListWindow* list_window = applet->list_window; GtkTreeModel* model = GTK_TREE_MODEL(list_window->model); GtkTreeIter iter; Alarm* a; if(gtk_tree_model_get_iter_from_string(model, &iter, path)) { gtk_tree_model_get(model, &iter, COLUMN_ALARM, &a, -1); g_debug("AlarmListWindow enable toggled on %p", a); // Reset reordered flag list_window->reordered = FALSE; // Select the toggled alarm alarm_list_window_select_alarm(list_window, a); // Let selection_changed know an alarm was just toggled so // this alarm is re-selected if the rows are reordered list_window->toggled = TRUE; // Activate the enabled action g_action_activate(G_ACTION(applet->action_enable), NULL); g_object_unref(a); } } /** * Rows reordered callback */ void alarm_list_window_rows_reordered(GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, gpointer arg3, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmListWindow* list_window = applet->list_window; // Return if list_window is not set. This happens during initialization. if(!list_window) return; // Signal to selection_changed that the rows have been reordered. list_window->reordered = TRUE; } // // TOOLBAR: // /** * Snooze menu item activated */ void alarm_list_window_snooze_menu_activated(GtkMenuItem* menuitem, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; gchar** parts; guint i; guint mins; // g_debug ("AlarmListWindow: snooze-menu activated %s to %d", // gtk_menu_item_get_label (menuitem), gtk_check_menu_item_get_active (menuitem)); if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menuitem))) { // Determine #mins from the name of the menu item (hackish) // Assumes name follows the format {foo}-{mins} parts = g_strsplit(gtk_buildable_get_name(GTK_BUILDABLE(menuitem)), "-", 0); for(i = 0; parts[i] != NULL; i++) // Loop to the last element ; mins = g_strtod(parts[i - 1], NULL); g_debug("AlarmListWindow: snooze-menu activated: Snooze for %d mins!", mins); applet->snooze_mins = mins; g_action_activate(G_ACTION(applet->action_snooze), NULL); } } /** * Snooze menu custom item activated */ void alarm_list_window_snooze_menu_custom_activated(GtkMenuItem* menuitem, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmListWindow* list_window = applet->list_window; GtkWidget *dialog, *spin; gint response; Alarm* a; guint mins; g_debug("AlarmListWindow: snooze-menu custom activated"); dialog = GTK_WIDGET(gtk_builder_get_object(applet->ui, "snooze-dialog")); spin = GTK_WIDGET(gtk_builder_get_object(applet->ui, "snooze-spin")); // Run dialog, hide for later use response = gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_hide(GTK_WIDGET(dialog)); if(response == GTK_RESPONSE_OK) { mins = (gint)gtk_spin_button_get_value(GTK_SPIN_BUTTON(spin)); if((a = alarm_list_window_get_selected_alarm(list_window))) { g_debug("AlarmListWindow: Snooze Custom: %s for %d mins", a->message, mins); alarm_snooze(a, mins * 60); g_object_unref(a); } } } /** * Update the snooze menu according to the applet's snooze_mins property */ void alarm_list_window_snooze_menu_update(AlarmListWindow* list_window) { AlarmApplet* applet = (AlarmApplet*)list_window->applet; GtkMenuShell* menu = GTK_MENU_SHELL(list_window->snooze_menu); gchar* target_name = g_strdup_printf("snooze-menu-%d", applet->snooze_mins); const gchar* name; GtkMenuItem* item; g_debug("AlarmListWindow: menu_update to %d", applet->snooze_mins); GList* list = gtk_container_get_children(GTK_CONTAINER(menu)); block_list(list, alarm_list_window_snooze_menu_activated); for(GList* l = list; l != NULL; l = l->next) { item = GTK_MENU_ITEM(l->data); name = gtk_buildable_get_name(GTK_BUILDABLE(item)); if(g_strcmp0(name, target_name) == 0) { g_object_set(item, "active", TRUE, NULL); g_debug("AlarmListWindow: menu_update to %s", name); } } unblock_list(list, alarm_list_window_snooze_menu_activated); g_list_free(list); g_free(target_name); } static void alarm_list_window_row_activated(GtkTreeView* self, GtkTreePath* path, GtkTreeViewColumn* column, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; g_action_activate(G_ACTION(applet->action_edit), NULL); } void alarm_list_request_resize(AlarmListWindow* list_window) { gtk_tree_view_columns_autosize(list_window->tree_view); } alarm-clock-0.4.1/src/alarm-list-window.h000066400000000000000000000055561435672060600202370ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * alarms-list.h -- Alarm list window * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #ifndef ALARM_LIST_WINDOW_H_ #define ALARM_LIST_WINDOW_H_ #include typedef struct _AlarmListWindow AlarmListWindow; #include "alarm-applet.h" #include "alarm.h" typedef enum { COLUMN_ALARM = 0, COLUMN_TYPE, COLUMN_TIME, COLUMN_LABEL, COLUMN_ACTIVE, COLUMN_TRIGGERED, COLUMN_SHOW_ICON, ALARMS_N_COLUMNS, } AlarmListColumn; typedef enum { SORTID_TIME_REMAINING = 0, } AlarmSortID; struct _AlarmListWindow { AlarmApplet* applet; Alarm* selected_alarm; gboolean reordered; // Indicates that rows have just been reordered gboolean toggled; // Indicates that an alarm has just been toggled GtkWindow* window; GtkListStore* model; GtkTreeView* tree_view; GtkWidget* new_button; GtkWidget* edit_button; GtkWidget* delete_button; GtkWidget* enable_button; GtkWidget* stop_button; GtkWidget* snooze_button; GtkWidget* snooze_menu; GdkPixbuf* alarm_icon; GdkPixbuf* timer_icon; }; // #define TIME_COL_FORMAT "%H:%M:%S" // TODO: Does fixing the font size give a11y problems? #define TIME_COL_CLOCK_FORMAT " %H:%M:%S" #define TIME_COL_TIMER_FORMAT "-%H:%M:%S" #define TIME_COL_REPEAT_FORMAT "\n %s" #define LABEL_COL_FORMAT "%s" #define LABEL_COL_TRIGGERED_FORMAT "%s" #define CLOCK_FORMAT "%H:%M" #define TIMER_FORMAT "-%H:%M" #define DELETE_DIALOG_TITLE _("Delete %s?") #define DELETE_DIALOG_TEXT _("Delete %s %s?") #define DELETE_DIALOG_SECONDARY _("Are you sure you want to delete the %s labeled %s scheduled at %s? This action cannot be undone.") AlarmListWindow* alarm_list_window_new(AlarmApplet* applet); void alarm_list_window_show(AlarmListWindow* list_window); void alarm_list_window_hide(AlarmListWindow* list_window); void alarm_list_window_toggle(AlarmListWindow* list_window); void alarm_list_window_alarm_add(AlarmListWindow* list_window, Alarm* alarm); void alarm_list_window_alarm_update(AlarmListWindow* list_window, Alarm* alarm); void alarm_list_window_alarm_remove(AlarmListWindow* list_window, Alarm* alarm); void alarm_list_window_alarms_add(AlarmListWindow* list_window, GList* alarms); gboolean alarm_list_window_find_alarm(GtkTreeModel* model, Alarm* alarm, GtkTreeIter* iter); gboolean alarm_list_window_contains(AlarmListWindow* list_window, Alarm* alarm); Alarm* alarm_list_window_get_selected_alarm(AlarmListWindow* list_window); void alarm_list_request_resize(AlarmListWindow* list_window); #endif /*ALARM_LIST_WINDOW_H_*/ alarm-clock-0.4.1/src/alarm-settings.c000066400000000000000000000674221435672060600176120ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * alarm-settings.c -- Alarm settings dialog * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #include "alarm-settings.h" #include "alarm-applet.h" #include "alarm.h" #include "player.h" #include #include #include /* * GUI callbacks */ void alarm_settings_changed_type(GtkToggleButton* toggle, gpointer data); void alarm_settings_changed_label(GtkEditable* editable, gpointer data); void alarm_settings_changed_time(GtkSpinButton* spinbutton, gpointer data); void alarm_settings_changed_repeat(GtkToggleButton* togglebutton, gpointer data); void set_repeat_toggle_buttons(AlarmSettingsDialog* dialog, AlarmRepeat repeat); void alarm_settings_repeat_all(GtkButton* button, gpointer data); void alarm_settings_repeat_weekday(GtkButton* button, gpointer data); void alarm_settings_repeat_weekend(GtkButton* button, gpointer data); void alarm_settings_repeat_clear(GtkButton* button, gpointer data); void alarm_settings_changed_notify_type(GtkToggleButton* togglebutton, gpointer data); void alarm_settings_changed_sound(GtkComboBox* combo, gpointer data); void alarm_settings_changed_sound_repeat(GtkToggleButton* togglebutton, gpointer data); void alarm_settings_changed_app(GtkComboBox* combo, gpointer data); void alarm_settings_changed_command(GtkEditable* editable, gpointer data); static void alarm_settings_update_time(AlarmSettingsDialog* dialog); void alarm_settings_changed_sound(GtkComboBox* combo, gpointer data); void alarm_settings_changed_app(GtkComboBox* combo, gpointer data); #define REPEAT_LABEL _("_Repeat: %s") /* * Utility functions for updating various parts of the settings dialog. */ static void alarm_settings_update_type(AlarmSettingsDialog* dialog) { AlarmType type = dialog->alarm->type; gboolean clock_toggled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->clock_toggle)); gboolean timer_toggled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->timer_toggle)); if((type == ALARM_TYPE_CLOCK && clock_toggled) || (type == ALARM_TYPE_TIMER && timer_toggled)) { // No change return; } g_debug("AlarmSettingsDialog: update_type()"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->clock_toggle), type == ALARM_TYPE_CLOCK); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->timer_toggle), type == ALARM_TYPE_TIMER); if(type == ALARM_TYPE_CLOCK) { gtk_widget_set_sensitive(dialog->repeat_expand, TRUE); } else { gtk_widget_set_sensitive(dialog->repeat_expand, FALSE); } } static void alarm_settings_update_label(AlarmSettingsDialog* dialog) { const gchar* entry_text = gtk_entry_get_text(GTK_ENTRY(dialog->label_entry)); if(g_strcmp0(entry_text, dialog->alarm->message) == 0) { // No change return; } g_debug("AlarmSettingsDialog: update_label()"); g_object_set(dialog->label_entry, "text", dialog->alarm->message, NULL); } static void alarm_settings_update_time(AlarmSettingsDialog* dialog) { struct tm tm; alarm_get_time(dialog->alarm, &tm); gint hour = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(dialog->hour_spin)); gint min = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(dialog->min_spin)); gint sec = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(dialog->sec_spin)); if(tm.tm_hour == hour && tm.tm_min == min && tm.tm_sec == sec) { // No change return; } g_debug("AlarmSettingsDialog: update_time() to %d:%d:%d", tm.tm_hour, tm.tm_min, tm.tm_sec); gtk_spin_button_set_value(GTK_SPIN_BUTTON(dialog->hour_spin), tm.tm_hour); gtk_spin_button_set_value(GTK_SPIN_BUTTON(dialog->min_spin), tm.tm_min); gtk_spin_button_set_value(GTK_SPIN_BUTTON(dialog->sec_spin), tm.tm_sec); } static void alarm_settings_update_repeat(AlarmSettingsDialog* dialog) { AlarmRepeat r; gint i; gboolean check; gchar *label, *rep; g_debug("AlarmSettingsDialog: update_repeat()"); /* * Update check boxes */ for(r = ALARM_REPEAT_SUN, i = 0; r <= ALARM_REPEAT_SAT; r = 1 << ++i) { check = (dialog->alarm->repeat & r) != 0; // Activate the appropriate widget if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->repeat_check[i])) != check) { g_object_set(dialog->repeat_check[i], "active", check, NULL); } } /* * Update fancy expander label */ rep = alarm_repeat_to_pretty(dialog->alarm->repeat); label = g_strdup_printf(REPEAT_LABEL, rep); g_object_set(dialog->repeat_label, "label", label, NULL); g_free(label); g_free(rep); } static void alarm_settings_update_notify_type(AlarmSettingsDialog* dialog) { AlarmNotifyType type = dialog->alarm->notify_type; gboolean sound_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->notify_app_radio)); gboolean sound_sensitive = gtk_widget_is_sensitive(dialog->notify_sound_box); gboolean app_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->notify_app_radio)); gboolean app_sensitive = gtk_widget_is_sensitive(dialog->notify_app_box); if((type == ALARM_NOTIFY_SOUND && sound_active && sound_sensitive && !app_sensitive) || (type == ALARM_NOTIFY_COMMAND && app_active && !sound_sensitive && app_sensitive)) { // No change return; } g_debug("AlarmSettingsDialog: update_notify_type()"); // Enable selected switch(dialog->alarm->notify_type) { case ALARM_NOTIFY_COMMAND: g_object_set(dialog->notify_app_radio, "active", TRUE, NULL); g_object_set(dialog->notify_app_box, "sensitive", TRUE, NULL); // Disable others g_object_set(dialog->notify_sound_box, "sensitive", FALSE, NULL); if(dialog->player && dialog->player->state == MEDIA_PLAYER_PLAYING) { // Stop preview player media_player_stop(dialog->player); } break; default: // NOTIFY_SOUND g_object_set(dialog->notify_sound_radio, "active", TRUE, NULL); g_object_set(dialog->notify_sound_box, "sensitive", TRUE, NULL); // Disable others g_object_set(dialog->notify_app_box, "sensitive", FALSE, NULL); break; } } static void alarm_settings_update_sound(AlarmSettingsDialog* dialog) { AlarmListEntry* item; GList* l; gint pos; pos = gtk_combo_box_get_active(GTK_COMBO_BOX(dialog->notify_sound_combo)); item = g_list_nth_data(dialog->applet->sounds, pos); if(item && g_strcmp0(item->data, dialog->alarm->sound_file) == 0) { // No change return; } g_debug("AlarmSettingsDialog: update_sound()"); /* Fill sounds list */ fill_combo_box_custom_list(GTK_COMBO_BOX(dialog->notify_sound_combo), dialog->applet->sounds, _("Select sound file...")); // Look for the selected sound file for(l = dialog->applet->sounds, pos = 0; l != NULL; l = l->next, pos++) { item = (AlarmListEntry*)l->data; if(strcmp(item->data, dialog->alarm->sound_file) == 0) { // Match! gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->notify_sound_combo), pos); break; } } } static void alarm_settings_update_sound_repeat(AlarmSettingsDialog* dialog) { if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->notify_sound_loop_check)) == dialog->alarm->sound_loop) { // No change return; } g_debug("AlarmSettingsDialog: update_sound_repeat()"); g_object_set(dialog->notify_sound_loop_check, "active", dialog->alarm->sound_loop, NULL); } static void alarm_settings_update_app(AlarmSettingsDialog* dialog) { GList* l; guint pos, len; gboolean custom = FALSE; pos = gtk_combo_box_get_active(GTK_COMBO_BOX(dialog->notify_app_combo)); GAppInfo* item = G_APP_INFO(g_list_nth_data(dialog->applet->apps, pos)); const AlarmApplet* const applet = dialog->applet; if(item && g_strcmp0(ALARM_APPLET_GET_APP_INFO_COMMAND(item), dialog->alarm->command) == 0) { // No change return; } g_debug("AlarmSettingsDialog: update_app()"); // g_debug ("alarm_settings_update_app (%p): app_combo: %p, applet: %p, apps: %p", dialog, dialog->notify_app_combo, dialog->applet, // dialog->applet->apps); g_debug ("alarm_settings_update_app setting entry to %s", dialog->alarm->command); /* Fill apps list */ fill_combo_box(GTK_COMBO_BOX(dialog->notify_app_combo), dialog->applet->apps, _("Custom command...")); // Look for the selected command len = g_list_length(dialog->applet->apps); for(l = dialog->applet->apps, pos = 0; l != NULL; l = l->next, pos++) { item = G_APP_INFO(l->data); if(strcmp(ALARM_APPLET_GET_APP_INFO_COMMAND(item), dialog->alarm->command) == 0) { // Match! break; } } /* Only change sensitivity of the command entry if user * isn't typing a custom command there already. */ if(pos >= len) { // Custom command pos += 1; custom = TRUE; } g_debug("CMD ENTRY HAS FOCUS? %d", gtk_widget_has_focus(dialog->notify_app_command_entry)); if(!gtk_widget_has_focus(dialog->notify_app_command_entry)) g_object_set(dialog->notify_app_command_entry, "sensitive", custom, NULL); gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->notify_app_combo), pos); } static void alarm_settings_update_app_command(AlarmSettingsDialog* dialog) { g_debug("AlarmSettingsDialog: update_app_command()"); if(g_strcmp0(dialog->alarm->command, gtk_entry_get_text(GTK_ENTRY(dialog->notify_app_command_entry))) == 0) { // No change return; } g_object_set(dialog->notify_app_command_entry, "text", dialog->alarm->command, NULL); } static void alarm_settings_update(AlarmSettingsDialog* dialog) { alarm_settings_update_type(dialog); alarm_settings_update_label(dialog); alarm_settings_update_time(dialog); alarm_settings_update_repeat(dialog); alarm_settings_update_notify_type(dialog); alarm_settings_update_sound(dialog); alarm_settings_update_sound_repeat(dialog); alarm_settings_update_app(dialog); alarm_settings_update_app_command(dialog); } /* * Alarm object callbacks */ static void alarm_changed(GObject* object, GParamSpec* param, gpointer data) { AlarmSettingsDialog* dialog = (AlarmSettingsDialog*)data; const gchar* name = param->name; g_debug("AlarmSettingsDialog: alarm_changed: %s", name); // alarm_settings_update (dialog); // return; if(g_strcmp0(name, "type") == 0) { alarm_settings_update_type(dialog); } if(g_strcmp0(name, "message") == 0) { alarm_settings_update_label(dialog); } if(g_strcmp0(name, "time") == 0) { alarm_settings_update_time(dialog); } if(g_strcmp0(name, "repeat") == 0) { alarm_settings_update_repeat(dialog); } if(g_strcmp0(name, "notify-type") == 0) { alarm_settings_update_notify_type(dialog); } if(g_strcmp0(name, "sound-file") == 0) { alarm_settings_update_sound(dialog); } if(g_strcmp0(name, "sound-repeat") == 0) { g_object_set(dialog->notify_sound_loop_check, "active", dialog->alarm->sound_loop, NULL); } if(g_strcmp0(name, "command") == 0) { alarm_settings_update_app(dialog); alarm_settings_update_app_command(dialog); } /* if (g_strcmp0 (name, "") == 0) { } if (g_strcmp0 (name, "") == 0) { } */ } /* * GUI utils */ static void open_sound_file_chooser(AlarmSettingsDialog* dialog) { GtkWidget* chooser; chooser = gtk_file_chooser_dialog_new(_("Select sound file..."), GTK_WINDOW(dialog->dialog), GTK_FILE_CHOOSER_ACTION_OPEN, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Open"), GTK_RESPONSE_ACCEPT, NULL); gtk_file_chooser_set_uri(GTK_FILE_CHOOSER(chooser), dialog->alarm->sound_file); if(gtk_dialog_run(GTK_DIALOG(chooser)) == GTK_RESPONSE_ACCEPT) { gchar* uri; uri = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(chooser)); g_debug("RESPONSE ACCEPT: %s", uri); g_object_set(dialog->alarm, "sound_file", uri, NULL); g_free(uri); } else { g_debug("RESPONSE CANCEL"); alarm_settings_update_sound(dialog); } gtk_widget_destroy(chooser); } /* * GUI callbacks */ void alarm_settings_changed_type(GtkToggleButton* toggle, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmSettingsDialog* dialog = applet->settings_dialog; gboolean toggled = gtk_toggle_button_get_active(toggle); g_assert(dialog->alarm != NULL); g_debug("alarm_settings_changed_type(%s) -> %s", gtk_buildable_get_name(GTK_BUILDABLE(toggle)), toggled ? "TRUE" : "FALSE"); if(GTK_WIDGET(toggle) == dialog->clock_toggle) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->timer_toggle), !toggled); if(toggled) { g_debug("alarm_settings_changed_type: clock toggled"); g_object_set(dialog->alarm, "type", ALARM_TYPE_CLOCK, NULL); gtk_widget_set_sensitive(dialog->repeat_expand, TRUE); } } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->clock_toggle), !toggled); if(toggled) { g_debug("alarm_settings_changed_type: timer toggled"); g_object_set(dialog->alarm, "type", ALARM_TYPE_TIMER, NULL); gtk_widget_set_sensitive(dialog->repeat_expand, FALSE); gtk_expander_set_expanded(GTK_EXPANDER(dialog->repeat_expand), FALSE); } } } void alarm_settings_changed_label(GtkEditable* editable, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmSettingsDialog* dialog = applet->settings_dialog; const gchar* text; g_assert(dialog->alarm != NULL); text = gtk_entry_get_text(GTK_ENTRY(editable)); g_debug("label_changed: %s", text); g_object_set(dialog->alarm, "message", text, NULL); } void alarm_settings_changed_time(GtkSpinButton* spinbutton, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmSettingsDialog* dialog = applet->settings_dialog; guint hour, min, sec; g_assert(dialog->alarm != NULL); struct tm tm; alarm_get_time(dialog->alarm, &tm); hour = tm.tm_hour; min = tm.tm_min; sec = tm.tm_sec; // Check which spin button emitted the signal if(GTK_WIDGET(spinbutton) == dialog->hour_spin) { hour = gtk_spin_button_get_value(GTK_SPIN_BUTTON(dialog->hour_spin)); } else if(GTK_WIDGET(spinbutton) == dialog->min_spin) { min = gtk_spin_button_get_value(GTK_SPIN_BUTTON(dialog->min_spin)); } else if(GTK_WIDGET(spinbutton) == dialog->sec_spin) { sec = gtk_spin_button_get_value(GTK_SPIN_BUTTON(dialog->sec_spin)); } alarm_set_time(dialog->alarm, hour, min, sec); } /** * Use 2-digits in time spin buttons */ gboolean alarm_settings_output_time(GtkSpinButton* spin, gpointer data) { GtkAdjustment* adj; gchar* text; gint value; adj = gtk_spin_button_get_adjustment(spin); value = (gint)gtk_adjustment_get_value(adj); text = g_strdup_printf("%02d", value); gtk_entry_set_text(GTK_ENTRY(spin), text); g_free(text); return TRUE; } void alarm_settings_changed_repeat(GtkToggleButton* togglebutton, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmSettingsDialog* dialog = applet->settings_dialog; g_assert(dialog->alarm != NULL); const gchar* name; AlarmRepeat rep, new_rep; gboolean active; /* The check buttons have the same name as the 3 letter * string representation of the day. */ name = gtk_buildable_get_name(GTK_BUILDABLE(togglebutton)); rep = alarm_repeat_from_string(name); active = gtk_toggle_button_get_active(togglebutton); g_debug("Changed repeat on: %s, active: %d", name, active); if(active) // Add rep new_rep = dialog->alarm->repeat | rep; else // Remove rep new_rep = dialog->alarm->repeat & ~rep; g_object_set(dialog->alarm, "repeat", new_rep, NULL); } void set_repeat_toggle_buttons(AlarmSettingsDialog* dialog, AlarmRepeat repeat) { AlarmRepeat r; gint i; gboolean check; for(r = ALARM_REPEAT_SUN, i = 0; r <= ALARM_REPEAT_SAT; r = 1 << ++i) { check = (repeat & r) != 0; g_object_set(dialog->repeat_check[i], "active", check, NULL); } } void alarm_settings_repeat_all(GtkButton* button, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmSettingsDialog* dialog = applet->settings_dialog; g_assert(dialog->alarm != NULL); g_debug("Changed repeat to All"); set_repeat_toggle_buttons(dialog, ALARM_REPEAT_ALL); g_object_set(dialog->alarm, "repeat", ALARM_REPEAT_ALL, NULL); } void alarm_settings_repeat_weekday(GtkButton* button, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmSettingsDialog* dialog = applet->settings_dialog; g_assert(dialog->alarm != NULL); g_debug("Changed repeat to Weekdays"); set_repeat_toggle_buttons(dialog, ALARM_REPEAT_WEEKDAYS); g_object_set(dialog->alarm, "repeat", ALARM_REPEAT_WEEKDAYS, NULL); } void alarm_settings_repeat_weekend(GtkButton* button, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmSettingsDialog* dialog = applet->settings_dialog; g_assert(dialog->alarm != NULL); g_debug("Changed repeat to Weekends"); set_repeat_toggle_buttons(dialog, ALARM_REPEAT_WEEKENDS); g_object_set(dialog->alarm, "repeat", ALARM_REPEAT_WEEKENDS, NULL); } void alarm_settings_repeat_clear(GtkButton* button, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmSettingsDialog* dialog = applet->settings_dialog; g_assert(dialog->alarm != NULL); g_debug("Changed repeat to None"); set_repeat_toggle_buttons(dialog, ALARM_REPEAT_NONE); g_object_set(dialog->alarm, "repeat", ALARM_REPEAT_NONE, NULL); } void alarm_settings_changed_notify_type(GtkToggleButton* togglebutton, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmSettingsDialog* dialog = applet->settings_dialog; const gchar* name = gtk_buildable_get_name(GTK_BUILDABLE(togglebutton)); gboolean value = gtk_toggle_button_get_active(togglebutton); if(!value) { // Not checked, not interested return; } g_assert(dialog->alarm != NULL); g_debug("notify_type_changed: %s", name); if(strcmp(name, "app-radio") == 0) { g_object_set(dialog->alarm, "notify_type", ALARM_NOTIFY_COMMAND, NULL); } else { g_object_set(dialog->alarm, "notify_type", ALARM_NOTIFY_SOUND, NULL); } alarm_settings_update_notify_type(dialog); } void alarm_settings_changed_sound(GtkComboBox* combo, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmSettingsDialog* dialog = applet->settings_dialog; g_debug("SOUND Combo_changed"); g_assert(dialog->alarm != NULL); AlarmListEntry* item; guint current_index, len; current_index = gtk_combo_box_get_active(combo); len = g_list_length(dialog->applet->sounds); g_debug("Current index: %d, n sounds: %d", current_index, len); if(current_index < 0) // None selected return; if(current_index >= len) { // Select sound file g_debug("Open SOUND file chooser..."); open_sound_file_chooser(dialog); return; } // Valid file selected, update alarm item = (AlarmListEntry*)g_list_nth_data(dialog->applet->sounds, current_index); g_object_set(dialog->alarm, "sound_file", item->data, NULL); } void alarm_settings_changed_sound_repeat(GtkToggleButton* togglebutton, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmSettingsDialog* dialog = applet->settings_dialog; g_assert(dialog->alarm != NULL); g_debug("alarm_settings_changed_sound_repeat"); g_object_set(dialog->alarm, "sound-repeat", gtk_toggle_button_get_active(togglebutton), NULL); if(dialog->player && dialog->player->state == MEDIA_PLAYER_PLAYING) { // Update preview player dialog->player->loop = gtk_toggle_button_get_active(togglebutton); } } void alarm_settings_changed_app(GtkComboBox* combo, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmSettingsDialog* dialog = applet->settings_dialog; g_debug("APP Combo_changed"); g_assert(dialog->alarm != NULL); if(gtk_widget_has_focus(dialog->notify_app_command_entry)) { g_debug(" ---- Skipping because command_entry has focus!"); return; } guint current_index, len; current_index = gtk_combo_box_get_active(combo); len = g_list_length(dialog->applet->apps); if(current_index < 0) // None selected return; if(current_index >= len) { // Custom command g_debug("CUSTOM command selected..."); g_object_set(dialog->notify_app_command_entry, "sensitive", TRUE, NULL); gtk_widget_grab_focus(dialog->notify_app_command_entry); return; } g_object_set(dialog->notify_app_command_entry, "sensitive", FALSE, NULL); GAppInfo* item = G_APP_INFO(g_list_nth_data(dialog->applet->apps, current_index)); g_object_set(dialog->alarm, "command", ALARM_APPLET_GET_APP_INFO_COMMAND(item), NULL); } void alarm_settings_changed_command(GtkEditable* editable, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmSettingsDialog* dialog = applet->settings_dialog; g_assert(dialog->alarm != NULL); g_object_set(dialog->alarm, "command", gtk_entry_get_text(GTK_ENTRY(editable)), NULL); } /* * Preview player {{ */ static void preview_player_state_cb(MediaPlayer* player, MediaPlayerState state, gpointer data) { AlarmSettingsDialog* dialog = (AlarmSettingsDialog*)data; const gchar* stock; if(state == MEDIA_PLAYER_PLAYING) { stock = "gtk-media-stop"; } else { stock = "gtk-media-play"; g_debug("AlarmSettingsDialog: Freeing media player %p", player); media_player_free(player); dialog->player = NULL; } // Set stock gtk_button_set_label(GTK_BUTTON(dialog->notify_sound_preview), stock); } void alarm_settings_sound_preview(GtkButton* button, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmSettingsDialog* dialog = applet->settings_dialog; if(dialog->player && dialog->player->state == MEDIA_PLAYER_PLAYING) { // Stop preview player media_player_stop(dialog->player); } else { // Start preview player if(dialog->player == NULL) { dialog->player = media_player_new(dialog->alarm->sound_file, dialog->alarm->sound_loop, preview_player_state_cb, dialog, media_player_error_cb, dialog->dialog); if(dialog->player == NULL) { // Unable to create player alarm_error_trigger(dialog->alarm, ALARM_ERROR_PLAY, _("Could not create player! Please check your sound settings.")); return; } } g_debug("AlarmSettingsDialog: preview_start..."); media_player_start(dialog->player); } } /* * }} Preview player */ /* * Clear settings dialog for reuse * * Stops any running media players * Disassociates the dialog from any alarm */ static void alarm_settings_dialog_clear(AlarmSettingsDialog* dialog) { if(dialog->player) { if(dialog->player->state == MEDIA_PLAYER_STOPPED) { media_player_free(dialog->player); } else { media_player_stop(dialog->player); } } if(dialog->alarm) { /* Remove alarm notify handlers! */ int matched = g_signal_handlers_disconnect_matched(dialog->alarm, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, alarm_changed, NULL); // int matched = g_signal_handlers_disconnect_matched (dialog->alarm, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, dialog); g_debug("settings CLEAR alarm %p: %d handlers removed", dialog->alarm, matched); dialog->alarm = NULL; /* Remove signal handlers */ // g_signal_handlers_disconnect_by_func } } void alarm_settings_dialog_close(AlarmSettingsDialog* dialog) { // g_hash_table_remove (dialog->applet->edit_alarm_dialogs, dialog->alarm->id); // gtk_widget_destroy (GTK_WIDGET (dialog->dialog)) /* Enable the alarm when closing the dialog */ alarm_enable(dialog->alarm); alarm_settings_dialog_clear(dialog); gtk_widget_hide(dialog->dialog); } void alarm_settings_dialog_response(GtkDialog* dialog, gint rid, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; AlarmSettingsDialog* settings_dialog = applet->settings_dialog; g_debug("alarm_settings_dialog_response %d", rid); alarm_settings_dialog_close(settings_dialog); } /* * Associate a settings dialog with an alarm * * Clears any previously associated alarms */ static void alarm_settings_dialog_set_alarm(AlarmSettingsDialog* dialog, Alarm* alarm) { // Clear dialog alarm_settings_dialog_clear(dialog); // Set alarm dialog->alarm = alarm; // Populate widgets alarm_settings_update(dialog); // Notify of change to alarm g_signal_connect(alarm, "notify", G_CALLBACK(alarm_changed), dialog); } /* * Create a new settings dialog */ AlarmSettingsDialog* alarm_settings_dialog_new(AlarmApplet* applet) { AlarmSettingsDialog* dialog; AlarmRepeat r; gint i; GtkBuilder* builder = applet->ui; // Initialize struct dialog = g_new0(AlarmSettingsDialog, 1); dialog->applet = applet; dialog->player = NULL; dialog->dialog = GTK_WIDGET(gtk_builder_get_object(builder, "alarm-settings-dialog")); // TYPE TOGGLE BUTTONS dialog->clock_toggle = GTK_WIDGET(gtk_builder_get_object(builder, "toggle-clock")); dialog->timer_toggle = GTK_WIDGET(gtk_builder_get_object(builder, "toggle-timer")); // GENERAL SETTINGS dialog->label_entry = GTK_WIDGET(gtk_builder_get_object(builder, "label-entry")); gtk_widget_grab_focus(dialog->label_entry); dialog->hour_spin = GTK_WIDGET(gtk_builder_get_object(builder, "hour-spin")); dialog->min_spin = GTK_WIDGET(gtk_builder_get_object(builder, "minute-spin")); dialog->sec_spin = GTK_WIDGET(gtk_builder_get_object(builder, "second-spin")); // REPEAT SETTINGS dialog->repeat_expand = GTK_WIDGET(gtk_builder_get_object(builder, "repeat-expand")); dialog->repeat_label = GTK_WIDGET(gtk_builder_get_object(builder, "repeat-label")); // The check buttons have the same name as the 3 letter // string representation of the day. for(r = ALARM_REPEAT_SUN, i = 0; r <= ALARM_REPEAT_SAT; r = 1 << ++i) { dialog->repeat_check[i] = GTK_WIDGET(gtk_builder_get_object(builder, alarm_repeat_to_string(r))); } // NOTIFY SETTINGS dialog->notify_sound_radio = GTK_WIDGET(gtk_builder_get_object(builder, "sound-radio")); dialog->notify_sound_box = GTK_WIDGET(gtk_builder_get_object(builder, "sound-box")); dialog->notify_sound_combo = GTK_WIDGET(gtk_builder_get_object(builder, "sound-combo")); dialog->notify_sound_preview = GTK_WIDGET(gtk_builder_get_object(builder, "sound-play")); dialog->notify_sound_loop_check = GTK_WIDGET(gtk_builder_get_object(builder, "sound-loop-check")); dialog->notify_app_radio = GTK_WIDGET(gtk_builder_get_object(builder, "app-radio")); dialog->notify_app_box = GTK_WIDGET(gtk_builder_get_object(builder, "app-box")); dialog->notify_app_combo = GTK_WIDGET(gtk_builder_get_object(builder, "app-combo")); dialog->notify_app_command_box = GTK_WIDGET(gtk_builder_get_object(builder, "app-command-box")); dialog->notify_app_command_entry = GTK_WIDGET(gtk_builder_get_object(builder, "app-command-entry")); // Load apps list alarm_applet_apps_load(applet); return dialog; } void alarm_settings_dialog_show(AlarmSettingsDialog* dialog, Alarm* alarm) { alarm_settings_dialog_set_alarm(dialog, alarm); gtk_widget_show_all(dialog->dialog); gtk_window_present(GTK_WINDOW(dialog->dialog)); } alarm-clock-0.4.1/src/alarm-settings.h000066400000000000000000000033551435672060600176120ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * alarm-settings.h -- Alarm settings dialog * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #ifndef EDITALARM_H_ #define EDITALARM_H_ #include "alarm.h" #include "player.h" typedef struct _AlarmSettingsDialog AlarmSettingsDialog; #include "alarm-applet.h" struct _AlarmSettingsDialog { AlarmApplet* applet; Alarm* alarm; /* Media player for previews */ MediaPlayer* player; GtkWidget* dialog; GtkWidget *clock_toggle, *timer_toggle; GtkWidget* label_entry; GtkWidget *hour_spin, *min_spin, *sec_spin; /* Repeat */ GtkWidget* repeat_expand; GtkWidget* repeat_label; GtkWidget* repeat_check[7]; /* Mon, tue, ..., sun check boxes */ /* Notification */ GtkWidget* notify_sound_radio; GtkWidget* notify_sound_box; GtkWidget* notify_sound_stock; GtkWidget* notify_sound_combo; GtkWidget* notify_sound_loop_check; GtkWidget* notify_sound_preview; GtkWidget* notify_app_radio; GtkWidget* notify_app_box; GtkWidget* notify_app_combo; GtkWidget* notify_app_command_box; GtkWidget* notify_app_command_entry; }; AlarmSettingsDialog* alarm_settings_dialog_new(AlarmApplet* applet); void alarm_settings_dialog_show(AlarmSettingsDialog* dialog, Alarm* alarm); void display_edit_alarm_dialog(AlarmApplet* applet, Alarm* alarm); void alarm_settings_dialog_close(AlarmSettingsDialog* dialog); gboolean alarm_settings_output_time(GtkSpinButton* spin, gpointer data); void alarm_settings_sound_preview(GtkButton* button, gpointer data); void alarm_settings_dialog_response(GtkDialog* dialog, gint rid, gpointer data); #endif /*EDITALARM_H_*/ alarm-clock-0.4.1/src/alarm.c000066400000000000000000001073171435672060600157520ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * alarm.c -- Core alarm functionality * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #include #include #include #include "alarm.h" #include "alarm-glib-enums.h" #include extern void alarm_applet_request_resize(struct _AlarmApplet* applet); typedef struct _AlarmPrivate AlarmPrivate; struct _AlarmPrivate { GSettings* settings; guint gconf_listener; guint timer_id; MediaPlayer* player; guint player_timer_id; }; #ifdef __GNUC__ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wincompatible-pointer-types" #endif G_DEFINE_TYPE_WITH_PRIVATE(Alarm, alarm, G_TYPE_OBJECT); #ifdef __GNUC__ #pragma GCC diagnostic pop #endif /* Prototypes and constants for property manipulation */ static void alarm_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec); static void alarm_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec); static void alarm_dispose(GObject* object); static void alarm_gsettings_connect(Alarm* alarm); static void alarm_timer_start(Alarm* alarm); static void alarm_timer_remove(Alarm* alarm); static gboolean alarm_timer_is_started(Alarm* alarm); static void alarm_player_start(Alarm* alarm); static void alarm_player_stop(Alarm* alarm); static void alarm_command_run(Alarm* alarm); #define ALARM_PRIVATE(o) (alarm_get_instance_private(o)) #define ALARM_CAST(o) (G_TYPE_CHECK_INSTANCE_CAST((o), alarm_get_type(), Alarm)) // FIXME: Eventually remove these typedef struct { gint enum_val; const gchar* str; } EnumStringPair; static EnumStringPair alarm_type_enum_map[] = { {ALARM_TYPE_CLOCK, "clock"}, { ALARM_TYPE_TIMER, "timer"}, { 0, NULL } }; static EnumStringPair alarm_repeat_enum_map[] = { {ALARM_REPEAT_SUN, "sun"}, { ALARM_REPEAT_MON, "mon"}, { ALARM_REPEAT_TUE, "tue"}, { ALARM_REPEAT_WED, "wed"}, { ALARM_REPEAT_THU, "thu"}, { ALARM_REPEAT_FRI, "fri"}, { ALARM_REPEAT_SAT, "sat"}, { 0, NULL } }; static EnumStringPair alarm_notify_type_enum_map[] = { {ALARM_NOTIFY_SOUND, "sound" }, { ALARM_NOTIFY_COMMAND, "command"}, { 0, NULL } }; /* Property indexes */ enum { PROP_ALARM_0, PROP_ID, PROP_TRIGGERED, PROP_TYPE, PROP_TIME, PROP_TIMESTAMP, PROP_ACTIVE, PROP_MESSAGE, PROP_REPEAT, PROP_NOTIFY_TYPE, PROP_SOUND_FILE, PROP_SOUND_LOOP, PROP_COMMAND, }; #define PROP_NAME_ID "id" #define PROP_NAME_TRIGGERED "triggered" #define PROP_NAME_TYPE "type" #define PROP_NAME_TIME "time" #define PROP_NAME_TIMESTAMP "timestamp" #define PROP_NAME_ACTIVE "active" #define PROP_NAME_MESSAGE "message" #define PROP_NAME_REPEAT "repeat" #define PROP_NAME_NOTIFY_TYPE "notify-type" #define PROP_NAME_SOUND_FILE "sound-file" #define PROP_NAME_SOUND_LOOP "sound-repeat" #define PROP_NAME_COMMAND "command" /* Signal indexes */ enum { SIGNAL_ALARM, SIGNAL_CLEARED, SIGNAL_ERROR, SIGNAL_PLAYER, LAST_SIGNAL, }; /* Signal identifier map */ static guint alarm_signal[LAST_SIGNAL] = { 0, 0, 0, 0 }; /* Prototypes for signal handlers */ static void alarm_alarm(Alarm* alarm); static void alarm_cleared(Alarm* alarm); static void alarm_error(Alarm* alarm, GError* err); static void alarm_player_changed(Alarm* alarm, MediaPlayerState state); static gboolean alarm_string_to_enum(EnumStringPair lut[], const gchar* str, gint* ret) { for(int i = 0; lut[i].str; i++) { if(g_ascii_strcasecmp(lut[i].str, str) == 0) { *ret = lut[i].enum_val; return TRUE; } } return FALSE; } const gchar* alarm_enum_to_string(EnumStringPair lut[], gint enum_val) { for(int i = 0; lut[i].str; i++) { if(lut[i].enum_val == enum_val) return lut[i].str; } return NULL; } /* Initialize the Alarm class */ static void alarm_class_init(AlarmClass* class) { GParamSpec* id_param; GParamSpec* triggered_param; GParamSpec* type_param; GParamSpec* time_param; GParamSpec* timestamp_param; GParamSpec* active_param; GParamSpec* message_param; GParamSpec* repeat_param; GParamSpec* notify_type_param; GParamSpec* sound_file_param; GParamSpec* sound_loop_param; GParamSpec* command_param; GObjectClass* g_object_class; /* get handle to base object */ g_object_class = G_OBJECT_CLASS(class); /* << miscellaneous initialization >> */ id_param = g_param_spec_uint(PROP_NAME_ID, "alarm id", "id of the alarm", 0, /* min */ UINT_MAX, /* max */ 0, /* default */ G_PARAM_CONSTRUCT | G_PARAM_READWRITE); triggered_param = g_param_spec_boolean(PROP_NAME_TRIGGERED, "alarm triggered", "triggered flag of the alarm", FALSE, G_PARAM_READWRITE); type_param = g_param_spec_enum(PROP_NAME_TYPE, "alarm type", "type of the alarm", ALARM_TYPE_TYPE, ALARM_DEFAULT_TYPE, G_PARAM_READWRITE); time_param = g_param_spec_int64(PROP_NAME_TIME, "alarm time", "time when the alarm should trigger", 0, /* min */ G_MAXINT64, /* max */ ALARM_DEFAULT_TIME, /* default */ G_PARAM_READWRITE); timestamp_param = g_param_spec_int64(PROP_NAME_TIMESTAMP, "alarm timestamp", "UNIX timestamp when the alarm should trigger", 0, /* min */ G_MAXINT64, /* max */ ALARM_DEFAULT_TIME, /* default */ G_PARAM_READWRITE); active_param = g_param_spec_boolean(PROP_NAME_ACTIVE, "active alarm", "whether the alarm is on or not", ALARM_DEFAULT_ACTIVE, G_PARAM_READWRITE); message_param = g_param_spec_string(PROP_NAME_MESSAGE, "alarm message", "message which describes this alarm", ALARM_DEFAULT_MESSAGE, G_PARAM_READWRITE); repeat_param = g_param_spec_flags(PROP_NAME_REPEAT, "repeat", "repeat the alarm", ALARM_TYPE_REPEAT, ALARM_DEFAULT_REPEAT, /* default */ G_PARAM_READWRITE); notify_type_param = g_param_spec_enum(PROP_NAME_NOTIFY_TYPE, "notification type", "what kind of notification should be used", ALARM_TYPE_NOTIFY_TYPE, ALARM_DEFAULT_NOTIFY_TYPE, G_PARAM_READWRITE); sound_file_param = g_param_spec_string(PROP_NAME_SOUND_FILE, "sound file", "sound file to play", ALARM_DEFAULT_SOUND_FILE, G_PARAM_READWRITE); sound_loop_param = g_param_spec_boolean(PROP_NAME_SOUND_LOOP, "sound loop", "whether the sound should be looped", ALARM_DEFAULT_SOUND_LOOP, G_PARAM_READWRITE); command_param = g_param_spec_string(PROP_NAME_COMMAND, "command", "command to run", ALARM_DEFAULT_COMMAND, G_PARAM_READWRITE); /* override base object methods */ g_object_class->set_property = alarm_set_property; g_object_class->get_property = alarm_get_property; // g_object_class->constructed = alarm_constructed; g_object_class->dispose = alarm_dispose; /* install properties */ g_object_class_install_property(g_object_class, PROP_ID, id_param); g_object_class_install_property(g_object_class, PROP_TRIGGERED, triggered_param); g_object_class_install_property(g_object_class, PROP_TYPE, type_param); g_object_class_install_property(g_object_class, PROP_TIME, time_param); g_object_class_install_property(g_object_class, PROP_TIMESTAMP, timestamp_param); g_object_class_install_property(g_object_class, PROP_ACTIVE, active_param); g_object_class_install_property(g_object_class, PROP_MESSAGE, message_param); g_object_class_install_property(g_object_class, PROP_REPEAT, repeat_param); g_object_class_install_property(g_object_class, PROP_NOTIFY_TYPE, notify_type_param); g_object_class_install_property(g_object_class, PROP_SOUND_FILE, sound_file_param); g_object_class_install_property(g_object_class, PROP_SOUND_LOOP, sound_loop_param); g_object_class_install_property(g_object_class, PROP_COMMAND, command_param); /* set signal handlers */ class->alarm = alarm_alarm; class->cleared = alarm_cleared; class->error = alarm_error; class->player_changed = alarm_player_changed; /* install signals and default handlers */ alarm_signal[SIGNAL_ALARM] = g_signal_new("alarm", /* name */ TYPE_ALARM, /* class type identifier */ G_SIGNAL_RUN_FIRST, /* options */ G_STRUCT_OFFSET(AlarmClass, alarm), /* handler offset */ NULL, /* accumulator function */ NULL, /* accumulator data */ g_cclosure_marshal_VOID__VOID, /* marshaller */ G_TYPE_NONE, /* type of return value */ 0); alarm_signal[SIGNAL_CLEARED] = g_signal_new("cleared", TYPE_ALARM, G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET(AlarmClass, cleared), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); alarm_signal[SIGNAL_ERROR] = g_signal_new("error", TYPE_ALARM, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET(AlarmClass, error), NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); alarm_signal[SIGNAL_PLAYER] = g_signal_new("player_changed", /* name */ TYPE_ALARM, /* class type identifier */ G_SIGNAL_RUN_LAST, /* options */ G_STRUCT_OFFSET(AlarmClass, player_changed), /* handler offset */ NULL, /* accumulator function */ NULL, /* accumulator data */ g_cclosure_marshal_VOID__UINT, /* marshaller */ G_TYPE_NONE, /* type of return value */ 1, G_TYPE_UINT); } static void alarm_init(Alarm* self) { AlarmPrivate* priv = ALARM_PRIVATE(self); self->id = -1; } /* set an Alarm property */ static void alarm_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec) { AlarmPrivate* priv = ALARM_PRIVATE(ALARM_CAST(object)); Alarm* alarm = ALARM(object); // DEBUGGING INFO GValue strval = G_VALUE_INIT; g_value_init(&strval, G_TYPE_STRING); g_value_transform(value, &strval); g_debug("Alarm(%p) #%d: set %s=%s", alarm, alarm->id, pspec->name, g_value_get_string(&strval)); g_value_unset(&strval); alarm->changed = TRUE; // Do this for all properties for now (not too much overhead, anyway) switch(prop_id) { case PROP_ID: { // FIXME: This should be int64 to account for -1 guint d = g_value_get_uint(value); if(alarm->id == d) break; if(priv->settings && alarm->id != -1) { g_object_unref(priv->settings); } alarm->id = d; gchar* gsettings_dir = alarm_gsettings_get_dir(alarm); priv->settings = g_settings_new_with_path("io.github.alarm-clock-applet.alarm", gsettings_dir); g_free(gsettings_dir); alarm_gsettings_connect(alarm); break; } case PROP_TRIGGERED: // TODO: Should we map this to a GSettings value? // The only case where this might be useful is where the program // is restarted while having a triggered alarm so that we could // re-trigger it when the program starts again... alarm->triggered = g_value_get_boolean(value); break; case PROP_TYPE: alarm->type = g_value_get_enum(value); if(alarm->active) { // Update timestamp alarm_update_timestamp(alarm); } break; case PROP_TIME: alarm->time = g_value_get_int64(value); if(alarm->active) { // Update timestamp alarm_update_timestamp(alarm); } break; case PROP_TIMESTAMP: alarm->timestamp = g_value_get_int64(value); break; case PROP_ACTIVE: alarm->active = g_value_get_boolean(value); // g_debug ("[%p] #%d ACTIVE: old=%d new=%d", alarm, alarm->id, b, alarm->active); if(alarm->active && !alarm_timer_is_started(alarm)) { // Start timer alarm_timer_start(alarm); } else if(!alarm->active && alarm_timer_is_started(alarm)) { // Stop timer alarm_timer_remove(alarm); } break; case PROP_MESSAGE: g_free(alarm->message); alarm->message = g_strdup(g_value_get_string(value)); break; case PROP_REPEAT: alarm->repeat = g_value_get_flags(value); if(alarm->active) alarm_update_timestamp(alarm); break; case PROP_NOTIFY_TYPE: alarm->notify_type = g_value_get_enum(value); break; case PROP_SOUND_FILE: g_free(alarm->sound_file); alarm->sound_file = g_strdup(g_value_get_string(value)); break; case PROP_SOUND_LOOP: alarm->sound_loop = g_value_get_boolean(value); break; case PROP_COMMAND: g_free(alarm->command); alarm->command = g_strdup(g_value_get_string(value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; } } /* retrive an Alarm property */ static void alarm_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec) { Alarm* alarm = ALARM(object); switch(prop_id) { case PROP_ID: g_value_set_uint(value, alarm->id); break; case PROP_TRIGGERED: g_value_set_boolean(value, alarm->triggered); break; case PROP_TYPE: g_value_set_enum(value, alarm->type); break; case PROP_TIME: g_value_set_int64(value, alarm->time); break; case PROP_TIMESTAMP: g_value_set_int64(value, alarm->timestamp); break; case PROP_ACTIVE: g_value_set_boolean(value, alarm->active); break; case PROP_MESSAGE: g_value_set_string(value, alarm->message); break; case PROP_REPEAT: g_value_set_flags(value, alarm->repeat); break; case PROP_NOTIFY_TYPE: g_value_set_enum(value, alarm->notify_type); break; case PROP_SOUND_FILE: g_value_set_string(value, alarm->sound_file); break; case PROP_SOUND_LOOP: g_value_set_boolean(value, alarm->sound_loop); break; case PROP_COMMAND: g_value_set_string(value, alarm->command); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; } } /* * ERROR signal {{ */ GQuark alarm_error_quark(void) { return g_quark_from_static_string("alarm-error-quark"); } static void alarm_error(Alarm* alarm, GError* err) { g_critical("Alarm(%p) #%d: alarm_error: #%d: %s", alarm, alarm->id, err->code, err->message); } void alarm_error_trigger(Alarm* alarm, AlarmErrorCode code, const gchar* msg) { GError* err = g_error_new(ALARM_ERROR, code, "%s", msg); g_signal_emit(alarm, alarm_signal[SIGNAL_ERROR], 0, err, NULL); g_error_free(err); err = NULL; } /* * }} ERROR signal */ static void alarm_player_changed(Alarm* alarm, MediaPlayerState state) { g_debug("Alarm(%p) #%d: player_changed to %d", alarm, alarm->id, state); } static inline void alarm_set_triggered(Alarm* alarm, const gboolean triggered) { GValue val = G_VALUE_INIT; g_value_init(&val, G_TYPE_BOOLEAN); g_value_set_boolean(&val, triggered); g_object_set_property(G_OBJECT(alarm), PROP_NAME_TRIGGERED, &val); g_value_unset(&val); } /* * ALARM signal {{ */ static void alarm_alarm(Alarm* alarm) { g_debug("Alarm(%p) #%d: alarm() DING!", alarm, alarm->id); // Clear first, if needed alarm_clear(alarm); // Update triggered flag alarm_set_triggered(alarm, TRUE); // Do we want to repeat this alarm? if(alarm_should_repeat(alarm)) { g_debug("Alarm(%p) #%d: alarm() Repeating...", alarm, alarm->id); alarm_update_timestamp(alarm); } else { alarm_disable(alarm); } switch(alarm->notify_type) { case ALARM_NOTIFY_SOUND: // Start sound playback g_debug("Alarm(%p) #%d: alarm() Start player", alarm, alarm->id); alarm_player_start(alarm); break; case ALARM_NOTIFY_COMMAND: // Start app g_debug("Alarm(%p) #%d: alarm() Start command", alarm, alarm->id); alarm_command_run(alarm); break; default: g_warning("Alarm(%p) #%d: UNKNOWN NOTIFICATION TYPE %d", alarm, alarm->id, alarm->notify_type); } } void alarm_trigger(Alarm* alarm) { g_signal_emit(alarm, alarm_signal[SIGNAL_ALARM], 0, NULL); } /* * Convenience functions for enabling/disabling the alarm. * * Will update timestamp if needed. */ void alarm_set_enabled(Alarm* alarm, gboolean enabled) { if(enabled) { alarm_update_timestamp(alarm); } g_object_set(alarm, "active", enabled, NULL); } void alarm_enable(Alarm* alarm) { alarm_set_enabled(alarm, TRUE); } void alarm_disable(Alarm* alarm) { alarm_set_enabled(alarm, FALSE); } /* * Delete alarm. This will remove all configuration * associated with this alarm. */ void alarm_delete(Alarm* alarm) { AlarmPrivate* priv = ALARM_PRIVATE(alarm); g_settings_reset(priv->settings, PROP_NAME_TYPE); g_settings_reset(priv->settings, PROP_NAME_TIME); g_settings_reset(priv->settings, PROP_NAME_TIMESTAMP); g_settings_reset(priv->settings, PROP_NAME_ACTIVE); g_settings_reset(priv->settings, PROP_NAME_MESSAGE); g_settings_reset(priv->settings, PROP_NAME_REPEAT); g_settings_reset(priv->settings, PROP_NAME_NOTIFY_TYPE); g_settings_reset(priv->settings, PROP_NAME_SOUND_FILE); g_settings_reset(priv->settings, PROP_NAME_SOUND_LOOP); g_settings_reset(priv->settings, PROP_NAME_COMMAND); } void alarm_unref(Alarm* alarm) { // This should be the final unref call g_assert(G_OBJECT(alarm)->ref_count == 1); g_object_unref(alarm); } /* * Snooze the alarm for a number of seconds. */ void alarm_snooze(Alarm* alarm, guint seconds) { g_assert(alarm->triggered); g_debug("Alarm(%p) #%d: snooze() for %d minutes", alarm, alarm->id, seconds / 60); // Silence! alarm_clear(alarm); // Remind later time_t now = time(NULL); g_object_set(alarm, "timestamp", now + seconds, "active", TRUE, NULL); // alarm_timer_start (alarm); } /** * Alarm cleared signal */ static void alarm_cleared(Alarm* alarm) { g_debug("Alarm(%p) #%d: cleared()", alarm, alarm->id); // Update triggered flag alarm_set_triggered(alarm, FALSE); // Stop player alarm_player_stop(alarm); } /* * Clear the alarm. Resets the triggered flag and emits the "cleared" signal. * This will also stop any running players. */ void alarm_clear(Alarm* alarm) { if(alarm->triggered) { g_signal_emit(alarm, alarm_signal[SIGNAL_CLEARED], 0, NULL); } } /* * Is the alarm playing? */ gboolean alarm_is_playing(Alarm* a) { AlarmPrivate* priv = ALARM_PRIVATE(a); return priv->player && priv->player->state == MEDIA_PLAYER_PLAYING; } static gboolean alarm_timer_update(Alarm* alarm) { time_t now; time(&now); if(now >= alarm->timestamp) { alarm_trigger(alarm); // Remove callback only if we don't intend to repeat the alarm return alarm_should_repeat(alarm); } else if(alarm->timestamp - now <= 10) { g_debug("Alarm(%p) #%d: -%2d...", alarm, alarm->id, (int)(alarm->timestamp - now)); } // Keep callback return TRUE; } static void alarm_timer_start(Alarm* alarm) { AlarmPrivate* priv = ALARM_PRIVATE(alarm); g_debug("Alarm(%p) #%d: timer_start()", alarm, alarm->id); // Remove old timer, if any alarm_timer_remove(alarm); // Keep us updated every 1 second priv->timer_id = g_timeout_add_seconds(1, (GSourceFunc)alarm_timer_update, alarm); } static gboolean alarm_timer_is_started(Alarm* alarm) { AlarmPrivate* priv = ALARM_PRIVATE(alarm); return priv->timer_id > 0; } static void alarm_timer_remove(Alarm* alarm) { AlarmPrivate* priv = ALARM_PRIVATE(alarm); if(alarm_timer_is_started(alarm)) { g_debug("Alarm(%p) #%d: timer_remove", alarm, alarm->id); g_source_remove(priv->timer_id); priv->timer_id = 0; } } /* * }} ALARM signal */ static void alarm_gsettings_connect(Alarm* alarm) { AlarmPrivate* priv = ALARM_PRIVATE(alarm); // g_settings_bind(priv->settings, PROP_NAME_TRIGGERED, alarm, PROP_NAME_TRIGGERED, G_SETTINGS_BIND_DEFAULT); g_settings_bind(priv->settings, PROP_NAME_TYPE, alarm, PROP_NAME_TYPE, G_SETTINGS_BIND_DEFAULT); g_settings_bind(priv->settings, PROP_NAME_TIME, alarm, PROP_NAME_TIME, G_SETTINGS_BIND_DEFAULT); g_settings_bind(priv->settings, PROP_NAME_TIMESTAMP, alarm, PROP_NAME_TIMESTAMP, G_SETTINGS_BIND_DEFAULT); g_settings_bind(priv->settings, PROP_NAME_ACTIVE, alarm, PROP_NAME_ACTIVE, G_SETTINGS_BIND_DEFAULT); g_settings_bind(priv->settings, PROP_NAME_MESSAGE, alarm, PROP_NAME_MESSAGE, G_SETTINGS_BIND_DEFAULT); g_settings_bind(priv->settings, PROP_NAME_REPEAT, alarm, PROP_NAME_REPEAT, G_SETTINGS_BIND_DEFAULT); g_settings_bind(priv->settings, PROP_NAME_NOTIFY_TYPE, alarm, PROP_NAME_NOTIFY_TYPE, G_SETTINGS_BIND_DEFAULT); g_settings_bind(priv->settings, PROP_NAME_SOUND_FILE, alarm, PROP_NAME_SOUND_FILE, G_SETTINGS_BIND_DEFAULT); g_settings_bind(priv->settings, PROP_NAME_SOUND_LOOP, alarm, PROP_NAME_SOUND_LOOP, G_SETTINGS_BIND_DEFAULT); g_settings_bind(priv->settings, PROP_NAME_COMMAND, alarm, PROP_NAME_COMMAND, G_SETTINGS_BIND_DEFAULT); } static void alarm_dispose(GObject* object) { Alarm* alarm = ALARM(object); AlarmPrivate* priv = ALARM_PRIVATE(alarm); GObjectClass* parent = (GObjectClass*)alarm_parent_class; g_debug("Alarm(%p) #%d: dispose()", alarm, alarm->id); if(parent->dispose) parent->dispose(object); g_object_unref(priv->settings); alarm_timer_remove(alarm); alarm_clear(alarm); g_free(alarm->command); g_free(alarm->sound_file); g_free(alarm->message); } // Called every time an alarm is created or deleted void alarm_update_gsettings_alarm_list(GSettings* settings, GList* alarms) { guint32* newvalues = malloc(((size_t)g_list_length(alarms)) * sizeof(guint32)); gsize i; GList* l; for(i = 0, l = alarms; l; i++, l = l->next) { const Alarm* a = ALARM(l->data); newvalues[i] = a->id; } GVariant* v = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32, newvalues, i, sizeof(guint32)); g_settings_set_value(settings, "alarms", v); free(newvalues); } static void prop_repeat_notify(GObject* self, GParamSpec* pspec, gpointer user_data) { alarm_applet_request_resize(user_data); } /* * Convenience function for creating a new alarm instance. * Passing -1 as the id will generate a new ID with alarm_gen_id */ Alarm* alarm_new(struct _AlarmApplet* applet, GSettings* settings, gint id) { if(id < 0) id = alarm_gen_id(settings); Alarm* alarm = g_object_new(TYPE_ALARM, "id", id, NULL); // Ask for a resize when a property has changed that might require more space g_signal_connect(alarm, "notify::" PROP_NAME_REPEAT, G_CALLBACK(prop_repeat_notify), applet); return alarm; } static inline gboolean in_alarm_array(const guint32* values, const gsize count, const guint32 val) { for(gsize i = 0; i < count; i++) if(values[i] == val) return TRUE; return FALSE; } guint alarm_gen_id(GSettings* settings) { GVariant* var = g_settings_get_value(settings, "alarms"); gsize count = 0; const guint32* values = g_variant_get_fixed_array(var, &count, sizeof(guint32)); guint32 i = 0; if(values) { for(i = 0; i < G_MAXUINT32; i++) if(!in_alarm_array(values, count, i)) break; } g_variant_unref(var); g_assert(i != G_MAXUINT32); return i; } gchar* alarm_gsettings_get_dir(Alarm* alarm) { gchar* key; g_return_val_if_fail(IS_ALARM(alarm), NULL); key = g_strdup_printf(ALARM_G_SETTINGS_BASE_DIR ALARM_G_SETTINGS_DIR_PREFIX "%d/", alarm->id); return key; } /** * Compare two alarms based on ID */ static gint alarm_list_item_compare(gconstpointer a, gconstpointer b) { Alarm* a1 = ALARM(a); Alarm* a2 = ALARM(b); return a1->id - a2->id; } /* * Get list of alarms in gsettings */ GList* alarm_get_list(struct _AlarmApplet* applet, GSettings* settings) { GList* ret = NULL; GVariant* var = g_settings_get_value(settings, "alarms"); gsize count = 0; const guint32* values = g_variant_get_fixed_array(var, &count, sizeof(guint32)); if(values) { for(guint32 i = 0; i < count; i++) { const guint32 id = values[i]; g_debug("Alarm: get_list() found #%" G_GUINT32_FORMAT, id); Alarm* alarm = alarm_new(applet, settings, id); // g_debug ("\tref = %d", G_OBJECT (alarm)->ref_count); ret = g_list_insert_sorted(ret, alarm, alarm_list_item_compare); // g_debug ("\tappend ref = %d", G_OBJECT (alarm)->ref_count); } } g_variant_unref(var); return ret; } /* * Connect a signal callback to all alarms in list. */ void alarm_signal_connect_list(GList* instances, const gchar* detailed_signal, GCallback c_handler, gpointer data) { GList* l; Alarm* a; g_debug("Alarm: signal_connect_list()"); for(l = instances; l != NULL; l = l->next) { a = ALARM(l->data); g_debug("\tconnecting Alarm(%p) #%d: %s...", a, a->id, detailed_signal); g_signal_connect(a, detailed_signal, c_handler, data); } } /** * Player error */ static void alarm_player_error_cb(MediaPlayer* player, GError* err, gpointer data) { Alarm* alarm = ALARM(data); gchar* uri; gchar* msg; uri = media_player_get_uri(player); msg = g_strdup_printf("Could not play '%s': %s", uri, err->message); g_critical("%s", msg); /* Emit error signal */ alarm_error_trigger(alarm, ALARM_ERROR_PLAY, msg); g_free(uri); g_free(msg); } static void alarm_player_state_cb(MediaPlayer* player, MediaPlayerState state, gpointer data) { static MediaPlayerState prev_state = MEDIA_PLAYER_INVALID; Alarm* alarm = ALARM(data); AlarmPrivate* priv = ALARM_PRIVATE(alarm); if(state != prev_state) { // Emit player_changed signal g_signal_emit(alarm, alarm_signal[SIGNAL_PLAYER], 0, state, NULL); } if(state == MEDIA_PLAYER_STOPPED) { g_debug("Alarm(%p) #%d: Freeing media player %p", alarm, alarm->id, player); media_player_free(player); priv->player = NULL; } } static gboolean alarm_player_timeout(gpointer data) { Alarm* alarm = ALARM(data); g_debug("Alarm(%p) #%d: player_timeout", alarm, alarm->id); alarm_player_stop(alarm); return FALSE; } /** * Play sound via gstreamer */ static void alarm_player_start(Alarm* alarm) { AlarmPrivate* priv = ALARM_PRIVATE(alarm); if(priv->player == NULL) { priv->player = media_player_new(alarm->sound_file, alarm->sound_loop, alarm_player_state_cb, alarm, alarm_player_error_cb, alarm); if(priv->player == NULL) { // Unable to create player alarm_error_trigger(alarm, ALARM_ERROR_PLAY, _("Could not create player! Please check your sound settings.")); return; } } else { media_player_set_uri(priv->player, alarm->sound_file); } media_player_start(priv->player); g_debug("Alarm(%p) #%d: player_start...", alarm, alarm->id); /* * Add stop timeout */ priv->player_timer_id = g_timeout_add_seconds(ALARM_SOUND_TIMEOUT, alarm_player_timeout, alarm); } /** * Stop player */ static void alarm_player_stop(Alarm* alarm) { AlarmPrivate* priv = ALARM_PRIVATE(alarm); if(priv->player != NULL) { media_player_stop(priv->player); if(priv->player_timer_id > 0) { g_source_remove(priv->player_timer_id); priv->player_timer_id = 0; } } } /* * Run Command */ static void alarm_command_run(Alarm* alarm) { GError* err = NULL; gchar* msg; if(!g_spawn_command_line_async(alarm->command, &err)) { msg = g_strdup_printf("Could not launch `%s': %s", alarm->command, err->message); g_critical("%s", msg); /* Emit error signal */ alarm_error_trigger(alarm, ALARM_ERROR_COMMAND, msg); g_free(msg); g_error_free(err); } } /* * Set time according to hour, min, sec */ void alarm_set_time(Alarm* alarm, guint hour, guint minute, guint second) { g_debug("Alarm(%p) #%d: set_time (%d:%d:%d)", alarm, alarm->id, hour, minute, second); g_object_set(alarm, "time", second + minute * 60 + hour * 60 * 60, NULL); } /* * Calculates the distance from wday1 to wday2 */ gint alarm_wday_distance(gint wday1, gint wday2) { gint d; d = wday2 - wday1; if(d < 0) d += 7; return d; } static gboolean alarm_time_is_future(struct tm* tm, guint hour, guint minute, guint second) { return (hour > tm->tm_hour || (hour == tm->tm_hour && minute > tm->tm_min) || (hour == tm->tm_hour && minute == tm->tm_min && second > tm->tm_sec)); } /* * Set time according to hour, min, sec and alarm->repeat */ static void alarm_set_timestamp(Alarm* alarm, guint hour, guint minute, guint second) { time_t now, new; gint i, d, wday; AlarmRepeat rep; struct tm tm; g_debug("Alarm(%p) #%d: set_timestamp (%d, %d, %d)", alarm, alarm->id, hour, minute, second); time(&now); tzset(); if(!localtime_r(&now, &tm)) { memset(&tm, 0, sizeof(tm)); g_critical("Alarm #%d: localtime failed", alarm->id); } // Automatically detect Daylight Savings Time (DST) tm.tm_isdst = -1; if(alarm->repeat == ALARM_REPEAT_NONE) { // Check if the alarm is for tomorrow if(!alarm_time_is_future(&tm, hour, minute, second)) { g_debug("\tAlarm is for tomorrow."); tm.tm_mday++; } } else { // REPEAT SET: Find the closest repeat day wday = -1; i = tm.tm_wday; // Try finding a day in this week for(; i < 7; i++) { rep = 1 << i; if(alarm->repeat & rep) { if(i == tm.tm_wday && !alarm_time_is_future(&tm, hour, minute, second)) continue; wday = i; break; } } // If we haven't found a day in the current week, check next week if(wday == -1) { for(i = 0; i <= tm.tm_wday; i++) { rep = 1 << i; if(alarm->repeat & rep) { wday = i; break; } } } g_debug("Closest WDAY = %d", wday); if(wday == tm.tm_wday && (!alarm_time_is_future(&tm, hour, minute, second))) wday = 7; // Calculate distance from now to wday if(wday == 7) { g_debug("\tAlarm is in (forced) 1 week."); d = 7; } else { d = alarm_wday_distance(tm.tm_wday, wday); } g_debug("\tAlarm is in %d days.", d); tm.tm_mday += d; } tm.tm_hour = hour; tm.tm_min = minute; tm.tm_sec = second; new = mktime(&tm); g_debug("\tSetting to %d", (gint) new); g_object_set(alarm, "timestamp", new, NULL); } /* * Update the alarm timestamp to point to the nearest future * hour/min/sec according to the time value. */ void alarm_update_timestamp(Alarm* alarm) { if(alarm->type == ALARM_TYPE_CLOCK) { struct tm tm; alarm_get_time(alarm, &tm); g_debug("Alarm(%p) #%d: update_timestamp_full: %d:%d:%d", alarm, alarm->id, tm.tm_hour, tm.tm_min, tm.tm_sec); alarm_set_timestamp(alarm, tm.tm_hour, tm.tm_min, tm.tm_sec); } else { /* ALARM_TYPE_TIMER */ g_object_set(alarm, "timestamp", time(NULL) + alarm->time, NULL); } } /* * Get the alarm time. */ void alarm_get_time(Alarm* alarm, struct tm* res) { g_assert(res != NULL); if(!gmtime_r(&(alarm->time), res)) { memset(res, 0, sizeof(struct tm)); g_critical("Alarm #%d: gmtime failed", alarm->id); } } /** * Get the remaining alarm time. */ void alarm_get_remain(Alarm* alarm, struct tm* res) { g_assert(res != NULL); const time_t now = time(NULL); res->tm_sec = alarm->timestamp - now; res->tm_min = res->tm_sec / 60; res->tm_sec -= res->tm_min * 60; res->tm_hour = res->tm_min / 60; res->tm_min -= res->tm_hour * 60; } /** * Get the remaining alarm time in seconds */ time_t alarm_get_remain_seconds(Alarm* alarm) { time_t now = time(NULL); return alarm->timestamp - now; } /* * AlarmRepeat utilities {{ */ const gchar* alarm_repeat_to_string(AlarmRepeat repeat) { return alarm_enum_to_string(alarm_repeat_enum_map, repeat); } AlarmRepeat alarm_repeat_from_string(const gchar* str) { AlarmRepeat ret = ALARM_REPEAT_NONE; if(!str) return ret; alarm_string_to_enum(alarm_repeat_enum_map, str, (gint*)&ret); return ret; } AlarmRepeat alarm_repeat_from_list(GSList* list) { GSList* l; AlarmRepeat repeat = ALARM_REPEAT_NONE; for(l = list; l; l = l->next) { repeat |= alarm_repeat_from_string((gchar*)l->data); } return repeat; } GSList* alarm_repeat_to_list(AlarmRepeat repeat) { GSList* list = NULL; AlarmRepeat r; gint i; for(r = ALARM_REPEAT_SUN, i = 0; r <= ALARM_REPEAT_SAT; r = 1 << ++i) { if(repeat & r) list = g_slist_append(list, (gpointer)alarm_repeat_to_string(r)); } return list; } gboolean alarm_should_repeat(Alarm* alarm) { return alarm->type == ALARM_TYPE_CLOCK && alarm->repeat != ALARM_REPEAT_NONE; } /* * Create a pretty string representation of AlarmRepeat * * The return value must be freed afterwards */ gchar* alarm_repeat_to_pretty(AlarmRepeat repeat) { gchar* str; GString* s; struct tm tm; gchar tmp[20]; AlarmRepeat r; gint i; switch(repeat) { case ALARM_REPEAT_NONE: str = g_strdup(_("Once")); break; case ALARM_REPEAT_WEEKDAYS: str = g_strdup(_("Weekdays")); break; case ALARM_REPEAT_WEEKENDS: str = g_strdup(_("Weekends")); break; case ALARM_REPEAT_ALL: str = g_strdup(_("Every day")); break; default: // Custom repeat, create a list of weekdays s = g_string_new(""); for(r = ALARM_REPEAT_SUN, i = 0; r <= ALARM_REPEAT_SAT; r = 1 << ++i) { if(repeat & r) { tm.tm_wday = i; strftime(tmp, sizeof(tmp), "%a", &tm); g_string_append_printf(s, "%s, ", tmp); } } g_string_truncate(s, s->len - 2); str = s->str; g_string_free(s, FALSE); break; } return str; } /* * }} AlarmRepeat utilities */ alarm-clock-0.4.1/src/alarm.h000066400000000000000000000124161435672060600157520ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * alarm.h -- Core alarm functionality * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #ifndef ALARM_H_ #define ALARM_H_ #include #include #include #include #include "player.h" G_BEGIN_DECLS struct _AlarmApplet; /* * Utility macros */ #define TYPE_ALARM (alarm_get_type()) #define ALARM(object) (G_TYPE_CHECK_INSTANCE_CAST((object), TYPE_ALARM, Alarm)) #define ALARM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), TYPE_ALARM, AlarmClass)) #define IS_ALARM(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), TYPE_ALARM)) #define IS_ALARM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), TYPE_ALARM)) #define ALARM_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), TYPE_ALARM, AlarmClass)) /* * Structure definitions */ #include "alarm-enums.h" #define ALARM_REPEAT_WEEKDAYS (ALARM_REPEAT_MON | ALARM_REPEAT_TUE | ALARM_REPEAT_WED | ALARM_REPEAT_THU | ALARM_REPEAT_FRI) #define ALARM_REPEAT_WEEKENDS (ALARM_REPEAT_SAT | ALARM_REPEAT_SUN) #define ALARM_REPEAT_ALL (ALARM_REPEAT_WEEKDAYS | ALARM_REPEAT_WEEKENDS) typedef struct _Alarm Alarm; typedef struct _AlarmClass AlarmClass; struct _Alarm { GObject parent; gint id; /* Alarm ID */ gboolean triggered; // Whether the alarm has been triggered /* GConf mapped values */ AlarmType type; time_t time; /* Time for alarm */ time_t timestamp; /* UNIX timestamp (local time) for running alarms */ gboolean active; gchar* message; AlarmRepeat repeat; AlarmNotifyType notify_type; gchar* sound_file; gboolean sound_loop; gchar* command; gboolean changed; // Set to TRUE when a property has been changed to request a UI update }; struct _AlarmClass { GObjectClass parent; /* Signals */ void (*alarm)(Alarm* alarm); // Alarm triggered! void (*cleared)(Alarm* alarm); // Alarm cleared void (*error)(Alarm* alarm, GError* err); // An error occured void (*player_changed)(Alarm* alarm, MediaPlayerState state); /* Media player state changed */ }; /* * Error codes */ #define ALARM_ERROR alarm_error_quark() typedef enum { ALARM_ERROR_NONE, ALARM_ERROR_PLAY, /* Error playing sound */ ALARM_ERROR_COMMAND, /* Error launching command */ } AlarmErrorCode; /* * Failsafe defaults for the GConf-mapped properties for * use when the schema isn't found or doesn't provide * sensible defaults. */ #define ALARM_DEFAULT_TYPE ALARM_TYPE_CLOCK #define ALARM_DEFAULT_TIME 0 #define ALARM_DEFAULT_TIMESTAMP 0 #define ALARM_DEFAULT_ACTIVE FALSE #define ALARM_DEFAULT_MESSAGE "Alarm!" #define ALARM_DEFAULT_REPEAT ALARM_REPEAT_NONE #define ALARM_DEFAULT_NOTIFY_TYPE ALARM_NOTIFY_SOUND #define ALARM_DEFAULT_SOUND_FILE "" // Should default to first in stock sound list #define ALARM_DEFAULT_SOUND_LOOP TRUE #define ALARM_DEFAULT_COMMAND "" // Should default to first in app list /* * GConf settings */ #define ALARM_G_SETTINGS_DIR_PREFIX "alarm-" #define ALARM_G_SETTINGS_BASE_DIR "/io/github/alarm-clock-applet/" /* * Player backoff timeout. * We will stop the player automatically after 20 minutes. */ #define ALARM_SOUND_TIMEOUT (60 * 20) /* * Function prototypes. */ /* used by ALARM_TYPE */ GType alarm_get_type(void); Alarm* alarm_new(struct _AlarmApplet* applet, GSettings* settings, gint id); guint alarm_gen_id(GSettings* settings); gchar* alarm_gsettings_get_dir(Alarm* alarm); const gchar* alarm_type_to_string(AlarmType type); AlarmType alarm_type_from_string(const gchar* type); const gchar* alarm_notify_type_to_string(AlarmNotifyType type); AlarmNotifyType alarm_notify_type_from_string(const gchar* type); GList* alarm_get_list(struct _AlarmApplet* applet, GSettings* settings); void alarm_signal_connect_list(GList* instances, const gchar* detailed_signal, GCallback c_handler, gpointer data); void alarm_trigger(Alarm* alarm); void alarm_set_enabled(Alarm* alarm, gboolean enabled); void alarm_enable(Alarm* alarm); void alarm_clear(Alarm* alarm); void alarm_disable(Alarm* alarm); void alarm_delete(Alarm* alarm); void alarm_unref(Alarm* alarm); void alarm_snooze(Alarm* alarm, guint seconds); gboolean alarm_is_playing(Alarm* alarm); void alarm_update_gsettings_alarm_list(GSettings* settings, GList* alarms); void alarm_set_time(Alarm* alarm, guint hour, guint minute, guint second); void alarm_update_timestamp(Alarm* alarm); void alarm_update_timestamp_full(Alarm* alarm, gboolean include_today); GQuark alarm_error_quark(void); void alarm_error_trigger(Alarm* alarm, AlarmErrorCode code, const gchar* msg); void alarm_get_time(Alarm* alarm, struct tm* res); void alarm_get_remain(Alarm* alarm, struct tm* res); time_t alarm_get_remain_seconds(Alarm* alarm); const gchar* alarm_repeat_to_string(AlarmRepeat repeat); AlarmRepeat alarm_repeat_from_string(const gchar* str); AlarmRepeat alarm_repeat_from_list(GSList* list); GSList* alarm_repeat_to_list(AlarmRepeat repeat); gint alarm_wday_distance(gint wday1, gint wday2); gboolean alarm_should_repeat(Alarm* alarm); gchar* alarm_repeat_to_pretty(AlarmRepeat repeat); G_END_DECLS #endif /*ALARM_H_*/ alarm-clock-0.4.1/src/config.h.in000066400000000000000000000004661435672060600165320ustar00rootroot00000000000000#define ALARM_CLOCK_DATADIR "${CMAKE_INSTALL_FULL_DATADIR}" #define PACKAGE "${CMAKE_PROJECT_NAME}" #define GETTEXT_PACKAGE PACKAGE #define PACKAGE_NAME PACKAGE #define ALARM_CLOCK_PKGDATADIR "${CMAKE_INSTALL_FULL_DATAROOTDIR}/" PACKAGE #define VERSION "${PROJECT_VERSION}" #cmakedefine ENABLE_GCONF_MIGRATION alarm-clock-0.4.1/src/list-entry.c000066400000000000000000000101631435672060600167600ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * list-entry.c -- Simple data structure to hold name, data and icon. * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #include #include #include #include "list-entry.h" #include "util.h" void alarm_list_entry_free(AlarmListEntry* e) { g_free(e->data); g_free(e->name); g_free(e->icon); g_free(e); } AlarmListEntry* alarm_list_entry_new_file(const gchar* uri, gchar** mime_ret, GError** error) { AlarmListEntry* entry; GError* new_error = NULL; GFileInfo* info; GFile* file; file = g_file_new_for_uri(uri); info = g_file_query_info(file, "standard::content-type,standard::icon", G_FILE_QUERY_INFO_NONE, NULL, &new_error); if(new_error != NULL) { // g_warning ("Could not open uri: %s", uri); if(error) *error = new_error; else g_error_free(new_error); return NULL; } entry = g_new(AlarmListEntry, 1); entry->data = g_strdup(uri); entry->name = g_file_get_basename(file); entry->icon = g_icon_to_string(g_file_info_get_icon(info)); if(mime_ret != NULL) *mime_ret = g_strdup(g_file_info_get_content_type(info)); g_object_unref(info); g_object_unref(file); return entry; } static inline gboolean is_ignored(const gchar* const name, const gchar* const ignore[]) { if(!ignore) return FALSE; for(gint j = 0; ignore[j] != NULL; j++) { if(!strncmp(name, ignore[j], strlen(ignore[j]))) return TRUE; } return FALSE; } GList* alarm_list_entry_list_new(GList* flist, const gchar* dir_uri, const gchar* supported_types[], const gchar* const ignore[]) { GError* error = NULL; GFile* dir; GFileEnumerator* result; GFileInfo* info; AlarmListEntry* entry; const gchar* mime; gboolean valid; gint i; dir = g_file_new_for_uri(dir_uri); result = g_file_enumerate_children(dir, "standard::type,standard::content-type," "standard::icon,standard::name", G_FILE_QUERY_INFO_NONE, NULL, &error); if(error) { g_critical("Could not open directory: %s", dir_uri); g_error_free(error); return NULL; } g_debug("Loading files in %s ...", dir_uri); while((info = g_file_enumerator_next_file(result, NULL, NULL))) { // g_debug ("-- %s", g_file_info_get_name (info)); if(g_file_info_get_file_type(info) == G_FILE_TYPE_REGULAR) { mime = g_file_info_get_content_type(info); // g_debug (" [ regular file: MIME: %s ]", mime); valid = TRUE; if(supported_types != NULL) { valid = FALSE; for(i = 0; supported_types[i] != NULL; i++) { if(strstr(mime, supported_types[i]) != NULL && !is_ignored(g_file_info_get_name(info), ignore)) { // MATCH // g_debug (" [ MATCH ]"); valid = TRUE; break; } } } if(valid) { entry = g_new(AlarmListEntry, 1); entry->name = g_strdup(g_file_info_get_name(info)); entry->data = g_strdup_printf("%s/%s", dir_uri, entry->name); entry->icon = g_icon_to_string(g_file_info_get_icon(info)); // g_debug ("Icon found: %s", entry->icon); flist = g_list_append(flist, entry); } } g_object_unref(info); } g_file_enumerator_close(result, NULL, NULL); g_object_unref(result); g_object_unref(dir); return flist; } void alarm_list_entry_list_free(GList** list) { GList* l; AlarmListEntry* e; g_debug("Alarm_file_entry_list_free (%p => %p)", list, *list); // Free data for(l = *list; l; l = l->next) { e = (AlarmListEntry*)l->data; alarm_list_entry_free(e); } g_list_free(*list); *list = NULL; } alarm-clock-0.4.1/src/list-entry.h000066400000000000000000000014621435672060600167670ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * list-entry.h -- Simple data structure to hold name, data and icon. * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #ifndef LISTENTRY_H_ #define LISTENTRY_H_ #include #include #include "util.h" G_BEGIN_DECLS typedef struct { gchar* name; gchar* data; gchar* icon; } AlarmListEntry; void alarm_list_entry_free(AlarmListEntry* e); AlarmListEntry* alarm_list_entry_new_file(const gchar* uri, gchar** mime_ret, GError** error); GList* alarm_list_entry_list_new(GList* flist, const gchar* dir_uri, const gchar* supported_types[], const gchar* const ignore[]); void alarm_list_entry_list_free(GList** list); G_END_DECLS #endif /*LISTENTRY_H_*/ alarm-clock-0.4.1/src/player.c000066400000000000000000000132441435672060600161450ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * player.c - Simple media player based on GStreamer * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #include #include "player.h" /** * Create a new media player. * * @uri The file to play. * @loop Wether to loop or not. * @state_callback An optional #MediaPlayerStateChangeCallback which will be * notified when the state of the player changes. * @data Data for the state_callback * @error_handler An optional #MediaPlayerErrorHandler which will be notified * if an error occurs. * @error_data Data for the error_handler. */ MediaPlayer* media_player_new(const gchar* uri, gboolean loop, MediaPlayerStateChangeCallback state_callback, gpointer data, MediaPlayerErrorHandler error_handler, gpointer error_data) { MediaPlayer* player; // Initialize struct player = g_new(MediaPlayer, 1); player->loop = loop; player->state = MEDIA_PLAYER_STOPPED; player->watch_id = 0; player->state_changed = state_callback; player->state_changed_data = data; player->error_handler = error_handler; player->error_handler_data = error_data; // Initialize GStreamer gst_init(NULL, NULL); /* Set up player */ player->player = gst_element_factory_make("playbin", "player"); if(!player->player) { g_critical("Could not create player. Try running with `GST_DEBUG=WARNING alarm-clock-applet`."); g_free(player); return NULL; } // Set uri g_object_set(player->player, "uri", uri, NULL); return player; } /** * Free a media player. */ void media_player_free(MediaPlayer* player) { g_assert(player); if(player->player) gst_object_unref(GST_OBJECT(player->player)); g_free(player); } /** * Set the uri of player. */ void media_player_set_uri(MediaPlayer* player, const gchar* uri) { g_assert(player); g_object_set(player->player, "uri", uri, NULL); } /** * Get the uri of player. * * Free with g_free() */ gchar* media_player_get_uri(MediaPlayer* player) { gchar* uri; g_assert(player); g_object_get(player->player, "uri", &uri, NULL); return uri; } /** * Set media player state. */ void media_player_set_state(MediaPlayer* player, MediaPlayerState state) { g_assert(player); MediaPlayerState old = player->state; player->state = state; // Notify state change handler if(old != state && player->state_changed) player->state_changed(player, player->state, player->state_changed_data); } /** * Check for errors & call error handler */ static gboolean media_player_bus_check_errors(MediaPlayer* player, GstMessage* message) { // g_debug ("Got %s message\n", GST_MESSAGE_TYPE_NAME (message)); switch(GST_MESSAGE_TYPE(message)) { case GST_MESSAGE_ERROR: { GError* err; gchar* debug; gst_message_parse_error(message, &err, &debug); if(player->error_handler) player->error_handler(player, err, player->error_handler_data); g_error_free(err); g_free(debug); return FALSE; break; } default: break; } // No errors return TRUE; } /** * GST bus callback. */ static gboolean media_player_bus_cb(GstBus* bus, GstMessage* message, MediaPlayer* player) { GstState state; // g_debug ("Got %s message\n", GST_MESSAGE_TYPE_NAME (message)); if(!media_player_bus_check_errors(player, message)) { // There were errors media_player_stop(player); return FALSE; } switch(GST_MESSAGE_TYPE(message)) { case GST_MESSAGE_ASYNC_DONE: g_debug("GST_MESSAGE_ASYNC_DONE"); gst_element_get_state(player->player, &state, NULL, GST_CLOCK_TIME_NONE); if(state == GST_STATE_PAUSED) { gst_element_seek(player->player, 1.0, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_SEGMENT, GST_SEEK_TYPE_SET, 0, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE); gst_element_set_state(player->player, GST_STATE_PLAYING); } break; case GST_MESSAGE_SEGMENT_DONE: g_debug("GST_MESSAGE_SEGMENT_DONE"); // End of segment. Do we loop? if(player->loop) { // Perform a segment seek to the beginning of the stream gst_element_seek(player->player, 1.0, GST_FORMAT_TIME, GST_SEEK_FLAG_SEGMENT, GST_SEEK_TYPE_SET, 0, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE); } else { // Perform a normal seek so we reach EOS gst_element_seek(player->player, 1.0, GST_FORMAT_TIME, GST_SEEK_FLAG_NONE, GST_SEEK_TYPE_NONE, 0, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE); } break; case GST_MESSAGE_EOS: g_debug("GST_MESSAGE_EOS"); media_player_stop(player); break; default: break; } return TRUE; } /** * Start media player */ void media_player_start(MediaPlayer* player) { GstBus* bus; g_assert(player); // Attach bus watcher bus = gst_pipeline_get_bus(GST_PIPELINE(player->player)); player->watch_id = gst_bus_add_watch(bus, (GstBusFunc)media_player_bus_cb, player); gst_object_unref(bus); gst_element_set_state(player->player, GST_STATE_PAUSED); media_player_set_state(player, MEDIA_PLAYER_PLAYING); } /** * Stop player */ void media_player_stop(MediaPlayer* player) { g_assert(player); if(player->watch_id) { g_source_remove(player->watch_id); player->watch_id = 0; } if(player->player != NULL) { gst_element_set_state(player->player, GST_STATE_NULL); } media_player_set_state(player, MEDIA_PLAYER_STOPPED); } /* * }} Media player */ alarm-clock-0.4.1/src/player.h000066400000000000000000000045411435672060600161520ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * player.h - Simple media player based on GStreamer * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #ifndef PLAYER_H_ #define PLAYER_H_ #include G_BEGIN_DECLS typedef enum { MEDIA_PLAYER_INVALID = 0, MEDIA_PLAYER_STOPPED, MEDIA_PLAYER_PLAYING, MEDIA_PLAYER_ERROR, } MediaPlayerState; typedef struct _MediaPlayer MediaPlayer; /* * Callback for when the media player's state changes. */ typedef void (*MediaPlayerStateChangeCallback)(MediaPlayer* player, MediaPlayerState state, gpointer data); /* * Callback for when an error occurs in the media player. * The error details is put in the error argument. This value * should _never_ be freed in the callback! */ typedef void (*MediaPlayerErrorHandler)(MediaPlayer* player, GError* error, gpointer data); struct _MediaPlayer { GstElement* player; gboolean loop; MediaPlayerState state; guint watch_id; MediaPlayerStateChangeCallback state_changed; MediaPlayerErrorHandler error_handler; gpointer state_changed_data; gpointer error_handler_data; }; /** * Create a new media player. * * @uri The file to play. * @loop Wether to loop or not. * @state_callback An optional #MediaPlayerStateChangeCallback which will be * notified when the state of the player changes. * @data Data for the state_callback * @error_handler An optional #MediaPlayerErrorHandler which will be notified * if an error occurs. * @error_data Data for the error_handler. */ MediaPlayer* media_player_new(const gchar* uri, gboolean loop, MediaPlayerStateChangeCallback state_callback, gpointer data, MediaPlayerErrorHandler error_handler, gpointer error_data); /** * Free a media player. */ void media_player_free(MediaPlayer* player); /** * Set the uri of player. */ void media_player_set_uri(MediaPlayer* player, const gchar* uri); /** * Get the uri of player. * * Free with g_free() */ gchar* media_player_get_uri(MediaPlayer* player); /** * Set media player state. */ void media_player_set_state(MediaPlayer* player, MediaPlayerState state); /** * Start media player */ void media_player_start(MediaPlayer* player); /** * Stop player */ void media_player_stop(MediaPlayer* player); G_END_DECLS #endif /*PLAYER_H_*/ alarm-clock-0.4.1/src/prefs.c000066400000000000000000000326401435672060600157710ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * prefs.c -- Alarm Clock global preferences * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #include #include #include #include "prefs.h" void prefs_autostart_init(AlarmApplet* applet); void prefs_autostart_update(AlarmApplet* applet); void autostart_monitor_changed(GFileMonitor* monitor, GFile* file, GFile* other_file, GFileMonitorEvent event_type, gpointer user_data); void prefs_show_label_init(AlarmApplet* applet); /** * Initialize preferences dialog and friends */ void prefs_init(AlarmApplet* applet) { applet->prefs_dialog = GTK_DIALOG(gtk_builder_get_object(applet->ui, "preferences")); // ...Why? gtk_widget_insert_action_group(GTK_WIDGET(applet->prefs_dialog), "app", G_ACTION_GROUP(applet->application)); applet->prefs_autostart_check = GTK_WIDGET(gtk_builder_get_object(applet->ui, "autostart-check")); prefs_autostart_init(applet); prefs_show_label_init(applet); } // Ordered list of autostart files we watch for GFile* autostart_user_file = NULL; GList* autostart_files = NULL; /** * Initialize autostart preference */ void prefs_autostart_init(AlarmApplet* applet) { // Initialize autostart files // We monitor: // ~/.config/autostart/PACKAGE.desktop // /etc/xdg/autostart/PACKAGE.desktop // ... gchar* filename; GFile* file; GFileMonitor* monitor; GList* l = NULL; // Add user-specific autostart: ~/.config/autostart/PACKAGE.desktop filename = g_build_filename(g_get_user_config_dir(), "autostart", PACKAGE ".desktop", NULL); autostart_user_file = g_file_new_for_path(filename); autostart_files = g_list_append(autostart_files, autostart_user_file); g_free(filename); // Add global autostart(s): /etc/xdg/autostart/PACKAGE.desktop const gchar* const* sys_cfg_dirs = g_get_system_config_dirs(); gint i; for(i = 0; sys_cfg_dirs[i] != NULL; i++) { filename = g_build_filename(sys_cfg_dirs[i], "autostart", PACKAGE ".desktop", NULL); file = g_file_new_for_path(filename); autostart_files = g_list_append(autostart_files, file); g_free(filename); } // // Update autostart state // prefs_autostart_update(applet); // // Monitor the autostart files // for(l = autostart_files; l != NULL; l = l->next) { file = G_FILE(l->data); monitor = g_file_monitor(file, G_FILE_MONITOR_NONE, NULL, NULL); g_signal_connect(monitor, "changed", G_CALLBACK(autostart_monitor_changed), applet); filename = g_file_get_path(file); g_debug("Preferences: Autostart watching %s", filename); g_free(filename); } } /** * Get the current most important autostart desktop file * * Returns NULL if no autostart desktop files were found */ static GFile* prefs_autostart_get_current() { GFile* f; GList* l = NULL; for(l = autostart_files; l != NULL; l = l->next) { f = G_FILE(l->data); if(g_file_query_exists(f, NULL)) { return f; } } return NULL; } /** * Get the current autostart state */ gboolean prefs_autostart_get_state() { GFile* file = prefs_autostart_get_current(); gchar* filename; GKeyFile* kf; GError* err = NULL; gboolean b; g_debug("Preferences: Autostart get_state for file %p", file); if(file) { // An autostart file exists, open it and check for Hidden=true and X-GNOME-Autostart-enabled=false kf = g_key_file_new(); filename = g_file_get_path(file); g_debug("Preferences: Autostart get_state: %s", filename); if(g_key_file_load_from_file(kf, filename, G_KEY_FILE_NONE, &err)) { g_free(filename); // Check for Hidden=true b = g_key_file_get_boolean(kf, "Desktop Entry", "Hidden", &err); if(!err && b) { // Hidden is true, autostart is FALSE g_debug("Preferences: Autostart Hidden=true"); g_key_file_free(kf); return FALSE; } if(err) { g_error_free(err); err = NULL; } // Check for X-GNOME-Autostart-enabled=false b = g_key_file_get_boolean(kf, "Desktop Entry", "X-GNOME-Autostart-enabled", &err); if(!err && !b) { // X-GNOME-Autostart-enabled is false, autostart is FALSE g_debug("Preferences: Autostart X-GNOME-Autostart-enabled=false"); g_key_file_free(kf); return FALSE; } if(err) { g_error_free(err); err = NULL; } g_key_file_free(kf); } else { g_warning("Preferences: Could not load autostart-file '%s': %s", filename, err->message); g_error_free(err); err = NULL; g_free(filename); } // File exists and none of the keys have been set to disable it => assume autostart is active g_debug("Preferences: Autostart is TRUE"); return TRUE; } return FALSE; } /** * Create the ~/.config/autostart/alarm-clock-applet.desktop file */ static gboolean prefs_create_autostart_user_file() { GFile* f; GError* err = NULL; gchar* filename; // Create ~/.config/autostart if it doesn't exist f = g_file_get_parent(autostart_user_file); if(!g_file_query_exists(f, NULL)) { g_debug("Preferences: creating user autostart dir..."); if(!g_file_make_directory_with_parents(f, NULL, &err)) { filename = g_file_get_path(f); g_warning("Preferences: Could not mkdir '%s': %s", filename, err->message); g_free(filename); g_object_unref(f); return FALSE; } } // Copy .desktop to autostart_user_file filename = g_build_filename(ALARM_CLOCK_DATADIR, "applications", PACKAGE ".desktop", NULL); f = g_file_new_for_path(filename); if(!g_file_copy(f, autostart_user_file, G_FILE_COPY_NONE, NULL, NULL, NULL, &err)) { g_warning("Preferences: Could not copy '%s' to user config dir: %s", filename, err->message); g_error_free(err); err = NULL; g_free(filename); return FALSE; } g_free(filename); return TRUE; } /** * Enable / disable autostart */ void prefs_autostart_set_state(gboolean state) { gboolean current_state = prefs_autostart_get_state(); if(current_state == state) { // No change return; } GFile* file = prefs_autostart_get_current(); gchar *filename, *str; gsize length; GKeyFile* kf; GFileOutputStream* fstream; GError* err = NULL; if(state) { // Enable g_debug("Preferences: Autostart ENABLE!"); if(file != autostart_user_file) { if(!prefs_create_autostart_user_file()) return; } // Unset Hidden and X-GNOME-Autostart-enabled kf = g_key_file_new(); filename = g_file_get_path(autostart_user_file); if(g_key_file_load_from_file(kf, filename, G_KEY_FILE_NONE, &err)) { g_key_file_remove_key(kf, "Desktop Entry", "Hidden", NULL); g_key_file_remove_key(kf, "Desktop Entry", "X-GNOME-Autostart-enabled", NULL); // Start hidden on autostart g_key_file_set_string(kf, "Desktop Entry", "Exec", PACKAGE " --hidden"); // Write out results fstream = g_file_replace(autostart_user_file, NULL, FALSE, G_FILE_CREATE_NONE, NULL, &err); if(fstream) { str = g_key_file_to_data(kf, &length, NULL); // g_print ("Writing str: %s", str); g_output_stream_write_all(G_OUTPUT_STREAM(fstream), str, length, NULL, NULL, &err); g_output_stream_close(G_OUTPUT_STREAM(fstream), NULL, &err); g_free(str); } } g_key_file_free(kf); if(err) { g_warning("Preferences: Error when enabling autostart-file '%s': %s", filename, err->message); g_error_free(err); err = NULL; } g_free(filename); } else { // Disable g_debug("Preferences: Autostart DISABLE!"); if(file) { if(file != autostart_user_file) { if(!prefs_create_autostart_user_file()) return; } // Set Hidden=true kf = g_key_file_new(); filename = g_file_get_path(autostart_user_file); if(g_key_file_load_from_file(kf, filename, G_KEY_FILE_NONE, &err)) { g_key_file_set_boolean(kf, "Desktop Entry", "Hidden", TRUE); // Write out results fstream = g_file_replace(autostart_user_file, NULL, FALSE, G_FILE_CREATE_NONE, NULL, &err); if(fstream) { str = g_key_file_to_data(kf, &length, NULL); // g_print ("Writing str: %s", str); g_output_stream_write_all(G_OUTPUT_STREAM(fstream), str, length, NULL, NULL, &err); g_output_stream_close(G_OUTPUT_STREAM(fstream), NULL, &err); g_free(str); } } g_key_file_free(kf); if(err) { g_warning("Preferences: Error when disabling autostart-file '%s': %s", filename, err->message); g_error_free(err); err = NULL; } } else { // Disabled already, should not happen g_warning("Preferences: Autostart is already disabled!?!?"); } } // // Enabling: // 1. get_current? // no: copy .desktop to ~/.config/autostart, finished // yes: is in user cfg? // no: copy .desktop to ~/.config/autostart, finished // yes: unset Hidden and X-GNOME-Autostart-enabled // // Disabling: // 1. get_current? // no: disabled already, finished // yes: is in user cfg? // no: copy .desktop to ~/.config/autostart, set Hidden=true // yes: set Hidden=true // } /** * Update autostart state */ void prefs_autostart_update(AlarmApplet* applet) { GVariant* act_state = g_action_get_state(G_ACTION(applet->action_toggle_autostart)); if(!act_state) return; gboolean state = g_variant_get_boolean(act_state); g_variant_unref(act_state); gboolean new_state = prefs_autostart_get_state(); g_debug("Preferences: Autostart update: new state: %d", new_state); if(state != new_state) { act_state = g_variant_new("b", new_state); g_simple_action_set_state(applet->action_toggle_autostart, act_state); } } /** * Initialize show_label preference */ void prefs_show_label_init(AlarmApplet* applet) { // Update state prefs_show_label_update(applet); } /** * Get the current show_label state from GConf */ gboolean prefs_show_label_get(AlarmApplet* applet) { return g_settings_get_boolean(applet->settings_global, "show-label"); } /** * Set show_label state in GSettings */ void prefs_show_label_set(AlarmApplet* applet, gboolean state) { gboolean current_state = prefs_show_label_get(applet); if(current_state == state) { // No change return; } // Set config value g_settings_set_boolean(applet->settings_global, "show-label", state); } /** * Update show_label state */ void prefs_show_label_update(AlarmApplet* applet) { GVariant* act_state = g_action_get_state(G_ACTION(applet->action_toggle_show_label)); if(!act_state) return; gboolean state = g_variant_get_boolean(act_state); g_variant_unref(act_state); gboolean new_state = prefs_show_label_get(applet); g_debug("Preferences: Show_label update: new state: %d", new_state); if(state != new_state) { act_state = g_variant_new("b", new_state); g_simple_action_set_state(applet->action_toggle_show_label, act_state); } } /** * Show preferences dialog */ void prefs_dialog_show(AlarmApplet* applet) { if(gtk_widget_get_visible(GTK_WIDGET(applet->prefs_dialog))) { gtk_window_present_with_time(GTK_WINDOW(applet->prefs_dialog), gtk_get_current_event_time()); } else { gtk_widget_show(GTK_WIDGET(applet->prefs_dialog)); } } void autostart_monitor_changed(GFileMonitor* monitor, GFile* file, GFile* other_file, GFileMonitorEvent event_type, gpointer user_data) { AlarmApplet* applet = (AlarmApplet*)user_data; /*gchar *s = g_file_get_path (file); g_print ("Monitor changed on %s: ", s); switch (event_type) { case G_FILE_MONITOR_EVENT_CHANGED: g_print ("CHANGED"); break; case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT: g_print ("CHANGES_DONE_HINT"); break; case G_FILE_MONITOR_EVENT_DELETED: g_print ("DELETED"); break; case G_FILE_MONITOR_EVENT_CREATED: g_print ("CREATED"); break; case G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED: g_print ("ATTRIBUTE_CHANGED"); break; case G_FILE_MONITOR_EVENT_PRE_UNMOUNT: g_print ("PRE_UNMOUNT"); break; case G_FILE_MONITOR_EVENT_UNMOUNTED: g_print ("UNMOUNTED"); break; default: g_print ("UNKNOWN (%d)", event_type); break; } g_print ("\n"); g_free (s);*/ prefs_autostart_update(applet); } alarm-clock-0.4.1/src/prefs.h000066400000000000000000000012221435672060600157660ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * prefs.h -- Alarm Clock global preferences * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #ifndef PREFS_H_ #define PREFS_H_ #include "alarm-applet.h" void prefs_init(AlarmApplet* applet); void prefs_dialog_show(AlarmApplet* applet); gboolean prefs_autostart_get_state(void); void prefs_autostart_set_state(gboolean state); gboolean prefs_show_label_get(AlarmApplet* applet); void prefs_show_label_set(AlarmApplet* applet, gboolean state); void prefs_show_label_update(AlarmApplet* applet); #endif /*PREFS_H_*/ alarm-clock-0.4.1/src/spec.txt000066400000000000000000000014761435672060600162040ustar00rootroot00000000000000 Preferences: ------------- Display: Show icon? Show label? Alarm time Time remaining ... Notification: One of: Play sound Which sound? Loop sound? Start Rhythmbox Command Extra: Show notification bubble? Left-click: ----------- When alarm is ringing: Snooze Otherwise: Open set alarm dialog Right-click: ------------- Snooze(?) Set alarm (default) Clear alarm Preferences About When ringing: ------------- Clock should "shake" back and forth. Label should flash. Modules: ------------- applet.c - Main module, loads UI etc. gconf.c - GConf setters and callbacks timer.c - Timer player.c - Media player alarm.c - Alarm notification types, player, command, ... list-entry.c - AlarmListEntry util.c - Misc utilities (?) ui.c - User interface ui_prefs.c - Preferences alarm-clock-0.4.1/src/tests/000077500000000000000000000000001435672060600156435ustar00rootroot00000000000000alarm-clock-0.4.1/src/tests/glade_view.c000066400000000000000000000031271435672060600201200ustar00rootroot00000000000000/* * glade_view.c -- Test utility for running a glade file. * * Copyright (C) 2007-2008 Johannes H. Jensen * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * Authors: * Johannes H. Jensen */ #include #include int main (int argc, char **argv) { gchar *file, *root = NULL; GladeXML *ui; gtk_init (&argc, &argv); if (argc < 2) { g_printerr ("Usage: %s [root]\n", argv[0]); return 1; } file = argv[1]; if (argc > 2) root = argv[2]; ui = glade_xml_new (file, root, NULL); if (!ui) { g_printerr ("Could not open '%s'. Exiting.\n", file); return 1; } GtkWidget *checkbox = glade_xml_get_widget(ui, "snooze-check"); /* you can't do this from glade */ GtkWidget *checkbox_label = gtk_bin_get_child (GTK_BIN (checkbox)); g_object_set (G_OBJECT (checkbox_label), "use_markup", TRUE, NULL); gtk_main(); return 0; } alarm-clock-0.4.1/src/tests/test_alarm.c000066400000000000000000000323661435672060600201540ustar00rootroot00000000000000/* * test_alarm.c -- Alarm test suite * * Copyright (C) 2007-2008 Johannes H. Jensen * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * Authors: * Johannes H. Jensen */ #include "alarm.h" #include #include #include #define GCONF_DIR "/apps/alarm-clock/test" /* Fixture */ typedef struct { Alarm *alarm; } AlarmFixture; static int state = 0; /* * TEST FIXTURE setup * * Called before each test case */ static void alarm_fixture_setup (AlarmFixture *fix, gconstpointer test_data) { fix->alarm = alarm_new (GCONF_DIR, 0); g_assert (fix->alarm != NULL); } /* * TEST FIXTURE teardown * * Called after each test case */ static void alarm_fixture_teardown (AlarmFixture *fix, gconstpointer test_data) { g_assert (fix->alarm != NULL); alarm_delete (fix->alarm); g_object_unref (fix->alarm); } /* * TEST: Alarm properties * * 1. Will set properties and verify them * 2. Will try to load properties from GConf and verify them */ static void test_alarm_props (AlarmFixture *fix, gconstpointer test_data) { Alarm *alarm = fix->alarm; // g_object_set (alarm, "gconf-dir", "bar", NULL); // Shouldn't work g_object_set (alarm, "id", 0, "type", ALARM_TYPE_TIMER, "time", 1234, "timestamp", 5678, "active", FALSE, "message", "Wakety zooom!", "repeat", ALARM_REPEAT_MON | ALARM_REPEAT_WED, "notify_type", ALARM_NOTIFY_COMMAND, "sound_file", "file:///foo/bar", "sound_repeat", FALSE, "command", "wiggle-your-toe --arg", NULL); /* Verify properties */ g_assert_cmpstr (alarm->gconf_dir, ==, GCONF_DIR); g_assert_cmpint (alarm->id, ==, 0); g_assert_cmpint (alarm->type, ==, ALARM_TYPE_TIMER); g_assert_cmpint (alarm->time, ==, 1234); g_assert_cmpint (alarm->timestamp, ==, 5678); g_assert_cmpint (alarm->active, ==, FALSE); g_assert_cmpstr (alarm->message, ==, "Wakety zooom!"); g_assert_cmpint (alarm->repeat, ==, ALARM_REPEAT_MON | ALARM_REPEAT_WED); g_assert_cmpint (alarm->notify_type, ==, ALARM_NOTIFY_COMMAND); g_assert_cmpstr (alarm->sound_file, ==, "file:///foo/bar"); g_assert_cmpint (alarm->sound_loop, ==, FALSE); g_assert_cmpstr (alarm->command, ==, "wiggle-your-toe --arg"); /* Unref alarm */ g_object_unref (fix->alarm); /* Load settings from GConf */ fix->alarm = alarm = alarm_new (GCONF_DIR, 0); /* Verify properties */ g_assert_cmpstr (alarm->gconf_dir, ==, GCONF_DIR); g_assert_cmpint (alarm->id, ==, 0); g_assert_cmpint (alarm->type, ==, ALARM_TYPE_TIMER); g_assert_cmpint (alarm->time, ==, 1234); g_assert_cmpint (alarm->timestamp, ==, 5678); g_assert_cmpint (alarm->active, ==, FALSE); g_assert_cmpstr (alarm->message, ==, "Wakety zooom!"); g_assert_cmpint (alarm->repeat, ==, ALARM_REPEAT_MON | ALARM_REPEAT_WED); g_assert_cmpint (alarm->notify_type, ==, ALARM_NOTIFY_COMMAND); g_assert_cmpstr (alarm->sound_file, ==, "file:///foo/bar"); g_assert_cmpint (alarm->sound_loop, ==, FALSE); g_assert_cmpstr (alarm->command, ==, "wiggle-your-toe --arg"); } /* * TEST: AlarmType */ static void test_alarm_type (AlarmFixture *fix, gconstpointer test_data) { // alarm_type_to_string () g_assert (alarm_type_to_string (ALARM_TYPE_INVALID) == NULL); g_assert_cmpstr (alarm_type_to_string (ALARM_TYPE_CLOCK), ==, "clock"); g_assert_cmpstr (alarm_type_to_string (ALARM_TYPE_TIMER), ==, "timer"); // alarm_type_from_string () g_assert_cmpint (alarm_type_from_string ("invalid"), ==, ALARM_TYPE_INVALID); g_assert_cmpint (alarm_type_from_string ("clock"), ==, ALARM_TYPE_CLOCK); g_assert_cmpint (alarm_type_from_string ("timer"), ==, ALARM_TYPE_TIMER); } /* * TEST: AlarmNotifyType */ static void test_alarm_notify_type (AlarmFixture *fix, gconstpointer test_data) { // alarm_notify_type_to_string () g_assert (alarm_notify_type_to_string (ALARM_NOTIFY_INVALID) == NULL); g_assert_cmpstr (alarm_notify_type_to_string (ALARM_NOTIFY_SOUND), ==, "sound"); g_assert_cmpstr (alarm_notify_type_to_string (ALARM_NOTIFY_COMMAND), ==, "command"); // alarm_notify_type_from_string () g_assert_cmpint (alarm_notify_type_from_string ("invalid"), ==, ALARM_NOTIFY_INVALID); g_assert_cmpint (alarm_notify_type_from_string ("sound"), ==, ALARM_NOTIFY_SOUND); g_assert_cmpint (alarm_notify_type_from_string ("command"), ==, ALARM_NOTIFY_COMMAND); } /* * TEST: Alarm list */ static void test_alarm_list (AlarmFixture *fix, gconstpointer test_data) { GList *list = NULL, *l; guint i = 0; Alarm *a; // Initialize with some dummy alarms a = alarm_new (GCONF_DIR, 3); g_object_unref (a); a = alarm_new (GCONF_DIR, 5); g_object_unref (a); a = alarm_new (GCONF_DIR, 8); g_object_unref (a); a = alarm_new (GCONF_DIR, 123); g_object_unref (a); // Get list list = alarm_get_list (GCONF_DIR); for (l = list; l; l = l->next, i++) { int eq; switch (i) { case 0: eq = 3; break; case 1: eq = 5; break; case 2: eq = 8; break; case 3: eq = 123; break; default: g_assert_not_reached (); break; } a = ALARM (l->data); g_assert_cmpint (a->id, ==, eq); alarm_delete (a); g_object_unref (a); } g_list_free (list); } /* * Alarm signal handler */ static void test_alarm_signal_alarm (Alarm *a, gchar *data) { //g_print ("ALARM on %p! Data: %s\n", a, data); g_assert_cmpuint (a->triggered, ==, TRUE); g_assert_cmpstr (data, ==, "the data"); state = 1; } static int n_cleared = 0; /* * Cleared signal handler */ static void test_alarm_signal_cleared (Alarm *a, gchar *data) { g_assert_cmpuint (a->triggered, ==, FALSE); g_assert_cmpstr (data, ==, "the data"); n_cleared++; state = 2; } /* * Error signal handler */ static void test_alarm_signal_error (Alarm *a, GError *err, gchar *data) { //g_print ("ERROR on %p! Message: %s, Code: %d, Data: %s", a, err->message, err->code, data); g_assert_cmpint (a->id, ==, 0); g_assert_cmpstr (err->message, ==, "Something bad happened"); g_assert_cmpint (err->code, ==, 123); g_assert_cmpstr (data, ==, "the error data"); state = 3; } /* * TEST: Alarm signals * * 1. Test "alarm" signal * 2. Test "cleared" signal * 3. Test "error" signal */ static void test_alarm_signals (AlarmFixture *fix, gconstpointer test_data) { Alarm *alarm = fix->alarm; state = 0; g_object_set (alarm, "notify_type", ALARM_NOTIFY_COMMAND, "command", "echo", NULL); // Test alarm signals g_signal_connect (alarm, "alarm", G_CALLBACK (test_alarm_signal_alarm), "the data"); g_signal_connect (alarm, "cleared", G_CALLBACK (test_alarm_signal_cleared), "the data"); alarm_trigger (alarm); g_assert_cmpint (state, ==, 1); g_assert_cmpint (n_cleared, ==, 0); // again... alarm_trigger (alarm); g_assert_cmpint (state, ==, 1); g_assert_cmpint (n_cleared, ==, 1); // Test cleared signals alarm_clear (alarm); g_assert_cmpint (state, ==, 2); // Make sure cleared is only triggered once state = 0; alarm_clear (alarm); g_assert_cmpint (state, ==, 0); // Test error signals g_signal_connect (alarm, "error", G_CALLBACK (test_alarm_signal_error), "the error data"); alarm_error_trigger (alarm, 123, "Something bad happened"); g_assert_cmpint (state, ==, 3); } /* * Callback function for stopping the GMainLoop */ static gboolean stop_loop (GMainLoop *loop) { g_main_loop_quit (loop); return FALSE; } /* * TEST: Notify types * * 1. Test SOUND notification * 2. Test COMMAND notification */ static void test_alarm_notify (AlarmFixture *fix, gconstpointer test_data) { Alarm *alarm = fix->alarm; GMainLoop *loop = g_main_loop_new (g_main_context_default(), FALSE); // // Test COMMAND notification // g_object_set (alarm, "notify_type", ALARM_NOTIFY_COMMAND, "command", "ls -a", NULL); alarm_trigger (alarm); // // Test SOUND notification // g_object_set (alarm, "notify_type", ALARM_NOTIFY_SOUND, "sound_file", "file:///usr/share/sounds/gnome/default/alerts/sonar.ogg", "sound_repeat", FALSE, NULL); alarm_trigger (alarm); // We need to run the main loop for a couple of seconds // so the player error/state callbacks get the alarm // instance while it's still alive. g_timeout_add (2000, stop_loop, loop); // Stop loop after 2 secs g_main_loop_run (loop); } /* * Callback for alarm signal. * Will set state to the current timestamp. */ static void test_alarm_timers_alarm (Alarm *a, gchar *data) { g_debug ("test_alarm_timers_ALARM"); state = time (NULL); } /* * TEST: Alarm timers * * 1. Test alarm CLOCK setting time to 5 seconds from now. * 2. Test alarm TIMER setting time to 3 seconds. * 3. Test alarm snooze for 2 seconds */ static void test_alarm_timers (AlarmFixture *fix, gconstpointer test_data) { Alarm *alarm = fix->alarm; time_t now = time(NULL); struct tm *tm; GMainLoop *loop = g_main_loop_new (g_main_context_default(), FALSE); // Alarm signal handler g_signal_connect (alarm, "alarm", G_CALLBACK (test_alarm_timers_alarm), "the data"); // // Test CLOCK 5sec from now // now = time (NULL); tm = localtime (&now); //g_debug ("TEST SET %d => %d:%d:%d", now, tm->tm_hour, tm->tm_min, tm->tm_sec + 5); alarm_set_time (alarm, tm->tm_hour, tm->tm_min, tm->tm_sec + 5); g_object_set (alarm, "type", ALARM_TYPE_CLOCK, "notify_type", ALARM_NOTIFY_COMMAND, "command", "echo CMDALARM", NULL); alarm_enable (alarm); state = 0; g_timeout_add (6000, stop_loop, loop); // Stop loop after 6 secs g_main_loop_run (loop); g_assert_cmpint (state - now, ==, 5); // // Test TIMER 3sec // g_object_set (alarm, "type", ALARM_TYPE_TIMER, "time", 3, NULL); alarm_enable (alarm); state = 0; now = time (NULL); g_timeout_add (4000, stop_loop, loop); // Stop loop after 4 secs g_main_loop_run (loop); g_assert_cmpint (state - now, ==, 3); // // Test snooze for 2 seconds // now = time (NULL); alarm_snooze (alarm, 2); g_assert_cmpint (alarm->timestamp, ==, now + 2); } /* * TEST: AlarmRepeat */ static void test_alarm_repeat (AlarmFixture *fix, gconstpointer test_data) { AlarmRepeat r, rep; const gchar *str; gint i, wnow, wday; GSList *list, *l; struct tm *tm; time_t now; time (&now); // // Test single repeats to string and back again // g_print ("SINGLE:\n"); for (r = ALARM_REPEAT_SUN, i = 1; r <= ALARM_REPEAT_SAT; r = 1 << ++i) { str = alarm_repeat_to_string (r); rep = alarm_repeat_from_string (str); g_assert_cmpint (r, ==, rep); } // // Test repeat to list // // NONE rep = ALARM_REPEAT_NONE; list = alarm_repeat_to_list (rep); g_assert (NULL == list); rep = alarm_repeat_from_list (list); g_assert_cmpint (rep, ==, ALARM_REPEAT_NONE); // MULTIPLE rep = ALARM_REPEAT_MON | ALARM_REPEAT_WED | ALARM_REPEAT_FRI; list = alarm_repeat_to_list (rep); GString *s = g_string_new (""); for (l = list; l; l = l->next) { s = g_string_append (s, (gchar *)l->data); } g_assert_cmpstr (s->str, ==, "monwedfri"); g_string_free (s, TRUE); r = alarm_repeat_from_list (list); g_assert_cmpint (r, ==, rep); // // Test repeat to pretty // str = alarm_repeat_to_pretty (ALARM_REPEAT_WEEKDAYS); g_assert_cmpstr (str, ==, _("Weekdays")); g_free (str); str = alarm_repeat_to_pretty (ALARM_REPEAT_ALL); g_assert_cmpstr (str, ==, _("Every day")); g_free (str); str = alarm_repeat_to_pretty (ALARM_REPEAT_MON | ALARM_REPEAT_WED | ALARM_REPEAT_FRI); g_assert_cmpstr (str, ==, _("Mon, Wed, Fri")); g_free (str); // Should free data as well but we're lazy g_slist_free (list); } /* * Run them tests! */ int main (int argc, char **argv) { g_type_init(); g_test_init(&argc, &argv, NULL); // Alarm primitives g_test_add ("/alarm/type", AlarmFixture, 0, NULL, test_alarm_type, NULL); g_test_add ("/alarm/nofity_type", AlarmFixture, 0, NULL, test_alarm_notify_type, NULL); g_test_add ("/alarm/list", AlarmFixture, 0, NULL, test_alarm_list, NULL); g_test_add ("/alarm/repeat", AlarmFixture, 0, NULL, test_alarm_repeat, NULL); // Full system tests g_test_add ("/alarm/props", AlarmFixture, 0, alarm_fixture_setup, test_alarm_props, alarm_fixture_teardown); g_test_add ("/alarm/signal", AlarmFixture, 0, alarm_fixture_setup, test_alarm_signals, alarm_fixture_teardown); g_test_add ("/alarm/notify", AlarmFixture, 0, alarm_fixture_setup, test_alarm_notify, alarm_fixture_teardown); g_test_add ("/alarm/timers", AlarmFixture, 0, alarm_fixture_setup, test_alarm_timers, alarm_fixture_teardown); return g_test_run (); } alarm-clock-0.4.1/src/tests/test_gconf_recursive.c000066400000000000000000000040561435672060600222360ustar00rootroot00000000000000/* * test_gconf_recursive.c -- Test utility for recursively unsetting a gconf dir. * * Copyright (C) 2007-2008 Johannes H. Jensen * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * Authors: * Johannes H. Jensen */ #include #include static void notify (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer user_data) { g_debug ("notify (%p, %d, %p, %p)", client, cnxn_id, entry, user_data); if (entry) { g_debug ("\t%s = %p", entry->key, entry->value); } } int main(void) { GConfClient *client; GError *err = NULL; gboolean result; GMainLoop *loop = g_main_loop_new(g_main_context_default(), FALSE); client = gconf_client_get_default(); gconf_client_add_dir (client, "/apps/atest", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); gconf_client_notify_add (client, "/apps/atest", notify, NULL, NULL, NULL); result = gconf_client_recursive_unset (client, "/apps/atest/foo", GCONF_UNSET_INCLUDING_SCHEMA_NAMES, &err); g_debug ("result: %d", result); g_debug ("err: %p", err); gconf_client_suggest_sync (client, &err); g_debug ("result: %d", result); g_debug ("err: %p", err); g_main_loop_run (loop); //result = gconf_client_unset (client, "/apps/atest/fooz", &err); //result = gconf_client_ /*g_debug ("result: %d", result); g_debug ("err: %p", err);*/ return 0; }alarm-clock-0.4.1/src/tests/test_libnotify.c000066400000000000000000000035361435672060600210540ustar00rootroot00000000000000/* * test_libnotify.c -- Test libnotify * * Copyright (C) 2010 Johannes H. Jensen * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * Authors: * Johannes H. Jensen */ #include #include #include #include /* #include #include #include */ GMainLoop *loop; NotifyNotification *n; gboolean close_notify (gpointer data) { g_debug("CLOSE NOTIFY: %d", notify_notification_close (n, NULL)); return FALSE; } int main(int argc, char *argv[]) { gtk_init(&argc, &argv); if (!notify_init("Alarm Clock")) return 1; GtkStatusIcon *si = gtk_status_icon_new_from_icon_name ("alarm-clock"); /* Stock icon */ n = notify_notification_new_with_status_icon("Alarm & Test", "Click the alarm icon to snooze", "alarm-timer", si); if (!notify_notification_show(n, NULL)) { fprintf(stderr, "failed to send notification\n"); return 1; } g_timeout_add_seconds (1, close_notify, NULL); gtk_main (); return 0; } alarm-clock-0.4.1/src/tests/test_player.c000066400000000000000000000036361435672060600203520ustar00rootroot00000000000000/* * test_player.c -- Test utility for the MediaPlayer system. * * Copyright (C) 2007-2008 Johannes H. Jensen * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * Authors: * Johannes H. Jensen */ #include #include "player.h" GMainLoop *loop; MediaPlayer *player; void state_changed (MediaPlayer *player, MediaPlayerState state, gchar *data) { g_debug ("State changed to %s [%d], data is '%s'", (state == MEDIA_PLAYER_PLAYING) ? "PLAYING" : "STOPPED", state, data); if (state == MEDIA_PLAYER_STOPPED && !player->loop) { g_main_loop_quit (loop); } } void error_handler (MediaPlayer *player, GError *error, gchar *data) { g_debug ("Error occured: %s, data is '%s'", error->message, data); } int main (int argc, char **argv) { if (argc < 2) { g_print ("Usage: %s \n", argv[0]); return 1; } // Terminate on critical errors g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL); player = media_player_new(argv[1], TRUE, state_changed, "test data", error_handler, "test error"); media_player_start (player); loop = g_main_loop_new (g_main_context_default(), TRUE); g_main_loop_run (loop); media_player_free(player); return 0; } alarm-clock-0.4.1/src/tests/test_util.c000066400000000000000000000040521435672060600200240ustar00rootroot00000000000000/* * glade_util.c -- Test for alarm utilities. * * Copyright (C) 2007-2008 Johannes H. Jensen * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * Authors: * Johannes H. Jensen */ #include #include #include "util.h" #define FILENAME1 "some.file.ext" #define FILENAME2 "some file" #define CMD1 "ls" #define CMD2 "not-found" int main(void) { gchar *tmp, ftime[256]; gboolean ret; time_t now, ts; struct tm *tm; guint hour, min, sec; g_print ("Testing to_basename():\n\n"); tmp = to_basename (FILENAME1); g_print ("to_basename (" FILENAME1 "): %s\n", tmp); g_free (tmp); tmp = to_basename (FILENAME2); g_print ("to_basename (" FILENAME2 "): %s\n", tmp); g_free (tmp); g_print ("\nTesting run_command():\n\n"); ret = command_run (CMD1); g_print ("Running " CMD1 " = %d\n", ret); ret = command_run (CMD2); g_print ("Running " CMD2 " = %d\n", ret); g_print ("\nTesting get_alarm_timestamp()\n\n"); time (&now); tm = localtime (&now); strftime (ftime, sizeof (ftime), "%c", tm); hour = tm->tm_hour; min = tm->tm_min; sec = tm->tm_sec; g_print ("Time: %s\n", ftime); ts = get_alarm_timestamp(hour, min, sec - 10); g_print ("For -10s: %d: %s\n", ts, ctime (&ts)); ts = get_alarm_timestamp(hour, min, sec + 10); g_print ("For +10s: %d: %s\n", ts, ctime (&ts)); return 0; } alarm-clock-0.4.1/src/ui.c000066400000000000000000000325731435672060600152740ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * ui.c - Alarm Clock applet UI routines * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #include #include #include #include "alarm-applet.h" #include "alarm-actions.h" #include "ui.h" enum { GICON_COL, TEXT_COL, N_COLUMNS, }; static void alarm_applet_status_init(AlarmApplet* applet); /* * Load a user interface by name */ GtkBuilder* alarm_applet_ui_load(const char* name, AlarmApplet* applet) { GtkBuilder* builder = NULL; GError* error = NULL; gchar* filename; filename = alarm_applet_get_data_path(name); g_assert(filename != NULL); builder = gtk_builder_new(); g_debug("Loading UI from %s...", filename); if(gtk_builder_add_from_file(builder, filename, &error)) { /* Connect signals */ gtk_builder_connect_signals(builder, applet); } else { g_critical("Couldn't load the interface '%s'. %s", filename, error->message); g_error_free(error); } g_free(filename); return builder; } void display_error_dialog(const gchar* message, const gchar* secondary_text, GtkWindow* parent) { GtkWidget* dialog; dialog = gtk_message_dialog_new(parent, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", message); if(secondary_text != NULL) { gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog), "%s", secondary_text); } gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); } static gboolean is_separator(GtkTreeModel* model, GtkTreeIter* iter, gpointer sep_index) { GtkTreePath* path; gboolean result; path = gtk_tree_model_get_path(model, iter); result = gtk_tree_path_get_indices(path)[0] == GPOINTER_TO_INT(sep_index); gtk_tree_path_free(path); return result; } /* * Shamelessly stolen from gnome-da-capplet.c */ void fill_combo_box(GtkComboBox* combo_box, GList* list, const gchar* custom_label) { GList* l; GtkTreeModel* model; GtkCellRenderer* renderer; GtkTreeIter iter; g_debug("fill_combo_box... %d", g_list_length(list)); gtk_combo_box_set_row_separator_func(combo_box, is_separator, GINT_TO_POINTER(g_list_length(list)), NULL); model = GTK_TREE_MODEL(gtk_list_store_new(2, G_TYPE_ICON, G_TYPE_STRING)); gtk_combo_box_set_model(combo_box, model); gtk_cell_layout_clear(GTK_CELL_LAYOUT(combo_box)); renderer = gtk_cell_renderer_pixbuf_new(); /* not all cells have a pixbuf, this prevents the combo box from shrinking */ gtk_cell_renderer_set_fixed_size(renderer, -1, 22); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo_box), renderer, FALSE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo_box), renderer, "gicon", GICON_COL, NULL); renderer = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo_box), renderer, TRUE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo_box), renderer, "text", TEXT_COL, NULL); for(l = list; l != NULL; l = g_list_next(l)) { void* entry = l->data; gtk_list_store_append(GTK_LIST_STORE(model), &iter); if(G_IS_APP_INFO(entry)) gtk_list_store_set(GTK_LIST_STORE(model), &iter, GICON_COL, g_app_info_get_icon(entry), TEXT_COL, g_app_info_get_display_name(entry), -1); else g_error("Unknown data type in fill_combo_box"); } gtk_list_store_append(GTK_LIST_STORE(model), &iter); gtk_list_store_set(GTK_LIST_STORE(model), &iter, -1); gtk_list_store_append(GTK_LIST_STORE(model), &iter); gtk_list_store_set(GTK_LIST_STORE(model), &iter, GICON_COL, NULL, TEXT_COL, custom_label, -1); } void fill_combo_box_custom_list(GtkComboBox* combo_box, GList* list, const gchar* custom_label) { GList* l; GtkTreeModel* model; GtkCellRenderer* renderer; GtkTreeIter iter; AlarmListEntry* entry; g_debug("fill_combo_box... %d", g_list_length(list)); gtk_combo_box_set_row_separator_func(combo_box, is_separator, GINT_TO_POINTER(g_list_length(list)), NULL); model = GTK_TREE_MODEL(gtk_list_store_new(2, G_TYPE_ICON, G_TYPE_STRING)); gtk_combo_box_set_model(combo_box, model); gtk_cell_layout_clear(GTK_CELL_LAYOUT(combo_box)); renderer = gtk_cell_renderer_pixbuf_new(); /* not all cells have a pixbuf, this prevents the combo box to shrink */ gtk_cell_renderer_set_fixed_size(renderer, -1, 22); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo_box), renderer, FALSE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo_box), renderer, "gicon", GICON_COL, NULL); renderer = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo_box), renderer, TRUE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo_box), renderer, "text", TEXT_COL, NULL); for(l = list; l != NULL; l = g_list_next(l)) { GIcon* icon; entry = (AlarmListEntry*)l->data; icon = g_icon_new_for_string(entry->icon, NULL); gtk_list_store_append(GTK_LIST_STORE(model), &iter); gtk_list_store_set(GTK_LIST_STORE(model), &iter, GICON_COL, icon, TEXT_COL, entry->name, -1); g_object_unref(icon); } gtk_list_store_append(GTK_LIST_STORE(model), &iter); gtk_list_store_set(GTK_LIST_STORE(model), &iter, -1); gtk_list_store_append(GTK_LIST_STORE(model), &iter); gtk_list_store_set(GTK_LIST_STORE(model), &iter, GICON_COL, NULL, TEXT_COL, custom_label, -1); } /** * Show a notification */ void alarm_applet_notification_show(AlarmApplet* applet, const gchar* summary, const gchar* body, const gchar* icon) { NotifyNotification* n; GError* error = NULL; n = notify_notification_new(summary, body, icon); if(!notify_notification_show(n, &error)) { g_warning("Failed to send notification: %s", error->message); g_error_free(error); } g_object_unref(G_OBJECT(n)); } void alarm_applet_label_update(AlarmApplet* applet) { GList* l; Alarm* a; Alarm* next_alarm = NULL; struct tm tm; gchar* tmp; GVariant* state = g_action_get_state(G_ACTION(applet->action_toggle_show_label)); if(!state) return; gboolean show_label = g_variant_get_boolean(state); g_variant_unref(state); if(!show_label) { app_indicator_set_label(applet->app_indicator, NULL, NULL); return; } // // Show countdown // for(l = applet->alarms; l; l = l->next) { a = ALARM(l->data); if(!a->active) continue; if(!next_alarm || a->timestamp < next_alarm->timestamp) { next_alarm = a; } } if(!next_alarm) { // No upcoming alarms app_indicator_set_label(applet->app_indicator, NULL, NULL); return; } alarm_get_remain(next_alarm, &tm); tmp = g_strdup_printf("%02d:%02d:%02d", tm.tm_hour, tm.tm_min, tm.tm_sec); app_indicator_set_label(applet->app_indicator, tmp, NULL); g_free(tmp); } /* * Updates label etc */ static gboolean alarm_applet_ui_update(AlarmApplet* applet) { alarm_applet_label_update(applet); // alarm_applet_update_tooltip (applet); return TRUE; } void alarm_applet_ui_init(AlarmApplet* applet) { /* Load UI with GtkBuilder */ applet->ui = alarm_applet_ui_load("alarm-clock.ui", applet); /* Initialize status icon */ alarm_applet_status_init(applet); /* Initialize libnotify */ if(!notify_init(PACKAGE_NAME)) { g_critical("Could not intialize libnotify!"); } /* Initialize alarm list window */ applet->list_window = alarm_list_window_new(applet); /* Initialize alarm settings dialog */ applet->settings_dialog = alarm_settings_dialog_new(applet); /* Load CSS */ GtkCssProvider* css = gtk_css_provider_new(); gchar* css_filename = alarm_applet_get_data_path("alarm-clock.css"); gtk_css_provider_load_from_path(css, css_filename, NULL); g_free(css_filename); css_filename = NULL; gtk_style_context_add_provider_for_screen(gdk_screen_get_default(), GTK_STYLE_PROVIDER(css), GTK_STYLE_PROVIDER_PRIORITY_USER); /* Connect signals */ // gtk_builder_connect_signals (applet->ui, applet); /* Initialize actions */ alarm_applet_actions_init(applet); /* Initialize preferences dialog */ prefs_init(applet); /* Set up UI updater */ alarm_applet_ui_update(applet); g_timeout_add_seconds(1, (GSourceFunc)alarm_applet_ui_update, applet); } /* * Initialize status icon */ static void alarm_applet_status_init(AlarmApplet* applet) { applet->status_menu = GTK_WIDGET(gtk_builder_get_object(applet->ui, "status_menu")); // WARNING: The following line is required to get AppIndicator to function correctly with GActions gtk_widget_insert_action_group(applet->status_menu, "app", G_ACTION_GROUP(applet->application)); applet->app_indicator = app_indicator_new(PACKAGE_NAME, ALARM_ICON, APP_INDICATOR_CATEGORY_APPLICATION_STATUS); app_indicator_set_title(applet->app_indicator, _("Alarm Clock")); app_indicator_set_status(applet->app_indicator, APP_INDICATOR_STATUS_ACTIVE); app_indicator_set_attention_icon(applet->app_indicator, TRIGGERED_ICON); app_indicator_set_menu(applet->app_indicator, GTK_MENU(applet->status_menu)); } /* * Update the status icon */ void alarm_applet_status_update(AlarmApplet* applet) { if(applet->n_triggered > 0) { app_indicator_set_status(applet->app_indicator, APP_INDICATOR_STATUS_ATTENTION); } else { app_indicator_set_status(applet->app_indicator, APP_INDICATOR_STATUS_ACTIVE); } } void alarm_applet_status_menu_edit_cb(GtkMenuItem* menuitem, gpointer user_data) { AlarmApplet* applet = (AlarmApplet*)user_data; alarm_list_window_show(applet->list_window); } void alarm_applet_status_menu_prefs_cb(GtkMenuItem* menuitem, gpointer user_data) { AlarmApplet* applet = (AlarmApplet*)user_data; prefs_dialog_show(applet); } void alarm_applet_status_menu_about_cb(GtkMenuItem* menuitem, gpointer user_data) { AlarmApplet* applet = (AlarmApplet*)user_data; gchar* title; gboolean visible; GtkAboutDialog* dialog = GTK_ABOUT_DIALOG(gtk_builder_get_object(applet->ui, "about-dialog")); g_object_get(dialog, "visible", &visible, NULL); if(!visible) { // About Alarm Clock title = g_strdup_printf(_("About %s"), _(ALARM_NAME)); g_object_set(G_OBJECT(dialog), "program-name", _(ALARM_NAME), "title", title, "version", VERSION, NULL); g_free(title); gtk_dialog_run(GTK_DIALOG(dialog)); } else { // Already visible, present it gtk_window_present(GTK_WINDOW(dialog)); } } /* * An error callback for MediaPlayers */ void media_player_error_cb(MediaPlayer* player, GError* err, gpointer data) { GtkWindow* parent = GTK_WINDOW(data); gchar *uri, *tmp; uri = media_player_get_uri(player); tmp = g_strdup_printf("%s: %s", uri, err->message); g_critical(_("Could not play '%s': %s"), uri, err->message); display_error_dialog(_("Could not play"), tmp, parent); g_free(tmp); g_free(uri); } /** * Alarm changed signal handler * * Here we update any actions/views, if necessary */ void alarm_applet_alarm_changed(GObject* object, GParamSpec* pspec, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; Alarm* alarm = ALARM(object); const gchar* pname = pspec->name; g_debug("AlarmApplet: Alarm '%s' %s changed", alarm->message, pname); // Update Actions if(g_strcmp0(pname, "active") == 0) { alarm_action_update_enabled(applet); } // Update List Window if(applet->list_window && gtk_widget_get_visible(GTK_WIDGET(applet->list_window->window))) { // Should really check that the changed param is relevant... alarm_list_window_alarm_update(applet->list_window, alarm); } // Update Settings /*if (applet->settings_dialog && applet->settings_dialog->alarm == alarm) { g_debug ("TODO: Update settings dialog"); }*/ } /** * Alarm 'alarm' signal handler * * Here we update any actions/views, if necessary */ void alarm_applet_alarm_triggered(Alarm* alarm, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; gchar *summary, *body; const gchar* icon; g_debug("AlarmApplet: Alarm '%s' triggered", alarm->message); // Keep track of how many alarms have been triggered applet->n_triggered++; // Show notification summary = g_strdup_printf("%s", alarm->message); body = g_strdup_printf(_("You can snooze or stop alarms from the Alarm Clock menu.")); icon = (alarm->type == ALARM_TYPE_TIMER) ? TIMER_ICON : ALARM_ICON; alarm_applet_notification_show(applet, summary, body, icon); g_free(summary); g_free(body); // Update status icon alarm_applet_status_update(applet); // Update actions alarm_applet_actions_update_sensitive(applet); } /** * Alarm 'cleared' signal handler * * Here we update any actions/views, if necessary */ void alarm_applet_alarm_cleared(Alarm* alarm, gpointer data) { AlarmApplet* applet = (AlarmApplet*)data; g_debug("AlarmApplet: Alarm '%s' cleared", alarm->message); // Keep track of how many alarms have been triggered applet->n_triggered--; // Update status icon alarm_applet_status_update(applet); // Update actions alarm_applet_actions_update_sensitive(applet); } alarm-clock-0.4.1/src/ui.h000066400000000000000000000032351435672060600152720ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * ui.h - Alarm Clock applet UI routines * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #ifndef UI_H_ #define UI_H_ #include "alarm-applet.h" #include "alarm-list-window.h" #include "alarm-settings.h" void display_error_dialog(const gchar* message, const gchar* secondary_text, GtkWindow* parent); void alarm_applet_label_update(AlarmApplet* applet); void alarm_applet_update_tooltip(AlarmApplet* applet); void alarm_applet_icon_update(AlarmApplet* applet); void fill_combo_box(GtkComboBox* combo_box, GList* list, const gchar* custom_label); void fill_combo_box_custom_list(GtkComboBox* combo_box, GList* list, const gchar* custom_label); void alarm_applet_notification_show(AlarmApplet* applet, const gchar* summary, const gchar* body, const gchar* icon); void alarm_applet_ui_init(AlarmApplet* applet); GtkBuilder* alarm_applet_ui_load(const char* name, AlarmApplet* applet); void alarm_applet_alarm_changed(GObject* object, GParamSpec* pspec, gpointer data); void alarm_applet_alarm_triggered(Alarm* alarm, gpointer data); void alarm_applet_alarm_cleared(Alarm* alarm, gpointer data); void alarm_applet_status_update(AlarmApplet* applet); void alarm_applet_menu_init(AlarmApplet* applet); void media_player_error_cb(MediaPlayer* player, GError* err, gpointer data); void alarm_applet_status_menu_edit_cb(GtkMenuItem* menuitem, gpointer user_data); void alarm_applet_status_menu_prefs_cb(GtkMenuItem* menuitem, gpointer user_data); void alarm_applet_status_menu_about_cb(GtkMenuItem* menuitem, gpointer user_data); #endif /*UI_H_*/ alarm-clock-0.4.1/src/util.c000066400000000000000000000100531435672060600156210ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * util.c -- Misc utilities * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #include #include #include #include #include "util.h" /** * Calculates the alarm timestamp given hour, min and secs. */ time_t get_alarm_timestamp(guint hour, guint minute, guint second) { time_t now; struct tm tm; time(&now); tzset(); if(!localtime_r(&now, &tm)) { memset(&tm, 0, sizeof(tm)); g_critical("get_alarm_timestamp: localtime failed"); } // Check if the alarm is for tomorrow if(hour < tm.tm_hour || (hour == tm.tm_hour && minute < tm.tm_min) || (hour == tm.tm_hour && minute == tm.tm_min && second < tm.tm_sec)) { g_debug("Alarm is for tomorrow."); tm.tm_mday++; } tm.tm_hour = hour; tm.tm_min = minute; tm.tm_sec = second; // DEBUG: char tmp[512]; #ifdef __GNUC__ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-y2k" #endif strftime(tmp, sizeof(tmp), "%c", &tm); #ifdef __GNUC__ #pragma GCC diagnostic pop #endif g_debug("Alarm will trigger at %s", tmp); return mktime(&tm); } /** * Construct a Uppercased name of filename without the extension. */ gchar* to_basename(const gchar* filename) { gint i, len; gchar* result; len = strlen(filename); // Remove extension for(i = len - 1; i > 0; i--) { if(filename[i] == '.') { break; } } if(i == 0) // Extension not found i = len; result = g_strndup(filename, i); // Make first character Uppercase result[0] = g_utf8_strup(result, 1)[0]; return result; } /* * Run Command */ gboolean command_run(const gchar* command) { GError* err = NULL; if(!g_spawn_command_line_async(command, &err)) { g_critical("Could not launch `%s': %s", command, err->message); g_error_free(err); return FALSE; } return TRUE; } gboolean is_executable_valid(gchar* executable) { gchar* path; path = g_find_program_in_path(executable); if(path) { g_free(path); return TRUE; } return FALSE; } /* * Get full path to a data file */ gchar* alarm_applet_get_data_path(const char* name) { gchar* filename; /* Try the file in the source tree first */ filename = g_build_filename("..", "data", name, NULL); g_debug("filename: %s", filename); if(g_file_test(filename, G_FILE_TEST_EXISTS) == FALSE) { g_free(filename); /* Try the local file */ filename = g_build_filename(ALARM_CLOCK_PKGDATADIR, name, NULL); if(g_file_test(filename, G_FILE_TEST_EXISTS) == FALSE) { g_free(filename); return NULL; } } return filename; } /** * Block signal handlers by signal name */ guint block_signal_handlers_by_name(gpointer instance, const gchar* signal_name) { guint signal_id; signal_id = g_signal_lookup(signal_name, G_OBJECT_TYPE(instance)); g_warn_if_fail(signal_id); g_return_val_if_fail(signal_id, 0); return g_signal_handlers_block_matched(instance, G_SIGNAL_MATCH_ID, signal_id, 0, NULL, NULL, NULL); } /** * Unblock signal handlers by signal name */ guint unblock_signal_handlers_by_name(gpointer instance, const gchar* signal_name) { guint signal_id; signal_id = g_signal_lookup(signal_name, G_OBJECT_TYPE(instance)); g_warn_if_fail(signal_id); g_return_val_if_fail(signal_id, 0); return g_signal_handlers_unblock_matched(instance, G_SIGNAL_MATCH_ID, signal_id, 0, NULL, NULL, NULL); } guint block_list(GList* instances, gpointer func) { guint blocked = 0; for(GList* l = instances; l != NULL; l = l->next) { blocked += BLOCK(l->data, func); } return blocked; } guint unblock_list(GList* instances, gpointer func) { guint unblocked = 0; for(GList* l = instances; l != NULL; l = l->next) { unblocked += UNBLOCK(l->data, func); } return unblocked; } alarm-clock-0.4.1/src/util.h000066400000000000000000000024311435672060600156270ustar00rootroot00000000000000// SPDX-License-Identifier: GPL-2.0-or-later /* * util.h -- Misc utilities * * Copyright (C) 2007-2008 Johannes H. Jensen * Copyright (C) 2022 Tasos Sahanidis */ #ifndef UTIL_H_ #define UTIL_H_ #include #include #include /** * Calculates the alarm timestamp given hour, min and secs. */ time_t get_alarm_timestamp(guint hour, guint minute, guint second); /** * Construct a Uppercased name of filename without the extension. */ gchar* to_basename(const gchar* filename); /* * Run Command */ gboolean command_run(const gchar* command); gboolean is_executable_valid(gchar* executable); /* Get full path of a data file */ gchar* alarm_applet_get_data_path(const char* name); guint block_signal_handlers_by_name(gpointer instance, const gchar* signal_name); guint unblock_signal_handlers_by_name(gpointer instance, const gchar* signal_name); guint block_list(GList* instances, gpointer func); guint unblock_list(GList* instances, gpointer func); #define BLOCK(instance, func) g_signal_handlers_block_matched((instance), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (func), NULL) #define UNBLOCK(instance, func) g_signal_handlers_unblock_matched((instance), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (func), NULL) #endif /*UTIL_H_*/