86 Commits
0.2.0 ... 0.3.0

Author SHA1 Message Date
Johannes H. Jensen
dbbb48a097 0.3.0 release 2010-03-16 23:43:56 +01:00
Johannes H. Jensen
63716677d7 Include Makefile.decls
Pass distcheck
2010-03-16 23:29:31 +01:00
Johannes H. Jensen
482047faa3 Fix some build issues 2010-03-16 22:12:28 +01:00
Johannes H. Jensen
f7d2d55543 Use g_get_system_data_dirs() to locate stock sounds and apps 2010-03-16 21:53:17 +01:00
Johannes H. Jensen
ed97748ccd Add contributors to about dialog
Don't terminate on critical errors
2010-03-16 21:27:27 +01:00
Johannes H. Jensen
04bbd46a15 Update LINGUAS, properly clean intltool-generated files 2010-03-16 18:24:33 +01:00
Johannes H. Jensen
ac2cd101c3 Update translations from launchpad 2010-03-16 17:39:25 +01:00
Johannes H. Jensen
3b6bc8b4ea Do not shrink type column 2010-03-16 17:26:27 +01:00
Johannes H. Jensen
36a638a630 Rename template to conform with launchpad rules. 2010-03-06 17:18:04 +01:00
Johannes H. Jensen
177dfa89ae Update translation template 2010-03-06 16:28:15 +01:00
Johannes H. Jensen
9f1ef13c7c One less warning 2010-03-06 16:27:39 +01:00
Johannes H. Jensen
517d5f4144 Less compilation warnings. 2010-03-06 16:26:05 +01:00
Johannes H. Jensen
c3f883fd3f More helpfull translation comment 2010-03-06 16:09:43 +01:00
Johannes H. Jensen
d956b13397 Remove markup from translatable strings. 2010-03-06 15:54:43 +01:00
Johannes H. Jensen
2cc36d150b Updated translation template 2010-03-06 04:15:49 +01:00
Johannes H. Jensen
a1035384c6 Escape markup in alarm list 2010-03-06 03:42:45 +01:00
Johannes H. Jensen
cbdee9aa72 Code cleanup (less compilation warnings) 2010-03-06 03:26:25 +01:00
Johannes H. Jensen
0cba259f45 Code clean up: Don't block() 2010-03-03 18:03:53 +01:00
Johannes H. Jensen
da23d54b14 Improve makefiles - most importantly silent-rules 2010-03-03 12:56:01 +01:00
Johannes H. Jensen
338c3bacbb Merge from lp 2010-03-03 12:35:12 +01:00
Johannes H. Jensen
cdffa2003e Test program for libnotify 2010-03-03 12:33:07 +01:00
Johannes H. Jensen
e425320f85 Autostart-disabling implemented 2010-03-03 00:45:59 +01:00
Johannes H. Jensen
157b656359 Autostart-enabling implemented 2010-03-03 00:35:49 +01:00
Johannes H. Jensen
342408fc12 Monitor autostart files and update preferences state. 2010-03-02 23:47:37 +01:00
42acb1e28b Code cleanup. 2010-02-16 01:18:09 +01:00
Johannes H. Jensen
eb975a7f2a Uniqify app using libunique 2010-01-24 01:06:54 +01:00
Johannes H. Jensen
610544025d Added translation template file 2010-01-20 21:38:59 +01:00
Johannes H. Jensen
3d4b677581 Use snooze min setting when snoozing alarms from the status menu. 2010-01-19 22:36:40 +01:00
Johannes H. Jensen
a9cdb302bc Updated Norwegian translation 2010-01-19 22:30:48 +01:00
Johannes H. Jensen
e61fbc4187 Manually mark some strings as translatable
https://bugzilla.gnome.org/show_bug.cgi?id=607348
2010-01-19 22:29:40 +01:00
Johannes H. Jensen
ad43baa0f8 Internationalization support.
Norwegian bokmål translation.
Still some problems with Glade and translating GtkActions.
2010-01-19 00:59:34 +01:00
Johannes H. Jensen
bdc235290a Blink icon and show a bold label on triggered alarms. 2010-01-15 11:03:22 +01:00
Johannes H. Jensen
ede9858040 Add quit action.
Fix some issues with list window toggling.
2010-01-12 23:51:28 +01:00
Johannes H. Jensen
a9b0c30412 Add accelerator (Escape) to list window to close it.
Toggling of the list window is now handled by a GtkAction.
2010-01-12 15:15:19 +01:00
Johannes H. Jensen
1bb6e7a153 Use 'Alert' instead of 'Notification' 2010-01-12 14:11:20 +01:00
Johannes H. Jensen
5c13f644a6 Use 2 digits in time spin buttons 2010-01-12 11:31:17 +01:00
Johannes H. Jensen
6ef718b564 Forgot to add alarm-actions
Do not prompt for deleting an alarm
2010-01-12 00:18:48 +01:00
Johannes H. Jensen
8edd7e3ab0 Disable snooze mins selection for alarm clocks. 2010-01-11 23:34:11 +01:00
Johannes H. Jensen
e291979d96 Action based toolbar and menus! 2010-01-11 20:26:46 +01:00
Johannes H. Jensen
a61fa4db9c Add global snooze (LP: blueprint global-snooze) 2010-01-09 15:21:59 +01:00
Johannes H. Jensen
6cd134c5a5 Sort alarms by remaining time.
Properly retain selection when reordering is caused by click in the cell.
2010-01-05 14:38:18 +01:00
Johannes H. Jensen
a87f944282 Improve list view column alignment and sizing. 2010-01-03 16:19:50 +01:00
Johannes H. Jensen
b019b9aa81 Avoid signal loops in alarm-settings
Update toolbar consistently in alarm-list-window
Use underscores in gconf keys
2010-01-02 23:46:13 +01:00
Johannes H. Jensen
faabf0eedc Properly seek player to start when looping (LP: #502230) 2010-01-02 20:35:52 +01:00
Johannes H. Jensen
57bd7dbe1c Added 'triggered' property and 'cleared' signal to Alarm to determine whether
the user has cleared the Alarm.

Lots of other improvements to the UI.
2010-01-02 05:52:31 +01:00
Johannes H. Jensen
3b5bbcdc60 Much improved Alarm List Window!
Still needs some work though...
2010-01-02 00:40:21 +01:00
Johannes H. Jensen
0c87e5b235 Remove deprecated libgnomeui dependency (LP: #501073)
Patch by Chow Loong Jin <hyperair@ubuntu.com>
2009-12-29 17:23:44 +01:00
Johannes H. Jensen
73cd949996 Remove deprecated gnome-vfs dependency and use gio instead (LP: #501069)
Patch by Chow Loong Jin <hyperair@ubuntu.com>
2009-12-29 17:18:14 +01:00
Johannes H. Jensen
425aa03c38 Bump copyright to 2010 2009-12-28 18:30:35 +01:00
Johannes H. Jensen
669c66eb7f Use - in property names instead of _
Fix a bug because of two missing NULL's in g_object_set
2009-12-27 22:09:06 +01:00
Johannes H. Jensen
bfd7268fe2 Update countdown for active alarms in alarm list (LP: #500600)
Patch by Chow Loong Jin <hyperair@ubuntu.com>
2009-12-27 17:06:29 +01:00
Johannes H. Jensen
01725b93ff Updated autoconf and automake files for better control. 2009-12-24 14:49:32 +01:00
Johannes H. Jensen
132e3e1eaf Set custom toggle button content in Glade 2009-11-28 15:35:29 +05:30
Johannes H. Jensen
9ffab6b03f Working UI 2009-11-28 15:19:18 +05:30
Johannes H. Jensen
4ab0c9e8e2 Working applet using GtkStatusIcon and GtkBuilder!
Still needs a lot of improvements.
2009-11-26 03:43:42 +05:30
Johannes H. Jensen
87ca2987e2 Remove config.h as it's not needed anymore. 2009-07-08 14:20:58 +01:00
Johannes H. Jensen
cd6d4c80e1 Cleaned up in Makefile.am and configure.ac 2009-06-14 00:19:56 +02:00
Johannes H. Jensen
9f88a2fe08 Improve schema installation. 2009-06-13 18:22:12 +02:00
Johannes H. Jensen
a55f2a2ed0 Moved dir config from configure.ac to src/Makefile.am
Updated email in AUTHORS
2009-06-13 18:00:09 +02:00
Johannes H. Jensen
327b409db0 Properly substitute variables in configure.ac. 2009-06-12 11:18:59 +02:00
Johannes H. Jensen
54b406024e Change package name to 'alarm-clock-applet' to avoid name conflicts.
Update to reflect the new location of gnome-default-applications.xml.
Bump to version 0.2.6.
2009-06-12 10:42:53 +02:00
Johannes H. Jensen
e889812405 Use libexecdir instead of bindir. 2009-05-30 20:18:42 +02:00
Johannes H. Jensen
95778fc0ac 0.2.5 release. 2009-04-19 18:28:12 +02:00
Johannes H. Jensen
1389d6a506 Fix tests so that they succeed on intrepid.
Remove non-GTest sources from TEST_PROGS.
Fix bug LP:#330092.
2009-02-22 22:41:10 +01:00
Johannes H. Jensen
b2fb6ec7e0 Stop playing preview sound when changing notification to "Start application".
Patch by Arnaud Soyez <weboide@codealpha.net>.
Fix bug LP:#332756.
2009-02-22 21:58:26 +01:00
Johannes H. Jensen
5be98106d5 Remove "ghost" object from alarm-clock.svg icon. 2008-10-04 22:36:00 +02:00
Johannes H. Jensen
ff5326df22 Set page_size to 0 in edit-alarm dialog. (Workaround for GNOME bug #307963) 2008-08-29 00:49:06 +02:00
Johannes H. Jensen
1cba177277 0.2.4 release. 2008-08-28 00:51:49 +02:00
Johannes H. Jensen
fe74f4b470 Store alarms in a global GConf directory: /apps/alarm-clock (LP: #261877) 2008-08-27 17:19:03 +02:00
Johannes H. Jensen
ba8b925263 Remove old checkbox code. 2008-08-27 16:05:37 +02:00
Johannes H. Jensen
18d6a2f889 0.2.3 bugfix release. 2008-06-25 18:21:22 +02:00
Johannes H. Jensen
51515f9d51 When an alarm is added, connect alarm_triggered so notifications are displayed (LP: #240728)
Remove timer and stop player on alarm dispose.
2008-06-19 01:19:59 +02:00
Johannes H. Jensen
f4467d6fcb 0.2.2 bugfix release. 2008-05-12 14:33:42 +02:00
Johannes H. Jensen
e894d16dcd Put tests in check_PROGRAMS to prevent compilation when invoking 'make all' (LP: #229443) 2008-05-12 14:06:50 +02:00
Johannes H. Jensen
06e42b795a Removed tests from 'make all'. They can still be run inside src/tests. (LP: #229443) 2008-05-12 13:52:33 +02:00
Johannes H. Jensen
7853beed51 Removed tests from 'make all'. They can still be run inside src/tests 2008-05-12 13:40:42 +02:00
Johannes H. Jensen
3fed8fef09 Fixed a compilation bug. 2008-05-07 15:21:34 +02:00
Johannes H. Jensen
285e11f525 0.2.1 release. 2008-05-07 00:26:07 +02:00
Johannes H. Jensen
61c1e9cc18 Added copyright information to all test programs. 2008-05-07 00:12:09 +02:00
Johannes H. Jensen
e1269f3523 Automatically stop the alarm sound player after 20 minutes. 2008-05-06 22:59:45 +02:00
Johannes H. Jensen
ea5cc8f7b7 Set nofification bubble to never expire. 2008-05-06 22:36:05 +02:00
Johannes H. Jensen
743756fdae Fixed some issues 'make distclean'. 2008-05-05 23:31:20 +02:00
Johannes H. Jensen
d4741b78ac Set default snooze time to 9 minutes. 2008-05-02 00:12:51 +02:00
Johannes H. Jensen
27c0fc602c Fixed title of preferences to confirm to the new name: Alarm Clock. 2008-05-01 19:26:13 +02:00
Johannes H. Jensen
69709fb8f5 Edit alarm dialog no longer resizable. 2008-05-01 19:10:39 +02:00
Johannes H. Jensen
a4c36e0ece Added copyright information at the top of each source file. 2008-05-01 17:39:45 +02:00
111 changed files with 16947 additions and 3288 deletions

View File

@@ -1,2 +1,7 @@
Johannes H. Jensen <joh@deworks.net>
Johannes H. Jensen <joh@pseudoberries.com>
Contributors:
Arnaud Soyez <weboide@codealpha.net>
Chow Loong Jin <hyperair@ubuntu.com>
Artwork by Lasse Gullvåg Sætre <lassegs@gmail.com>

339
COPYING Normal file
View File

@@ -0,0 +1,339 @@
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.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
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.
<signature of Ty Coon>, 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.

View File

@@ -0,0 +1 @@
This file is automatically updated by dist-hook

2
INSTALL Normal file
View File

@@ -0,0 +1,2 @@
Please see the README file for installation instructions.

View File

@@ -1,7 +1,25 @@
include $(top_srcdir)/Makefile.decl
SUBDIRS = src
DIST_SUBDIRS = src \
src/tests
SUBDIRS = src data po
EXTRA_DIST += autogen.sh
EXTRA_DIST += \
autogen.sh \
intltool-extract.in \
intltool-merge.in \
intltool-update.in
DISTCLEANFILES = \
intltool-extract \
intltool-merge \
intltool-update
dist-hook: gen-ChangeLog
.PHONY: gen-ChangeLog
gen-ChangeLog:
if test -d .bzr; then \
bzr log > $(distdir)/cl-t; \
rm -f $(distdir)/ChangeLog; \
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
fi

45
NEWS
View File

@@ -0,0 +1,45 @@
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 <mail@tsekhan.com>
da, courtesy of nanker
de, courtesy of theunexpecteds
es, courtesy of Gonzalo Testa <gonzalogtesta@gmail.com>
fo, courtesy of Gunleif Joensen
fr, courtesy of Pierre Slamich <pierre.slamich@gmail.com>
he, courtesy of Yaron <sh.yaron@gmail.com>
hi, courtesy of manishmahabir <manishmahabir@yahoo.com>
hu, courtesy of Gergely Szarka <szarka.honved@gmail.com>
ja, courtesy of Yuki Kodama
ms, courtesy of Ibrahim Elias <imen802003@netscape.net>
nb, courtesy of Johannes H. Jensen <joh@pseudoberries.com>
nn, courtesy of Håkon Sandsmark
pl, courtesy of Stanisław Gackowski <launchpad@soeb.eu>
pt, courtesy of Renato Martins
pt_BR, courtesy of Gilfran Ribeiro <contato@gilfran.net>
ru, courtesy of Oleg Koptev <koptev.oleg@gmail.com>
zh_CN, courtesy of lhquark <lhquark@yahoo.com.cn>

34
README
View File

@@ -1,28 +1,22 @@
Alarm Clock
=================
This package contains an applet for use with the GNOME panel. Therefore, it
requires gnome-core to be installed.
This package contains a program for use with the GNOME panel.
Requirements
------------
You need at least:
gnome-panel-2.13.4
glib-2.13.0
gtk-2.11.0
gnome-vfs-2.15.4
gconf-2.8.0
libglade-2.4.0
glib-2.16.0
gtk-2.12.0
gconf-2.0
gio-2.0
gnome-icon-theme
gstreamer-0.10.2
libgnome-2.8.0
libgnomeui-2.8.0
gnome-icon-theme-2.15.91
Some extras that improve functionality:
libnotify-0.3.2
libnotify-0.4.1
libxml-2.0
unique-1.0
Installation
------------
@@ -35,14 +29,6 @@ cd alarm-clock-<VERSION>
Compile with the usual:
./configure --prefix=/usr
./configure
make
make install
Note: It's important that you install into /usr so the BONOBO .server file is
placed under a directory which gnome-panel can recognize.
If you would like to install to another prefix, you need to move
AlarmClock.server to the bonobo server directory afterwards (usually
/usr/lib/bonobo/servers).

View File

@@ -4,21 +4,24 @@
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
PKG_NAME="Alarm Clock"
PKG_NAME="alarm-clock-applet"
(test -f $srcdir/configure.ac \
&& test -f $srcdir/src/alarm-applet.c) || {
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
echo " top-level alarm-clock directory"
echo " top-level $PKG_NAME directory"
exit 1
}
which gnome-autogen.sh || {
echo "You need to install gnome-common from the GNOME CVS"
echo "You need to install gnome-common"
exit 1
}
REQUIRED_AUTOMAKE_VERSION=1.8 \
USE_GNOME2_MACROS=1 \
USE_COMMON_DOC_BUILD=yes \
REQUIRED_AUTOMAKE_VERSION=1.9
REQUIRED_INTLTOOL_VERSION=0.40.0
#USE_GNOME2_MACROS=1 \
#USE_COMMON_DOC_BUILD=yes \
. gnome-autogen.sh

View File

@@ -1,49 +0,0 @@
/* config.h.in. Generated from configure.ac by autoheader. */
/* datadir */
#undef DATADIR
/* Glade Resources Directory */
#undef GNOME_GLADEDIR
/* Gnome Icon Directory */
#undef GNOME_ICONDIR
/* Gnome Pixmaps Directory */
#undef GNOME_PIXMAPSDIR
/* Gnome Sounds Directory */
#undef GNOME_SOUNDSDIR
/* libnotify available */
#undef HAVE_LIBNOTIFY
/* libdir */
#undef LIBDIR
/* Name of package */
#undef PACKAGE
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* install prefix */
#undef PREFIX
/* sysconfdir */
#undef SYSCONFDIR
/* Version number of package */
#undef VERSION

View File

@@ -1,165 +1,121 @@
dnl ***************************************************************************
dnl *** configure.ac for ALARM-CLOCK ***
dnl ***************************************************************************
# ***************************************************************************
# *** configure.ac for ALARM-CLOCK ***
# ***************************************************************************
AC_INIT([Alarm Clock], [0.2],
[Johannes H. Jensen <joh@deworks.net>],
[alarm-clock])
m4_define([alarm_clock_major_version], [0])
m4_define([alarm_clock_minor_version], [3])
m4_define([alarm_clock_micro_version], [0])
AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE
AC_CONFIG_MACRO_DIR(m4)
m4_define([alarm_clock_version],
[alarm_clock_major_version.alarm_clock_minor_version.alarm_clock_micro_version])
AM_MAINTAINER_MODE
AC_INIT([alarm-clock], [alarm_clock_version],
[Johannes H. Jensen <joh@pseudoberries.com>],
[alarm-clock-applet])
dnl ***************************************************************************
dnl *** Minimum library versions for ALARM-CLOCK ***
dnl ***************************************************************************
AC_CONFIG_SRCDIR([src])
AC_CONFIG_HEADERS([config.h])
GLIB_REQUIRED=2.13.0
GTK_REQUIRED=2.11.0
GNOME_VFS_REQUIRED=2.15.4
GCONF_REQUIRED=2.8.0
LIBGLADE_REQUIRED=2.4.0
GST_REQUIRED=0.10.2
LIBGNOME_REQUIRED=2.8.0
LIBGNOMEUI_REQUIRED=2.8.0
LIBPANEL_REQUIRED=2.13.4
GNOME_ICON_THEME_REQUIRED=2.15.91
LIBNOTIFY_REQUIRED=0.3.2
AM_INIT_AUTOMAKE([foreign 1.11 -Wall silent-rules])
AM_MAINTAINER_MODE([enable])
AM_SILENT_RULES([yes])
dnl LIBXML_REQUIRED=2.5.0
dnl ***************************************************************************
# Substitute variables
ALARM_CLOCK_MAJOR_VERSION=alarm_clock_major_version
ALARM_CLOCK_MINOR_VERSION=alarm_clock_minor_version
ALARM_CLOCK_MICRO_VERSION=alarm_clock_micro_version
AC_SUBST(ALARM_CLOCK_MAJOR_VERSION)
AC_SUBST(ALARM_CLOCK_MINOR_VERSION)
AC_SUBST(ALARM_CLOCK_MICRO_VERSION)
PKG_PROG_PKG_CONFIG
AC_PROG_CC
AC_PROG_INSTALL
dnl IT_PROG_INTLTOOL([0.35.0])
PKG_PROG_PKG_CONFIG([0.19])
# *****
# GNOME
# *****
GNOME_COMPILE_WARNINGS
GNOME_COMMON_INIT
GNOME_DEBUG_CHECK
GNOME_COMPILE_WARNINGS([maximum])
GNOME_MAINTAINER_MODE_DEFINES
dnl ***************************************************************************
dnl *** Use pkg-config to check for dependencies ***
dnl ***************************************************************************
dnl -- check for glib/gobject (required) --------------------------------------
PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED)
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
# ***************************
# Check for required packages
# ***************************
dnl -- Check for GTK+ 2.0 (required) ------------------------------------------
PKG_CHECK_MODULES(GTK, gtk+-2.0 >= $GTK_REQUIRED)
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
GLIB_REQUIRED=2.16.0
GTK_REQUIRED=2.12.0
dnl -- check for gnome-vfs (required) -----------------------------------------
PKG_CHECK_MODULES(GNOME_VFS, [gnome-vfs-2.0 >= $GNOME_VFS_REQUIRED])
AC_SUBST(GNOME_VFS_CFLAGS)
AC_SUBST(GNOME_VFS_LIBS)
PKG_CHECK_MODULES(BASE, [glib-2.0 >= $GLIB_REQUIRED gmodule-2.0])
PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= $GTK_REQUIRED])
PKG_CHECK_MODULES(GSTREAMER, [gstreamer-0.10])
PKG_CHECK_MODULES(GNOME,
[gconf-2.0
gio-2.0
gnome-icon-theme
libnotify >= 0.4.1
libxml-2.0
unique-1.0])
dnl -- check for gconf (required) -----------------------------------------
PKG_CHECK_MODULES(GCONF, [gconf-2.0 >= $GCONF_REQUIRED])
AC_SUBST(GCONF_CFLAGS)
AC_SUBST(GCONF_LIBS)
dnl -- check for libglade (required) ------------------------------------------
PKG_CHECK_MODULES(LIBGLADE, libglade-2.0 >= $LIBGLADE_REQUIRED)
AC_SUBST(LIBGLADE_CFLAGS)
AC_SUBST(LIBGLADE_LIBS)
dnl -- check for gstreamer (required) ------------------------------------------
PKG_CHECK_MODULES(GST, gstreamer-0.10 >= $GST_REQUIRED)
AC_SUBST(GST_CFLAGS)
AC_SUBST(GST_LIBS)
dnl -- check for libpanelapplet (required) ------------------------------------
PKG_CHECK_MODULES(GNOME_APPLETS, libpanelapplet-2.0 >= $LIBPANEL_REQUIRED)
AC_SUBST(GNOME_APPLETS_CFLAGS)
AC_SUBST(GNOME_APPLETS_LIBS)
dnl -- Check for gnome-icon-theme (required) ----------------------------------
PKG_CHECK_MODULES(GIT, gnome-icon-theme >= $GNOME_ICON_THEME_REQUIRED)
dnl -- check for libgnome (required) ------------------------------------------
PKG_CHECK_MODULES(GNOME_LIBS2, libgnome-2.0 >= $LIBGNOME_REQUIRED libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED)
AC_SUBST(GNOME_LIBS2_CFLAGS)
AC_SUBST(GNOME_LIBS2_LIBS)
dnl -- check for libnotify (optional) -----------------------------------------
LIBNOTIFY_CFLAGS=
LIBNOTIFY_LIBS=
PKG_CHECK_MODULES(LIBNOTIFY, libnotify >= $LIBNOTIFY_REQUIRED,
HAVE_LIBNOTIFY="yes", HAVE_LIBNOTIFY="no")
if test "x$HAVE_LIBNOTIFY" = "xyes"; then
AC_DEFINE(HAVE_LIBNOTIFY, 1, [libnotify available])
fi
AC_SUBST(LIBNOTIFY_CFLAGS)
AC_SUBST(LIBNOTIFY_LIBS)
dnl ***************************************************************************
dnl *** find paths to installed binaries ***
dnl ***************************************************************************
dnl -- gconftool-2 ------------------------------------------------------------
# Check for gconftool
AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
if test x"$GCONFTOOL" = xno; then
AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf])
AC_MSG_ERROR([gconftool-2 executable not found in your path - is gconf installed?])
fi
dnl ***************************************************************************
dnl *** GConf ***
dnl ***************************************************************************
AM_GCONF_SOURCE_2
dnl ***************************************************************************
dnl *** Honour aclocal flags ***
dnl ***************************************************************************
ACLOCAL_AMFLAGS="\${ACLOCAL_FLAGS}"
AC_SUBST(ACLOCAL_AMFLAGS)
# ********************
# Internationalisation
# ********************
dnl ***************************************************************************
dnl *** Set install directories ***
dnl ***************************************************************************
iconsdir="${datadir}/icons"
AC_SUBST(iconsdir)
pixmapsdir="${datadir}/pixmaps"
AC_SUBST(pixmapsdir)
pkgdatadir="${datadir}/alarm-clock"
AC_SUBST(pkgdatadir)
gladedir="${pkgdatadir}/glade"
AC_SUBST(gladedir)
soundsdir="${datadir}/sounds"
AC_SUBST(soundsdir)
IT_PROG_INTLTOOL([0.40.0])
AC_DEFINE_DIR(GNOME_ICONDIR, "${iconsdir}", [Gnome Icon Directory])
AC_DEFINE_DIR(GNOME_PIXMAPSDIR, "${pixmapsdir}", [Gnome Pixmaps Directory])
AC_DEFINE_DIR(GNOME_GLADEDIR, "${gladedir}", [Glade Resources Directory])
AC_DEFINE_DIR(GNOME_SOUNDSDIR, "${soundsdir}", [Gnome Sounds Directory])
AC_DEFINE_DIR(DATADIR, "${datadir}", [datadir])
AC_DEFINE_DIR(SYSCONFDIR, "${sysconfdir}", [sysconfdir])
AC_DEFINE_DIR(LIBDIR, "${libdir}", [libdir])
AC_DEFINE_DIR(PREFIX, "${prefix}", [install prefix])
GETTEXT_PACKAGE=alarm-clock-applet
AC_SUBST([GETTEXT_PACKAGE])
#ALL_LINGUAS=""
AM_GLIB_GNU_GETTEXT
AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"], [gettext domain])
#localedir='$(datadir)/locale'
# *******************
# Run in source tree?
# *******************
AC_ARG_ENABLE(run-in-source-tree,
AC_HELP_STRING([--disable-run-in-source-tree],
[disable search for UI files and plugins in local directory]),,
enable_run_in_source_tree=yes)
if test x$enable_run_in_source_tree = xyes; then
AC_DEFINE(ALARM_CLOCK_RUN_IN_SOURCE_TREE, 1, [enable search for UI files and plugins in local directory])
fi
# ****************************
AC_CONFIG_FILES([Makefile
src/Makefile
src/tests/Makefile])
src/tests/Makefile
data/Makefile
data/icons/Makefile
po/Makefile.in])
AC_OUTPUT
dnl ***************************************************************************
dnl *** Show summary ***
dnl ***************************************************************************
# ****************************
echo
echo "*************************************************"
echo
echo "Configure summary:"
echo " Notifications (libnotify): $HAVE_LIBNOTIFY"
echo
echo "*************************************************"
echo
echo "
*************************************************
$PACKAGE_NAME $VERSION
Configure summary:
prefix: ${prefix}
source code location: ${srcdir}
*************************************************
"

35
data/Makefile.am Normal file
View File

@@ -0,0 +1,35 @@
include $(top_srcdir)/Makefile.decl
SUBDIRS = icons
uidir = $(pkgdatadir)
ui_DATA = alarm-clock.ui
desktopdir = $(datadir)/applications
desktop_in_files = alarm-clock-applet.desktop.in
desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
@INTLTOOL_DESKTOP_RULE@
schemasdir = $(GCONF_SCHEMA_FILE_DIR)
schemas_in_files = alarm-clock.schemas.in
schemas_DATA = $(schemas_in_files:.schemas.in=.schemas)
@INTLTOOL_SCHEMAS_RULE@
if GCONF_SCHEMAS_INSTALL
install-data-local:
GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) \
$(GCONFTOOL) --makefile-install-rule $(schemas_DATA)
uninstall-local:
GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) \
$(GCONFTOOL) --makefile-uninstall-rule $(schemas_DATA)
endif
EXTRA_DIST += $(ui_DATA) $(desktop_in_files) $(schemas_in_files)
CLEANFILES = $(desktop_DATA) $(schemas_DATA)

View File

@@ -0,0 +1,9 @@
[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

154
data/alarm-clock.schemas.in Normal file
View File

@@ -0,0 +1,154 @@
<?xml version="1.0"?>
<gconfschemafile>
<schemalist>
<!--
Global preferences:
-->
<!--
Alarm specific:
-->
<schema>
<key>/schemas/apps/alarm-clock/alarm/type</key>
<owner>alarm-clock</owner>
<type>string</type>
<default>clock</default>
<locale name="C">
<short>Alarm Type</short>
<long>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.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm-clock/alarm/timestamp</key>
<owner>alarm-clock</owner>
<type>int</type>
<default>0</default>
<locale name="C">
<short>Alarm Timestamp</short>
<long>The UNIX timestamp for the alarm. Must be set before the
alarm is activated.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm-clock/alarm/time</key>
<owner>alarm-clock</owner>
<type>int</type>
<default>0</default>
<locale name="C">
<short>Alarm Time</short>
<long>The time for the alarm. Should be in GMT for "clock"
alarms or length in seconds for "timer" alarms.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm-clock/alarm/message</key>
<owner>alarm-clock</owner>
<type>string</type>
<locale name="C">
<default>Alarm!</default>
<short>Alarm Message</short>
<long>A short message which describes the alarm.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm-clock/alarm/active</key>
<owner>alarm-clock</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Alarm Running State</short>
<long>Indicates whether the alarm has started.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm-clock/alarm/repeat</key>
<owner>alarm-clock</owner>
<type>list</type>
<list_type>string</list_type>
<default>[]</default>
<locale name="C">
<short>Alarm Repeat</short>
<long>A list of days when the alarm should be repeated.
This settings is only applicable for "clock" alarms.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm-clock/alarm/notify_type</key>
<owner>alarm-clock</owner>
<type>string</type>
<default>sound</default>
<locale name="C">
<short>Notification Type</short>
<long>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.)
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm-clock/alarm/sound_file</key>
<owner>alarm-clock</owner>
<type>string</type>
<default></default>
<locale name="C">
<short>Sound File</short>
<long>The sound file to play for the "sound" notification type.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm-clock/alarm/sound_repeat</key>
<owner>alarm-clock</owner>
<type>bool</type>
<default>true</default>
<locale name="C">
<short>Repeat Sound</short>
<long>Whether to repeat the alarm sound.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm-clock/alarm/command</key>
<owner>alarm-clock</owner>
<type>string</type>
<default>rhythmbox-client --play</default>
<locale name="C">
<short>Command</short>
<long>The command to run for the "command" notification type.</long>
</locale>
</schema>
<!--
<schema>
<key>/schemas/apps/alarm-clock/prefs/</key>
<owner>alarm-clock</owner>
<type></type>
<default></default>
<locale name="C">
<short></short>
<long></long>
</locale>
</schema>
-->
</schemalist>
</gconfschemafile>

1326
data/alarm-clock.ui Normal file

File diff suppressed because it is too large Load Diff

72
data/icons/Makefile.am Normal file
View File

@@ -0,0 +1,72 @@
include $(top_srcdir)/Makefile.decl
iconsdir = $(datadir)/icons
icons = \
alarm-clock.svg \
alarm-clock.16.png \
alarm-clock.22.png \
alarm-clock.24.png \
alarm-clock.32.png \
alarm-clock.36.png \
alarm-clock.48.png \
alarm-clock.64.png \
alarm-timer.svg \
alarm-timer.16.png \
alarm-timer.22.png \
alarm-timer.24.png \
alarm-timer.32.png \
alarm-timer.36.png \
alarm-timer.48.png \
alarm-timer.64.png \
alarm-snooze.16.png \
alarm-snooze.22.png \
alarm-snooze.24.png \
alarm-snooze.32.png \
alarm-snooze.36.png \
alarm-snooze.48.png \
alarm-snooze.64.png
EXTRA_DIST += $(icons)
gtk_update_icon_cache = gtk-update-icon-cache -f -t $(iconsdir)/hicolor
update-icon-cache:
@-if test -z "$(DESTDIR)"; then \
echo "Updating Gtk icon cache."; \
$(gtk_update_icon_cache); \
else \
echo "*** Icon cache not updated. After (un)install, run this:"; \
echo "*** $(gtk_update_icon_cache)"; \
fi
install-icons:
for icon in $(icons); do \
SIZE=`basename $$icon | cut -d. -f2`; \
FILE=`basename $$icon | cut -d. -f1,3`; \
if [ "$$SIZE" = "svg" ]; then \
SIZE="scalable"; \
FILE="$$FILE.svg"; \
else \
SIZE="$${SIZE}x$${SIZE}"; \
fi; \
mkdir -p $(DESTDIR)$(iconsdir)/hicolor/$$SIZE/apps/; \
$(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(iconsdir)/hicolor/$$SIZE/apps/$$FILE; \
done
uninstall-icons:
for icon in $(icons); do \
SIZE=`basename $$icon | cut -d. -f2`; \
FILE=`basename $$icon | cut -d. -f1,3`; \
if [ "$$SIZE" = "svg" ]; then \
SIZE="scalable"; \
FILE="$$FILE.svg"; \
else \
SIZE="$${SIZE}x$${SIZE}"; \
fi; \
rm -f $(DESTDIR)$(iconsdir)/hicolor/$$SIZE/apps/$$FILE; \
done
install-data-local: install-icons update-icon-cache
uninstall-local: uninstall-icons update-icon-cache

Binary file not shown.

After

Width:  |  Height:  |  Size: 904 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@@ -1,9 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:ns="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
@@ -14,16 +13,23 @@
height="22"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.45.1"
inkscape:version="0.46"
version="1.0"
inkscape:export-filename="/home/joh/workspace/alarm-applet/src/icons/alarm-clock.64.png"
inkscape:export-xdpi="261.82001"
inkscape:export-ydpi="261.82001"
sodipodi:docname="alarm22x22.svg"
sodipodi:docname="alarm-clock.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
sodipodi:docbase="/home/joh/Pictures">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 11 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="22 : 11 : 1"
inkscape:persp3d-origin="11 : 7.3333333 : 1"
id="perspective35" />
<linearGradient
id="linearGradient14243">
<stop
@@ -98,10 +104,11 @@
height="24px"
inkscape:snap-bbox="true"
inkscape:snap-guide="true"
inkscape:window-width="1680"
inkscape:window-height="1022"
inkscape:window-x="1680"
inkscape:window-y="28">
inkscape:window-width="1024"
inkscape:window-height="698"
inkscape:window-x="0"
inkscape:window-y="47"
showgrid="false">
<inkscape:grid
type="xygrid"
id="grid2293" />
@@ -109,12 +116,12 @@
<metadata
id="metadata7">
<rdf:RDF>
<ns:Work
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</ns:Work>
</cc:Work>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
@@ -170,11 +177,6 @@
inkscape:export-filename="/home/lasse/Bilder/alarm-applet/path14231.png"
inkscape:export-xdpi="98.18"
inkscape:export-ydpi="98.18" />
<path
style="opacity:0.26530612;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 21.051798,0.6490485 C 22.051798,0.6490485 22.047682,0.4239611 22.797682,1.1739611 C 23.547682,1.9239611 23.499371,1.9750874 23.499371,2.9750874 C 23.499371,3.9750874 23.129138,4.5 23.129138,4.5 C 23.129138,4.5 22.584944,3.7361359 22.084944,2.9861359 C 21.584944,2.2361359 21.084944,1.9861359 21.084944,1.9861359 L 19.814148,0.9529903 C 19.814148,0.9529903 20.051798,0.6490485 21.051798,0.6490485 z"
id="path14223"
sodipodi:nodetypes="czzczccz" />
<path
style="fill:#ea8686;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 2.4545455,2.5656566 C 3.7272727,1.2929293 5,2.5656566 5,2.5656566 C 3.9857955,2.8937816 2.8636363,4.0656566 2.4545455,5.1111111 C 2.4545455,5.1111111 1.1818182,3.8383838 2.4545455,2.5656566 z"

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

Before

Width:  |  Height:  |  Size: 669 B

After

Width:  |  Height:  |  Size: 669 B

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

Before

Width:  |  Height:  |  Size: 711 B

After

Width:  |  Height:  |  Size: 711 B

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

14
data/icons/render-icon.sh Executable file
View File

@@ -0,0 +1,14 @@
#!/bin/bash
if [ -z "$1" ]; then
echo "Usage: $0 <source.svg>"
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

21
po/LINGUAS Normal file
View File

@@ -0,0 +1,21 @@
# keep this file sorted alphabetically, one language code per line
ar
be
da
de
es
fo
fr
he
hi
hu
id
ja
ms
nb
nn
pl
pt_BR
pt
ru
zh_CN

7
po/POTFILES.in Normal file
View File

@@ -0,0 +1,7 @@
data/alarm-clock-applet.desktop.in
data/alarm-clock.schemas.in
[type: gettext/glade]data/alarm-clock.ui
src/alarm-applet.c
src/alarm-settings.c
src/alarm.c
src/ui.c

8
po/POTFILES.skip Normal file
View File

@@ -0,0 +1,8 @@
data/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

469
po/alarm-clock-applet.pot Normal file
View File

@@ -0,0 +1,469 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-03-16 23:03+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr ""
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:1
msgid ""
"A list of days when the alarm should be repeated. This settings is only "
"applicable for \"clock\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:15
msgid ""
"The UNIX timestamp for the alarm. Must be set before the alarm is activated."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:18
msgid ""
"The time for the alarm. Should be in GMT for \"clock\" alarms or length in "
"seconds for \"timer\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:19
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 ""
#: ../data/alarm-clock.schemas.in.h:20
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 ""
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr ""
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr ""
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr ""
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr ""
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr ""
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr ""
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr ""
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr ""
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr ""
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr ""
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr ""
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr ""
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr ""
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr ""
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr ""
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr ""
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr ""
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr ""
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr ""
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr ""
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr ""
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr ""
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr ""
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr ""
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr ""
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr ""
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr ""
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr ""
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr ""
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr ""
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr ""
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr ""
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr ""
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr ""
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr ""
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr ""
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr ""
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr ""
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr ""
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr ""
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr ""
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr ""
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr ""
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr ""
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr ""
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr ""
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr ""
#: ../src/alarm-applet.c:672
#, c-format
msgid "%s is already running, exiting...\n"
msgstr ""
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr ""
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr ""
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr ""
#: ../src/alarm.c:2029
msgid "Once"
msgstr ""
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr ""
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr ""
#: ../src/alarm.c:2038
msgid "Every day"
msgstr ""
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr ""
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr ""
#: ../src/ui.c:371
msgid "Could not play"
msgstr ""
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr ""

470
po/ar.po Normal file
View File

@@ -0,0 +1,470 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-03-07 13:05+0000\n"
"Last-Translator: Propeng <Unknown>\n"
"Language-Team: Arabic <ar@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr "منبّه"
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:1
msgid ""
"A list of days when the alarm should be repeated. This settings is only "
"applicable for \"clock\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:15
msgid ""
"The UNIX timestamp for the alarm. Must be set before the alarm is activated."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:18
msgid ""
"The time for the alarm. Should be in GMT for \"clock\" alarms or length in "
"seconds for \"timer\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:19
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 ""
#: ../data/alarm-clock.schemas.in.h:20
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 ""
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr ""
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr ""
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr ""
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr ""
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr ""
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr ""
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr ""
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr ""
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr ""
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr ""
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr ""
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr ""
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr ""
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr ""
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr ""
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr ""
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr ""
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr ""
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr ""
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr ""
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr ""
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr ""
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr ""
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr ""
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr ""
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr ""
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr ""
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr ""
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr ""
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr ""
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr ""
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr ""
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr ""
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr ""
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr ""
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr ""
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr ""
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr ""
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr ""
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr ""
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr ""
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr ""
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr ""
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr ""
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr ""
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr ""
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr ""
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr ""
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr ""
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr ""
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr ""
#: ../src/alarm.c:2029
msgid "Once"
msgstr ""
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr ""
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr ""
#: ../src/alarm.c:2038
msgid "Every day"
msgstr ""
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr ""
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr ""
#: ../src/ui.c:371
msgid "Could not play"
msgstr ""
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr ""

476
po/be.po Normal file
View File

@@ -0,0 +1,476 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-03-07 19:52+0000\n"
"Last-Translator: Mikola Tsekhan <mail@tsekhan.com>\n"
"Language-Team: Belarusian <be@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr "Будзільнік"
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr "Абудзіць мяне ранкам"
#: ../data/alarm-clock.schemas.in.h:1
msgid ""
"A list of days when the alarm should be repeated. This settings is only "
"applicable for \"clock\" alarms."
msgstr ""
"Сьпіс дзен, калі трэба паўтараць нагадваньне. Налады ўжывальныя толькі для "
"«пагадзінных» нагадваньняў."
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr "Кароткае паведамленьне, якое апісвае будзільнік."
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr "Паведамленьне будзільніка"
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr "Паўтор сыгналу"
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr "Прастора запуска будзільніка"
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr "Час сыгналу"
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr "Часовая адзнака сыгналу"
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr "Тып нагадваньня"
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr "Пад'ём!"
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr "Загад"
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr "Паказвае, ці было актывізавана нагадваньне."
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr "Тып апавяшчэньня"
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr "Паўтор мелодыі"
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr "Гукавы файл"
#: ../data/alarm-clock.schemas.in.h:15
msgid ""
"The UNIX timestamp for the alarm. Must be set before the alarm is activated."
msgstr ""
"Часовая пазнака UNIX для будзільніка. Павінна быць усталявана да актывацыі "
"будзільніка."
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr "Загад для «загаднага» нагадваньня"
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr "Гукавы файл для прайграваньня ў рэжыме «мелодыя»"
#: ../data/alarm-clock.schemas.in.h:18
msgid ""
"The time for the alarm. Should be in GMT for \"clock\" alarms or length in "
"seconds for \"timer\" alarms."
msgstr ""
"Час для нагадваньня. Павінен быць у GMT для «пагадзінных» нагадваньняў ці ў "
"сэкундах для таймера."
#: ../data/alarm-clock.schemas.in.h:19
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 ""
#: ../data/alarm-clock.schemas.in.h:20
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 ""
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr "Ці паўтараць мелодыю нагадваньня."
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr "1 хвіліна"
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr "10 хвілін"
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr "3 хвіліны"
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr "5 хвілін"
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr "Пра Будзільнік"
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr "Перавагі будзільніка"
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr "Сыгналы"
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr "Апавяшчэньне"
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr "_Загад:"
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr "Іншае..."
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr "Выдаліць"
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr "Выдаліць напамін"
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr "Выдаліць вылучаны напамін"
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr "Зьмяніць напамін"
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr "Зьмяніць вылучаны напамін"
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr "Рэдагаваць…"
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr "Уключыць"
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr "Уключыць/выключыць"
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr "Уключыць/выключыць напамін"
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr "Уключыць/выключыць вылучаны напамін"
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr "Пт"
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr "Агульнае"
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr "Падыміцеся раніцай!"
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr "Кіраваць Вашымі нагадваньнямі"
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr "Пан"
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr "Новы"
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr "Новы напамін"
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr "Новае…"
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr "Граць _музыку"
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr "Выйсьці"
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr "Паўта_раць гук"
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr "Суб"
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr "Паказаць нагадваньні"
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr "Пазьней"
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr "Адкласьці нагадваньне"
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr "Адкласьці нагадваньні"
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr "Адкласьці ўсе нагадваньні"
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr "Адкласьці ўсе нагадваньні, якія зьвіняць"
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr "Адтэрміноўка для:"
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr "Адкласьці вылучаныя нагадваньні"
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr "Запусьціць _дастасаваньне"
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr "Запускаць аўтаматычна пры ўключэньні"
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr "Спыніць"
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr "Спыніць нагадваньне"
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr "Спыніць нагадваньні"
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr "Спыніць усе нагадваньні"
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr "Спыніць усе нагадваньні, якія зьвіняць"
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr "Спыніць вылучаныя нагадваньні"
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr "Няд"
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr "Чцв"
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr "Таймер"
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr "Аўт"
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr "Прачнісь, сонная галава!"
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr "Сер"
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr "_Назва:"
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr "_Перавагі"
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr "_Выйсьці"
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr "_Паўтарыць:"
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr "Ад_класьці"
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr "_Час:"
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr "хвіліны"
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr "%s адкладзена"
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr "Вы можаце спыніць нагадваньне з мэню Будзільніка."
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr ""
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr "Вы можаце спыніць загады з мэню Будзільніка"
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr "%s спынена"
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr ""
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr ""
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr "%s ужо запушчаны, выхад...\n"
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr "_Паўтор: %s"
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr "Абярыце мелодыю..."
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr "Іншы загад..."
#: ../src/alarm.c:2029
msgid "Once"
msgstr "Аднаразова"
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr "Працоўныя дні"
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr "Выходныя"
#: ../src/alarm.c:2038
msgid "Every day"
msgstr "Штодзень"
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr "Пра %s"
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr "Немагчыма прайграць «%s»: %s"
#: ../src/ui.c:371
msgid "Could not play"
msgstr "Немагчыма прайграць"
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr "Вы можаце адтэрмінаваць або спыніць нагадваньні з мэню Будзільніка"

480
po/da.po Normal file
View File

@@ -0,0 +1,480 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-03-07 13:17+0000\n"
"Last-Translator: nanker <Unknown>\n"
"Language-Team: Danish <da@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr "Vækkeur"
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr "Vågn om morgenen"
#: ../data/alarm-clock.schemas.in.h:1
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."
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr "En kort meddelelse, der beskriver alarmen."
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr "Alarmmeddelelse"
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr "Gentagelse af alarm"
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr "Alarmstatus"
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr "Alarmtid"
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr "Alarmtidsstempel"
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr "Alarmtype"
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr "Alarm!"
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr "Kommando"
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr "Angiv om alarm er startet."
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr "Varslingstype"
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr "Gentag lyd"
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr "Lydfil"
#: ../data/alarm-clock.schemas.in.h:15
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."
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr "Kommandoen som skal køres for en \"command\"-varsling."
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr "Lydfilen som skal afspilles for en \"sound\"-varsling."
#: ../data/alarm-clock.schemas.in.h:18
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."
#: ../data/alarm-clock.schemas.in.h:19
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.)"
#: ../data/alarm-clock.schemas.in.h:20
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."
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr "Om alarmlyden skal gentages."
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr "1 minut"
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr "10 minutter"
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr "3 minutter"
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr "5 minutter"
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr "Om væggeuret"
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr "Indstilling for væggeuret"
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr "Alarmer"
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr "Advarsel"
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr "Ko_mmando:"
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr "Brugerdefineret..."
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr "Slet"
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr "Slet alarm"
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr "Slet den valgte alarm"
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr "Rediger alarm"
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr "Rediger den valgte alarm"
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr "Rediger..."
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr "Aktiver"
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr "Aktiver/deaktiver"
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr "Aktiver/deaktiver alarm"
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr "Aktiver/deaktiver den valgte alarm"
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr "Fre"
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr "Generel"
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr "Stå op om morgenen!"
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr "Administrer dine alarmer"
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr "Man"
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr "Ny"
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr "Ny alarm"
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr "Ny..."
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr "Af_spil lyd"
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr "Luk væggeur"
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr "Gen_tag lyd"
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr "Lør"
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr "Vis _alarmer"
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr "Snooze"
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr "Snooze alarm"
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr "Snooze alarmer"
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr "Snooze alle alarmer"
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr "Snooze alle bippene alarmer"
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr "Snooze for:"
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr "Snooze den valgte alarm"
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr "Start _applikation"
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr "Start automatisk ved log på"
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr "Stop"
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr "Stop alarm"
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr "Stop alarmer"
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr "Stop alle alarmer"
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr "Stop alle bippende alarmer"
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr "Stop den valgte alarm"
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr "Søn"
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr "Tor"
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr "Stopur"
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr "Toggle alarmer"
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr "Toggle alarmvinduet"
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr "Toggle visning af alarmvinduet"
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr "Tir"
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr "Vågn op dit dovendyr!"
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr "Ons"
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr "_Navn:"
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr "_Præferencer"
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr "_Luk"
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr "_Gentag:"
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr "_Snooze"
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr "_Tid:"
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr "minutter"
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr "%s snoozed"
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr "Du kan stoppe alarmen fra væggeurs-menuen."
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr "Snoozed %d alarmer"
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr "Du kan stoppe alarmer fravæggeurs-menuen."
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr "%s stoppet"
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr "Gentagne alarmer vil fortsætte i henhold til planen."
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr "Stoppet %d alarm(er)"
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr "%s kører allerede, afslutter...\n"
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr "_Gentag: %s"
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr "Vælg lydfil..."
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr "Brugerdefineret kommando..."
#: ../src/alarm.c:2029
msgid "Once"
msgstr "Én gang"
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr "Ugedage"
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr "Weekender"
#: ../src/alarm.c:2038
msgid "Every day"
msgstr "Hver dag"
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr "Om %s"
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr "Kunne ikke afspille '%s': %s"
#: ../src/ui.c:371
msgid "Could not play"
msgstr "Kunne ikke afspille"
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr "Du kan snooze eller stoppe alarmer fra the væggeurs-menuen."

482
po/de.po Normal file
View File

@@ -0,0 +1,482 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-01-29 22:05+0000\n"
"Last-Translator: theunexpecteds <Unknown>\n"
"Language-Team: German <de@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr "Wecker"
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr "Morgens aufwecken"
#: ../data/alarm-clock.schemas.in.h:1
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."
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr "Eine kurze Nachricht die den Alarm beschreibt."
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr "Alarm Nachricht"
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr "Alarm Wiederholung"
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr "Status des Alarms"
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr "Alarm Zeit"
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr "Alarm Zeitstempel"
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr "Alarm Typ"
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr "Alarm!"
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr "Befehl"
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr "Zeigt ob der Alarm gestartet worden ist."
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr "Benachrichtigungstyp"
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr "Ton wiederholen"
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr "Klangdatei"
#: ../data/alarm-clock.schemas.in.h:15
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."
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr "Der auszufährende Befehl bei Benachrichtigungstyp mit Befehl."
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr "Der Ton zur Wiedergabe bei Benachrichtigungstyp mit Ton."
#: ../data/alarm-clock.schemas.in.h:18
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."
#: ../data/alarm-clock.schemas.in.h:19
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.)"
#: ../data/alarm-clock.schemas.in.h:20
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."
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr "Ob der Alarm Ton wiederholt werden soll."
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr "1 Minute"
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr "10 Minuten"
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr "3 Minuten"
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr "5 Minuten"
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr "Über Alarm Clock"
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr "Alarm Clock Einstellungen"
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr "Alarme"
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr ""
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr "Be_fehl:"
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr "Benutzerdefiniert ..."
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr "Löschen"
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr "Alarm löschen"
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr "Löscht den Ausgewählten Alarm"
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr "Alarm bearbeiten"
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr "Bearbiten des ausgewählten Alarmes"
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr "Bearbeiten ..."
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr "Einschalten"
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr "Einschalten/Ausschalten"
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr "Alarm ein- / ausschalten"
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr "ausgewählten Alarm ein- / ausschalten"
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr "Fr"
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr ""
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr "Aufstehen am Morgen!"
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr "Verwalte deine Alarme"
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr "Mo"
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr "Neu"
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr "Neuer Alarm"
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr "Neu ..."
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr "Wiedergabe _ton"
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr "schliße Alarm Clock"
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr "Wiederhole Ton"
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr "Sa"
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr "Zeige _alarme"
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr "Schlummern"
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr "Schlummere Alarm"
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr "Schlummere Alarme"
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr "Schlummere alle Alarme"
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr "Schlummere alle klingelnde Alarme"
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr "Schlummern für:"
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr "SChlummern für den ausgewählten Alarm"
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr "Starte _Anwendung"
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr ""
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr "Stop"
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr "Stoppe Alarm"
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr "Stoppe Alarme"
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr "Stoppe alle Alarme"
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr "Stoppe alle klingelnde Alarme"
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr "Stoppe den ausgewählten Alarm"
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr "So"
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr "Do"
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr ""
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr "Alarme ausschalten"
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr "Alarm Fenster ausschalten"
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr "Umstellen der Sichtbarkeit der Alarm Fenster"
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr "Di"
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr "Aufstehen, Schlafmütze!"
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr "Mi"
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr "_Name:"
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr "_Einstellungen"
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr "_Beenden"
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr ""
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr "_Schlummern"
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr "_Uhrzeit:"
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr "Minuten"
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr "%s schlummert"
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr "Du kannst den Alarm aus dem Alarm Clock Menü stoppen."
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr "Schlummert %d Alarme"
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr "Du kannst die Alarme aus dem Alarm Clock Menü stoppen."
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr "%s gestoppt"
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr "Wiederholende Alarme werden im Zeitplan fortgesetzt."
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr "%d Alarme gestoppt"
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr ""
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr ""
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr "Tondatei wählen …"
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr "benutzerdefinierter Befehl"
#: ../src/alarm.c:2029
msgid "Once"
msgstr "Einmalig"
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr "Wochentags"
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr "An Wochenenden"
#: ../src/alarm.c:2038
msgid "Every day"
msgstr "Täglich"
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr "Über %s"
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr "Konnte '%s': %s nicht wiedergeben"
#: ../src/ui.c:371
msgid "Could not play"
msgstr "Konnte nicht wiedergeben"
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr "Du kannst den Alarm aus dem Alarm Clock Menü schlummern lassen."

474
po/es.po Normal file
View File

@@ -0,0 +1,474 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-03-07 14:26+0000\n"
"Last-Translator: Gonzalo Testa <gonzalogtesta@gmail.com>\n"
"Language-Team: Spanish <es@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr "Alarm Clock"
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:1
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. Estas configuraciones "
"sólo se aplican para alarmas de «reloj»."
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr "Breve descripción de la alarma."
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr "Mensaje de la alarma"
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr "Repetición de la alarma"
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr "Estado de la alarma"
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr "Hora de alarma"
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr "Marca de tiempo de la alarma"
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr "Tipo de alarma"
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr "¡Alarma!"
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr "Orden"
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr "Indica si la alarma ha comenzado."
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr "Tipo de notificación"
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr "Repetir sonido"
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr "Archivo de sonido"
#: ../data/alarm-clock.schemas.in.h:15
msgid ""
"The UNIX timestamp for the alarm. Must be set before the alarm is activated."
msgstr ""
"Marca de tiempo para la alarma. Debe asignarse antes que la alarma sea "
"activada."
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr "Orden para ejecutar en el tipo de notificación \"orden\"."
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr "Sonido a reproducir en el tipo de notificación de \"sonido\"."
#: ../data/alarm-clock.schemas.in.h:18
msgid ""
"The time for the alarm. Should be in GMT for \"clock\" alarms or length in "
"seconds for \"timer\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:19
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 ""
#: ../data/alarm-clock.schemas.in.h:20
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 ""
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr ""
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr ""
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr ""
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr ""
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr ""
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr ""
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr ""
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr ""
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr ""
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr ""
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr ""
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr ""
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr ""
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr ""
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr ""
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr ""
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr ""
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr ""
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr ""
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr ""
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr ""
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr ""
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr ""
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr ""
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr ""
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr ""
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr ""
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr ""
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr ""
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr ""
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr ""
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr ""
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr ""
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr ""
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr ""
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr ""
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr ""
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr ""
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr ""
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr ""
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr ""
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr ""
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr ""
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr ""
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr ""
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr ""
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr ""
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr ""
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr ""
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr ""
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr ""
#: ../src/alarm.c:2029
msgid "Once"
msgstr ""
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr ""
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr ""
#: ../src/alarm.c:2038
msgid "Every day"
msgstr ""
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr ""
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr ""
#: ../src/ui.c:371
msgid "Could not play"
msgstr ""
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr ""

474
po/fo.po Normal file
View File

@@ -0,0 +1,474 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-02-10 01:06+0000\n"
"Last-Translator: Gunleif Joensen <Unknown>\n"
"Language-Team: Faroese <fo@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr "Vekjari"
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr "Vakna á morgni"
#: ../data/alarm-clock.schemas.in.h:1
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."
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr "Eini stutt boð, ið greiåir frá vekjaranum."
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr "Vekjara fráboðan"
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr "Vekjara endurtøka"
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr "Vekjara koyrslustandir"
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr "Vekjara tíðspunkt"
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr "Vekjara tíðarstempul"
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr "Vekjara slag"
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr "Vekjari!"
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr "Boð"
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr "Ábending um vekjaraklokkan er byrja."
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr "Fráboðanar snið"
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr "Endurtøku ljóð"
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr "Ljóðfíla"
#: ../data/alarm-clock.schemas.in.h:15
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."
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:18
msgid ""
"The time for the alarm. Should be in GMT for \"clock\" alarms or length in "
"seconds for \"timer\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:19
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 ""
#: ../data/alarm-clock.schemas.in.h:20
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 ""
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr ""
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr "1 minuttur"
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr "10 minuttir"
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr "3 minuttir"
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr "5 minuttir"
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr "Um Vekjaraklokku"
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr "Vekjaraklokku sertokkar"
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr "Vekjara tíðir"
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr ""
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr "Stýriboð"
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr "Laga til..."
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr "Strika"
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr "Strika vekjara tíð"
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr "Strika valdu vekjara tíðina"
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr "Ritstjórna vekjaratíðir"
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr "Ritsjórna tí valdu vekjara tíðina"
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr "Ritstjórna..."
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr "Gilda"
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr "Gilda/ógilda"
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr "Gilda/ógilda vekjaraklokku"
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr "Gilda/ógilda tí valdu vekjara tíðina"
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr "frí"
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr ""
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr "Kom upp á morgni!"
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr "Stýr tinar vekjara tíðir"
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr "mán"
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr "Nýggj"
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr "Nýggj vekjaratíð"
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr "Nýggj..."
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr "Spæl _ljóð"
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr "Sløkk vekjaraklokkuna"
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr "Endurta_k ljóð"
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr "ley"
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr "Sýn _vekjaratíðir"
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr ""
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr ""
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr ""
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr "Steðga"
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr "Steðga vekjaraklokku"
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr "Steðga vekjaraklokkur"
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr "Steðga allar vekjaraklokkur"
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr "Steðga tí valdu vekjaraklokkuna"
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr "sun"
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr "hós"
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr ""
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr "Skift vekjaraklokkur"
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr "Skift vekjara gluggar"
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr "Skift sjónleikan á vekjara glugganum"
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr "týs"
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr "Vækna tín svøvnhít"
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr "mik"
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr "_Navn:"
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr "_Sertokkar"
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr "_Gevst"
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr ""
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr "_Tíð"
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr "minuttir"
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr ""
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr ""
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr ""
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr ""
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr "%s steðgað"
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr ""
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr ""
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr ""
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr ""
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr "Vel ljóðfílu..."
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr "Serstýriboð..."
#: ../src/alarm.c:2029
msgid "Once"
msgstr "Eina ferð"
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr "Gerðandisdagar"
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr "Vikuskifti"
#: ../src/alarm.c:2038
msgid "Every day"
msgstr "Hvønn dag"
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr "Um %s"
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr "Kundi ikki spæla '%s': %s"
#: ../src/ui.c:371
msgid "Could not play"
msgstr "Kundi ikki spæla"
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr ""

472
po/fr.po Normal file
View File

@@ -0,0 +1,472 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-03-07 12:32+0000\n"
"Last-Translator: Pierre Slamich <pierre.slamich@gmail.com>\n"
"Language-Team: French <fr@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr "Réveil"
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:1
msgid ""
"A list of days when the alarm should be repeated. This settings is only "
"applicable for \"clock\" alarms."
msgstr ""
"Une liste des jours quand l'alarme doit se declencher. Ne s'applique que "
"aux alarmes de type 'horaire'."
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr "Un message pour décrire l'alarme."
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr "Message de l'Alarme"
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr "Répéter l'Alarme"
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr "Horaire"
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr "Type d'Alarme"
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr "Alarme!"
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr "Commande"
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr "Indique l'état de l'alarme."
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr "Type de notification"
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr "Repeter le Son"
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr "Fichier sonore"
#: ../data/alarm-clock.schemas.in.h:15
msgid ""
"The UNIX timestamp for the alarm. Must be set before the alarm is activated."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr "La commande a executer pour les alertes de type 'commande'."
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr "Le fichier audio à jouer pour une notification de type \"son\"."
#: ../data/alarm-clock.schemas.in.h:18
msgid ""
"The time for the alarm. Should be in GMT for \"clock\" alarms or length in "
"seconds for \"timer\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:19
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 ""
#: ../data/alarm-clock.schemas.in.h:20
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 ""
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr "Si il faut répéter le son de l'alarme."
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr "1 minute"
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr "10 minutes"
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr "3 minutes"
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr "5 minutes"
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr "À propos du Réveil-Matin"
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr "Préférences de Réveil-Matin"
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr "Alarmes"
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr "Alerte"
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr "_Commande :"
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr "Personnalisée..."
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr "Supprimer"
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr "Supprimer l'alarme"
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr "Supprimer l'alarme sélectionnée"
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr "Modifier l'alarme"
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr "Modifier l'alarme sélectionnée"
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr "Modifier..."
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr "Activer"
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr "Activer/Desactiver"
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr "Activer/Desactiver l'alarme"
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr "Activer/Desactiver l'alarme sélectionnée"
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr "Ven"
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr ""
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr ""
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr "Gérer vos alarmes"
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr "Lun"
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr ""
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr "Nouvelle alarme"
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr ""
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr ""
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr "Quitter Réveil-Matin"
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr ""
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr "Sam"
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr "Afficher les _alarmes"
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr ""
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr ""
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr ""
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr ""
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr "Arrêter l'alarme"
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr "Arrêter les alarmes"
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr "Arrêter toutes les alarmes"
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr "Arrêter l'alarme sélectionnée"
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr "Dim"
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr "Jeu"
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr ""
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr "Mar"
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr ""
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr "Mer"
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr "_Nom :"
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr "_Préférences"
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr "_Quitter"
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr "_Répéter :"
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr ""
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr "minutes"
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr ""
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr "Vous pouvez arrêter l'alarme à partir du menu de Réveil-Matin."
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr ""
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr "Vous pouvez arrêter les alarmes à partir du menu de Réveil-Matin."
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr ""
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr ""
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr ""
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr ""
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr ""
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr "Sélectionnez un fichier son..."
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr "Commande personnalisée..."
#: ../src/alarm.c:2029
msgid "Once"
msgstr "Une seule fois"
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr "Les jours ouvrables"
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr "Les weekends"
#: ../src/alarm.c:2038
msgid "Every day"
msgstr "Tous les jours"
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr "A propos de %s"
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr ""
#: ../src/ui.c:371
msgid "Could not play"
msgstr ""
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr ""

481
po/he.po Normal file
View File

@@ -0,0 +1,481 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-03-10 12:12+0000\n"
"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
"Language-Team: Hebrew <he@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr "שעון מעורר"
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr "להתעורר בבוקר"
#: ../data/alarm-clock.schemas.in.h:1
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."
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr "A short message which describes the alarm."
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr "Alarm Message"
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr "חזרה על ההתרעה"
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr "Alarm Running State"
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr "זמן ההתרעה"
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr "Alarm Timestamp"
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr "Alarm Type"
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr "Alarm!"
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr "Command"
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr "Indicates whether the alarm has started."
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr "Notification Type"
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr "Repeat Sound"
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr "Sound File"
#: ../data/alarm-clock.schemas.in.h:15
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."
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr "The command to run for the \"command\" notification type."
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr "The sound file to play for the \"sound\" notification type."
#: ../data/alarm-clock.schemas.in.h:18
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."
#: ../data/alarm-clock.schemas.in.h:19
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.)"
#: ../data/alarm-clock.schemas.in.h:20
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."
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr "Whether to repeat the alarm sound."
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr "דקה אחת"
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr "10 דקות"
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr "3 דקות"
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr "5 דקות"
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr "על אודות השעון המעורר"
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr "העדפות השעון המעורר"
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr "התרעות"
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr "התרעה"
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr "פ_קודה:"
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr "התאמה אישית..."
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr "מחיקה"
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr "מחיקת התרעה"
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr "מחיקת ההתרעה הנבחרת"
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr "עריכת ההתרעה"
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr "עריכת ההתרעה הנבחרת"
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr "עריכה..."
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr "הפעלה"
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr "הפעלה/נטרול"
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr "הפעלת/נטרול ההתרעה"
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr "הפעלה/נטרול של ההתרעה הנבחרת"
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr "ו"
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr "כללי"
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr "להתעורר בבוקר!"
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr "ניהול ההתרעות שלך"
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr "ב"
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr "חדשה"
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr "התרעה חדשה"
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr "חדשה..."
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr "השמעת _צליל"
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr "יציאה מהשעון המעורר"
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr "ח_זרה על הצליל"
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr "ש"
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr "ה_צגת התרעות"
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr "נודניק"
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr "דחיית ההתרעה"
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr "דחיית ההתרעות"
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr "דחיית כל ההתרעות"
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr "דחיית כל ההתרעות המזמזמות"
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr "דחייה למשך:"
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr "דחיית ההתרעה הנבחרת"
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr "הפעלת _יישום"
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr "התחלה אוטומטית עם ההפעלה"
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr "עצירה"
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr "עצירת ההתרעה"
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr "עצירת ההתרעות"
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr "עצירת כל ההתרעות"
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr "עצירת כל ההתרעות המזמזמות"
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr "עצירת ההתרעה הנוכחית"
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr "א"
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr "ה"
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr "קוצב זמן"
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr "החלפת מצב ההתרעות"
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr "הצגה/הסתרה של חלון ההתרעות"
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr "הצגה/הסתרה של חלון ההתרעות"
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr "ג"
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr "קדימה לקום ישנוני!"
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr "ד"
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr "_שם:"
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr "ה_עדפות"
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr "ייאה"
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr "_חזרה:"
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr "_נודניק"
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr "_שעה:"
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr "דקות"
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr "%s נדחה"
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr "ניתן לעצור את ההתרעה מתפריט השעון המעורר."
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr "נדחו %d התרעות"
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr "ניתן לעצור את ההתרעות מתפריט השעון המעורר."
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr "%s נעצרה"
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr "ההתרעות החוזרות ימשיכו בהתאם לתזמון."
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr "נעצרו %d התרעות"
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr "%s כבר פעילה, מתבצעת יציאה...\n"
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr "_חזרה: %s"
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr "בחירת קובץ שמע..."
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr "פקודה מותאמת אישית"
#: ../src/alarm.c:2029
msgid "Once"
msgstr "פעם אחת"
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr "ימי השבוע"
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr "סופי שבוע"
#: ../src/alarm.c:2038
msgid "Every day"
msgstr "כל יום"
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr "על אודות %s"
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr "לא ניתן להשמיע את '%s': %s"
#: ../src/ui.c:371
msgid "Could not play"
msgstr "לא ניתן לנגן"
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr "ניתן לדחות או לעצור התרעות מתפריט השעון המעורר."

479
po/hi.po Normal file
View File

@@ -0,0 +1,479 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-03-15 23:03+0000\n"
"Last-Translator: manishmahabir <manishmahabir@yahoo.com>\n"
"Language-Team: Hindi <hi@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr ""
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:1
msgid ""
"A list of days when the alarm should be repeated. This settings is only "
"applicable for \"clock\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr "अलार्म!"
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr "निर्देश"
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr "बताता है कि क्या अलार्म शुरू हो गया है."
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr "अधिसूचना प्रकार"
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr "ध्वनि दोहराएँ"
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr "ध्वनि फ़ाइल"
#: ../data/alarm-clock.schemas.in.h:15
msgid ""
"The UNIX timestamp for the alarm. Must be set before the alarm is activated."
msgstr ""
"अलार्म के लिए UNIX टाइमस्टैम्प. अलार्म सक्रिय करने से पहले निर्धारित किया "
"जाना चाहिए."
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr "कमांड \"कमांड\" अधिसूचना प्रकार के को चलाने के लिए."
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr "\"ध्वनि\" अधिसूचना प्रकार के लिए ध्वनि फ़ाइल."
#: ../data/alarm-clock.schemas.in.h:18
msgid ""
"The time for the alarm. Should be in GMT for \"clock\" alarms or length in "
"seconds for \"timer\" alarms."
msgstr ""
"अलार्म के लिए समय. \"घड़ी\" अलार्म के लिए GMT में अथवा \"टाइमर\" अलार्म के "
"लिए सेकंड में होना चाहिए."
#: ../data/alarm-clock.schemas.in.h:19
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 ""
"अलार्म बजने पर अधिसूचना का प्रकार. यह निम्न में से एक हो सकता है: ध्वनि "
"बजाने के लिए \"ध्वनि\" (ध्वनि फाइल मे निर्दिष्ट ). कमांड चलाने के लिए "
"\"कमांड\" (कमांड में निर्दिष्ट)"
#: ../data/alarm-clock.schemas.in.h:20
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 ""
"अलार्म का प्रकार. दिन के किसी विशेष समय पर अलार्म के लिये 'घड़ी' अथवा एक "
"निर्धारित अवधि के बाद एक अलार्म के लिए \"टाइमर '."
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr "क्या अलार्म ध्वनि दोहराई जानी चाहिए ?"
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr "1 मिनट"
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr "10 मिनट्स"
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr "3 मिनट्स"
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr "5 मिनट्स"
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr "अलार्म घड़ी का परिचय"
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr "अलार्म घड़ी प्राथमिकताएँ"
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr "अलार्म्स"
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr "सचेत"
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr "कमांड (_m):"
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr "मनपसंद..."
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr "मिटाएँ"
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr "अलार्म हटाएँ"
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr "चयनित अलार्म हटाएँ"
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr "अलार्म का संपादन करें"
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr "चयनित अलार्म का संपादन करें"
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr "संपादन..."
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr "सक्रिय करें"
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr "सक्रिय / निष्क्रिय करें"
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr "अलार्म को सक्रिय / निष्क्रिय करें"
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr "चयनित अलार्म को सक्रिय / निष्क्रिय करें"
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr "शुक्र"
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr "सामान्य"
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr "सुबह में जागें!"
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr "अलार्म्स को व्यवस्थित करें"
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr "सोम"
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr "नया"
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr "नया अलार्म"
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr ""
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr ""
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr ""
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr ""
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr ""
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr ""
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr ""
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr ""
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr ""
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr ""
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr ""
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr ""
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr ""
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr ""
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr ""
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr ""
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr ""
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr ""
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr ""
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr ""
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr ""
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr ""
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr ""
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr ""
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr ""
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr ""
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr ""
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr ""
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr ""
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr ""
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr ""
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr ""
#: ../src/alarm.c:2029
msgid "Once"
msgstr ""
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr ""
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr ""
#: ../src/alarm.c:2038
msgid "Every day"
msgstr ""
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr ""
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr ""
#: ../src/ui.c:371
msgid "Could not play"
msgstr ""
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr ""

470
po/hu.po Normal file
View File

@@ -0,0 +1,470 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-03-08 15:56+0000\n"
"Last-Translator: Gergely Szarka <szarka.honved@gmail.com>\n"
"Language-Team: Hungarian <hu@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr "Ébresztőóra"
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr "Reggeli ébresztő"
#: ../data/alarm-clock.schemas.in.h:1
msgid ""
"A list of days when the alarm should be repeated. This settings is only "
"applicable for \"clock\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr "Figyelmeztető üzenet"
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr "Figyelmeztetés ismétlése"
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr "Figyelmeztetés időpontja"
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr "Figyelmeztetés típusa"
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr "Ébresztő!"
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr "Parancs"
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr "Hangfájl"
#: ../data/alarm-clock.schemas.in.h:15
msgid ""
"The UNIX timestamp for the alarm. Must be set before the alarm is activated."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:18
msgid ""
"The time for the alarm. Should be in GMT for \"clock\" alarms or length in "
"seconds for \"timer\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:19
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 ""
#: ../data/alarm-clock.schemas.in.h:20
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 ""
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr ""
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr "1 perc"
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr "10 perc"
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr "3 perc"
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr "5 perc"
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr "Ébresztőóra névjegye"
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr "Ébresztőóra beállításai"
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr "Figyelmeztetések"
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr "Riasztás"
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr "_Parancs:"
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr "Egyedi…"
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr "Törlés"
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr "Szerkesztés…"
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr "Engedélyezés"
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr ""
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr "Pén"
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr "Általános"
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr ""
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr "Hét"
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr "Új"
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr "Új…"
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr ""
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr "Kilépés az Ébresztőórából"
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr ""
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr "Szo"
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr "Szundi"
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr ""
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr ""
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr ""
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr "Leállítás"
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr "Vas"
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr "Csü"
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr "Időzítő"
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr "Ked"
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr ""
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr "Sze"
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr "_Név:"
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr "_Beállítások"
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr "_Kilépés"
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr ""
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr "_Szundi"
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr "_Idő:"
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr "perc"
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr ""
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr ""
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr ""
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr ""
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr ""
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr ""
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr ""
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr ""
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr ""
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr "Válasszon hangfájlt…"
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr ""
#: ../src/alarm.c:2029
msgid "Once"
msgstr "Egyszer"
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr "Hétköznap"
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr "Hétvégén"
#: ../src/alarm.c:2038
msgid "Every day"
msgstr "Minden nap"
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr "%s névjegye"
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr ""
#: ../src/ui.c:371
msgid "Could not play"
msgstr "Nem játszható le"
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr ""

470
po/id.po Normal file
View File

@@ -0,0 +1,470 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-03-14 08:53+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Indonesian <id@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr ""
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:1
msgid ""
"A list of days when the alarm should be repeated. This settings is only "
"applicable for \"clock\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:15
msgid ""
"The UNIX timestamp for the alarm. Must be set before the alarm is activated."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:18
msgid ""
"The time for the alarm. Should be in GMT for \"clock\" alarms or length in "
"seconds for \"timer\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:19
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 ""
#: ../data/alarm-clock.schemas.in.h:20
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 ""
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr ""
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr ""
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr ""
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr ""
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr ""
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr ""
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr ""
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr ""
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr ""
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr ""
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr ""
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr ""
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr ""
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr ""
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr ""
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr ""
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr ""
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr ""
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr ""
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr ""
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr ""
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr ""
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr ""
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr ""
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr ""
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr ""
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr ""
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr ""
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr ""
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr ""
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr ""
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr ""
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr ""
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr ""
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr ""
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr ""
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr ""
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr ""
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr ""
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr ""
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr ""
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr ""
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr ""
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr ""
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr ""
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr ""
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr ""
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr ""
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr ""
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr ""
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr ""
#: ../src/alarm.c:2029
msgid "Once"
msgstr ""
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr ""
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr ""
#: ../src/alarm.c:2038
msgid "Every day"
msgstr ""
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr ""
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr ""
#: ../src/ui.c:371
msgid "Could not play"
msgstr ""
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr ""

472
po/ja.po Normal file
View File

@@ -0,0 +1,472 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-03-08 16:45+0000\n"
"Last-Translator: Yuki Kodama <Unknown>\n"
"Language-Team: Japanese <ja@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr "アラーム時計"
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr "朝起きる"
#: ../data/alarm-clock.schemas.in.h:1
msgid ""
"A list of days when the alarm should be repeated. This settings is only "
"applicable for \"clock\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr "アラームのときに表示される短いメッセージ"
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr "アラームのメッセージ"
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr "アラームのリピート間隔"
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr "アラーム状態"
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr "アラームの時間"
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr "アラームのタイムスタンプ"
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr "アラームの種類"
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr "アラーム"
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr "コマンド"
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr "アラームが開始されているかの表示"
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr "通知の種類"
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr "リピートの音"
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr "アラーム音のファイル"
#: ../data/alarm-clock.schemas.in.h:15
msgid ""
"The UNIX timestamp for the alarm. Must be set before the alarm is activated."
msgstr "アラームに使用する UNIX のタイムスタンプ。アラームをオンにする前に設定する必要があります。"
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr "\"command\" 通知のときに実行されるコマンド。"
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr "\"sound\" 通知のときに再生される音ファイル。"
#: ../data/alarm-clock.schemas.in.h:18
msgid ""
"The time for the alarm. Should be in GMT for \"clock\" alarms or length in "
"seconds for \"timer\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:19
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\" プロパティで指定したコマンドを実行します。"
#: ../data/alarm-clock.schemas.in.h:20
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\" は指定間隔ごとに動作します。"
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr "アラーム音を連続再生するかどうか"
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr "1分"
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr "10分"
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr "3分"
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr "5分"
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr "アラーム時計について"
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr "アラーム時計の設定"
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr "アラーム"
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr "アラート"
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr "コマンド(_M):"
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr "カスタム..."
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr "削除"
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr "アラームを削除"
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr "選択中のアラームを削除"
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr "アラームを編集"
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr "選択中のアラームを編集"
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr "編集..."
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr "有効"
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr "オン/オフ"
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr "アラームのオン/オフ"
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr "選択中のアラームのオン/オフ"
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr "金曜"
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr "一般"
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr "朝起きる"
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr "アラームの設定"
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr "月曜"
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr "新規"
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr "新しいアラーム"
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr "新規..."
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr "音の再生(_S)"
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr "アラーム時計の終了"
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr "音のリピート(_T)"
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr "土曜"
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr "アラームの表示(_A)"
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr "スヌーズ"
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr "アラームをスヌーズ"
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr "アラームをスヌーズ"
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr "すべてのアラームをスヌーズ"
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr "動作中のすべてのアラームをスヌーズ"
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr "スヌーズする:"
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr "選択中のアラームをスヌーズ"
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr "アプリケーションを起動(_A)"
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr "ログイン時に自動起動"
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr "停止"
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr "アラームを停止"
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr "アラームを停止"
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr "すべてのアラームを停止"
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr "すべての動作中のアラームを停止"
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr "選択中のアラームを停止"
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr "日曜"
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr "木曜"
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr "タイマー"
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr "アラームの切り替え"
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr "アラームウィンドウの切り替え"
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr "アラームウィンドウの表示切り替え"
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr "火曜"
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr "起きろー!"
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr "水曜"
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr "名前(_N):"
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr "設定(_P)"
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr "終了(_Q)"
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr "リピート(_R):"
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr "スヌーズ(_S)"
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr "時間(_T):"
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr "分"
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr "%s がスヌーズ"
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr "アラーム時計のメニューからアラームを停止できます。"
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr "%d 回のスヌーズ"
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr "アラームはアラーム時計のメニューから停止できます。"
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr "%s が停止"
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr ""
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr "%d のアラームが停止"
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr "%s はすでに実行されているため、終了します\n"
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr "リピート(_R): %s"
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr "音ファイルの選択..."
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr "カスタムコマンド..."
#: ../src/alarm.c:2029
msgid "Once"
msgstr "1回"
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr "平日"
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr "週末"
#: ../src/alarm.c:2038
msgid "Every day"
msgstr "毎日"
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr "%s について"
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr "'%s' を再生できませんでした: %s"
#: ../src/ui.c:371
msgid "Could not play"
msgstr "再生できませんでした"
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr "アラーム時計のメニューからスヌーズまたは停止できます。"

481
po/ms.po Normal file
View File

@@ -0,0 +1,481 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-03-09 14:08+0000\n"
"Last-Translator: Ibrahim Elias <imen802003@netscape.net>\n"
"Language-Team: Malay <ms@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr "Jam Penggera"
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr "Bangun pada waktu pagi"
#: ../data/alarm-clock.schemas.in.h:1
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\"."
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr "Mesej ringkas menyatakan tentang penggera."
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr "Mesej Penggera"
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr "Penggera Diulang"
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr "Keadaan Penggera"
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr "Waktu Penggera"
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr "Timestamp Penggera"
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr "Jenis penggera"
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr "Penggera!"
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr "Arahan"
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr "Menandakan sama ada penggera telah bermula."
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr "Jenis Pemberitahuan"
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr "Ulang Bunyi"
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr "Fail Bunyi"
#: ../data/alarm-clock.schemas.in.h:15
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."
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr "Perintah untuk jalan bagi jenis notifikasi \"command\""
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr "Fail bunyi untuk main bagi jenis notifikasi \"sound\"."
#: ../data/alarm-clock.schemas.in.h:18
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\"."
#: ../data/alarm-clock.schemas.in.h:19
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\")."
#: ../data/alarm-clock.schemas.in.h:20
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."
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr "Sama ada untuk diulangi bunyi penggera."
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr "1 minit"
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr "10 minit"
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr "3 minit"
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr "5 minit"
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr "Perihal Alarm Clock"
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr "Keutamaan Alarm Clock"
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr "Penggera"
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr "Waspada"
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr "A_rahan:"
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr "Langganan..."
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr "Hapus"
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr "Hapuskan penggera"
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr "Hapus penggera yang dipilih"
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr "Edit penggera"
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr "Edit penggera yang dipilih"
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr "Edit..."
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr "Bolehkan"
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr "Enable/disable"
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr "Enable/disable penggera"
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr "Enable/disable penggera yang dipiih"
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr "Jumaat"
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr "Am"
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr "Bangun pada waktu pagi!"
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr "Urus penggera anda"
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr "Isnin"
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr "Baru"
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr "Penggera baru"
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr "Baru..."
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr "Main _bunyi"
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr "Keluar dari Alarm Clock"
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr "Ulan_g bunyi"
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr "Sabtu"
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr "Papar _penggera"
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr "Tidur"
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr "Tidur penggera"
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr "Tidur penggera"
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr "Tidur semua penggera"
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr "Tidur semua penggera yang berbunyi"
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr "Tidur untuk:"
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr "Tidur penggera yang dipilih"
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr "Mula _Aplikasi"
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr "Mula secara automatik pada log masuk"
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr "Berhenti"
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr "Henti penggera"
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr "Henti penggera-penggera"
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr "Henti semua penggera"
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr "Henti semua penggera yang berbunyi"
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr "Henti penggera yang dipilih"
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr "Ahad"
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr "Khamis"
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr "Pemasa"
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr "Togol penggera"
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr "Togol tentingkap penggera"
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr "Togol darjah penglihatan bagi tetingkap penggera"
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr "Selasa"
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr "Bangunlah wahai tuan hamba!"
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr "Rabu"
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr "_Nama:"
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr "_Keutamaan"
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr "_Keluar"
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr "_Ulang:"
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr "_Tidur"
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr "_Masa:"
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr "minit"
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr "%s telah tidur"
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr "Anda boleh hentikan penggera dari menu Alarm Clock."
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr "Telah tidur %d penggera"
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr "Anda boleh hentikan penggera dari menu Alarm Clock."
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr "%s telah berhenti"
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr "Penggera yang berulang akan berjalan sebagaimana dijadualkan."
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr "Telah berhenti %d penggera"
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr "%s telah berjalan, keluar...\n"
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr "_Ulang: %s"
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr "Pilih fail bunyi..."
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr "Perintah langganan..."
#: ../src/alarm.c:2029
msgid "Once"
msgstr "Sekali"
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr "Hari hari bekerja"
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr "Hujung minggu"
#: ../src/alarm.c:2038
msgid "Every day"
msgstr "Setiap hari"
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr "Perihal %s"
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr "Tidak dapat main '%s': %s"
#: ../src/ui.c:371
msgid "Could not play"
msgstr "Tidak dapat main"
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr "Anda boleh tidur atau hentikan penggera dari menu Alarm Clock."

508
po/nb.po Normal file
View File

@@ -0,0 +1,508 @@
# Norwegian translation of Alarm Clock (bokmål dialect)
# Copyright (C) 2010 Johannes H. Jensen <joh@pseudoberries.com>
# This file is distributed under the same license as the alarm-clock-applet package.
# Johannes H. Jensen <joh@pseudoberries.com>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock-applet\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/alarm-clock/\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-03-06 16:27+0000\n"
"Last-Translator: Johannes H. Jensen <joh@pseudoberries.com>\n"
"Language-Team: Norwegian <joh@pseudoberries.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr "Alarmklokke"
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr "Våkne opp om morgenen"
#: ../data/alarm-clock.schemas.in.h:1
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."
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr "En kort melding som beskriver alarmen."
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr "Alarmmelding"
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr "Alarmrepetering"
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr "Alarm kjørestatus"
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr "Alarmtid"
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr "Alarmtidsstempel"
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr "Alarmtype"
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr "Alarm!"
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr "Kommando"
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr "Indikerer om alarmen har startet."
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr "Varslingstype"
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr "Repeter Lyd"
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr "Lydfil"
#: ../data/alarm-clock.schemas.in.h:15
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."
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr "Kommandoen som skal kjøres for \"command\"-varsling."
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr "Lydfilen som skal spilles for \"sound\"-varsling."
#: ../data/alarm-clock.schemas.in.h:18
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."
#: ../data/alarm-clock.schemas.in.h:19
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.)"
#: ../data/alarm-clock.schemas.in.h:20
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."
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr "Om alarmlyden skal gjentas."
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr "1 minutt"
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr "10 minutter"
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr "3 minutter"
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr "5 minutter"
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr "Om Alarmklokke"
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr "Innstillinger for Alarmklokke"
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr "Alarmer"
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr "Varsel"
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr "Ko_mmando:"
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr "Egendefinert..."
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr "Slett"
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr "Slett alarm"
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr "Slett den valgte alarmen"
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr "Rediger alarm"
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr "Rediger den valgte alarmen"
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr "Rediger..."
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr "Aktivere"
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr "Aktivere/deaktivere"
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr "Aktivere/deaktivere alarm"
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr "Aktivere/deaktivere den valgte alarmen"
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr "fre"
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr "Generelt"
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr "Stå opp om morgenen!"
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr "Administrer dine alarmer"
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr "man"
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr "Ny"
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr "Ny alarm"
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr "Ny..."
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr "_Spill lyd"
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr "Avslutt Alarmklokke"
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr "Repe_ter lyd"
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr "lør"
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr "Vis _alarmer"
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr "Slumre"
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr "Slumre alarm"
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr "Slumre alarmer"
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr "Slumre alle alarmer"
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr "Slumre alle pipende alarmer"
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr "Slumre for:"
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr "Slumre den valgte alarmen"
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr "Start _Applikasjon"
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr "Start automatisk ved innlogging"
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr "Stopp"
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr "Stopp alarm"
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr "Stopp alarmer"
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr "Stopp alle alarmer"
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr "Stopp alle pipende alarmer"
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr "Stopp den valgte alarmen"
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr "søn"
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr "tor"
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr "Nedtelling"
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr "Toggle alarmer"
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr "Toggle alarmvinduet"
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr "Toggle visningen av alarmvinduet"
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr "tir"
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr "Våkn opp trøtthue!"
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr "ons"
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr "_Navn:"
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr "_Innstillinger"
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr "_Avslutt"
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr "_Repeter:"
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr "_Slumre"
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr "_Tid:"
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr "minutter"
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr "%s slumret"
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr "Du kan stoppe alarmen fra Alarmklokke-menyen."
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr "Slumret %d alarmer"
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr "Du kan stoppe alarmer fra Alarmklokke-menyen."
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr "%s stoppet"
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr "Repeterende alarmer vil fortsette i henhold til planen."
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr "Stoppet %d alarm(er)"
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr "%s kjører allerede, avslutter...\n"
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr "_Repeter: %s"
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr "Velg lydfil..."
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr "Egendefinert kommando..."
#: ../src/alarm.c:2029
msgid "Once"
msgstr "En gang"
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr "Ukedager"
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr "Helger"
#: ../src/alarm.c:2038
msgid "Every day"
msgstr "Hver dag"
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr "Om %s"
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr "Kunne ikke spille '%s': %s"
#: ../src/ui.c:371
msgid "Could not play"
msgstr "Kunne ikke spille"
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr "Du kan slumre eller stoppe alarmer fra Alarmklokke-menyen."
#~ msgid "&#xA9; 2007-2010 Johannes H. Jensen"
#~ msgstr "&#xA9; 2007-2010 Johannes H. Jensen"
#~ msgid "<b>Alarm Clock</b>"
#~ msgstr "<b>Alarmklokke</b>"
#~ msgid "<b>Alert</b>"
#~ msgstr "<b>Varsling</b>"
#~ msgid "<b>General</b>"
#~ msgstr "<b>Generelt</b>"
#~ msgid "<b>Timer</b>"
#~ msgstr "<b>Nedtelling</b>"
#~ msgid "<b>_Repeat:</b>"
#~ msgstr "<b>_Repeter:</b>"
#~ msgid "Start automatically"
#~ msgstr "Start automatisk"
#~ msgid "_Start automatically on log in"
#~ msgstr "_Start automatisk når jeg logger inn"
#, c-format
#~ msgid "<b>_Repeat:</b> %s"
#~ msgstr "<b>_Repeter:</b> %s"

478
po/nn.po Normal file
View File

@@ -0,0 +1,478 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-03-06 14:46+0000\n"
"Last-Translator: Håkon <Unknown>\n"
"Language-Team: Norwegian Nynorsk <nn@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr "Varslingsur"
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr "Vakne om morgonen"
#: ../data/alarm-clock.schemas.in.h:1
msgid ""
"A list of days when the alarm should be repeated. This settings is only "
"applicable for \"clock\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr "Varslingsmelding"
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr "Varslingsgjentaking"
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr "Varsling kjøyrestatus"
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr "Varslingstid"
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr "Varslingstidsstempel"
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr "Varslingstype"
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr "Varsling!"
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr "Kommando"
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr "Indikerer om varslinga har starta."
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr "Varslingstype"
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr "Gjenta lyd"
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr "Lydfil"
#: ../data/alarm-clock.schemas.in.h:15
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."
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr "Kommandoen som skal kjøyrast for \"command\"-varsling."
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr "Lydfilen som skal spelast for \"sound\"-varsling."
#: ../data/alarm-clock.schemas.in.h:18
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."
#: ../data/alarm-clock.schemas.in.h:19
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)."
#: ../data/alarm-clock.schemas.in.h:20
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."
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr "Om varslingslyden skal gjentakast."
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr "1 minutt"
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr "10 minutt"
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr "3 minutt"
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr "5 minutt"
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr ""
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr ""
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr ""
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr ""
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr ""
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr ""
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr ""
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr ""
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr ""
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr ""
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr ""
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr ""
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr ""
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr ""
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr ""
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr ""
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr ""
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr ""
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr ""
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr ""
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr ""
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr ""
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr ""
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr ""
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr ""
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr ""
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr ""
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr ""
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr ""
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr ""
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr ""
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr ""
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr ""
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr ""
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr ""
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr ""
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr ""
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr ""
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr ""
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr ""
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr ""
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr ""
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr ""
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr ""
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr ""
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr ""
#: ../src/alarm.c:2029
msgid "Once"
msgstr ""
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr ""
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr ""
#: ../src/alarm.c:2038
msgid "Every day"
msgstr ""
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr ""
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr ""
#: ../src/ui.c:371
msgid "Could not play"
msgstr ""
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr ""

472
po/pl.po Normal file
View File

@@ -0,0 +1,472 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-03-12 16:58+0000\n"
"Last-Translator: Stanisław Gackowski <launchpad@soeb.eu>\n"
"Language-Team: Polish <pl@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr "Budzik"
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr "Obudź się rano"
#: ../data/alarm-clock.schemas.in.h:1
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."
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr "Krótka wiadomość opisująca alarm."
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr "Wiadomość alarmu"
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr "Powtarzanie alarmu"
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr "Czas alarmu"
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr "Typ alarmu"
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr "Alarm!"
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr "Polecenie"
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr "Typ powiadomienia"
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr "Powtarzanie dźwięku"
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr "Plik dźwiękowy"
#: ../data/alarm-clock.schemas.in.h:15
msgid ""
"The UNIX timestamp for the alarm. Must be set before the alarm is activated."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:18
msgid ""
"The time for the alarm. Should be in GMT for \"clock\" alarms or length in "
"seconds for \"timer\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:19
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 ""
#: ../data/alarm-clock.schemas.in.h:20
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 ""
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr ""
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr "1 minuta"
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr "10 minut"
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr "3 minuty"
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr "5 minut"
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr "O budziku"
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr "Preferencje budzika"
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr "Alarmy"
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr "Ostrzeżenie"
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr "_Polecenie:"
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr "Własne..."
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr "Usuń"
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr "Usuń alarm"
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr "Usuń zaznaczony alarm"
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr "Modyfikuj alarm"
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr "Modyfikuj zaznaczony alarm"
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr "Edytuj..."
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr "Włącz"
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr "Włącz/wyłącz"
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr "Włącz/wyłącz alarm"
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr "Włącz/wyłącz wybrany alarm"
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr "Pt"
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr "Ogólne"
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr "Wstań rano!"
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr "Zarządzaj alarmami"
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr "Pon"
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr "Nowy"
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr "Nowy alarm"
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr "Nowe..."
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr "Odtwórz _dzwięk"
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr "Zakończ budzik"
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr "Powtórz dzwięk"
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr "So"
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr "Pokaż _alarmy"
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr ""
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr ""
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr ""
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr ""
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr ""
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr ""
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr ""
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr ""
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr ""
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr ""
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr ""
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr ""
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr ""
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr ""
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr ""
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr ""
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr ""
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr ""
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr ""
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr ""
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr ""
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr ""
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr ""
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr ""
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr ""
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr "Wybór pliku dźwiękowego..."
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr ""
#: ../src/alarm.c:2029
msgid "Once"
msgstr "Raz"
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr "Dni robocze"
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr "Weekendy"
#: ../src/alarm.c:2038
msgid "Every day"
msgstr "Codziennie"
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr "O %s"
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr ""
#: ../src/ui.c:371
msgid "Could not play"
msgstr ""
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr ""

470
po/pt.po Normal file
View File

@@ -0,0 +1,470 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-02-09 18:22+0000\n"
"Last-Translator: Renato Martins <Unknown>\n"
"Language-Team: Portuguese <pt@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr ""
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr "Despertar de manhã"
#: ../data/alarm-clock.schemas.in.h:1
msgid ""
"A list of days when the alarm should be repeated. This settings is only "
"applicable for \"clock\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr "Uma pequena mensagem que descreva o alarme."
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr "Mensagem do Alarme"
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr "Repetição do Alarme"
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr "Estado Actual do Alarme"
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr "Tempo do Alarme"
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr "Tipo de Alarme"
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr "Comando"
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr "Indica se o alarme foi iniciado."
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr "Tipo de notificação"
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr "Repetir Som"
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr "Ficheiro de Som"
#: ../data/alarm-clock.schemas.in.h:15
msgid ""
"The UNIX timestamp for the alarm. Must be set before the alarm is activated."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:18
msgid ""
"The time for the alarm. Should be in GMT for \"clock\" alarms or length in "
"seconds for \"timer\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:19
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 ""
#: ../data/alarm-clock.schemas.in.h:20
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 ""
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr ""
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr "1 minuto"
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr "10 minutos"
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr "3 minutos"
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr "5 minutos"
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr ""
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr ""
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr "Alarmes"
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr ""
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr "Co_mando:"
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr "Personalizar..."
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr "Apagar"
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr ""
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr ""
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr ""
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr ""
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr ""
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr ""
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr ""
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr ""
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr ""
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr ""
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr ""
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr ""
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr ""
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr ""
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr ""
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr ""
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr ""
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr ""
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr ""
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr ""
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr ""
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr ""
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr ""
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr ""
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr ""
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr ""
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr ""
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr ""
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr ""
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr ""
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr ""
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr ""
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr ""
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr ""
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr ""
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr ""
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr ""
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr ""
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr ""
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr ""
#: ../src/alarm.c:2029
msgid "Once"
msgstr ""
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr ""
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr ""
#: ../src/alarm.c:2038
msgid "Every day"
msgstr ""
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr ""
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr ""
#: ../src/ui.c:371
msgid "Could not play"
msgstr ""
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr ""

485
po/pt_BR.po Normal file
View File

@@ -0,0 +1,485 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-03-07 12:34+0000\n"
"Last-Translator: Gilfran Ribeiro <contato@gilfran.net>\n"
"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr "Alarme"
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr "Acordar de manhã"
#: ../data/alarm-clock.schemas.in.h:1
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."
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr "Uma pequena mensagem descrevendo o alarme."
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr "Mensagem do Alarme"
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr "Repetição do Alarme"
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr "Estado de Funcionamento do Alarme"
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr "Hora do Alarme"
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr "Carimbo de Hora do Alarme"
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr "Tipo de Alarme"
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr "Alarme!"
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr "Comando"
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr "Indica se o alarme foi iniciado."
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr "Tipo de Notificação"
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr "Som de repetição"
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr "Arquivo de Som"
#: ../data/alarm-clock.schemas.in.h:15
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."
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr ""
"O comando a ser executado quando o tipo de notificação for \"Comando\"."
#: ../data/alarm-clock.schemas.in.h:17
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\"."
#: ../data/alarm-clock.schemas.in.h:18
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."
#: ../data/alarm-clock.schemas.in.h:19
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\")."
#: ../data/alarm-clock.schemas.in.h:20
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."
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr "Especificar se se deve repetir o som do alarme."
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr "1 minuto"
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr "10 minutos"
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr "3 minutos"
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr "5 minutos"
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr "Sobre o Alarme"
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr "Opções do Alarme"
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr "Alarmes"
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr "Alerta"
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr "Co_mando:"
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr "Personalizar..."
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr "Excluir"
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr "Excluir alarme"
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr "Remove o alarme escolhido."
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr "Editar alarme"
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr "Edit o alarme escolhido"
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr "Editar..."
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr "Habilitar"
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr "Habilitar/desabilitar"
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr "Habilitar/desabilitar alarme"
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr "Habilita/desabilita o alarme escolhido"
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr "Sex"
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr "Geral"
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr "Acorde de manhã!"
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr "Administre seus alarmes"
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr "Seg"
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr "Novo"
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr "Novo alarme"
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr "Novo..."
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr "Reproduzir _som"
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr "Sair do Alarm"
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr "Repe_tir som"
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr "Sáb"
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr "Mostrar _alarmes"
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr "Soneca"
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr "Repetir alarme daqui a pouco"
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr "Repetir alarmes daqui a pouco"
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr "Repetir todos os alarmes daqui a pouco"
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr "Repetir todos os alarmes que estão tocando daqui a pouco"
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr "Soneca de:"
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr "Repetir o alarme escolhido daqui a pouco"
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr "Iniciar _Aplicativo"
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr "Iniciar automaticamente ao entrar no sistema"
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr "Parar"
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr "Interromper alarme"
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr "Interromper alarmes"
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr "Interromper todos os alarmes"
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr "Interromper todos os alarmes que estão tocando"
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr "Interromper alarme escolhido"
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr "Dom"
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr "Qui"
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr "Cronômetro"
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr "Alternar alarmes"
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr "Alternar janelas dos alarmes"
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr "Alterna a visibilidade das janelas dos alarmes"
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr "Ter"
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr "Acorde, dorminhoco(a)!"
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr "Qua"
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr "_Nome:"
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr "_Preferências"
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr "_Sair"
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr "_Repetir:"
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr "_Adiar"
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr "_Hora:"
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr "minutos"
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr "%s adiado"
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr "Você pode parar o alarme pelo menu do Alarme."
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr "%d alarmes adiados"
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr "Você pode parar alarmes pelo menu do Alarme"
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr "%s interrompidos"
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr "Alarmes recorrentes continuarão seguindo o programado."
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr "%d alarme(s) interrompidos"
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr "%s já está em execução. saindo...\n"
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr "_Repetir: %s"
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr "Selecionar arquivo de som..."
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr "Comando personalizado..."
#: ../src/alarm.c:2029
msgid "Once"
msgstr "Uma vez"
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr "Dias da semana"
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr "Finais de semana"
#: ../src/alarm.c:2038
msgid "Every day"
msgstr "Todos os dias"
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr "Sobre o %s"
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr "Impossível reproduzir '%s': %s"
#: ../src/ui.c:371
msgid "Could not play"
msgstr "Impossível reproduzir"
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr "Você pode adiar ou interromper alarmes do menu do Alarme."

472
po/ru.po Normal file
View File

@@ -0,0 +1,472 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-03-07 12:23+0000\n"
"Last-Translator: Oleg Koptev <koptev.oleg@gmail.com>\n"
"Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr "Будильник"
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr "Разбудить меня утром"
#: ../data/alarm-clock.schemas.in.h:1
msgid ""
"A list of days when the alarm should be repeated. This settings is only "
"applicable for \"clock\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr "Краткое сообщение описывающее будильник."
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr "Сообщение будильника"
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr "Повтор будильника"
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr "Область запуска будильника"
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr "Время сигнала"
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr "Временная отметка сигнала"
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr "Тип сигнала"
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr "Подъем!"
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr "Команда"
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr "Тип оповещения"
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr "Повтор сигнала"
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr "Звуковой файл"
#: ../data/alarm-clock.schemas.in.h:15
msgid ""
"The UNIX timestamp for the alarm. Must be set before the alarm is activated."
msgstr ""
"Временная отметка UNIX для будильника. Должна быть установлена до активации "
"будильника."
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr "Звуковой файл для проигрывания в режиме \"звук\"."
#: ../data/alarm-clock.schemas.in.h:18
msgid ""
"The time for the alarm. Should be in GMT for \"clock\" alarms or length in "
"seconds for \"timer\" alarms."
msgstr ""
#: ../data/alarm-clock.schemas.in.h:19
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 ""
#: ../data/alarm-clock.schemas.in.h:20
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 ""
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr ""
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr "1 минута"
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr "10 минут"
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr "3 минуты"
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr "5 минут"
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr "О программе"
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr "Настройки Alarm Clock"
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr ""
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr "Коанда:"
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr ""
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr "Удалить"
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr "Удалить будильник"
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr "Удалить выбранный будильник"
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr "Редактировать будильник"
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr "Редактировать выбранный будильник"
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr "Редактировать..."
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr "Включить"
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr "Включить/выключить"
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr "Включить/выключить будильник"
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr "Включить/выключить выбранный будильник"
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr "Пт"
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr "Основные"
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr ""
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr "Пн"
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr "Новый"
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr "Новый будильник"
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr "Новый..."
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr ""
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr "Выйти"
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr ""
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr "Сб"
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr ""
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr "Запуск _приложения"
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr "Запускать автоматически при входе в систему"
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr "Остановить"
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr "Вс"
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr "Чт"
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr "Таймер"
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr "Вт"
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr ""
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr "Ср"
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr "_Имя"
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr "_Настройки"
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr "Вход"
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr "_Повторить:"
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr ""
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr "минут(ы)"
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr ""
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr ""
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr ""
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr ""
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr ""
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr ""
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr ""
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr ""
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr ""
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr ""
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr ""
#: ../src/alarm.c:2029
msgid "Once"
msgstr ""
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr ""
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr ""
#: ../src/alarm.c:2038
msgid "Every day"
msgstr ""
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr ""
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr ""
#: ../src/ui.c:371
msgid "Could not play"
msgstr ""
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr ""

472
po/zh_CN.po Normal file
View File

@@ -0,0 +1,472 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: alarm-clock\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-03-06 16:27+0100\n"
"PO-Revision-Date: 2010-03-09 09:01+0000\n"
"Last-Translator: lhquark <lhquark@yahoo.com.cn>\n"
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-16 16:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"X-Language: zh_CN\n"
#: ../data/alarm-clock-applet.desktop.in.h:1 ../data/alarm-clock.ui.h:6
msgid "Alarm Clock"
msgstr "闹钟"
#: ../data/alarm-clock-applet.desktop.in.h:2
msgid "Wake up in the morning"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:1
msgid ""
"A list of days when the alarm should be repeated. This settings is only "
"applicable for \"clock\" alarms."
msgstr "闹钟的重复列表。此设置仅应用于“时钟”闹钟。"
#: ../data/alarm-clock.schemas.in.h:2
msgid "A short message which describes the alarm."
msgstr "描述闹钟的简短消息。"
#: ../data/alarm-clock.schemas.in.h:3
msgid "Alarm Message"
msgstr "闹钟消息"
#: ../data/alarm-clock.schemas.in.h:4
msgid "Alarm Repeat"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:5
msgid "Alarm Running State"
msgstr "闹钟运行状态"
#: ../data/alarm-clock.schemas.in.h:6
msgid "Alarm Time"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:7
msgid "Alarm Timestamp"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:8
msgid "Alarm Type"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:9
msgid "Alarm!"
msgstr ""
#: ../data/alarm-clock.schemas.in.h:10
msgid "Command"
msgstr "命令"
#: ../data/alarm-clock.schemas.in.h:11
msgid "Indicates whether the alarm has started."
msgstr "用于指示闹钟是否启动。"
#: ../data/alarm-clock.schemas.in.h:12
msgid "Notification Type"
msgstr "通知类型"
#: ../data/alarm-clock.schemas.in.h:13
msgid "Repeat Sound"
msgstr "重复响铃"
#: ../data/alarm-clock.schemas.in.h:14
msgid "Sound File"
msgstr "声音文件"
#: ../data/alarm-clock.schemas.in.h:15
msgid ""
"The UNIX timestamp for the alarm. Must be set before the alarm is activated."
msgstr "闹钟的 UNIX 时间戳。必须在闹钟激活前设定。"
#: ../data/alarm-clock.schemas.in.h:16
msgid "The command to run for the \"command\" notification type."
msgstr "“命令”通知类型下要运行的命令。"
#: ../data/alarm-clock.schemas.in.h:17
msgid "The sound file to play for the \"sound\" notification type."
msgstr "“响铃”通知类型下要播放的声音文件。"
#: ../data/alarm-clock.schemas.in.h:18
msgid ""
"The time for the alarm. Should be in GMT for \"clock\" alarms or length in "
"seconds for \"timer\" alarms."
msgstr "闹铃时间。“时钟”闹钟下应为 GMT 时间,“计时器”闹钟下应为秒长。"
#: ../data/alarm-clock.schemas.in.h:19
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 ""
"闹钟起闹时的通知类型。可以是下列之一:“响铃” 播放一个声音文件(在“声音文件”属性中指定。) “命令” 运行一个命令(在“命令”属性中指定。)"
#: ../data/alarm-clock.schemas.in.h:20
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 "闹钟类型。“时钟”为在特定时间起闹,“计时器”为经过一特定时间段后起闹。"
#: ../data/alarm-clock.schemas.in.h:21
msgid "Whether to repeat the alarm sound."
msgstr "是否要重复闹钟响铃。"
#: ../data/alarm-clock.ui.h:1
msgid "1 minute"
msgstr "1 分钟"
#: ../data/alarm-clock.ui.h:2
msgid "10 minutes"
msgstr "10 分钟"
#: ../data/alarm-clock.ui.h:3
msgid "3 minutes"
msgstr "3 分钟"
#: ../data/alarm-clock.ui.h:4
msgid "5 minutes"
msgstr "5 分钟"
#: ../data/alarm-clock.ui.h:5
msgid "About Alarm Clock"
msgstr "关于闹钟"
#: ../data/alarm-clock.ui.h:7
msgid "Alarm Clock Preferences"
msgstr "闹钟首选项"
#: ../data/alarm-clock.ui.h:8
msgid "Alarms"
msgstr "闹钟"
#: ../data/alarm-clock.ui.h:9
msgid "Alert"
msgstr ""
#: ../data/alarm-clock.ui.h:10
msgid "Co_mmand:"
msgstr "命令(_M)"
#: ../data/alarm-clock.ui.h:11
msgid "Custom..."
msgstr "定制..."
#: ../data/alarm-clock.ui.h:12
msgid "Delete"
msgstr "删除"
#: ../data/alarm-clock.ui.h:13
msgid "Delete alarm"
msgstr "删除闹钟"
#: ../data/alarm-clock.ui.h:14
msgid "Delete the selected alarm"
msgstr "删除选定闹钟"
#: ../data/alarm-clock.ui.h:15
msgid "Edit alarm"
msgstr "编辑闹钟"
#: ../data/alarm-clock.ui.h:16
msgid "Edit the selected alarm"
msgstr "编辑选定闹钟"
#: ../data/alarm-clock.ui.h:17
msgid "Edit..."
msgstr "编辑..."
#: ../data/alarm-clock.ui.h:18
msgid "Enable"
msgstr "启用"
#: ../data/alarm-clock.ui.h:19
msgid "Enable/disable"
msgstr "启用/停用"
#: ../data/alarm-clock.ui.h:20
msgid "Enable/disable alarm"
msgstr "启用/停用 闹钟"
#: ../data/alarm-clock.ui.h:21
msgid "Enable/disable the selected alarm"
msgstr "启用/停用 选定闹钟"
#: ../data/alarm-clock.ui.h:22
msgid "Fri"
msgstr "星期五"
#: ../data/alarm-clock.ui.h:23
msgid "General"
msgstr "常规"
#: ../data/alarm-clock.ui.h:24
msgid "Get up in the morning!"
msgstr ""
#: ../data/alarm-clock.ui.h:25
msgid "Manage your alarms"
msgstr "管理您的闹钟"
#: ../data/alarm-clock.ui.h:26
msgid "Mon"
msgstr "星期一"
#: ../data/alarm-clock.ui.h:27
msgid "New"
msgstr "新建"
#: ../data/alarm-clock.ui.h:28
msgid "New alarm"
msgstr "新建闹钟"
#: ../data/alarm-clock.ui.h:29
msgid "New..."
msgstr "新建..."
#: ../data/alarm-clock.ui.h:30
msgid "Play _sound"
msgstr "播放响铃(_S)"
#: ../data/alarm-clock.ui.h:31
msgid "Quit Alarm Clock"
msgstr "退出闹钟"
#: ../data/alarm-clock.ui.h:32
msgid "Repea_t sound"
msgstr "重复响铃(_T)"
#: ../data/alarm-clock.ui.h:33
msgid "Sat"
msgstr "星期六"
#: ../data/alarm-clock.ui.h:34
msgid "Show _alarms"
msgstr "显示闹钟(_A)"
#: ../data/alarm-clock.ui.h:35
msgid "Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:36
msgid "Snooze alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:37
msgid "Snooze alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:38
msgid "Snooze all alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:39
msgid "Snooze all beeping alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:40
msgid "Snooze for:"
msgstr ""
#: ../data/alarm-clock.ui.h:41
msgid "Snooze the selected alarm"
msgstr ""
#: ../data/alarm-clock.ui.h:42
msgid "Start _Application"
msgstr "启动程序(_A)"
#: ../data/alarm-clock.ui.h:43
msgid "Start automatically at login"
msgstr "登入时自动启动"
#: ../data/alarm-clock.ui.h:44
msgid "Stop"
msgstr "停止"
#: ../data/alarm-clock.ui.h:45
msgid "Stop alarm"
msgstr "停止闹钟"
#: ../data/alarm-clock.ui.h:46
msgid "Stop alarms"
msgstr "停止闹钟"
#: ../data/alarm-clock.ui.h:47
msgid "Stop all alarms"
msgstr "停止所有闹钟"
#: ../data/alarm-clock.ui.h:48
msgid "Stop all beeping alarms"
msgstr "停止所有正在起闹的闹钟"
#: ../data/alarm-clock.ui.h:49
msgid "Stop the selected alarm"
msgstr "停止选定的闹钟"
#: ../data/alarm-clock.ui.h:50
msgid "Sun"
msgstr "星期日"
#: ../data/alarm-clock.ui.h:51
msgid "Thu"
msgstr "星期四"
#: ../data/alarm-clock.ui.h:52
msgid "Timer"
msgstr "计时器"
#: ../data/alarm-clock.ui.h:53
msgid "Toggle alarms"
msgstr ""
#: ../data/alarm-clock.ui.h:54
msgid "Toggle alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:55
msgid "Toggle the visibility of the alarms window"
msgstr ""
#: ../data/alarm-clock.ui.h:56
msgid "Tue"
msgstr "星期二"
#: ../data/alarm-clock.ui.h:57
msgid "Wake up sleepy head!"
msgstr "醒来,懒虫!"
#: ../data/alarm-clock.ui.h:58
msgid "Wed"
msgstr "星期三"
#: ../data/alarm-clock.ui.h:59
msgid "_Name:"
msgstr "名称(_N)"
#: ../data/alarm-clock.ui.h:60
msgid "_Preferences"
msgstr "首选项(_P)"
#: ../data/alarm-clock.ui.h:61
msgid "_Quit"
msgstr "退出(_Q)"
#: ../data/alarm-clock.ui.h:62
msgid "_Repeat:"
msgstr "重复(_R)"
#: ../data/alarm-clock.ui.h:63
msgid "_Snooze"
msgstr ""
#: ../data/alarm-clock.ui.h:64
msgid "_Time:"
msgstr "时间(_T)"
#: ../data/alarm-clock.ui.h:65
msgid "minutes"
msgstr "分钟"
#. Single alarm snoozed
#: ../src/alarm-applet.c:73
#, c-format
msgid "%s snoozed"
msgstr ""
#: ../src/alarm-applet.c:74
#, c-format
msgid "You can stop the alarm from the Alarm Clock menu."
msgstr "您可以从闹钟菜单停止闹钟。"
#. More than 1 alarm snoozed
#: ../src/alarm-applet.c:79
#, c-format
msgid "Snoozed %d alarms"
msgstr ""
#: ../src/alarm-applet.c:80
#, c-format
msgid "You can stop alarms from the Alarm Clock menu."
msgstr "您可以从闹钟菜单停止闹钟。"
#. Single alarm stopped
#: ../src/alarm-applet.c:127
#, c-format
msgid "%s stopped"
msgstr "%s 已停止"
#: ../src/alarm-applet.c:128 ../src/alarm-applet.c:134
#, c-format
msgid "Repeating alarms will still continue according to schedule."
msgstr "重复闹钟会根据日程安排继续运行。"
#. More than 1 alarm stopped
#: ../src/alarm-applet.c:133
#, c-format
msgid "Stopped %d alarm(s)"
msgstr "%d 个闹钟已停止"
#: ../src/alarm-applet.c:650
#, c-format
msgid "%s is already running, exiting...\n"
msgstr "%s 已经在运行,正在退出...\n"
#: ../src/alarm-settings.c:79
#, c-format
msgid "_Repeat: %s"
msgstr "重复(_R) %s"
#: ../src/alarm-settings.c:246 ../src/alarm-settings.c:427
msgid "Select sound file..."
msgstr "选择声音文件..."
#: ../src/alarm-settings.c:297
msgid "Custom command..."
msgstr "定制命令..."
#: ../src/alarm.c:2029
msgid "Once"
msgstr "一次"
#: ../src/alarm.c:2032
msgid "Weekdays"
msgstr "工作日"
#: ../src/alarm.c:2035
msgid "Weekends"
msgstr "周末"
#: ../src/alarm.c:2038
msgid "Every day"
msgstr "每天"
#. About Alarm Clock
#: ../src/ui.c:342
#, c-format
msgid "About %s"
msgstr "关于 %s"
#: ../src/ui.c:370
#, c-format
msgid "Could not play '%s': %s"
msgstr "无法播放 '%s': %s"
#: ../src/ui.c:371
msgid "Could not play"
msgstr "无法播放"
#: ../src/ui.c:428
#, c-format
msgid "You can snooze or stop alarms from the Alarm Clock menu."
msgstr ""

View File

@@ -1,26 +0,0 @@
<oaf_info>
<oaf_server iid="OAFIID:AlarmClock_Factory" type="exe"
location="@BINDIR@/alarm-clock-applet">
<oaf_attribute name="repo_ids" type="stringv">
<item value="IDL:Bonobo/GenericFactory:1.0"/>
<item value="IDL:Bonobo/Unknown:1.0"/>
</oaf_attribute>
<oaf_attribute name="name" type="string" value="Alarm Clock Factory"/>
<oaf_attribute name="description" type="string" value="Factory to create the alarm clock applet"/>
</oaf_server>
<oaf_server iid="OAFIID:AlarmClock" type="factory"
location="OAFIID:AlarmClock_Factory">
<oaf_attribute name="repo_ids" type="stringv">
<item value="IDL:GNOME/Vertigo/PanelAppletShell:1.0"/>
<item value="IDL:Bonobo/Control:1.0"/>
<item value="IDL:Bonobo/Unknown:1.0"/>
</oaf_attribute>
<oaf_attribute name="name" type="string" value="Alarm Clock"/>
<oaf_attribute name="description" type="string" value="Get up in the morning!"/>
<oaf_attribute name="panel:category" type="string" value="Accessories"/>
<oaf_attribute name="panel:icon" type="string" value="alarm-clock.png"/>
</oaf_server>
</oaf_info>

View File

@@ -1,17 +1,23 @@
include $(top_srcdir)/Makefile.decl
SUBDIRS = . tests
soundsdir= $(datadir)/sounds
gladedir = $(pkgdatadir)/glade
INCLUDES = \
-I. \
-I$(srcdir) \
$(GNOME_APPLETS_CFLAGS) \
$(LIBGLADE_CFLAGS) \
$(GST_CFLAGS) \
$(GNOME_LIBS2_CFLAGS) \
$(GLIB_CFLAGS) \
$(LIBNOTIFY_CFLAGS) \
-I$(includedir)
SUBDIRS = tests
AM_CFLAGS = \
-DALARM_CLOCK_DATADIR=\"$(datadir)\" \
-DALARM_CLOCK_PKGDATADIR=\"$(pkgdatadir)\" \
@BASE_CFLAGS@ @GTK_CFLAGS@ @GSTREAMER_CFLAGS@ \
@GNOME_CFLAGS@ @WARN_CFLAGS@
LDADD = \
@BASE_LIBS@ @GTK_LIBS@ @GSTREAMER_LIBS@ \
@GNOME_LIBS@
#
# alarm-clock-applet binary
#
bin_PROGRAMS = alarm-clock-applet
@@ -19,127 +25,13 @@ alarm_clock_applet_SOURCES = 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-gconf.c alarm-gconf.h \
ui.c ui.h \
prefs.c prefs.h \
alarms-list.c alarms-list.h \
edit-alarm.c edit-alarm.h \
alarm.c alarm.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
alarm_clock_applet_LDADD = \
$(GLIB_LIBS) \
$(GNOME_LIBS2_LIBS) \
$(GNOME_APPLETS_LIBS) \
$(LIBGLADE_LIBS) \
$(GST_LIBS) \
$(LIBNOTIFY_LIBS)
serverdir = $(libdir)/bonobo/servers
server_in_files = AlarmClock.server.in
server_DATA = $(server_in_files:.server.in=.server)
$(server_DATA): $(server_in_files)
sed -e "s|\@BINDIR\@|$(bindir)|" $< > $@
uidir = $(gladedir)
ui_DATA = ui/alarm-clock.glade
icons = \
icons/alarm-clock.svg \
icons/alarm-clock.16.png \
icons/alarm-clock.22.png \
icons/alarm-clock.24.png \
icons/alarm-clock.32.png \
icons/alarm-clock.36.png \
icons/alarm-clock.48.png \
icons/alarm-clock.64.png \
icons/alarm-timer.svg \
icons/alarm-timer.16.png \
icons/alarm-timer.22.png \
icons/alarm-timer.24.png \
icons/alarm-timer.32.png \
icons/alarm-timer.36.png \
icons/alarm-timer.48.png \
icons/alarm-timer.64.png \
icons/alarm-snooze.16.png \
icons/alarm-snooze.22.png \
icons/alarm-snooze.24.png \
icons/alarm-snooze.32.png \
icons/alarm-snooze.36.png \
icons/alarm-snooze.48.png \
icons/alarm-snooze.64.png
gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
install-icons:
for icon in $(icons); do \
SIZE=`basename $$icon | cut -d. -f2`; \
FILE=`basename $$icon | cut -d. -f1,3`; \
if [ "$$SIZE" = "svg" ]; then \
SIZE="scalable"; \
FILE="$$FILE.svg"; \
else \
SIZE="$${SIZE}x$${SIZE}"; \
fi; \
mkdir -p $(DESTDIR)$(iconsdir)/hicolor/$$SIZE/apps/; \
$(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(iconsdir)/hicolor/$$SIZE/apps/$$FILE; \
done
@-if test -z "$(DESTDIR)"; then \
echo "Updating Gtk icon cache."; \
$(gtk_update_icon_cache); \
else \
echo "*** Icon cache not updated. After install, run this:"; \
echo "*** $(gtk_update_icon_cache)"; \
fi
uninstall-icons:
for icon in $(icons); do \
SIZE=`basename $$icon | cut -d. -f2`; \
FILE=`basename $$icon | cut -d. -f1,3`; \
if [ "$$SIZE" = "svg" ]; then \
SIZE="scalable"; \
FILE="$$FILE.svg"; \
else \
SIZE="$${SIZE}x$${SIZE}"; \
fi; \
rm -f $(DESTDIR)$(iconsdir)/hicolor/$$SIZE/apps/$$FILE; \
done
schemasdir = @GCONF_SCHEMA_FILE_DIR@
schemas_in_files = alarm-clock.schemas.in
schemas_DATA = $(schemas_in_files:.schemas.in=.schemas)
CLEANFILES = $(server_DATA)
# don't do this when building packages
install-schemas: $(schemas_DATA)
if test -z "$(DESTDIR)"; then \
GCONF_CONFIG_SOURCE=`$(GCONFTOOL) --get-default-source` \
$(GCONFTOOL) --makefile-install-rule \
$(schemas_DATA); \
killall -SIGTERM gconfd-2; \
fi
uninstall-schemas: $(schemas_DATA)
if test -z "$(DESTDIR)"; then \
GCONF_CONFIG_SOURCE=`$(GCONFTOOL) --get-default-source` \
$(GCONFTOOL) --makefile-uninstall-rule \
$(schemas_DATA); \
killall -SIGTERM gconfd-2; \
fi
uninstall-data:
rm -rf $(pkgdatadir)
install-data-local: install-schemas install-icons
uninstall-local: uninstall-schemas uninstall-icons uninstall-data
#@INTLTOOL_SCHEMAS_RULE@
#@INTLTOOL_SERVER_RULE@
EXTRA_DIST += $(server_in_files) \
$(schemas_DATA) \
$(icons) \
$(ui_DATA)

385
src/alarm-actions.c Normal file
View File

@@ -0,0 +1,385 @@
/*
* alarm-actions.h -- Alarm actions
*
* Copyright (C) 2010 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#include "alarm-actions.h"
#include "alarm-applet.h"
#include "alarm-list-window.h"
#define GET_ACTION(name) GTK_ACTION (gtk_builder_get_object (builder, (name)))
/**
* Initialize the various actions
*/
void
alarm_applet_actions_init (AlarmApplet *applet)
{
GtkBuilder *builder = applet->ui;
// Actions on one alarm
applet->actions_alarm = gtk_action_group_new ("alarm");
applet->action_edit = GET_ACTION ("edit-action");
applet->action_delete = GET_ACTION ("delete-action");
applet->action_enabled = GTK_TOGGLE_ACTION (GET_ACTION ("enabled-action"));
applet->action_stop = GET_ACTION ("stop-action");
applet->action_snooze = GET_ACTION ("snooze-action");
gtk_action_group_add_action (applet->actions_alarm, applet->action_edit);
gtk_action_group_add_action (applet->actions_alarm, applet->action_delete);
gtk_action_group_add_action (applet->actions_alarm, GTK_ACTION (applet->action_enabled));
gtk_action_group_add_action (applet->actions_alarm, applet->action_stop);
gtk_action_group_add_action (applet->actions_alarm, applet->action_snooze);
// Global actions
applet->actions_global = gtk_action_group_new ("global");
applet->action_new = GET_ACTION ("new-action");
applet->action_stop_all = GET_ACTION ("stop-all-action");
applet->action_snooze_all = GET_ACTION ("snooze-all-action");
applet->action_toggle_list_win = GTK_TOGGLE_ACTION (GET_ACTION ("toggle-list-win-action"));
gtk_action_set_accel_group (GTK_ACTION (applet->action_toggle_list_win),
applet->list_window->accel_group);
applet->action_toggle_autostart = GTK_TOGGLE_ACTION (GET_ACTION ("autostart-action"));
gtk_action_group_add_action (applet->actions_global, applet->action_new);
gtk_action_group_add_action (applet->actions_global, applet->action_stop_all);
gtk_action_group_add_action (applet->actions_global, applet->action_snooze_all);
gtk_action_group_add_action_with_accel (applet->actions_global,
GTK_ACTION (applet->action_toggle_list_win), "Escape");
gtk_action_group_add_action (applet->actions_global, GTK_ACTION (applet->action_toggle_autostart));
gtk_action_connect_accelerator (GTK_ACTION (applet->action_toggle_list_win));
// Update actions
alarm_applet_actions_update_sensitive (applet);
}
//
// SINGLE ALARM ACTIONS:
//
/**
* Edit alarm action
*/
void
alarm_action_edit (GtkAction *action, 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);
}
/**
* Delete alarm action
*/
void
alarm_action_delete (GtkAction *action, gpointer data)
{
AlarmApplet *applet = (AlarmApplet *)data;
AlarmListWindow *list_window = applet->list_window;
AlarmSettingsDialog *sdialog = applet->settings_dialog;
Alarm *a = alarm_list_window_get_selected_alarm (list_window);
if (!a) {
// No alarms selected
return;
}
g_debug ("AlarmAction: delete '%s'", a->message);
// DELETE ALARM
alarm_delete (a);
// If there's a settings dialog open for this alarm, close it.
if (sdialog->alarm == a) {
alarm_settings_dialog_close (sdialog);
}
// Remove from applet list
alarm_applet_alarms_remove (applet, a);
}
/**
* Enable alarm action
*/
void
alarm_action_enabled (GtkToggleAction *action, gpointer data)
{
AlarmApplet *applet = (AlarmApplet *)data;
AlarmListWindow *list_window = applet->list_window;
Alarm *a = alarm_list_window_get_selected_alarm (list_window);
gboolean active = gtk_toggle_action_get_active(action);
if (!a || a->active == active) {
// No alarms selected or no change
return;
}
g_debug ("AlarmAction: enabled(%d) '%s'", active, a->message);
alarm_set_enabled (a, active);
}
/**
* Update enabled action state
*/
void
alarm_action_update_enabled (AlarmApplet *applet)
{
Alarm *a = alarm_list_window_get_selected_alarm (applet->list_window);
gboolean active = gtk_toggle_action_get_active(applet->action_enabled);
if (!a || a->active == active) {
// No alarms selected or no change
return;
}
gtk_toggle_action_set_active (applet->action_enabled, a->active);
}
/**
* Stop alarm action
*/
void
alarm_action_stop (GtkAction *action, 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);
}
}
/**
* Snooze alarm action
*/
void
alarm_action_snooze (GtkAction *action, 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);
}
}
//
// GLOBAL ACTIONS
//
/**
* New alarm action
*/
void
alarm_action_new (GtkAction *action, gpointer data)
{
AlarmApplet *applet = (AlarmApplet *)data;
AlarmListWindow *list_window = applet->list_window;
Alarm *alarm;
AlarmListEntry *entry;
GtkTreeIter iter;
GtkTreeSelection *selection;
g_debug ("AlarmAction: new");
// Create new alarm, will fall back to defaults.
alarm = alarm_new (ALARM_GCONF_DIR, -1);
// Set first sound / app in list
if (applet->sounds != NULL) {
entry = (AlarmListEntry *)applet->sounds->data;
g_object_set (alarm, "sound-file", entry->data, NULL);
}
if (applet->apps != NULL) {
entry = (AlarmListEntry *)applet->apps->data;
g_object_set (alarm, "command", entry->data, 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);
}
// Show edit alarm dialog
alarm_settings_dialog_show (applet->settings_dialog, alarm);
}
/**
* Stop all alarms action
*/
void
alarm_action_stop_all (GtkAction *action, 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 (GtkAction *action, 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 (GtkAction *action, gpointer data)
{
AlarmApplet *applet = (AlarmApplet *)data;
AlarmListWindow *list_window = applet->list_window;
gboolean active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
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 (GtkAction *action, gpointer data)
{
// AlarmApplet *applet = (AlarmApplet *)data;
g_debug ("AlarmAction: Quit!");
// TODO: Free up resources - maybe use gtk_quit_add() & friends
gtk_main_quit ();
}
/*
* Toggle autostart action
*/
void
alarm_action_toggle_autostart (GtkAction *action, gpointer data)
{
gboolean active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
gboolean autostart_state = prefs_autostart_get_state();
//gboolean check_active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (applet->pref_autostart_check));
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);
}
}
/**
* 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_object_set (applet->actions_alarm, "sensitive", selected, NULL);
g_object_set (applet->action_stop,
"sensitive", selected && a->triggered, NULL);
g_object_set (applet->action_snooze,
"sensitive", selected && a->triggered, NULL);
//
// Update global actions
//
// If there are alarms triggered, snooze_all and stop_all should be sensitive
g_object_set (applet->action_stop_all,
"sensitive", applet->n_triggered > 0, NULL);
g_object_set (applet->action_snooze_all,
"sensitive", applet->n_triggered > 0, NULL);
}

72
src/alarm-actions.h Normal file
View File

@@ -0,0 +1,72 @@
/*
* alarm-actions.h -- Alarm actions
*
* Copyright (C) 2010 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#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 (GtkAction *action, gpointer data);
void
alarm_action_delete (GtkAction *action, gpointer data);
void
alarm_action_enabled (GtkToggleAction *action, gpointer data);
void
alarm_action_stop (GtkAction *action, gpointer data);
void
alarm_action_stop_all (GtkAction *action, gpointer data);
void
alarm_action_new (GtkAction *action, gpointer data);
void
alarm_action_snooze (GtkAction *action, gpointer data);
void
alarm_action_snooze_all (GtkAction *action, gpointer data);
void
alarm_action_toggle_list_win (GtkAction *action, gpointer data);
void
alarm_action_quit (GtkAction *action, gpointer data);
void
alarm_action_toggle_autostart (GtkAction *action, gpointer data);
#endif // ALARM_ACTIONS_H

View File

@@ -1,13 +1,38 @@
/*
* alarm-applet.c -- Alarm Clock applet bootstrap
*
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#include <stdlib.h>
#include "alarm-applet.h"
#include "alarm.h"
#include "edit-alarm.h"
#include "alarm-settings.h"
/*
* DEFINTIIONS {{
*/
gchar *supported_sound_mime_types [] = { "audio", "video", "application/ogg", NULL };
const gchar *supported_sound_mime_types [] = { "audio", "video", "application/ogg", NULL };
GHashTable *app_command_map = NULL;
/*
@@ -15,55 +40,152 @@ GHashTable *app_command_map = NULL;
*/
/*
* Snooze any running (read: playing sound) alarms.
* Snooze any triggered alarms.
*
* Returns the number of snoozed alarms
*/
void
alarm_applet_snooze_alarms (AlarmApplet *applet)
guint
alarm_applet_alarms_snooze (AlarmApplet *applet)
{
GList *l;
Alarm *a;
Alarm *a, *last_snoozed = NULL;
guint n_snoozed = 0;
gchar *summary, *body;
const gchar *icon;
g_debug ("Snoozing alarms...");
// Loop through alarms and snooze all of 'em
// Loop through alarms and snooze all triggered ones
for (l = applet->alarms; l; l = l->next) {
a = ALARM (l->data);
alarm_snooze (a);
if (a->triggered) {
alarm_applet_alarm_snooze (applet, a);
last_snoozed = a;
n_snoozed++;
}
}
// Close notification if present.
#ifdef HAVE_LIBNOTIFY
if (applet->notify) {
alarm_applet_notification_close (applet);
// Show notification
if (n_snoozed > 0) {
if (n_snoozed == 1) {
// Single alarm snoozed
summary = g_strdup_printf (_("%s snoozed"), last_snoozed->message);
body = g_strdup_printf (_("You can stop the alarm from the Alarm Clock menu."));
icon = (last_snoozed->type == ALARM_TYPE_TIMER) ? TIMER_ICON : ALARM_ICON;
alarm_applet_notification_show (applet, summary, body, icon);
} else {
// More than 1 alarm snoozed
summary = g_strdup_printf (_("Snoozed %d alarms"), n_snoozed);
body = g_strdup_printf (_("You can stop alarms from the Alarm Clock menu."));
icon = "alarm-clock";
alarm_applet_notification_show (applet, summary, body, icon);
}
#endif
g_free (summary);
g_free (body);
}
// Reset the triggered counter
applet->n_triggered = 0;
// Update status icon
alarm_applet_status_update (applet);
return n_snoozed;
}
/*
* Clear any running (read: playing sound) alarms.
* Stop any running (read: playing sound) alarms.
*/
void
alarm_applet_clear_alarms (AlarmApplet *applet)
guint
alarm_applet_alarms_stop (AlarmApplet *applet)
{
GList *l;
Alarm *a;
Alarm *a, *last_stopped = NULL;
guint n_stopped = 0;
gchar *summary, *body;
const gchar *icon;
g_debug ("Clearing alarms...");
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 (alarm_is_playing (a)) {
alarm_clear (a);
last_stopped = a;
n_stopped++;
}
}
// Close notification if present.
#ifdef HAVE_LIBNOTIFY
if (applet->notify) {
alarm_applet_notification_close (applet);
// Show notification
if (n_stopped > 0) {
if (n_stopped == 1) {
// Single alarm stopped
summary = g_strdup_printf (_("%s stopped"), last_stopped->message);
body = g_strdup_printf (_("Repeating alarms will still continue according to schedule."));
icon = (last_stopped->type == ALARM_TYPE_TIMER) ? TIMER_ICON : ALARM_ICON;
alarm_applet_notification_show (applet, summary, body, icon);
} else {
// More than 1 alarm stopped
summary = g_strdup_printf (_("Stopped %d alarm(s)"), n_stopped);
body = g_strdup_printf (_("Repeating alarms will still continue according to schedule."));
icon = "alarm-clock";
alarm_applet_notification_show (applet, summary, body, icon);
}
#endif
g_free (summary);
g_free (body);
}
// 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 {{
@@ -79,15 +201,34 @@ alarm_applet_sounds_load (AlarmApplet *applet)
GList *l, *l2;
gboolean found;
const gchar* const *sysdirs;
gchar *sounds_dir = NULL;
gchar *tmp;
gint i;
//g_assert (applet->alarms);
// Free old list
if (applet->sounds != NULL)
alarm_list_entry_list_free (&(applet->sounds));
// Locate gnome sounds
sysdirs = g_get_system_data_dirs ();
for (i = 0; !sounds_dir && sysdirs[i] != NULL; i++) {
tmp = g_build_filename(sysdirs[i], "sounds/gnome/default/alerts", NULL);
if (g_file_test (tmp, G_FILE_TEST_IS_DIR)) {
// Load stock sounds
applet->sounds = alarm_list_entry_list_new ("file://" ALARM_SOUNDS_DIR,
supported_sound_mime_types);
g_debug ("AlarmApplet: sounds_load: Found %s!", tmp);
sounds_dir = g_strdup_printf ("file://%s", tmp);
applet->sounds = alarm_list_entry_list_new (sounds_dir, supported_sound_mime_types);
g_free (sounds_dir);
}
g_free(tmp);
}
if (!sounds_dir) {
g_warning ("AlarmApplet: Could not locate sounds!");
}
// Load custom sounds from alarms
for (l = applet->alarms; l != NULL; l = l->next) {
@@ -167,11 +308,10 @@ gnome_da_xml_get_string (const xmlNode *parent, const gchar *val_name)
ret_val = (gchar *) xmlNodeGetContent (element);
} else {
for (i = 0; sys_langs[i] != NULL; i++) {
if (!strcmp (sys_langs[i], node_lang)) {
if (!strcmp (sys_langs[i], (const char *)node_lang)) {
ret_val = (gchar *) xmlNodeGetContent (element);
/* since sys_langs is sorted from most desirable to
* least desirable, exit at first match
*/
// since sys_langs is sorted from most desirable to
// least desirable, exit at first match
break;
}
}
@@ -191,8 +331,8 @@ get_app_command (const gchar *app)
if (app_command_map == NULL) {
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. */
// `rhythmbox-client --play' doesn't actually start playing unless
// Rhythmbox is already running. Sounds like a Bug.
g_hash_table_insert (app_command_map,
"rhythmbox", "rhythmbox-client --play");
@@ -221,35 +361,37 @@ alarm_applet_apps_load (AlarmApplet *applet)
xmlNode *root, *section, *element;
gchar *executable;
const gchar *tmp;
const gchar* const *sysdirs;
gint i;
if (applet->apps != NULL)
alarm_list_entry_list_free (&(applet->apps));
// Locate g-d-a.xml
sysdirs = g_get_system_data_dirs ();
for (i = 0; sysdirs[i] != NULL; i++) {
// We'll get the default media players from g-d-a.xml
// from gnome-control-center
filename = g_build_filename (DATADIR,
filename = g_build_filename (sysdirs[i],
"gnome-control-center",
"default-apps",
"gnome-default-applications.xml",
NULL);
if (!g_file_test (filename, G_FILE_TEST_EXISTS)) {
g_critical ("Could not find %s.", filename);
return;
}
if (g_file_test (filename, G_FILE_TEST_EXISTS)) {
xml_doc = xmlParseFile (filename);
if (!xml_doc) {
g_warning ("Could not load %s.", filename);
return;
continue;
}
root = xmlDocGetRootElement (xml_doc);
for (section = root->children; section != NULL; section = section->next) {
if (!xmlStrncmp (section->name, "media-players", 13)) {
if (!xmlStrncmp (section->name, (const xmlChar *)"media-players", 13)) {
for (element = section->children; element != NULL; element = element->next) {
if (!xmlStrncmp (element->name, "media-player", 12)) {
if (!xmlStrncmp (element->name, (const xmlChar *)"media-player", 12)) {
executable = gnome_da_xml_get_string (element, "executable");
if (is_executable_valid (executable)) {
name = gnome_da_xml_get_string (element, "name");
@@ -284,127 +426,45 @@ alarm_applet_apps_load (AlarmApplet *applet)
}
}
g_free(filename);
break;
}
g_free (filename);
g_free(filename);
}
// entry = alarm_list_entry_new("Rhythmbox Music Player", "rhythmbox", "rhythmbox");
// applet->apps = g_list_append (applet->apps, entry);
}
/*
* Alarm signals {{
*/
/*
* Find the soonest-to-trigger upcoming alarm
*/
static void
alarm_applet_upcoming_alarm_update (AlarmApplet *applet)
{
GList *l;
Alarm *a;
applet->upcoming_alarm = NULL;
/* Loop through alarms looking for all active upcoming alarms and locate
* the one which will trigger sooner.
*/
for (l = applet->alarms; l; l = l->next) {
a = ALARM (l->data);
if (!a->active) continue;
if (!applet->upcoming_alarm || a->timestamp < applet->upcoming_alarm->timestamp) {
// This alarm is most recent
applet->upcoming_alarm = a;
}
}
}
/*
* Callback for when an alarm is activated / deactivated.
* We use this to update our closest upcoming alarm.
*/
static void
alarm_active_changed (GObject *object,
GParamSpec *param,
gpointer data)
{
Alarm *alarm = ALARM (object);
AlarmApplet *applet = (AlarmApplet *)data;
g_debug ("alarm_active_changed: #%d to %d", alarm->id, alarm->active);
// Check if this was the upcoming alarm
if (!alarm->active) {
if (applet->upcoming_alarm == alarm) {
applet->upcoming_alarm = NULL;
alarm_applet_upcoming_alarm_update (applet);
alarm_applet_label_update (applet);
alarm_applet_icon_update (applet);
return;
}
}
if (!applet->upcoming_alarm || alarm->timestamp < applet->upcoming_alarm->timestamp) {
// We're next!
applet->upcoming_alarm = alarm;
alarm_applet_label_update (applet);
return;
}
}
/*
* Callback for when an alarm is triggered
* We show the notification bubble here if appropriate.
*/
static void
alarm_triggered (Alarm *alarm, gpointer data)
{
AlarmApplet *applet = (AlarmApplet *)data;
g_debug ("Alarm triggered: #%d", alarm->id);
if (alarm->notify_bubble) {
g_debug ("Alarm #%d NOTIFICATION DISPLAY", alarm->id);
alarm_applet_notification_display (applet, alarm);
}
}
/*
* }} Alarm signals
*/
/*
* Alarms list {{
*/
// TODO: Refactor to use a GHashTable instead
// TODO: Refactor to use a GHashTable instead?
void
alarm_applet_alarms_load (AlarmApplet *applet)
{
if (applet->alarms != NULL) {
GList *l;
GList *list = NULL;
GList *l = NULL;
/* Free old alarm objects */
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 */
// Free list
g_list_free (applet->alarms);
}
/* Fetch list of alarms */
applet->alarms = alarm_get_list (applet->gconf_dir);
// Fetch list of alarms and add them
applet->alarms = NULL;
list = alarm_get_list (ALARM_GCONF_DIR);
for (l = list; l != NULL; l = l->next) {
alarm_applet_alarms_add (applet, ALARM (l->data));
}
}
void
@@ -412,37 +472,39 @@ 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, "notify::active", G_CALLBACK (alarm_active_changed), applet);
g_signal_connect (alarm, "notify::time", G_CALLBACK (alarm_active_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 (AlarmApplet *applet, Alarm *alarm)
{
/*
* Remove from list
*/
// 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);
// 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);
/*
* If this is the upcoming alarm, update it.
*/
if (applet->upcoming_alarm == alarm) {
alarm_applet_upcoming_alarm_update (applet);
// 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
*/
// Dereference alarm
g_object_unref (alarm);
}
@@ -450,7 +512,8 @@ alarm_applet_alarms_remove (AlarmApplet *applet, Alarm *alarm)
* }} Alarms list
*/
void
// TODO: Is this function needed?
/*void
alarm_applet_destroy (AlarmApplet *applet)
{
GList *l;
@@ -459,19 +522,14 @@ alarm_applet_destroy (AlarmApplet *applet)
g_debug ("AlarmApplet DESTROY");
// Remove any timers
if (applet->timer_id) {
g_source_remove (applet->timer_id);
}
// Destroy alarms list
if (applet->list_alarms_dialog) {
list_alarms_dialog_close (applet);
}
// TODO: Destroy alarms list
// if (applet->list_alarms_dialog) {
// list_alarms_dialog_close (applet);
// }
// Destroy preferences dialog
if (applet->preferences_dialog) {
gtk_widget_destroy (GTK_WIDGET (applet->preferences_dialog));
if (applet->prefs_dialog) {
gtk_widget_destroy (GTK_WIDGET (applet->prefs_dialog));
}
// Loop through all alarms and free like a mad man!
@@ -479,12 +537,7 @@ alarm_applet_destroy (AlarmApplet *applet)
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);
if (dialog) {
alarm_settings_dialog_close (dialog);
//g_free (dialog);
}
//dialog = (AlarmSettingsDialog *)g_hash_table_lookup (applet->edit_alarm_dialogs, (gconstpointer)a->id);
g_object_unref (a);
}
@@ -505,93 +558,146 @@ alarm_applet_destroy (AlarmApplet *applet)
}
// Free GConf dir
g_free (applet->gconf_dir);
//g_free (applet->gconf_dir);
// Finally free the AlarmApplet struct itself
g_free (applet);
}*/
static UniqueResponse
unique_app_message_cb (UniqueApp *app,
UniqueCommand command,
UniqueMessageData *message,
guint time_,
gpointer user_data)
{
AlarmApplet *applet = (AlarmApplet *)user_data;
UniqueResponse res;
switch (command) {
case UNIQUE_ACTIVATE:
g_debug ("AlarmApplet: unique_app_message: ACTIVATE");
if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (applet->action_toggle_list_win))) {
// Already visible, present to user
alarm_list_window_show (applet->list_window);
} else {
// Toggle list window visibility
gtk_action_activate (GTK_ACTION (applet->action_toggle_list_win));
}
res = UNIQUE_RESPONSE_OK;
break;
default:
g_warning ("AlarmApplet: unique_app_message: Unknown command %d",
command);
res = UNIQUE_RESPONSE_INVALID;
break;
}
return res;
}
/*
* INIT {{
*/
static gboolean
alarm_applet_factory (PanelApplet *panelapplet,
const gchar *iid,
gpointer data)
static AlarmApplet*
alarm_applet_init()
{
AlarmApplet *applet;
if (strcmp (iid, "OAFIID:AlarmClock") != 0)
return FALSE;
/* Initialize applet struct,
* fill with zero's */
// Initialize applet struct */
applet = g_new0 (AlarmApplet, 1);
applet->parent = panelapplet;
applet->edit_alarm_dialogs = g_hash_table_new (NULL, NULL);
//applet->edit_alarm_dialogs = g_hash_table_new (NULL, NULL);
/* Preferences (defaults).
* ...gconf_get_string can return NULL if the key is not found. We can't
* assume the schema provides the default values for strings. */
applet->show_label = TRUE;
applet->label_type = LABEL_TYPE_TIME;
// Preferences (defaults).
// ...gconf_get_string can return NULL if the key is not found. We can't
// assume the schema provides the default values for strings.
/* Prepare applet */
panel_applet_add_preferences (applet->parent, ALARM_SCHEMA_DIR, NULL);
panel_applet_set_flags (PANEL_APPLET (panelapplet), PANEL_APPLET_EXPAND_MINOR);
applet->gconf_dir = panel_applet_get_preferences_key (applet->parent);
// TODO: Add to gconf
applet->snooze_mins = 5;
/* Set up gconf handlers */
// Set up gconf handlers
alarm_applet_gconf_init (applet);
/* Load gconf values */
// Load gconf values
alarm_applet_gconf_load (applet);
/* Load alarms */
// Load alarms
alarm_applet_alarms_load (applet);
/* Find any upcoming active alarms */
alarm_applet_upcoming_alarm_update (applet);
/* Load sounds from alarms */
// Load sounds from alarms
alarm_applet_sounds_load (applet);
/* Load apps for alarms */
// Load apps for alarms
alarm_applet_apps_load (applet);
/* Connect sound_file notify callback to all alarms */
alarm_signal_connect_list (applet->alarms, "notify::sound-file",
G_CALLBACK (alarm_sound_file_changed), applet);
/* Connect active & time notify callback to all alarms */
alarm_signal_connect_list (applet->alarms, "notify::active",
G_CALLBACK (alarm_active_changed), applet);
alarm_signal_connect_list (applet->alarms, "notify::time",
G_CALLBACK (alarm_active_changed), applet);
/* Connect alarm trigger notify to all alarms */
alarm_signal_connect_list (applet->alarms, "alarm",
G_CALLBACK (alarm_triggered), applet);
/* Set up properties menu */
alarm_applet_menu_init (applet);
/* Set up applet */
// Set up applet UI
alarm_applet_ui_init (applet);
return TRUE;
return applet;
}
PANEL_APPLET_BONOBO_FACTORY ("OAFIID:AlarmClock_Factory",
PANEL_TYPE_APPLET,
"alarm_clock",
VERSION,
alarm_applet_factory,
NULL);
/**
* Alarm Clock main()
*/
int
main (int argc, char *argv[])
{
UniqueApp *unique_app;
AlarmApplet *applet;
// 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+
gtk_init (&argc, &argv);
// Initialize unique app
unique_app = unique_app_new ("com.pseudoberries.AlarmClock", NULL);
// Check if we're already running
if (unique_app_is_running (unique_app)) {
g_printerr(_("%s is already running, exiting...\n"), PACKAGE);
// Send activate message
UniqueMessageData *message = unique_message_data_new ();
unique_app_send_message (unique_app, UNIQUE_ACTIVATE, message);
unique_message_data_free (message);
g_object_unref (unique_app);
return EXIT_SUCCESS;
}
// Initialize applet
applet = alarm_applet_init ();
// Connect unique app message-received signal
g_signal_connect (unique_app, "message-received",
G_CALLBACK (unique_app_message_cb), applet);
// Start main loop
gtk_main ();
g_object_unref (unique_app);
return 0;
}
/*
* }} INIT

View File

@@ -1,3 +1,26 @@
/*
* alarm-applet.h -- Alarm Clock applet bootstrap
*
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#ifndef ALARMAPPLET_H_
#define ALARMAPPLET_H_
@@ -7,26 +30,20 @@
#include <libxml/parser.h>
#include <gtk/gtk.h>
#include <gnome.h>
#include <glade/glade.h>
#include <glib/gi18n.h>
#include <gdk/gdkkeysyms.h>
#include <gconf/gconf-client.h>
#include <gst/gst.h>
#include <libgnomevfs/gnome-vfs.h>
#include <libgnomevfs/gnome-vfs-application-registry.h>
#include <unique/unique.h>
#include <panel-applet.h>
#include <panel-applet-gconf.h>
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
//#include <panel-applet.h>
//#include <panel-applet-gconf.h>
G_BEGIN_DECLS
typedef struct _AlarmApplet AlarmApplet;
gchar *supported_sound_mime_types[];
const gchar *supported_sound_mime_types[];
GHashTable *app_command_map;
void alarm_applet_label_update (AlarmApplet *applet);
@@ -43,15 +60,8 @@ void alarm_applet_clear_alarms (AlarmApplet *applet);
#define ALARM_NAME "Alarm Clock"
#define ALARM_ICON "alarm-clock"
#define TIMER_ICON "alarm-timer"
#define SNOOZE_ICON "alarm-snooze"
#define ALARM_SCHEMA_DIR "/schemas/apps/alarm_clock/prefs"
#define ALARM_UI_XML GNOME_GLADEDIR "/alarm-clock.glade"
#define ALARM_SOUNDS_DIR GNOME_SOUNDSDIR
#define ALARM_DEF_LABEL _("No alarms")
#ifndef VERSION
#define VERSION "0.1"
#endif
#define ALARM_GCONF_DIR "/apps/alarm-clock"
#define ALARM_STD_SNOOZE 9
typedef enum {
LABEL_TYPE_INVALID = 0,
@@ -60,60 +70,54 @@ typedef enum {
} LabelType;
struct _AlarmApplet {
PanelApplet *parent;
PanelAppletOrient orient;
gchar *gconf_dir;
/* User Interface */
GtkBuilder *ui;
/* Panel UI */
GtkWidget *icon; /* alarm icon */
GtkWidget *label; /* clock label */
GtkWidget *box; /* packing box */
guint timer_id; /* timer ID for updating the label */
/* Status Icon */
GtkStatusIcon *status_icon;
GtkWidget *status_menu;
/* Alarms */
GList *alarms;
Alarm *upcoming_alarm; /* Next upcoming alarm */
guint n_triggered; // Number of triggered alarms
/* Sounds & apps list */
GList *sounds;
GList *apps;
/* List-alarms UI */
GtkDialog *list_alarms_dialog;
GtkListStore *list_alarms_store;
GtkTreeView *list_alarms_view;
GList *list_alarms_args;
AlarmListWindow *list_window;
/* Open edit alarm dialogs
* Hashed by ID */
GHashTable *edit_alarm_dialogs;
/* Alarm settings dialog */
AlarmSettingsDialog *settings_dialog;
/* Preferences */
GtkDialog *preferences_dialog;
GtkDialog *prefs_dialog;
GtkWidget *prefs_autostart_check;
/* Notification */
#ifdef HAVE_LIBNOTIFY
NotifyNotification *notify;
#endif
guint snooze_mins;
/* Label */
GtkWidget *pref_label_show;
GtkWidget *pref_label_type_box;
GtkWidget *pref_label_type_time;
GtkWidget *pref_label_type_remain;
// Actions on one alarm
GtkActionGroup *actions_alarm;
/* Actual preferences data */
gboolean show_label;
LabelType label_type;
GtkAction *action_edit;
GtkAction *action_delete;
GtkToggleAction *action_enabled;
GtkAction *action_stop;
GtkAction *action_snooze;
// Global actions
GtkActionGroup *actions_global;
GtkAction *action_new;
GtkAction *action_stop_all;
GtkAction *action_snooze_all;
GtkToggleAction *action_toggle_list_win;
GtkToggleAction *action_toggle_autostart;
/* GConf */
guint listeners [N_GCONF_PREFS];
};
static void set_alarm_time (AlarmApplet *applet, guint hour, guint minute, guint second);
//static void time_changed_cb (GtkSpinButton *spinbutton, gpointer data);
void alarm_applet_sounds_load (AlarmApplet *applet);
void alarm_applet_apps_load (AlarmApplet *applet);
@@ -124,6 +128,14 @@ void alarm_applet_alarms_add (AlarmApplet *applet, Alarm *alarm);
void alarm_applet_alarms_remove (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);
G_END_DECLS

View File

@@ -0,0 +1,51 @@
=head1 NAME
alarm-clock-applet - Alarm Clock applet for GNOME
=head1 SYNOPSIS
alarm-clock-applet
=head1 DESCRIPTION
Alarm Clock is a fully-featured alarm clock appelt for the GNOME panel.
It's easy to use yet powerful with support for multiple 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.
Please see http://alarm-clock.pseudoberries.com/ for more information.
=head1 OPTIONS
=over 8
=item B<--help>
Show help message
=item B<--version>
Displays information about the currently installed version and exists.
=head1 BUGS
Please report bugs at https://bugs.launchpad.net/alarm-clock/
=head1 AUTHORS
B<Alarm Clock> was written by Johannes H. Jensen <joh@pseudoberries.com>.
=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

View File

@@ -1,203 +0,0 @@
<?xml version="1.0"?>
<gconfschemafile>
<schemalist>
<!--
Applet specific:
-->
<schema>
<key>/schemas/apps/alarm_clock/prefs/show_label</key>
<owner>alarm-clock</owner>
<type>bool</type>
<locale name="C">
<default>true</default>
<short>Show a label on the applet or not.</short>
<long>Whether the applet should have a label on the right side
of the icon, indicating its state.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm_clock/prefs/label_type</key>
<owner>alarm-clock</owner>
<type>string</type>
<locale name="C">
<default>alarm-time</default>
<short>Type of label to display.</short>
<long>The type of label to display if show_label is true.
Can be either "alarm-time" for showing the current alarm time of the
closest alarm (read: first one to trigger) or "remaining-time" for showing
the time remaining until the closest alarm goes off.
</long>
</locale>
</schema>
<!--
Alarm specific:
-->
<schema>
<key>/schemas/apps/alarm_clock/alarm/type</key>
<owner>alarm-clock</owner>
<type>string</type>
<locale name="C">
<default>clock</default>
<short>Alarm type</short>
<long>The type of the alarm. Either "clock" for an alarm which triggers
at a specific time of day or "timer" for an alarm which triggers
after a specified period of time.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm_clock/alarm/timestamp</key>
<owner>alarm-clock</owner>
<type>int</type>
<locale name="C">
<default>0</default>
<short>Alarm timestamp</short>
<long>The UNIX timestamp for the alarm.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm_clock/alarm/time</key>
<owner>alarm-clock</owner>
<type>int</type>
<locale name="C">
<default>0</default>
<short>Alarm time</short>
<long>The time (GMT) for the alarm.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm_clock/alarm/message</key>
<owner>alarm-clock</owner>
<type>string</type>
<locale name="C">
<default>Alarm!</default>
<short>Message describing this alarm.</short>
<long>A short message which will be displayed when the alarm goes off.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm_clock/alarm/active</key>
<owner>alarm-clock</owner>
<type>bool</type>
<locale name="C">
<default>false</default>
<short>The running state of the alarm.</short>
<long>If true, indicates that the alarm is started.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm_clock/alarm/repeat</key>
<owner>alarm-clock</owner>
<type>list</type>
<list_type>string</list_type>
<locale name="C">
<default>[]</default>
<short>When to repeat the alarm.</short>
<long>Indicates which days to repeat the alarm. Only applicable for "clock" alarms.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm_clock/alarm/snooze</key>
<owner>alarm-clock</owner>
<type>int</type>
<locale name="C">
<default>0</default>
<short>Enable snoozing of alarm.</short>
<long>If non-zero, indicates that the alarm can be snoozed for the selected minutes.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm_clock/alarm/notify_type</key>
<owner>alarm-clock</owner>
<type>string</type>
<locale name="C">
<default>sound</default>
<short>Type of notification to use.</short>
<long>The type of notification to use when the alarm is triggered.
Can be one of the following:
"sound" to play a sound. The sound must be set in the "sound_file" property.
"command" to run a command.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm_clock/alarm/sound_file</key>
<owner>alarm-clock</owner>
<type>string</type>
<locale name="C">
<default></default>
<short>Sound file to play on alarm.</short>
<long>The sound file to play for the "sound" notification type.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm_clock/alarm/sound_repeat</key>
<owner>alarm-clock</owner>
<type>bool</type>
<locale name="C">
<default>TRUE</default>
<short>Repeat sound.</short>
<long>Whether we should repeat the alarm sound or not.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm_clock/alarm/command</key>
<owner>alarm-clock</owner>
<type>string</type>
<locale name="C">
<default>rhythmbox-client --play</default>
<short>Command to run on alarm.</short>
<long>The command to run for the "command" notification type.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/alarm_clock/alarm/notify_bubble</key>
<owner>alarm-clock</owner>
<type>bool</type>
<locale name="C">
<default>true</default>
<short>Show notification bubble on alarm.</short>
<long>Check to show a notification bubble on alarm (with libnotify).</long>
</locale>
</schema>
<!--
<schema>
<key>/schemas/apps/alarm_clock/prefs/</key>
<owner>alarm-clock</owner>
<type></type>
<locale name="C">
<default></default>
<short></short>
<long></long>
</locale>
</schema>
-->
</schemalist>
</gconfschemafile>

View File

@@ -1,15 +1,31 @@
/*
* alarm-gconf.c -- GConf routines
*
* ALARM APPLET Gconf callbacks and utilities.
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#include <time.h>
#include <panel-applet-gconf.h>
#include "alarm-applet.h"
#include "alarm-gconf.h"
#include "edit-alarm.h"
#include "alarm-settings.h"
#include "alarm.h"
/*
@@ -24,7 +40,7 @@ GConfEnumStringPair label_type_enum_map [] = {
/*
* GCONF CALLBACKS {{
*/
/*
void
alarm_applet_gconf_show_label_changed (GConfClient *client,
guint cnxn_id,
@@ -72,16 +88,16 @@ alarm_applet_gconf_label_type_changed (GConfClient *client,
pref_update_label_type (applet);
}
}
*/
/*
/**
* Triggered on global changes to our gconf preference dir.
* We do this because we're interested in the events where
* an alarm directory is either added or deleted externally.
*
* When this happens we update our list of alarms.
*/
void
static void
alarm_applet_gconf_global_change (GConfClient *client,
guint cnxn_id,
GConfEntry *entry,
@@ -94,7 +110,7 @@ alarm_applet_gconf_global_change (GConfClient *client,
gint id, i, len;
gboolean found = FALSE;
//g_debug ("GLOBAL_change: %s", entry->key);
g_debug ("GLOBAL_change: %s", entry->key);
/*
* We're only interested in the first part of the key matching
@@ -102,7 +118,7 @@ alarm_applet_gconf_global_change (GConfClient *client,
*
* Here we extract {something}
*/
dir = applet->gconf_dir;
dir = ALARM_GCONF_DIR;
len = strlen (entry->key);
str = g_string_new ("");
@@ -137,11 +153,10 @@ alarm_applet_gconf_global_change (GConfClient *client,
g_debug ("\tDELETE alarm #%d %p", id, a);
/* If there's a settings dialog open for this
* alarm, destroy it.
* alarm, close it.
*/
AlarmSettingsDialog *sdialog = g_hash_table_lookup (applet->edit_alarm_dialogs, (gconstpointer)a->id);
if (sdialog) {
alarm_settings_dialog_close (sdialog);
if (applet->settings_dialog->alarm == a) {
alarm_settings_dialog_close (applet->settings_dialog);
}
/*
@@ -149,24 +164,19 @@ alarm_applet_gconf_global_change (GConfClient *client,
*/
alarm_applet_alarms_remove (applet, a);
// Update view
if (applet->list_alarms_dialog)
list_alarms_update (applet);
} else if (!found && entry->value != NULL) {
// ADDED ALARM
/*
* Add to list
*/
a = alarm_new (applet->gconf_dir, id);
a = alarm_new (ALARM_GCONF_DIR, id);
g_debug ("\tADD alarm #%d %p", id, a);
alarm_applet_alarms_add (applet, a);
// Update view
if (applet->list_alarms_dialog)
list_alarms_update (applet);
} else if (found) {
//alarm_list_window_alarm_update (applet->list_window, a);
}
}
@@ -185,11 +195,12 @@ void
alarm_applet_gconf_init (AlarmApplet *applet)
{
GConfClient *client;
gchar *key;
client = gconf_client_get_default ();
key = panel_applet_gconf_get_full_key (PANEL_APPLET (applet->parent), KEY_SHOW_LABEL);
/*key = panel_applet_gconf_get_full_key (PANEL_APPLET (applet->parent), KEY_SHOW_LABEL);
applet->listeners [0] =
gconf_client_notify_add (
client, key,
@@ -204,19 +215,16 @@ alarm_applet_gconf_init (AlarmApplet *applet)
(GConfClientNotifyFunc) alarm_applet_gconf_label_type_changed,
applet, NULL, NULL);
g_free (key);
*/
/*
* Listen for changes to the alarms.
* We want to know when an alarm is added and removed.
*/
key = panel_applet_get_preferences_key(PANEL_APPLET (applet->parent));
applet->listeners [2] =
gconf_client_notify_add (
client, key,
client, ALARM_GCONF_DIR,
(GConfClientNotifyFunc) alarm_applet_gconf_global_change,
applet, NULL, NULL);
g_free (key);
}
@@ -229,33 +237,7 @@ alarm_applet_gconf_init (AlarmApplet *applet)
void
alarm_applet_gconf_load (AlarmApplet *applet)
{
GConfClient *client;
GConfValue *value;
gchar *key;
gchar *tmp;
/*GConfClient *client;
client = gconf_client_get_default ();
// SHOW_LABEL:
key = panel_applet_gconf_get_full_key (PANEL_APPLET (applet->parent), KEY_SHOW_LABEL);
value = gconf_client_get (client, key, NULL);
if (value == NULL) {
// Schema defaults not found
applet->show_label = DEF_SHOW_LABEL;
panel_applet_gconf_set_bool (applet->parent, KEY_SHOW_LABEL, DEF_SHOW_LABEL, NULL);
} else {
applet->show_label = gconf_value_get_bool (value);
gconf_value_free (value);
}
g_free (key);
// LABEL_TYPE:
tmp = panel_applet_gconf_get_string (applet->parent, KEY_LABEL_TYPE, NULL);
if (tmp == NULL || !gconf_string_to_enum (label_type_enum_map, tmp, (gint *)&(applet->label_type))) {
// Schema defaults not found or unable to map
applet->label_type = DEF_LABEL_TYPE;
panel_applet_gconf_set_string (applet->parent, KEY_LABEL_TYPE, gconf_enum_to_string (label_type_enum_map, DEF_LABEL_TYPE), NULL);
}
g_free(tmp);
client = gconf_client_get_default ();*/
}

View File

@@ -1,26 +1,44 @@
/*
* alarm-gconf.h -- GConf routines
*
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#ifndef ALARM_GCONF_H_
#define ALARM_GCONF_H_
#include <time.h>
#include <panel-applet-gconf.h>
//#include <panel-applet-gconf.h>
#include "alarm-applet.h"
G_BEGIN_DECLS
/* Global GConf keys */
#define KEY_SHOW_LABEL "show_label"
#define KEY_LABEL_TYPE "label_type"
#define KEY_SHOW_NOTIFY "show_notification"
#define N_GCONF_PREFS 3 /* + global gconf listener */
#define N_GCONF_PREFS 2 /* + global gconf listener */
/* Failsafe defaults for use when the schema isn't found
* or doesn't provide sensible defaults */
#define DEF_SHOW_LABEL TRUE
#define DEF_LABEL_TYPE LABEL_TYPE_TIME
/* We store enums as strings */
GConfEnumStringPair label_type_enum_map [];
#define DEF_SHOW_NOTIFY TRUE
/*
* Init

697
src/alarm-list-window.c Normal file
View File

@@ -0,0 +1,697 @@
/*
* alarms-list.d -- Alarm list window
*
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#include <time.h>
#include "alarm-list-window.h"
#include "alarm-settings.h"
#include "alarm-actions.h"
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);
/**
* 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"));
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 window accelerator group
list_window->accel_group = gtk_accel_group_new ();
gtk_window_add_accel_group (list_window->window, list_window->accel_group);
// 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);
// Update view every 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);
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());
}
/**
* Hide list window
*/
void
alarm_list_window_hide (AlarmListWindow *list_window)
{
gtk_widget_hide (GTK_WIDGET (list_window->window));
}
/**
* Toggle visibility of list window
*/
void
alarm_list_window_toggle (AlarmListWindow *list_window)
{
if (GTK_WIDGET_VISIBLE (list_window->window)) {
alarm_list_window_hide (list_window);
} else {
alarm_list_window_show (list_window);
}
}
//
// 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;
}
return TRUE;
}
valid = gtk_tree_model_iter_next(model, &it);
}
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;
const gchar *type_col;
const gchar *time_format;
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) {
tm = alarm_get_remain (a);
} else {
tm = alarm_get_time (a);
}
if (a->type == ALARM_TYPE_CLOCK) {
type_col = ALARM_ICON;
time_format = TIME_COL_CLOCK_FORMAT;
} else {
type_col = TIMER_ICON;
time_format = TIME_COL_TIMER_FORMAT;
}
// Create time column
strftime(tmp, sizeof(tmp), time_format, tm);
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_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 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;
valid = gtk_tree_model_get_iter_first (model, &iter);
while (valid) {
alarm_list_window_update_row (applet->list_window, &iter);
gtk_tree_model_get (model, &iter,
COLUMN_ALARM, &a,
COLUMN_SHOW_ICON, &show_icon, -1);
// Blink icon on triggered alarms
if (a->triggered) {
gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_SHOW_ICON, !show_icon, -1);
}
valid = gtk_tree_model_iter_next(model, &iter);
}
// 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);
}
return ret;
}
//
// TREE VIEW:
//
/**
* Get the selected alarm
*/
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?
//g_object_unref (a);
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 : "<none>", a,
(list_window->selected_alarm) ? list_window->selected_alarm->message : "<none>",
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
gtk_action_activate (GTK_ACTION (applet->action_enabled));
}
}
/**
* 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;
Alarm *a;
// Return if list_window is not set. This happens during initialization.
if (!list_window)
return;
// Retain selected alarm
a = alarm_list_window_get_selected_alarm (list_window);
// 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_widget_get_name (GTK_WIDGET (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;
gtk_action_activate (applet->action_snooze);
}
}
/**
* 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);
}
}
}
/**
* 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;
GList *l = NULL;
g_debug ("AlarmListWindow: menu_update to %d", applet->snooze_mins);
block_list (menu->children, alarm_list_window_snooze_menu_activated);
for (l = menu->children; l != NULL; l = l->next) {
item = GTK_MENU_ITEM (l->data);
name = gtk_widget_get_name (GTK_WIDGET (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 (menu->children, alarm_list_window_snooze_menu_activated);
g_free (target_name);
}

119
src/alarm-list-window.h Normal file
View File

@@ -0,0 +1,119 @@
/*
* alarms-list.h -- Alarm list window
*
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#ifndef ALARM_LIST_WINDOW_H_
#define ALARM_LIST_WINDOW_H_
#include <gtk/gtk.h>
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;
GtkAccelGroup *accel_group;
};
//#define TIME_COL_FORMAT "<span font='Bold 11'>%H:%M:%S</span>"
// TODO: Does fixing the font size give a11y problems?
#define TIME_COL_CLOCK_FORMAT "<span font='Bold 11'> %H:%M</span><span font='Bold 7'>:%S</span>"
#define TIME_COL_TIMER_FORMAT "<span font='Bold 11'>-%H:%M</span><span font='Bold 7'>:%S</span>"
#define TIME_COL_REPEAT_FORMAT "\n <sup>%s</sup>"
#define LABEL_COL_FORMAT "%s"
#define LABEL_COL_TRIGGERED_FORMAT "<b>%s</b>"
#define CLOCK_FORMAT "%H:%M"
#define TIMER_FORMAT "-%H:%M"
#define DELETE_DIALOG_TITLE _("Delete %s?")
#define DELETE_DIALOG_TEXT _("<big>Delete %s <b>%s</b>?</big>")
#define DELETE_DIALOG_SECONDARY _("Are you sure you want to delete the %s labeled <b>%s</b> scheduled at <b>%s</b>? 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);
#endif /*ALARM_LIST_WINDOW_H_*/

894
src/alarm-settings.c Normal file
View File

@@ -0,0 +1,894 @@
/*
* alarm-settings.c -- Alarm settings dialog
*
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#include "alarm-settings.h"
#include "alarm-applet.h"
#include "alarm.h"
#include "player.h"
#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
/*
* 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
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);
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()");
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;
gint sound_pos = -1;
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 (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!
sound_pos = pos;
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)
{
AlarmListEntry *item;
GList *l;
guint pos, len;
gboolean custom = FALSE;
pos = gtk_combo_box_get_active (GTK_COMBO_BOX (dialog->notify_app_combo));
item = g_list_nth_data (dialog->applet->apps, pos);
if (item && g_strcmp0 (item->data, 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 = (AlarmListEntry *)l->data;
if (strcmp (item->data, 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,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_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;
GtkWidget *toggle2 = (GTK_WIDGET (toggle) == dialog->clock_toggle) ? dialog->timer_toggle : dialog->clock_toggle;
gboolean toggled = gtk_toggle_button_get_active(toggle);
g_assert (dialog->alarm != NULL);
g_debug ("alarm_settings_changed_type");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle2), !toggled);
if (GTK_WIDGET (toggle) == dialog->clock_toggle && toggled) {
g_object_set (dialog->alarm, "type", ALARM_TYPE_CLOCK, NULL);
gtk_widget_set_sensitive(dialog->repeat_expand, TRUE);
} else {
g_object_set (dialog->alarm, "type", ALARM_TYPE_TIMER, NULL);
gtk_widget_set_sensitive(dialog->repeat_expand, FALSE);
}
// TODO: Why?
// alarm_settings_changed_time (GTK_SPIN_BUTTON (dialog->hour_spin), dialog);
}
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);
hour = gtk_spin_button_get_value (GTK_SPIN_BUTTON (dialog->hour_spin));
min = gtk_spin_button_get_value (GTK_SPIN_BUTTON (dialog->min_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_widget_get_name (GTK_WIDGET (togglebutton));
rep = alarm_repeat_from_string (name);
active = gtk_toggle_button_get_active (togglebutton);
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
alarm_settings_changed_notify_type (GtkToggleButton *togglebutton, gpointer data)
{
AlarmApplet *applet = (AlarmApplet *)data;
AlarmSettingsDialog *dialog = applet->settings_dialog;
const gchar *name = gtk_widget_get_name (GTK_WIDGET (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);
GtkTreeModel *model;
AlarmListEntry *item;
guint current_index, len, combo_len;
model = gtk_combo_box_get_model (GTK_COMBO_BOX (dialog->notify_sound_combo));
combo_len = gtk_tree_model_iter_n_children (model, NULL);
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_object_set (dialog->alarm, "sound-repeat", gtk_toggle_button_get_active (togglebutton), NULL);
}
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;
}
GtkTreeModel *model;
AlarmListEntry *item;
guint current_index, len, combo_len;
model = gtk_combo_box_get_model (GTK_COMBO_BOX (dialog->notify_app_combo));
combo_len = gtk_tree_model_iter_n_children (model, NULL);
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);
item = (AlarmListEntry *) g_list_nth_data (dialog->applet->apps, current_index);
g_object_set (dialog->alarm, "command", item->data, 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);
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))
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));
}

89
src/alarm-settings.h Normal file
View File

@@ -0,0 +1,89 @@
/*
* alarm-settings.h -- Alarm settings dialog
*
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#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_*/

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,32 @@
/*
* Copyright/Licensing information.
* alarm.h -- Core alarm functionality
*
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#ifndef ALARM_H_
#define ALARM_H_
#include <glib.h>
#include <glib-object.h>
#include <glib/gi18n.h>
#include <gconf/gconf-client.h>
#include "player.h"
@@ -73,6 +94,8 @@ struct _Alarm {
gchar *gconf_dir; /* GConf directory */
gint id; /* Alarm ID */
gboolean triggered; // Whether the alarm has been triggered
/* GConf mapped values */
AlarmType type;
time_t time; /* Time for alarm */
@@ -80,21 +103,20 @@ struct _Alarm {
gboolean active;
gchar *message;
AlarmRepeat repeat;
gint snooze;
AlarmNotifyType notify_type;
gchar *sound_file;
gboolean sound_loop;
gchar *command;
gboolean notify_bubble;
};
struct _AlarmClass {
GObjectClass parent;
/* Signals */
void (*alarm)(Alarm *alarm); /* Alarm triggered! */
void (*error)(Alarm *alarm, GError *err); /* An error occured */
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 */
};
@@ -121,18 +143,22 @@ typedef enum {
#define ALARM_DEFAULT_ACTIVE FALSE
#define ALARM_DEFAULT_MESSAGE "Alarm!"
#define ALARM_DEFAULT_REPEAT ALARM_REPEAT_NONE
#define ALARM_DEFAULT_SNOOZE 0
#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
#define ALARM_DEFAULT_NOTIFY_BUBBLE TRUE
/*
* GConf settings
*/
#define ALARM_GCONF_DIR_PREFIX "alarm"
#define ALARM_GCONF_SCHEMA_DIR "/schemas/apps/alarm_clock/alarm"
#define ALARM_GCONF_SCHEMA_DIR "/schemas/apps/alarm-clock/alarm"
/*
* Player backoff timeout.
* We will stop the player automatically after 20 minutes.
*/
#define ALARM_SOUND_TIMEOUT (60 * 20)
/*
* Function prototypes.
@@ -201,6 +227,12 @@ alarm_disable (Alarm *alarm);
void
alarm_delete (Alarm *alarm);
void
alarm_snooze (Alarm *alarm, guint seconds);
gboolean
alarm_is_playing (Alarm *alarm);
void
alarm_set_time (Alarm *alarm, guint hour, guint minute, guint second);
@@ -222,12 +254,17 @@ alarm_get_time (Alarm *alarm);
struct tm *
alarm_get_remain (Alarm *alarm);
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

View File

@@ -1,3 +1,26 @@
/*
* alarms-list.d -- List alarms dialog
*
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#include "alarms-list.h"
#include "edit-alarm.h"
@@ -74,6 +97,8 @@ list_alarms_update_timer (gpointer data)
gtk_tree_model_row_changed (GTK_TREE_MODEL (arg->store), path, &(arg->iter));
gtk_tree_path_free (path);
return TRUE;
}
static void
@@ -273,7 +298,7 @@ add_button_cb (GtkButton *button, gpointer data)
/*
* Create new alarm, will fall back to defaults.
*/
alarm = alarm_new (applet->gconf_dir, -1);
alarm = alarm_new (ALARM_GCONF_DIR, -1);
/*
* Set first sound / app in list
@@ -292,7 +317,8 @@ add_button_cb (GtkButton *button, gpointer data)
alarm_applet_alarms_add (applet, alarm);
// Show edit alarm dialog
display_edit_alarm_dialog (applet, alarm);
//display_edit_alarm_dialog (applet, alarm);
alarm_settings_dialog_show (applet->settings_dialog, alarm);
/*
* Update alarms list view
@@ -346,7 +372,8 @@ edit_button_cb (GtkButton *button, gpointer data)
// Clear any running alarms
alarm_clear (a);
display_edit_alarm_dialog (applet, a);
//display_edit_alarm_dialog (applet, a);
alarm_settings_dialog_show (applet->settings_dialog, a);
}
static void
@@ -448,7 +475,8 @@ list_alarm_selected_cb (GtkTreeView *view,
// Clear any running alarms
alarm_clear (a);
display_edit_alarm_dialog (applet, a);
alarm_settings_dialog_show (applet->settings_dialog, a);
// display_edit_alarm_dialog (applet, a);
}
void
@@ -506,25 +534,25 @@ list_alarms_dialog_display (AlarmApplet *applet)
*time_col, *label_col,
*playing_col;
GladeXML *ui;
GtkBuilder *builder;
GtkButton *add_button, *edit_button, *delete_button;
/*
* Fetch widgets
*/
ui = glade_xml_new (ALARM_UI_XML, "list-alarms", NULL);
builder = applet->ui;
applet->list_alarms_dialog = GTK_DIALOG (glade_xml_get_widget (ui, "list-alarms"));
view = GTK_TREE_VIEW (glade_xml_get_widget (ui, "list-alarms-view"));
applet->list_alarms_dialog = GTK_DIALOG (gtk_builder_get_object (builder, "list-alarms"));
view = GTK_TREE_VIEW (gtk_builder_get_object (builder, "list-alarms-view"));
applet->list_alarms_view = view;
g_signal_connect (applet->list_alarms_dialog, "response",
G_CALLBACK (list_alarms_dialog_response_cb), applet);
// Buttons
add_button = GTK_BUTTON (glade_xml_get_widget (ui, "add-button"));
edit_button = GTK_BUTTON (glade_xml_get_widget (ui, "edit-button"));
delete_button = GTK_BUTTON (glade_xml_get_widget (ui, "delete-button"));
add_button = GTK_BUTTON (gtk_builder_get_object (builder, "add-button"));
edit_button = GTK_BUTTON (gtk_builder_get_object (builder, "edit-button"));
delete_button = GTK_BUTTON (gtk_builder_get_object (builder, "delete-button"));
g_signal_connect (add_button, "clicked",
G_CALLBACK (add_button_cb), applet);

View File

@@ -1,3 +1,26 @@
/*
* alarms-list.h -- List alarms dialog
*
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#ifndef ALARMSLIST_H_
#define ALARMSLIST_H_

View File

@@ -1,903 +0,0 @@
#include "edit-alarm.h"
#include "alarm-applet.h"
#include "alarm.h"
#include "player.h"
#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
static void
alarm_settings_update_time (AlarmSettingsDialog *dialog);
static void
time_changed_cb (GtkSpinButton *spinbutton, gpointer data);
static void
sound_combo_changed_cb (GtkComboBox *combo, AlarmSettingsDialog *dialog);
static void
app_combo_changed_cb (GtkComboBox *combo, AlarmSettingsDialog *dialog);
#define REPEAT_LABEL _("<b>T_rigger alarm:</b> %s")
/*
* Utility functions
*/
static GtkWidget *
create_img_label (const gchar *label_text, const gchar *icon_name)
{
gchar *tmp;
tmp = g_strdup_printf ("<b>%s</b>", label_text);
GdkPixbuf *icon;
GtkWidget *img, *label, *spacer; // TODO: Ugly with spacer
GtkWidget *hbox;
icon = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
icon_name,
24,
0, NULL);
img = gtk_image_new_from_pixbuf(icon);
label = g_object_new (GTK_TYPE_LABEL,
"label", tmp,
"use-markup", TRUE,
"xalign", 0.0,
NULL);
hbox = g_object_new (GTK_TYPE_HBOX, "spacing", 6, NULL);
spacer = g_object_new (GTK_TYPE_LABEL, "label", "", NULL);
gtk_box_pack_start_defaults (GTK_BOX (hbox), spacer);
gtk_box_pack_start(GTK_BOX (hbox), img, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX (hbox), label, FALSE, FALSE, 0);
spacer = g_object_new (GTK_TYPE_LABEL, "label", "", NULL);
gtk_box_pack_start_defaults (GTK_BOX (hbox), spacer);
g_free (tmp);
return hbox;
}
/*
* Utility functions for updating various parts of the settings dialog.
*/
static void
alarm_settings_update_type (AlarmSettingsDialog *dialog)
{
if (dialog->alarm->type == ALARM_TYPE_CLOCK) {
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->clock_toggle), TRUE);
gtk_widget_set_sensitive(dialog->repeat_expand, TRUE);
} else {
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->timer_toggle), TRUE);
gtk_widget_set_sensitive(dialog->repeat_expand, FALSE);
}
}
static void
alarm_settings_update_time (AlarmSettingsDialog *dialog)
{
struct tm *tm;
tm = alarm_get_time(dialog->alarm);
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;
/*
* 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
g_object_set (dialog->repeat_check[i], "active", check, NULL);
}
/*
* Update fancy expander label
*/
if (dialog->alarm->repeat == ALARM_REPEAT_NONE) {
// NO REPEAT
label = g_strdup_printf (REPEAT_LABEL, _("Once"));
} else if (dialog->alarm->repeat == ALARM_REPEAT_WEEKDAYS) {
// REPEAT WEEKDAYS
label = g_strdup_printf (REPEAT_LABEL, _("Weekdays"));
} else if (dialog->alarm->repeat == ALARM_REPEAT_WEEKENDS) {
// REPEAT WEEKENDS
label = g_strdup_printf (REPEAT_LABEL, _("Weekends"));
} else if (dialog->alarm->repeat == ALARM_REPEAT_ALL) {
// REPEAT WEEK
label = g_strdup_printf (REPEAT_LABEL, _("Every day"));
} else {
// CUSTOM
label = g_strdup_printf (REPEAT_LABEL, _("Custom"));
}
g_object_set (dialog->repeat_label, "label", label, NULL);
g_free (label);
}
static void
alarm_settings_update_snooze (AlarmSettingsDialog *dialog)
{
g_object_set (dialog->snooze_spin, "value", (gdouble)dialog->alarm->snooze, NULL);
g_object_set (dialog->snooze_check, "active", dialog->alarm->snooze > 0, NULL);
}
static void
alarm_settings_update_notify_type (AlarmSettingsDialog *dialog)
{
// 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);
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;
guint pos, len, combo_len;
gint sound_pos = -1;
g_debug ("alarm_settings_update_sound (%p): sound_combo: %p, applet: %p, sounds: %p", dialog, dialog->notify_sound_combo, dialog->applet, dialog->applet->sounds);
/* Fill sounds list */
fill_combo_box (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!
sound_pos = pos;
gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->notify_sound_combo), pos);
break;
}
}
}
static void
alarm_settings_update_app (AlarmSettingsDialog *dialog)
{
AlarmListEntry *item;
GList *l;
guint pos, len, combo_len;
gboolean custom = FALSE;
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 = (AlarmListEntry *)l->data;
if (strcmp (item->data, 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 (AlarmSettingsDialog *dialog)
{
Alarm *alarm = ALARM (dialog->alarm);
g_object_set (dialog->label_entry, "text", alarm->message, NULL);
g_object_set (dialog->notify_sound_loop_check, "active", alarm->sound_loop, NULL);
g_object_set (dialog->notify_app_command_entry, "text", dialog->alarm->command, NULL);
g_object_set (dialog->notify_bubble_check, "active", alarm->notify_bubble, NULL);
alarm_settings_update_type (dialog);
alarm_settings_update_time (dialog);
alarm_settings_update_repeat (dialog);
alarm_settings_update_snooze (dialog);
alarm_settings_update_notify_type (dialog);
alarm_settings_update_sound (dialog);
alarm_settings_update_app (dialog);
}
/*
* Alarm object callbacks
*/
static void
alarm_type_changed (GObject *object,
GParamSpec *param,
gpointer data)
{
AlarmSettingsDialog *dialog = (AlarmSettingsDialog *)data;
alarm_settings_update_type (dialog);
}
static void
alarm_time_changed (GObject *object,
GParamSpec *param,
gpointer data)
{
AlarmSettingsDialog *dialog = (AlarmSettingsDialog *)data;
/* Only interesting if alarm is a CLOCK */
if (dialog->alarm->type != ALARM_TYPE_CLOCK)
return;
alarm_settings_update_time (dialog);
}
static void
alarm_repeat_changed (GObject *object,
GParamSpec *param,
gpointer data)
{
AlarmSettingsDialog *dialog = (AlarmSettingsDialog *)data;
alarm_settings_update_repeat (dialog);
}
static void
alarm_snooze_changed (GObject *object,
GParamSpec *param,
gpointer data)
{
AlarmSettingsDialog *dialog = (AlarmSettingsDialog *)data;
alarm_settings_update_snooze (dialog);
}
static void
alarm_timer_changed (GObject *object,
GParamSpec *param,
gpointer data)
{
AlarmSettingsDialog *dialog = (AlarmSettingsDialog *)data;
/* Only interesting if alarm is a TIMER */
if (dialog->alarm->type != ALARM_TYPE_TIMER)
return;
alarm_settings_update_time (dialog);
}
static void
alarm_notify_type_changed (GObject *object,
GParamSpec *param,
gpointer data)
{
AlarmSettingsDialog *dialog = (AlarmSettingsDialog *)data;
alarm_settings_update_notify_type (dialog);
}
static void
alarm_settings_sound_file_changed (GObject *object,
GParamSpec *param,
gpointer data)
{
AlarmSettingsDialog *dialog = (AlarmSettingsDialog *)data;
g_debug ("alarm_settings_sound_file_changed (%p)", data);
// Block sound combo signals to prevent infinite loop
// because the "changed" signal will be emitted when we
// change the combo box tree model.
g_signal_handlers_block_matched (dialog->notify_sound_combo,
G_SIGNAL_MATCH_FUNC,
0, 0, NULL, sound_combo_changed_cb, NULL);
// Update UI
alarm_settings_update_sound (dialog);
// Unblock combo signals
g_signal_handlers_unblock_matched (dialog->notify_sound_combo,
G_SIGNAL_MATCH_FUNC,
0, 0, NULL, sound_combo_changed_cb, NULL);
}
static void
alarm_sound_repeat_changed (GObject *object,
GParamSpec *param,
gpointer data)
{
AlarmSettingsDialog *dialog = (AlarmSettingsDialog *)data;
g_debug ("alarm_sound_repeat_changed to: %d", dialog->alarm->sound_loop);
}
static void
alarm_settings_command_changed (GObject *object,
GParamSpec *param,
gpointer data)
{
AlarmSettingsDialog *dialog = (AlarmSettingsDialog *)data;
g_debug ("alarm_settings_command_changed (%p)", data);
// Block sound combo signals to prevent infinite loop
// because the "changed" signal will be emitted when we
// change the combo box tree model.
g_signal_handlers_block_matched (dialog->notify_app_combo,
G_SIGNAL_MATCH_FUNC,
0, 0, NULL, app_combo_changed_cb, NULL);
// Update UI
alarm_settings_update_app (dialog);
// Unblock combo signals
g_signal_handlers_unblock_matched (dialog->notify_app_combo,
G_SIGNAL_MATCH_FUNC,
0, 0, NULL, app_combo_changed_cb, NULL);
}
/*
* 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,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_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
*/
static void
type_toggle_cb (GtkToggleButton *toggle, gpointer data)
{
AlarmSettingsDialog *dialog = (AlarmSettingsDialog *)data;
GtkWidget *toggle2 = (GTK_WIDGET (toggle) == dialog->clock_toggle) ? dialog->timer_toggle : dialog->clock_toggle;
gboolean toggled = gtk_toggle_button_get_active(toggle);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle2), !toggled);
if (GTK_WIDGET (toggle) == dialog->clock_toggle && toggled) {
g_object_set (dialog->alarm, "type", ALARM_TYPE_CLOCK, NULL);
} else {
g_object_set (dialog->alarm, "type", ALARM_TYPE_TIMER, NULL);
}
time_changed_cb (GTK_SPIN_BUTTON (dialog->hour_spin), dialog);
}
static void
time_changed_cb (GtkSpinButton *spinbutton, gpointer data)
{
AlarmSettingsDialog *dialog = (AlarmSettingsDialog *)data;
guint hour, min, sec;
hour = gtk_spin_button_get_value (GTK_SPIN_BUTTON (dialog->hour_spin));
min = gtk_spin_button_get_value (GTK_SPIN_BUTTON (dialog->min_spin));
sec = gtk_spin_button_get_value (GTK_SPIN_BUTTON (dialog->sec_spin));
alarm_set_time (dialog->alarm, hour, min, sec);
}
static void
repeat_changed_cb (GtkToggleButton *togglebutton,
gpointer data)
{
AlarmSettingsDialog *dialog = (AlarmSettingsDialog *)data;
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_widget_get_name (GTK_WIDGET (togglebutton));
rep = alarm_repeat_from_string (name);
active = gtk_toggle_button_get_active (togglebutton);
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);
}
static void
snooze_changed_cb (GtkSpinButton *spinbutton, gpointer data)
{
AlarmSettingsDialog *dialog = (AlarmSettingsDialog *)data;
g_object_set (dialog->alarm, "snooze", (gint)gtk_spin_button_get_value (GTK_SPIN_BUTTON (dialog->snooze_spin)), NULL);
}
static void
snooze_check_changed_cb (GtkToggleButton *togglebutton, gpointer data)
{
AlarmSettingsDialog *dialog = (AlarmSettingsDialog *)data;
if (gtk_toggle_button_get_active (togglebutton) && dialog->alarm->snooze == 0) {
g_object_set (dialog->alarm, "snooze", 5, NULL);
} else if (!gtk_toggle_button_get_active (togglebutton) && dialog->alarm->snooze > 0) {
g_object_set (dialog->alarm, "snooze", 0, NULL);
}
}
static void
notify_type_changed_cb (GtkToggleButton *togglebutton,
AlarmSettingsDialog *dialog)
{
const gchar *name = gtk_widget_get_name (GTK_WIDGET (togglebutton));
gboolean value = gtk_toggle_button_get_active (togglebutton);
if (!value) {
// Not checked, not interested
return;
}
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);
}
static void
sound_combo_changed_cb (GtkComboBox *combo,
AlarmSettingsDialog *dialog)
{
g_debug ("SOUND Combo_changed");
GtkTreeModel *model;
AlarmListEntry *item;
guint current_index, len, combo_len;
model = gtk_combo_box_get_model (GTK_COMBO_BOX (dialog->notify_sound_combo));
combo_len = gtk_tree_model_iter_n_children (model, NULL);
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);
}
static void
app_combo_changed_cb (GtkComboBox *combo,
AlarmSettingsDialog *dialog)
{
g_debug ("APP Combo_changed");
if (GTK_WIDGET_HAS_FOCUS (dialog->notify_app_command_entry)) {
g_debug (" ---- Skipping because command_entry has focus!");
return;
}
GtkTreeModel *model;
AlarmListEntry *item;
guint current_index, len, combo_len;
model = gtk_combo_box_get_model (GTK_COMBO_BOX (dialog->notify_app_combo));
combo_len = gtk_tree_model_iter_n_children (model, NULL);
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);
item = (AlarmListEntry *) g_list_nth_data (dialog->applet->apps, current_index);
g_object_set (dialog->alarm, "command", item->data, NULL);
}
/*
* Preview player {{
*/
static void
preview_player_state_cb (MediaPlayer *player, MediaPlayerState state, AlarmSettingsDialog *dialog)
{
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
preview_sound_cb (GtkButton *button,
AlarmSettingsDialog *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);
g_debug ("AlarmSettingsDialog: preview_start...");
media_player_start (dialog->player);
}
}
/*
* }} Preview player
*/
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));
if (dialog->player) {
if (dialog->player->state == MEDIA_PLAYER_STOPPED) {
media_player_free (dialog->player);
} else {
media_player_stop (dialog->player);
}
}
/* Remove alarm notify handlers! This would otherwise cause segfaults as
* the callbacks would look for a non-existant dialog struct.
*/
g_signal_handlers_disconnect_matched (dialog->alarm, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, dialog);
// TODO: Why does this cause segfaults once the UI is reused?
Alarm *a = dialog->alarm;
g_debug ("FREE AlarmSettingsDialog %p alarm is %p", dialog, a);
g_free (dialog);
g_debug ("\talarm is %p", a);
}
static void
alarm_settings_dialog_response_cb (GtkDialog *dialog,
gint rid,
AlarmSettingsDialog *settings_dialog)
{
alarm_settings_dialog_close (settings_dialog);
}
/*
* Dialog creation
*
* TODO: A bug exists which somehow causes some widgets to become NULL
* and thus crashes the program. Investigate further.
*/
static AlarmSettingsDialog *
alarm_settings_dialog_new (Alarm *alarm, AlarmApplet *applet)
{
AlarmSettingsDialog *dialog;
GtkWidget *clock_content, *timer_content, *snooze_label;
AlarmRepeat r;
gint i;
GladeXML *ui = glade_xml_new (ALARM_UI_XML, "edit-alarm", NULL);
/* Init */
dialog = g_new0 (AlarmSettingsDialog, 1);
dialog->applet = applet;
dialog->alarm = alarm;
dialog->player = NULL;
dialog->dialog = glade_xml_get_widget (ui, "edit-alarm");
g_debug ("NEW AlarmSettingsDialog %p for alarm #%d", dialog, alarm->id);
g_debug ("\talarm is %p");
/* Response from dialog */
g_signal_connect (dialog->dialog, "response",
G_CALLBACK (alarm_settings_dialog_response_cb), dialog);
/*
* TYPE TOGGLE BUTTONS
*/
dialog->clock_toggle = glade_xml_get_widget (ui, "toggle-clock");
clock_content = create_img_label ("Alarm Clock", "alarm-clock");
dialog->timer_toggle = glade_xml_get_widget (ui, "toggle-timer");
timer_content = create_img_label ("Timer", "alarm-timer");
gtk_container_add (GTK_CONTAINER (dialog->clock_toggle), clock_content);
gtk_widget_show_all (GTK_WIDGET (dialog->clock_toggle));
gtk_container_add (GTK_CONTAINER (dialog->timer_toggle), timer_content);
gtk_widget_show_all (GTK_WIDGET (dialog->timer_toggle));
/*
* GENERAL SETTINGS
*/
dialog->label_entry = glade_xml_get_widget (ui, "label-entry");
gtk_widget_grab_focus (dialog->label_entry);
dialog->hour_spin = glade_xml_get_widget (ui, "hour-spin");
dialog->min_spin = glade_xml_get_widget (ui, "minute-spin");
dialog->sec_spin = glade_xml_get_widget (ui, "second-spin");
/*
* REPEAT SETTINGS
*/
dialog->repeat_expand = glade_xml_get_widget (ui, "repeat-expand");
dialog->repeat_label = glade_xml_get_widget (ui, "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] = glade_xml_get_widget (ui, alarm_repeat_to_string (r));
}
/*
* SNOOZE SETTINGS
*/
dialog->snooze_check = glade_xml_get_widget (ui, "snooze-check");
dialog->snooze_spin = glade_xml_get_widget (ui, "snooze-spin");
snooze_label = gtk_bin_get_child (GTK_BIN (dialog->snooze_check));
g_object_set (G_OBJECT (snooze_label), "use-markup", TRUE, NULL);
/*
* NOTIFY SETTINGS
*/
dialog->notify_sound_radio = glade_xml_get_widget (ui, "sound-radio");
dialog->notify_sound_box = glade_xml_get_widget (ui, "sound-box");
dialog->notify_sound_combo = glade_xml_get_widget (ui, "sound-combo");
dialog->notify_sound_preview = glade_xml_get_widget (ui, "sound-play");
dialog->notify_sound_loop_check = glade_xml_get_widget (ui, "sound-loop-check");
dialog->notify_app_radio = glade_xml_get_widget (ui, "app-radio");
dialog->notify_app_box = glade_xml_get_widget (ui, "app-box");
dialog->notify_app_combo = glade_xml_get_widget (ui, "app-combo");
dialog->notify_app_command_box = glade_xml_get_widget (ui, "app-command-box");
dialog->notify_app_command_entry = glade_xml_get_widget (ui, "app-command-entry");
dialog->notify_bubble_check = glade_xml_get_widget (ui, "notify-bubble-check");
/*
* Load apps list
*/
alarm_applet_apps_load (applet);
/*
* Populate widgets
*/
alarm_settings_update (dialog);
/* Got libnotify? */
#ifndef HAVE_LIBNOTIFY
g_object_set (dialog->notify_bubble_check, "sensitive", FALSE, NULL);
gtk_widget_set_tooltip_text (GTK_WIDGET (dialog->notify_bubble_check), _("This feature requires libnotify to be installed"));
#endif
/*
* Bind widgets
*/
alarm_bind (alarm, "message", dialog->label_entry, "text");
alarm_bind (alarm, "sound-repeat", dialog->notify_sound_loop_check, "active");
alarm_bind (alarm, "command", dialog->notify_app_command_entry, "text");
alarm_bind (alarm, "notify-bubble", dialog->notify_bubble_check, "active");
/*
* Special widgets require special attention!
*/
/* type */
g_signal_connect (alarm, "notify::type", G_CALLBACK (alarm_type_changed), dialog);
g_signal_connect (dialog->clock_toggle, "toggled", G_CALLBACK (type_toggle_cb), dialog);
g_signal_connect (dialog->timer_toggle, "toggled", G_CALLBACK (type_toggle_cb), dialog);
/* time/timer */
g_signal_connect (alarm, "notify::time", G_CALLBACK (alarm_time_changed), dialog);
g_signal_connect (alarm, "notify::timer", G_CALLBACK (alarm_timer_changed), dialog);
g_signal_connect (dialog->hour_spin, "value-changed", G_CALLBACK (time_changed_cb), dialog);
g_signal_connect (dialog->min_spin, "value-changed", G_CALLBACK (time_changed_cb), dialog);
g_signal_connect (dialog->sec_spin, "value-changed", G_CALLBACK (time_changed_cb), dialog);
/* repeat */
g_signal_connect (alarm, "notify::repeat", G_CALLBACK (alarm_repeat_changed), dialog);
for (i = 0; i < 7; i++)
g_signal_connect (dialog->repeat_check[i], "toggled", G_CALLBACK (repeat_changed_cb), dialog);
/* snooze */
g_signal_connect (alarm, "notify::snooze", G_CALLBACK (alarm_snooze_changed), dialog);
g_signal_connect (dialog->snooze_spin, "value-changed", G_CALLBACK (snooze_changed_cb), dialog);
g_signal_connect (dialog->snooze_check, "toggled", G_CALLBACK (snooze_check_changed_cb), dialog);
/* notify type */
g_signal_connect (alarm, "notify::notify-type", G_CALLBACK (alarm_notify_type_changed), dialog);
g_signal_connect (dialog->notify_sound_radio, "toggled", G_CALLBACK (notify_type_changed_cb), dialog);
g_signal_connect (dialog->notify_app_radio, "toggled", G_CALLBACK (notify_type_changed_cb), dialog);
/* sound file */
g_signal_connect (alarm, "notify::sound-file",
G_CALLBACK (alarm_settings_sound_file_changed), dialog);
g_signal_connect (dialog->notify_sound_combo, "changed",
G_CALLBACK (sound_combo_changed_cb), dialog);
g_signal_connect (dialog->notify_sound_preview, "clicked",
G_CALLBACK (preview_sound_cb), dialog);
/* app / command */
g_signal_connect (alarm, "notify::command",
G_CALLBACK (alarm_settings_command_changed), dialog);
g_signal_connect (dialog->notify_app_combo, "changed",
G_CALLBACK (app_combo_changed_cb), dialog);
/*g_signal_connect (dialog->notify_app_command_entry, "changed",
G_CALLBACK (app_command_changed_cb), dialog);*/
g_object_unref (ui);
return dialog;
}
void
display_edit_alarm_dialog (AlarmApplet *applet, Alarm *alarm)
{
AlarmSettingsDialog *dialog;
// Check if a dialog is already open for this alarm
dialog = (AlarmSettingsDialog *)g_hash_table_lookup (applet->edit_alarm_dialogs, alarm->id);
if (dialog) {
// Already open
gtk_window_present (GTK_WINDOW (dialog->dialog));
return;
}
dialog = alarm_settings_dialog_new (alarm, applet);
g_hash_table_insert (applet->edit_alarm_dialogs, alarm->id, dialog);
}

View File

@@ -1,54 +0,0 @@
#ifndef EDITALARM_H_
#define EDITALARM_H_
#include "alarm-applet.h"
#include "alarm.h"
#include "player.h"
typedef 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 */
/* Snooze */
GtkWidget *snooze_check;
GtkWidget *snooze_spin;
/* 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;
GtkWidget *notify_bubble_check;
} AlarmSettingsDialog;
void
display_edit_alarm_dialog (AlarmApplet *applet, Alarm *alarm);
void
alarm_settings_dialog_close (AlarmSettingsDialog *dialog);
#endif /*EDITALARM_H_*/

Binary file not shown.

Before

Width:  |  Height:  |  Size: 906 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

View File

@@ -1,13 +1,29 @@
/*
* ALARM APPLET List Entry
* list-entry.c -- Simple data structure to hold name, data and icon.
*
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#include <string.h>
#include <glib.h>
#include <gtk/gtk.h>
#include <libgnomevfs/gnome-vfs.h>
#include <libgnomeui/libgnomeui.h>
#include "list-entry.h"
#include "util.h"
@@ -46,47 +62,36 @@ alarm_list_entry_free (AlarmListEntry *e)
}
AlarmListEntry *
alarm_list_entry_new_file (const gchar *uri, GnomeVFSResult *ret, gchar **mime_ret)
alarm_list_entry_new_file (const gchar *uri, gchar **mime_ret, GError **error)
{
AlarmListEntry *entry;
GnomeVFSResult result;
GnomeVFSFileInfo *info;
GtkIconTheme *theme = NULL;
GError *new_error = NULL;
GFileInfo *info;
GFile *file;
if (!gnome_vfs_initialized())
gnome_vfs_init();
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 (gtk_init_check (NULL, NULL))
theme = gtk_icon_theme_get_default ();
if (new_error != NULL) {
//g_warning ("Could not open uri: %s", uri);
if (error)
*error = new_error;
else
g_warning ("gtk_init_check failed, icon lookup disabled.");
info = gnome_vfs_file_info_new ();
result = gnome_vfs_get_file_info (uri, info,
GNOME_VFS_FILE_INFO_GET_MIME_TYPE | GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
if (ret != NULL)
*ret = result;
if (result != GNOME_VFS_OK) {
g_warning ("Could not open uri: %s", uri);
g_error_free (new_error);
return NULL;
}
entry = g_new (AlarmListEntry, 1);
entry->data = g_strdup (uri);
entry->name = to_basename (info->name);
if (theme != NULL)
entry->icon = gnome_icon_lookup(theme, NULL,
entry->data, NULL, info,
info->mime_type, 0, 0);
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 (info->mime_type);
*mime_ret = g_strdup (g_file_info_get_content_type (info));
gnome_vfs_file_info_unref (info);
g_object_unref (info);
g_object_unref (file);
return entry;
}
@@ -94,32 +99,26 @@ alarm_list_entry_new_file (const gchar *uri, GnomeVFSResult *ret, gchar **mime_r
GList *
alarm_list_entry_list_new (const gchar *dir_uri, const gchar *supported_types[])
{
GnomeVFSResult result;
GnomeVFSFileInfoOptions options;
GnomeVFSFileInfo *info;
GError *error = NULL;
GFile *dir;
GFileEnumerator *result;
GFileInfo *info;
GtkIconTheme *theme;
GList *list, *l, *flist;
GList *flist;
AlarmListEntry *entry;
const gchar *mime;
gboolean valid;
gint i;
if (!gnome_vfs_initialized())
gnome_vfs_init();
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 (gtk_init_check (NULL, NULL))
theme = gtk_icon_theme_get_default ();
else
g_warning ("gtk_init_check failed, icon lookup disabled.");
options = GNOME_VFS_FILE_INFO_GET_MIME_TYPE | GNOME_VFS_FILE_INFO_FOLLOW_LINKS;
result = gnome_vfs_directory_list_load (&list, dir_uri, options);
if (result != GNOME_VFS_OK) {
if (error) {
g_critical ("Could not open directory: %s", dir_uri);
g_error_free (error);
return NULL;
}
@@ -127,11 +126,10 @@ alarm_list_entry_list_new (const gchar *dir_uri, const gchar *supported_types[])
flist = NULL;
for (l = list; l; l = l->next) {
info = l->data;
//g_debug ("-- %s", info->name);
if (info->type == GNOME_VFS_FILE_TYPE_REGULAR) {
mime = gnome_vfs_file_info_get_mime_type(info);
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;
@@ -149,14 +147,9 @@ alarm_list_entry_list_new (const gchar *dir_uri, const gchar *supported_types[])
if (valid) {
entry = g_new (AlarmListEntry, 1);
entry->data = g_strdup_printf ("%s/%s", dir_uri, info->name);
entry->name = to_basename (info->name);
entry->icon = NULL;
if (theme != NULL)
entry->icon = gnome_icon_lookup(theme, NULL,
entry->data, NULL, info,
mime, 0, 0);
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);
@@ -164,7 +157,7 @@ alarm_list_entry_list_new (const gchar *dir_uri, const gchar *supported_types[])
}
}
gnome_vfs_file_info_list_free (list);
g_file_enumerator_close (result, NULL, NULL);
return flist;
}

View File

@@ -1,9 +1,31 @@
/*
* list-entry.h -- Simple data structure to hold name, data and icon.
*
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#ifndef LISTENTRY_H_
#define LISTENTRY_H_
#include <string.h>
#include <glib.h>
#include <libgnomevfs/gnome-vfs.h>
#include "util.h"
@@ -23,7 +45,7 @@ void
alarm_list_entry_free (AlarmListEntry *e);
AlarmListEntry *
alarm_list_entry_new_file (const gchar *uri, GnomeVFSResult *ret, gchar **mime_ret);
alarm_list_entry_new_file (const gchar *uri, gchar **mime_ret, GError **error);
GList *
alarm_list_entry_list_new (const gchar *dir_uri, const gchar *supported_types[]);

View File

@@ -1,6 +1,24 @@
/**
* ALARM APPLET Media player
/*
* player.c - Simple media player based on GStreamer
*
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#include <gst/gst.h>
@@ -43,7 +61,7 @@ media_player_new (const gchar *uri, gboolean loop,
gst_init (NULL, NULL);
/* Set up player */
player->player = gst_element_factory_make ("playbin", "player");
player->player = gst_element_factory_make ("playbin2", "player");
audiosink = gst_element_factory_make ("gconfaudiosink", "player-audiosink");
videosink = gst_element_factory_make ("gconfvideosink", "player-videosink");
@@ -164,9 +182,10 @@ media_player_bus_cb (GstBus *bus,
return FALSE;
}
// Loop
gst_element_set_state (player->player, GST_STATE_READY);
gst_element_set_state (player->player, GST_STATE_PLAYING);
// Loop, seek to start
gst_element_seek_simple (player->player, GST_FORMAT_TIME,
GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT,
0);
media_player_set_state (player, MEDIA_PLAYER_PLAYING);
}

View File

@@ -1,3 +1,26 @@
/*
* player.h - Simple media player based on GStreamer
*
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#ifndef PLAYER_H_
#define PLAYER_H_

View File

@@ -1,108 +1,414 @@
/*
* prefs.c -- Alarm Clock global preferences
*
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#include <glib.h>
#include <gio/gio.h>
#include "prefs.h"
void
preferences_dialog_response_cb (GtkDialog *dialog,
gint rid,
AlarmApplet *applet)
{
g_debug ("Preferences Response: %s", (rid == GTK_RESPONSE_CLOSE) ? "Close" : "Unknown");
gtk_widget_destroy (GTK_WIDGET (dialog));
applet->preferences_dialog = NULL;
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);
/**
* Initialize preferences dialog and friends
*/
void
prefs_init (AlarmApplet *applet)
{
applet->prefs_dialog = GTK_DIALOG (gtk_builder_get_object(applet->ui, "preferences"));
applet->prefs_autostart_check = GTK_WIDGET (gtk_builder_get_object (applet->ui, "autostart-check"));
prefs_autostart_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);
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;
}
/**
* 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 ();
GFile *f;
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) {
// Unset Hidden and X-GNOME-Autostart-enabled
kf = g_key_file_new ();
filename = g_file_get_path (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);
// Write out results
fstream = g_file_replace (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);
}
g_free(filename);
} else {
// 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);
}
g_free (filename);
}
} else {
// Disable
g_debug ("Preferences: Autostart DISABLE!");
if (file) {
if (file != autostart_user_file) {
// 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);
}
g_free(filename);
file = autostart_user_file;
}
// Set Hidden=true
kf = g_key_file_new ();
filename = g_file_get_path (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 (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);
}
} 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)
{
gboolean state = gtk_toggle_action_get_active (applet->action_toggle_autostart);
gboolean new_state = prefs_autostart_get_state();
g_debug ("Preferences: Autostart update: new state: %d", new_state);
if (state != new_state) {
gtk_toggle_action_set_active (applet->action_toggle_autostart, new_state);
}
}
/**
* Show preferences dialog
*/
void
prefs_dialog_show (AlarmApplet *applet)
{
if (GTK_WIDGET_VISIBLE(applet->prefs_dialog)) {
gtk_window_present_with_time (GTK_WINDOW (applet->prefs_dialog), gtk_get_current_event_time());
} else {
gtk_dialog_run (applet->prefs_dialog);
}
}
void
pref_update_label_show (AlarmApplet *applet)
autostart_monitor_changed (GFileMonitor *monitor,
GFile *file,
GFile *other_file,
GFileMonitorEvent event_type,
gpointer user_data)
{
g_object_set (applet->pref_label_show, "active", applet->show_label, NULL);
g_object_set (applet->pref_label_type_box, "sensitive", applet->show_label, NULL);
}
AlarmApplet *applet = (AlarmApplet *)user_data;
gchar *s = g_file_get_path (file);
g_print ("Monitor changed on %s: ", s);
void
pref_update_label_type (AlarmApplet *applet)
{
switch (applet->label_type) {
case LABEL_TYPE_TIME:
g_object_set (applet->pref_label_type_time, "active", TRUE, NULL);
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:
// LABEL_TYPE_TOTAL
g_object_set (applet->pref_label_type_remain, "active", TRUE, NULL);
g_print ("UNKNOWN (%d)", event_type);
break;
}
}
static void
pref_label_show_changed_cb (GtkToggleButton *togglebutton,
AlarmApplet *applet)
{
gboolean value = gtk_toggle_button_get_active (togglebutton);
panel_applet_gconf_set_bool (applet->parent, KEY_SHOW_LABEL, value, NULL);
}
static void
pref_label_type_changed_cb (GtkToggleButton *togglebutton,
AlarmApplet *applet)
{
const gchar *name = gtk_widget_get_name (GTK_WIDGET (togglebutton));
gboolean value = gtk_toggle_button_get_active (togglebutton);
const gchar *kval;
if (!value) {
// Not checked, not interested
return;
}
if (strcmp (name, "time-radio") == 0) {
kval = gconf_enum_to_string (label_type_enum_map, LABEL_TYPE_TIME);
panel_applet_gconf_set_string (applet->parent, KEY_LABEL_TYPE, kval, NULL);
} else {
kval = gconf_enum_to_string (label_type_enum_map, LABEL_TYPE_REMAIN);
panel_applet_gconf_set_string (applet->parent, KEY_LABEL_TYPE, kval, NULL);
}
}
void
preferences_dialog_display (AlarmApplet *applet)
{
if (applet->preferences_dialog != NULL) {
// Dialog already open.
gtk_window_present (GTK_WINDOW (applet->preferences_dialog));
return;
}
GladeXML *ui = glade_xml_new(ALARM_UI_XML, "preferences", NULL);
// Fetch widgets
applet->preferences_dialog = GTK_DIALOG (glade_xml_get_widget (ui, "preferences"));
applet->pref_label_show = glade_xml_get_widget (ui, "show-label");
applet->pref_label_type_box = glade_xml_get_widget (ui, "label-type-box");
applet->pref_label_type_time = glade_xml_get_widget (ui, "time-radio");
applet->pref_label_type_remain = glade_xml_get_widget (ui, "remain-radio");
// Update UI
pref_update_label_show (applet);
pref_update_label_type (applet);
// Set response and connect signal handlers
g_signal_connect (applet->preferences_dialog, "response",
G_CALLBACK (preferences_dialog_response_cb), applet);
// Display
g_signal_connect (applet->pref_label_show, "toggled",
G_CALLBACK (pref_label_show_changed_cb), applet);
g_signal_connect (applet->pref_label_type_time, "toggled",
G_CALLBACK (pref_label_type_changed_cb), applet);
g_signal_connect (applet->pref_label_type_remain, "toggled",
G_CALLBACK (pref_label_type_changed_cb), applet);
// Show it all
gtk_widget_show_all (GTK_WIDGET (applet->preferences_dialog));
g_print ("\n");
g_free (s);
prefs_autostart_update (applet);
}

View File

@@ -1,15 +1,41 @@
/*
* prefs.h -- Alarm Clock global preferences
*
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#ifndef PREFS_H_
#define PREFS_H_
#include "alarm-applet.h"
void
preferences_dialog_display (AlarmApplet *applet);
prefs_init (AlarmApplet *applet);
void
pref_update_label_show (AlarmApplet *applet);
prefs_dialog_show (AlarmApplet *applet);
gboolean
prefs_autostart_get_state (void);
void
pref_update_label_type (AlarmApplet *applet);
prefs_autostart_set_state (gboolean state);
#endif /*PREFS_H_*/

View File

@@ -1,59 +1,44 @@
include $(top_srcdir)/Makefile.decl
INCLUDES = \
-I. \
-I$(srcdir) \
$(GNOME_APPLETS_CFLAGS) \
$(LIBGLADE_CFLAGS) \
$(GST_CFLAGS) \
$(GNOME_LIBS2_CFLAGS) \
$(GLIB_CFLAGS) \
$(GCONF_CFLAGS) \
-I$(includedir) \
-I$(top_srcdir)/src
AM_CFLAGS = \
-DALARM_CLOCK_DATADIR=\"$(datadir)\" \
-DALARM_CLOCK_PKGDATADIR=\"$(pkgdatadir)\" \
-I$(top_srcdir) \
-I$(top_srcdir)/src \
@BASE_CFLAGS@ @GTK_CFLAGS@ @GSTREAMER_CFLAGS@ \
@GNOME_CFLAGS@ @WARN_CFLAGS@
noinst_PROGRAMS = $(TEST_PROGS)
LIBS = @BASE_LIBS@
TEST_PROGS += test_alarm test_player test_list_entry test_util test_alarm glade_view test_gconf_recursive
check_PROGRAMS = $(TEST_PROGS) test_player test_list_entry test_util \
test_gconf_recursive test_libnotify
TEST_PROGS += test_alarm
test_player_SOURCES = $(top_srcdir)/src/player.c $(top_srcdir)/src/player.h test_player.c
test_player_LDADD = \
$(GLIB_LIBS) \
$(GST_LIBS)
test_player_LDADD = @GSTREAMER_LIBS@
test_list_entry_SOURCES = $(top_srcdir)/src/list-entry.c \
$(top_srcdir)/src/list-entry.h \
$(top_srcdir)/src/util.c \
test_list_entry.c
test_list_entry_LDADD = \
$(GLIB_LIBS) \
$(GNOME_LIBS2_LIBS) \
$(GNOME_APPLETS_LIBS)
test_list_entry_LDADD = @GTK_LIBS@
test_util_SOURCES = $(top_srcdir)/src/util.c $(top_srcdir)/src/util.h test_util.c
test_util_LDADD = \
$(GLIB_LIBS)
test_util_LDADD = @GTK_LIBS@
test_alarm_SOURCES = \
$(top_srcdir)/src/alarm.c \
$(top_srcdir)/src/player.c \
test_alarm.c
test_alarm_LDADD = \
$(GLIB_LIBS) \
$(GCONF_LIBS) \
$(GST_LIBS)
test_alarm_LDADD = @GNOME_LIBS@ @GSTREAMER_LIBS@
test_alarm_cpp:
cpp $(INCLUDES) test_alarm.c
glade_view_SOURCES = glade_view.c
glade_view_LDADD = \
$(GLIB_LIBS) \
$(LIBGLADE_LIBS)
test_gconf_recursive_SOURCES = test_gconf_recursive.c
test_gconf_recursive_LDADD = \
$(GLIB_LIBS) \
$(GCONF_LIBS)
test_gconf_recursive_LDADD = @GNOME_LIBS@
test_libnotify_SOURCES = test_libnotify.c
test_libnotify_LDADD = @GTK_LIBS@ @GNOME_LIBS@

View File

@@ -1,3 +1,26 @@
/*
* glade_view.c -- Test utility for running a glade file.
*
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#include <gtk/gtk.h>
#include <glade/glade.h>
@@ -24,16 +47,11 @@ int main (int argc, char **argv)
return 1;
}
GtkWidget *checkbox = glade_xml_get_widget(ui, "repeat-check");
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);
checkbox = glade_xml_get_widget(ui, "snooze-check");
/* you can't do this from glade */
checkbox_label = gtk_bin_get_child (GTK_BIN (checkbox));
g_object_set (G_OBJECT (checkbox_label), "use_markup", TRUE, NULL);
gtk_main();
return 0;

View File

@@ -1,9 +1,32 @@
/*
* test_alarm.c -- Alarm test suite
*
* Copyright (C) 2007-2008 Johannes H. Jensen <joh@pseudoberries.com>
*
* 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 <joh@pseudoberries.com>
*/
#include "alarm.h"
#include <time.h>
#include <glib.h>
#include <string.h>
#define GCONF_DIR "/apps/alarm-clock"
#define GCONF_DIR "/apps/alarm-clock/test"
/* Fixture */
typedef struct {
@@ -67,12 +90,10 @@ test_alarm_props (AlarmFixture *fix,
"active", FALSE,
"message", "Wakety zooom!",
"repeat", ALARM_REPEAT_MON | ALARM_REPEAT_WED,
"snooze", 12,
"notify_type", ALARM_NOTIFY_COMMAND,
"sound_file", "file:///foo/bar",
"sound_repeat", FALSE,
"command", "wiggle-your-toe --arg",
"notify_bubble", TRUE,
NULL);
/* Verify properties */
@@ -84,12 +105,10 @@ test_alarm_props (AlarmFixture *fix,
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->snooze, ==, 12);
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");
g_assert_cmpint (alarm->notify_bubble, ==, TRUE);
/* Unref alarm */
g_object_unref (fix->alarm);
@@ -106,12 +125,10 @@ test_alarm_props (AlarmFixture *fix,
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->snooze, ==, 12);
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");
g_assert_cmpint (alarm->notify_bubble, ==, TRUE);
}
@@ -165,7 +182,7 @@ test_alarm_list (AlarmFixture *fix,
{
GList *list = NULL, *l;
guint i = 0;
Alarm *a, *a1, *a2, *a3;
Alarm *a;
// Initialize with some dummy alarms
a = alarm_new (GCONF_DIR, 3); g_object_unref (a);
@@ -215,11 +232,27 @@ 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
*/
@@ -232,7 +265,7 @@ test_alarm_signal_error (Alarm *a, GError *err, gchar *data)
g_assert_cmpint (err->code, ==, 123);
g_assert_cmpstr (data, ==, "the error data");
state = 2;
state = 3;
}
@@ -241,7 +274,8 @@ test_alarm_signal_error (Alarm *a, GError *err, gchar *data)
* TEST: Alarm signals
*
* 1. Test "alarm" signal
* 2. Test "error" signal
* 2. Test "cleared" signal
* 3. Test "error" signal
*/
static void
test_alarm_signals (AlarmFixture *fix,
@@ -260,10 +294,30 @@ test_alarm_signals (AlarmFixture *fix,
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
@@ -272,7 +326,7 @@ test_alarm_signals (AlarmFixture *fix,
alarm_error_trigger (alarm, 123, "Something bad happened");
g_assert_cmpint (state, ==, 2);
g_assert_cmpint (state, ==, 3);
}
@@ -302,18 +356,6 @@ test_alarm_notify (AlarmFixture *fix,
Alarm *alarm = fix->alarm;
GMainLoop *loop = g_main_loop_new (g_main_context_default(), FALSE);
//
// Test SOUND notification
//
g_object_set (alarm,
"notify_type", ALARM_NOTIFY_SOUND,
"sound_file", "file:///usr/share/sounds/generic.wav",
"sound_repeat", FALSE,
NULL);
alarm_trigger (alarm);
//
// Test COMMAND notification
//
@@ -324,6 +366,17 @@ test_alarm_notify (AlarmFixture *fix,
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.
@@ -351,6 +404,7 @@ test_alarm_timers_alarm (Alarm *a, gchar *data)
*
* 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,
@@ -408,6 +462,14 @@ test_alarm_timers (AlarmFixture *fix,
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);
}
@@ -466,30 +528,29 @@ test_alarm_repeat (AlarmFixture *fix,
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);
}
/*
* TEST: alarm_bind
*/
static void
test_alarm_bind (AlarmFixture *fix,
gconstpointer test_data)
{
Alarm *alarm = fix->alarm;
Alarm *alarm2 = alarm_new (GCONF_DIR, 1);
alarm_bind (alarm, "command", G_OBJECT (alarm2), "message");
g_object_set (alarm, "command", "wickid!", NULL);
g_assert_cmpstr (alarm->command, ==, alarm2->message);
alarm_delete (alarm2);
g_object_unref (alarm2);
}
/*
@@ -510,7 +571,6 @@ int main (int argc, char **argv)
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/bind", AlarmFixture, 0, alarm_fixture_setup, test_alarm_bind, alarm_fixture_teardown);
g_test_add ("/alarm/timers", AlarmFixture, 0, alarm_fixture_setup, test_alarm_timers, alarm_fixture_teardown);
return g_test_run ();

Some files were not shown because too many files have changed in this diff Show More