summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPerberos <[email protected]>2011-12-01 23:03:59 -0300
committerPerberos <[email protected]>2011-12-01 23:03:59 -0300
commit52d7aadcc57f3fa09653d315fc1a7fef52ae6bca (patch)
tree93f7e38ac79b2592d48d22e6912aeddfd227ffab
downloadmate-session-manager-52d7aadcc57f3fa09653d315fc1a7fef52ae6bca.tar.bz2
mate-session-manager-52d7aadcc57f3fa09653d315fc1a7fef52ae6bca.tar.xz
moving from https://github.com/perberos/mate-desktop-environment
-rw-r--r--AUTHORS22
-rw-r--r--COPYING339
-rw-r--r--ChangeLog1
-rw-r--r--HACKING31
-rw-r--r--INSTALL302
-rw-r--r--MAINTAINERS20
-rw-r--r--Makefile.am31
-rw-r--r--Makefile.in824
-rw-r--r--NEWS1
-rw-r--r--README45
-rw-r--r--aclocal.m41892
-rwxr-xr-xautogen.sh25
-rw-r--r--capplet/Makefile.am33
-rw-r--r--capplet/Makefile.in639
-rw-r--r--capplet/gsm-app-dialog.c544
-rw-r--r--capplet/gsm-app-dialog.h70
-rw-r--r--capplet/gsm-properties-dialog.c819
-rw-r--r--capplet/gsm-properties-dialog.h61
-rw-r--r--capplet/gsp-app-manager.c593
-rw-r--r--capplet/gsp-app-manager.h85
-rw-r--r--capplet/gsp-app.c1050
-rw-r--r--capplet/gsp-app.h109
-rw-r--r--capplet/gsp-keyfile.c149
-rw-r--r--capplet/gsp-keyfile.h67
-rw-r--r--capplet/main.c102
-rwxr-xr-xconfig.guess1511
-rw-r--r--config.h.in116
-rwxr-xr-xconfig.sub1705
-rw-r--r--configure.ac390
-rw-r--r--data/Makefile.am66
-rw-r--r--data/Makefile.in850
-rw-r--r--data/gsm-inhibit-dialog.ui60
-rw-r--r--data/icons/16x16/Makefile.am23
-rw-r--r--data/icons/16x16/Makefile.in497
-rw-r--r--data/icons/16x16/mate-session-properties.pngbin0 -> 595 bytes
-rw-r--r--data/icons/16x16/mate-session-properties.svg394
-rw-r--r--data/icons/22x22/Makefile.am23
-rw-r--r--data/icons/22x22/Makefile.in497
-rw-r--r--data/icons/22x22/mate-session-properties.pngbin0 -> 754 bytes
-rw-r--r--data/icons/22x22/mate-session-properties.svg440
-rw-r--r--data/icons/24x24/Makefile.am21
-rw-r--r--data/icons/24x24/Makefile.in495
-rw-r--r--data/icons/24x24/mate-session-properties.pngbin0 -> 784 bytes
-rw-r--r--data/icons/32x32/Makefile.am23
-rw-r--r--data/icons/32x32/Makefile.in497
-rw-r--r--data/icons/32x32/mate-session-properties.pngbin0 -> 1109 bytes
-rw-r--r--data/icons/32x32/mate-session-properties.svg490
-rw-r--r--data/icons/48x48/Makefile.am21
-rw-r--r--data/icons/48x48/Makefile.in495
-rw-r--r--data/icons/48x48/mate-session-properties.pngbin0 -> 1839 bytes
-rw-r--r--data/icons/Makefile.am3
-rw-r--r--data/icons/Makefile.in633
-rw-r--r--data/icons/scalable/Makefile.am21
-rw-r--r--data/icons/scalable/Makefile.in495
-rw-r--r--data/icons/scalable/mate-session-properties.svg515
-rw-r--r--data/mate-session-properties.desktop.in.in14
-rw-r--r--data/mate-session.schemas.in.in101
-rwxr-xr-xdata/mate-wm160
-rw-r--r--data/mate-wm.desktop.in.in12
-rw-r--r--data/mate.desktop.in7
-rw-r--r--data/session-properties.ui323
-rwxr-xr-xdepcomp630
-rw-r--r--distro/archlinux/PKGBUILD38
-rw-r--r--distro/archlinux/mate-session-manager.install22
-rwxr-xr-xdistro/ubuntu/build29
-rwxr-xr-xdistro/ubuntu/postinst11
-rwxr-xr-xdistro/ubuntu/postrm8
-rwxr-xr-xdistro/ubuntu/preinst7
-rwxr-xr-xdistro/ubuntu/prerm11
-rw-r--r--doc/Makefile.am3
-rw-r--r--doc/Makefile.in633
-rw-r--r--doc/dbus/Makefile.am48
-rw-r--r--doc/dbus/Makefile.in528
-rw-r--r--doc/dbus/config.xsl6
-rw-r--r--doc/dbus/dbus-introspect-docs.dtd32
-rw-r--r--doc/dbus/docbook.css78
-rw-r--r--doc/dbus/mate-session.xml.in52
-rw-r--r--doc/dbus/spec-to-docbook.xsl555
-rw-r--r--doc/man/Makefile.am10
-rw-r--r--doc/man/Makefile.in521
-rw-r--r--doc/man/mate-session-properties.124
-rw-r--r--doc/man/mate-session-save.140
-rw-r--r--doc/man/mate-session.179
-rw-r--r--doc/man/mate-wm.151
-rw-r--r--egg/Makefile.am52
-rw-r--r--egg/Makefile.in631
-rw-r--r--egg/eggdesktopfile.c1499
-rw-r--r--egg/eggdesktopfile.h164
-rw-r--r--egg/eggsmclient-private.h68
-rw-r--r--egg/eggsmclient-xsmp.c1369
-rw-r--r--egg/eggsmclient.c589
-rw-r--r--egg/eggsmclient.h120
-rwxr-xr-xinstall-sh520
-rwxr-xr-xltmain.sh9636
-rw-r--r--m4/intltool.m4216
-rw-r--r--m4/libtool.m47831
-rw-r--r--m4/ltoptions.m4369
-rw-r--r--m4/ltsugar.m4123
-rw-r--r--m4/ltversion.m423
-rw-r--r--m4/lt~obsolete.m498
-rw-r--r--m4/mate-doc-utils.m456
-rw-r--r--mate-doc-utils.make655
-rw-r--r--mate-session/Makefile.am140
-rw-r--r--mate-session/Makefile.in1158
-rw-r--r--mate-session/README65
-rw-r--r--mate-session/gs-idle-monitor.c507
-rw-r--r--mate-session/gs-idle-monitor.h75
-rw-r--r--mate-session/gsm-app.c489
-rw-r--r--mate-session/gsm-app.h136
-rw-r--r--mate-session/gsm-autostart-app.c1144
-rw-r--r--mate-session/gsm-autostart-app.h78
-rw-r--r--mate-session/gsm-client.c531
-rw-r--r--mate-session/gsm-client.h175
-rw-r--r--mate-session/gsm-consolekit.c903
-rw-r--r--mate-session/gsm-consolekit.h105
-rw-r--r--mate-session/gsm-dbus-client.c700
-rw-r--r--mate-session/gsm-dbus-client.h77
-rw-r--r--mate-session/gsm-inhibit-dialog.c1164
-rw-r--r--mate-session/gsm-inhibit-dialog.h74
-rw-r--r--mate-session/gsm-inhibitor.c605
-rw-r--r--mate-session/gsm-inhibitor.h120
-rw-r--r--mate-session/gsm-logout-dialog.c461
-rw-r--r--mate-session/gsm-logout-dialog.h77
-rw-r--r--mate-session/gsm-manager.c3481
-rw-r--r--mate-session/gsm-manager.h190
-rw-r--r--mate-session/gsm-marshal.list3
-rw-r--r--mate-session/gsm-mateconf.c143
-rw-r--r--mate-session/gsm-mateconf.h31
-rw-r--r--mate-session/gsm-presence.c550
-rw-r--r--mate-session/gsm-presence.h100
-rw-r--r--mate-session/gsm-session-save.c254
-rw-r--r--mate-session/gsm-session-save.h38
-rw-r--r--mate-session/gsm-store.c413
-rw-r--r--mate-session/gsm-store.h101
-rw-r--r--mate-session/gsm-util.c505
-rw-r--r--mate-session/gsm-util.h56
-rw-r--r--mate-session/gsm-xsmp-client.c1332
-rw-r--r--mate-session/gsm-xsmp-client.h93
-rw-r--r--mate-session/gsm-xsmp-server.c732
-rw-r--r--mate-session/gsm-xsmp-server.h62
-rw-r--r--mate-session/main.c543
-rw-r--r--mate-session/mdm-log.c206
-rw-r--r--mate-session/mdm-log.h55
-rw-r--r--mate-session/mdm-signal-handler.c553
-rw-r--r--mate-session/mdm-signal-handler.h78
-rw-r--r--mate-session/mdm.c496
-rw-r--r--mate-session/mdm.h58
-rw-r--r--mate-session/org.mate.SessionManager.App.xml43
-rw-r--r--mate-session/org.mate.SessionManager.Client.xml73
-rw-r--r--mate-session/org.mate.SessionManager.ClientPrivate.xml123
-rw-r--r--mate-session/org.mate.SessionManager.Inhibitor.xml66
-rw-r--r--mate-session/org.mate.SessionManager.Presence.xml95
-rw-r--r--mate-session/org.mate.SessionManager.xml377
-rw-r--r--mate-session/test-client-dbus.c261
-rw-r--r--mate-session/test-inhibit.c198
-rwxr-xr-xmissing376
-rwxr-xr-xmkinstalldirs162
-rw-r--r--po/LINGUAS104
-rw-r--r--po/Makefile.in.in217
-rw-r--r--po/POTFILES.in23
-rw-r--r--po/POTFILES.skip6
-rw-r--r--po/af.po487
-rw-r--r--po/am.po485
-rw-r--r--po/ar.po596
-rw-r--r--po/as.po579
-rw-r--r--po/ast.po631
-rw-r--r--po/az.po483
-rw-r--r--po/be.po958
-rw-r--r--po/[email protected]557
-rw-r--r--po/bg.po505
-rw-r--r--po/bn.po552
-rw-r--r--po/bn_IN.po502
-rw-r--r--po/br.po504
-rw-r--r--po/bs.po490
-rw-r--r--po/ca.po1090
-rw-r--r--po/[email protected]1093
-rw-r--r--po/crh.po570
-rw-r--r--po/cs.po505
-rw-r--r--po/cy.po521
-rw-r--r--po/da.po605
-rw-r--r--po/de.po986
-rw-r--r--po/dz.po648
-rw-r--r--po/el.po579
-rw-r--r--po/[email protected]531
-rw-r--r--po/en_CA.po656
-rw-r--r--po/en_GB.po952
-rw-r--r--po/eo.po592
-rw-r--r--po/es.po630
-rw-r--r--po/et.po403
-rw-r--r--po/eu.po548
-rw-r--r--po/fa.po533
-rw-r--r--po/fi.po587
-rw-r--r--po/fr.po517
-rw-r--r--po/fur.po669
-rw-r--r--po/fy.po594
-rw-r--r--po/ga.po530
-rw-r--r--po/gl.po548
-rw-r--r--po/gu.po535
-rw-r--r--po/ha.po810
-rw-r--r--po/he.po879
-rw-r--r--po/hi.po568
-rw-r--r--po/hr.po938
-rw-r--r--po/hu.po505
-rw-r--r--po/hy.po491
-rw-r--r--po/id.po516
-rw-r--r--po/ig.po800
-rw-r--r--po/is.po491
-rw-r--r--po/it.po601
-rw-r--r--po/ja.po568
-rw-r--r--po/ka.po796
-rw-r--r--po/kn.po681
-rw-r--r--po/ko.po565
-rw-r--r--po/ku.po878
-rw-r--r--po/lt.po558
-rw-r--r--po/lv.po564
-rw-r--r--po/mai.po510
-rw-r--r--po/mg.po487
-rw-r--r--po/mi.po458
-rw-r--r--po/mk.po589
-rw-r--r--po/ml.po563
-rw-r--r--po/mn.po495
-rw-r--r--po/mr.po522
-rw-r--r--po/ms.po502
-rw-r--r--po/nb.po488
-rw-r--r--po/nds.po508
-rw-r--r--po/ne.po628
-rw-r--r--po/nl.po614
-rw-r--r--po/nn.po1064
-rw-r--r--po/nso.po496
-rw-r--r--po/oc.po657
-rw-r--r--po/or.po537
-rw-r--r--po/pa.po648
-rw-r--r--po/pl.po506
-rw-r--r--po/ps.po548
-rw-r--r--po/pt.po992
-rw-r--r--po/pt_BR.po605
-rw-r--r--po/ro.po543
-rw-r--r--po/ru.po479
-rw-r--r--po/rw.po566
-rw-r--r--po/si.po586
-rw-r--r--po/sk.po911
-rw-r--r--po/sl.po540
-rw-r--r--po/sq.po646
-rw-r--r--po/sr.po962
-rw-r--r--po/[email protected]962
-rw-r--r--po/sv.po558
-rw-r--r--po/ta.po588
-rw-r--r--po/te.po538
-rw-r--r--po/th.po951
-rw-r--r--po/tk.po458
-rw-r--r--po/tr.po903
-rw-r--r--po/ug.po566
-rw-r--r--po/uk.po580
-rw-r--r--po/uz.po522
-rw-r--r--po/[email protected]522
-rw-r--r--po/vi.po513
-rw-r--r--po/wa.po498
-rw-r--r--po/xh.po500
-rw-r--r--po/yo.po802
-rw-r--r--po/zh_CN.po582
-rw-r--r--po/zh_HK.po932
-rw-r--r--po/zh_TW.po940
-rw-r--r--po/zu.po493
-rw-r--r--tools/Makefile.am22
-rw-r--r--tools/Makefile.in618
-rw-r--r--tools/mate-session-save.c320
266 files changed, 132146 insertions, 0 deletions
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..509accf
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,22 @@
+new code base authors
+---------------------
+
+Dan Winship <[email protected]>
+Lucas Rocha <[email protected]>
+William Jon McCann <[email protected]>
+
+original gnome-session authors
+------------------------------
+
+Tom Tromey <[email protected]>
+Felix Bellaby <[email protected]>
+
+smproxy authors
+---------------
+
+Ralph Mor, X Consortium
+
+with modifications from
+
+Tom Tromey <[email protected]>
+Felix Bellaby <[email protected]>
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..d159169
--- /dev/null
+++ b/COPYING
@@ -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.
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1 @@
+
diff --git a/HACKING b/HACKING
new file mode 100644
index 0000000..9fcf806
--- /dev/null
+++ b/HACKING
@@ -0,0 +1,31 @@
+Hacking on mate-session
+========================
+
+ + The development occurs in git:
+
+ http://git.gnome.org/browse/mate-session
+
+ For information on how to access MATE git please read:
+
+ http://live.gnome.org/Git
+
+ + Please send patches as bug reports in MATE Bugzilla:
+
+ https://bugzilla.gnome.org/ (product mate-session)
+
+ Your patch should be in unified diff form (the -u option to GNU
+ diff). See also:
+
+ http://live.gnome.org/MateLove/SubmittingPatches
+
+ + Please try and send a patch against a recent version of this package.
+ Patches against git master are most preferable.
+
+ + Don't commit any but the most trivial patches without approval.
+
+ + Exceptions to this are:
+
+ - Translators may commit basic i18n related patches to the build
+ setup.
+ - Build sheriff are welcome - in accordance with the relevant build
+ sheriff constraints.
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..2550dab
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,302 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+
+ This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+ Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package. The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system.
+
+ Running `configure' might take a while. While running, it prints
+ some messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+ 6. Often, you can also type `make uninstall' to remove the installed
+ files again.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you can use GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory. After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+ On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor. Like
+this:
+
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CPP="gcc -E" CXXCPP="g++ -E"
+
+ This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
+Installation Names
+==================
+
+ By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc. You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Particular systems
+==================
+
+ On HP-UX, the default C compiler is not ANSI C compatible. If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+ ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file. The option `-nodtk' can be used as
+a workaround. If GNU CC is not installed, it is therefore recommended
+to try
+
+ ./configure CC="cc"
+
+and if that doesn't work, try
+
+ ./configure CC="cc -nodtk"
+
+ On Solaris, don't put `/usr/ucb' early in your `PATH'. This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+ On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'. It is recommended to use the following options:
+
+ ./configure --prefix=/boot/common
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS
+ KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+ Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug. Until the bug is fixed you can use this workaround:
+
+ CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+ Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+ Print a summary of the options unique to this package's
+ `configure', and exit. The `short' variant lists options used
+ only in the top level, while the `recursive' variant lists options
+ also present in any nested packages.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--prefix=DIR'
+ Use DIR as the installation prefix. *Note Installation Names::
+ for more details, including other options available for fine-tuning
+ the installation locations.
+
+`--no-create'
+`-n'
+ Run the configure checks, but stop before creating any output
+ files.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
+
diff --git a/MAINTAINERS b/MAINTAINERS
new file mode 100644
index 0000000..18145c8
--- /dev/null
+++ b/MAINTAINERS
@@ -0,0 +1,20 @@
+Currently active maintainers
+----------------------------
+
+William Jon McCann
+Userid: mccann
+
+Lucas Rocha
+Userid: lucasr
+
+Vincent Untz
+Userid: vuntz
+
+Non-active maintainers, who have a good understanding of the code
+-----------------------------------------------------------------
+
+#Mark McLoughlin
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..5429fed
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,31 @@
+SUBDIRS = \
+ egg \
+ mate-session \
+ capplet \
+ tools \
+ data \
+ doc \
+ po
+
+ACLOCAL_AMFLAGS = -I m4
+
+EXTRA_DIST = \
+ HACKING \
+ MAINTAINERS
+
+MAINTAINERCLEANFILES = \
+ $(srcdir)/INSTALL \
+ $(srcdir)/aclocal.m4 \
+ $(srcdir)/config.guess \
+ $(srcdir)/config.h.in \
+ $(srcdir)/config.sub \
+ $(srcdir)/depcomp \
+ $(srcdir)/install-sh \
+ $(srcdir)/ltmain.sh \
+ $(srcdir)/missing \
+ $(srcdir)/mkinstalldirs \
+ $(srcdir)/configure \
+ $(srcdir)/m4/intltool.m4 \
+ `find "$(srcdir)" -type f -name Makefile.in -print`
+
+-include $(top_srcdir)/git.mk
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 0000000..76bbd99
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,824 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = .
+DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(srcdir)/config.h.in \
+ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
+ config.guess config.sub depcomp install-sh ltmain.sh missing \
+ mkinstalldirs
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir dist dist-all distcheck
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ { test ! -d "$(distdir)" \
+ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -fr "$(distdir)"; }; }
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+GZIP_ENV = --best
+DIST_ARCHIVES = $(distdir).tar.bz2
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = -I m4
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DEFAULT_WM = @DEFAULT_WM@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGG_SMCLIENT_CFLAGS = @EGG_SMCLIENT_CFLAGS@
+EGG_SMCLIENT_LIBS = @EGG_SMCLIENT_LIBS@
+EGREP = @EGREP@
+EXECINFO_LIBS = @EXECINFO_LIBS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HAVE_XRENDER = @HAVE_XRENDER@
+HAVE_XTEST = @HAVE_XTEST@
+ICE_CFLAGS = @ICE_CFLAGS@
+ICE_LIBS = @ICE_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATECONFTOOL = @MATECONFTOOL@
+MATECONF_CFLAGS = @MATECONF_CFLAGS@
+MATECONF_LIBS = @MATECONF_LIBS@
+MATECONF_SANITY_CHECK = @MATECONF_SANITY_CHECK@
+MATECONF_SCHEMA_CONFIG_SOURCE = @MATECONF_SCHEMA_CONFIG_SOURCE@
+MATECONF_SCHEMA_FILE_DIR = @MATECONF_SCHEMA_FILE_DIR@
+MATE_SESSION_CFLAGS = @MATE_SESSION_CFLAGS@
+MATE_SESSION_LIBS = @MATE_SESSION_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+REBUILD = @REBUILD@
+SED = @SED@
+SESSION_PROPERTIES_CFLAGS = @SESSION_PROPERTIES_CFLAGS@
+SESSION_PROPERTIES_LIBS = @SESSION_PROPERTIES_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SM_CFLAGS = @SM_CFLAGS@
+SM_LIBS = @SM_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XGETTEXT = @XGETTEXT@
+XMKMF = @XMKMF@
+XMLTO = @XMLTO@
+XRENDER_CFLAGS = @XRENDER_CFLAGS@
+XRENDER_LIBS = @XRENDER_LIBS@
+XSLTPROC = @XSLTPROC@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = \
+ egg \
+ mate-session \
+ capplet \
+ tools \
+ data \
+ doc \
+ po
+
+EXTRA_DIST = \
+ HACKING \
+ MAINTAINERS
+
+MAINTAINERCLEANFILES = \
+ $(srcdir)/INSTALL \
+ $(srcdir)/aclocal.m4 \
+ $(srcdir)/config.guess \
+ $(srcdir)/config.h.in \
+ $(srcdir)/config.sub \
+ $(srcdir)/depcomp \
+ $(srcdir)/install-sh \
+ $(srcdir)/ltmain.sh \
+ $(srcdir)/missing \
+ $(srcdir)/mkinstalldirs \
+ $(srcdir)/configure \
+ $(srcdir)/m4/intltool.m4 \
+ `find "$(srcdir)" -type f -name Makefile.in -print`
+
+all: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+am--refresh:
+ @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+config.h: stamp-h1
+ @if test ! -f $@; then \
+ rm -f stamp-h1; \
+ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
+ else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+ rm -f stamp-h1
+ touch $@
+
+distclean-hdr:
+ -rm -f config.h stamp-h1
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool config.lt
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(am__remove_distdir)
+ test -d "$(distdir)" || mkdir "$(distdir)"
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ -test -n "$(am__skip_mode_fix)" \
+ || find "$(distdir)" -type d ! -perm -755 \
+ -exec chmod u+rwx,go+rx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__remove_distdir)
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+
+dist-lzma: distdir
+ tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
+ $(am__remove_distdir)
+
+dist-xz: distdir
+ tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
+ $(am__remove_distdir)
+
+dist-tarZ: distdir
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__remove_distdir)
+
+dist-shar: distdir
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__remove_distdir)
+
+dist dist-all: distdir
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.lzma*) \
+ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
+ *.tar.xz*) \
+ xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
+ chmod -R a-w $(distdir); chmod a+w $(distdir)
+ mkdir $(distdir)/_build
+ mkdir $(distdir)/_inst
+ chmod a-w $(distdir)
+ test -d $(distdir)/_build || exit 0; \
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && am__cwd=`pwd` \
+ && $(am__cd) $(distdir)/_build \
+ && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+ && cd "$$am__cwd" \
+ || exit 1
+ $(am__remove_distdir)
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+ @$(am__cd) '$(distuninstallcheck_dir)' \
+ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile config.h
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr \
+ distclean-libtool distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
+ ctags-recursive install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am am--refresh check check-am clean clean-generic \
+ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
+ dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
+ distcheck distclean distclean-generic distclean-hdr \
+ distclean-libtool distclean-tags distcleancheck distdir \
+ distuninstallcheck dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags tags-recursive uninstall uninstall-am
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/NEWS
@@ -0,0 +1 @@
+
diff --git a/README b/README
new file mode 100644
index 0000000..b8af5f3
--- /dev/null
+++ b/README
@@ -0,0 +1,45 @@
+mate-session
+=============
+
+mate-session contains the MATE session manager, as well as a
+configuration program to choose applications starting on login.
+
+You may download updates to the package from:
+
+ http://download.gnome.org/sources/mate-session/
+
+To discuss mate-session, you may use the desktop-devel-list mailing
+list:
+
+ http://mail.gnome.org/mailman/listinfo/desktop-devel-list
+
+
+Design notes
+============
+
+See http://live.gnome.org/SessionManagement
+
+
+Installation
+============
+
+See the file 'INSTALL'. If you are not using a released version of
+mate-session (for example, if you checked out the code from git), you
+first need to run './autogen.sh'.
+
+
+How to report bugs
+==================
+
+Bugs should be reported to the MATE bug tracking system:
+
+ https://bugzilla.gnome.org/ (product mate-session)
+
+You will need to create an account for yourself.
+
+Please read the following page on how to prepare a useful bug report:
+
+ https://bugzilla.gnome.org/page.cgi?id=bug-writing.html
+
+Please read the HACKING file for information on where to send changes or
+bugfixes for this package.
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644
index 0000000..661f4d9
--- /dev/null
+++ b/aclocal.m4
@@ -0,0 +1,1892 @@
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
+[m4_warning([this file was generated for autoconf 2.68.
+You have another version of autoconf. It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically `autoreconf'.])])
+
+# Copyright (C) 1995-2002 Free Software Foundation, Inc.
+# Copyright (C) 2001-2003,2004 Red Hat, Inc.
+#
+# This file is free software, distributed under the terms of the GNU
+# General Public License. As a special exception to the GNU General
+# Public License, this file may be distributed as part of a program
+# that contains a configuration script generated by Autoconf, under
+# the same distribution terms as the rest of that program.
+#
+# This file can be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+#
+# Macro to add for using GNU gettext.
+# Ulrich Drepper <[email protected]>, 1995, 1996
+#
+# Modified to never use included libintl.
+# Owen Taylor <[email protected]>, 12/15/1998
+#
+# Major rework to remove unused code
+# Owen Taylor <[email protected]>, 12/11/2002
+#
+# Added better handling of ALL_LINGUAS from GNU gettext version
+# written by Bruno Haible, Owen Taylor <otaylor.redhat.com> 5/30/3002
+#
+# Modified to require ngettext
+# Matthias Clasen <[email protected]> 08/06/2004
+#
+# We need this here as well, since someone might use autoconf-2.5x
+# to configure GLib then an older version to configure a package
+# using AM_GLIB_GNU_GETTEXT
+AC_PREREQ(2.53)
+
+dnl
+dnl We go to great lengths to make sure that aclocal won't
+dnl try to pull in the installed version of these macros
+dnl when running aclocal in the glib directory.
+dnl
+m4_copy([AC_DEFUN],[glib_DEFUN])
+m4_copy([AC_REQUIRE],[glib_REQUIRE])
+dnl
+dnl At the end, if we're not within glib, we'll define the public
+dnl definitions in terms of our private definitions.
+dnl
+
+# GLIB_LC_MESSAGES
+#--------------------
+glib_DEFUN([GLIB_LC_MESSAGES],
+ [AC_CHECK_HEADERS([locale.h])
+ if test $ac_cv_header_locale_h = yes; then
+ AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
+ [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
+ am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
+ if test $am_cv_val_LC_MESSAGES = yes; then
+ AC_DEFINE(HAVE_LC_MESSAGES, 1,
+ [Define if your <locale.h> file defines LC_MESSAGES.])
+ fi
+ fi])
+
+# GLIB_PATH_PROG_WITH_TEST
+#----------------------------
+dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+glib_DEFUN([GLIB_PATH_PROG_WITH_TEST],
+[# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+ /*)
+ ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in ifelse([$5], , $PATH, [$5]); do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if [$3]; then
+ ac_cv_path_$1="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+ ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+ AC_MSG_RESULT([$]$1)
+else
+ AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
+
+# GLIB_WITH_NLS
+#-----------------
+glib_DEFUN([GLIB_WITH_NLS],
+ dnl NLS is obligatory
+ [USE_NLS=yes
+ AC_SUBST(USE_NLS)
+
+ gt_cv_have_gettext=no
+
+ CATOBJEXT=NONE
+ XGETTEXT=:
+ INTLLIBS=
+
+ AC_CHECK_HEADER(libintl.h,
+ [gt_cv_func_dgettext_libintl="no"
+ libintl_extra_libs=""
+
+ #
+ # First check in libc
+ #
+ AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc,
+ [AC_TRY_LINK([
+#include <libintl.h>
+],
+ [return !ngettext ("","", 1)],
+ gt_cv_func_ngettext_libc=yes,
+ gt_cv_func_ngettext_libc=no)
+ ])
+
+ if test "$gt_cv_func_ngettext_libc" = "yes" ; then
+ AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc,
+ [AC_TRY_LINK([
+#include <libintl.h>
+],
+ [return !dgettext ("","")],
+ gt_cv_func_dgettext_libc=yes,
+ gt_cv_func_dgettext_libc=no)
+ ])
+ fi
+
+ if test "$gt_cv_func_ngettext_libc" = "yes" ; then
+ AC_CHECK_FUNCS(bind_textdomain_codeset)
+ fi
+
+ #
+ # If we don't have everything we want, check in libintl
+ #
+ if test "$gt_cv_func_dgettext_libc" != "yes" \
+ || test "$gt_cv_func_ngettext_libc" != "yes" \
+ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
+
+ AC_CHECK_LIB(intl, bindtextdomain,
+ [AC_CHECK_LIB(intl, ngettext,
+ [AC_CHECK_LIB(intl, dgettext,
+ gt_cv_func_dgettext_libintl=yes)])])
+
+ if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
+ AC_MSG_CHECKING([if -liconv is needed to use gettext])
+ AC_MSG_RESULT([])
+ AC_CHECK_LIB(intl, ngettext,
+ [AC_CHECK_LIB(intl, dcgettext,
+ [gt_cv_func_dgettext_libintl=yes
+ libintl_extra_libs=-liconv],
+ :,-liconv)],
+ :,-liconv)
+ fi
+
+ #
+ # If we found libintl, then check in it for bind_textdomain_codeset();
+ # we'll prefer libc if neither have bind_textdomain_codeset(),
+ # and both have dgettext and ngettext
+ #
+ if test "$gt_cv_func_dgettext_libintl" = "yes" ; then
+ glib_save_LIBS="$LIBS"
+ LIBS="$LIBS -lintl $libintl_extra_libs"
+ unset ac_cv_func_bind_textdomain_codeset
+ AC_CHECK_FUNCS(bind_textdomain_codeset)
+ LIBS="$glib_save_LIBS"
+
+ if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then
+ gt_cv_func_dgettext_libc=no
+ else
+ if test "$gt_cv_func_dgettext_libc" = "yes" \
+ && test "$gt_cv_func_ngettext_libc" = "yes"; then
+ gt_cv_func_dgettext_libintl=no
+ fi
+ fi
+ fi
+ fi
+
+ if test "$gt_cv_func_dgettext_libc" = "yes" \
+ || test "$gt_cv_func_dgettext_libintl" = "yes"; then
+ gt_cv_have_gettext=yes
+ fi
+
+ if test "$gt_cv_func_dgettext_libintl" = "yes"; then
+ INTLLIBS="-lintl $libintl_extra_libs"
+ fi
+
+ if test "$gt_cv_have_gettext" = "yes"; then
+ AC_DEFINE(HAVE_GETTEXT,1,
+ [Define if the GNU gettext() function is already present or preinstalled.])
+ GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
+ if test "$MSGFMT" != "no"; then
+ glib_save_LIBS="$LIBS"
+ LIBS="$LIBS $INTLLIBS"
+ AC_CHECK_FUNCS(dcgettext)
+ MSGFMT_OPTS=
+ AC_MSG_CHECKING([if msgfmt accepts -c])
+ GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: test 1.0\n"
+"PO-Revision-Date: 2007-02-15 12:01+0100\n"
+"Last-Translator: test <[email protected]>\n"
+"Language-Team: C <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])])
+ AC_SUBST(MSGFMT_OPTS)
+ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+ GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+ AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
+ return _nl_msg_cat_cntr],
+ [CATOBJEXT=.gmo
+ DATADIRNAME=share],
+ [case $host in
+ *-*-solaris*)
+ dnl On Solaris, if bind_textdomain_codeset is in libc,
+ dnl GNU format message catalog is always supported,
+ dnl since both are added to the libc all together.
+ dnl Hence, we'd like to go with DATADIRNAME=share and
+ dnl and CATOBJEXT=.gmo in this case.
+ AC_CHECK_FUNC(bind_textdomain_codeset,
+ [CATOBJEXT=.gmo
+ DATADIRNAME=share],
+ [CATOBJEXT=.mo
+ DATADIRNAME=lib])
+ ;;
+ *-*-openbsd*)
+ CATOBJEXT=.mo
+ DATADIRNAME=share
+ ;;
+ *)
+ CATOBJEXT=.mo
+ DATADIRNAME=lib
+ ;;
+ esac])
+ LIBS="$glib_save_LIBS"
+ INSTOBJEXT=.mo
+ else
+ gt_cv_have_gettext=no
+ fi
+ fi
+ ])
+
+ if test "$gt_cv_have_gettext" = "yes" ; then
+ AC_DEFINE(ENABLE_NLS, 1,
+ [always defined to indicate that i18n is enabled])
+ fi
+
+ dnl Test whether we really found GNU xgettext.
+ if test "$XGETTEXT" != ":"; then
+ dnl If it is not GNU xgettext we define it as : so that the
+ dnl Makefiles still can work.
+ if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+ : ;
+ else
+ AC_MSG_RESULT(
+ [found xgettext program is not GNU xgettext; ignore it])
+ XGETTEXT=":"
+ fi
+ fi
+
+ # We need to process the po/ directory.
+ POSUB=po
+
+ AC_OUTPUT_COMMANDS(
+ [case "$CONFIG_FILES" in *po/Makefile.in*)
+ sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
+ esac])
+
+ dnl These rules are solely for the distribution goal. While doing this
+ dnl we only have to keep exactly one list of the available catalogs
+ dnl in configure.ac.
+ for lang in $ALL_LINGUAS; do
+ GMOFILES="$GMOFILES $lang.gmo"
+ POFILES="$POFILES $lang.po"
+ done
+
+ dnl Make all variables we use known to autoconf.
+ AC_SUBST(CATALOGS)
+ AC_SUBST(CATOBJEXT)
+ AC_SUBST(DATADIRNAME)
+ AC_SUBST(GMOFILES)
+ AC_SUBST(INSTOBJEXT)
+ AC_SUBST(INTLLIBS)
+ AC_SUBST(PO_IN_DATADIR_TRUE)
+ AC_SUBST(PO_IN_DATADIR_FALSE)
+ AC_SUBST(POFILES)
+ AC_SUBST(POSUB)
+ ])
+
+# AM_GLIB_GNU_GETTEXT
+# -------------------
+# Do checks necessary for use of gettext. If a suitable implementation
+# of gettext is found in either in libintl or in the C library,
+# it will set INTLLIBS to the libraries needed for use of gettext
+# and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable
+# gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST()
+# on various variables needed by the Makefile.in.in installed by
+# glib-gettextize.
+dnl
+glib_DEFUN([GLIB_GNU_GETTEXT],
+ [AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_HEADER_STDC])dnl
+
+ GLIB_LC_MESSAGES
+ GLIB_WITH_NLS
+
+ if test "$gt_cv_have_gettext" = "yes"; then
+ if test "x$ALL_LINGUAS" = "x"; then
+ LINGUAS=
+ else
+ AC_MSG_CHECKING(for catalogs to be installed)
+ NEW_LINGUAS=
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ NEW_LINGUAS="$NEW_LINGUAS $presentlang"
+ fi
+ done
+ LINGUAS=$NEW_LINGUAS
+ AC_MSG_RESULT($LINGUAS)
+ fi
+
+ dnl Construct list of names of catalog files to be constructed.
+ if test -n "$LINGUAS"; then
+ for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+ fi
+ fi
+
+ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
+ dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
+ dnl Try to locate is.
+ MKINSTALLDIRS=
+ if test -n "$ac_aux_dir"; then
+ MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
+ fi
+ if test -z "$MKINSTALLDIRS"; then
+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+ fi
+ AC_SUBST(MKINSTALLDIRS)
+
+ dnl Generate list of files to be processed by xgettext which will
+ dnl be included in po/Makefile.
+ test -d po || mkdir po
+ if test "x$srcdir" != "x."; then
+ if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
+ posrcprefix="$srcdir/"
+ else
+ posrcprefix="../$srcdir/"
+ fi
+ else
+ posrcprefix="../"
+ fi
+ rm -f po/POTFILES
+ sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
+ < $srcdir/po/POTFILES.in > po/POTFILES
+ ])
+
+# AM_GLIB_DEFINE_LOCALEDIR(VARIABLE)
+# -------------------------------
+# Define VARIABLE to the location where catalog files will
+# be installed by po/Makefile.
+glib_DEFUN([GLIB_DEFINE_LOCALEDIR],
+[glib_REQUIRE([GLIB_GNU_GETTEXT])dnl
+glib_save_prefix="$prefix"
+glib_save_exec_prefix="$exec_prefix"
+glib_save_datarootdir="$datarootdir"
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+test "x$exec_prefix" = xNONE && exec_prefix=$prefix
+datarootdir=`eval echo "${datarootdir}"`
+if test "x$CATOBJEXT" = "x.mo" ; then
+ localedir=`eval echo "${libdir}/locale"`
+else
+ localedir=`eval echo "${datadir}/locale"`
+fi
+prefix="$glib_save_prefix"
+exec_prefix="$glib_save_exec_prefix"
+datarootdir="$glib_save_datarootdir"
+AC_DEFINE_UNQUOTED($1, "$localedir",
+ [Define the location where the catalogs will be installed])
+])
+
+dnl
+dnl Now the definitions that aclocal will find
+dnl
+ifdef(glib_configure_ac,[],[
+AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)])
+AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)])
+])dnl
+
+# GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL])
+#
+# Create a temporary file with TEST-FILE as its contents and pass the
+# file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with
+# 0 and perform ACTION-IF-FAIL for any other exit status.
+AC_DEFUN([GLIB_RUN_PROG],
+[cat >conftest.foo <<_ACEOF
+$2
+_ACEOF
+if AC_RUN_LOG([$1 conftest.foo]); then
+ m4_ifval([$3], [$3], [:])
+m4_ifvaln([$4], [else $4])dnl
+echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD
+sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD
+fi])
+
+
+# mate-common.m4
+#
+
+dnl MATE_COMMON_INIT
+
+AC_DEFUN([MATE_COMMON_INIT],
+[
+ dnl this macro should come after AC_CONFIG_MACRO_DIR
+ AC_BEFORE([AC_CONFIG_MACRO_DIR], [$0])
+
+ dnl ensure that when the Automake generated makefile calls aclocal,
+ dnl it honours the $ACLOCAL_FLAGS environment variable
+ ACLOCAL_AMFLAGS="\${ACLOCAL_FLAGS}"
+ if test -n "$ac_macro_dir"; then
+ ACLOCAL_AMFLAGS="-I $ac_macro_dir $ACLOCAL_AMFLAGS"
+ fi
+
+ AC_SUBST([ACLOCAL_AMFLAGS])
+])
+
+AC_DEFUN([MATE_DEBUG_CHECK],
+[
+ AC_ARG_ENABLE([debug],
+ AC_HELP_STRING([--enable-debug],
+ [turn on debugging]),,
+ [enable_debug=no])
+
+ if test x$enable_debug = xyes ; then
+ AC_DEFINE(MATE_ENABLE_DEBUG, 1,
+ [Enable additional debugging at the expense of performance and size])
+ fi
+])
+
+dnl MATE_MAINTAINER_MODE_DEFINES ()
+dnl define DISABLE_DEPRECATED
+dnl
+AC_DEFUN([MATE_MAINTAINER_MODE_DEFINES],
+[
+ AC_REQUIRE([AM_MAINTAINER_MODE])
+
+ DISABLE_DEPRECATED=""
+ if test $USE_MAINTAINER_MODE = yes; then
+ DOMAINS="G ATK PANGO GDK GDK_PIXBUF GTK MATECONF MATECOMPONENT MATECOMPONENT_UI MATE LIBGLADE VTE MATE_VFS WNCK LIBSOUP"
+ for DOMAIN in $DOMAINS; do
+ DISABLE_DEPRECATED="$DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_SINGLE_INCLUDES"
+ done
+ fi
+
+ AC_SUBST(DISABLE_DEPRECATED)
+])
+
+dnl MATE_COMPILE_WARNINGS
+dnl Turn on many useful compiler warnings
+dnl For now, only works on GCC
+AC_DEFUN([MATE_COMPILE_WARNINGS],[
+ dnl ******************************
+ dnl More compiler warnings
+ dnl ******************************
+
+ AC_ARG_ENABLE(compile-warnings,
+ AC_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@],
+ [Turn on compiler warnings]),,
+ [enable_compile_warnings="m4_default([$1],[yes])"])
+
+ warnCFLAGS=
+ if test "x$GCC" != xyes; then
+ enable_compile_warnings=no
+ fi
+
+ warning_flags=
+ realsave_CFLAGS="$CFLAGS"
+
+ case "$enable_compile_warnings" in
+ no)
+ warning_flags=
+ ;;
+ minimum)
+ warning_flags="-Wall"
+ ;;
+ yes)
+ warning_flags="-Wall -Wmissing-prototypes"
+ ;;
+ maximum|error)
+ warning_flags="-Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith"
+ CFLAGS="$warning_flags $CFLAGS"
+ for option in -Wno-sign-compare; do
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $option"
+ AC_MSG_CHECKING([whether gcc understands $option])
+ AC_TRY_COMPILE([], [],
+ has_option=yes,
+ has_option=no,)
+ CFLAGS="$SAVE_CFLAGS"
+ AC_MSG_RESULT($has_option)
+ if test $has_option = yes; then
+ warning_flags="$warning_flags $option"
+ fi
+ unset has_option
+ unset SAVE_CFLAGS
+ done
+ unset option
+ if test "$enable_compile_warnings" = "error" ; then
+ warning_flags="$warning_flags -Werror"
+ fi
+ ;;
+ *)
+ AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings)
+ ;;
+ esac
+ CFLAGS="$realsave_CFLAGS"
+ AC_MSG_CHECKING(what warning flags to pass to the C compiler)
+ AC_MSG_RESULT($warning_flags)
+
+ AC_ARG_ENABLE(iso-c,
+ AC_HELP_STRING([--enable-iso-c],
+ [Try to warn if code is not ISO C ]),,
+ [enable_iso_c=no])
+
+ AC_MSG_CHECKING(what language compliance flags to pass to the C compiler)
+ complCFLAGS=
+ if test "x$enable_iso_c" != "xno"; then
+ if test "x$GCC" = "xyes"; then
+ case " $CFLAGS " in
+ *[\ \ ]-ansi[\ \ ]*) ;;
+ *) complCFLAGS="$complCFLAGS -ansi" ;;
+ esac
+ case " $CFLAGS " in
+ *[\ \ ]-pedantic[\ \ ]*) ;;
+ *) complCFLAGS="$complCFLAGS -pedantic" ;;
+ esac
+ fi
+ fi
+ AC_MSG_RESULT($complCFLAGS)
+
+ WARN_CFLAGS="$warning_flags $complCFLAGS"
+ AC_SUBST(WARN_CFLAGS)
+])
+
+dnl For C++, do basically the same thing.
+
+AC_DEFUN([MATE_CXX_WARNINGS],[
+ AC_ARG_ENABLE(cxx-warnings,
+ AC_HELP_STRING([--enable-cxx-warnings=@<:@no/minimum/yes@:>@]
+ [Turn on compiler warnings.]),,
+ [enable_cxx_warnings="m4_default([$1],[minimum])"])
+
+ AC_MSG_CHECKING(what warning flags to pass to the C++ compiler)
+ warnCXXFLAGS=
+ if test "x$GXX" != xyes; then
+ enable_cxx_warnings=no
+ fi
+ if test "x$enable_cxx_warnings" != "xno"; then
+ if test "x$GXX" = "xyes"; then
+ case " $CXXFLAGS " in
+ *[\ \ ]-Wall[\ \ ]*) ;;
+ *) warnCXXFLAGS="-Wall -Wno-unused" ;;
+ esac
+
+ ## -W is not all that useful. And it cannot be controlled
+ ## with individual -Wno-xxx flags, unlike -Wall
+ if test "x$enable_cxx_warnings" = "xyes"; then
+ warnCXXFLAGS="$warnCXXFLAGS -Wshadow -Woverloaded-virtual"
+ fi
+ fi
+ fi
+ AC_MSG_RESULT($warnCXXFLAGS)
+
+ AC_ARG_ENABLE(iso-cxx,
+ AC_HELP_STRING([--enable-iso-cxx],
+ [Try to warn if code is not ISO C++ ]),,
+ [enable_iso_cxx=no])
+
+ AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler)
+ complCXXFLAGS=
+ if test "x$enable_iso_cxx" != "xno"; then
+ if test "x$GXX" = "xyes"; then
+ case " $CXXFLAGS " in
+ *[\ \ ]-ansi[\ \ ]*) ;;
+ *) complCXXFLAGS="$complCXXFLAGS -ansi" ;;
+ esac
+
+ case " $CXXFLAGS " in
+ *[\ \ ]-pedantic[\ \ ]*) ;;
+ *) complCXXFLAGS="$complCXXFLAGS -pedantic" ;;
+ esac
+ fi
+ fi
+ AC_MSG_RESULT($complCXXFLAGS)
+
+ WARN_CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS"
+ AC_SUBST(WARN_CXXFLAGS)
+])
+
+dnl AM_MATECONF_SOURCE_2
+dnl Defines MATECONF_SCHEMA_CONFIG_SOURCE which is where you should install schemas
+dnl (i.e. pass to mateconftool-2
+dnl Defines MATECONF_SCHEMA_FILE_DIR which is a filesystem directory where
+dnl you should install foo.schemas files
+dnl
+
+AC_DEFUN([AM_MATECONF_SOURCE_2],
+[
+ if test "x$MATECONF_SCHEMA_INSTALL_SOURCE" = "x"; then
+ MATECONF_SCHEMA_CONFIG_SOURCE=`mateconftool-2 --get-default-source`
+ else
+ MATECONF_SCHEMA_CONFIG_SOURCE=$MATECONF_SCHEMA_INSTALL_SOURCE
+ fi
+
+ AC_ARG_WITH([mateconf-source],
+ AC_HELP_STRING([--with-mateconf-source=sourceaddress],
+ [Config database for installing schema files.]),
+ [MATECONF_SCHEMA_CONFIG_SOURCE="$withval"],)
+
+ AC_SUBST(MATECONF_SCHEMA_CONFIG_SOURCE)
+ AC_MSG_RESULT([Using config source $MATECONF_SCHEMA_CONFIG_SOURCE for schema installation])
+
+ if test "x$MATECONF_SCHEMA_FILE_DIR" = "x"; then
+ MATECONF_SCHEMA_FILE_DIR='$(sysconfdir)/mateconf/schemas'
+ fi
+
+ AC_ARG_WITH([mateconf-schema-file-dir],
+ AC_HELP_STRING([--with-mateconf-schema-file-dir=dir],
+ [Directory for installing schema files.]),
+ [MATECONF_SCHEMA_FILE_DIR="$withval"],)
+
+ AC_SUBST(MATECONF_SCHEMA_FILE_DIR)
+ AC_MSG_RESULT([Using $MATECONF_SCHEMA_FILE_DIR as install directory for schema files])
+
+ AC_ARG_ENABLE(schemas-install,
+ AC_HELP_STRING([--disable-schemas-install],
+ [Disable the schemas installation]),
+ [case ${enableval} in
+ yes|no) ;;
+ *) AC_MSG_ERROR([bad value ${enableval} for --enable-schemas-install]) ;;
+ esac])
+ AM_CONDITIONAL([MATECONF_SCHEMAS_INSTALL], [test "$enable_schemas_install" != no])
+])
+
+# nls.m4 serial 5 (gettext-0.18)
+dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation,
+dnl Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <[email protected]>, 1995-2000.
+dnl Bruno Haible <[email protected]>, 2000-2003.
+
+AC_PREREQ([2.50])
+
+AC_DEFUN([AM_NLS],
+[
+ AC_MSG_CHECKING([whether NLS is requested])
+ dnl Default is enabled NLS
+ AC_ARG_ENABLE([nls],
+ [ --disable-nls do not use Native Language Support],
+ USE_NLS=$enableval, USE_NLS=yes)
+ AC_MSG_RESULT([$USE_NLS])
+ AC_SUBST([USE_NLS])
+])
+
+# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
+# serial 1 (pkg-config-0.24)
+#
+# Copyright © 2004 Scott James Remnant <[email protected]>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=m4_default([$1], [0.9.0])
+ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ PKG_CONFIG=""
+ fi
+fi[]dnl
+])# PKG_PROG_PKG_CONFIG
+
+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#
+# Check to see whether a particular set of modules exists. Similar
+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
+#
+# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+# only at the first occurence in configure.ac, so if the first place
+# it's called might be skipped (such as if it is within an "if", you
+# have to call PKG_CHECK_EXISTS manually
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+ m4_default([$2], [:])
+m4_ifvaln([$3], [else
+ $3])dnl
+fi])
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+ pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+ PKG_CHECK_EXISTS([$3],
+ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes ],
+ [pkg_failed=yes])
+ else
+ pkg_failed=untried
+fi[]dnl
+])# _PKG_CONFIG
+
+# _PKG_SHORT_ERRORS_SUPPORTED
+# -----------------------------
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi[]dnl
+])# _PKG_SHORT_ERRORS_SUPPORTED
+
+
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+#
+#
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+ AC_MSG_RESULT([no])
+ _PKG_SHORT_ERRORS_SUPPORTED
+ if test $_pkg_short_errors_supported = yes; then
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+ else
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+ m4_default([$4], [AC_MSG_ERROR(
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT])[]dnl
+ ])
+elif test $pkg_failed = untried; then
+ AC_MSG_RESULT([no])
+ m4_default([$4], [AC_MSG_FAILURE(
+[The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+ ])
+else
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ AC_MSG_RESULT([yes])
+ $3
+fi[]dnl
+])# PKG_CHECK_MODULES
+
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.11'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version. Point them to the right macro.
+m4_if([$1], [1.11.1], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too. Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 9
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 10
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], UPC, [depcc="$UPC" am_compiler_list=],
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ am__universal=false
+ m4_case([$1], [CC],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac],
+ [CXX],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac])
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+])
+
+# Generate code to set up dependency tracking. -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+#serial 5
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`AS_DIRNAME("$mf")`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`AS_DIRNAME(["$file"])`
+ AS_MKDIR_P([$dirpart/$fdir])
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled. FIXME. This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 16
+
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.62])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES(OBJC)],
+ [define([AC_PROG_OBJC],
+ defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+])
+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
+dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+])
+
+dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+AC_SUBST(install_sh)])
+
+# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless `enable' is passed literally.
+# For symmetry, `disable' may be passed as well. Anyway, the user
+# can override the default with the --enable/--disable switch.
+AC_DEFUN([AM_MAINTAINER_MODE],
+[m4_case(m4_default([$1], [disable]),
+ [enable], [m4_define([am_maintainer_other], [disable])],
+ [disable], [m4_define([am_maintainer_other], [enable])],
+ [m4_define([am_maintainer_other], [enable])
+ m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
+ dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+ AC_ARG_ENABLE([maintainer-mode],
+[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer],
+ [USE_MAINTAINER_MODE=$enableval],
+ [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST([MAINT])dnl
+]
+)
+
+AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 6
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check for `mkdir -p'.
+AC_DEFUN([AM_PROG_MKDIR_P],
+[AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+ [[\\/$]]* | ?:[[\\/]]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[[\\\"\#\$\&\'\`$am_lf]]*)
+ AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
+ AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+# Copyright (C) 2009 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 1
+
+# AM_SILENT_RULES([DEFAULT])
+# --------------------------
+# Enable less verbose build rules; with the default set to DEFAULT
+# (`yes' being less verbose, `no' or empty being verbose).
+AC_DEFUN([AM_SILENT_RULES],
+[AC_ARG_ENABLE([silent-rules],
+[ --enable-silent-rules less verbose build output (undo: `make V=1')
+ --disable-silent-rules verbose build output (undo: `make V=0')])
+case $enable_silent_rules in
+yes) AM_DEFAULT_VERBOSITY=0;;
+no) AM_DEFAULT_VERBOSITY=1;;
+*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([m4/intltool.m4])
+m4_include([m4/libtool.m4])
+m4_include([m4/ltoptions.m4])
+m4_include([m4/ltsugar.m4])
+m4_include([m4/ltversion.m4])
+m4_include([m4/lt~obsolete.m4])
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000..deeb365
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+# Run this to generate all the initial makefiles, etc.
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+PKG_NAME="mate-session-manager"
+
+(test -f $srcdir/configure.ac) || {
+ echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
+ echo " top-level $PKG_NAME directory"
+ exit 1
+}
+
+which mate-autogen.sh || {
+ echo "You need to install mate-common from the MATE Git"
+ exit 1
+}
+
+REQUIRED_AUTOMAKE_VERSION=1.9
+USE_MATE2_MACROS=1
+USE_COMMON_DOC_BUILD=yes
+
+. mate-autogen.sh
+
diff --git a/capplet/Makefile.am b/capplet/Makefile.am
new file mode 100644
index 0000000..cab50d1
--- /dev/null
+++ b/capplet/Makefile.am
@@ -0,0 +1,33 @@
+bin_PROGRAMS = mate-session-properties
+
+AM_CPPFLAGS = \
+ $(SESSION_PROPERTIES_CFLAGS) \
+ $(MATECONF_CFLAGS) \
+ -I$(top_srcdir)/egg \
+ -I$(top_srcdir)/mate-session \
+ -DLOCALE_DIR=\""$(datadir)/locale"\" \
+ -DGTKBUILDER_DIR=\""$(pkgdatadir)"\" \
+ $(DISABLE_DEPRECATED_CFLAGS)
+
+AM_CFLAGS = $(WARN_CFLAGS)
+
+mate_session_properties_SOURCES = \
+ main.c \
+ gsm-properties-dialog.h \
+ gsm-properties-dialog.c \
+ gsm-app-dialog.h \
+ gsm-app-dialog.c \
+ gsp-app.h \
+ gsp-app.c \
+ gsp-app-manager.h \
+ gsp-app-manager.c \
+ gsp-keyfile.h \
+ gsp-keyfile.c
+
+mate_session_properties_LDADD = \
+ $(SESSION_PROPERTIES_LIBS) \
+ $(top_builddir)/egg/libeggdesktopfile.la \
+ $(top_builddir)/mate-session/libgsmutil.la \
+ $(MATECONF_LIBS)
+
+-include $(top_srcdir)/git.mk
diff --git a/capplet/Makefile.in b/capplet/Makefile.in
new file mode 100644
index 0000000..7554785
--- /dev/null
+++ b/capplet/Makefile.in
@@ -0,0 +1,639 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+bin_PROGRAMS = mate-session-properties$(EXEEXT)
+subdir = capplet
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+PROGRAMS = $(bin_PROGRAMS)
+am_mate_session_properties_OBJECTS = main.$(OBJEXT) \
+ gsm-properties-dialog.$(OBJEXT) gsm-app-dialog.$(OBJEXT) \
+ gsp-app.$(OBJEXT) gsp-app-manager.$(OBJEXT) \
+ gsp-keyfile.$(OBJEXT)
+mate_session_properties_OBJECTS = \
+ $(am_mate_session_properties_OBJECTS)
+am__DEPENDENCIES_1 =
+mate_session_properties_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+ $(top_builddir)/egg/libeggdesktopfile.la \
+ $(top_builddir)/mate-session/libgsmutil.la \
+ $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo " CC " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo " CCLD " $@;
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+SOURCES = $(mate_session_properties_SOURCES)
+DIST_SOURCES = $(mate_session_properties_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DEFAULT_WM = @DEFAULT_WM@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGG_SMCLIENT_CFLAGS = @EGG_SMCLIENT_CFLAGS@
+EGG_SMCLIENT_LIBS = @EGG_SMCLIENT_LIBS@
+EGREP = @EGREP@
+EXECINFO_LIBS = @EXECINFO_LIBS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HAVE_XRENDER = @HAVE_XRENDER@
+HAVE_XTEST = @HAVE_XTEST@
+ICE_CFLAGS = @ICE_CFLAGS@
+ICE_LIBS = @ICE_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATECONFTOOL = @MATECONFTOOL@
+MATECONF_CFLAGS = @MATECONF_CFLAGS@
+MATECONF_LIBS = @MATECONF_LIBS@
+MATECONF_SANITY_CHECK = @MATECONF_SANITY_CHECK@
+MATECONF_SCHEMA_CONFIG_SOURCE = @MATECONF_SCHEMA_CONFIG_SOURCE@
+MATECONF_SCHEMA_FILE_DIR = @MATECONF_SCHEMA_FILE_DIR@
+MATE_SESSION_CFLAGS = @MATE_SESSION_CFLAGS@
+MATE_SESSION_LIBS = @MATE_SESSION_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+REBUILD = @REBUILD@
+SED = @SED@
+SESSION_PROPERTIES_CFLAGS = @SESSION_PROPERTIES_CFLAGS@
+SESSION_PROPERTIES_LIBS = @SESSION_PROPERTIES_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SM_CFLAGS = @SM_CFLAGS@
+SM_LIBS = @SM_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XGETTEXT = @XGETTEXT@
+XMKMF = @XMKMF@
+XMLTO = @XMLTO@
+XRENDER_CFLAGS = @XRENDER_CFLAGS@
+XRENDER_LIBS = @XRENDER_LIBS@
+XSLTPROC = @XSLTPROC@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CPPFLAGS = \
+ $(SESSION_PROPERTIES_CFLAGS) \
+ $(MATECONF_CFLAGS) \
+ -I$(top_srcdir)/egg \
+ -I$(top_srcdir)/mate-session \
+ -DLOCALE_DIR=\""$(datadir)/locale"\" \
+ -DGTKBUILDER_DIR=\""$(pkgdatadir)"\" \
+ $(DISABLE_DEPRECATED_CFLAGS)
+
+AM_CFLAGS = $(WARN_CFLAGS)
+mate_session_properties_SOURCES = \
+ main.c \
+ gsm-properties-dialog.h \
+ gsm-properties-dialog.c \
+ gsm-app-dialog.h \
+ gsm-app-dialog.c \
+ gsp-app.h \
+ gsp-app.c \
+ gsp-app-manager.h \
+ gsp-app-manager.c \
+ gsp-keyfile.h \
+ gsp-keyfile.c
+
+mate_session_properties_LDADD = \
+ $(SESSION_PROPERTIES_LIBS) \
+ $(top_builddir)/egg/libeggdesktopfile.la \
+ $(top_builddir)/mate-session/libgsmutil.la \
+ $(MATECONF_LIBS)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu capplet/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu capplet/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p || test -f $$p1; \
+ then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+ @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+mate-session-properties$(EXEEXT): $(mate_session_properties_OBJECTS) $(mate_session_properties_DEPENDENCIES)
+ @rm -f mate-session-properties$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mate_session_properties_OBJECTS) $(mate_session_properties_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsm-app-dialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsm-properties-dialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsp-app-manager.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsp-app.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsp-keyfile.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+ clean-generic clean-libtool ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-binPROGRAMS install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-binPROGRAMS
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/capplet/gsm-app-dialog.c b/capplet/gsm-app-dialog.c
new file mode 100644
index 0000000..f130e0c
--- /dev/null
+++ b/capplet/gsm-app-dialog.c
@@ -0,0 +1,544 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include "config.h"
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+
+#include "gsm-util.h"
+
+#include "gsm-app-dialog.h"
+
+#define GTKBUILDER_FILE "session-properties.ui"
+
+#define CAPPLET_NAME_ENTRY_WIDGET_NAME "session_properties_name_entry"
+#define CAPPLET_COMMAND_ENTRY_WIDGET_NAME "session_properties_command_entry"
+#define CAPPLET_COMMENT_ENTRY_WIDGET_NAME "session_properties_comment_entry"
+#define CAPPLET_BROWSE_WIDGET_NAME "session_properties_browse_button"
+
+
+#define GSM_APP_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_APP_DIALOG, GsmAppDialogPrivate))
+
+struct GsmAppDialogPrivate
+{
+ GtkWidget *name_entry;
+ GtkWidget *command_entry;
+ GtkWidget *comment_entry;
+ GtkWidget *browse_button;
+ char *name;
+ char *command;
+ char *comment;
+};
+
+static void gsm_app_dialog_class_init (GsmAppDialogClass *klass);
+static void gsm_app_dialog_init (GsmAppDialog *app_dialog);
+static void gsm_app_dialog_finalize (GObject *object);
+
+enum {
+ PROP_0,
+ PROP_NAME,
+ PROP_COMMAND,
+ PROP_COMMENT
+};
+
+G_DEFINE_TYPE (GsmAppDialog, gsm_app_dialog, GTK_TYPE_DIALOG)
+
+static char *
+make_exec_uri (const char *exec)
+{
+ GString *str;
+ const char *c;
+
+ if (exec == NULL) {
+ return g_strdup ("");
+ }
+
+ if (strchr (exec, ' ') == NULL) {
+ return g_strdup (exec);
+ }
+
+ str = g_string_new_len (NULL, strlen (exec));
+
+ str = g_string_append_c (str, '"');
+ for (c = exec; *c != '\0'; c++) {
+ /* FIXME: GKeyFile will add an additional backslach so we'll
+ * end up with toto\\" instead of toto\"
+ * We could use g_key_file_set_value(), but then we don't
+ * benefit from the other escaping that glib is doing...
+ */
+ if (*c == '"') {
+ str = g_string_append (str, "\\\"");
+ } else {
+ str = g_string_append_c (str, *c);
+ }
+ }
+ str = g_string_append_c (str, '"');
+
+ return g_string_free (str, FALSE);
+}
+
+static void
+on_browse_button_clicked (GtkWidget *widget,
+ GsmAppDialog *dialog)
+{
+ GtkWidget *chooser;
+ int response;
+
+ chooser = gtk_file_chooser_dialog_new ("",
+ GTK_WINDOW (dialog),
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ GTK_STOCK_CANCEL,
+ GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OPEN,
+ GTK_RESPONSE_ACCEPT,
+ NULL);
+
+ gtk_window_set_transient_for (GTK_WINDOW (chooser),
+ GTK_WINDOW (dialog));
+
+ gtk_window_set_destroy_with_parent (GTK_WINDOW (chooser), TRUE);
+
+ gtk_window_set_title (GTK_WINDOW (chooser), _("Select Command"));
+
+ gtk_widget_show (chooser);
+
+ response = gtk_dialog_run (GTK_DIALOG (chooser));
+
+ if (response == GTK_RESPONSE_ACCEPT) {
+ char *text;
+ char *uri;
+
+ text = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser));
+
+ uri = make_exec_uri (text);
+
+ g_free (text);
+
+ gtk_entry_set_text (GTK_ENTRY (dialog->priv->command_entry), uri);
+
+ g_free (uri);
+ }
+
+ gtk_widget_destroy (chooser);
+}
+
+static void
+on_entry_activate (GtkEntry *entry,
+ GsmAppDialog *dialog)
+{
+ gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
+}
+
+static void
+setup_dialog (GsmAppDialog *dialog)
+{
+ GtkWidget *content_area;
+ GtkWidget *widget;
+ GtkBuilder *xml;
+ GError *error;
+
+ xml = gtk_builder_new ();
+ gtk_builder_set_translation_domain (xml, GETTEXT_PACKAGE);
+
+ error = NULL;
+ if (!gtk_builder_add_from_file (xml,
+ GTKBUILDER_DIR "/" GTKBUILDER_FILE,
+ &error)) {
+ if (error) {
+ g_warning ("Could not load capplet UI file: %s",
+ error->message);
+ g_error_free (error);
+ } else {
+ g_warning ("Could not load capplet UI file.");
+ }
+ }
+
+ content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
+ widget = GTK_WIDGET (gtk_builder_get_object (xml, "main-table"));
+ gtk_container_add (GTK_CONTAINER (content_area), widget);
+
+ gtk_container_set_border_width (GTK_CONTAINER (dialog), 6);
+ gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE);
+ gtk_window_set_icon_name (GTK_WINDOW (dialog), "mate-session-properties");
+
+ g_object_set (dialog,
+ "allow-shrink", FALSE,
+ "allow-grow", FALSE,
+ NULL);
+
+ gtk_dialog_add_button (GTK_DIALOG (dialog),
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
+
+ if (dialog->priv->name == NULL
+ && dialog->priv->command == NULL
+ && dialog->priv->comment == NULL) {
+ gtk_window_set_title (GTK_WINDOW (dialog), _("Add Startup Program"));
+ gtk_dialog_add_button (GTK_DIALOG (dialog),
+ GTK_STOCK_ADD, GTK_RESPONSE_OK);
+ } else {
+ gtk_window_set_title (GTK_WINDOW (dialog), _("Edit Startup Program"));
+ gtk_dialog_add_button (GTK_DIALOG (dialog),
+ GTK_STOCK_SAVE, GTK_RESPONSE_OK);
+ }
+
+ dialog->priv->name_entry = GTK_WIDGET (gtk_builder_get_object (xml, CAPPLET_NAME_ENTRY_WIDGET_NAME));
+ g_signal_connect (dialog->priv->name_entry,
+ "activate",
+ G_CALLBACK (on_entry_activate),
+ dialog);
+ if (dialog->priv->name != NULL) {
+ gtk_entry_set_text (GTK_ENTRY (dialog->priv->name_entry), dialog->priv->name);
+ }
+
+ dialog->priv->browse_button = GTK_WIDGET (gtk_builder_get_object (xml, CAPPLET_BROWSE_WIDGET_NAME));
+ g_signal_connect (dialog->priv->browse_button,
+ "clicked",
+ G_CALLBACK (on_browse_button_clicked),
+ dialog);
+
+ dialog->priv->command_entry = GTK_WIDGET (gtk_builder_get_object (xml, CAPPLET_COMMAND_ENTRY_WIDGET_NAME));
+ g_signal_connect (dialog->priv->command_entry,
+ "activate",
+ G_CALLBACK (on_entry_activate),
+ dialog);
+ if (dialog->priv->command != NULL) {
+ gtk_entry_set_text (GTK_ENTRY (dialog->priv->command_entry), dialog->priv->command);
+ }
+
+ dialog->priv->comment_entry = GTK_WIDGET (gtk_builder_get_object (xml, CAPPLET_COMMENT_ENTRY_WIDGET_NAME));
+ g_signal_connect (dialog->priv->comment_entry,
+ "activate",
+ G_CALLBACK (on_entry_activate),
+ dialog);
+ if (dialog->priv->comment != NULL) {
+ gtk_entry_set_text (GTK_ENTRY (dialog->priv->comment_entry), dialog->priv->comment);
+ }
+
+ if (xml != NULL) {
+ g_object_unref (xml);
+ }
+}
+
+static GObject *
+gsm_app_dialog_constructor (GType type,
+ guint n_construct_app,
+ GObjectConstructParam *construct_app)
+{
+ GsmAppDialog *dialog;
+
+ dialog = GSM_APP_DIALOG (G_OBJECT_CLASS (gsm_app_dialog_parent_class)->constructor (type,
+ n_construct_app,
+ construct_app));
+
+ setup_dialog (dialog);
+
+ gtk_widget_show_all (GTK_WIDGET (dialog));
+
+ return G_OBJECT (dialog);
+}
+
+static void
+gsm_app_dialog_dispose (GObject *object)
+{
+ GsmAppDialog *dialog;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GSM_IS_APP_DIALOG (object));
+
+ dialog = GSM_APP_DIALOG (object);
+
+ g_free (dialog->priv->name);
+ dialog->priv->name = NULL;
+ g_free (dialog->priv->command);
+ dialog->priv->command = NULL;
+ g_free (dialog->priv->comment);
+ dialog->priv->comment = NULL;
+
+ G_OBJECT_CLASS (gsm_app_dialog_parent_class)->dispose (object);
+}
+
+static void
+gsm_app_dialog_set_name (GsmAppDialog *dialog,
+ const char *name)
+{
+ g_return_if_fail (GSM_IS_APP_DIALOG (dialog));
+
+ g_free (dialog->priv->name);
+
+ dialog->priv->name = g_strdup (name);
+ g_object_notify (G_OBJECT (dialog), "name");
+}
+
+static void
+gsm_app_dialog_set_command (GsmAppDialog *dialog,
+ const char *name)
+{
+ g_return_if_fail (GSM_IS_APP_DIALOG (dialog));
+
+ g_free (dialog->priv->command);
+
+ dialog->priv->command = g_strdup (name);
+ g_object_notify (G_OBJECT (dialog), "command");
+}
+
+static void
+gsm_app_dialog_set_comment (GsmAppDialog *dialog,
+ const char *name)
+{
+ g_return_if_fail (GSM_IS_APP_DIALOG (dialog));
+
+ g_free (dialog->priv->comment);
+
+ dialog->priv->comment = g_strdup (name);
+ g_object_notify (G_OBJECT (dialog), "comment");
+}
+
+const char *
+gsm_app_dialog_get_name (GsmAppDialog *dialog)
+{
+ g_return_val_if_fail (GSM_IS_APP_DIALOG (dialog), NULL);
+ return gtk_entry_get_text (GTK_ENTRY (dialog->priv->name_entry));
+}
+
+const char *
+gsm_app_dialog_get_command (GsmAppDialog *dialog)
+{
+ g_return_val_if_fail (GSM_IS_APP_DIALOG (dialog), NULL);
+ return gtk_entry_get_text (GTK_ENTRY (dialog->priv->command_entry));
+}
+
+const char *
+gsm_app_dialog_get_comment (GsmAppDialog *dialog)
+{
+ g_return_val_if_fail (GSM_IS_APP_DIALOG (dialog), NULL);
+ return gtk_entry_get_text (GTK_ENTRY (dialog->priv->comment_entry));
+}
+
+static void
+gsm_app_dialog_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GsmAppDialog *dialog = GSM_APP_DIALOG (object);
+
+ switch (prop_id) {
+ case PROP_NAME:
+ gsm_app_dialog_set_name (dialog, g_value_get_string (value));
+ break;
+ case PROP_COMMAND:
+ gsm_app_dialog_set_command (dialog, g_value_get_string (value));
+ break;
+ case PROP_COMMENT:
+ gsm_app_dialog_set_comment (dialog, g_value_get_string (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_app_dialog_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GsmAppDialog *dialog = GSM_APP_DIALOG (object);
+
+ switch (prop_id) {
+ case PROP_NAME:
+ g_value_set_string (value, dialog->priv->name);
+ break;
+ case PROP_COMMAND:
+ g_value_set_string (value, dialog->priv->command);
+ break;
+ case PROP_COMMENT:
+ g_value_set_string (value, dialog->priv->comment);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_app_dialog_class_init (GsmAppDialogClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->get_property = gsm_app_dialog_get_property;
+ object_class->set_property = gsm_app_dialog_set_property;
+ object_class->constructor = gsm_app_dialog_constructor;
+ object_class->dispose = gsm_app_dialog_dispose;
+ object_class->finalize = gsm_app_dialog_finalize;
+
+ g_object_class_install_property (object_class,
+ PROP_NAME,
+ g_param_spec_string ("name",
+ "name",
+ "name",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_COMMAND,
+ g_param_spec_string ("command",
+ "command",
+ "command",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_COMMENT,
+ g_param_spec_string ("comment",
+ "comment",
+ "comment",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+ g_type_class_add_private (klass, sizeof (GsmAppDialogPrivate));
+}
+
+static void
+gsm_app_dialog_init (GsmAppDialog *dialog)
+{
+
+ dialog->priv = GSM_APP_DIALOG_GET_PRIVATE (dialog);
+}
+
+static void
+gsm_app_dialog_finalize (GObject *object)
+{
+ GsmAppDialog *dialog;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GSM_IS_APP_DIALOG (object));
+
+ dialog = GSM_APP_DIALOG (object);
+
+ g_return_if_fail (dialog->priv != NULL);
+
+ G_OBJECT_CLASS (gsm_app_dialog_parent_class)->finalize (object);
+}
+
+GtkWidget *
+gsm_app_dialog_new (const char *name,
+ const char *command,
+ const char *comment)
+{
+ GObject *object;
+
+ object = g_object_new (GSM_TYPE_APP_DIALOG,
+ "name", name,
+ "command", command,
+ "comment", comment,
+ NULL);
+
+ return GTK_WIDGET (object);
+}
+
+gboolean
+gsm_app_dialog_run (GsmAppDialog *dialog,
+ char **name_p,
+ char **command_p,
+ char **comment_p)
+{
+ gboolean retval;
+
+ retval = FALSE;
+
+ while (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) {
+ const char *name;
+ const char *exec;
+ const char *comment;
+ const char *error_msg;
+ GError *error;
+ char **argv;
+ int argc;
+ gboolean changed;
+
+ name = gsm_app_dialog_get_name (GSM_APP_DIALOG (dialog));
+ exec = gsm_app_dialog_get_command (GSM_APP_DIALOG (dialog));
+ comment = gsm_app_dialog_get_comment (GSM_APP_DIALOG (dialog));
+
+ error = NULL;
+ error_msg = NULL;
+
+ if (gsm_util_text_is_blank (exec)) {
+ error_msg = _("The startup command cannot be empty");
+ } else {
+ if (!g_shell_parse_argv (exec, &argc, &argv, &error)) {
+ if (error != NULL) {
+ error_msg = error->message;
+ } else {
+ error_msg = _("The startup command is not valid");
+ }
+ }
+ }
+
+ if (error_msg != NULL) {
+ GtkWidget *msgbox;
+
+ msgbox = gtk_message_dialog_new (GTK_WINDOW (dialog),
+ GTK_DIALOG_MODAL,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_CLOSE,
+ "%s", error_msg);
+
+ if (error != NULL) {
+ g_error_free (error);
+ }
+
+ gtk_dialog_run (GTK_DIALOG (msgbox));
+
+ gtk_widget_destroy (msgbox);
+
+ continue;
+ }
+
+ changed = FALSE;
+
+ if (gsm_util_text_is_blank (name)) {
+ name = argv[0];
+ }
+
+ if (name_p) {
+ *name_p = g_strdup (name);
+ }
+
+ g_strfreev (argv);
+
+ if (command_p) {
+ *command_p = g_strdup (exec);
+ }
+
+ if (comment_p) {
+ *comment_p = g_strdup (comment);
+ }
+
+ retval = TRUE;
+ break;
+ }
+
+ gtk_widget_destroy (GTK_WIDGET (dialog));
+
+ return retval;
+}
diff --git a/capplet/gsm-app-dialog.h b/capplet/gsm-app-dialog.h
new file mode 100644
index 0000000..2df5056
--- /dev/null
+++ b/capplet/gsm-app-dialog.h
@@ -0,0 +1,70 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#ifndef __GSM_APP_DIALOG_H
+#define __GSM_APP_DIALOG_H
+
+#include <glib-object.h>
+#include <gtk/gtk.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GSM_TYPE_APP_DIALOG (gsm_app_dialog_get_type ())
+#define GSM_APP_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSM_TYPE_APP_DIALOG, GsmAppDialog))
+#define GSM_APP_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSM_TYPE_APP_DIALOG, GsmAppDialogClass))
+#define GSM_IS_APP_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSM_TYPE_APP_DIALOG))
+#define GSM_IS_APP_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSM_TYPE_APP_DIALOG))
+#define GSM_APP_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSM_TYPE_APP_DIALOG, GsmAppDialogClass))
+
+typedef struct GsmAppDialogPrivate GsmAppDialogPrivate;
+
+typedef struct
+{
+ GtkDialog parent;
+ GsmAppDialogPrivate *priv;
+} GsmAppDialog;
+
+typedef struct
+{
+ GtkDialogClass parent_class;
+} GsmAppDialogClass;
+
+GType gsm_app_dialog_get_type (void);
+
+GtkWidget * gsm_app_dialog_new (const char *name,
+ const char *command,
+ const char *comment);
+
+gboolean gsm_app_dialog_run (GsmAppDialog *dialog,
+ char **name_p,
+ char **command_p,
+ char **comment_p);
+
+const char * gsm_app_dialog_get_name (GsmAppDialog *dialog);
+const char * gsm_app_dialog_get_command (GsmAppDialog *dialog);
+const char * gsm_app_dialog_get_comment (GsmAppDialog *dialog);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSM_APP_DIALOG_H */
diff --git a/capplet/gsm-properties-dialog.c b/capplet/gsm-properties-dialog.c
new file mode 100644
index 0000000..b3a8e74
--- /dev/null
+++ b/capplet/gsm-properties-dialog.c
@@ -0,0 +1,819 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 1999 Free Software Foundation, Inc.
+ * Copyright (C) 2007 Vincent Untz.
+ * Copyright (C) 2008 Lucas Rocha.
+ * Copyright (C) 2008 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include "config.h"
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+
+#include <mateconf/mateconf-client.h>
+
+#include "gsm-properties-dialog.h"
+#include "gsm-app-dialog.h"
+#include "eggdesktopfile.h"
+#include "gsm-util.h"
+#include "gsp-app.h"
+#include "gsp-app-manager.h"
+
+#define GSM_PROPERTIES_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_PROPERTIES_DIALOG, GsmPropertiesDialogPrivate))
+
+#define IS_STRING_EMPTY(x) ((x)==NULL||(x)[0]=='\0')
+
+#define REALLY_IDENTICAL_STRING(a, b) \
+ ((a && b && !strcmp (a, b)) || (!a && !b))
+
+#define GTKBUILDER_FILE "session-properties.ui"
+
+#define CAPPLET_TREEVIEW_WIDGET_NAME "session_properties_treeview"
+#define CAPPLET_ADD_WIDGET_NAME "session_properties_add_button"
+#define CAPPLET_DELETE_WIDGET_NAME "session_properties_delete_button"
+#define CAPPLET_EDIT_WIDGET_NAME "session_properties_edit_button"
+#define CAPPLET_SAVE_WIDGET_NAME "session_properties_save_button"
+#define CAPPLET_REMEMBER_WIDGET_NAME "session_properties_remember_toggle"
+
+#define STARTUP_APP_ICON "system-run"
+
+#define SPC_MATECONF_CONFIG_PREFIX "/apps/mate-session/options"
+#define SPC_MATECONF_AUTOSAVE_KEY SPC_MATECONF_CONFIG_PREFIX "/auto_save_session"
+
+struct GsmPropertiesDialogPrivate
+{
+ GtkBuilder *xml;
+ GtkListStore *list_store;
+ GtkTreeModel *tree_filter;
+
+ GtkTreeView *treeview;
+ GtkWidget *add_button;
+ GtkWidget *delete_button;
+ GtkWidget *edit_button;
+
+ GtkWidget *remember_toggle;
+
+ GspAppManager *manager;
+};
+
+enum {
+ STORE_COL_VISIBLE = 0,
+ STORE_COL_ENABLED,
+ STORE_COL_GICON,
+ STORE_COL_DESCRIPTION,
+ STORE_COL_APP,
+ NUMBER_OF_COLUMNS
+};
+
+static void gsm_properties_dialog_class_init (GsmPropertiesDialogClass *klass);
+static void gsm_properties_dialog_init (GsmPropertiesDialog *properties_dialog);
+static void gsm_properties_dialog_finalize (GObject *object);
+
+G_DEFINE_TYPE (GsmPropertiesDialog, gsm_properties_dialog, GTK_TYPE_DIALOG)
+
+static gboolean
+find_by_app (GtkTreeModel *model,
+ GtkTreeIter *iter,
+ GspApp *app)
+{
+ GspApp *iter_app = NULL;
+
+ if (!gtk_tree_model_get_iter_first (model, iter)) {
+ return FALSE;
+ }
+
+ do {
+ gtk_tree_model_get (model, iter,
+ STORE_COL_APP, &iter_app,
+ -1);
+
+ if (iter_app == app) {
+ g_object_unref (iter_app);
+ return TRUE;
+ }
+ } while (gtk_tree_model_iter_next (model, iter));
+
+ return FALSE;
+}
+
+static void
+_fill_iter_from_app (GtkListStore *list_store,
+ GtkTreeIter *iter,
+ GspApp *app)
+{
+ gboolean hidden;
+ gboolean enabled;
+ GIcon *icon;
+ const char *description;
+
+ hidden = gsp_app_get_hidden (app);
+ enabled = gsp_app_get_enabled (app);
+ icon = gsp_app_get_icon (app);
+ description = gsp_app_get_description (app);
+
+ if (G_IS_THEMED_ICON (icon)) {
+ GtkIconTheme *theme;
+ const char * const *icon_names;
+
+ theme = gtk_icon_theme_get_default ();
+ icon_names = g_themed_icon_get_names (G_THEMED_ICON (icon));
+ if (icon_names[0] == NULL ||
+ !gtk_icon_theme_has_icon (theme, icon_names[0])) {
+ g_object_unref (icon);
+ icon = NULL;
+ }
+ } else if (G_IS_FILE_ICON (icon)) {
+ GFile *iconfile;
+
+ iconfile = g_file_icon_get_file (G_FILE_ICON (icon));
+ if (!g_file_query_exists (iconfile, NULL)) {
+ g_object_unref (icon);
+ icon = NULL;
+ }
+ }
+
+ if (icon == NULL) {
+ icon = g_themed_icon_new (STARTUP_APP_ICON);
+ }
+
+ gtk_list_store_set (list_store, iter,
+ STORE_COL_VISIBLE, !hidden,
+ STORE_COL_ENABLED, enabled,
+ STORE_COL_GICON, icon,
+ STORE_COL_DESCRIPTION, description,
+ STORE_COL_APP, app,
+ -1);
+ g_object_unref (icon);
+}
+
+static void
+_app_changed (GsmPropertiesDialog *dialog,
+ GspApp *app)
+{
+ GtkTreeIter iter;
+
+ if (!find_by_app (GTK_TREE_MODEL (dialog->priv->list_store),
+ &iter, app)) {
+ return;
+ }
+
+ _fill_iter_from_app (dialog->priv->list_store, &iter, app);
+}
+
+static void
+append_app (GsmPropertiesDialog *dialog,
+ GspApp *app)
+{
+ GtkTreeIter iter;
+
+ gtk_list_store_append (dialog->priv->list_store, &iter);
+ _fill_iter_from_app (dialog->priv->list_store, &iter, app);
+
+ g_signal_connect_swapped (app, "changed",
+ G_CALLBACK (_app_changed), dialog);
+}
+
+static void
+_app_added (GsmPropertiesDialog *dialog,
+ GspApp *app,
+ GspAppManager *manager)
+{
+ append_app (dialog, app);
+}
+
+static void
+_app_removed (GsmPropertiesDialog *dialog,
+ GspApp *app,
+ GspAppManager *manager)
+{
+ GtkTreeIter iter;
+
+ if (!find_by_app (GTK_TREE_MODEL (dialog->priv->list_store),
+ &iter, app)) {
+ return;
+ }
+
+ g_signal_handlers_disconnect_by_func (app,
+ _app_changed,
+ dialog);
+ gtk_list_store_remove (dialog->priv->list_store, &iter);
+}
+
+static void
+populate_model (GsmPropertiesDialog *dialog)
+{
+ GSList *apps;
+ GSList *l;
+
+ apps = gsp_app_manager_get_apps (dialog->priv->manager);
+ for (l = apps; l != NULL; l = l->next) {
+ append_app (dialog, GSP_APP (l->data));
+ }
+ g_slist_free (apps);
+}
+
+static void
+on_selection_changed (GtkTreeSelection *selection,
+ GsmPropertiesDialog *dialog)
+{
+ gboolean sel;
+
+ sel = gtk_tree_selection_get_selected (selection, NULL, NULL);
+
+ gtk_widget_set_sensitive (dialog->priv->edit_button, sel);
+ gtk_widget_set_sensitive (dialog->priv->delete_button, sel);
+}
+
+static void
+on_startup_enabled_toggled (GtkCellRendererToggle *cell_renderer,
+ char *path,
+ GsmPropertiesDialog *dialog)
+{
+ GtkTreeIter iter;
+ GspApp *app;
+ gboolean active;
+
+ if (!gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL (dialog->priv->tree_filter),
+ &iter, path)) {
+ return;
+ }
+
+ app = NULL;
+ gtk_tree_model_get (GTK_TREE_MODEL (dialog->priv->tree_filter),
+ &iter,
+ STORE_COL_APP, &app,
+ -1);
+
+ active = gtk_cell_renderer_toggle_get_active (cell_renderer);
+ active = !active;
+
+ if (app) {
+ gsp_app_set_enabled (app, active);
+ g_object_unref (app);
+ }
+}
+
+static void
+on_drag_data_received (GtkWidget *widget,
+ GdkDragContext *drag_context,
+ gint x,
+ gint y,
+ GtkSelectionData *data,
+ guint info,
+ guint time,
+ GsmPropertiesDialog *dialog)
+{
+ gboolean dnd_success;
+
+ dnd_success = FALSE;
+
+ if (data != NULL) {
+ char **filenames;
+ int i;
+
+ filenames = gtk_selection_data_get_uris (data);
+
+ for (i = 0; filenames[i] && filenames[i][0]; i++) {
+ /* Return success if at least one file succeeded */
+ gboolean file_success;
+ file_success = gsp_app_copy_desktop_file (filenames[i]);
+ dnd_success = dnd_success || file_success;
+ }
+
+ g_strfreev (filenames);
+ }
+
+ gtk_drag_finish (drag_context, dnd_success, FALSE, time);
+ g_signal_stop_emission_by_name (widget, "drag_data_received");
+}
+
+static void
+on_drag_begin (GtkWidget *widget,
+ GdkDragContext *context,
+ GsmPropertiesDialog *dialog)
+{
+ GtkTreePath *path;
+ GtkTreeIter iter;
+ GspApp *app;
+
+ gtk_tree_view_get_cursor (GTK_TREE_VIEW (widget), &path, NULL);
+ gtk_tree_model_get_iter (GTK_TREE_MODEL (dialog->priv->tree_filter),
+ &iter, path);
+ gtk_tree_path_free (path);
+
+ gtk_tree_model_get (GTK_TREE_MODEL (dialog->priv->tree_filter),
+ &iter,
+ STORE_COL_APP, &app,
+ -1);
+
+ if (app) {
+ g_object_set_data_full (G_OBJECT (context), "gsp-app",
+ g_object_ref (app), g_object_unref);
+ g_object_unref (app);
+ }
+
+}
+
+static void
+on_drag_data_get (GtkWidget *widget,
+ GdkDragContext *context,
+ GtkSelectionData *selection_data,
+ guint info,
+ guint time,
+ GsmPropertiesDialog *dialog)
+{
+ GspApp *app;
+
+ app = g_object_get_data (G_OBJECT (context), "gsp-app");
+ if (app) {
+ const char *uris[2];
+ char *uri;
+
+ uri = g_filename_to_uri (gsp_app_get_path (app), NULL, NULL);
+
+ uris[0] = uri;
+ uris[1] = NULL;
+ gtk_selection_data_set_uris (selection_data, (char **) uris);
+
+ g_free (uri);
+ }
+}
+
+static void
+on_add_app_clicked (GtkWidget *widget,
+ GsmPropertiesDialog *dialog)
+{
+ GtkWidget *add_dialog;
+ char *name;
+ char *exec;
+ char *comment;
+
+ add_dialog = gsm_app_dialog_new (NULL, NULL, NULL);
+ gtk_window_set_transient_for (GTK_WINDOW (add_dialog),
+ GTK_WINDOW (dialog));
+
+ if (gsm_app_dialog_run (GSM_APP_DIALOG (add_dialog),
+ &name, &exec, &comment)) {
+ gsp_app_create (name, comment, exec);
+ g_free (name);
+ g_free (exec);
+ g_free (comment);
+ }
+}
+
+static void
+on_delete_app_clicked (GtkWidget *widget,
+ GsmPropertiesDialog *dialog)
+{
+ GtkTreeSelection *selection;
+ GtkTreeIter iter;
+ GspApp *app;
+
+ selection = gtk_tree_view_get_selection (dialog->priv->treeview);
+
+ if (!gtk_tree_selection_get_selected (selection, NULL, &iter)) {
+ return;
+ }
+
+ app = NULL;
+ gtk_tree_model_get (GTK_TREE_MODEL (dialog->priv->tree_filter),
+ &iter,
+ STORE_COL_APP, &app,
+ -1);
+
+ if (app) {
+ gsp_app_delete (app);
+ g_object_unref (app);
+ }
+}
+
+static void
+on_edit_app_clicked (GtkWidget *widget,
+ GsmPropertiesDialog *dialog)
+{
+ GtkTreeSelection *selection;
+ GtkTreeIter iter;
+ GspApp *app;
+
+ selection = gtk_tree_view_get_selection (dialog->priv->treeview);
+
+ if (!gtk_tree_selection_get_selected (selection, NULL, &iter)) {
+ return;
+ }
+
+ app = NULL;
+ gtk_tree_model_get (GTK_TREE_MODEL (dialog->priv->tree_filter),
+ &iter,
+ STORE_COL_APP, &app,
+ -1);
+
+ if (app) {
+ GtkWidget *edit_dialog;
+ char *name;
+ char *exec;
+ char *comment;
+
+ edit_dialog = gsm_app_dialog_new (gsp_app_get_name (app),
+ gsp_app_get_exec (app),
+ gsp_app_get_comment (app));
+ gtk_window_set_transient_for (GTK_WINDOW (edit_dialog),
+ GTK_WINDOW (dialog));
+
+ if (gsm_app_dialog_run (GSM_APP_DIALOG (edit_dialog),
+ &name, &exec, &comment)) {
+ gsp_app_update (app, name, comment, exec);
+ g_free (name);
+ g_free (exec);
+ g_free (comment);
+ }
+
+ g_object_unref (app);
+ }
+}
+
+static void
+on_row_activated (GtkTreeView *tree_view,
+ GtkTreePath *path,
+ GtkTreeViewColumn *column,
+ GsmPropertiesDialog *dialog)
+{
+ on_edit_app_clicked (NULL, dialog);
+}
+
+static void
+on_autosave_value_notify (MateConfClient *client,
+ guint id,
+ MateConfEntry *entry,
+ GsmPropertiesDialog *dialog)
+{
+ gboolean gval;
+ gboolean bval;
+
+ gval = mateconf_value_get_bool (entry->value);
+ bval = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->priv->remember_toggle));
+
+ if (bval != gval) {
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->remember_toggle), gval);
+ }
+}
+
+static void
+on_autosave_value_toggled (GtkToggleButton *button,
+ GsmPropertiesDialog *dialog)
+{
+ MateConfClient *client;
+ gboolean gval;
+ gboolean bval;
+
+ client = mateconf_client_get_default ();
+ gval = mateconf_client_get_bool (client, SPC_MATECONF_AUTOSAVE_KEY, NULL);
+ bval = gtk_toggle_button_get_active (button);
+
+ if (gval != bval) {
+ mateconf_client_set_bool (client, SPC_MATECONF_AUTOSAVE_KEY, bval, NULL);
+ }
+ g_object_unref (client);
+}
+
+static void
+on_save_session_clicked (GtkWidget *widget,
+ GsmPropertiesDialog *dialog)
+{
+ g_debug ("Session saving is not implemented yet!");
+}
+
+static void
+setup_dialog (GsmPropertiesDialog *dialog)
+{
+ GtkTreeView *treeview;
+ GtkWidget *button;
+ GtkTreeModel *tree_filter;
+ GtkTreeViewColumn *column;
+ GtkCellRenderer *renderer;
+ GtkTreeSelection *selection;
+ MateConfClient *client;
+ GtkTargetList *targetlist;
+
+ gtk_dialog_add_buttons (GTK_DIALOG (dialog),
+ GTK_STOCK_HELP, GTK_RESPONSE_HELP,
+ GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
+ NULL);
+
+ dialog->priv->list_store = gtk_list_store_new (NUMBER_OF_COLUMNS,
+ G_TYPE_BOOLEAN,
+ G_TYPE_BOOLEAN,
+ G_TYPE_ICON,
+ G_TYPE_STRING,
+ G_TYPE_OBJECT);
+ tree_filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (dialog->priv->list_store),
+ NULL);
+ g_object_unref (dialog->priv->list_store);
+ dialog->priv->tree_filter = tree_filter;
+
+ gtk_tree_model_filter_set_visible_column (GTK_TREE_MODEL_FILTER (tree_filter),
+ STORE_COL_VISIBLE);
+
+ treeview = GTK_TREE_VIEW (gtk_builder_get_object (dialog->priv->xml,
+ CAPPLET_TREEVIEW_WIDGET_NAME));
+ dialog->priv->treeview = treeview;
+
+ gtk_tree_view_set_model (treeview, tree_filter);
+ g_object_unref (tree_filter);
+
+ gtk_tree_view_set_headers_visible (treeview, FALSE);
+ g_signal_connect (treeview,
+ "row-activated",
+ G_CALLBACK (on_row_activated),
+ dialog);
+
+ selection = gtk_tree_view_get_selection (treeview);
+ gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
+ g_signal_connect (selection,
+ "changed",
+ G_CALLBACK (on_selection_changed),
+ dialog);
+
+ /* CHECKBOX COLUMN */
+ renderer = gtk_cell_renderer_toggle_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("Enabled"),
+ renderer,
+ "active", STORE_COL_ENABLED,
+ NULL);
+ gtk_tree_view_append_column (treeview, column);
+ g_signal_connect (renderer,
+ "toggled",
+ G_CALLBACK (on_startup_enabled_toggled),
+ dialog);
+
+ /* ICON COLUMN */
+ renderer = gtk_cell_renderer_pixbuf_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("Icon"),
+ renderer,
+ "gicon", STORE_COL_GICON,
+ "sensitive", STORE_COL_ENABLED,
+ NULL);
+ g_object_set (renderer,
+ "stock-size", GSM_PROPERTIES_ICON_SIZE,
+ NULL);
+ gtk_tree_view_append_column (treeview, column);
+
+ /* NAME COLUMN */
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("Program"),
+ renderer,
+ "markup", STORE_COL_DESCRIPTION,
+ "sensitive", STORE_COL_ENABLED,
+ NULL);
+ g_object_set (renderer,
+ "ellipsize", PANGO_ELLIPSIZE_END,
+ NULL);
+ gtk_tree_view_append_column (treeview, column);
+
+
+ gtk_tree_view_column_set_sort_column_id (column, STORE_COL_DESCRIPTION);
+ gtk_tree_view_set_search_column (treeview, STORE_COL_DESCRIPTION);
+ gtk_tree_view_set_rules_hint (treeview, TRUE);
+
+ gtk_tree_view_enable_model_drag_source (treeview,
+ GDK_BUTTON1_MASK|GDK_BUTTON2_MASK,
+ NULL, 0,
+ GDK_ACTION_COPY);
+ gtk_drag_source_add_uri_targets (GTK_WIDGET (treeview));
+
+ gtk_drag_dest_set (GTK_WIDGET (treeview),
+ GTK_DEST_DEFAULT_ALL,
+ NULL, 0,
+ GDK_ACTION_COPY);
+ gtk_drag_dest_add_uri_targets (GTK_WIDGET (treeview));
+
+ /* we don't want to accept drags coming from this widget */
+ targetlist = gtk_drag_dest_get_target_list (GTK_WIDGET (treeview));
+ if (targetlist != NULL) {
+ GList *list;
+ list = targetlist->list;
+ while (list != NULL) {
+ GtkTargetPair *targetpair;
+ targetpair = list->data;
+ targetpair->flags = GTK_TARGET_OTHER_WIDGET;
+ list = list->next;
+ }
+ }
+
+ g_signal_connect (treeview, "drag_begin",
+ G_CALLBACK (on_drag_begin),
+ dialog);
+ g_signal_connect (treeview, "drag_data_get",
+ G_CALLBACK (on_drag_data_get),
+ dialog);
+ g_signal_connect (treeview, "drag_data_received",
+ G_CALLBACK (on_drag_data_received),
+ dialog);
+
+ gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (dialog->priv->list_store),
+ STORE_COL_DESCRIPTION,
+ GTK_SORT_ASCENDING);
+
+
+ button = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml,
+ CAPPLET_ADD_WIDGET_NAME));
+ dialog->priv->add_button = button;
+ g_signal_connect (button,
+ "clicked",
+ G_CALLBACK (on_add_app_clicked),
+ dialog);
+
+ button = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml,
+ CAPPLET_DELETE_WIDGET_NAME));
+ dialog->priv->delete_button = button;
+ g_signal_connect (button,
+ "clicked",
+ G_CALLBACK (on_delete_app_clicked),
+ dialog);
+
+ button = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml,
+ CAPPLET_EDIT_WIDGET_NAME));
+ dialog->priv->edit_button = button;
+ g_signal_connect (button,
+ "clicked",
+ G_CALLBACK (on_edit_app_clicked),
+ dialog);
+
+ client = mateconf_client_get_default ();
+ button = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml,
+ CAPPLET_REMEMBER_WIDGET_NAME));
+ dialog->priv->remember_toggle = button;
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button),
+ mateconf_client_get_bool (client, SPC_MATECONF_AUTOSAVE_KEY, NULL));
+ mateconf_client_notify_add (client,
+ SPC_MATECONF_AUTOSAVE_KEY,
+ (MateConfClientNotifyFunc)on_autosave_value_notify,
+ dialog,
+ NULL,
+ NULL);
+ g_object_unref (client);
+
+ g_signal_connect (button,
+ "toggled",
+ G_CALLBACK (on_autosave_value_toggled),
+ dialog);
+
+ button = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml,
+ CAPPLET_SAVE_WIDGET_NAME));
+ g_signal_connect (button,
+ "clicked",
+ G_CALLBACK (on_save_session_clicked),
+ dialog);
+
+ dialog->priv->manager = gsp_app_manager_get ();
+ gsp_app_manager_fill (dialog->priv->manager);
+ g_signal_connect_swapped (dialog->priv->manager, "added",
+ G_CALLBACK (_app_added), dialog);
+ g_signal_connect_swapped (dialog->priv->manager, "removed",
+ G_CALLBACK (_app_removed), dialog);
+
+ populate_model (dialog);
+}
+
+static GObject *
+gsm_properties_dialog_constructor (GType type,
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
+{
+ GsmPropertiesDialog *dialog;
+
+ dialog = GSM_PROPERTIES_DIALOG (G_OBJECT_CLASS (gsm_properties_dialog_parent_class)->constructor (type,
+ n_construct_properties,
+ construct_properties));
+
+ setup_dialog (dialog);
+
+ gtk_widget_show (GTK_WIDGET (dialog));
+
+ return G_OBJECT (dialog);
+}
+
+static void
+gsm_properties_dialog_dispose (GObject *object)
+{
+ GsmPropertiesDialog *dialog;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GSM_IS_PROPERTIES_DIALOG (object));
+
+ dialog = GSM_PROPERTIES_DIALOG (object);
+
+ if (dialog->priv->xml != NULL) {
+ g_object_unref (dialog->priv->xml);
+ dialog->priv->xml = NULL;
+ }
+
+ G_OBJECT_CLASS (gsm_properties_dialog_parent_class)->dispose (object);
+
+ /* it's important to do this after chaining to the parent dispose
+ * method because we want to make sure the treeview has been disposed
+ * and removed all its references to GspApp objects */
+ if (dialog->priv->manager != NULL) {
+ g_object_unref (dialog->priv->manager);
+ dialog->priv->manager = NULL;
+ }
+}
+
+static void
+gsm_properties_dialog_class_init (GsmPropertiesDialogClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->constructor = gsm_properties_dialog_constructor;
+ object_class->dispose = gsm_properties_dialog_dispose;
+ object_class->finalize = gsm_properties_dialog_finalize;
+
+ g_type_class_add_private (klass, sizeof (GsmPropertiesDialogPrivate));
+}
+
+static void
+gsm_properties_dialog_init (GsmPropertiesDialog *dialog)
+{
+ GtkWidget *content_area;
+ GtkWidget *widget;
+ MateConfClient *client;
+ GError *error;
+
+ dialog->priv = GSM_PROPERTIES_DIALOG_GET_PRIVATE (dialog);
+
+ client = mateconf_client_get_default ();
+ mateconf_client_add_dir (client,
+ SPC_MATECONF_CONFIG_PREFIX,
+ MATECONF_CLIENT_PRELOAD_ONELEVEL,
+ NULL);
+
+ dialog->priv->xml = gtk_builder_new ();
+ gtk_builder_set_translation_domain (dialog->priv->xml, GETTEXT_PACKAGE);
+
+ error = NULL;
+ if (!gtk_builder_add_from_file (dialog->priv->xml,
+ GTKBUILDER_DIR "/" GTKBUILDER_FILE,
+ &error)) {
+ if (error) {
+ g_warning ("Could not load capplet UI file: %s",
+ error->message);
+ g_error_free (error);
+ } else {
+ g_warning ("Could not load capplet UI file.");
+ }
+ }
+
+ content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
+ widget = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml,
+ "main-notebook"));
+ gtk_container_add (GTK_CONTAINER (content_area), widget);
+
+ gtk_window_set_resizable (GTK_WINDOW (dialog), TRUE);
+ gtk_container_set_border_width (GTK_CONTAINER (dialog), 6);
+ gtk_box_set_spacing (GTK_BOX (content_area), 2);
+ gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE);
+ gtk_window_set_icon_name (GTK_WINDOW (dialog), "mate-session-properties");
+ gtk_window_set_title (GTK_WINDOW (dialog), _("Startup Applications Preferences"));
+}
+
+static void
+gsm_properties_dialog_finalize (GObject *object)
+{
+ GsmPropertiesDialog *dialog;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GSM_IS_PROPERTIES_DIALOG (object));
+
+ dialog = GSM_PROPERTIES_DIALOG (object);
+
+ g_return_if_fail (dialog->priv != NULL);
+
+ G_OBJECT_CLASS (gsm_properties_dialog_parent_class)->finalize (object);
+}
+
+GtkWidget *
+gsm_properties_dialog_new (void)
+{
+ GObject *object;
+
+ object = g_object_new (GSM_TYPE_PROPERTIES_DIALOG,
+ NULL);
+
+ return GTK_WIDGET (object);
+}
diff --git a/capplet/gsm-properties-dialog.h b/capplet/gsm-properties-dialog.h
new file mode 100644
index 0000000..cbea612
--- /dev/null
+++ b/capplet/gsm-properties-dialog.h
@@ -0,0 +1,61 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#ifndef __GSM_PROPERTIES_DIALOG_H
+#define __GSM_PROPERTIES_DIALOG_H
+
+#include <glib-object.h>
+#include <gtk/gtk.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GSM_TYPE_PROPERTIES_DIALOG (gsm_properties_dialog_get_type ())
+#define GSM_PROPERTIES_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSM_TYPE_PROPERTIES_DIALOG, GsmPropertiesDialog))
+#define GSM_PROPERTIES_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSM_TYPE_PROPERTIES_DIALOG, GsmPropertiesDialogClass))
+#define GSM_IS_PROPERTIES_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSM_TYPE_PROPERTIES_DIALOG))
+#define GSM_IS_PROPERTIES_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSM_TYPE_PROPERTIES_DIALOG))
+#define GSM_PROPERTIES_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSM_TYPE_PROPERTIES_DIALOG, GsmPropertiesDialogClass))
+
+typedef struct GsmPropertiesDialogPrivate GsmPropertiesDialogPrivate;
+
+typedef struct
+{
+ GtkDialog parent;
+ GsmPropertiesDialogPrivate *priv;
+} GsmPropertiesDialog;
+
+typedef struct
+{
+ GtkDialogClass parent_class;
+} GsmPropertiesDialogClass;
+
+GType gsm_properties_dialog_get_type (void);
+
+GtkWidget * gsm_properties_dialog_new (void);
+
+#define GSM_PROPERTIES_ICON_SIZE GTK_ICON_SIZE_LARGE_TOOLBAR
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSM_PROPERTIES_DIALOG_H */
diff --git a/capplet/gsp-app-manager.c b/capplet/gsp-app-manager.c
new file mode 100644
index 0000000..bcd6d40
--- /dev/null
+++ b/capplet/gsp-app-manager.c
@@ -0,0 +1,593 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 1999 Free Software Foundation, Inc.
+ * Copyright (C) 2007, 2009 Vincent Untz.
+ * Copyright (C) 2008 Lucas Rocha.
+ * Copyright (C) 2008 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include <string.h>
+
+#include "gsm-util.h"
+#include "gsp-app.h"
+
+#include "gsp-app-manager.h"
+
+static GspAppManager *manager = NULL;
+
+typedef struct {
+ char *dir;
+ int index;
+ GFileMonitor *monitor;
+} GspXdgDir;
+
+struct _GspAppManagerPrivate {
+ GSList *apps;
+ GSList *dirs;
+};
+
+#define GSP_APP_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSP_TYPE_APP_MANAGER, GspAppManagerPrivate))
+
+
+enum {
+ ADDED,
+ REMOVED,
+ LAST_SIGNAL
+};
+
+static guint gsp_app_manager_signals[LAST_SIGNAL] = { 0 };
+
+
+G_DEFINE_TYPE (GspAppManager, gsp_app_manager, G_TYPE_OBJECT)
+
+static void gsp_app_manager_dispose (GObject *object);
+static void gsp_app_manager_finalize (GObject *object);
+static void _gsp_app_manager_app_unref (GspApp *app,
+ GspAppManager *manager);
+static void _gsp_app_manager_app_removed (GspAppManager *manager,
+ GspApp *app);
+
+static GspXdgDir *
+_gsp_xdg_dir_new (const char *dir,
+ int index)
+{
+ GspXdgDir *xdgdir;
+
+ xdgdir = g_slice_new (GspXdgDir);
+
+ xdgdir->dir = g_strdup (dir);
+ xdgdir->index = index;
+ xdgdir->monitor = NULL;
+
+ return xdgdir;
+}
+
+static void
+_gsp_xdg_dir_free (GspXdgDir *xdgdir)
+{
+ if (xdgdir->dir) {
+ g_free (xdgdir->dir);
+ xdgdir->dir = NULL;
+ }
+
+ if (xdgdir->monitor) {
+ g_file_monitor_cancel (xdgdir->monitor);
+ g_object_unref (xdgdir->monitor);
+ xdgdir->monitor = NULL;
+ }
+
+ g_slice_free (GspXdgDir, xdgdir);
+}
+
+static void
+gsp_app_manager_class_init (GspAppManagerClass *class)
+{
+ GObjectClass *gobject_class = G_OBJECT_CLASS (class);
+
+ gobject_class->dispose = gsp_app_manager_dispose;
+ gobject_class->finalize = gsp_app_manager_finalize;
+
+ gsp_app_manager_signals[ADDED] =
+ g_signal_new ("added",
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GspAppManagerClass,
+ added),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1, G_TYPE_OBJECT);
+
+ gsp_app_manager_signals[REMOVED] =
+ g_signal_new ("removed",
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GspAppManagerClass,
+ removed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1, G_TYPE_OBJECT);
+
+ g_type_class_add_private (class, sizeof (GspAppManagerPrivate));
+}
+
+static void
+gsp_app_manager_init (GspAppManager *manager)
+{
+ manager->priv = GSP_APP_MANAGER_GET_PRIVATE (manager);
+
+ memset (manager->priv, 0, sizeof (GspAppManagerPrivate));
+}
+
+static void
+gsp_app_manager_dispose (GObject *object)
+{
+ GspAppManager *manager;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GSP_IS_APP_MANAGER (object));
+
+ manager = GSP_APP_MANAGER (object);
+
+ /* we unref GspApp objects in dispose since they might need to
+ * reference us during their dispose/finalize */
+ g_slist_foreach (manager->priv->apps,
+ (GFunc) _gsp_app_manager_app_unref, manager);
+ g_slist_free (manager->priv->apps);
+ manager->priv->apps = NULL;
+
+ G_OBJECT_CLASS (gsp_app_manager_parent_class)->dispose (object);
+}
+
+static void
+gsp_app_manager_finalize (GObject *object)
+{
+ GspAppManager *manager;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GSP_IS_APP_MANAGER (object));
+
+ manager = GSP_APP_MANAGER (object);
+
+ g_slist_foreach (manager->priv->dirs,
+ (GFunc) _gsp_xdg_dir_free, NULL);
+ g_slist_free (manager->priv->dirs);
+ manager->priv->dirs = NULL;
+
+ G_OBJECT_CLASS (gsp_app_manager_parent_class)->finalize (object);
+
+ manager = NULL;
+}
+
+static void
+_gsp_app_manager_emit_added (GspAppManager *manager,
+ GspApp *app)
+{
+ g_signal_emit (G_OBJECT (manager), gsp_app_manager_signals[ADDED],
+ 0, app);
+}
+
+static void
+_gsp_app_manager_emit_removed (GspAppManager *manager,
+ GspApp *app)
+{
+ g_signal_emit (G_OBJECT (manager), gsp_app_manager_signals[REMOVED],
+ 0, app);
+}
+
+/*
+ * Directories
+ */
+
+static int
+gsp_app_manager_get_dir_index (GspAppManager *manager,
+ const char *dir)
+{
+ GSList *l;
+ GspXdgDir *xdgdir;
+
+ g_return_val_if_fail (GSP_IS_APP_MANAGER (manager), -1);
+ g_return_val_if_fail (dir != NULL, -1);
+
+ for (l = manager->priv->dirs; l != NULL; l = l->next) {
+ xdgdir = l->data;
+ if (strcmp (dir, xdgdir->dir) == 0) {
+ return xdgdir->index;
+ }
+ }
+
+ return -1;
+}
+
+const char *
+gsp_app_manager_get_dir (GspAppManager *manager,
+ unsigned int index)
+{
+ GSList *l;
+ GspXdgDir *xdgdir;
+
+ g_return_val_if_fail (GSP_IS_APP_MANAGER (manager), NULL);
+
+ for (l = manager->priv->dirs; l != NULL; l = l->next) {
+ xdgdir = l->data;
+ if (index == xdgdir->index) {
+ return xdgdir->dir;
+ }
+ }
+
+ return NULL;
+}
+
+static int
+_gsp_app_manager_find_dir_with_basename (GspAppManager *manager,
+ const char *basename,
+ int minimum_index)
+{
+ GSList *l;
+ GspXdgDir *xdgdir;
+ char *path;
+ GKeyFile *keyfile;
+ int result = -1;
+
+ path = NULL;
+ keyfile = g_key_file_new ();
+
+ for (l = manager->priv->dirs; l != NULL; l = l->next) {
+ xdgdir = l->data;
+
+ if (xdgdir->index <= minimum_index) {
+ continue;
+ }
+
+ g_free (path);
+ path = g_build_filename (xdgdir->dir, basename, NULL);
+ if (!g_file_test (path, G_FILE_TEST_EXISTS)) {
+ continue;
+ }
+
+ if (!g_key_file_load_from_file (keyfile, path,
+ G_KEY_FILE_NONE, NULL)) {
+ continue;
+ }
+
+ /* the file exists and is readable */
+ if (result == -1) {
+ result = xdgdir->index;
+ } else {
+ result = MIN (result, xdgdir->index);
+ }
+ }
+
+ g_key_file_free (keyfile);
+ g_free (path);
+
+ return result;
+}
+
+static void
+_gsp_app_manager_handle_delete (GspAppManager *manager,
+ GspApp *app,
+ const char *basename,
+ int index)
+{
+ unsigned int position;
+ unsigned int system_position;
+
+ position = gsp_app_get_xdg_position (app);
+ system_position = gsp_app_get_xdg_system_position (app);
+
+ if (system_position < index) {
+ /* it got deleted, but we don't even care about it */
+ return;
+ }
+
+ if (index < position) {
+ /* it got deleted, but in a position earlier than the current
+ * one. This happens when the user file was changed and became
+ * identical to the system file; in this case, the user file is
+ * simply removed. */
+ g_assert (index == 0);
+ return;
+ }
+
+ if (position == index &&
+ (system_position == index || system_position == G_MAXUINT)) {
+ /* the file used by the user was deleted, and there's no other
+ * file in system directories. So it really got deleted. */
+ _gsp_app_manager_app_removed (manager, app);
+ return;
+ }
+
+ if (system_position == index) {
+ /* then we know that position != index; we just hae to tell
+ * GspApp if there's still a system directory containing this
+ * basename */
+ int new_system;
+
+ new_system = _gsp_app_manager_find_dir_with_basename (manager,
+ basename,
+ index);
+ if (new_system < 0) {
+ gsp_app_set_xdg_system_position (app, G_MAXUINT);
+ } else {
+ gsp_app_set_xdg_system_position (app, new_system);
+ }
+
+ return;
+ }
+
+ if (position == index) {
+ /* then we know that system_position != G_MAXUINT; we need to
+ * tell GspApp to change position to system_position */
+ const char *dir;
+
+ dir = gsp_app_manager_get_dir (manager, system_position);
+ if (dir) {
+ char *path;
+
+ path = g_build_filename (dir, basename, NULL);
+ gsp_app_reload_at (app, path,
+ (unsigned int) system_position);
+ g_free (path);
+ } else {
+ _gsp_app_manager_app_removed (manager, app);
+ }
+
+ return;
+ }
+
+ g_assert_not_reached ();
+}
+
+static gboolean
+gsp_app_manager_xdg_dir_monitor (GFileMonitor *monitor,
+ GFile *child,
+ GFile *other_file,
+ GFileMonitorEvent flags,
+ gpointer data)
+{
+ GspAppManager *manager;
+ GspApp *old_app;
+ GspApp *app;
+ GFile *parent;
+ char *basename;
+ char *dir;
+ char *path;
+ int index;
+
+ manager = GSP_APP_MANAGER (data);
+
+ basename = g_file_get_basename (child);
+ if (!g_str_has_suffix (basename, ".desktop")) {
+ /* not a desktop file, we can ignore */
+ g_free (basename);
+ return TRUE;
+ }
+ old_app = gsp_app_manager_find_app_with_basename (manager, basename);
+
+ parent = g_file_get_parent (child);
+ dir = g_file_get_path (parent);
+ g_object_unref (parent);
+
+ index = gsp_app_manager_get_dir_index (manager, dir);
+ if (index < 0) {
+ /* not a directory we know; should never happen, though */
+ g_free (dir);
+ return TRUE;
+ }
+
+ path = g_file_get_path (child);
+
+ switch (flags) {
+ case G_FILE_MONITOR_EVENT_CHANGED:
+ case G_FILE_MONITOR_EVENT_CREATED:
+ /* we just do as if it was a new file: GspApp is clever enough
+ * to do the right thing */
+ app = gsp_app_new (path, (unsigned int) index);
+
+ /* we didn't have this app before, so add it */
+ if (old_app == NULL && app != NULL) {
+ gsp_app_manager_add (manager, app);
+ g_object_unref (app);
+ }
+ /* else: it was just updated, GspApp took care of
+ * sending the event */
+ break;
+ case G_FILE_MONITOR_EVENT_DELETED:
+ if (!old_app) {
+ /* it got deleted, but we don't know about it, so
+ * nothing to do */
+ break;
+ }
+
+ _gsp_app_manager_handle_delete (manager, old_app,
+ basename, index);
+ break;
+ default:
+ break;
+ }
+
+ g_free (path);
+ g_free (dir);
+ g_free (basename);
+
+ return TRUE;
+}
+
+/*
+ * Initialization
+ */
+
+static void
+_gsp_app_manager_fill_from_dir (GspAppManager *manager,
+ GspXdgDir *xdgdir)
+{
+ GFile *file;
+ GDir *dir;
+ const char *name;
+
+ file = g_file_new_for_path (xdgdir->dir);
+ xdgdir->monitor = g_file_monitor_directory (file, G_FILE_MONITOR_NONE,
+ NULL, NULL);
+ g_object_unref (file);
+
+ if (xdgdir->monitor) {
+ g_signal_connect (xdgdir->monitor, "changed",
+ G_CALLBACK (gsp_app_manager_xdg_dir_monitor),
+ manager);
+ }
+
+ dir = g_dir_open (xdgdir->dir, 0, NULL);
+ if (!dir) {
+ return;
+ }
+
+ while ((name = g_dir_read_name (dir))) {
+ GspApp *app;
+ char *desktop_file_path;
+
+ if (!g_str_has_suffix (name, ".desktop")) {
+ continue;
+ }
+
+ desktop_file_path = g_build_filename (xdgdir->dir, name, NULL);
+ app = gsp_app_new (desktop_file_path, xdgdir->index);
+
+ if (app != NULL) {
+ gsp_app_manager_add (manager, app);
+ g_object_unref (app);
+ }
+
+ g_free (desktop_file_path);
+ }
+
+ g_dir_close (dir);
+}
+
+void
+gsp_app_manager_fill (GspAppManager *manager)
+{
+ char **autostart_dirs;
+ int i;
+
+ if (manager->priv->apps != NULL)
+ return;
+
+ autostart_dirs = gsm_util_get_autostart_dirs ();
+ /* we always assume that the first directory is the user one */
+ g_assert (g_str_has_prefix (autostart_dirs[0],
+ g_get_user_config_dir ()));
+
+ for (i = 0; autostart_dirs[i] != NULL; i++) {
+ GspXdgDir *xdgdir;
+
+ if (gsp_app_manager_get_dir_index (manager,
+ autostart_dirs[i]) >= 0) {
+ continue;
+ }
+
+ xdgdir = _gsp_xdg_dir_new (autostart_dirs[i], i);
+ manager->priv->dirs = g_slist_prepend (manager->priv->dirs,
+ xdgdir);
+
+ _gsp_app_manager_fill_from_dir (manager, xdgdir);
+ }
+
+ g_strfreev (autostart_dirs);
+}
+
+/*
+ * App handling
+ */
+
+static void
+_gsp_app_manager_app_unref (GspApp *app,
+ GspAppManager *manager)
+{
+ g_signal_handlers_disconnect_by_func (app,
+ _gsp_app_manager_app_removed,
+ manager);
+ g_object_unref (app);
+}
+
+static void
+_gsp_app_manager_app_removed (GspAppManager *manager,
+ GspApp *app)
+{
+ _gsp_app_manager_emit_removed (manager, app);
+ manager->priv->apps = g_slist_remove (manager->priv->apps, app);
+ _gsp_app_manager_app_unref (app, manager);
+}
+
+void
+gsp_app_manager_add (GspAppManager *manager,
+ GspApp *app)
+{
+ g_return_if_fail (GSP_IS_APP_MANAGER (manager));
+ g_return_if_fail (GSP_IS_APP (app));
+
+ manager->priv->apps = g_slist_prepend (manager->priv->apps,
+ g_object_ref (app));
+ g_signal_connect_swapped (app, "removed",
+ G_CALLBACK (_gsp_app_manager_app_removed),
+ manager);
+ _gsp_app_manager_emit_added (manager, app);
+}
+
+GspApp *
+gsp_app_manager_find_app_with_basename (GspAppManager *manager,
+ const char *basename)
+{
+ GSList *l;
+ GspApp *app;
+
+ g_return_val_if_fail (GSP_IS_APP_MANAGER (manager), NULL);
+ g_return_val_if_fail (basename != NULL, NULL);
+
+ for (l = manager->priv->apps; l != NULL; l = l->next) {
+ app = GSP_APP (l->data);
+ if (strcmp (basename, gsp_app_get_basename (app)) == 0)
+ return app;
+ }
+
+ return NULL;
+}
+
+/*
+ * Singleton
+ */
+
+GspAppManager *
+gsp_app_manager_get (void)
+{
+ if (manager == NULL) {
+ manager = g_object_new (GSP_TYPE_APP_MANAGER, NULL);
+ return manager;
+ } else {
+ return g_object_ref (manager);
+ }
+}
+
+GSList *
+gsp_app_manager_get_apps (GspAppManager *manager)
+{
+ g_return_val_if_fail (GSP_IS_APP_MANAGER (manager), NULL);
+
+ return g_slist_copy (manager->priv->apps);
+}
diff --git a/capplet/gsp-app-manager.h b/capplet/gsp-app-manager.h
new file mode 100644
index 0000000..7cac3eb
--- /dev/null
+++ b/capplet/gsp-app-manager.h
@@ -0,0 +1,85 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 1999 Free Software Foundation, Inc.
+ * Copyright (C) 2007, 2009 Vincent Untz.
+ * Copyright (C) 2008 Lucas Rocha.
+ * Copyright (C) 2008 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#ifndef __GSP_APP_MANAGER_H
+#define __GSP_APP_MANAGER_H
+
+#include <glib-object.h>
+
+#include <gsp-app.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GSP_TYPE_APP_MANAGER (gsp_app_manager_get_type ())
+#define GSP_APP_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSP_TYPE_APP_MANAGER, GspAppManager))
+#define GSP_APP_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSP_TYPE_APP_MANAGER, GspAppManagerClass))
+#define GSP_IS_APP_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSP_TYPE_APP_MANAGER))
+#define GSP_IS_APP_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSP_TYPE_APP_MANAGER))
+#define GSP_APP_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSP_TYPE_APP_MANAGER, GspAppManagerClass))
+
+typedef struct _GspAppManager GspAppManager;
+typedef struct _GspAppManagerClass GspAppManagerClass;
+
+typedef struct _GspAppManagerPrivate GspAppManagerPrivate;
+
+struct _GspAppManagerClass
+{
+ GObjectClass parent_class;
+
+ void (* added) (GspAppManager *manager,
+ GspApp *app);
+ void (* removed) (GspAppManager *manager,
+ GspApp *app);
+};
+
+struct _GspAppManager
+{
+ GObject parent_instance;
+
+ GspAppManagerPrivate *priv;
+};
+
+GType gsp_app_manager_get_type (void);
+
+GspAppManager *gsp_app_manager_get (void);
+
+void gsp_app_manager_fill (GspAppManager *manager);
+
+GSList *gsp_app_manager_get_apps (GspAppManager *manager);
+
+GspApp *gsp_app_manager_find_app_with_basename (GspAppManager *manager,
+ const char *basename);
+
+const char *gsp_app_manager_get_dir (GspAppManager *manager,
+ unsigned int index);
+
+void gsp_app_manager_add (GspAppManager *manager,
+ GspApp *app);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSP_APP_MANAGER_H */
diff --git a/capplet/gsp-app.c b/capplet/gsp-app.c
new file mode 100644
index 0000000..fe85d80
--- /dev/null
+++ b/capplet/gsp-app.c
@@ -0,0 +1,1050 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 1999 Free Software Foundation, Inc.
+ * Copyright (C) 2007, 2009 Vincent Untz.
+ * Copyright (C) 2008 Lucas Rocha.
+ * Copyright (C) 2008 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include <string.h>
+#include <sys/stat.h>
+
+#include <glib/gi18n.h>
+#include <glib/gstdio.h>
+
+#include "gsm-app-dialog.h"
+#include "gsm-properties-dialog.h"
+#include "gsm-util.h"
+#include "gsp-app-manager.h"
+#include "gsp-keyfile.h"
+
+#include "gsp-app.h"
+
+#define GSP_APP_SAVE_DELAY 2
+
+#define GSP_ASP_SAVE_MASK_HIDDEN 0x0001
+#define GSP_ASP_SAVE_MASK_ENABLED 0x0002
+#define GSP_ASP_SAVE_MASK_NAME 0x0004
+#define GSP_ASP_SAVE_MASK_EXEC 0x0008
+#define GSP_ASP_SAVE_MASK_COMMENT 0x0010
+#define GSP_ASP_SAVE_MASK_ALL 0xffff
+
+struct _GspAppPrivate {
+ char *basename;
+ char *path;
+
+ gboolean hidden;
+ gboolean enabled;
+
+ char *name;
+ char *exec;
+ char *comment;
+ char *icon;
+
+ GIcon *gicon;
+ char *description;
+
+ /* position of the directory in the XDG environment variable */
+ unsigned int xdg_position;
+ /* position of the first system directory in the XDG env var containing
+ * this autostart app too (G_MAXUINT means none) */
+ unsigned int xdg_system_position;
+
+ unsigned int save_timeout;
+ /* mask of what has changed */
+ unsigned int save_mask;
+ /* path that contains the original file that needs to be saved */
+ char *old_system_path;
+ /* after writing to file, we skip the next file monitor event of type
+ * CHANGED */
+ gboolean skip_next_monitor_event;
+};
+
+#define GSP_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSP_TYPE_APP, GspAppPrivate))
+
+
+enum {
+ CHANGED,
+ REMOVED,
+ LAST_SIGNAL
+};
+
+static guint gsp_app_signals[LAST_SIGNAL] = { 0 };
+
+
+G_DEFINE_TYPE (GspApp, gsp_app, G_TYPE_OBJECT)
+
+static void gsp_app_dispose (GObject *object);
+static void gsp_app_finalize (GObject *object);
+static gboolean _gsp_app_save (gpointer data);
+
+
+static gboolean
+_gsp_str_equal (const char *a,
+ const char *b)
+{
+ if (g_strcmp0 (a, b) == 0) {
+ return TRUE;
+ }
+
+ if (a && !b && a[0] == '\0') {
+ return TRUE;
+ }
+
+ if (b && !a && b[0] == '\0') {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+
+static void
+gsp_app_class_init (GspAppClass *class)
+{
+ GObjectClass *gobject_class = G_OBJECT_CLASS (class);
+
+ gobject_class->dispose = gsp_app_dispose;
+ gobject_class->finalize = gsp_app_finalize;
+
+ gsp_app_signals[CHANGED] =
+ g_signal_new ("changed",
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GspAppClass,
+ changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ gsp_app_signals[REMOVED] =
+ g_signal_new ("removed",
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GspAppClass,
+ removed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ g_type_class_add_private (class, sizeof (GspAppPrivate));
+}
+
+static void
+gsp_app_init (GspApp *app)
+{
+ app->priv = GSP_APP_GET_PRIVATE (app);
+
+ memset (app->priv, 0, sizeof (GspAppPrivate));
+ app->priv->xdg_position = G_MAXUINT;
+ app->priv->xdg_system_position = G_MAXUINT;
+}
+
+static void
+_gsp_app_free_reusable_data (GspApp *app)
+{
+ if (app->priv->path) {
+ g_free (app->priv->path);
+ app->priv->path = NULL;
+ }
+
+ if (app->priv->name) {
+ g_free (app->priv->name);
+ app->priv->name = NULL;
+ }
+
+ if (app->priv->exec) {
+ g_free (app->priv->exec);
+ app->priv->exec = NULL;
+ }
+
+ if (app->priv->comment) {
+ g_free (app->priv->comment);
+ app->priv->comment = NULL;
+ }
+
+ if (app->priv->icon) {
+ g_free (app->priv->icon);
+ app->priv->icon = NULL;
+ }
+
+ if (app->priv->gicon) {
+ g_object_unref (app->priv->gicon);
+ app->priv->gicon = NULL;
+ }
+
+ if (app->priv->description) {
+ g_free (app->priv->description);
+ app->priv->description = NULL;
+ }
+
+ if (app->priv->old_system_path) {
+ g_free (app->priv->old_system_path);
+ app->priv->old_system_path = NULL;
+ }
+}
+
+static void
+gsp_app_dispose (GObject *object)
+{
+ GspApp *app;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GSP_IS_APP (object));
+
+ app = GSP_APP (object);
+
+ /* we save in dispose since we might need to reference GspAppManager */
+ if (app->priv->save_timeout) {
+ g_source_remove (app->priv->save_timeout);
+ app->priv->save_timeout = 0;
+
+ /* save now */
+ _gsp_app_save (app);
+ }
+
+ G_OBJECT_CLASS (gsp_app_parent_class)->dispose (object);
+}
+
+static void
+gsp_app_finalize (GObject *object)
+{
+ GspApp *app;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GSP_IS_APP (object));
+
+ app = GSP_APP (object);
+
+ if (app->priv->basename) {
+ g_free (app->priv->basename);
+ app->priv->basename = NULL;
+ }
+
+ _gsp_app_free_reusable_data (app);
+
+ G_OBJECT_CLASS (gsp_app_parent_class)->finalize (object);
+}
+
+static void
+_gsp_app_emit_changed (GspApp *app)
+{
+ g_signal_emit (G_OBJECT (app), gsp_app_signals[CHANGED], 0);
+}
+
+static void
+_gsp_app_emit_removed (GspApp *app)
+{
+ g_signal_emit (G_OBJECT (app), gsp_app_signals[REMOVED], 0);
+}
+
+static void
+_gsp_app_update_description (GspApp *app)
+{
+ const char *primary;
+ const char *secondary;
+
+ if (!gsm_util_text_is_blank (app->priv->name)) {
+ primary = app->priv->name;
+ } else if (!gsm_util_text_is_blank (app->priv->exec)) {
+ primary = app->priv->exec;
+ } else {
+ primary = _("No name");
+ }
+
+ if (!gsm_util_text_is_blank (app->priv->comment)) {
+ secondary = app->priv->comment;
+ } else {
+ secondary = _("No description");
+ }
+
+ g_free (app->priv->description);
+ app->priv->description = g_markup_printf_escaped ("<b>%s</b>\n%s",
+ primary,
+ secondary);
+}
+
+/*
+ * Saving
+ */
+
+static void
+_gsp_ensure_user_autostart_dir (void)
+{
+ char *dir;
+
+ dir = g_build_filename (g_get_user_config_dir (), "autostart", NULL);
+ g_mkdir_with_parents (dir, S_IRWXU);
+
+ g_free (dir);
+}
+
+static gboolean
+_gsp_app_user_equal_system (GspApp *app,
+ char **system_path)
+{
+ GspAppManager *manager;
+ const char *system_dir;
+ char *path;
+ char *str;
+ GKeyFile *keyfile;
+
+ manager = gsp_app_manager_get ();
+ system_dir = gsp_app_manager_get_dir (manager,
+ app->priv->xdg_system_position);
+ g_object_unref (manager);
+ if (!system_dir) {
+ return FALSE;
+ }
+
+ path = g_build_filename (system_dir, app->priv->basename, NULL);
+
+ keyfile = g_key_file_new ();
+ if (!g_key_file_load_from_file (keyfile, path, G_KEY_FILE_NONE, NULL)) {
+ g_free (path);
+ g_key_file_free (keyfile);
+ return FALSE;
+ }
+
+ if (gsp_key_file_get_boolean (keyfile,
+ G_KEY_FILE_DESKTOP_KEY_HIDDEN,
+ FALSE) != app->priv->hidden ||
+ gsp_key_file_get_boolean (keyfile,
+ GSP_KEY_FILE_DESKTOP_KEY_AUTOSTART_ENABLED,
+ TRUE) != app->priv->enabled) {
+ g_free (path);
+ g_key_file_free (keyfile);
+ return FALSE;
+ }
+
+ str = gsp_key_file_get_locale_string (keyfile,
+ G_KEY_FILE_DESKTOP_KEY_NAME);
+ if (!_gsp_str_equal (str, app->priv->name)) {
+ g_free (str);
+ g_free (path);
+ g_key_file_free (keyfile);
+ return FALSE;
+ }
+ g_free (str);
+
+ str = gsp_key_file_get_locale_string (keyfile,
+ G_KEY_FILE_DESKTOP_KEY_COMMENT);
+ if (!_gsp_str_equal (str, app->priv->comment)) {
+ g_free (str);
+ g_free (path);
+ g_key_file_free (keyfile);
+ return FALSE;
+ }
+ g_free (str);
+
+ str = gsp_key_file_get_string (keyfile,
+ G_KEY_FILE_DESKTOP_KEY_EXEC);
+ if (!_gsp_str_equal (str, app->priv->exec)) {
+ g_free (str);
+ g_free (path);
+ g_key_file_free (keyfile);
+ return FALSE;
+ }
+ g_free (str);
+
+ str = gsp_key_file_get_locale_string (keyfile,
+ G_KEY_FILE_DESKTOP_KEY_ICON);
+ if (!_gsp_str_equal (str, app->priv->icon)) {
+ g_free (str);
+ g_free (path);
+ g_key_file_free (keyfile);
+ return FALSE;
+ }
+ g_free (str);
+
+ g_key_file_free (keyfile);
+
+ *system_path = path;
+
+ return TRUE;
+}
+
+static inline void
+_gsp_app_save_done_success (GspApp *app)
+{
+ app->priv->save_mask = 0;
+
+ if (app->priv->old_system_path) {
+ g_free (app->priv->old_system_path);
+ app->priv->old_system_path = NULL;
+ }
+}
+
+static gboolean
+_gsp_app_save (gpointer data)
+{
+ GspApp *app;
+ char *use_path;
+ GKeyFile *keyfile;
+ GError *error;
+
+ app = GSP_APP (data);
+
+ /* first check if removing the data from the user dir and using the
+ * data from the system dir is enough -- this helps us keep clean the
+ * user config dir by removing unneeded files */
+ if (_gsp_app_user_equal_system (app, &use_path)) {
+ if (g_file_test (app->priv->path, G_FILE_TEST_EXISTS)) {
+ g_remove (app->priv->path);
+ }
+
+ g_free (app->priv->path);
+ app->priv->path = use_path;
+
+ app->priv->xdg_position = app->priv->xdg_system_position;
+
+ _gsp_app_save_done_success (app);
+ return FALSE;
+ }
+
+ if (app->priv->old_system_path)
+ use_path = app->priv->old_system_path;
+ else
+ use_path = app->priv->path;
+
+ keyfile = g_key_file_new ();
+
+ error = NULL;
+ g_key_file_load_from_file (keyfile, use_path,
+ G_KEY_FILE_KEEP_COMMENTS|G_KEY_FILE_KEEP_TRANSLATIONS,
+ &error);
+
+ if (error) {
+ g_error_free (error);
+ gsp_key_file_populate (keyfile);
+ }
+
+ if (app->priv->save_mask & GSP_ASP_SAVE_MASK_HIDDEN) {
+ gsp_key_file_set_boolean (keyfile,
+ G_KEY_FILE_DESKTOP_KEY_HIDDEN,
+ app->priv->hidden);
+ }
+
+ if (app->priv->save_mask & GSP_ASP_SAVE_MASK_ENABLED) {
+ gsp_key_file_set_boolean (keyfile,
+ GSP_KEY_FILE_DESKTOP_KEY_AUTOSTART_ENABLED,
+ app->priv->enabled);
+ }
+
+ if (app->priv->save_mask & GSP_ASP_SAVE_MASK_NAME) {
+ gsp_key_file_set_locale_string (keyfile,
+ G_KEY_FILE_DESKTOP_KEY_NAME,
+ app->priv->name);
+ gsp_key_file_ensure_C_key (keyfile, G_KEY_FILE_DESKTOP_KEY_NAME);
+ }
+
+ if (app->priv->save_mask & GSP_ASP_SAVE_MASK_COMMENT) {
+ gsp_key_file_set_locale_string (keyfile,
+ G_KEY_FILE_DESKTOP_KEY_COMMENT,
+ app->priv->comment);
+ gsp_key_file_ensure_C_key (keyfile, G_KEY_FILE_DESKTOP_KEY_COMMENT);
+ }
+
+ if (app->priv->save_mask & GSP_ASP_SAVE_MASK_EXEC) {
+ gsp_key_file_set_string (keyfile,
+ G_KEY_FILE_DESKTOP_KEY_EXEC,
+ app->priv->exec);
+ }
+
+ _gsp_ensure_user_autostart_dir ();
+ if (gsp_key_file_to_file (keyfile, app->priv->path, NULL)) {
+ app->priv->skip_next_monitor_event = TRUE;
+ _gsp_app_save_done_success (app);
+ } else {
+ g_warning ("Could not save %s file", app->priv->path);
+ }
+
+ g_key_file_free (keyfile);
+
+ app->priv->save_timeout = 0;
+ return FALSE;
+}
+
+static void
+_gsp_app_queue_save (GspApp *app)
+{
+ if (app->priv->save_timeout) {
+ g_source_remove (app->priv->save_timeout);
+ app->priv->save_timeout = 0;
+ }
+
+ /* if the file was not in the user directory, then we'll create a copy
+ * there */
+ if (app->priv->xdg_position != 0) {
+ app->priv->xdg_position = 0;
+
+ if (app->priv->old_system_path == NULL) {
+ app->priv->old_system_path = app->priv->path;
+ /* if old_system_path was not NULL, then it means we
+ * tried to save and we failed; in that case, we want
+ * to try again and use the old file as a basis again */
+ }
+
+ app->priv->path = g_build_filename (g_get_user_config_dir (),
+ "autostart",
+ app->priv->basename, NULL);
+ }
+
+ app->priv->save_timeout = g_timeout_add_seconds (GSP_APP_SAVE_DELAY,
+ _gsp_app_save,
+ app);
+}
+
+/*
+ * Accessors
+ */
+
+const char *
+gsp_app_get_basename (GspApp *app)
+{
+ g_return_val_if_fail (GSP_IS_APP (app), NULL);
+
+ return app->priv->basename;
+}
+
+const char *
+gsp_app_get_path (GspApp *app)
+{
+ g_return_val_if_fail (GSP_IS_APP (app), NULL);
+
+ return app->priv->path;
+}
+
+gboolean
+gsp_app_get_hidden (GspApp *app)
+{
+ g_return_val_if_fail (GSP_IS_APP (app), FALSE);
+
+ return app->priv->hidden;
+}
+
+gboolean
+gsp_app_get_enabled (GspApp *app)
+{
+ g_return_val_if_fail (GSP_IS_APP (app), FALSE);
+
+ return app->priv->enabled;
+}
+
+void
+gsp_app_set_enabled (GspApp *app,
+ gboolean enabled)
+{
+ g_return_if_fail (GSP_IS_APP (app));
+
+ if (enabled == app->priv->enabled) {
+ return;
+ }
+
+ app->priv->enabled = enabled;
+ app->priv->save_mask |= GSP_ASP_SAVE_MASK_ENABLED;
+
+ _gsp_app_queue_save (app);
+ _gsp_app_emit_changed (app);
+}
+
+const char *
+gsp_app_get_name (GspApp *app)
+{
+ g_return_val_if_fail (GSP_IS_APP (app), NULL);
+
+ return app->priv->name;
+}
+
+const char *
+gsp_app_get_exec (GspApp *app)
+{
+ g_return_val_if_fail (GSP_IS_APP (app), NULL);
+
+ return app->priv->exec;
+}
+
+const char *
+gsp_app_get_comment (GspApp *app)
+{
+ g_return_val_if_fail (GSP_IS_APP (app), NULL);
+
+ return app->priv->comment;
+}
+
+GIcon *
+gsp_app_get_icon (GspApp *app)
+{
+ g_return_val_if_fail (GSP_IS_APP (app), NULL);
+
+ if (app->priv->gicon) {
+ return g_object_ref (app->priv->gicon);
+ } else {
+ return NULL;
+ }
+}
+
+unsigned int
+gsp_app_get_xdg_position (GspApp *app)
+{
+ g_return_val_if_fail (GSP_IS_APP (app), G_MAXUINT);
+
+ return app->priv->xdg_position;
+}
+
+unsigned int
+gsp_app_get_xdg_system_position (GspApp *app)
+{
+ g_return_val_if_fail (GSP_IS_APP (app), G_MAXUINT);
+
+ return app->priv->xdg_system_position;
+}
+
+void
+gsp_app_set_xdg_system_position (GspApp *app,
+ unsigned int position)
+{
+ g_return_if_fail (GSP_IS_APP (app));
+
+ app->priv->xdg_system_position = position;
+}
+
+const char *
+gsp_app_get_description (GspApp *app)
+{
+ g_return_val_if_fail (GSP_IS_APP (app), NULL);
+
+ return app->priv->description;
+}
+
+/*
+ * High-level edition
+ */
+
+void
+gsp_app_update (GspApp *app,
+ const char *name,
+ const char *comment,
+ const char *exec)
+{
+ gboolean changed;
+
+ g_return_if_fail (GSP_IS_APP (app));
+
+ changed = FALSE;
+
+ if (!_gsp_str_equal (name, app->priv->name)) {
+ changed = TRUE;
+ g_free (app->priv->name);
+ app->priv->name = g_strdup (name);
+ app->priv->save_mask |= GSP_ASP_SAVE_MASK_NAME;
+ }
+
+ if (!_gsp_str_equal (comment, app->priv->comment)) {
+ changed = TRUE;
+ g_free (app->priv->comment);
+ app->priv->comment = g_strdup (comment);
+ app->priv->save_mask |= GSP_ASP_SAVE_MASK_COMMENT;
+ }
+
+ if (changed) {
+ _gsp_app_update_description (app);
+ }
+
+ if (!_gsp_str_equal (exec, app->priv->exec)) {
+ changed = TRUE;
+ g_free (app->priv->exec);
+ app->priv->exec = g_strdup (exec);
+ app->priv->save_mask |= GSP_ASP_SAVE_MASK_EXEC;
+ }
+
+ if (changed) {
+ _gsp_app_queue_save (app);
+ _gsp_app_emit_changed (app);
+ }
+}
+
+void
+gsp_app_delete (GspApp *app)
+{
+ g_return_if_fail (GSP_IS_APP (app));
+
+ if (app->priv->xdg_position == 0 &&
+ app->priv->xdg_system_position == G_MAXUINT) {
+ /* exists in user directory only */
+ if (app->priv->save_timeout) {
+ g_source_remove (app->priv->save_timeout);
+ app->priv->save_timeout = 0;
+ }
+
+ if (g_file_test (app->priv->path, G_FILE_TEST_EXISTS)) {
+ g_remove (app->priv->path);
+ }
+
+ /* for extra safety */
+ app->priv->hidden = TRUE;
+ app->priv->save_mask |= GSP_ASP_SAVE_MASK_HIDDEN;
+
+ _gsp_app_emit_removed (app);
+ } else {
+ /* also exists in system directory, so we have to keep a file
+ * in the user directory */
+ app->priv->hidden = TRUE;
+ app->priv->save_mask |= GSP_ASP_SAVE_MASK_HIDDEN;
+
+ _gsp_app_queue_save (app);
+ _gsp_app_emit_changed (app);
+ }
+}
+
+/*
+ * New autostart app
+ */
+
+void
+gsp_app_reload_at (GspApp *app,
+ const char *path,
+ unsigned int xdg_position)
+{
+ g_return_if_fail (GSP_IS_APP (app));
+
+ app->priv->xdg_position = G_MAXUINT;
+ gsp_app_new (path, xdg_position);
+}
+
+GspApp *
+gsp_app_new (const char *path,
+ unsigned int xdg_position)
+{
+ GspAppManager *manager;
+ GspApp *app;
+ GKeyFile *keyfile;
+ char *basename;
+ gboolean new;
+
+ basename = g_path_get_basename (path);
+
+ manager = gsp_app_manager_get ();
+ app = gsp_app_manager_find_app_with_basename (manager, basename);
+ g_object_unref (manager);
+
+ new = (app == NULL);
+
+ if (!new) {
+ if (app->priv->xdg_position == xdg_position) {
+ if (app->priv->skip_next_monitor_event) {
+ app->priv->skip_next_monitor_event = FALSE;
+ return NULL;
+ }
+ /* else: the file got changed but not by us, we'll
+ * update our data from disk */
+ }
+
+ if (app->priv->xdg_position < xdg_position ||
+ app->priv->save_timeout != 0) {
+ /* we don't really care about this file, since we
+ * already have something with a higher priority, or
+ * we're going to write something in the user config
+ * anyway.
+ * Note: xdg_position >= 1 so it's a system dir */
+ app->priv->xdg_system_position = MIN (xdg_position,
+ app->priv->xdg_system_position);
+ return NULL;
+ }
+ }
+
+ keyfile = g_key_file_new ();
+ if (!g_key_file_load_from_file (keyfile, path, G_KEY_FILE_NONE, NULL)) {
+ g_key_file_free (keyfile);
+ g_free (basename);
+ return NULL;
+ }
+
+ if (new) {
+ app = g_object_new (GSP_TYPE_APP, NULL);
+ app->priv->basename = basename;
+ } else {
+ g_free (basename);
+ _gsp_app_free_reusable_data (app);
+ }
+
+ app->priv->path = g_strdup (path);
+
+ app->priv->hidden = gsp_key_file_get_boolean (keyfile,
+ G_KEY_FILE_DESKTOP_KEY_HIDDEN,
+ FALSE);
+ app->priv->enabled = gsp_key_file_get_boolean (keyfile,
+ GSP_KEY_FILE_DESKTOP_KEY_AUTOSTART_ENABLED,
+ TRUE);
+
+ app->priv->name = gsp_key_file_get_locale_string (keyfile,
+ G_KEY_FILE_DESKTOP_KEY_NAME);
+ app->priv->exec = gsp_key_file_get_string (keyfile,
+ G_KEY_FILE_DESKTOP_KEY_EXEC);
+ app->priv->comment = gsp_key_file_get_locale_string (keyfile,
+ G_KEY_FILE_DESKTOP_KEY_COMMENT);
+
+ if (gsm_util_text_is_blank (app->priv->name)) {
+ g_free (app->priv->name);
+ app->priv->name = g_strdup (app->priv->exec);
+ }
+
+ app->priv->icon = gsp_key_file_get_locale_string (keyfile,
+ G_KEY_FILE_DESKTOP_KEY_ICON);
+
+ if (app->priv->icon) {
+ /* look at icon and see if it's a themed icon or not */
+ if (g_path_is_absolute (app->priv->icon)) {
+ GFile *iconfile;
+
+ iconfile = g_file_new_for_path (app->priv->icon);
+ app->priv->gicon = g_file_icon_new (iconfile);
+ g_object_unref (iconfile);
+ } else {
+ app->priv->gicon = g_themed_icon_new (app->priv->icon);
+ }
+ } else {
+ app->priv->gicon = NULL;
+ }
+
+ g_key_file_free (keyfile);
+
+ _gsp_app_update_description (app);
+
+ if (xdg_position > 0) {
+ g_assert (xdg_position <= app->priv->xdg_system_position);
+ app->priv->xdg_system_position = xdg_position;
+ }
+ /* else we keep the old value (which is G_MAXUINT if it wasn't set) */
+ app->priv->xdg_position = xdg_position;
+
+ g_assert (!new || app->priv->save_timeout == 0);
+ app->priv->save_timeout = 0;
+ app->priv->old_system_path = NULL;
+ app->priv->skip_next_monitor_event = FALSE;
+
+ if (!new) {
+ _gsp_app_emit_changed (app);
+ }
+
+ return app;
+}
+
+static char *
+_gsp_find_free_basename (const char *suggested_basename)
+{
+ GspAppManager *manager;
+ char *base_path;
+ char *filename;
+ char *basename;
+ int i;
+
+ if (g_str_has_suffix (suggested_basename, ".desktop")) {
+ char *basename_no_ext;
+
+ basename_no_ext = g_strndup (suggested_basename,
+ strlen (suggested_basename) - strlen (".desktop"));
+ base_path = g_build_filename (g_get_user_config_dir (),
+ "autostart",
+ basename_no_ext, NULL);
+ g_free (basename_no_ext);
+ } else {
+ base_path = g_build_filename (g_get_user_config_dir (),
+ "autostart",
+ suggested_basename, NULL);
+ }
+
+ filename = g_strdup_printf ("%s.desktop", base_path);
+ basename = g_path_get_basename (filename);
+
+ manager = gsp_app_manager_get ();
+
+ i = 1;
+#define _GSP_FIND_MAX_TRY 10000
+ while (gsp_app_manager_find_app_with_basename (manager,
+ basename) != NULL &&
+ g_file_test (filename, G_FILE_TEST_EXISTS) &&
+ i < _GSP_FIND_MAX_TRY) {
+ g_free (filename);
+ g_free (basename);
+
+ filename = g_strdup_printf ("%s-%d.desktop", base_path, i);
+ basename = g_path_get_basename (filename);
+
+ i++;
+ }
+
+ g_object_unref (manager);
+
+ g_free (base_path);
+ g_free (filename);
+
+ if (i == _GSP_FIND_MAX_TRY) {
+ g_free (basename);
+ return NULL;
+ }
+
+ return basename;
+}
+
+void
+gsp_app_create (const char *name,
+ const char *comment,
+ const char *exec)
+{
+ GspAppManager *manager;
+ GspApp *app;
+ char *basename;
+ char **argv;
+ int argc;
+
+ g_return_if_fail (!gsm_util_text_is_blank (exec));
+
+ if (!g_shell_parse_argv (exec, &argc, &argv, NULL)) {
+ return;
+ }
+
+ basename = _gsp_find_free_basename (argv[0]);
+ g_strfreev (argv);
+ if (basename == NULL) {
+ return;
+ }
+
+ app = g_object_new (GSP_TYPE_APP, NULL);
+
+ app->priv->basename = basename;
+ app->priv->path = g_build_filename (g_get_user_config_dir (),
+ "autostart",
+ app->priv->basename, NULL);
+
+ app->priv->hidden = FALSE;
+ app->priv->enabled = TRUE;
+
+ if (!gsm_util_text_is_blank (name)) {
+ app->priv->name = g_strdup (name);
+ } else {
+ app->priv->name = g_strdup (exec);
+ }
+ app->priv->exec = g_strdup (exec);
+ app->priv->comment = g_strdup (comment);
+ app->priv->icon = NULL;
+
+ app->priv->gicon = NULL;
+ _gsp_app_update_description (app);
+
+ /* by definition */
+ app->priv->xdg_position = 0;
+ app->priv->xdg_system_position = G_MAXUINT;
+
+ app->priv->save_timeout = 0;
+ app->priv->save_mask |= GSP_ASP_SAVE_MASK_ALL;
+ app->priv->old_system_path = NULL;
+ app->priv->skip_next_monitor_event = FALSE;
+
+ _gsp_app_queue_save (app);
+
+ manager = gsp_app_manager_get ();
+ gsp_app_manager_add (manager, app);
+ g_object_unref (app);
+ g_object_unref (manager);
+}
+
+gboolean
+gsp_app_copy_desktop_file (const char *uri)
+{
+ GspAppManager *manager;
+ GspApp *app;
+ GFile *src_file;
+ char *src_basename;
+ char *dst_basename;
+ char *dst_path;
+ GFile *dst_file;
+ gboolean changed;
+
+ g_return_val_if_fail (uri != NULL, FALSE);
+
+ src_file = g_file_new_for_uri (uri);
+ src_basename = g_file_get_basename (src_file);
+
+ if (src_basename == NULL) {
+ g_object_unref (src_file);
+ return FALSE;
+ }
+
+ dst_basename = _gsp_find_free_basename (src_basename);
+ g_free (src_basename);
+
+ if (dst_basename == NULL) {
+ g_object_unref (src_file);
+ return FALSE;
+ }
+
+ dst_path = g_build_filename (g_get_user_config_dir (),
+ "autostart",
+ dst_basename, NULL);
+ g_free (dst_basename);
+
+ dst_file = g_file_new_for_path (dst_path);
+
+ _gsp_ensure_user_autostart_dir ();
+ if (!g_file_copy (src_file, dst_file, G_FILE_COPY_NONE,
+ NULL, NULL, NULL, NULL)) {
+ g_object_unref (src_file);
+ g_object_unref (dst_file);
+ g_free (dst_path);
+ return FALSE;
+ }
+
+ g_object_unref (src_file);
+ g_object_unref (dst_file);
+
+ app = gsp_app_new (dst_path, 0);
+ if (!app) {
+ g_remove (dst_path);
+ g_free (dst_path);
+ return FALSE;
+ }
+
+ g_free (dst_path);
+
+ changed = FALSE;
+ if (app->priv->hidden) {
+ changed = TRUE;
+ app->priv->hidden = FALSE;
+ app->priv->save_mask |= GSP_ASP_SAVE_MASK_HIDDEN;
+ }
+
+ if (!app->priv->enabled) {
+ changed = TRUE;
+ app->priv->enabled = TRUE;
+ app->priv->save_mask |= GSP_ASP_SAVE_MASK_ENABLED;
+ }
+
+ if (changed) {
+ _gsp_app_queue_save (app);
+ }
+
+ manager = gsp_app_manager_get ();
+ gsp_app_manager_add (manager, app);
+ g_object_unref (app);
+ g_object_unref (manager);
+
+ return TRUE;
+}
diff --git a/capplet/gsp-app.h b/capplet/gsp-app.h
new file mode 100644
index 0000000..f869cf3
--- /dev/null
+++ b/capplet/gsp-app.h
@@ -0,0 +1,109 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 1999 Free Software Foundation, Inc.
+ * Copyright (C) 2007, 2009 Vincent Untz.
+ * Copyright (C) 2008 Lucas Rocha.
+ * Copyright (C) 2008 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#ifndef __GSP_APP_H
+#define __GSP_APP_H
+
+#include <glib-object.h>
+#include <gio/gio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GSP_TYPE_APP (gsp_app_get_type ())
+#define GSP_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSP_TYPE_APP, GspApp))
+#define GSP_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSP_TYPE_APP, GspAppClass))
+#define GSP_IS_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSP_TYPE_APP))
+#define GSP_IS_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSP_TYPE_APP))
+#define GSP_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSP_TYPE_APP, GspAppClass))
+
+typedef struct _GspApp GspApp;
+typedef struct _GspAppClass GspAppClass;
+
+typedef struct _GspAppPrivate GspAppPrivate;
+
+struct _GspAppClass
+{
+ GObjectClass parent_class;
+
+ void (* changed) (GspApp *app);
+ void (* removed) (GspApp *app);
+};
+
+struct _GspApp
+{
+ GObject parent_instance;
+
+ GspAppPrivate *priv;
+};
+
+GType gsp_app_get_type (void);
+
+void gsp_app_create (const char *name,
+ const char *comment,
+ const char *exec);
+void gsp_app_update (GspApp *app,
+ const char *name,
+ const char *comment,
+ const char *exec);
+
+gboolean gsp_app_copy_desktop_file (const char *uri);
+
+void gsp_app_delete (GspApp *app);
+
+const char *gsp_app_get_basename (GspApp *app);
+const char *gsp_app_get_path (GspApp *app);
+
+gboolean gsp_app_get_hidden (GspApp *app);
+
+gboolean gsp_app_get_enabled (GspApp *app);
+void gsp_app_set_enabled (GspApp *app,
+ gboolean enabled);
+
+const char *gsp_app_get_name (GspApp *app);
+const char *gsp_app_get_exec (GspApp *app);
+const char *gsp_app_get_comment (GspApp *app);
+
+const char *gsp_app_get_description (GspApp *app);
+GIcon *gsp_app_get_icon (GspApp *app);
+
+/* private interface for GspAppManager only */
+
+GspApp *gsp_app_new (const char *path,
+ unsigned int xdg_position);
+
+void gsp_app_reload_at (GspApp *app,
+ const char *path,
+ unsigned int xdg_position);
+
+unsigned int gsp_app_get_xdg_position (GspApp *app);
+unsigned int gsp_app_get_xdg_system_position (GspApp *app);
+void gsp_app_set_xdg_system_position (GspApp *app,
+ unsigned int position);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSP_APP_H */
diff --git a/capplet/gsp-keyfile.c b/capplet/gsp-keyfile.c
new file mode 100644
index 0000000..405ecc0
--- /dev/null
+++ b/capplet/gsp-keyfile.c
@@ -0,0 +1,149 @@
+/*
+ * gsp-keyfile.c: GKeyFile extensions
+ *
+ * Copyright (C) 2008, 2009 Novell, Inc.
+ *
+ * Based on code from panel-keyfile.c (from mate-panel)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * Authors:
+ * Vincent Untz <[email protected]>
+ */
+
+#include <string.h>
+
+#include <glib.h>
+
+#include "gsp-keyfile.h"
+
+void
+gsp_key_file_populate (GKeyFile *keyfile)
+{
+ gsp_key_file_set_string (keyfile,
+ G_KEY_FILE_DESKTOP_KEY_TYPE,
+ "Application");
+
+ gsp_key_file_set_string (keyfile,
+ G_KEY_FILE_DESKTOP_KEY_EXEC,
+ "/bin/false");
+}
+
+//FIXME: kill this when bug #309224 is fixed
+gboolean
+gsp_key_file_to_file (GKeyFile *keyfile,
+ const gchar *path,
+ GError **error)
+{
+ GError *write_error;
+ gchar *data;
+ gsize length;
+ gboolean res;
+
+ g_return_val_if_fail (keyfile != NULL, FALSE);
+ g_return_val_if_fail (path != NULL, FALSE);
+
+ write_error = NULL;
+ data = g_key_file_to_data (keyfile, &length, &write_error);
+
+ if (write_error) {
+ g_propagate_error (error, write_error);
+ return FALSE;
+ }
+
+ res = g_file_set_contents (path, data, length, &write_error);
+ g_free (data);
+
+ if (write_error) {
+ g_propagate_error (error, write_error);
+ return FALSE;
+ }
+
+ return res;
+}
+
+gboolean
+gsp_key_file_get_boolean (GKeyFile *keyfile,
+ const gchar *key,
+ gboolean default_value)
+{
+ GError *error;
+ gboolean retval;
+
+ error = NULL;
+ retval = g_key_file_get_boolean (keyfile, G_KEY_FILE_DESKTOP_GROUP,
+ key, &error);
+ if (error != NULL) {
+ retval = default_value;
+ g_error_free (error);
+ }
+
+ return retval;
+}
+
+void
+gsp_key_file_set_locale_string (GKeyFile *keyfile,
+ const gchar *key,
+ const gchar *value)
+{
+ const char *locale;
+ const char * const *langs_pointer;
+ int i;
+
+ if (value == NULL) {
+ value = "";
+ }
+
+ locale = NULL;
+ langs_pointer = g_get_language_names ();
+ for (i = 0; langs_pointer[i] != NULL; i++) {
+ /* find first without encoding */
+ if (strchr (langs_pointer[i], '.') == NULL) {
+ locale = langs_pointer[i];
+ break;
+ }
+ }
+
+ if (locale != NULL) {
+ g_key_file_set_locale_string (keyfile, G_KEY_FILE_DESKTOP_GROUP,
+ key, locale, value);
+ } else {
+ g_key_file_set_string (keyfile, G_KEY_FILE_DESKTOP_GROUP,
+ key, value);
+ }
+}
+
+void
+gsp_key_file_ensure_C_key (GKeyFile *keyfile,
+ const char *key)
+{
+ char *C_value;
+ char *buffer;
+
+ /* Make sure we set the "C" locale strings to the terms we set here.
+ * This is so that if the user logs into another locale they get their
+ * own description there rather then empty. It is not the C locale
+ * however, but the user created this entry herself so it's OK */
+ C_value = gsp_key_file_get_string (keyfile, key);
+ if (C_value == NULL || C_value [0] == '\0') {
+ buffer = gsp_key_file_get_locale_string (keyfile, key);
+ if (buffer) {
+ gsp_key_file_set_string (keyfile, key, buffer);
+ g_free (buffer);
+ }
+ }
+ g_free (C_value);
+}
diff --git a/capplet/gsp-keyfile.h b/capplet/gsp-keyfile.h
new file mode 100644
index 0000000..42b5c6e
--- /dev/null
+++ b/capplet/gsp-keyfile.h
@@ -0,0 +1,67 @@
+/*
+ * gsp-keyfile.h: GKeyFile extensions
+ *
+ * Copyright (C) 2008, 2009 Novell, Inc.
+ *
+ * Based on code from panel-keyfile.h (from mate-panel)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * Authors:
+ * Vincent Untz <[email protected]>
+ */
+
+#ifndef GSP_KEYFILE_H
+#define GSP_KEYFILE_H
+
+#include "glib.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GSP_KEY_FILE_DESKTOP_KEY_AUTOSTART_ENABLED "X-MATE-Autostart-enabled"
+
+void gsp_key_file_populate (GKeyFile *keyfile);
+
+gboolean gsp_key_file_to_file (GKeyFile *keyfile,
+ const gchar *path,
+ GError **error);
+
+gboolean gsp_key_file_get_boolean (GKeyFile *keyfile,
+ const gchar *key,
+ gboolean default_value);
+#define gsp_key_file_get_string(key_file, key) \
+ g_key_file_get_string (key_file, G_KEY_FILE_DESKTOP_GROUP, key, NULL)
+#define gsp_key_file_get_locale_string(key_file, key) \
+ g_key_file_get_locale_string(key_file, G_KEY_FILE_DESKTOP_GROUP, key, NULL, NULL)
+
+#define gsp_key_file_set_boolean(key_file, key, value) \
+ g_key_file_set_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, key, value)
+#define gsp_key_file_set_string(key_file, key, value) \
+ g_key_file_set_string (key_file, G_KEY_FILE_DESKTOP_GROUP, key, value)
+void gsp_key_file_set_locale_string (GKeyFile *keyfile,
+ const gchar *key,
+ const gchar *value);
+
+void gsp_key_file_ensure_C_key (GKeyFile *keyfile,
+ const char *key);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* GSP_KEYFILE_H */
diff --git a/capplet/main.c b/capplet/main.c
new file mode 100644
index 0000000..155b560
--- /dev/null
+++ b/capplet/main.c
@@ -0,0 +1,102 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ * main.c
+ * Copyright (C) 1999 Free Software Foundation, Inc.
+ * Copyright (C) 2008 Lucas Rocha.
+ *
+ * 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <config.h>
+
+#include <unistd.h>
+#include <stdlib.h>
+
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+
+#include <mateconf/mateconf-client.h>
+
+#include "gsm-properties-dialog.h"
+
+static gboolean show_version = FALSE;
+
+static GOptionEntry options[] = {
+ {"version", 0, 0, G_OPTION_ARG_NONE, &show_version, N_("Version of this application"), NULL},
+ {NULL, 0, 0, 0, NULL, NULL, NULL}
+};
+
+static void dialog_response(GsmPropertiesDialog* dialog, guint response_id, gpointer data)
+{
+ GdkScreen* screen;
+ GError* error;
+
+ if (response_id == GTK_RESPONSE_HELP)
+ {
+ screen = gtk_widget_get_screen(GTK_WIDGET (dialog));
+
+ error = NULL;
+ gtk_show_uri (screen, "ghelp:user-guide?gosstartsession-2",
+ gtk_get_current_event_time (), &error);
+
+ if (error != NULL)
+ {
+ GtkWidget* d = gtk_message_dialog_new(GTK_WINDOW(dialog), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", _("Could not display help document"));
+ gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(d), "%s", error->message);
+ g_error_free(error);
+
+ gtk_dialog_run(GTK_DIALOG (d));
+ gtk_widget_destroy(d);
+ }
+ }
+ else
+ {
+ gtk_widget_destroy(GTK_WIDGET (dialog));
+ gtk_main_quit();
+ }
+}
+
+int main(int argc, char* argv[])
+{
+ GError* error;
+ GtkWidget* dialog;
+
+ bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR);
+ bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
+ textdomain(GETTEXT_PACKAGE);
+
+ error = NULL;
+
+ if (!gtk_init_with_args(&argc, &argv, " - MATE Session Properties", options, GETTEXT_PACKAGE, &error))
+ {
+ g_warning("Unable to start: %s", error->message);
+ g_error_free(error);
+ return 1;
+ }
+
+ if (show_version)
+ {
+ g_print("%s %s\n", argv[0], VERSION);
+ return 0;
+ }
+
+ dialog = gsm_properties_dialog_new();
+ g_signal_connect(dialog, "response", G_CALLBACK(dialog_response), NULL);
+ gtk_widget_show(dialog);
+
+ gtk_main();
+
+ return 0;
+}
diff --git a/config.guess b/config.guess
new file mode 100755
index 0000000..666c5ad
--- /dev/null
+++ b/config.guess
@@ -0,0 +1,1511 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# Free Software Foundation, Inc.
+
+timestamp='2009-11-20'
+
+# This file 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.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Originally written by Per Bothner. Please send patches (context
+# diff format) to <[email protected]> and include a ChangeLog
+# entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub. If it succeeds, it prints the system name on stdout, and
+# exits with 0. Otherwise, it exits with 1.
+#
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <[email protected]>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# ([email protected] 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+case "${UNAME_MACHINE}" in
+ i?86)
+ test -z "$VENDOR" && VENDOR=pc
+ ;;
+ *)
+ test -z "$VENDOR" && VENDOR=unknown
+ ;;
+esac
+test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=suse
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently, or will in the future.
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ELF__
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # The OS release
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case "${UNAME_VERSION}" in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit ;;
+ *:OpenBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-${VENDOR}-openbsd${UNAME_RELEASE}
+ exit ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-${VENDOR}-ekkobsd${UNAME_RELEASE}
+ exit ;;
+ *:SolidBSD:*:*)
+ echo ${UNAME_MACHINE}-${VENDOR}-solidbsd${UNAME_RELEASE}
+ exit ;;
+ macppc:MirBSD:*:*)
+ echo powerpc-${VENDOR}-mirbsd${UNAME_RELEASE}
+ exit ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-${VENDOR}-mirbsd${UNAME_RELEASE}
+ exit ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE="alpha" ;;
+ "EV5 (21164)")
+ UNAME_MACHINE="alphaev5" ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE="alphaev56" ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE="alphapca56" ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE="alphapca57" ;;
+ "EV6 (21264)")
+ UNAME_MACHINE="alphaev6" ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE="alphaev67" ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE="alphaev69" ;;
+ "EV7 (21364)")
+ UNAME_MACHINE="alphaev7" ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE="alphaev79" ;;
+ esac
+ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ exit ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-${VENDOR}-sysv4
+ exit ;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-${VENDOR}-amigaos
+ exit ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-${VENDOR}-morphos
+ exit ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+ exit ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit ;;
+ arm:riscos:*:*|arm:RISCOS:*:*)
+ echo arm-${VENDOR}-riscos
+ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit ;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # [email protected] (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+ exit ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7; exit ;;
+ esac ;;
+ s390x:SunOS:*:*)
+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+ echo i386-pc-auroraux${UNAME_RELEASE}
+ exit ;;
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+ eval $set_cc_for_build
+ SUN_ARCH="i386"
+ # If there is a compiler, see if it is configured for 64-bit objects.
+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+ # This test works for both compilers.
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ SUN_ARCH="x86_64"
+ fi
+ fi
+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ exit ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-${VENDOR}-mint${UNAME_RELEASE}
+ exit ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+ exit ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+ exit ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+ exit ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c &&
+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`$dummy $dummyarg` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+ exit ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+ exit ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+ exit ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+ exit ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
+ then
+ echo m88k-dg-dgux${UNAME_RELEASE}
+ else
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ fi
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+ exit ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+ exit ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+ exit ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+ exit ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ exit ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+ exit ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ exit ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <sys/systemcfg.h>
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ then
+ echo "$SYSTEM_NAME"
+ else
+ echo rs6000-ibm-aix3.2.5
+ fi
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+ exit ;;
+ *:AIX:*:[456])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+ exit ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ exit ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+ exit ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+ exit ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+ exit ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
+ if [ ${HP_ARCH} = "hppa2.0w" ]
+ then
+ eval $set_cc_for_build
+
+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
+ # generating 64-bit code. GNU and HP use different nomenclature:
+ #
+ # $ CC_FOR_BUILD=cc ./config.guess
+ # => hppa2.0w-hp-hpux11.23
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+ # => hppa64-hp-hpux11.23
+
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+ grep -q __LP64__
+ then
+ HP_ARCH="hppa2.0w"
+ else
+ HP_ARCH="hppa64"
+ fi
+ fi
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+ exit ;;
+ 3050*:HI-UX:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <unistd.h>
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ echo unknown-hitachi-hiuxwe2
+ exit ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+ exit ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+ exit ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-${VENDOR}-osf1mk
+ else
+ echo ${UNAME_MACHINE}-${VENDOR}-osf1
+ fi
+ exit ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+ exit ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+ exit ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+ exit ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ *:UNICOS/mp:*:*)
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ 5000:UNIX_System_V:4.*:*)
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-${VENDOR}-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-${VENDOR}-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:FreeBSD:*:*)
+ case ${UNAME_MACHINE} in
+ pc98)
+ echo i386-${VENDOR}-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ amd64)
+ echo x86_64-${VENDOR}-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ *)
+ echo ${UNAME_MACHINE}-${VENDOR}-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ esac
+ exit ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit ;;
+ *:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit ;;
+ i*:windows32*:*)
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
+ exit ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit ;;
+ *:Interix*:*)
+ case ${UNAME_MACHINE} in
+ x86)
+ echo i586-pc-interix${UNAME_RELEASE}
+ exit ;;
+ authenticamd | genuineintel | EM64T)
+ echo x86_64-${VENDOR}-interix${UNAME_RELEASE}
+ exit ;;
+ IA64)
+ echo ia64-${VENDOR}-interix${UNAME_RELEASE}
+ exit ;;
+ esac ;;
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ echo i${UNAME_MACHINE}-pc-mks
+ exit ;;
+ 8664:Windows_NT:*)
+ echo x86_64-pc-mks
+ exit ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i586-pc-interix
+ exit ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+ exit ;;
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+ echo x86_64-${VENDOR}-cygwin
+ exit ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-${VENDOR}-cygwin
+ exit ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-${VENDOR}-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ *:GNU:*:*)
+ # the GNU system
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-${VENDOR}-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ echo ${UNAME_MACHINE}-${VENDOR}-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+ exit ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep -q ld.so.1
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu${LIBC}
+ exit ;;
+ arm*:Linux:*:*)
+ eval $set_cc_for_build
+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_EABI__
+ then
+ echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+ else
+ echo ${UNAME_MACHINE}-${VENDOR}-linux-gnueabi
+ fi
+ exit ;;
+ avr32*:Linux:*:*)
+ echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+ exit ;;
+ cris:Linux:*:*)
+ echo cris-axis-linux-gnu
+ exit ;;
+ crisv32:Linux:*:*)
+ echo crisv32-axis-linux-gnu
+ exit ;;
+ frv:Linux:*:*)
+ echo frv-${VENDOR}-linux-gnu
+ exit ;;
+ i*86:Linux:*:*)
+ LIBC=gnu
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #ifdef __dietlibc__
+ LIBC=dietlibc
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+ echo "${UNAME_MACHINE}-${VENDOR}-linux-${LIBC}"
+ exit ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+ exit ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+ exit ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+ exit ;;
+ mips:Linux:*:* | mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef ${UNAME_MACHINE}
+ #undef ${UNAME_MACHINE}el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=${UNAME_MACHINE}el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=${UNAME_MACHINE}
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+ test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux-gnu"; exit; }
+ ;;
+ or32:Linux:*:*)
+ echo or32-${VENDOR}-linux-gnu
+ exit ;;
+ padre:Linux:*:*)
+ echo sparc-${VENDOR}-linux-gnu
+ exit ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-${VENDOR}-linux-gnu
+ exit ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ PA7*) echo hppa1.1-${VENDOR}-linux-gnu ;;
+ PA8*) echo hppa2.0-${VENDOR}-linux-gnu ;;
+ *) echo hppa-${VENDOR}-linux-gnu ;;
+ esac
+ exit ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-${VENDOR}-linux-gnu
+ exit ;;
+ ppc:Linux:*:*)
+ echo powerpc-${VENDOR}-linux-gnu
+ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux
+ exit ;;
+ sh64*:Linux:*:*)
+ echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+ exit ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+ exit ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+ exit ;;
+ vax:Linux:*:*)
+ echo ${UNAME_MACHINE}-dec-linux-gnu
+ exit ;;
+ x86_64:Linux:*:*)
+ echo x86_64-${VENDOR}-linux-gnu
+ exit ;;
+ xtensa*:Linux:*:*)
+ echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+ exit ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+ exit ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+ exit ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-${VENDOR}-stop
+ exit ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-${VENDOR}-atheos
+ exit ;;
+ i*86:syllable:*:*)
+ echo ${UNAME_MACHINE}-pc-syllable
+ exit ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+ echo i386-${VENDOR}-lynxos${UNAME_RELEASE}
+ exit ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+ exit ;;
+ i*86:*:5:[678]*)
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-${VENDOR}-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ exit ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i586.
+ # Note: whatever this is, it MUST be the same as what config.sub
+ # prints for the "djgpp" host, or else GDB configury will decide that
+ # this is a cross-build.
+ echo i586-pc-msdosdjgpp
+ exit ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+ exit ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-${VENDOR}-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+ exit ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+ exit ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+ exit ;;
+ M68*:*:R3V[5678]*:*)
+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4; exit; } ;;
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+ OS_REL='.3'
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-${VENDOR}-lynxos${UNAME_RELEASE}
+ exit ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-${VENDOR}-lynxos${UNAME_RELEASE}
+ exit ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-${VENDOR}-lynxos${UNAME_RELEASE}
+ exit ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+ echo powerpc-${VENDOR}-lynxos${UNAME_RELEASE}
+ exit ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+ exit ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+ exit ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ echo ${UNAME_MACHINE}-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+ exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ echo i586-unisys-sysv4
+ exit ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <[email protected]>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit ;;
+ *:*:*:FTX*)
+ echo i860-stratus-sysv4
+ exit ;;
+ i*86:VOS:*:*)
+ echo ${UNAME_MACHINE}-stratus-vos
+ exit ;;
+ *:VOS:*:*)
+ echo hppa1.1-stratus-vos
+ exit ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+ exit ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-${VENDOR}-sysv${UNAME_RELEASE}
+ fi
+ exit ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit ;;
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
+ echo i586-pc-haiku
+ exit ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-7:SUPER-UX:*:*)
+ echo sx7-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8:SUPER-UX:*:*)
+ echo sx8-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8R:SUPER-UX:*:*)
+ echo sx8r-nec-superux${UNAME_RELEASE}
+ exit ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ exit ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ case $UNAME_PROCESSOR in
+ i386)
+ eval $set_cc_for_build
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ UNAME_PROCESSOR="x86_64"
+ fi
+ fi ;;
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ exit ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ exit ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit ;;
+ NSE-?:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+ exit ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+ exit ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ exit ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+ if test "$cputype" = "386"; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+ fi
+ echo ${UNAME_MACHINE}-${VENDOR}-plan9
+ exit ;;
+ *:TOPS-10:*:*)
+ echo pdp10-${VENDOR}-tops10
+ exit ;;
+ *:TENEX:*:*)
+ echo pdp10-${VENDOR}-tenex
+ exit ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+ exit ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+ exit ;;
+ *:TOPS-20:*:*)
+ echo pdp10-${VENDOR}-tops20
+ exit ;;
+ *:ITS:*:*)
+ echo pdp10-${VENDOR}-its
+ exit ;;
+ SEI:*:*:SEIUX)
+ echo mips-sei-seiux${UNAME_RELEASE}
+ exit ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-${VENDOR}-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms ; exit ;;
+ I*) echo ia64-dec-vms ; exit ;;
+ V*) echo vax-dec-vms ; exit ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+ exit ;;
+ i*86:skyos:*:*)
+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+ exit ;;
+ i*86:rdos:*:*)
+ echo ${UNAME_MACHINE}-pc-rdos
+ exit ;;
+ i*86:AROS:*:*)
+ echo ${UNAME_MACHINE}-pc-aros
+ exit ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+ printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+ printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+# include <sys/param.h>
+# if defined (BSD)
+# if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+# else
+# if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# endif
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# else
+ printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+ exit ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit ;;
+ c34*)
+ echo c34-convex-bsd
+ exit ;;
+ c38*)
+ echo c38-convex-bsd
+ exit ;;
+ c4*)
+ echo c4-convex-bsd
+ exit ;;
+ esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <[email protected]> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/config.h.in b/config.h.in
new file mode 100644
index 0000000..126a003
--- /dev/null
+++ b/config.h.in
@@ -0,0 +1,116 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define if IPV6 is supported */
+#undef ENABLE_IPV6
+
+/* always defined to indicate that i18n is enabled */
+#undef ENABLE_NLS
+
+/* The gettext translation domain */
+#undef GETTEXT_PACKAGE
+
+/* Define to 1 if you have the `bind_textdomain_codeset' function. */
+#undef HAVE_BIND_TEXTDOMAIN_CODESET
+
+/* Define to 1 if you have the `dcgettext' function. */
+#undef HAVE_DCGETTEXT
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the <execinfo.h> header file. */
+#undef HAVE_EXECINFO_H
+
+/* Define if the GNU gettext() function is already present or preinstalled. */
+#undef HAVE_GETTEXT
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define if your <locale.h> file defines LC_MESSAGES. */
+#undef HAVE_LC_MESSAGES
+
+/* Define to 1 if you have the <locale.h> header file. */
+#undef HAVE_LOCALE_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <syslog.h> header file. */
+#undef HAVE_SYSLOG_H
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#undef HAVE_SYS_PARAM_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <tcpd.h> header file. */
+#undef HAVE_TCPD_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if you have the <X11/Xtrans/Xtrans.h> header file. */
+#undef HAVE_X11_XTRANS_XTRANS_H
+
+/* Have the Render X extension */
+#undef HAVE_XRENDER
+
+/* Have the SYNC extension library */
+#undef HAVE_XSYNC
+
+/* Have the XTest extension library */
+#undef HAVE_XTEST
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#undef LT_OBJDIR
+
+/* Enable additional debugging at the expense of performance and size */
+#undef MATE_ENABLE_DEBUG
+
+/* 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 home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Version number of package */
+#undef VERSION
+
+/* Define to 1 if the X Window System is missing or not being used. */
+#undef X_DISPLAY_MISSING
diff --git a/config.sub b/config.sub
new file mode 100755
index 0000000..2a55a50
--- /dev/null
+++ b/config.sub
@@ -0,0 +1,1705 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# Free Software Foundation, Inc.
+
+timestamp='2009-11-20'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine. It does not imply ALL GNU software can.
+#
+# This file 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.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Please send patches to <[email protected]>. Submit a context
+# diff and a properly formatted GNU ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support. The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+ $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <[email protected]>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help"
+ exit 1 ;;
+
+ *local*)
+ # First pass through any local machine types.
+ echo $1
+ exit ;;
+
+ * )
+ break ;;
+ esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+ exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+ exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+ kopensolaris*-gnu* | \
+ storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+ *)
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+ if [ $basic_machine != $1 ]
+ then os=`echo $1 | sed 's/.*-/-/'`
+ else os=; fi
+ ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work. We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+ -sun*os*)
+ # Prevent following clause from handling this invalid input.
+ ;;
+ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+ -apple | -axis | -knuth | -cray | -microblaze)
+ os=
+ basic_machine=$1
+ ;;
+ -bluegene*)
+ os=-cnk
+ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+ basic_machine=$1
+ ;;
+ -scout)
+ ;;
+ -wrs)
+ os=-vxworks
+ basic_machine=$1
+ ;;
+ -chorusos*)
+ os=-chorusos
+ basic_machine=$1
+ ;;
+ -chorusrdb)
+ os=-chorusrdb
+ basic_machine=$1
+ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+ -sco6)
+ os=-sco5v6
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco5)
+ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco4)
+ os=-sco3.2v4
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2v[4-9]*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco*)
+ os=-sco3.2v2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -udk*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -isc)
+ os=-isc2.2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -clix*)
+ basic_machine=clipper-intergraph
+ ;;
+ -isc*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -lynx*)
+ os=-lynxos
+ ;;
+ -ptx*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ ;;
+ -windowsnt*)
+ os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ ;;
+ -psos*)
+ os=-psos
+ ;;
+ -mint | -mint[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+ # Recognize the basic CPU types without company name.
+ # Some are omitted here because they have special meanings below.
+ 1750a | 580 \
+ | a29k \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+ | bfin \
+ | c4x | clipper \
+ | d10v | d30v | dlx | dsp16xx \
+ | fido | fr30 | frv \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | i370 | i860 | i960 | ia64 \
+ | ip2k | iq2000 \
+ | lm32 \
+ | m32c | m32r | m32rle | m68000 | m68k | m88k \
+ | maxq | mb | microblaze | mcore | mep | metag \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
+ | moxie \
+ | mt \
+ | msp430 \
+ | nios | nios2 \
+ | ns16k | ns32k \
+ | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ | pyramid \
+ | rx \
+ | score \
+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+ | spu | strongarm \
+ | tahoe | thumb | tic4x | tic80 | tron \
+ | ubicom32 \
+ | v850 | v850e \
+ | we32k \
+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+ | z8k | z80)
+ basic_machine=$basic_machine-unknown
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12 | picochip)
+ # Motorola 68HC11/12.
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ ;;
+ ms1)
+ basic_machine=mt-unknown
+ ;;
+
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ basic_machine=$basic_machine-pc
+ ;;
+ # Object if more than one company name word.
+ *-*-*)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+ # Recognize the basic CPU types with company name.
+ 580-* \
+ | a29k-* \
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | avr-* | avr32-* \
+ | bfin-* | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+ | clipper-* | craynv-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+ | elxsi-* \
+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* | iq2000-* \
+ | lm32-* \
+ | m32c-* | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+ | mips64octeon-* | mips64octeonel-* \
+ | mips64orion-* | mips64orionel-* \
+ | mips64r5900-* | mips64r5900el-* \
+ | mips64vr-* | mips64vrel-* \
+ | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
+ | mips64vr5900-* | mips64vr5900el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipstx39-* | mipstx39el-* \
+ | mmix-* \
+ | mt-* \
+ | msp430-* \
+ | nios-* | nios2-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+ | pyramid-* \
+ | romp-* | rs6000-* | rx-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+ | sparclite-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+ | tahoe-* | thumb-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
+ | tron-* \
+ | ubicom32-* \
+ | v850-* | v850e-* | vax-* \
+ | we32k-* \
+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+ | xstormy16-* | xtensa*-* \
+ | ymp-* \
+ | z8k-* | z80-*)
+ ;;
+ # Recognize the basic CPU types without company name, with glob match.
+ xtensa*)
+ basic_machine=$basic_machine-unknown
+ ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+ 386bsd)
+ basic_machine=i386-unknown
+ os=-bsd
+ ;;
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ basic_machine=m68000-att
+ ;;
+ 3b*)
+ basic_machine=we32k-att
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ abacus)
+ basic_machine=abacus-unknown
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=-scout
+ ;;
+ alliant | fx80)
+ basic_machine=fx80-alliant
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=-bsd
+ ;;
+ amd64)
+ basic_machine=x86_64-pc
+ ;;
+ amd64-*)
+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=-sysv
+ ;;
+ amiga | amiga-*)
+ basic_machine=m68k-unknown
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=-amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=-sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=-sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=-bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+ os=-aros
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=-dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+ os=-linux
+ ;;
+ blackfin-*)
+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ bluegene*)
+ basic_machine=powerpc-ibm
+ os=-cnk
+ ;;
+ c90)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+ os=-cegcc
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=-bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=-bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=-bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=-bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=-bsd
+ ;;
+ cray | j90)
+ basic_machine=j90-cray
+ os=-unicos
+ ;;
+ craynv)
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+ cr16)
+ basic_machine=cr16-unknown
+ os=-elf
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ ;;
+ crisv32 | crisv32-* | etraxfs*)
+ basic_machine=crisv32-axis
+ ;;
+ cris | cris-* | etrax*)
+ basic_machine=cris-axis
+ ;;
+ crx)
+ basic_machine=crx-unknown
+ os=-elf
+ ;;
+ da30 | da30-*)
+ basic_machine=m68k-da30
+ ;;
+ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ ;;
+ decsystem10* | dec10*)
+ basic_machine=pdp10-dec
+ os=-tops10
+ ;;
+ decsystem20* | dec20*)
+ basic_machine=pdp10-dec
+ os=-tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+ basic_machine=m68k-motorola
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=-sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+ os=-dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+ ;;
+ dpx20 | dpx20-*)
+ basic_machine=rs6000-bull
+ os=-bosx
+ ;;
+ dpx2* | dpx2*-bull)
+ basic_machine=m68k-bull
+ os=-sysv3
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=-ebmon
+ ;;
+ elxsi)
+ basic_machine=elxsi-elxsi
+ os=-bsd
+ ;;
+ encore | umax | mmax)
+ basic_machine=ns32k-encore
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=-ose
+ ;;
+ fx2800)
+ basic_machine=i860-alliant
+ ;;
+ genix)
+ basic_machine=ns32k-ns
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=-sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=-go32
+ ;;
+ h3050r* | hiux*)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=-hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=-xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=-hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=-sysv3
+ ;;
+ hp300-*)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=-bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=-hpux
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+ basic_machine=m68000-hp
+ ;;
+ hp9k3[2-9][0-9])
+ basic_machine=m68k-hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hppa-next)
+ os=-nextstep3
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=-osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=-proelf
+ ;;
+ i370-ibm* | ibm*)
+ basic_machine=i370-ibm
+ ;;
+# I'm not sure what "Sysv32" means. Should this be sysv3.2?
+ i*86v32)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
+ ;;
+ i*86v4*)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv4
+ ;;
+ i*86v)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv
+ ;;
+ i*86sol2)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-solaris2
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=-mach
+ ;;
+ i386-vsta | vsta)
+ basic_machine=i386-unknown
+ os=-vsta
+ ;;
+ iris | iris4d)
+ basic_machine=mips-sgi
+ case $os in
+ -irix*)
+ ;;
+ *)
+ os=-irix4
+ ;;
+ esac
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ os=-linux
+ ;;
+ m68knommu-*)
+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ m88k-omron*)
+ basic_machine=m88k-omron
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=-sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
+ microblaze)
+ basic_machine=microblaze-xilinx
+ ;;
+ mingw32)
+ basic_machine=i386-pc
+ os=-mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ os=-mingw32ce
+ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+ mips3*-*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ ;;
+ mips3*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=-morphos
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=-msdos
+ ;;
+ ms1-*)
+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=-sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-unknown
+ os=-netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=-linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=-newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=-newsos
+ ;;
+ news-3600 | risc-news)
+ basic_machine=mips-sony
+ os=-newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=-sysv
+ ;;
+ next | m*-next )
+ basic_machine=m68k-next
+ case $os in
+ -nextstep* )
+ ;;
+ -ns2*)
+ os=-nextstep2
+ ;;
+ *)
+ os=-nextstep3
+ ;;
+ esac
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=-cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=-cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=-nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=-mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=-nonstopux
+ ;;
+ np1)
+ basic_machine=np1-gould
+ ;;
+ nsr-tandem)
+ basic_machine=nsr-tandem
+ ;;
+ op50n-* | op60c-*)
+ basic_machine=hppa1.1-oki
+ os=-proelf
+ ;;
+ openrisc | openrisc-*)
+ basic_machine=or32-unknown
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=-os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=-ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=-os68k
+ ;;
+ pa-hitachi)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=-osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+ os=-linux
+ ;;
+ parisc-*)
+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ pbd)
+ basic_machine=sparc-tti
+ ;;
+ pbb)
+ basic_machine=m68k-tti
+ ;;
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
+ ;;
+ pc98)
+ basic_machine=i386-pc
+ ;;
+ pc98-*)
+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentium | p5 | k5 | k6 | nexgen | viac3)
+ basic_machine=i586-pc
+ ;;
+ pentiumpro | p6 | 6x86 | athlon | athlon_*)
+ basic_machine=i686-pc
+ ;;
+ pentiumii | pentium2 | pentiumiii | pentium3)
+ basic_machine=i686-pc
+ ;;
+ pentium4)
+ basic_machine=i786-pc
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumpro-* | p6-* | 6x86-* | athlon-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentium4-*)
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pn)
+ basic_machine=pn-gould
+ ;;
+ power) basic_machine=power-ibm
+ ;;
+ ppc) basic_machine=powerpc-unknown
+ ;;
+ ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppcle | powerpclittle | ppc-le | powerpc-little)
+ basic_machine=powerpcle-unknown
+ ;;
+ ppcle-* | powerpclittle-*)
+ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64) basic_machine=powerpc64-unknown
+ ;;
+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ basic_machine=powerpc64le-unknown
+ ;;
+ ppc64le-* | powerpc64little-*)
+ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ps2)
+ basic_machine=i386-ibm
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ os=-pw32
+ ;;
+ rdos)
+ basic_machine=i386-pc
+ os=-rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ rm[46]00)
+ basic_machine=mips-siemens
+ ;;
+ rtpc | rtpc-*)
+ basic_machine=romp-ibm
+ ;;
+ s390 | s390-*)
+ basic_machine=s390-ibm
+ ;;
+ s390x | s390x-*)
+ basic_machine=s390x-ibm
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ sb1)
+ basic_machine=mipsisa64sb1-unknown
+ ;;
+ sb1el)
+ basic_machine=mipsisa64sb1el-unknown
+ ;;
+ sde)
+ basic_machine=mipsisa32-sde
+ os=-elf
+ ;;
+ sei)
+ basic_machine=mips-sei
+ os=-seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ ;;
+ sh)
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
+ sh5el)
+ basic_machine=sh5le-unknown
+ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+ sparclite-wrs | simso-wrs)
+ basic_machine=sparclite-wrs
+ os=-vxworks
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=-sysv2
+ ;;
+ spur)
+ basic_machine=spur-unknown
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=-sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=-sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=-sunos4
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=-sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=-sunos4
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=-sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=-sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=-solaris2
+ ;;
+ sun3 | sun3-*)
+ basic_machine=m68k-sun
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=-unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=-dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ os=-unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ os=-unicos
+ ;;
+ tic54x | c54x*)
+ basic_machine=tic54x-unknown
+ os=-coff
+ ;;
+ tic55x | c55x*)
+ basic_machine=tic55x-unknown
+ os=-coff
+ ;;
+ tic6x | c6x*)
+ basic_machine=tic6x-unknown
+ os=-coff
+ ;;
+ tile*)
+ basic_machine=tile-unknown
+ os=-linux-gnu
+ ;;
+ tx39)
+ basic_machine=mipstx39-unknown
+ ;;
+ tx39el)
+ basic_machine=mipstx39el-unknown
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=-tops20
+ ;;
+ tower | tower-32)
+ basic_machine=m68k-ncr
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=-tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=-sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=-none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=-sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=-vms
+ ;;
+ vpp*|vx|vx-*)
+ basic_machine=f301-fujitsu
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=-vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=-vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=-vxworks
+ ;;
+ w65*)
+ basic_machine=w65-wdc
+ os=-none
+ ;;
+ w89k-*)
+ basic_machine=hppa1.1-winbond
+ os=-proelf
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ os=-mingw32
+ ;;
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=-unicos
+ ;;
+ z8k-*-coff)
+ basic_machine=z8k-unknown
+ os=-sim
+ ;;
+ z80-*-coff)
+ basic_machine=z80-unknown
+ os=-sim
+ ;;
+ none)
+ basic_machine=none-none
+ os=-none
+ ;;
+
+# Here we handle the default manufacturer of certain CPU types. It is in
+# some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ basic_machine=hppa1.1-winbond
+ ;;
+ op50n)
+ basic_machine=hppa1.1-oki
+ ;;
+ op60c)
+ basic_machine=hppa1.1-oki
+ ;;
+ romp)
+ basic_machine=romp-ibm
+ ;;
+ mmix)
+ basic_machine=mmix-knuth
+ ;;
+ rs6000)
+ basic_machine=rs6000-ibm
+ ;;
+ vax)
+ basic_machine=vax-dec
+ ;;
+ pdp10)
+ # there are many clones, so DEC is not a safe bet
+ basic_machine=pdp10-unknown
+ ;;
+ pdp11)
+ basic_machine=pdp11-dec
+ ;;
+ we32k)
+ basic_machine=we32k-att
+ ;;
+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+ basic_machine=sh-unknown
+ ;;
+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+ basic_machine=cydra-cydrome
+ ;;
+ orion)
+ basic_machine=orion-highlevel
+ ;;
+ orion105)
+ basic_machine=clipper-highlevel
+ ;;
+ mac | mpw | mac-mpw)
+ basic_machine=m68k-apple
+ ;;
+ pmac | pmac-mpw)
+ basic_machine=powerpc-apple
+ ;;
+ *-unknown)
+ # Make sure to match an already-canonicalized machine name.
+ ;;
+ *)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+ *-digital*)
+ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+ ;;
+ *-commodore*)
+ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ ;;
+ *)
+ ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+ # First match some system type aliases
+ # that might get confused with valid system types.
+ # -solaris* is a basic system type, with this one exception.
+ -auroraux)
+ os=-auroraux
+ ;;
+ -solaris1 | -solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ ;;
+ -solaris)
+ os=-solaris2
+ ;;
+ -svr4*)
+ os=-sysv4
+ ;;
+ -unixware*)
+ os=-sysv4.2uw
+ ;;
+ -gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ ;;
+ # First accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST END IN A *, to match a version number.
+ # -sysv* is not here because it comes later, after sysvr4.
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+ | -sym* | -kopensolaris* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+ | -aos* | -aros* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+ | -openbsd* | -solidbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -chorusos* | -chorusrdb* | -cegcc* \
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+ | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+ case $basic_machine in
+ x86-* | i*86-*)
+ ;;
+ *)
+ os=-nto$os
+ ;;
+ esac
+ ;;
+ -nto-qnx*)
+ ;;
+ -nto*)
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ ;;
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ ;;
+ -mac*)
+ os=`echo $os | sed -e 's|mac|macos|'`
+ ;;
+ -linux-dietlibc)
+ os=-linux-dietlibc
+ ;;
+ -linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
+ -sunos5*)
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ ;;
+ -sunos6*)
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ ;;
+ -opened*)
+ os=-openedition
+ ;;
+ -os400*)
+ os=-os400
+ ;;
+ -wince*)
+ os=-wince
+ ;;
+ -osfrose*)
+ os=-osfrose
+ ;;
+ -osf*)
+ os=-osf
+ ;;
+ -utek*)
+ os=-bsd
+ ;;
+ -dynix*)
+ os=-bsd
+ ;;
+ -acis*)
+ os=-aos
+ ;;
+ -atheos*)
+ os=-atheos
+ ;;
+ -syllable*)
+ os=-syllable
+ ;;
+ -386bsd)
+ os=-bsd
+ ;;
+ -ctix* | -uts*)
+ os=-sysv
+ ;;
+ -nova*)
+ os=-rtmk-nova
+ ;;
+ -ns2 )
+ os=-nextstep2
+ ;;
+ -nsk*)
+ os=-nsk
+ ;;
+ # Preserve the version number of sinix5.
+ -sinix5.*)
+ os=`echo $os | sed -e 's|sinix|sysv|'`
+ ;;
+ -sinix*)
+ os=-sysv4
+ ;;
+ -tpf*)
+ os=-tpf
+ ;;
+ -triton*)
+ os=-sysv3
+ ;;
+ -oss*)
+ os=-sysv3
+ ;;
+ -svr4)
+ os=-sysv4
+ ;;
+ -svr3)
+ os=-sysv3
+ ;;
+ -sysvr4)
+ os=-sysv4
+ ;;
+ # This must come after -sysvr4.
+ -sysv*)
+ ;;
+ -ose*)
+ os=-ose
+ ;;
+ -es1800*)
+ os=-ose
+ ;;
+ -xenix)
+ os=-xenix
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ os=-mint
+ ;;
+ -aros*)
+ os=-aros
+ ;;
+ -kaos*)
+ os=-kaos
+ ;;
+ -zvmoe)
+ os=-zvmoe
+ ;;
+ -dicos*)
+ os=-dicos
+ ;;
+ -none)
+ ;;
+ *)
+ # Get rid of the `-' at the beginning of $os.
+ os=`echo $os | sed 's/[^-]*-//'`
+ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system. Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+ score-*)
+ os=-elf
+ ;;
+ spu-*)
+ os=-elf
+ ;;
+ *-acorn)
+ os=-riscix1.2
+ ;;
+ arm*-rebel)
+ os=-linux
+ ;;
+ arm*-semi)
+ os=-aout
+ ;;
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=-tops20
+ ;;
+ pdp11-*)
+ os=-none
+ ;;
+ *-dec | vax-*)
+ os=-ultrix4.2
+ ;;
+ m68*-apollo)
+ os=-domain
+ ;;
+ i386-sun)
+ os=-sunos4.0.2
+ ;;
+ m68000-sun)
+ os=-sunos3
+ # This also exists in the configure program, but was not the
+ # default.
+ # os=-sunos4
+ ;;
+ m68*-cisco)
+ os=-aout
+ ;;
+ mep-*)
+ os=-elf
+ ;;
+ mips*-cisco)
+ os=-elf
+ ;;
+ mips*-*)
+ os=-elf
+ ;;
+ or32-*)
+ os=-coff
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=-sysv3
+ ;;
+ sparc-* | *-sun)
+ os=-sunos4.1.1
+ ;;
+ *-be)
+ os=-beos
+ ;;
+ *-haiku)
+ os=-haiku
+ ;;
+ *-ibm)
+ os=-aix
+ ;;
+ *-knuth)
+ os=-mmixware
+ ;;
+ *-wec)
+ os=-proelf
+ ;;
+ *-winbond)
+ os=-proelf
+ ;;
+ *-oki)
+ os=-proelf
+ ;;
+ *-hp)
+ os=-hpux
+ ;;
+ *-hitachi)
+ os=-hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+ os=-sysv
+ ;;
+ *-cbm)
+ os=-amigaos
+ ;;
+ *-dg)
+ os=-dgux
+ ;;
+ *-dolphin)
+ os=-sysv3
+ ;;
+ m68k-ccur)
+ os=-rtu
+ ;;
+ m88k-omron*)
+ os=-luna
+ ;;
+ *-next )
+ os=-nextstep
+ ;;
+ *-sequent)
+ os=-ptx
+ ;;
+ *-crds)
+ os=-unos
+ ;;
+ *-ns)
+ os=-genix
+ ;;
+ i370-*)
+ os=-mvs
+ ;;
+ *-next)
+ os=-nextstep3
+ ;;
+ *-gould)
+ os=-sysv
+ ;;
+ *-highlevel)
+ os=-bsd
+ ;;
+ *-encore)
+ os=-bsd
+ ;;
+ *-sgi)
+ os=-irix
+ ;;
+ *-siemens)
+ os=-sysv4
+ ;;
+ *-masscomp)
+ os=-rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+ os=-uxpv
+ ;;
+ *-rom68k)
+ os=-coff
+ ;;
+ *-*bug)
+ os=-coff
+ ;;
+ *-apple)
+ os=-macos
+ ;;
+ *-atari*)
+ os=-mint
+ ;;
+ *)
+ os=-none
+ ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer. We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+ *-unknown)
+ case $os in
+ -riscix*)
+ vendor=acorn
+ ;;
+ -sunos*)
+ vendor=sun
+ ;;
+ -cnk*|-aix*)
+ vendor=ibm
+ ;;
+ -beos*)
+ vendor=be
+ ;;
+ -hpux*)
+ vendor=hp
+ ;;
+ -mpeix*)
+ vendor=hp
+ ;;
+ -hiux*)
+ vendor=hitachi
+ ;;
+ -unos*)
+ vendor=crds
+ ;;
+ -dgux*)
+ vendor=dg
+ ;;
+ -luna*)
+ vendor=omron
+ ;;
+ -genix*)
+ vendor=ns
+ ;;
+ -mvs* | -opened*)
+ vendor=ibm
+ ;;
+ -os400*)
+ vendor=ibm
+ ;;
+ -ptx*)
+ vendor=sequent
+ ;;
+ -tpf*)
+ vendor=ibm
+ ;;
+ -vxsim* | -vxworks* | -windiss*)
+ vendor=wrs
+ ;;
+ -aux*)
+ vendor=apple
+ ;;
+ -hms*)
+ vendor=hitachi
+ ;;
+ -mpw* | -macos*)
+ vendor=apple
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ vendor=atari
+ ;;
+ -vos*)
+ vendor=stratus
+ ;;
+ esac
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ ;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..14dafcd
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,390 @@
+AC_INIT([mate-session], [2011.11.16], [https://github.com/perberos/mate-desktop-environment])
+AC_CONFIG_SRCDIR([mate-session])
+AC_CONFIG_HEADERS([config.h])
+
+AM_INIT_AUTOMAKE([1.9 no-dist-gzip dist-bzip2])
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+AC_CONFIG_MACRO_DIR([m4])
+
+AM_MAINTAINER_MODE
+
+MATE_COMMON_INIT
+MATE_DEBUG_CHECK
+
+IT_PROG_INTLTOOL([0.40.0])
+
+AC_ISC_POSIX
+AC_PROG_CC
+AC_STDC_HEADERS
+AM_PROG_LIBTOOL
+AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
+
+dnl make sure we keep ACLOCAL_FLAGS around for maintainer builds to work
+AC_SUBST(ACLOCAL_AMFLAGS, "\${ACLOCAL_FLAGS}")
+
+MATE_MAINTAINER_MODE_DEFINES
+
+MATE_COMPILE_WARNINGS(maximum)
+
+AC_ARG_ENABLE(deprecations,
+ [AC_HELP_STRING([--enable-deprecations],
+ [warn about deprecated usages @<:@default=no@:>@])],,
+ [enable_deprecations=no])
+
+if test "x$enable_deprecations" = "xyes"; then
+ DISABLE_DEPRECATED_CFLAGS=$DISABLE_DEPRECATED
+ AC_SUBST([DISABLE_DEPRECATED_CFLAGS])
+fi
+
+AC_MSG_CHECKING([which gtk+ version to compile against])
+AC_ARG_WITH([gtk],
+ [AS_HELP_STRING([--with-gtk=2.0|3.0],[which gtk+ version to compile against (default: 2.0)])],
+ [case "$with_gtk" in
+ 2.0|3.0) ;;
+ *) AC_MSG_ERROR([invalid gtk version specified]) ;;
+ esac],
+ [with_gtk=2.0])
+AC_MSG_RESULT([$with_gtk])
+
+GLIB_REQUIRED=2.16.0
+DBUS_GLIB_REQUIRED=0.76
+UPOWER_REQUIRED=0.9.0
+
+case "$with_gtk" in
+ 2.0) GTK_API_VERSION=2.0
+ GTK_REQUIRED=2.14.0
+ ;;
+ 3.0) GTK_API_VERSION=3.0
+ GTK_REQUIRED=2.90.0
+ ;;
+esac
+
+dnl ====================================================================
+dnl Dependency Checks
+dnl ====================================================================
+PKG_PROG_PKG_CONFIG()
+
+PKG_CHECK_MODULES(MATE_SESSION,
+ glib-2.0 >= $GLIB_REQUIRED
+ gio-2.0 >= $GLIB_REQUIRED
+ gtk+-$GTK_API_VERSION >= $GTK_REQUIRED
+ dbus-glib-1 >= $DBUS_GLIB_REQUIRED
+ upower-glib >= $UPOWER_REQUIRED
+)
+
+PKG_CHECK_MODULES(SESSION_PROPERTIES,
+ glib-2.0 >= $GLIB_REQUIRED
+ gtk+-$GTK_API_VERSION >= $GTK_REQUIRED
+)
+
+PKG_CHECK_MODULES(SM, sm)
+PKG_CHECK_MODULES(ICE, ice)
+PKG_CHECK_MODULES(XEXT, xext xau)
+
+PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1 >= $DBUS_GLIB_REQUIRED)
+PKG_CHECK_MODULES(MATECONF, mateconf-2.0)
+
+PKG_CHECK_MODULES(EGG_SMCLIENT, gtk+-$GTK_API_VERSION)
+
+
+dnl ====================================================================
+dnl Option to set the default window manager
+dnl ====================================================================
+AC_ARG_WITH(default-wm,
+ [AC_HELP_STRING([--with-default-wm],
+ [Specify the default window manager @<:@default=marco@:>@])],,
+ [with_default_wm="marco"])
+
+DEFAULT_WM=$with_default_wm
+AC_SUBST(DEFAULT_WM)
+AM_CONDITIONAL(USE_MATE_WM, test x$with_default_wm = xmate-wm)
+
+dnl ====================================================================
+dnl MateConf Checks
+dnl ====================================================================
+AC_PATH_PROG(MATECONFTOOL, mateconftool-2, no)
+if test x"$MATECONFTOOL" = xno; then
+ AC_MSG_ERROR([mateconftool-2 executable not found in your path - should be installed with MateConf])
+fi
+
+AM_MATECONF_SOURCE_2
+
+MATECONF_SERVERDIR=`$PKG_CONFIG --variable=mateconf_serverdir mateconf-2.0`
+old_path=$PATH
+if test x"$MATECONF_SERVERDIR" != x; then
+ PATH=$MATECONF_SERVERDIR:$PATH
+fi
+
+AC_PATH_PROG(MATECONF_SANITY_CHECK, mateconf-sanity-check-2, no)
+if test x"$MATECONF_SANITY_CHECK" = xno; then
+ AC_MSG_ERROR([mateconf-sanity-check-2 executable not found in your path - should be installed with MateConf])
+fi
+
+AC_SUBST(MATECONF_SANITY_CHECK)
+PATH=$old_path
+
+dnl ====================================================================
+dnl X development libraries check
+dnl ====================================================================
+
+# If Pango included the shared library dependencies from X11 in
+# the pkg-config output, then we use that (to avoid duplicates).
+# but if they were omitted to avoid binary compatibility problems
+# then we need to repeat the checks.
+
+if $PKG_CONFIG --exists pangoxft ; then
+ PANGO_PACKAGES="pangox pangoxft"
+else
+ PANGO_PACKAGES="pangox"
+fi
+
+x_libs="`$PKG_CONFIG --libs $PANGO_PACKAGES`"
+case x_libs in
+ *-lX11*) pango_omitted_x_deps=no ;;
+ *) pango_omitted_x_deps=yes ;;
+esac
+
+if test $pango_omitted_x_deps = yes ; then
+ AC_PATH_XTRA
+
+ if test x$no_x = xyes ; then
+ AC_MSG_ERROR([X development libraries not found])
+ else
+ X_LIBS="$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"
+ fi
+fi
+
+AC_CHECK_LIB(Xau, XauFileName, [X_LIBS="$X_LIBS -lXau"],
+ [AC_MSG_ERROR([
+*** Can't find the Xauth library. It is needed to compile mate-session.])],
+ $X_LIBS)
+
+AC_SUBST(X_LIBS)
+
+dnl ====================================================================
+dnl Check for XSync extension
+dnl ====================================================================
+
+have_xsync=no
+AC_CHECK_HEADER(X11/extensions/sync.h, [have_xsync=yes],,
+ [#include <X11/Xlib.h>])
+if test "$have_xsync" = yes; then
+ AC_DEFINE(HAVE_XSYNC, 1, [Have the SYNC extension library])
+fi
+
+dnl ====================================================================
+dnl Check for XTest extension
+dnl ====================================================================
+
+have_xtest=no
+PKG_CHECK_MODULES(XTEST, xtst, have_xtest=yes, have_xtest=no)
+if test "$have_xtest" = yes; then
+ AC_DEFINE(HAVE_XTEST, 1, [Have the XTest extension library])
+fi
+AC_SUBST(HAVE_XTEST)
+AC_SUBST(XTEST_CFLAGS)
+AC_SUBST(XTEST_LIBS)
+
+dnl ====================================================================
+dnl XRender checks
+dnl ====================================================================
+
+PKG_CHECK_MODULES(XRENDER, xrender, have_xrender=yes, have_xrender=no)
+AM_CONDITIONAL(HAVE_XRENDER, test x$have_xrender = xyes)
+if test $have_xrender=yes; then
+ AC_DEFINE(HAVE_XRENDER, 1, [Have the Render X extension])
+fi
+AC_SUBST(HAVE_XRENDER)
+AC_SUBST(XRENDER_CFLAGS)
+AC_SUBST(XRENDER_LIBS)
+
+dnl ====================================================================
+dnl - DocBook Documentation
+dnl ====================================================================
+
+AC_ARG_ENABLE(docbook-docs,
+ [AC_HELP_STRING([--enable-docbook-docs],
+ [build documentation (requires xmlto)])],
+ enable_docbook_docs=$enableval,enable_docbook_docs=auto)
+AC_PATH_PROG(XMLTO, xmlto, no)
+AC_MSG_CHECKING([whether to build DocBook documentation])
+if test x$XMLTO = xno ; then
+ have_docbook=no
+else
+ have_docbook=yes
+fi
+if test x$enable_docbook_docs = xauto ; then
+ if test x$have_docbook = xno ; then
+ enable_docbook_docs=no
+ else
+ enable_docbook_docs=yes
+ fi
+fi
+if test x$enable_docbook_docs = xyes; then
+ if test x$have_docbook = xno; then
+ AC_MSG_ERROR([Building DocBook docs explicitly required, but DocBook not found])
+ fi
+fi
+AM_CONDITIONAL(DOCBOOK_DOCS_ENABLED, test x$enable_docbook_docs = xyes)
+AC_MSG_RESULT($enable_docbook_docs)
+
+dnl ====================================================================
+dnl Check for xsltproc
+dnl ====================================================================
+AC_PATH_PROG([XSLTPROC], [xsltproc])
+
+dnl ====================================================================
+dnl Language Support
+dnl ====================================================================
+GETTEXT_PACKAGE=mate-session-2.0
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
+ [The gettext translation domain])
+AC_SUBST(GETTEXT_PACKAGE)
+
+AM_GLIB_GNU_GETTEXT
+
+dnl ====================================================================
+dnl Headers
+dnl ====================================================================
+AC_HEADER_STDC
+AC_CHECK_HEADERS(syslog.h tcpd.h sys/param.h)
+
+dnl ====================================================================
+dnl check for backtrace support
+dnl ====================================================================
+
+AC_CHECK_HEADERS(execinfo.h)
+AC_CHECK_LIB(execinfo, backtrace, [have_backtrace="yes"], [have_backtrace="no"])
+EXECINFO_LIBS=""
+if test "x$have_backtrace" = "xyes"; then
+ EXECINFO_LIBS="-lexecinfo"
+fi
+AC_SUBST(EXECINFO_LIBS)
+
+dnl ====================================================================
+dnl Check for newish X interface
+dnl ====================================================================
+oCFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $X_CFLAGS"
+AC_CHECK_HEADERS(X11/Xtrans/Xtrans.h)
+CFLAGS="$oCFLAGS"
+
+dnl ====================================================================
+dnl Code for checking whether IPv6 is enabled on the system....
+dnl ====================================================================
+AC_MSG_CHECKING([whether to enable ipv6])
+AC_ARG_ENABLE(ipv6,
+ AC_HELP_STRING([--enable-ipv6], [enable IPv6 extensions]),,
+ [enable_ipv6=yes])
+have_full_ipv6=no
+if test $enable_ipv6 = yes; then
+
+ dnl ====================================================================
+ dnl Code for checking presence of AF_INET6 on the system....
+ dnl ====================================================================
+ AC_TRY_COMPILE([
+ #include <sys/types.h>
+ #include <sys/socket.h>], [
+ socket(AF_INET6, SOCK_STREAM, 0)
+ ],
+ have_ipv6=yes,
+ have_ipv6=no
+ )
+ AC_MSG_RESULT($have_ipv6)
+
+ dnl =================================================================
+ dnl Now we would check for specific function like getaddrinfo.
+ dnl =================================================================
+ have_getaddrinfo=no
+ if test $have_ipv6=yes; then
+ AC_CHECK_FUNC(getaddrinfo, have_getaddrinfo=yes)
+ if test $have_getaddrinfo != yes; then
+ # getaddrinfo is not in the default libraries. See if it's in some other.
+ for lib in bsd socket inet; do
+ AC_CHECK_LIB($lib, getaddrinfo, [LIBS="$LIBS -l$lib";have_getaddrinfo=yes; break])
+ done
+ fi
+ if test $have_getaddrinfo=yes; then
+ AC_DEFINE(ENABLE_IPV6, 1, [Define if IPV6 is supported])
+ have_full_ipv6=yes
+ fi
+ fi
+fi
+dnl ==============================================================================
+dnl End of IPv6 checks
+dnl ==============================================================================
+
+# Don't use AC_PROG_AWK since we need the full pathname.
+AC_PATH_PROGS(AWK, mawk gawk nawk awk, )
+AC_PATH_PROGS(PERL, perl5 perl)
+
+# define a MAINT-like variable REBUILD which is set if Perl
+# and awk are found, so autogenerated sources can be rebuilt
+AC_ARG_ENABLE(rebuilds,
+ AC_HELP_STRING([--disable-rebuilds],
+ [disable all source autogeneration rules]),,
+ [enable_rebuilds=yes])
+REBUILD=\#
+if test "x$enable_rebuilds" = "xyes" && \
+ test -n "$PERL" && \
+ $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 && \
+ test -n "$AWK" ; then
+ REBUILD=
+fi
+AC_SUBST(REBUILD)
+
+AC_OUTPUT([
+Makefile
+capplet/Makefile
+doc/Makefile
+doc/dbus/Makefile
+doc/dbus/mate-session.xml
+doc/man/Makefile
+data/Makefile
+data/mate-wm.desktop.in
+data/mate-session-properties.desktop.in
+data/icons/Makefile
+data/icons/16x16/Makefile
+data/icons/22x22/Makefile
+data/icons/24x24/Makefile
+data/icons/32x32/Makefile
+data/icons/48x48/Makefile
+data/icons/scalable/Makefile
+egg/Makefile
+mate-session/Makefile
+tools/Makefile
+po/Makefile.in
+])
+
+dnl ---------------------------------------------------------------------------
+dnl - Show summary
+dnl ---------------------------------------------------------------------------
+
+echo "
+ mate-session $VERSION
+ `echo mate-session $VERSION | sed "s/./=/g"`
+
+ prefix: ${prefix}
+ exec_prefix: ${exec_prefix}
+ libdir: ${libdir}
+ bindir: ${bindir}
+ sbindir: ${sbindir}
+ sysconfdir: ${sysconfdir}
+ localstatedir: ${localstatedir}
+ datadir: ${datadir}
+ source code location: ${srcdir}
+ compiler: ${CC}
+ cflags: ${CFLAGS}
+ Maintainer mode: ${USE_MAINTAINER_MODE}
+ Warn about deprecations: ${enable_deprecations}
+
+ GTK+ version: ${with_gtk}
+ Default WM: ${with_default_wm}
+ IPv6 support: ${have_full_ipv6}
+ Backtrace support: ${have_backtrace}
+ XRender support: ${have_xrender}
+ XSync support: ${have_xsync}
+ XTest support: ${have_xtest}
+ Build documentation: ${enable_docbook_docs}
+
+"
diff --git a/data/Makefile.am b/data/Makefile.am
new file mode 100644
index 0000000..c68a309
--- /dev/null
+++ b/data/Makefile.am
@@ -0,0 +1,66 @@
+SUBDIRS = icons
+
+bin_SCRIPTS = mate-wm
+
+uidir = $(pkgdatadir)
+ui_DATA = \
+ session-properties.ui \
+ gsm-inhibit-dialog.ui
+
+xsessiondir = $(datadir)/xsessions
+xsession_in_files = mate.desktop.in
+xsession_DATA = $(xsession_in_files:.desktop.in=.desktop)
+
+desktopdir = $(datadir)/applications
+desktop_in_files = mate-session-properties.desktop.in
+desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+
+if USE_MATE_WM
+desktop_in_files += mate-wm.desktop.in
+endif
+
+@INTLTOOL_DESKTOP_RULE@
+
+schemas_in_in_files = mate-session.schemas.in.in
+schemas_in_files = $(schemas_in_in_files:.schemas.in.in=.schemas.in)
+schemasdir = $(MATECONF_SCHEMA_FILE_DIR)
+schemas_DATA = $(schemas_in_files:.schemas.in=.schemas)
+
+$(schemas_in_files): $(schemas_in_files).in Makefile
+ $(AM_V_GEN)sed \
+ -e "s|\@DEFAULT_WM\@|$(DEFAULT_WM)|" \
+ $< > $@
+
+@INTLTOOL_SCHEMAS_RULE@
+
+if MATECONF_SCHEMAS_INSTALL
+install-data-local:
+ if test -z "$(DESTDIR)" ; then \
+ for p in $(schemas_DATA) ; do \
+ MATECONF_CONFIG_SOURCE=$(MATECONF_SCHEMA_CONFIG_SOURCE) $(MATECONFTOOL) --makefile-install-rule $(top_builddir)/data/$$p ; \
+ done \
+ fi
+uninstall-local:
+ for p in $(schema_DATA) ; do \
+ MATECONF_CONFIG_SOURCE=$(MATECONF_SCHEMA_CONFIG_SOURCE) $(MATECONFTOOL) --makefile-uninstall-rule $(top_builddir)/data/$$p ; \
+ done
+endif
+
+EXTRA_DIST = \
+ mate-wm \
+ $(xsession_in_files) \
+ $(schemas_in_in_files) \
+ $(ui_DATA) \
+ $(pixmap_DATA_dist)
+
+CLEANFILES = \
+ $(schemas_in_files) \
+ $(schemas_DATA) \
+ $(xsession_DATA) \
+ $(desktop_DATA) \
+ mate-wm.desktop
+
+DISTCLEANFILES = \
+ $(desktop_in_files)
+
+-include $(top_srcdir)/git.mk
diff --git a/data/Makefile.in b/data/Makefile.in
new file mode 100644
index 0000000..5a6cd70
--- /dev/null
+++ b/data/Makefile.in
@@ -0,0 +1,850 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+@USE_MATE_WM_TRUE@am__append_1 = mate-wm.desktop.in
+subdir = data
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(srcdir)/mate-session-properties.desktop.in.in \
+ $(srcdir)/mate-wm.desktop.in.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = mate-wm.desktop.in \
+ mate-session-properties.desktop.in
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(desktopdir)" \
+ "$(DESTDIR)$(schemasdir)" "$(DESTDIR)$(uidir)" \
+ "$(DESTDIR)$(xsessiondir)"
+SCRIPTS = $(bin_SCRIPTS)
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+DATA = $(desktop_DATA) $(schemas_DATA) $(ui_DATA) $(xsession_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DEFAULT_WM = @DEFAULT_WM@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGG_SMCLIENT_CFLAGS = @EGG_SMCLIENT_CFLAGS@
+EGG_SMCLIENT_LIBS = @EGG_SMCLIENT_LIBS@
+EGREP = @EGREP@
+EXECINFO_LIBS = @EXECINFO_LIBS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HAVE_XRENDER = @HAVE_XRENDER@
+HAVE_XTEST = @HAVE_XTEST@
+ICE_CFLAGS = @ICE_CFLAGS@
+ICE_LIBS = @ICE_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATECONFTOOL = @MATECONFTOOL@
+MATECONF_CFLAGS = @MATECONF_CFLAGS@
+MATECONF_LIBS = @MATECONF_LIBS@
+MATECONF_SANITY_CHECK = @MATECONF_SANITY_CHECK@
+MATECONF_SCHEMA_CONFIG_SOURCE = @MATECONF_SCHEMA_CONFIG_SOURCE@
+MATECONF_SCHEMA_FILE_DIR = @MATECONF_SCHEMA_FILE_DIR@
+MATE_SESSION_CFLAGS = @MATE_SESSION_CFLAGS@
+MATE_SESSION_LIBS = @MATE_SESSION_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+REBUILD = @REBUILD@
+SED = @SED@
+SESSION_PROPERTIES_CFLAGS = @SESSION_PROPERTIES_CFLAGS@
+SESSION_PROPERTIES_LIBS = @SESSION_PROPERTIES_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SM_CFLAGS = @SM_CFLAGS@
+SM_LIBS = @SM_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XGETTEXT = @XGETTEXT@
+XMKMF = @XMKMF@
+XMLTO = @XMLTO@
+XRENDER_CFLAGS = @XRENDER_CFLAGS@
+XRENDER_LIBS = @XRENDER_LIBS@
+XSLTPROC = @XSLTPROC@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = icons
+bin_SCRIPTS = mate-wm
+uidir = $(pkgdatadir)
+ui_DATA = \
+ session-properties.ui \
+ gsm-inhibit-dialog.ui
+
+xsessiondir = $(datadir)/xsessions
+xsession_in_files = mate.desktop.in
+xsession_DATA = $(xsession_in_files:.desktop.in=.desktop)
+desktopdir = $(datadir)/applications
+desktop_in_files = mate-session-properties.desktop.in $(am__append_1)
+desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+schemas_in_in_files = mate-session.schemas.in.in
+schemas_in_files = $(schemas_in_in_files:.schemas.in.in=.schemas.in)
+schemasdir = $(MATECONF_SCHEMA_FILE_DIR)
+schemas_DATA = $(schemas_in_files:.schemas.in=.schemas)
+EXTRA_DIST = \
+ mate-wm \
+ $(xsession_in_files) \
+ $(schemas_in_in_files) \
+ $(ui_DATA) \
+ $(pixmap_DATA_dist)
+
+CLEANFILES = \
+ $(schemas_in_files) \
+ $(schemas_DATA) \
+ $(xsession_DATA) \
+ $(desktop_DATA) \
+ mate-wm.desktop
+
+DISTCLEANFILES = \
+ $(desktop_in_files)
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu data/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+mate-wm.desktop.in: $(top_builddir)/config.status $(srcdir)/mate-wm.desktop.in.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+mate-session-properties.desktop.in: $(top_builddir)/config.status $(srcdir)/mate-session-properties.desktop.in.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+install-binSCRIPTS: $(bin_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binSCRIPTS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-desktopDATA: $(desktop_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)"
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \
+ done
+
+uninstall-desktopDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(desktopdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(desktopdir)" && rm -f $$files
+install-schemasDATA: $(schemas_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(schemasdir)" || $(MKDIR_P) "$(DESTDIR)$(schemasdir)"
+ @list='$(schemas_DATA)'; test -n "$(schemasdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(schemasdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(schemasdir)" || exit $$?; \
+ done
+
+uninstall-schemasDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(schemas_DATA)'; test -n "$(schemasdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(schemasdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(schemasdir)" && rm -f $$files
+install-uiDATA: $(ui_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(uidir)" || $(MKDIR_P) "$(DESTDIR)$(uidir)"
+ @list='$(ui_DATA)'; test -n "$(uidir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(uidir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(uidir)" || exit $$?; \
+ done
+
+uninstall-uiDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(ui_DATA)'; test -n "$(uidir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(uidir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(uidir)" && rm -f $$files
+install-xsessionDATA: $(xsession_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(xsessiondir)" || $(MKDIR_P) "$(DESTDIR)$(xsessiondir)"
+ @list='$(xsession_DATA)'; test -n "$(xsessiondir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(xsessiondir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(xsessiondir)" || exit $$?; \
+ done
+
+uninstall-xsessionDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(xsession_DATA)'; test -n "$(xsessiondir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(xsessiondir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(xsessiondir)" && rm -f $$files
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(SCRIPTS) $(DATA)
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(schemasdir)" "$(DESTDIR)$(uidir)" "$(DESTDIR)$(xsessiondir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+@MATECONF_SCHEMAS_INSTALL_FALSE@uninstall-local:
+@MATECONF_SCHEMAS_INSTALL_FALSE@install-data-local:
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-data-local install-desktopDATA \
+ install-schemasDATA install-uiDATA install-xsessionDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am: install-binSCRIPTS
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-binSCRIPTS uninstall-desktopDATA \
+ uninstall-local uninstall-schemasDATA uninstall-uiDATA \
+ uninstall-xsessionDATA
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ ctags ctags-recursive distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-binSCRIPTS \
+ install-data install-data-am install-data-local \
+ install-desktopDATA install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-schemasDATA install-strip \
+ install-uiDATA install-xsessionDATA installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am uninstall-binSCRIPTS \
+ uninstall-desktopDATA uninstall-local uninstall-schemasDATA \
+ uninstall-uiDATA uninstall-xsessionDATA
+
+
+@INTLTOOL_DESKTOP_RULE@
+
+$(schemas_in_files): $(schemas_in_files).in Makefile
+ $(AM_V_GEN)sed \
+ -e "s|\@DEFAULT_WM\@|$(DEFAULT_WM)|" \
+ $< > $@
+
+@INTLTOOL_SCHEMAS_RULE@
+
+@MATECONF_SCHEMAS_INSTALL_TRUE@install-data-local:
+@MATECONF_SCHEMAS_INSTALL_TRUE@ if test -z "$(DESTDIR)" ; then \
+@MATECONF_SCHEMAS_INSTALL_TRUE@ for p in $(schemas_DATA) ; do \
+@MATECONF_SCHEMAS_INSTALL_TRUE@ MATECONF_CONFIG_SOURCE=$(MATECONF_SCHEMA_CONFIG_SOURCE) $(MATECONFTOOL) --makefile-install-rule $(top_builddir)/data/$$p ; \
+@MATECONF_SCHEMAS_INSTALL_TRUE@ done \
+@MATECONF_SCHEMAS_INSTALL_TRUE@ fi
+@MATECONF_SCHEMAS_INSTALL_TRUE@uninstall-local:
+@MATECONF_SCHEMAS_INSTALL_TRUE@ for p in $(schema_DATA) ; do \
+@MATECONF_SCHEMAS_INSTALL_TRUE@ MATECONF_CONFIG_SOURCE=$(MATECONF_SCHEMA_CONFIG_SOURCE) $(MATECONFTOOL) --makefile-uninstall-rule $(top_builddir)/data/$$p ; \
+@MATECONF_SCHEMAS_INSTALL_TRUE@ done
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/gsm-inhibit-dialog.ui b/data/gsm-inhibit-dialog.ui
new file mode 100644
index 0000000..f93a287
--- /dev/null
+++ b/data/gsm-inhibit-dialog.ui
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<interface>
+ <requires lib="gtk+" version="2.16"/>
+ <!-- interface-naming-policy toplevel-contextual -->
+ <object class="GtkVBox" id="main-box">
+ <property name="visible">True</property>
+ <property name="border_width">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="header-label">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;b&gt;Some programs are still running:&lt;/b&gt;</property>
+ <property name="use_markup">True</property>
+ <property name="wrap">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolledwindow1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">automatic</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTreeView" id="inhibitors-treeview">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">False</property>
+ <property name="enable_search">False</property>
+ <property name="show_expanders">False</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="description-label">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0</property>
+ <property name="label" translatable="yes">Waiting for the program to finish. Interrupting the program may cause you to lose work.</property>
+ <property name="wrap">True</property>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+</interface>
diff --git a/data/icons/16x16/Makefile.am b/data/icons/16x16/Makefile.am
new file mode 100644
index 0000000..cb68d6b
--- /dev/null
+++ b/data/icons/16x16/Makefile.am
@@ -0,0 +1,23 @@
+size = 16x16
+
+iconsdir = $(datadir)/icons/hicolor/$(size)/apps
+
+icons_DATA = mate-session-properties.png
+icons_SOURCE = mate-session-properties.svg
+
+gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
+
+install-data-hook:
+ @-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
+
+EXTRA_DIST = \
+ $(icons_DATA) \
+ $(icons_SOURCE)
+
+-include $(top_srcdir)/git.mk
diff --git a/data/icons/16x16/Makefile.in b/data/icons/16x16/Makefile.in
new file mode 100644
index 0000000..7c8ec4a
--- /dev/null
+++ b/data/icons/16x16/Makefile.in
@@ -0,0 +1,497 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = data/icons/16x16
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(iconsdir)"
+DATA = $(icons_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DEFAULT_WM = @DEFAULT_WM@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGG_SMCLIENT_CFLAGS = @EGG_SMCLIENT_CFLAGS@
+EGG_SMCLIENT_LIBS = @EGG_SMCLIENT_LIBS@
+EGREP = @EGREP@
+EXECINFO_LIBS = @EXECINFO_LIBS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HAVE_XRENDER = @HAVE_XRENDER@
+HAVE_XTEST = @HAVE_XTEST@
+ICE_CFLAGS = @ICE_CFLAGS@
+ICE_LIBS = @ICE_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATECONFTOOL = @MATECONFTOOL@
+MATECONF_CFLAGS = @MATECONF_CFLAGS@
+MATECONF_LIBS = @MATECONF_LIBS@
+MATECONF_SANITY_CHECK = @MATECONF_SANITY_CHECK@
+MATECONF_SCHEMA_CONFIG_SOURCE = @MATECONF_SCHEMA_CONFIG_SOURCE@
+MATECONF_SCHEMA_FILE_DIR = @MATECONF_SCHEMA_FILE_DIR@
+MATE_SESSION_CFLAGS = @MATE_SESSION_CFLAGS@
+MATE_SESSION_LIBS = @MATE_SESSION_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+REBUILD = @REBUILD@
+SED = @SED@
+SESSION_PROPERTIES_CFLAGS = @SESSION_PROPERTIES_CFLAGS@
+SESSION_PROPERTIES_LIBS = @SESSION_PROPERTIES_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SM_CFLAGS = @SM_CFLAGS@
+SM_LIBS = @SM_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XGETTEXT = @XGETTEXT@
+XMKMF = @XMKMF@
+XMLTO = @XMLTO@
+XRENDER_CFLAGS = @XRENDER_CFLAGS@
+XRENDER_LIBS = @XRENDER_LIBS@
+XSLTPROC = @XSLTPROC@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 16x16
+iconsdir = $(datadir)/icons/hicolor/$(size)/apps
+icons_DATA = mate-session-properties.png
+icons_SOURCE = mate-session-properties.svg
+gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
+EXTRA_DIST = \
+ $(icons_DATA) \
+ $(icons_SOURCE)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/16x16/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu data/icons/16x16/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-iconsDATA: $(icons_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)"
+ @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \
+ done
+
+uninstall-iconsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(iconsdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(iconsdir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(iconsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-iconsDATA
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-iconsDATA
+
+.MAKE: install-am install-data-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-hook install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-iconsDATA install-info install-info-am \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-iconsDATA
+
+
+install-data-hook:
+ @-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
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/icons/16x16/mate-session-properties.png b/data/icons/16x16/mate-session-properties.png
new file mode 100644
index 0000000..1367c20
--- /dev/null
+++ b/data/icons/16x16/mate-session-properties.png
Binary files differ
diff --git a/data/icons/16x16/mate-session-properties.svg b/data/icons/16x16/mate-session-properties.svg
new file mode 100644
index 0000000..6408e1b
--- /dev/null
+++ b/data/icons/16x16/mate-session-properties.svg
@@ -0,0 +1,394 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ 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"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg7854"
+ sodipodi:version="0.32"
+ inkscape:version="0.44+devel"
+ version="1.0"
+ sodipodi:docname="session-properties.svg"
+ sodipodi:docbase="/home/jimmac/gfx/ximian/art/icons/control-center/22x22"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ sodipodi:modified="true">
+ <defs
+ id="defs7856">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5650">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1;"
+ offset="0"
+ id="stop5652" />
+ <stop
+ style="stop-color:#9ea795;stop-opacity:1"
+ offset="1"
+ id="stop5654" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5642">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop5644" />
+ <stop
+ style="stop-color:#c3c3bc;stop-opacity:1"
+ offset="1"
+ id="stop5646" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5634">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5636" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5638" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5598">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5600" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5602" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5716">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5718" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5720" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5700">
+ <stop
+ style="stop-color:#e4e4e4;stop-opacity:1;"
+ offset="0"
+ id="stop5702" />
+ <stop
+ id="stop5708"
+ offset="0.639386"
+ style="stop-color:#fefefe;stop-opacity:1" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.79632628"
+ id="stop5710" />
+ <stop
+ style="stop-color:#949494;stop-opacity:1"
+ offset="1"
+ id="stop5704" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3832">
+ <stop
+ id="stop3834"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000" />
+ <stop
+ id="stop3836"
+ offset="1.0000000"
+ style="stop-color:#e0e0e0;stop-opacity:1.0000000" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4816">
+ <stop
+ id="stop4818"
+ offset="0.0000000"
+ style="stop-color:#204a87;stop-opacity:1.0000000" />
+ <stop
+ id="stop4820"
+ offset="1.0000000"
+ style="stop-color:#204a87;stop-opacity:0.0000000" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5048">
+ <stop
+ id="stop5050"
+ offset="0"
+ style="stop-color:black;stop-opacity:0;" />
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0.5"
+ id="stop5056" />
+ <stop
+ id="stop5052"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5060"
+ inkscape:collect="always">
+ <stop
+ id="stop5062"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop5064"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5664"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.6526975e-2,0,0,3.5014969e-2,47.812816,25.161837)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5667"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.6526975e-2,0,0,3.5014969e-2,-0.2505064,25.161837)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient5670"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.6526975e-2,0,0,3.5014969e-2,-0.2635996,25.161837)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3832"
+ id="linearGradient5682"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.451927,0,0,1.3372801,-45.830775,7.6961475)"
+ x1="17.88068"
+ y1="11.072588"
+ x2="17.88068"
+ y2="21.767578" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4816"
+ id="linearGradient5684"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4668451,0,0,1.8750592,-45.628571,3.9919211)"
+ x1="13.050564"
+ y1="11.353518"
+ x2="13.050564"
+ y2="5.6173568" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5700"
+ id="linearGradient5728"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0.5,0)"
+ x1="24"
+ y1="23"
+ x2="45.505005"
+ y2="23" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5716"
+ id="linearGradient5730"
+ gradientUnits="userSpaceOnUse"
+ x1="40.745819"
+ y1="23"
+ x2="44.005268"
+ y2="23" />
+ <filter
+ inkscape:collect="always"
+ id="filter5786">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.62861987"
+ id="feGaussianBlur5788" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5598"
+ id="linearGradient5604"
+ x1="25.627417"
+ y1="8"
+ x2="25.627417"
+ y2="4.7617435"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3170731,0,0,0.1513709,0.3902442,0.3687103)" />
+ <filter
+ inkscape:collect="always"
+ x="-0.019480519"
+ width="1.0389611"
+ y="-0.14285713"
+ height="1.2857143"
+ id="filter5628">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.42857143"
+ id="feGaussianBlur5630" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5634"
+ id="linearGradient5640"
+ x1="25.313259"
+ y1="42.656792"
+ x2="25.313261"
+ y2="10.129107"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3182502,0,0,0.3589572,0.3378627,-0.7556826)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5642"
+ id="linearGradient5648"
+ x1="26.29347"
+ y1="7.3125"
+ x2="26.232994"
+ y2="3.5357027"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3500965,0,0,0.4000001,-0.3752413,-0.8999998)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5650"
+ id="linearGradient5656"
+ x1="26.29347"
+ y1="7.3125"
+ x2="26.232994"
+ y2="3.5357027"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3500965,0,0,0.4000001,-0.3752413,-0.8999998)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#e0e0e0"
+ borderopacity="1"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="13.920386"
+ inkscape:cy="2.77771"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="16px"
+ height="16px"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1102"
+ inkscape:window-height="958"
+ inkscape:window-x="2117"
+ inkscape:window-y="82"
+ showgrid="false"
+ borderlayer="true" />
+ <metadata
+ id="metadata7859">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source>http://jimmac.musichall.cz</dc:source>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:title>Mate Session Properties</dc:title>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="opacity:1;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#3465a4;stroke-width:1.00000012;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect4585"
+ width="15.054147"
+ height="14.931664"
+ x="0.50000006"
+ y="0.56833637"
+ rx="0.80243546"
+ ry="0.85151595" />
+ <rect
+ style="opacity:1;color:#000000;fill:url(#linearGradient5648);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5656);stroke-width:1.00000012;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5556"
+ width="15.054147"
+ height="1.9999999"
+ x="0.5"
+ y="0.50000006"
+ rx="0.80249435"
+ ry="0.91688365" />
+ <rect
+ ry="0"
+ rx="0"
+ y="0.90594715"
+ x="1.5"
+ height="13.594053"
+ width="12.999999"
+ id="rect5632"
+ style="opacity:0.52571429;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5640);stroke-width:1.00000012;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <g
+ id="g5724"
+ transform="matrix(0.4041599,0,0,0.4075968,-2.9205921,-0.7107676)">
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ id="path5698"
+ d="M 11.121851,22.804198 L 23.199467,12.216748 L 23.199467,17.747078 L 36.633956,17.747078 C 44.741684,17.747078 45.5,23.213443 45.5,23.213443 L 45.5,36.603439 C 45.5,36.603439 43.628297,27.513864 36.758956,27.513864 L 23.199467,27.513864 L 23.199467,33 L 11.121851,22.804198 z "
+ style="fill:url(#linearGradient5728);fill-opacity:1;fill-rule:evenodd;stroke:#555753;stroke-width:2.46381474px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <rect
+ ry="0.17072184"
+ rx="0.35760722"
+ y="1.0498793"
+ x="1.5"
+ height="0.45411268"
+ width="13"
+ id="rect4627"
+ style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5604);stroke-width:0.99999982;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ </g>
+</svg>
diff --git a/data/icons/22x22/Makefile.am b/data/icons/22x22/Makefile.am
new file mode 100644
index 0000000..7d31351
--- /dev/null
+++ b/data/icons/22x22/Makefile.am
@@ -0,0 +1,23 @@
+size = 22x22
+
+iconsdir = $(datadir)/icons/hicolor/$(size)/apps
+
+icons_DATA = mate-session-properties.png
+icons_SOURCE = mate-session-properties.svg
+
+gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
+
+install-data-hook:
+ @-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
+
+EXTRA_DIST = \
+ $(icons_DATA) \
+ $(icons_SOURCE)
+
+-include $(top_srcdir)/git.mk
diff --git a/data/icons/22x22/Makefile.in b/data/icons/22x22/Makefile.in
new file mode 100644
index 0000000..1b21b02
--- /dev/null
+++ b/data/icons/22x22/Makefile.in
@@ -0,0 +1,497 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = data/icons/22x22
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(iconsdir)"
+DATA = $(icons_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DEFAULT_WM = @DEFAULT_WM@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGG_SMCLIENT_CFLAGS = @EGG_SMCLIENT_CFLAGS@
+EGG_SMCLIENT_LIBS = @EGG_SMCLIENT_LIBS@
+EGREP = @EGREP@
+EXECINFO_LIBS = @EXECINFO_LIBS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HAVE_XRENDER = @HAVE_XRENDER@
+HAVE_XTEST = @HAVE_XTEST@
+ICE_CFLAGS = @ICE_CFLAGS@
+ICE_LIBS = @ICE_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATECONFTOOL = @MATECONFTOOL@
+MATECONF_CFLAGS = @MATECONF_CFLAGS@
+MATECONF_LIBS = @MATECONF_LIBS@
+MATECONF_SANITY_CHECK = @MATECONF_SANITY_CHECK@
+MATECONF_SCHEMA_CONFIG_SOURCE = @MATECONF_SCHEMA_CONFIG_SOURCE@
+MATECONF_SCHEMA_FILE_DIR = @MATECONF_SCHEMA_FILE_DIR@
+MATE_SESSION_CFLAGS = @MATE_SESSION_CFLAGS@
+MATE_SESSION_LIBS = @MATE_SESSION_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+REBUILD = @REBUILD@
+SED = @SED@
+SESSION_PROPERTIES_CFLAGS = @SESSION_PROPERTIES_CFLAGS@
+SESSION_PROPERTIES_LIBS = @SESSION_PROPERTIES_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SM_CFLAGS = @SM_CFLAGS@
+SM_LIBS = @SM_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XGETTEXT = @XGETTEXT@
+XMKMF = @XMKMF@
+XMLTO = @XMLTO@
+XRENDER_CFLAGS = @XRENDER_CFLAGS@
+XRENDER_LIBS = @XRENDER_LIBS@
+XSLTPROC = @XSLTPROC@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 22x22
+iconsdir = $(datadir)/icons/hicolor/$(size)/apps
+icons_DATA = mate-session-properties.png
+icons_SOURCE = mate-session-properties.svg
+gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
+EXTRA_DIST = \
+ $(icons_DATA) \
+ $(icons_SOURCE)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/22x22/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu data/icons/22x22/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-iconsDATA: $(icons_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)"
+ @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \
+ done
+
+uninstall-iconsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(iconsdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(iconsdir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(iconsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-iconsDATA
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-iconsDATA
+
+.MAKE: install-am install-data-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-hook install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-iconsDATA install-info install-info-am \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-iconsDATA
+
+
+install-data-hook:
+ @-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
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/icons/22x22/mate-session-properties.png b/data/icons/22x22/mate-session-properties.png
new file mode 100644
index 0000000..12225ee
--- /dev/null
+++ b/data/icons/22x22/mate-session-properties.png
Binary files differ
diff --git a/data/icons/22x22/mate-session-properties.svg b/data/icons/22x22/mate-session-properties.svg
new file mode 100644
index 0000000..ca49603
--- /dev/null
+++ b/data/icons/22x22/mate-session-properties.svg
@@ -0,0 +1,440 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ 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"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="22"
+ height="22"
+ id="svg7854"
+ sodipodi:version="0.32"
+ inkscape:version="0.44+devel"
+ version="1.0"
+ sodipodi:docname="session-properties.svg"
+ sodipodi:docbase="/home/jimmac/gfx/ximian/art/icons/control-center/32x32"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ sodipodi:modified="true">
+ <defs
+ id="defs7856">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5650">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1;"
+ offset="0"
+ id="stop5652" />
+ <stop
+ style="stop-color:#9ea795;stop-opacity:1"
+ offset="1"
+ id="stop5654" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5642">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop5644" />
+ <stop
+ style="stop-color:#c3c3bc;stop-opacity:1"
+ offset="1"
+ id="stop5646" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5634">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5636" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5638" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5598">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5600" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5602" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5716">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5718" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5720" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5700">
+ <stop
+ style="stop-color:#e4e4e4;stop-opacity:1;"
+ offset="0"
+ id="stop5702" />
+ <stop
+ id="stop5708"
+ offset="0.639386"
+ style="stop-color:#fefefe;stop-opacity:1" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.79632628"
+ id="stop5710" />
+ <stop
+ style="stop-color:#949494;stop-opacity:1"
+ offset="1"
+ id="stop5704" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3832">
+ <stop
+ id="stop3834"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000" />
+ <stop
+ id="stop3836"
+ offset="1.0000000"
+ style="stop-color:#e0e0e0;stop-opacity:1.0000000" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4816">
+ <stop
+ id="stop4818"
+ offset="0.0000000"
+ style="stop-color:#204a87;stop-opacity:1.0000000" />
+ <stop
+ id="stop4820"
+ offset="1.0000000"
+ style="stop-color:#204a87;stop-opacity:0.0000000" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5048">
+ <stop
+ id="stop5050"
+ offset="0"
+ style="stop-color:black;stop-opacity:0;" />
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0.5"
+ id="stop5056" />
+ <stop
+ id="stop5052"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5060"
+ inkscape:collect="always">
+ <stop
+ id="stop5062"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop5064"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5664"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.6526975e-2,0,0,3.5014969e-2,47.812816,25.161837)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5667"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.6526975e-2,0,0,3.5014969e-2,-0.2505064,25.161837)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient5670"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.6526975e-2,0,0,3.5014969e-2,-0.2635996,25.161837)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3832"
+ id="linearGradient5682"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.451927,0,0,1.3372801,-45.830775,7.6961475)"
+ x1="17.88068"
+ y1="11.072588"
+ x2="17.88068"
+ y2="21.767578" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4816"
+ id="linearGradient5684"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4668451,0,0,1.8750592,-45.628571,3.9919211)"
+ x1="13.050564"
+ y1="11.353518"
+ x2="13.050564"
+ y2="5.6173568" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5700"
+ id="linearGradient5728"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0.5,0)"
+ x1="24"
+ y1="23"
+ x2="45.505005"
+ y2="23" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5716"
+ id="linearGradient5730"
+ gradientUnits="userSpaceOnUse"
+ x1="40.745819"
+ y1="23"
+ x2="44.005268"
+ y2="23" />
+ <filter
+ inkscape:collect="always"
+ id="filter5786">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.62861987"
+ id="feGaussianBlur5788" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5598"
+ id="linearGradient5604"
+ x1="25.627417"
+ y1="8"
+ x2="25.627417"
+ y2="4.7617435"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4311139,0,0,0.1911915,0.6155053,1.0660639)" />
+ <filter
+ inkscape:collect="always"
+ x="-0.019480519"
+ width="1.0389611"
+ y="-0.14285713"
+ height="1.2857143"
+ id="filter5628">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.42857143"
+ id="feGaussianBlur5630" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5634"
+ id="linearGradient5640"
+ x1="25.313259"
+ y1="42.656792"
+ x2="25.313261"
+ y2="10.129107"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4161734,0,0,0.4097743,0.9802818,8.45901e-2)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5642"
+ id="linearGradient5648"
+ x1="26.29347"
+ y1="7.3125"
+ x2="26.232994"
+ y2="3.5357027"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4415111,0,0,0.3917361,0.3659716,0.1289237)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5650"
+ id="linearGradient5656"
+ x1="26.29347"
+ y1="7.3125"
+ x2="26.232994"
+ y2="3.5357027"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4415111,0,0,0.3917361,0.3659716,0.1289237)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#e0e0e0"
+ borderopacity="1"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="21.888246"
+ inkscape:cy="13.442716"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="22px"
+ height="22px"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1102"
+ inkscape:window-height="958"
+ inkscape:window-x="2117"
+ inkscape:window-y="82"
+ showgrid="false"
+ borderlayer="true" />
+ <metadata
+ id="metadata7859">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source>http://jimmac.musichall.cz</dc:source>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:title>Mate Session Properties</dc:title>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g5672"
+ style="opacity:0.53714288"
+ transform="matrix(0.4617581,0,0,0.6375656,-4.8917036e-2,-9.3215937)">
+ <rect
+ y="38"
+ x="7.7196383"
+ height="8.5036354"
+ width="32.123024"
+ id="rect4173"
+ style="opacity:1;color:#000000;fill:url(#linearGradient5670);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path5058"
+ d="M 39.842663,38.000295 C 39.842663,38.000295 39.842663,46.503461 39.842663,46.503461 C 43.268636,46.519469 48.125002,44.598333 48.125,42.25133 C 48.125,39.904328 44.30187,38.000295 39.842663,38.000295 z "
+ style="opacity:1;color:#000000;fill:url(#radialGradient5667);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <path
+ style="opacity:1;color:#000000;fill:url(#radialGradient5664);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 7.7196385,38.000295 C 7.7196385,38.000295 7.7196385,46.503461 7.7196385,46.503461 C 4.2936621,46.519469 -0.56270146,44.598333 -0.56270146,42.25133 C -0.56270146,39.904328 3.2604286,38.000295 7.7196385,38.000295 z "
+ id="path5018"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <rect
+ style="opacity:1;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#3465a4;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect4585"
+ width="18.984974"
+ height="16.920202"
+ x="1.4697493"
+ y="1.5550299"
+ rx="1.0119615"
+ ry="0.96491748" />
+ <rect
+ ry="2.2922091"
+ rx="2.2922091"
+ y="4.3838844"
+ x="2.5"
+ height="5"
+ width="43"
+ id="rect5606"
+ style="opacity:0.27999998;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.34036613;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter5628);enable-background:accumulate"
+ transform="matrix(0.4281431,0,0,0.4264257,0.8323174,7.5101245e-3)" />
+ <rect
+ style="opacity:1;color:#000000;fill:url(#linearGradient5648);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5656);stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5556"
+ width="18.984974"
+ height="1.9586804"
+ x="1.4697493"
+ y="1.5"
+ rx="1.0120357"
+ ry="0.89794111" />
+ <rect
+ ry="0.32291412"
+ rx="0.31787637"
+ y="1.9814546"
+ x="2.5"
+ height="15.518545"
+ width="16.999998"
+ id="rect5632"
+ style="opacity:0.52571429;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5640);stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <g
+ id="g5724"
+ transform="matrix(0.4754857,0,0,0.4735784,-1.225003,-0.5239366)">
+ <path
+ style="opacity:0.3142857;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter5786)"
+ d="M 10.5,25.474874 L 20.5,15.474874 L 20.5,21.005204 L 40.5,21.005204 C 44.35508,21.005204 45.58678,20.95144 45.5,23 L 45.5,33 C 45.5,33 43.070425,29.988738 40.625,29.988738 L 20.5,29.988738 L 20.5,35.474874 L 10.5,25.474874 z "
+ id="path5738"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ id="path5698"
+ d="M 10.5,23.279959 L 20.5,13.559918 L 20.5,19.090248 L 40.5,19.090248 C 44.35508,19.090248 45.58678,21.511358 45.5,23.559918 L 45.5,33 C 45.5,33 45.096959,27.513864 40.625,27.513864 L 20.5,27.513864 L 20.5,33 L 10.5,23.279959 z "
+ style="fill:url(#linearGradient5728);fill-opacity:1;fill-rule:evenodd;stroke:#555753;stroke-width:2.10734344px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 18.125,18.8125 L 13.9375,23 L 18.09375,27.15625 C 18.269985,25.965284 19.296092,25.085764 20.5,25.09375 L 40.625,25.09375 C 41.541275,25.09375 42.352276,25.289567 43.09375,25.59375 L 43.09375,23 C 43.093144,22.968753 43.093144,22.937497 43.09375,22.90625 C 43.114981,22.405075 42.966583,21.933517 42.6875,21.625 C 42.408417,21.316483 41.921956,20.9375 40.5,20.9375 L 20.5,20.9375 C 19.287205,20.925631 18.271136,20.016516 18.125,18.8125 z "
+ inkscape:href="#path5698"
+ id="path5712"
+ style="opacity:0.62857145;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5730);stroke-width:2.10734344px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xlink:href="#path5698"
+ inkscape:original="M 20.5 13.5625 L 10.5 23.28125 L 20.5 33 L 20.5 27.5 L 40.625 27.5 C 45.096959 27.5 45.5 33 45.5 33 L 45.5 23.5625 C 45.58678 21.51394 44.35508 19.09375 40.5 19.09375 L 20.5 19.09375 L 20.5 13.5625 z "
+ inkscape:radius="-2.4160075"
+ sodipodi:type="inkscape:offset" />
+ </g>
+ <rect
+ ry="0.21563303"
+ rx="0.48622662"
+ y="1.9264256"
+ x="2.1244035"
+ height="0.57357448"
+ width="17.675669"
+ id="rect4627"
+ style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5604);stroke-width:0.99999988;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ </g>
+</svg>
diff --git a/data/icons/24x24/Makefile.am b/data/icons/24x24/Makefile.am
new file mode 100644
index 0000000..e4fdf11
--- /dev/null
+++ b/data/icons/24x24/Makefile.am
@@ -0,0 +1,21 @@
+size = 24x24
+
+iconsdir = $(datadir)/icons/hicolor/$(size)/apps
+
+icons_DATA = mate-session-properties.png
+
+gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
+
+install-data-hook:
+ @-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
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+-include $(top_srcdir)/git.mk
diff --git a/data/icons/24x24/Makefile.in b/data/icons/24x24/Makefile.in
new file mode 100644
index 0000000..2a2eea8
--- /dev/null
+++ b/data/icons/24x24/Makefile.in
@@ -0,0 +1,495 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = data/icons/24x24
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(iconsdir)"
+DATA = $(icons_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DEFAULT_WM = @DEFAULT_WM@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGG_SMCLIENT_CFLAGS = @EGG_SMCLIENT_CFLAGS@
+EGG_SMCLIENT_LIBS = @EGG_SMCLIENT_LIBS@
+EGREP = @EGREP@
+EXECINFO_LIBS = @EXECINFO_LIBS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HAVE_XRENDER = @HAVE_XRENDER@
+HAVE_XTEST = @HAVE_XTEST@
+ICE_CFLAGS = @ICE_CFLAGS@
+ICE_LIBS = @ICE_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATECONFTOOL = @MATECONFTOOL@
+MATECONF_CFLAGS = @MATECONF_CFLAGS@
+MATECONF_LIBS = @MATECONF_LIBS@
+MATECONF_SANITY_CHECK = @MATECONF_SANITY_CHECK@
+MATECONF_SCHEMA_CONFIG_SOURCE = @MATECONF_SCHEMA_CONFIG_SOURCE@
+MATECONF_SCHEMA_FILE_DIR = @MATECONF_SCHEMA_FILE_DIR@
+MATE_SESSION_CFLAGS = @MATE_SESSION_CFLAGS@
+MATE_SESSION_LIBS = @MATE_SESSION_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+REBUILD = @REBUILD@
+SED = @SED@
+SESSION_PROPERTIES_CFLAGS = @SESSION_PROPERTIES_CFLAGS@
+SESSION_PROPERTIES_LIBS = @SESSION_PROPERTIES_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SM_CFLAGS = @SM_CFLAGS@
+SM_LIBS = @SM_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XGETTEXT = @XGETTEXT@
+XMKMF = @XMKMF@
+XMLTO = @XMLTO@
+XRENDER_CFLAGS = @XRENDER_CFLAGS@
+XRENDER_LIBS = @XRENDER_LIBS@
+XSLTPROC = @XSLTPROC@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 24x24
+iconsdir = $(datadir)/icons/hicolor/$(size)/apps
+icons_DATA = mate-session-properties.png
+gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
+EXTRA_DIST = \
+ $(icons_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/24x24/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu data/icons/24x24/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-iconsDATA: $(icons_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)"
+ @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \
+ done
+
+uninstall-iconsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(iconsdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(iconsdir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(iconsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-iconsDATA
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-iconsDATA
+
+.MAKE: install-am install-data-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-hook install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-iconsDATA install-info install-info-am \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-iconsDATA
+
+
+install-data-hook:
+ @-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
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/icons/24x24/mate-session-properties.png b/data/icons/24x24/mate-session-properties.png
new file mode 100644
index 0000000..ac81c7a
--- /dev/null
+++ b/data/icons/24x24/mate-session-properties.png
Binary files differ
diff --git a/data/icons/32x32/Makefile.am b/data/icons/32x32/Makefile.am
new file mode 100644
index 0000000..584ee65
--- /dev/null
+++ b/data/icons/32x32/Makefile.am
@@ -0,0 +1,23 @@
+size = 32x32
+
+iconsdir = $(datadir)/icons/hicolor/$(size)/apps
+
+icons_DATA = mate-session-properties.png
+icons_SOURCE = mate-session-properties.svg
+
+gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
+
+install-data-hook:
+ @-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
+
+EXTRA_DIST = \
+ $(icons_DATA) \
+ $(icons_SOURCE)
+
+-include $(top_srcdir)/git.mk
diff --git a/data/icons/32x32/Makefile.in b/data/icons/32x32/Makefile.in
new file mode 100644
index 0000000..1e7145e
--- /dev/null
+++ b/data/icons/32x32/Makefile.in
@@ -0,0 +1,497 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = data/icons/32x32
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(iconsdir)"
+DATA = $(icons_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DEFAULT_WM = @DEFAULT_WM@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGG_SMCLIENT_CFLAGS = @EGG_SMCLIENT_CFLAGS@
+EGG_SMCLIENT_LIBS = @EGG_SMCLIENT_LIBS@
+EGREP = @EGREP@
+EXECINFO_LIBS = @EXECINFO_LIBS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HAVE_XRENDER = @HAVE_XRENDER@
+HAVE_XTEST = @HAVE_XTEST@
+ICE_CFLAGS = @ICE_CFLAGS@
+ICE_LIBS = @ICE_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATECONFTOOL = @MATECONFTOOL@
+MATECONF_CFLAGS = @MATECONF_CFLAGS@
+MATECONF_LIBS = @MATECONF_LIBS@
+MATECONF_SANITY_CHECK = @MATECONF_SANITY_CHECK@
+MATECONF_SCHEMA_CONFIG_SOURCE = @MATECONF_SCHEMA_CONFIG_SOURCE@
+MATECONF_SCHEMA_FILE_DIR = @MATECONF_SCHEMA_FILE_DIR@
+MATE_SESSION_CFLAGS = @MATE_SESSION_CFLAGS@
+MATE_SESSION_LIBS = @MATE_SESSION_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+REBUILD = @REBUILD@
+SED = @SED@
+SESSION_PROPERTIES_CFLAGS = @SESSION_PROPERTIES_CFLAGS@
+SESSION_PROPERTIES_LIBS = @SESSION_PROPERTIES_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SM_CFLAGS = @SM_CFLAGS@
+SM_LIBS = @SM_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XGETTEXT = @XGETTEXT@
+XMKMF = @XMKMF@
+XMLTO = @XMLTO@
+XRENDER_CFLAGS = @XRENDER_CFLAGS@
+XRENDER_LIBS = @XRENDER_LIBS@
+XSLTPROC = @XSLTPROC@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 32x32
+iconsdir = $(datadir)/icons/hicolor/$(size)/apps
+icons_DATA = mate-session-properties.png
+icons_SOURCE = mate-session-properties.svg
+gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
+EXTRA_DIST = \
+ $(icons_DATA) \
+ $(icons_SOURCE)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/32x32/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu data/icons/32x32/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-iconsDATA: $(icons_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)"
+ @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \
+ done
+
+uninstall-iconsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(iconsdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(iconsdir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(iconsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-iconsDATA
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-iconsDATA
+
+.MAKE: install-am install-data-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-hook install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-iconsDATA install-info install-info-am \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-iconsDATA
+
+
+install-data-hook:
+ @-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
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/icons/32x32/mate-session-properties.png b/data/icons/32x32/mate-session-properties.png
new file mode 100644
index 0000000..25df9d3
--- /dev/null
+++ b/data/icons/32x32/mate-session-properties.png
Binary files differ
diff --git a/data/icons/32x32/mate-session-properties.svg b/data/icons/32x32/mate-session-properties.svg
new file mode 100644
index 0000000..33b5fee
--- /dev/null
+++ b/data/icons/32x32/mate-session-properties.svg
@@ -0,0 +1,490 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ 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"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32"
+ height="32"
+ id="svg7854"
+ sodipodi:version="0.32"
+ inkscape:version="0.44+devel"
+ version="1.0"
+ sodipodi:docname="session-properties.svg"
+ sodipodi:docbase="/home/jimmac/gfx/ximian/art/icons/control-center/scalable"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ sodipodi:modified="true">
+ <defs
+ id="defs7856">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5650">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1;"
+ offset="0"
+ id="stop5652" />
+ <stop
+ style="stop-color:#9ea795;stop-opacity:1"
+ offset="1"
+ id="stop5654" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5642">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop5644" />
+ <stop
+ style="stop-color:#c3c3bc;stop-opacity:1"
+ offset="1"
+ id="stop5646" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5634">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5636" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5638" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5598">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5600" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5602" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5716">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5718" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5720" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5700">
+ <stop
+ style="stop-color:#e4e4e4;stop-opacity:1;"
+ offset="0"
+ id="stop5702" />
+ <stop
+ id="stop5708"
+ offset="0.639386"
+ style="stop-color:#fefefe;stop-opacity:1" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.79632628"
+ id="stop5710" />
+ <stop
+ style="stop-color:#949494;stop-opacity:1"
+ offset="1"
+ id="stop5704" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3832">
+ <stop
+ id="stop3834"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000" />
+ <stop
+ id="stop3836"
+ offset="1.0000000"
+ style="stop-color:#e0e0e0;stop-opacity:1.0000000" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4816">
+ <stop
+ id="stop4818"
+ offset="0.0000000"
+ style="stop-color:#204a87;stop-opacity:1.0000000" />
+ <stop
+ id="stop4820"
+ offset="1.0000000"
+ style="stop-color:#204a87;stop-opacity:0.0000000" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5048">
+ <stop
+ id="stop5050"
+ offset="0"
+ style="stop-color:black;stop-opacity:0;" />
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0.5"
+ id="stop5056" />
+ <stop
+ id="stop5052"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5060"
+ inkscape:collect="always">
+ <stop
+ id="stop5062"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop5064"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5664"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.6526975e-2,0,0,3.5014969e-2,47.812816,25.161837)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5667"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.6526975e-2,0,0,3.5014969e-2,-0.2505064,25.161837)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient5670"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.6526975e-2,0,0,3.5014969e-2,-0.2635996,25.161837)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3832"
+ id="linearGradient5682"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4257653,0,0,1.3494809,-45.841705,7.4048427)"
+ x1="17.88068"
+ y1="11.072588"
+ x2="17.88068"
+ y2="21.767578" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4816"
+ id="linearGradient5684"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2803684,0,0,1.2242141,-43.519693,10.324658)"
+ x1="13.050564"
+ y1="11.353518"
+ x2="13.050564"
+ y2="5.6173568" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3832"
+ id="linearGradient5694"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.367592,0,0,1.259127,-45.521751,9.5621318)"
+ x1="17.88068"
+ y1="11.072588"
+ x2="17.88068"
+ y2="21.767578" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4816"
+ id="linearGradient5696"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.325819,0,0,1.19936,-44.590631,11.169522)"
+ x1="13.050564"
+ y1="11.353518"
+ x2="13.050564"
+ y2="5.6173568" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5700"
+ id="linearGradient5728"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0.5,0)"
+ x1="24"
+ y1="23"
+ x2="45.505005"
+ y2="23" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5716"
+ id="linearGradient5730"
+ gradientUnits="userSpaceOnUse"
+ x1="40.745819"
+ y1="23"
+ x2="44.005268"
+ y2="23" />
+ <filter
+ inkscape:collect="always"
+ id="filter5786">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.62861987"
+ id="feGaussianBlur5788" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5598"
+ id="linearGradient5604"
+ x1="25.627417"
+ y1="8"
+ x2="25.627417"
+ y2="4.7617435"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6585366,0,0,0.448956,0.195122,1.1328299)" />
+ <filter
+ inkscape:collect="always"
+ x="-0.019480519"
+ width="1.0389611"
+ y="-0.14285713"
+ height="1.2857143"
+ id="filter5628">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.42857143"
+ id="feGaussianBlur5630" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5634"
+ id="linearGradient5640"
+ x1="25.313259"
+ y1="42.656792"
+ x2="25.313261"
+ y2="10.129107"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6609814,0,0,0.6406647,8.63294e-2,0.2717499)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5642"
+ id="linearGradient5648"
+ x1="26.29347"
+ y1="7.3125"
+ x2="26.232994"
+ y2="3.5357027"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6744186,0,0,0.6,-0.1860466,0.4000001)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5650"
+ id="linearGradient5656"
+ x1="26.29347"
+ y1="7.3125"
+ x2="26.232994"
+ y2="3.5357027"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6744186,0,0,0.6,-0.1860466,0.4000001)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#e0e0e0"
+ borderopacity="1"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="31.400129"
+ inkscape:cy="-4.050017"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="32px"
+ height="32px"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1102"
+ inkscape:window-height="958"
+ inkscape:window-x="2117"
+ inkscape:window-y="82"
+ showgrid="false" />
+ <metadata
+ id="metadata7859">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source>http://jimmac.musichall.cz</dc:source>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:title>Mate Session Properties</dc:title>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g5672"
+ style="opacity:0.53714288"
+ transform="matrix(0.7053465,0,0,0.9765232,-0.8197989,-14.074824)">
+ <rect
+ y="38"
+ x="7.7196383"
+ height="8.5036354"
+ width="32.123024"
+ id="rect4173"
+ style="opacity:1;color:#000000;fill:url(#linearGradient5670);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path5058"
+ d="M 39.842663,38.000295 C 39.842663,38.000295 39.842663,46.503461 39.842663,46.503461 C 43.268636,46.519469 48.125002,44.598333 48.125,42.25133 C 48.125,39.904328 44.30187,38.000295 39.842663,38.000295 z "
+ style="opacity:1;color:#000000;fill:url(#radialGradient5667);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <path
+ style="opacity:1;color:#000000;fill:url(#radialGradient5664);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 7.7196385,38.000295 C 7.7196385,38.000295 7.7196385,46.503461 7.7196385,46.503461 C 4.2936621,46.519469 -0.56270146,44.598333 -0.56270146,42.25133 C -0.56270146,39.904328 3.2604286,38.000295 7.7196385,38.000295 z "
+ id="path5018"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <rect
+ style="opacity:1;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#3465a4;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect4585"
+ width="29"
+ height="25.915714"
+ x="1.5"
+ y="2.5842862"
+ rx="1.5457952"
+ ry="1.4779093" />
+ <rect
+ ry="2.2922091"
+ rx="2.2922091"
+ y="4.3838844"
+ x="2.5"
+ height="5"
+ width="43"
+ id="rect5606"
+ style="opacity:0.27999998;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.53006899;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter5628);enable-background:accumulate"
+ transform="matrix(0.6539988,0,0,0.6531321,0.5263077,0.2140377)" />
+ <rect
+ style="opacity:1;color:#000000;fill:url(#linearGradient5648);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5656);stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5556"
+ width="29"
+ height="3"
+ x="1.5"
+ y="2.5"
+ rx="1.5459085"
+ ry="1.3753254" />
+ <rect
+ ry="0.50486249"
+ rx="0.50486249"
+ y="3.2374167"
+ x="2.5"
+ height="24.262585"
+ width="27.000004"
+ id="rect5632"
+ style="opacity:0.52571429;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5640);stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <g
+ id="g5677"
+ transform="matrix(0.6539988,0,0,0.6531321,29.351952,-3.3803525)">
+ <rect
+ id="rect3818"
+ style="color:#000000;fill:url(#linearGradient5682);fill-opacity:1;fill-rule:evenodd;stroke:#8d8d8d;stroke-width:1.5300703;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ y="18.189814"
+ x="-37.999996"
+ ry="0.57820499"
+ rx="0.56373626"
+ height="21.435171"
+ width="22.935822" />
+ <rect
+ id="rect3820"
+ style="color:#000000;fill:url(#linearGradient5684);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ y="20.486441"
+ x="-35.706413"
+ ry="0.097232968"
+ rx="0.09710411"
+ height="3.0621684"
+ width="18.348656" />
+ <rect
+ id="rect4962"
+ style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.53007114;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.47878789;visibility:visible;display:inline;overflow:visible"
+ y="19.7209"
+ x="-36.47094"
+ ry="0.16788077"
+ rx="0.18690105"
+ height="18.373005"
+ width="19.877708" />
+ </g>
+ <g
+ id="g5724"
+ transform="matrix(0.6539988,0,0,0.6531321,0.5263077,5.4390943)">
+ <path
+ style="opacity:0.3142857;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter5786)"
+ d="M 10.5,25.474874 L 20.5,15.474874 L 20.5,21.005204 L 40.5,21.005204 C 44.35508,21.005204 45.58678,20.95144 45.5,23 L 45.5,33 C 45.5,33 43.070425,29.988738 40.625,29.988738 L 20.5,29.988738 L 20.5,35.474874 L 10.5,25.474874 z "
+ id="path5738"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ id="path5698"
+ d="M 10.5,23 L 20.5,13 L 20.5,18.53033 L 40.5,18.53033 C 44.35508,18.53033 45.58678,20.95144 45.5,23 L 45.5,33 C 45.5,33 45.096959,27.513864 40.625,27.513864 L 20.5,27.513864 L 20.5,33 L 10.5,23 z "
+ style="fill:url(#linearGradient5728);fill-opacity:1;fill-rule:evenodd;stroke:#555753;stroke-width:1.53006899px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 19.1875,16.1875 L 12.375,23 L 19.1875,29.8125 L 19.1875,27.5 C 19.191541,26.776807 19.776807,26.191541 20.5,26.1875 L 40.625,26.1875 C 42.124779,26.1875 43.279176,26.742626 44.1875,27.5 L 44.1875,23 C 44.187007,22.97917 44.187007,22.95833 44.1875,22.9375 C 44.218785,22.19897 44.005899,21.434255 43.5,20.875 C 42.994101,20.315745 42.151361,19.84375 40.5,19.84375 L 20.5,19.84375 C 19.776807,19.839709 19.191541,19.254443 19.1875,18.53125 L 19.1875,16.1875 z "
+ inkscape:href="#path5698"
+ id="path5712"
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5730);stroke-width:1.53006899px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xlink:href="#path5698"
+ inkscape:original="M 20.5 13 L 10.5 23 L 20.5 33 L 20.5 27.5 L 40.625 27.5 C 45.096959 27.5 45.5 33 45.5 33 L 45.5 23 C 45.58678 20.95144 44.35508 18.531249 40.5 18.53125 L 20.5 18.53125 L 20.5 13 z "
+ inkscape:radius="-1.3197637"
+ sodipodi:type="inkscape:offset" />
+ </g>
+ <rect
+ ry="0.50634968"
+ rx="0.74272269"
+ y="3.153132"
+ x="2.5"
+ height="1.346868"
+ width="27.000002"
+ id="rect4627"
+ style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5604);stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ </g>
+</svg>
diff --git a/data/icons/48x48/Makefile.am b/data/icons/48x48/Makefile.am
new file mode 100644
index 0000000..36cffbd
--- /dev/null
+++ b/data/icons/48x48/Makefile.am
@@ -0,0 +1,21 @@
+size = 48x48
+
+iconsdir = $(datadir)/icons/hicolor/$(size)/apps
+
+icons_DATA = mate-session-properties.png
+
+gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
+
+install-data-hook:
+ @-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
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+-include $(top_srcdir)/git.mk
diff --git a/data/icons/48x48/Makefile.in b/data/icons/48x48/Makefile.in
new file mode 100644
index 0000000..069a7ae
--- /dev/null
+++ b/data/icons/48x48/Makefile.in
@@ -0,0 +1,495 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = data/icons/48x48
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(iconsdir)"
+DATA = $(icons_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DEFAULT_WM = @DEFAULT_WM@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGG_SMCLIENT_CFLAGS = @EGG_SMCLIENT_CFLAGS@
+EGG_SMCLIENT_LIBS = @EGG_SMCLIENT_LIBS@
+EGREP = @EGREP@
+EXECINFO_LIBS = @EXECINFO_LIBS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HAVE_XRENDER = @HAVE_XRENDER@
+HAVE_XTEST = @HAVE_XTEST@
+ICE_CFLAGS = @ICE_CFLAGS@
+ICE_LIBS = @ICE_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATECONFTOOL = @MATECONFTOOL@
+MATECONF_CFLAGS = @MATECONF_CFLAGS@
+MATECONF_LIBS = @MATECONF_LIBS@
+MATECONF_SANITY_CHECK = @MATECONF_SANITY_CHECK@
+MATECONF_SCHEMA_CONFIG_SOURCE = @MATECONF_SCHEMA_CONFIG_SOURCE@
+MATECONF_SCHEMA_FILE_DIR = @MATECONF_SCHEMA_FILE_DIR@
+MATE_SESSION_CFLAGS = @MATE_SESSION_CFLAGS@
+MATE_SESSION_LIBS = @MATE_SESSION_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+REBUILD = @REBUILD@
+SED = @SED@
+SESSION_PROPERTIES_CFLAGS = @SESSION_PROPERTIES_CFLAGS@
+SESSION_PROPERTIES_LIBS = @SESSION_PROPERTIES_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SM_CFLAGS = @SM_CFLAGS@
+SM_LIBS = @SM_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XGETTEXT = @XGETTEXT@
+XMKMF = @XMKMF@
+XMLTO = @XMLTO@
+XRENDER_CFLAGS = @XRENDER_CFLAGS@
+XRENDER_LIBS = @XRENDER_LIBS@
+XSLTPROC = @XSLTPROC@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 48x48
+iconsdir = $(datadir)/icons/hicolor/$(size)/apps
+icons_DATA = mate-session-properties.png
+gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
+EXTRA_DIST = \
+ $(icons_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/48x48/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu data/icons/48x48/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-iconsDATA: $(icons_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)"
+ @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \
+ done
+
+uninstall-iconsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(iconsdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(iconsdir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(iconsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-iconsDATA
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-iconsDATA
+
+.MAKE: install-am install-data-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-hook install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-iconsDATA install-info install-info-am \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-iconsDATA
+
+
+install-data-hook:
+ @-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
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/icons/48x48/mate-session-properties.png b/data/icons/48x48/mate-session-properties.png
new file mode 100644
index 0000000..32c2358
--- /dev/null
+++ b/data/icons/48x48/mate-session-properties.png
Binary files differ
diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am
new file mode 100644
index 0000000..014b2e4
--- /dev/null
+++ b/data/icons/Makefile.am
@@ -0,0 +1,3 @@
+SUBDIRS = 16x16 22x22 24x24 32x32 48x48 scalable
+
+-include $(top_srcdir)/git.mk
diff --git a/data/icons/Makefile.in b/data/icons/Makefile.in
new file mode 100644
index 0000000..a93864b
--- /dev/null
+++ b/data/icons/Makefile.in
@@ -0,0 +1,633 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = data/icons
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DEFAULT_WM = @DEFAULT_WM@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGG_SMCLIENT_CFLAGS = @EGG_SMCLIENT_CFLAGS@
+EGG_SMCLIENT_LIBS = @EGG_SMCLIENT_LIBS@
+EGREP = @EGREP@
+EXECINFO_LIBS = @EXECINFO_LIBS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HAVE_XRENDER = @HAVE_XRENDER@
+HAVE_XTEST = @HAVE_XTEST@
+ICE_CFLAGS = @ICE_CFLAGS@
+ICE_LIBS = @ICE_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATECONFTOOL = @MATECONFTOOL@
+MATECONF_CFLAGS = @MATECONF_CFLAGS@
+MATECONF_LIBS = @MATECONF_LIBS@
+MATECONF_SANITY_CHECK = @MATECONF_SANITY_CHECK@
+MATECONF_SCHEMA_CONFIG_SOURCE = @MATECONF_SCHEMA_CONFIG_SOURCE@
+MATECONF_SCHEMA_FILE_DIR = @MATECONF_SCHEMA_FILE_DIR@
+MATE_SESSION_CFLAGS = @MATE_SESSION_CFLAGS@
+MATE_SESSION_LIBS = @MATE_SESSION_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+REBUILD = @REBUILD@
+SED = @SED@
+SESSION_PROPERTIES_CFLAGS = @SESSION_PROPERTIES_CFLAGS@
+SESSION_PROPERTIES_LIBS = @SESSION_PROPERTIES_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SM_CFLAGS = @SM_CFLAGS@
+SM_LIBS = @SM_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XGETTEXT = @XGETTEXT@
+XMKMF = @XMKMF@
+XMLTO = @XMLTO@
+XRENDER_CFLAGS = @XRENDER_CFLAGS@
+XRENDER_LIBS = @XRENDER_LIBS@
+XSLTPROC = @XSLTPROC@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = 16x16 22x22 24x24 32x32 48x48 scalable
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu data/icons/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ ctags ctags-recursive distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/icons/scalable/Makefile.am b/data/icons/scalable/Makefile.am
new file mode 100644
index 0000000..eaaae93
--- /dev/null
+++ b/data/icons/scalable/Makefile.am
@@ -0,0 +1,21 @@
+size = scalable
+
+iconsdir = $(datadir)/icons/hicolor/$(size)/apps
+
+icons_DATA = mate-session-properties.svg
+
+gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
+
+install-data-hook:
+ @-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
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+-include $(top_srcdir)/git.mk
diff --git a/data/icons/scalable/Makefile.in b/data/icons/scalable/Makefile.in
new file mode 100644
index 0000000..97ca6e9
--- /dev/null
+++ b/data/icons/scalable/Makefile.in
@@ -0,0 +1,495 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = data/icons/scalable
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(iconsdir)"
+DATA = $(icons_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DEFAULT_WM = @DEFAULT_WM@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGG_SMCLIENT_CFLAGS = @EGG_SMCLIENT_CFLAGS@
+EGG_SMCLIENT_LIBS = @EGG_SMCLIENT_LIBS@
+EGREP = @EGREP@
+EXECINFO_LIBS = @EXECINFO_LIBS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HAVE_XRENDER = @HAVE_XRENDER@
+HAVE_XTEST = @HAVE_XTEST@
+ICE_CFLAGS = @ICE_CFLAGS@
+ICE_LIBS = @ICE_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATECONFTOOL = @MATECONFTOOL@
+MATECONF_CFLAGS = @MATECONF_CFLAGS@
+MATECONF_LIBS = @MATECONF_LIBS@
+MATECONF_SANITY_CHECK = @MATECONF_SANITY_CHECK@
+MATECONF_SCHEMA_CONFIG_SOURCE = @MATECONF_SCHEMA_CONFIG_SOURCE@
+MATECONF_SCHEMA_FILE_DIR = @MATECONF_SCHEMA_FILE_DIR@
+MATE_SESSION_CFLAGS = @MATE_SESSION_CFLAGS@
+MATE_SESSION_LIBS = @MATE_SESSION_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+REBUILD = @REBUILD@
+SED = @SED@
+SESSION_PROPERTIES_CFLAGS = @SESSION_PROPERTIES_CFLAGS@
+SESSION_PROPERTIES_LIBS = @SESSION_PROPERTIES_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SM_CFLAGS = @SM_CFLAGS@
+SM_LIBS = @SM_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XGETTEXT = @XGETTEXT@
+XMKMF = @XMKMF@
+XMLTO = @XMLTO@
+XRENDER_CFLAGS = @XRENDER_CFLAGS@
+XRENDER_LIBS = @XRENDER_LIBS@
+XSLTPROC = @XSLTPROC@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = scalable
+iconsdir = $(datadir)/icons/hicolor/$(size)/apps
+icons_DATA = mate-session-properties.svg
+gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
+EXTRA_DIST = \
+ $(icons_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/scalable/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu data/icons/scalable/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-iconsDATA: $(icons_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)"
+ @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \
+ done
+
+uninstall-iconsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(iconsdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(iconsdir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(iconsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-iconsDATA
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-iconsDATA
+
+.MAKE: install-am install-data-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-hook install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-iconsDATA install-info install-info-am \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-iconsDATA
+
+
+install-data-hook:
+ @-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
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/icons/scalable/mate-session-properties.svg b/data/icons/scalable/mate-session-properties.svg
new file mode 100644
index 0000000..a06a4f2
--- /dev/null
+++ b/data/icons/scalable/mate-session-properties.svg
@@ -0,0 +1,515 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ 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"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48"
+ height="48"
+ id="svg7854"
+ sodipodi:version="0.32"
+ inkscape:version="0.44+devel"
+ version="1.0"
+ sodipodi:docname="session-properties.svg"
+ sodipodi:docbase="/home/jimmac/gfx/ximian/art/icons/control-center/scalable"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ sodipodi:modified="true">
+ <defs
+ id="defs7856">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5650">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1;"
+ offset="0"
+ id="stop5652" />
+ <stop
+ style="stop-color:#9ea795;stop-opacity:1"
+ offset="1"
+ id="stop5654" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5642">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop5644" />
+ <stop
+ style="stop-color:#c3c3bc;stop-opacity:1"
+ offset="1"
+ id="stop5646" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5634">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5636" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5638" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5598">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5600" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5602" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5716">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5718" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5720" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5700">
+ <stop
+ style="stop-color:#e4e4e4;stop-opacity:1;"
+ offset="0"
+ id="stop5702" />
+ <stop
+ id="stop5708"
+ offset="0.639386"
+ style="stop-color:#fefefe;stop-opacity:1" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.79632628"
+ id="stop5710" />
+ <stop
+ style="stop-color:#949494;stop-opacity:1"
+ offset="1"
+ id="stop5704" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3832">
+ <stop
+ id="stop3834"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000" />
+ <stop
+ id="stop3836"
+ offset="1.0000000"
+ style="stop-color:#e0e0e0;stop-opacity:1.0000000" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4816">
+ <stop
+ id="stop4818"
+ offset="0.0000000"
+ style="stop-color:#204a87;stop-opacity:1.0000000" />
+ <stop
+ id="stop4820"
+ offset="1.0000000"
+ style="stop-color:#204a87;stop-opacity:0.0000000" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5048">
+ <stop
+ id="stop5050"
+ offset="0"
+ style="stop-color:black;stop-opacity:0;" />
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0.5"
+ id="stop5056" />
+ <stop
+ id="stop5052"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5060"
+ inkscape:collect="always">
+ <stop
+ id="stop5062"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop5064"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5664"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.6526975e-2,0,0,3.5014969e-2,47.812816,25.161837)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5667"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.6526975e-2,0,0,3.5014969e-2,-0.2505064,25.161837)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient5670"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.6526975e-2,0,0,3.5014969e-2,-0.2635996,25.161837)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3832"
+ id="linearGradient5682"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.367592,0,0,1.259127,-45.521751,9.5621318)"
+ x1="17.880680"
+ y1="11.072588"
+ x2="17.880680"
+ y2="21.767578" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4816"
+ id="linearGradient5684"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.325819,0,0,1.19936,-44.590631,11.169522)"
+ x1="13.050564"
+ y1="11.353518"
+ x2="13.050564"
+ y2="5.6173568" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3832"
+ id="linearGradient5694"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.367592,0,0,1.259127,-45.521751,9.5621318)"
+ x1="17.880680"
+ y1="11.072588"
+ x2="17.880680"
+ y2="21.767578" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4816"
+ id="linearGradient5696"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.325819,0,0,1.19936,-44.590631,11.169522)"
+ x1="13.050564"
+ y1="11.353518"
+ x2="13.050564"
+ y2="5.6173568" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5700"
+ id="linearGradient5728"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0.5,0)"
+ x1="24"
+ y1="23"
+ x2="45.505004"
+ y2="23" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5716"
+ id="linearGradient5730"
+ gradientUnits="userSpaceOnUse"
+ x1="40.745819"
+ y1="23"
+ x2="44.005268"
+ y2="23" />
+ <filter
+ inkscape:collect="always"
+ id="filter5786">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.62861987"
+ id="feGaussianBlur5788" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5598"
+ id="linearGradient5604"
+ x1="25.627417"
+ y1="8"
+ x2="25.627417"
+ y2="4.7617435"
+ gradientUnits="userSpaceOnUse" />
+ <filter
+ inkscape:collect="always"
+ x="-0.019480519"
+ width="1.038961"
+ y="-0.14285714"
+ height="1.2857143"
+ id="filter5628">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.42857143"
+ id="feGaussianBlur5630" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5634"
+ id="linearGradient5640"
+ x1="25.313259"
+ y1="42.656792"
+ x2="25.313261"
+ y2="10.129107"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5642"
+ id="linearGradient5648"
+ x1="26.29347"
+ y1="7.3125"
+ x2="26.232994"
+ y2="3.5357027"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5650"
+ id="linearGradient5656"
+ x1="26.29347"
+ y1="7.3125"
+ x2="26.232994"
+ y2="3.5357027"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#e0e0e0"
+ borderopacity="1"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4"
+ inkscape:cx="20.372005"
+ inkscape:cy="14.768475"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="48px"
+ height="48px"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1102"
+ inkscape:window-height="958"
+ inkscape:window-x="2117"
+ inkscape:window-y="82"
+ showgrid="false" />
+ <metadata
+ id="metadata7859">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source>http://jimmac.musichall.cz</dc:source>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:title>Mate Session Properties</dc:title>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g5672"
+ style="opacity:0.53714286">
+ <rect
+ y="38"
+ x="7.7196383"
+ height="8.5036354"
+ width="32.123024"
+ id="rect4173"
+ style="opacity:1;color:#000000;fill:url(#linearGradient5670);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path5058"
+ d="M 39.842663,38.000295 C 39.842663,38.000295 39.842663,46.503461 39.842663,46.503461 C 43.268636,46.519469 48.125002,44.598333 48.125,42.25133 C 48.125,39.904328 44.30187,38.000295 39.842663,38.000295 z "
+ style="opacity:1;color:#000000;fill:url(#radialGradient5667);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <path
+ style="opacity:1;color:#000000;fill:url(#radialGradient5664);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 7.7196385,38.000295 C 7.7196385,38.000295 7.7196385,46.503461 7.7196385,46.503461 C 4.2936621,46.519469 -0.56270146,44.598333 -0.56270146,42.25133 C -0.56270146,39.904328 3.2604286,38.000295 7.7196385,38.000295 z "
+ id="path5018"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <rect
+ style="opacity:1;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#3465a4;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect4585"
+ width="42.848347"
+ height="39.870949"
+ x="2.6516504"
+ y="3.6290491"
+ rx="2.2839575"
+ ry="2.273742" />
+ <rect
+ ry="2.2922091"
+ rx="2.2922091"
+ y="4.3838844"
+ x="2.5"
+ height="5"
+ width="43"
+ id="rect5606"
+ style="opacity:0.28;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;filter:url(#filter5628)" />
+ <rect
+ style="opacity:1;color:#000000;fill:url(#linearGradient5648);fill-opacity:1.0;fill-rule:evenodd;stroke:url(#linearGradient5656);stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5556"
+ width="43"
+ height="5"
+ x="2.5"
+ y="3.5"
+ rx="2.2922091"
+ ry="2.2922091" />
+ <rect
+ ry="1.2758038"
+ rx="1.2758038"
+ y="4.6290464"
+ x="3.6516466"
+ height="37.870953"
+ width="40.848354"
+ id="rect5632"
+ style="opacity:0.52571429;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5640);stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <g
+ id="g5677"
+ transform="translate(43.499997,-2.124989)">
+ <rect
+ id="rect3818"
+ style="color:#000000;fill:url(#linearGradient5682);fill-opacity:1;fill-rule:evenodd;stroke:#8d8d8d;stroke-width:1.00000095;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ y="19.625"
+ x="-37.999996"
+ ry="0.53949153"
+ rx="0.54073501"
+ height="19.999989"
+ width="22.000008" />
+ <rect
+ id="rect3820"
+ style="color:#000000;fill:url(#linearGradient5684);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ y="21.125"
+ x="-36.499996"
+ ry="0.095258936"
+ rx="0.10055112"
+ height="3"
+ width="19" />
+ <rect
+ id="rect4962"
+ style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000143;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.47878789;visibility:visible;display:inline;overflow:visible"
+ y="20.624994"
+ x="-37"
+ ry="0.16447251"
+ rx="0.188051"
+ height="18.000002"
+ width="20.000011" />
+ </g>
+ <g
+ transform="translate(53.499997,-7.124989)"
+ id="g5686">
+ <rect
+ width="22.000008"
+ height="19.999989"
+ rx="0.54073501"
+ ry="0.53949153"
+ x="-37.999996"
+ y="19.625"
+ style="color:#000000;fill:url(#linearGradient5694);fill-opacity:1;fill-rule:evenodd;stroke:#8d8d8d;stroke-width:1.00000095;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="rect5688" />
+ <rect
+ width="19"
+ height="3"
+ rx="0.10055112"
+ ry="0.095258936"
+ x="-36.499996"
+ y="21.125"
+ style="color:#000000;fill:url(#linearGradient5696);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="rect5690" />
+ <rect
+ width="20.000011"
+ height="18.000002"
+ rx="0.188051"
+ ry="0.16447251"
+ x="-37"
+ y="20.624994"
+ style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000143;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.47878789;visibility:visible;display:inline;overflow:visible"
+ id="rect5692" />
+ </g>
+ <g
+ id="g5724"
+ transform="translate(0,8)">
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;opacity:0.31428571;filter:url(#filter5786)"
+ d="M 10.5,25.474874 L 20.5,15.474874 L 20.5,21.005204 L 40.5,21.005204 C 44.35508,21.005204 45.58678,20.95144 45.5,23 L 45.5,33 C 45.5,33 43.070425,29.988738 40.625,29.988738 L 20.5,29.988738 L 20.5,35.474874 L 10.5,25.474874 z "
+ id="path5738"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ id="path5698"
+ d="M 10.5,23 L 20.5,13 L 20.5,18.53033 L 40.5,18.53033 C 44.35508,18.53033 45.58678,20.95144 45.5,23 L 45.5,33 C 45.5,33 45.096959,27.513864 40.625,27.513864 L 20.5,27.513864 L 20.5,33 L 10.5,23 z "
+ style="fill:url(#linearGradient5728);fill-opacity:1;fill-rule:evenodd;stroke:#555753;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 19.5625,15.25 L 11.8125,23 L 19.5625,30.75 L 19.5625,27.5 C 19.55998,27.250596 19.657943,27.010672 19.834307,26.834307 C 20.010672,26.657943 20.250596,26.55998 20.5,26.5625 L 40.625,26.5625 C 42.489029,26.5625 43.674657,27.497362 44.5625,28.5625 L 44.5625,23 C 44.562325,22.989584 44.562325,22.979166 44.5625,22.96875 C 44.597378,22.145414 44.36819,21.273844 43.78125,20.625 C 43.19431,19.976156 42.233327,19.46875 40.5,19.46875 L 20.5,19.46875 C 20.250596,19.47127 20.010672,19.373307 19.834307,19.196943 C 19.657943,19.020578 19.55998,18.780654 19.5625,18.53125 L 19.5625,15.25 z "
+ inkscape:href="#path5698"
+ id="path5712"
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5730);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xlink:href="#path5698"
+ inkscape:original="M 20.5 13 L 10.5 23 L 20.5 33 L 20.5 27.5 L 40.625 27.5 C 45.096959 27.5 45.5 33 45.5 33 L 45.5 23 C 45.58678 20.95144 44.35508 18.531249 40.5 18.53125 L 20.5 18.53125 L 20.5 13 z "
+ inkscape:radius="-0.92807764"
+ sodipodi:type="inkscape:offset" />
+ </g>
+ <rect
+ ry="1.1278381"
+ rx="1.1278381"
+ y="4.5"
+ x="3.5"
+ height="3"
+ width="41"
+ id="rect4627"
+ style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5604);stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ </g>
+</svg>
diff --git a/data/mate-session-properties.desktop.in.in b/data/mate-session-properties.desktop.in.in
new file mode 100644
index 0000000..c31fe2a
--- /dev/null
+++ b/data/mate-session-properties.desktop.in.in
@@ -0,0 +1,14 @@
+[Desktop Entry]
+_Name=Startup Applications
+_Comment=Choose what applications to start when you log in
+Exec=mate-session-properties
+Icon=mate-session-properties
+Terminal=false
+Type=Application
+StartupNotify=true
+Categories=GTK;MATE;Settings;X-MATE-PersonalSettings;
+OnlyShowIn=MATE;
+X-MATE-Bugzilla-Bugzilla=MATE
+X-MATE-Bugzilla-Product=mate-session
+X-MATE-Bugzilla-Component=mate-session-properties
+X-MATE-Bugzilla-Version=@VERSION@
diff --git a/data/mate-session.schemas.in.in b/data/mate-session.schemas.in.in
new file mode 100644
index 0000000..c049cf0
--- /dev/null
+++ b/data/mate-session.schemas.in.in
@@ -0,0 +1,101 @@
+<?xml version="1.0"?>
+<mateconfschemafile>
+ <schemalist>
+
+ <schema>
+ <key>/schemas/apps/mate-session/options/auto_save_session</key>
+ <applyto>/apps/mate-session/options/auto_save_session</applyto>
+ <owner>mate</owner>
+ <type>bool</type>
+ <default>false</default>
+ <locale name="C">
+ <short>Save sessions</short>
+ <long>If enabled, mate-session will save the session automatically.</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/mate-session/options/logout_prompt</key>
+ <applyto>/apps/mate-session/options/logout_prompt</applyto>
+ <owner>mate</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+ <short>Logout prompt</short>
+ <long>If enabled, mate-session will prompt the user before ending a session.</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/mate/session/idle_delay</key>
+ <applyto>/desktop/mate/session/idle_delay</applyto>
+ <owner>mate</owner>
+ <type>int</type>
+ <default>5</default>
+ <locale name="C">
+ <short>Time before session is considered idle</short>
+ <long>
+ The number of minutes of inactivity before the session is
+ considered idle.
+ </long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/mate/session/default_session</key>
+ <applyto>/desktop/mate/session/default_session</applyto>
+ <owner>mate</owner>
+ <type>list</type>
+ <list_type>string</list_type>
+ <default>[mate-settings-daemon]</default>
+ <!-- FIXME when not string frozen: mention that required components are added to the default session -->
+ <locale name="C">
+ <short>Default session</short>
+ <long>List of applications that are part of the default session.</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/mate/session/required_components_list</key>
+ <applyto>/desktop/mate/session/required_components_list</applyto>
+ <owner>mate</owner>
+ <type>list</type>
+ <list_type>string</list_type>
+ <default>[windowmanager,panel,filemanager]</default>
+ <locale name="C">
+ <short>Required session components</short>
+ <long>List of components that are required as part of the session. (Each element names a key under "/desktop/mate/session/required_components"). The Startup Applications preferences tool will not normally allow users to remove a required component from the session, and the session manager will automatically add the required components back to the session at login time if they do get removed.</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/mate/session/required_components/windowmanager</key>
+ <applyto>/desktop/mate/session/required_components/windowmanager</applyto>
+ <owner>mate</owner>
+ <type>string</type>
+ <default>@DEFAULT_WM@</default>
+ <locale name="C">
+ <short>Window Manager</short>
+ <long>The window manager is the program that draws the title bar and borders around windows, and allows you to move and resize windows.</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/mate/session/required_components/panel</key>
+ <applyto>/desktop/mate/session/required_components/panel</applyto>
+ <owner>mate</owner>
+ <type>string</type>
+ <default>mate-panel</default>
+ <locale name="C">
+ <short>Panel</short>
+ <long>The panel provides the bar at the top or bottom of the screen containing menus, the window list, status icons, the clock, etc.</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/mate/session/required_components/filemanager</key>
+ <applyto>/desktop/mate/session/required_components/filemanager</applyto>
+ <owner>mate</owner>
+ <type>string</type>
+ <default>caja</default>
+ <locale name="C">
+ <short>File Manager</short>
+ <long>The file manager provides the desktop icons and allows you to interact with your saved files.</long>
+ </locale>
+ </schema>
+
+ </schemalist>
+</mateconfschemafile>
diff --git a/data/mate-wm b/data/mate-wm
new file mode 100755
index 0000000..a4e8297
--- /dev/null
+++ b/data/mate-wm
@@ -0,0 +1,160 @@
+#!/bin/sh
+
+# The user can specify his prefered WM by setting the WINDOW_MANAGER
+# environment variable.
+#
+# If this is not set, we search a list of known windowmanagers and use
+# the first one that is found in the users's PATH
+#
+# NOTE: DON'T USE THIS. Please have your window manager install
+# a desktop file and change the mateconf key
+# /desktop/mate/session/required_components/windowmanager
+
+# sm-client-id value
+SMID=
+# default-wm value
+DEFWM=
+
+#read in the arguments
+GET=
+for n in "$@" ; do
+ case "$GET" in
+ smid)
+ SMID=$n
+ GET=
+ ;;
+ defwm)
+ DEFWM=$n
+ GET=
+ ;;
+ *)
+ case "$n" in
+ --sm-client-id)
+ GET=smid
+ ;;
+ --default-wm)
+ GET=defwm
+ ;;
+ esac
+ ;;
+ esac
+done
+
+# WINDOW_MANAGER overrides all
+if [ -z "$WINDOW_MANAGER" ] ; then
+ WINDOW_MANAGER=`mateconftool-2 --get /desktop/mate/session/required_components/windowmanager 2> /dev/null`
+fi
+
+# Migrate compiz to compiz-manager if possible and needed
+if [ "x$WINDOW_MANAGER" = "xcompiz" -o "x$DEFWM" = "xcompiz" ]; then
+ which compiz-manager > /dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ if [ "x$WINDOW_MANAGER" = "xcompiz" ]; then
+ WINDOW_MANAGER="compiz-manager"
+ fi
+ if [ "x$DEFWM" = "xcompiz" ]; then
+ DEFWM="compiz-manager"
+ fi
+ fi
+fi
+
+# Avoid looping if the session configuration tells us to use mate-wm or if
+# the user forces mate-wm via WINDOW_MANAGER
+if [ "x$WINDOW_MANAGER" = "xmate-wm" ]; then
+ WINDOW_MANAGER=""
+fi
+
+if [ -z "$WINDOW_MANAGER" ] ; then
+ # Create a list of window manager we can handle, trying to only use the
+ # compositing ones when it makes sense
+
+ xdpyinfo 2> /dev/null | grep -q "^ *Composite$" 2> /dev/null
+ IS_X_COMPOSITED=$?
+
+ KNOWN_WM="sawfish sawmill enlightenment icewm wmaker fvwm2 qvwm fvwm twm kwm"
+ if [ $IS_X_COMPOSITED -eq 0 ] ; then
+ KNOWN_WM="mutter compiz-manager compiz beryl $KNOWN_WM"
+ fi
+ # marco is still the default wm in MATE
+ KNOWN_WM="marco $KNOWN_WM"
+
+ OLDIFS=$IFS
+ if [ -z "$DEFWM" -o "x$DEFWM" = "xmate-wm" ]; then
+
+ for wm in $KNOWN_WM ; do
+ IFS=":"
+ for dir in $PATH ; do
+ if [ -x "$dir/$wm" ] ; then
+ WINDOW_MANAGER="$dir/$wm"
+ break 2
+ fi
+ done
+ IFS=$OLDIFS
+ done
+
+ else
+ WINDOW_MANAGER=$DEFWM
+ fi
+ IFS=$OLDIFS
+fi
+
+# If no window manager can be found, we default to xterm
+
+if [ -z "$WINDOW_MANAGER" ] ; then
+ echo "WARNING: No window manager can be found."
+ WINDOW_MANAGER=xterm
+fi
+
+# Now create options OPT1, OPT2 and OPT3 based on the windowmanager used
+OPT1=
+OPT2=
+OPT3=
+OPT4=
+if [ ! -z "$SMID" ] ; then
+ case `basename $WINDOW_MANAGER` in
+ sawfish|sawmill|marco|mutter)
+ OPT1=--sm-client-id=$SMID
+ ;;
+ openbox|enlightenment|e16)
+ OPT1=--sm-client-id
+ OPT2=$SMID
+ ;;
+ twm)
+ OPT1=-clientId
+ OPT2=$SMID
+ ;;
+ lwm)
+ OPT1=-s
+ OPT2=$SMID
+ ;;
+ fvwm)
+ OPT1=-i
+ OPT2=$SMID
+ ;;
+ compiz|compiz-manager)
+ OPT1=--sm-client-id
+ OPT2=$SMID
+ ;;
+ beryl)
+ OPT1=--sm-client-id
+ OPT2=$SMID
+ ;;
+ #FIXME: add all other windowmanagers here with their proper options
+ esac
+fi
+
+case `basename $WINDOW_MANAGER` in
+ compiz)
+ export LIBGL_ALWAYS_INDIRECT=1
+ gtk-window-decorator &
+ OPT3=glib
+ OPT4=mateconf
+ ;;
+ beryl)
+ emerald &
+ ;;
+esac
+
+exec $WINDOW_MANAGER $OPT1 $OPT2 $OPT3 $OPT4
+
+echo "ERROR: No window manager could run!"
diff --git a/data/mate-wm.desktop.in.in b/data/mate-wm.desktop.in.in
new file mode 100644
index 0000000..99f0523
--- /dev/null
+++ b/data/mate-wm.desktop.in.in
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Type=Application
+_Name=Window Manager
+Exec=mate-wm
+NoDisplay=true
+X-MATE-Autostart-Phase=WindowManager
+X-MATE-Provides=windowmanager
+X-MATE-Autostart-Notify=true
+X-MATE-Bugzilla-Bugzilla=MATE
+X-MATE-Bugzilla-Product=mate-session
+X-MATE-Bugzilla-Component=general
+X-MATE-Bugzilla-Version=@VERSION@
diff --git a/data/mate.desktop.in b/data/mate.desktop.in
new file mode 100644
index 0000000..d356f96
--- /dev/null
+++ b/data/mate.desktop.in
@@ -0,0 +1,7 @@
+[Desktop Entry]
+_Name=MATE
+_Comment=This session logs you into MATE
+Exec=mate-session
+TryExec=mate-session
+Icon=
+Type=Application
diff --git a/data/session-properties.ui b/data/session-properties.ui
new file mode 100644
index 0000000..24f721d
--- /dev/null
+++ b/data/session-properties.ui
@@ -0,0 +1,323 @@
+<?xml version="1.0"?>
+<interface>
+ <requires lib="gtk+" version="2.16"/>
+ <!-- interface-naming-policy toplevel-contextual -->
+ <object class="GtkNotebook" id="main-notebook">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="border_width">6</property>
+ <child>
+ <object class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="border_width">12</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkLabel" id="label6">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="xpad">3</property>
+ <property name="ypad">3</property>
+ <property name="label" translatable="yes">Additional startup _programs:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">session_properties_treeview</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="hbox1">
+ <property name="visible">True</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolledwindow1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <property name="shadow_type">etched-in</property>
+ <child>
+ <object class="GtkTreeView" id="session_properties_treeview">
+ <property name="height_request">210</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVButtonBox" id="vbuttonbox1">
+ <property name="visible">True</property>
+ <property name="spacing">6</property>
+ <property name="layout_style">start</property>
+ <child>
+ <object class="GtkButton" id="session_properties_add_button">
+ <property name="label">gtk-add</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="session_properties_delete_button">
+ <property name="label">gtk-remove</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="session_properties_edit_button">
+ <property name="label">gtk-edit</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Startup Programs</property>
+ </object>
+ <packing>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVBox" id="vbox3">
+ <property name="visible">True</property>
+ <property name="border_width">12</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkCheckButton" id="session_properties_remember_toggle">
+ <property name="label" translatable="yes">_Automatically remember running applications when logging out</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHButtonBox" id="hbuttonbox1">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkButton" id="session_properties_save_button">
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <child>
+ <object class="GtkHBox" id="hbox2">
+ <property name="visible">True</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="stock">gtk-save</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label7">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Remember Currently Running Application</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label5">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Options</property>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ </object>
+ <object class="GtkTable" id="main-table">
+ <property name="visible">True</property>
+ <property name="border_width">6</property>
+ <property name="n_rows">3</property>
+ <property name="n_columns">2</property>
+ <property name="column_spacing">12</property>
+ <property name="row_spacing">6</property>
+ <child>
+ <object class="GtkHBox" id="hbox3">
+ <property name="visible">True</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkEntry" id="session_properties_command_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">&#x25CF;</property>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="session_properties_browse_button">
+ <property name="label" translatable="yes">Browse…</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="session_properties_comment_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">&#x25CF;</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="session_properties_name_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">&#x25CF;</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Comm_ent:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">label2</property>
+ </object>
+ <packing>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Co_mmand:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">session_properties_command_entry</property>
+ </object>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Name:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">session_properties_name_entry</property>
+ </object>
+ <packing>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ </object>
+</interface>
diff --git a/depcomp b/depcomp
new file mode 100755
index 0000000..df8eea7
--- /dev/null
+++ b/depcomp
@@ -0,0 +1,630 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2009-04-28.21; # UTC
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
+# Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, 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, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <[email protected]>.
+
+case $1 in
+ '')
+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+ depmode Dependency tracking mode.
+ source Source file read by `PROGRAMS ARGS'.
+ object Object file output by `PROGRAMS ARGS'.
+ DEPDIR directory where to store dependencies.
+ depfile Dependency file to output.
+ tmpdepfile Temporary file to use when outputing dependencies.
+ libtool Whether libtool is used (yes/no).
+
+Report bugs to <[email protected]>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "depcomp $scriptversion"
+ exit $?
+ ;;
+esac
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+ echo "depcomp: Variables source, object and depmode must be set" 1>&2
+ exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Some modes work just like other modes, but use different flags. We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write. Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+ # HP compiler uses -M and no extra arg.
+ gccflag=-M
+ depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+ # This is just like dashmstdout with a different argument.
+ dashmflag=-xM
+ depmode=dashmstdout
+fi
+
+cygpath_u="cygpath -u -f -"
+if test "$depmode" = msvcmsys; then
+ # This is just like msvisualcpp but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u="sed s,\\\\\\\\,/,g"
+ depmode=msvisualcpp
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want. Yay! Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff. Hmm.
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am. Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+ for arg
+ do
+ case $arg in
+ -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+ *) set fnord "$@" "$arg" ;;
+ esac
+ shift # fnord
+ shift # $arg
+ done
+ "$@"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ mv "$tmpdepfile" "$depfile"
+ ;;
+
+gcc)
+## There are various ways to get dependency output from gcc. Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+## up in a subdir. Having to rename by hand is ugly.
+## (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+## -MM, not -M (despite what the docs say).
+## - Using -M directly means running the compiler twice (even worse
+## than renaming).
+ if test -z "$gccflag"; then
+ gccflag=-MD,
+ fi
+ "$@" -Wp,"$gccflag$tmpdepfile"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## The second -e expression handles DOS-style file names with drive letters.
+ sed -e 's/^[^:]*: / /' \
+ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the `deleted header file' problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header). We avoid this by adding
+## dummy dependencies for each header file. Too bad gcc doesn't do
+## this for us directly.
+ tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'. On the theory
+## that the space means something, we add a space to the output as
+## well.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+sgi)
+ if test "$libtool" = yes; then
+ "$@" "-Wp,-MDupdate,$tmpdepfile"
+ else
+ "$@" -MDupdate "$tmpdepfile"
+ fi
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+
+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
+ echo "$object : \\" > "$depfile"
+
+ # Clip off the initial element (the dependent). Don't try to be
+ # clever and replace this with sed code, as IRIX sed won't handle
+ # lines with more than a fixed number of characters (4096 in
+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
+ # the IRIX cc adds comments like `#:fec' to the end of the
+ # dependency line.
+ tr ' ' '
+' < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+ tr '
+' ' ' >> "$depfile"
+ echo >> "$depfile"
+
+ # The second pass generates a dummy entry for each header file.
+ tr ' ' '
+' < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+ >> "$depfile"
+ else
+ # The sourcefile does not contain any dependencies, so just
+ # store a dummy comment line, to avoid errors with the Makefile
+ # "include basename.Plo" scheme.
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+aix)
+ # The C for AIX Compiler uses -M and outputs the dependencies
+ # in a .u file. In older versions, this file always lives in the
+ # current directory. Also, the AIX compiler puts `$object:' at the
+ # start of each line; $object doesn't have directory information.
+ # Version 6 uses the directory in both cases.
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$base.u
+ tmpdepfile3=$dir.libs/$base.u
+ "$@" -Wc,-M
+ else
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$dir$base.u
+ tmpdepfile3=$dir$base.u
+ "$@" -M
+ fi
+ stat=$?
+
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ # Each line is of the form `foo.o: dependent.h'.
+ # Do two passes, one to just change these to
+ # `$object: dependent.h' and one to simply `dependent.h:'.
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+ # That's a tab and a space in the [].
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+ else
+ # The sourcefile does not contain any dependencies, so just
+ # store a dummy comment line, to avoid errors with the Makefile
+ # "include basename.Plo" scheme.
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+icc)
+ # Intel's C compiler understands `-MD -MF file'. However on
+ # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+ # ICC 7.0 will fill foo.d with something like
+ # foo.o: sub/foo.c
+ # foo.o: sub/foo.h
+ # which is wrong. We want:
+ # sub/foo.o: sub/foo.c
+ # sub/foo.o: sub/foo.h
+ # sub/foo.c:
+ # sub/foo.h:
+ # ICC 7.1 will output
+ # foo.o: sub/foo.c sub/foo.h
+ # and will wrap long lines using \ :
+ # foo.o: sub/foo.c ... \
+ # sub/foo.h ... \
+ # ...
+
+ "$@" -MD -MF "$tmpdepfile"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ # Each line is of the form `foo.o: dependent.h',
+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+ # Do two passes, one to just change these to
+ # `$object: dependent.h' and one to simply `dependent.h:'.
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+ sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp2)
+ # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+ # compilers, which have integrated preprocessors. The correct option
+ # to use with these is +Maked; it writes dependencies to a file named
+ # 'foo.d', which lands next to the object file, wherever that
+ # happens to be.
+ # Much of this is similar to the tru64 case; see comments there.
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir.libs/$base.d
+ "$@" -Wc,+Maked
+ else
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir$base.d
+ "$@" +Maked
+ fi
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile1" "$tmpdepfile2"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+ # Add `dependent.h:' lines.
+ sed -ne '2,${
+ s/^ *//
+ s/ \\*$//
+ s/$/:/
+ p
+ }' "$tmpdepfile" >> "$depfile"
+ else
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile" "$tmpdepfile2"
+ ;;
+
+tru64)
+ # The Tru64 compiler uses -MD to generate dependencies as a side
+ # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+ # dependencies in `foo.d' instead, so we check for that too.
+ # Subdirectories are respected.
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+
+ if test "$libtool" = yes; then
+ # With Tru64 cc, shared objects can also be used to make a
+ # static library. This mechanism is used in libtool 1.4 series to
+ # handle both shared and static libraries in a single compilation.
+ # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
+ #
+ # With libtool 1.5 this exception was removed, and libtool now
+ # generates 2 separate objects for the 2 libraries. These two
+ # compilations output dependencies in $dir.libs/$base.o.d and
+ # in $dir$base.o.d. We have to check for both files, because
+ # one of the two compilations can be disabled. We should prefer
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+ # automatically cleaned when .libs/ is deleted, while ignoring
+ # the former would cause a distcleancheck panic.
+ tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
+ tmpdepfile2=$dir$base.o.d # libtool 1.5
+ tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
+ tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
+ "$@" -Wc,-MD
+ else
+ tmpdepfile1=$dir$base.o.d
+ tmpdepfile2=$dir$base.d
+ tmpdepfile3=$dir$base.d
+ tmpdepfile4=$dir$base.d
+ "$@" -MD
+ fi
+
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+ # That's a tab and a space in the [].
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+ else
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+#nosideeffect)
+ # This comment above is used by automake to tell side-effect
+ # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout, regardless of -o.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove `-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ test -z "$dashmflag" && dashmflag=-M
+ # Require at least two characters before searching for `:'
+ # in the target name. This is to cope with DOS-style filenames:
+ # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+ "$@" $dashmflag |
+ sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ tr ' ' '
+' < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+dashXmstdout)
+ # This case only exists to satisfy depend.m4. It is never actually
+ # run, as this mode is specially recognized in the preamble.
+ exit 1
+ ;;
+
+makedepend)
+ "$@" || exit $?
+ # Remove any Libtool call
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+ # X makedepend
+ shift
+ cleared=no eat=no
+ for arg
+ do
+ case $cleared in
+ no)
+ set ""; shift
+ cleared=yes ;;
+ esac
+ if test $eat = yes; then
+ eat=no
+ continue
+ fi
+ case "$arg" in
+ -D*|-I*)
+ set fnord "$@" "$arg"; shift ;;
+ # Strip any option that makedepend may not understand. Remove
+ # the object too, otherwise makedepend will parse it as a source file.
+ -arch)
+ eat=yes ;;
+ -*|$object)
+ ;;
+ *)
+ set fnord "$@" "$arg"; shift ;;
+ esac
+ done
+ obj_suffix=`echo "$object" | sed 's/^.*\././'`
+ touch "$tmpdepfile"
+ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile" "$tmpdepfile".bak
+ ;;
+
+cpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove `-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ "$@" -E |
+ sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+ sed '$ s: \\$::' > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ cat < "$tmpdepfile" >> "$depfile"
+ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvisualcpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ IFS=" "
+ for arg
+ do
+ case "$arg" in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+ set fnord "$@"
+ shift
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift
+ shift
+ ;;
+ esac
+ done
+ "$@" -E 2>/dev/null |
+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
+ echo " " >> "$depfile"
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvcmsys)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+none)
+ exec "$@"
+ ;;
+
+*)
+ echo "Unknown depmode $depmode" 1>&2
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/distro/archlinux/PKGBUILD b/distro/archlinux/PKGBUILD
new file mode 100644
index 0000000..396a677
--- /dev/null
+++ b/distro/archlinux/PKGBUILD
@@ -0,0 +1,38 @@
+pkgname=mate-session-manager
+pkgver=2011.11.16
+pkgrel=1
+pkgdesc="The MATE Session Handler"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+depends=('upower' 'gtk2' 'mate-conf' 'hicolor-icon-theme' 'libxtst' 'mate-polkit') # 'startup-notification'
+makedepends=('pkgconfig' 'intltool' 'xtrans')
+options=('!emptydirs' '!libtool')
+install=mate-session-manager.install
+url="http://matsusoft.com.ar/projects"
+groups=('mate')
+source=(http://sourceforge.net/projects/matede/files/${pkgver}/${pkgname}.tar.gz/download)
+sha256sums=('8a7ebc75d373c499d63de33f51f9e75eeca78e03d76d19390e04d0bd471b3d19')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+
+ ./autogen.sh \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib || return 1
+
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}"
+
+ make DESTDIR="${pkgdir}" MATECONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 install || return 1
+
+ install -d -m755 "${pkgdir}/usr/share/mateconf/schemas"
+ mateconf-merge-schema "${pkgdir}/usr/share/mateconf/schemas/${pkgname}.schemas" --domain ${pkgname} ${pkgdir}/etc/mateconf/schemas/*.schemas || return 1
+
+ # --disable-schemas-compile <- check if work <- nop
+ rm -f ${pkgdir}/etc/mateconf/schemas/*.schemas
+}
diff --git a/distro/archlinux/mate-session-manager.install b/distro/archlinux/mate-session-manager.install
new file mode 100644
index 0000000..2d4b799
--- /dev/null
+++ b/distro/archlinux/mate-session-manager.install
@@ -0,0 +1,22 @@
+pkgname=mate-session-manager
+
+post_install() {
+ usr/sbin/mateconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/mateconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/distro/ubuntu/build b/distro/ubuntu/build
new file mode 100755
index 0000000..fed8fb8
--- /dev/null
+++ b/distro/ubuntu/build
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+# fill it
+pkgname=mate-session-manager
+pkgver=2011.10.29
+pkgrel=1
+pkgdesc="The MATE Session Handler"
+depends=('upower' 'gtk2' 'mate-conf' 'hicolor-icon-theme' 'libxtst6' 'mate-polkit')
+# editar esta funcion!
+build() {
+ cd $pkgsrc
+ # descomprimir
+ tar xvzf download
+ # entramos a la carpeta
+ cd ${pkgname}
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib || return 1
+
+ make || return 1
+ make DESTDIR="${pkgdir}" MATECONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 install || return 1
+
+ install -d -m755 "${pkgdir}/usr/share/mateconf/schemas"
+ mateconf-merge-schema "${pkgdir}/usr/share/mateconf/schemas/${pkgname}.schemas" --domain ${pkgname} ${pkgdir}/etc/mateconf/schemas/*.schemas || return 1
+ rm -f ${pkgdir}/etc/mateconf/schemas/*.schemas
+}
+
+# esto incluye la parte que se repite en la mayoria de los builds
+. /usr/share/mate-doc-utils/mate-debian.sh
diff --git a/distro/ubuntu/postinst b/distro/ubuntu/postinst
new file mode 100755
index 0000000..fe9acfc
--- /dev/null
+++ b/distro/ubuntu/postinst
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+pkgname=mate-session-manager
+
+if [ -f /usr/sbin/mateconfpkg ]; then
+ /usr/sbin/mateconfpkg --install ${pkgname}
+fi
+
+gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+
+exit 0
diff --git a/distro/ubuntu/postrm b/distro/ubuntu/postrm
new file mode 100755
index 0000000..d90718b
--- /dev/null
+++ b/distro/ubuntu/postrm
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+pkgname=mate-session-manager
+
+gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+
+exit 0
diff --git a/distro/ubuntu/preinst b/distro/ubuntu/preinst
new file mode 100755
index 0000000..8e05f77
--- /dev/null
+++ b/distro/ubuntu/preinst
@@ -0,0 +1,7 @@
+#!/bin/sh -e
+
+pkgname=mate-session-manager
+
+if [ -f /usr/sbin/mateconfpkg ]; then
+ /usr/sbin/mateconfpkg --uninstall ${pkgname}
+fi
diff --git a/distro/ubuntu/prerm b/distro/ubuntu/prerm
new file mode 100755
index 0000000..1066b32
--- /dev/null
+++ b/distro/ubuntu/prerm
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+set -e
+
+pkgname=mate-session-manager
+
+if [ -f /usr/sbin/mateconfpkg ]; then
+ /usr/sbin/mateconfpkg --uninstall ${pkgname}
+fi
+
+exit 0
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 0000000..04f4e97
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1,3 @@
+SUBDIRS = dbus man
+
+-include $(top_srcdir)/git.mk
diff --git a/doc/Makefile.in b/doc/Makefile.in
new file mode 100644
index 0000000..e03acd7
--- /dev/null
+++ b/doc/Makefile.in
@@ -0,0 +1,633 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = doc
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DEFAULT_WM = @DEFAULT_WM@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGG_SMCLIENT_CFLAGS = @EGG_SMCLIENT_CFLAGS@
+EGG_SMCLIENT_LIBS = @EGG_SMCLIENT_LIBS@
+EGREP = @EGREP@
+EXECINFO_LIBS = @EXECINFO_LIBS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HAVE_XRENDER = @HAVE_XRENDER@
+HAVE_XTEST = @HAVE_XTEST@
+ICE_CFLAGS = @ICE_CFLAGS@
+ICE_LIBS = @ICE_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATECONFTOOL = @MATECONFTOOL@
+MATECONF_CFLAGS = @MATECONF_CFLAGS@
+MATECONF_LIBS = @MATECONF_LIBS@
+MATECONF_SANITY_CHECK = @MATECONF_SANITY_CHECK@
+MATECONF_SCHEMA_CONFIG_SOURCE = @MATECONF_SCHEMA_CONFIG_SOURCE@
+MATECONF_SCHEMA_FILE_DIR = @MATECONF_SCHEMA_FILE_DIR@
+MATE_SESSION_CFLAGS = @MATE_SESSION_CFLAGS@
+MATE_SESSION_LIBS = @MATE_SESSION_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+REBUILD = @REBUILD@
+SED = @SED@
+SESSION_PROPERTIES_CFLAGS = @SESSION_PROPERTIES_CFLAGS@
+SESSION_PROPERTIES_LIBS = @SESSION_PROPERTIES_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SM_CFLAGS = @SM_CFLAGS@
+SM_LIBS = @SM_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XGETTEXT = @XGETTEXT@
+XMKMF = @XMKMF@
+XMLTO = @XMLTO@
+XRENDER_CFLAGS = @XRENDER_CFLAGS@
+XRENDER_LIBS = @XRENDER_LIBS@
+XSLTPROC = @XSLTPROC@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = dbus man
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu doc/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ ctags ctags-recursive distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/doc/dbus/Makefile.am b/doc/dbus/Makefile.am
new file mode 100644
index 0000000..4ca511d
--- /dev/null
+++ b/doc/dbus/Makefile.am
@@ -0,0 +1,48 @@
+SPEC_XML_FILES = \
+ mate-session.xml \
+ org.mate.SessionManager.ref.xml \
+ org.mate.SessionManager.Client.ref.xml \
+ org.mate.SessionManager.ClientPrivate.ref.xml \
+ org.mate.SessionManager.Inhibitor.ref.xml \
+ org.mate.SessionManager.Presence.ref.xml
+
+if DOCBOOK_DOCS_ENABLED
+
+htmldocdir = $(docdir)/dbus
+htmldoc_DATA = mate-session.html
+
+mate-session.html: $(SPEC_XML_FILES)
+ $(AM_V_GEN)$(XMLTO) xhtml-nochunks -m $(top_srcdir)/doc/dbus/config.xsl mate-session.xml
+
+endif # DOCBOOK_DOCS_ENABLED
+
+org.mate.SessionManager.ref.xml: $(top_srcdir)/mate-session/org.mate.SessionManager.xml spec-to-docbook.xsl
+ $(AM_V_GEN)$(XSLTPROC) $(top_srcdir)/doc/dbus/spec-to-docbook.xsl $< | tail -n +2 > $@
+org.mate.SessionManager.Client.ref.xml: $(top_srcdir)/mate-session/org.mate.SessionManager.Client.xml spec-to-docbook.xsl
+ $(AM_V_GEN)$(XSLTPROC) $(top_srcdir)/doc/dbus/spec-to-docbook.xsl $< | tail -n +2 > $@
+org.mate.SessionManager.ClientPrivate.ref.xml: $(top_srcdir)/mate-session/org.mate.SessionManager.ClientPrivate.xml spec-to-docbook.xsl
+ $(AM_V_GEN)$(XSLTPROC) $(top_srcdir)/doc/dbus/spec-to-docbook.xsl $< | tail -n +2 > $@
+org.mate.SessionManager.Inhibitor.ref.xml: $(top_srcdir)/mate-session/org.mate.SessionManager.Inhibitor.xml spec-to-docbook.xsl
+ $(AM_V_GEN)$(XSLTPROC) $(top_srcdir)/doc/dbus/spec-to-docbook.xsl $< | tail -n +2 > $@
+org.mate.SessionManager.Presence.ref.xml: $(top_srcdir)/mate-session/org.mate.SessionManager.Presence.xml spec-to-docbook.xsl
+ $(AM_V_GEN)$(XSLTPROC) $(top_srcdir)/doc/dbus/spec-to-docbook.xsl $< | tail -n +2 > $@
+
+BUILT_SOURCES = \
+ org.mate.SessionManager.ref.xml \
+ org.mate.SessionManager.Client.ref.xml \
+ org.mate.SessionManager.ClientPrivate.ref.xml \
+ org.mate.SessionManager.Inhibitor.ref.xml \
+ org.mate.SessionManager.Presence.ref.xml
+
+CLEANFILES = \
+ $(BUILT_SOURCES) \
+ $(htmldoc_DATA)
+
+EXTRA_DIST = \
+ mate-session.xml.in \
+ config.xsl \
+ docbook.css \
+ dbus-introspect-docs.dtd \
+ spec-to-docbook.xsl
+
+-include $(top_srcdir)/git.mk
diff --git a/doc/dbus/Makefile.in b/doc/dbus/Makefile.in
new file mode 100644
index 0000000..2ab9101
--- /dev/null
+++ b/doc/dbus/Makefile.in
@@ -0,0 +1,528 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = doc/dbus
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(srcdir)/mate-session.xml.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = mate-session.xml
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(htmldocdir)"
+DATA = $(htmldoc_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DEFAULT_WM = @DEFAULT_WM@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGG_SMCLIENT_CFLAGS = @EGG_SMCLIENT_CFLAGS@
+EGG_SMCLIENT_LIBS = @EGG_SMCLIENT_LIBS@
+EGREP = @EGREP@
+EXECINFO_LIBS = @EXECINFO_LIBS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HAVE_XRENDER = @HAVE_XRENDER@
+HAVE_XTEST = @HAVE_XTEST@
+ICE_CFLAGS = @ICE_CFLAGS@
+ICE_LIBS = @ICE_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATECONFTOOL = @MATECONFTOOL@
+MATECONF_CFLAGS = @MATECONF_CFLAGS@
+MATECONF_LIBS = @MATECONF_LIBS@
+MATECONF_SANITY_CHECK = @MATECONF_SANITY_CHECK@
+MATECONF_SCHEMA_CONFIG_SOURCE = @MATECONF_SCHEMA_CONFIG_SOURCE@
+MATECONF_SCHEMA_FILE_DIR = @MATECONF_SCHEMA_FILE_DIR@
+MATE_SESSION_CFLAGS = @MATE_SESSION_CFLAGS@
+MATE_SESSION_LIBS = @MATE_SESSION_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+REBUILD = @REBUILD@
+SED = @SED@
+SESSION_PROPERTIES_CFLAGS = @SESSION_PROPERTIES_CFLAGS@
+SESSION_PROPERTIES_LIBS = @SESSION_PROPERTIES_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SM_CFLAGS = @SM_CFLAGS@
+SM_LIBS = @SM_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XGETTEXT = @XGETTEXT@
+XMKMF = @XMKMF@
+XMLTO = @XMLTO@
+XRENDER_CFLAGS = @XRENDER_CFLAGS@
+XRENDER_LIBS = @XRENDER_LIBS@
+XSLTPROC = @XSLTPROC@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SPEC_XML_FILES = \
+ mate-session.xml \
+ org.mate.SessionManager.ref.xml \
+ org.mate.SessionManager.Client.ref.xml \
+ org.mate.SessionManager.ClientPrivate.ref.xml \
+ org.mate.SessionManager.Inhibitor.ref.xml \
+ org.mate.SessionManager.Presence.ref.xml
+
+@DOCBOOK_DOCS_ENABLED_TRUE@htmldocdir = $(docdir)/dbus
+@DOCBOOK_DOCS_ENABLED_TRUE@htmldoc_DATA = mate-session.html
+BUILT_SOURCES = \
+ org.mate.SessionManager.ref.xml \
+ org.mate.SessionManager.Client.ref.xml \
+ org.mate.SessionManager.ClientPrivate.ref.xml \
+ org.mate.SessionManager.Inhibitor.ref.xml \
+ org.mate.SessionManager.Presence.ref.xml
+
+CLEANFILES = \
+ $(BUILT_SOURCES) \
+ $(htmldoc_DATA)
+
+EXTRA_DIST = \
+ mate-session.xml.in \
+ config.xsl \
+ docbook.css \
+ dbus-introspect-docs.dtd \
+ spec-to-docbook.xsl
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/dbus/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu doc/dbus/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+mate-session.xml: $(top_builddir)/config.status $(srcdir)/mate-session.xml.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-htmldocDATA: $(htmldoc_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(htmldocdir)" || $(MKDIR_P) "$(DESTDIR)$(htmldocdir)"
+ @list='$(htmldoc_DATA)'; test -n "$(htmldocdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldocdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldocdir)" || exit $$?; \
+ done
+
+uninstall-htmldocDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(htmldoc_DATA)'; test -n "$(htmldocdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(htmldocdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(htmldocdir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(htmldocdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-htmldocDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-htmldocDATA
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-htmldocDATA install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ uninstall uninstall-am uninstall-htmldocDATA
+
+
+@[email protected]: $(SPEC_XML_FILES)
+@DOCBOOK_DOCS_ENABLED_TRUE@ $(AM_V_GEN)$(XMLTO) xhtml-nochunks -m $(top_srcdir)/doc/dbus/config.xsl mate-session.xml
+
+org.mate.SessionManager.ref.xml: $(top_srcdir)/mate-session/org.mate.SessionManager.xml spec-to-docbook.xsl
+ $(AM_V_GEN)$(XSLTPROC) $(top_srcdir)/doc/dbus/spec-to-docbook.xsl $< | tail -n +2 > $@
+org.mate.SessionManager.Client.ref.xml: $(top_srcdir)/mate-session/org.mate.SessionManager.Client.xml spec-to-docbook.xsl
+ $(AM_V_GEN)$(XSLTPROC) $(top_srcdir)/doc/dbus/spec-to-docbook.xsl $< | tail -n +2 > $@
+org.mate.SessionManager.ClientPrivate.ref.xml: $(top_srcdir)/mate-session/org.mate.SessionManager.ClientPrivate.xml spec-to-docbook.xsl
+ $(AM_V_GEN)$(XSLTPROC) $(top_srcdir)/doc/dbus/spec-to-docbook.xsl $< | tail -n +2 > $@
+org.mate.SessionManager.Inhibitor.ref.xml: $(top_srcdir)/mate-session/org.mate.SessionManager.Inhibitor.xml spec-to-docbook.xsl
+ $(AM_V_GEN)$(XSLTPROC) $(top_srcdir)/doc/dbus/spec-to-docbook.xsl $< | tail -n +2 > $@
+org.mate.SessionManager.Presence.ref.xml: $(top_srcdir)/mate-session/org.mate.SessionManager.Presence.xml spec-to-docbook.xsl
+ $(AM_V_GEN)$(XSLTPROC) $(top_srcdir)/doc/dbus/spec-to-docbook.xsl $< | tail -n +2 > $@
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/doc/dbus/config.xsl b/doc/dbus/config.xsl
new file mode 100644
index 0000000..7aa9def
--- /dev/null
+++ b/doc/dbus/config.xsl
@@ -0,0 +1,6 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ version="1.0">
+ <xsl:param name="html.stylesheet" select="'docbook.css'"/>
+</xsl:stylesheet>
diff --git a/doc/dbus/dbus-introspect-docs.dtd b/doc/dbus/dbus-introspect-docs.dtd
new file mode 100644
index 0000000..ca918fb
--- /dev/null
+++ b/doc/dbus/dbus-introspect-docs.dtd
@@ -0,0 +1,32 @@
+<!-- DTD for D-Bus Introspection Documentation -->
+
+<!ELEMENT doc (summary?,description?,errors?,permission?,since?,deprecated,seealso?)>
+
+<!ELEMENT summary (#PCDATA|ref)*>
+<!ELEMENT description (#PCDATA|para|example)*>
+<!ELEMENT errors (error)*>
+<!ELEMENT permission (#PCDATA|ref|para)*>
+<!ELEMENT since EMPTY>
+<!ATTLIST since version CDATA #REQUIRED>
+<!ELEMENT deprecated (#PCDATA|ref)>
+<!ATTLIST deprecated version CDATA #REQUIRED>
+<!ATTLIST deprecated instead CDATA #REQUIRED>
+<!ELEMENT seealso (ref+)>
+
+<!ELEMENT error (#PCDATA|para)*>
+<!ATTLIST error name CDATA #REQUIRED>
+<!ELEMENT para (#PCDATA|example|code|list|ref)*>
+<!ELEMENT example (#PCDATA|para|code|ref)*>
+<!ATTLIST language (c|glib|python|shell) #REQUIRED>
+<!ATTLIST title CDATA #IMPLIED>
+<!ELEMENT list (item*)>
+<!ATTLIST list type (bullet|number) #REQUIRED>
+<!ELEMENT item (term|definition)*>
+<!ELEMENT term (#PCDATA|ref)*>
+<!ELEMENT definition (#PCDATA|para)*>
+
+<!ELEMENT code (#PCDATA)>
+<!ATTLIST code lang CDATA #IMPLIED>
+<!ELEMENT ref CDATA>
+<!ATTLIST ref type (parameter|arg|signal|method|interface) #REQUIRED>
+<!ATTLIST ref to CDATA #REQUIRED>
diff --git a/doc/dbus/docbook.css b/doc/dbus/docbook.css
new file mode 100644
index 0000000..6a7373e
--- /dev/null
+++ b/doc/dbus/docbook.css
@@ -0,0 +1,78 @@
+body
+{
+ font-family: sans-serif;
+}
+h1.title
+{
+}
+.permission
+{
+ color: #ee0000;
+ text-decoration: underline;
+}
+.synopsis, .classsynopsis
+{
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+ padding: 0.5em;
+}
+.programlisting
+{
+ background: #eeeeff;
+ border: solid 1px #aaaaff;
+ padding: 0.5em;
+}
+.variablelist
+{
+ padding: 4px;
+ margin-left: 3em;
+}
+.variablelist td:first-child
+{
+ vertical-align: top;
+}
+td.shortcuts
+{
+ color: #770000;
+ font-size: 80%;
+}
+div.refnamediv
+{
+ margin-top: 2em;
+}
+div.toc
+{
+ border: 2em;
+}
+a
+{
+ text-decoration: none;
+}
+a:hover
+{
+ text-decoration: underline;
+ color: #FF0000;
+}
+
+div.table table
+{
+ border-collapse: collapse;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #777777;
+ border-width: 1px;
+}
+
+div.table table td, div.table table th
+{
+ border-style: solid;
+ border-color: #777777;
+ border-width: 1px;
+ padding: 3px;
+ vertical-align: top;
+}
+
+div.table table th
+{
+ background-color: #eeeeee;
+}
diff --git a/doc/dbus/mate-session.xml.in b/doc/dbus/mate-session.xml.in
new file mode 100644
index 0000000..12f0436
--- /dev/null
+++ b/doc/dbus/mate-session.xml.in
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+<!ENTITY dbus-Manager SYSTEM "org.mate.SessionManager.ref.xml">
+<!ENTITY dbus-Client SYSTEM "org.mate.SessionManager.Client.ref.xml">
+<!ENTITY dbus-ClientPrivate SYSTEM "org.mate.SessionManager.ClientPrivate.ref.xml">
+<!ENTITY dbus-Inhibitor SYSTEM "org.mate.SessionManager.Inhibitor.ref.xml">
+<!ENTITY dbus-Presence SYSTEM "org.mate.SessionManager.Presence.ref.xml">
+]>
+
+<book id="index">
+ <bookinfo>
+ <title>MATE Session @VERSION@ Documentation</title>
+ <releaseinfo>Version @VERSION@</releaseinfo>
+ <authorgroup>
+ <author>
+ <firstname>William Jon</firstname>
+ <surname>McCann</surname>
+ <affiliation>
+ <address>
+ <email>[email protected]</email>
+ </address>
+ </affiliation>
+ </author>
+ </authorgroup>
+ </bookinfo>
+
+ <part>
+ <title>Reference</title>
+
+ <reference id="dbus-reference">
+ <title>D-Bus API Reference</title>
+
+ <partintro>
+ <para>
+ This API is not yet stable and is likely to change in the future.
+ </para>
+ </partintro>
+
+ &dbus-Manager;
+ &dbus-Client;
+ &dbus-ClientPrivate;
+ &dbus-Inhibitor;
+ &dbus-Presence;
+
+ </reference>
+ </part>
+
+ <index>
+ <title>Index</title>
+ </index>
+
+</book>
diff --git a/doc/dbus/spec-to-docbook.xsl b/doc/dbus/spec-to-docbook.xsl
new file mode 100644
index 0000000..9a6a8da
--- /dev/null
+++ b/doc/dbus/spec-to-docbook.xsl
@@ -0,0 +1,555 @@
+<?xml version='1.0'?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd"
+ exclude-result-prefixes="doc">
+<!--
+ Convert D-Bus Glib xml into DocBook refentries
+ Copyright (C) 2007-2008 William Jon McCann
+ License: GPL
+-->
+<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+
+<xsl:template match="/">
+
+<xsl:variable name="interface" select="//interface/@name"/>
+<xsl:variable name="basename">
+ <xsl:call-template name="interface-basename">
+ <xsl:with-param name="str" select="$interface"/>
+ </xsl:call-template>
+</xsl:variable>
+
+<refentry><xsl:attribute name="id"><xsl:value-of select="$interface"/></xsl:attribute>
+ <refmeta>
+ <refentrytitle role="top_of_page"><xsl:value-of select="//interface/@name"/></refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname><xsl:value-of select="$interface"/></refname>
+ <refpurpose><xsl:value-of select="$basename"/> interface</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv role="synopsis">
+ <title role="synopsis.title">Methods</title>
+ <synopsis>
+ <xsl:call-template name="methods-synopsis">
+ <xsl:with-param name="interface" select="$interface"/>
+ </xsl:call-template>
+ </synopsis>
+ </refsynopsisdiv>
+
+ <xsl:choose>
+ <xsl:when test="count(///signal) > 0">
+ <refsect1 role="signal_proto">
+ <title role="signal_proto.title">Signals</title>
+ <synopsis>
+ <xsl:call-template name="signals-synopsis">
+ <xsl:with-param name="interface" select="$interface"/>
+ </xsl:call-template>
+ </synopsis>
+ </refsect1>
+ </xsl:when>
+ </xsl:choose>
+
+ <refsect1 role="impl_interfaces">
+ <title role="impl_interfaces.title">Implemented Interfaces</title>
+ <para>
+ Objects implementing <xsl:value-of select="$interface"/> also implements
+ org.freedesktop.DBus.Introspectable,
+ org.freedesktop.DBus.Properties
+ </para>
+ </refsect1>
+
+ <xsl:choose>
+ <xsl:when test="count(///property) > 0">
+ <refsect1 role="properties">
+ <title role="properties.title">Properties</title>
+ <synopsis>
+ <xsl:call-template name="properties-synopsis">
+ <xsl:with-param name="interface" select="$interface"/>
+ </xsl:call-template>
+ </synopsis>
+ </refsect1>
+ </xsl:when>
+ </xsl:choose>
+
+ <refsect1 role="desc">
+ <title role="desc.title">Description</title>
+ <para>
+ <xsl:apply-templates select="//interface/doc:doc"/>
+ </para>
+ </refsect1>
+
+ <refsect1 role="details">
+ <title role="details.title">Details</title>
+ <xsl:call-template name="method-details">
+ <xsl:with-param name="interface" select="$interface"/>
+ </xsl:call-template>
+ </refsect1>
+
+ <xsl:choose>
+ <xsl:when test="count(///signal) > 0">
+ <refsect1 role="signals">
+ <title role="signals.title">Signal Details</title>
+ <xsl:call-template name="signal-details">
+ <xsl:with-param name="interface" select="$interface"/>
+ </xsl:call-template>
+ </refsect1>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="count(///property) > 0">
+ <refsect1 role="property_details">
+ <title role="property_details.title">Property Details</title>
+ <xsl:call-template name="property-details">
+ <xsl:with-param name="interface" select="$interface"/>
+ </xsl:call-template>
+ </refsect1>
+ </xsl:when>
+ </xsl:choose>
+
+</refentry>
+</xsl:template>
+
+
+<xsl:template name="property-doc">
+ <xsl:apply-templates select="doc:doc/doc:description"/>
+
+ <xsl:choose>
+ <xsl:when test="count(arg) > 0">
+ <variablelist role="params">
+ <xsl:for-each select="arg">
+ <varlistentry><term><parameter><xsl:value-of select="@name"/></parameter>:</term>
+ <listitem><simpara><xsl:apply-templates select="doc:doc/doc:summary"/></simpara></listitem>
+ </varlistentry>
+ </xsl:for-each>
+ </variablelist>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates select="doc:doc/doc:since"/>
+ <xsl:apply-templates select="doc:doc/doc:deprecated"/>
+ <xsl:apply-templates select="doc:doc/doc:permission"/>
+ <xsl:apply-templates select="doc:doc/doc:seealso"/>
+</xsl:template>
+
+
+<xsl:template name="property-details">
+ <xsl:param name="interface"/>
+ <xsl:variable name="longest">
+ <xsl:call-template name="find-longest">
+ <xsl:with-param name="set" select="@name"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:for-each select="///property">
+ <refsect2>
+ <title><anchor role="function"><xsl:attribute name="id"><xsl:value-of select="$interface"/>:<xsl:value-of select="@name"/></xsl:attribute></anchor>The "<xsl:value-of select="@name"/>" property</title>
+<indexterm><primary><xsl:value-of select="@name"/></primary><secondary><xsl:value-of select="$interface"/></secondary></indexterm>
+<programlisting>'<xsl:value-of select="@name"/>'<xsl:call-template name="pad-spaces"><xsl:with-param name="width" select="2"/></xsl:call-template>
+<xsl:call-template name="property-args"><xsl:with-param name="indent" select="string-length(@name) + 2"/></xsl:call-template></programlisting>
+
+ <xsl:call-template name="property-doc"/>
+ </refsect2>
+
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="signal-doc">
+ <xsl:apply-templates select="doc:doc/doc:description"/>
+
+ <xsl:choose>
+ <xsl:when test="count(arg) > 0">
+ <variablelist role="params">
+ <xsl:for-each select="arg">
+ <varlistentry><term><parameter><xsl:value-of select="@name"/></parameter>:</term>
+ <listitem><simpara><xsl:apply-templates select="doc:doc/doc:summary"/></simpara></listitem>
+ </varlistentry>
+ </xsl:for-each>
+ </variablelist>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates select="doc:doc/doc:since"/>
+ <xsl:apply-templates select="doc:doc/doc:deprecated"/>
+ <xsl:apply-templates select="doc:doc/doc:permission"/>
+ <xsl:apply-templates select="doc:doc/doc:seealso"/>
+</xsl:template>
+
+<xsl:template name="signal-details">
+ <xsl:param name="interface"/>
+ <xsl:variable name="longest">
+ <xsl:call-template name="find-longest">
+ <xsl:with-param name="set" select="@name"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:for-each select="///signal">
+ <refsect2>
+ <title><anchor role="function"><xsl:attribute name="id"><xsl:value-of select="$interface"/>::<xsl:value-of select="@name"/></xsl:attribute></anchor>The <xsl:value-of select="@name"/> signal</title>
+<indexterm><primary><xsl:value-of select="@name"/></primary><secondary><xsl:value-of select="$interface"/></secondary></indexterm>
+<programlisting><xsl:value-of select="@name"/> (<xsl:call-template name="signal-args"><xsl:with-param name="indent" select="string-length(@name) + 2"/><xsl:with-param name="prefix" select="."/></xsl:call-template>)</programlisting>
+
+ <xsl:call-template name="signal-doc"/>
+ </refsect2>
+
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="doc:code">
+<programlisting>
+<xsl:apply-templates />
+</programlisting>
+</xsl:template>
+
+<xsl:template match="doc:tt">
+ <literal>
+ <xsl:apply-templates />
+ </literal>
+</xsl:template>
+
+<xsl:template match="doc:i">
+ <emphasis>
+ <xsl:apply-templates />
+ </emphasis>
+</xsl:template>
+
+<xsl:template match="doc:b">
+ <emphasis role="bold">
+ <xsl:apply-templates />
+ </emphasis>
+</xsl:template>
+
+<xsl:template match="doc:ulink">
+ <ulink>
+ <xsl:attribute name="url"><xsl:value-of select="@url"/></xsl:attribute>
+ <xsl:value-of select="."/>
+ </ulink>
+</xsl:template>
+
+<xsl:template match="doc:summary">
+ <xsl:apply-templates />
+</xsl:template>
+
+<xsl:template match="doc:example">
+<informalexample>
+<xsl:apply-templates />
+</informalexample>
+</xsl:template>
+
+<xsl:template name="listitems-do-term">
+ <xsl:param name="str"/>
+ <xsl:choose>
+ <xsl:when test="string-length($str) > 0">
+ <emphasis role="bold"><xsl:value-of select="$str"/>: </emphasis>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="do-listitems">
+ <xsl:for-each select="doc:item">
+ <listitem>
+ <simpara>
+ <xsl:call-template name="listitems-do-term"><xsl:with-param name="str" select="doc:term"/></xsl:call-template>
+ <xsl:apply-templates select="doc:definition"/>
+ </simpara>
+ </listitem>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="doc:list">
+ <xsl:choose>
+ <xsl:when test="contains(@type,'number')">
+ <orderedlist>
+ <xsl:call-template name="do-listitems"/>
+ </orderedlist>
+ </xsl:when>
+ <xsl:otherwise>
+ <itemizedlist>
+ <xsl:call-template name="do-listitems"/>
+ </itemizedlist>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="doc:para">
+<para>
+<xsl:apply-templates />
+</para>
+</xsl:template>
+
+<xsl:template match="doc:description">
+<xsl:apply-templates />
+</xsl:template>
+
+<xsl:template match="doc:since">
+<para role="since">Since <xsl:value-of select="@version"/>
+</para>
+</xsl:template>
+
+<xsl:template match="doc:deprecated">
+ <xsl:variable name="name" select="../../@name"/>
+ <xsl:variable name="parent">
+ <xsl:call-template name="interface-basename">
+ <xsl:with-param name="str" select="../../../@name"/>/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="type" select="name(../..)"/>
+
+ <para role="deprecated">
+ <warning><para><literal><xsl:value-of select="$name"/></literal> is deprecated since version <xsl:value-of select="@version"/> and should not be used in newly-written code. Use
+
+ <xsl:variable name="to">
+ <xsl:choose>
+ <xsl:when test="contains($type,'property')">
+ <xsl:value-of select="$parent"/>:<xsl:value-of select="@instead"/>
+ </xsl:when>
+ <xsl:when test="contains($type,'signal')">
+ <xsl:value-of select="$parent"/>::<xsl:value-of select="@instead"/>
+ </xsl:when>
+ <xsl:when test="contains($type,'method')">
+ <xsl:value-of select="$parent"/>.<xsl:value-of select="@instead"/>
+ </xsl:when>
+ <xsl:when test="contains($type,'interface')">
+ <xsl:value-of select="@instead"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@instead"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:call-template name="create-link">
+ <xsl:with-param name="type" select="$type"/>
+ <xsl:with-param name="to" select="$to"/>
+ <xsl:with-param name="val" select="@instead"/>
+ </xsl:call-template>
+instead.</para></warning>
+</para>
+</xsl:template>
+
+<xsl:template match="doc:permission">
+<para role="permission">
+<xsl:apply-templates />
+</para>
+</xsl:template>
+
+<xsl:template match="doc:errors">
+<para role="errors">
+<xsl:apply-templates />
+</para>
+</xsl:template>
+
+<xsl:template match="doc:seealso">
+<para>
+See also:
+<xsl:apply-templates />
+
+</para>
+</xsl:template>
+
+<xsl:template name="create-link">
+ <xsl:param name="type"/>
+ <xsl:param name="to"/>
+ <xsl:param name="val"/>
+
+ <xsl:choose>
+ <xsl:when test="contains($type,'property')">
+ <link><xsl:attribute name="linkend"><xsl:value-of select="$to"/></xsl:attribute><literal><xsl:value-of select="$val"/></literal></link>
+ </xsl:when>
+ <xsl:when test="contains($type,'signal')">
+ <link><xsl:attribute name="linkend"><xsl:value-of select="$to"/></xsl:attribute><literal><xsl:value-of select="$val"/></literal></link>
+ </xsl:when>
+ <xsl:when test="contains($type,'method')">
+ <link><xsl:attribute name="linkend"><xsl:value-of select="$to"/></xsl:attribute><function><xsl:value-of select="$val"/></function></link>
+ </xsl:when>
+ <xsl:when test="contains($type,'interface')">
+ <link><xsl:attribute name="linkend"><xsl:value-of select="$to"/></xsl:attribute><xsl:value-of select="$val"/></link>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="doc:ref">
+ <xsl:call-template name="create-link">
+ <xsl:with-param name="type" select="@type"/>
+ <xsl:with-param name="to" select="@to"/>
+ <xsl:with-param name="val" select="."/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="method-doc">
+ <xsl:apply-templates select="doc:doc/doc:description"/>
+
+ <xsl:choose>
+ <xsl:when test="count(arg) > 0">
+ <variablelist role="params">
+ <xsl:for-each select="arg">
+ <varlistentry><term><parameter><xsl:value-of select="@name"/></parameter>:</term>
+ <listitem><simpara><xsl:apply-templates select="doc:doc/doc:summary"/></simpara></listitem>
+ </varlistentry>
+ </xsl:for-each>
+ </variablelist>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates select="doc:doc/doc:since"/>
+ <xsl:apply-templates select="doc:doc/doc:deprecated"/>
+
+ <xsl:choose>
+ <xsl:when test="count(doc:doc/doc:errors) > 0">
+ <refsect3>
+ <title>Errors</title>
+ <variablelist role="errors">
+ <xsl:for-each select="doc:doc/doc:errors/doc:error">
+ <varlistentry>
+ <term><parameter><xsl:value-of select="@name"/></parameter>:</term>
+ <listitem><simpara><xsl:apply-templates select="."/></simpara></listitem>
+ </varlistentry>
+ </xsl:for-each>
+ </variablelist>
+ </refsect3>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="count(doc:doc/doc:permission) > 0">
+ <refsect3>
+ <title>Permissions</title>
+ <xsl:apply-templates select="doc:doc/doc:permission"/>
+ </refsect3>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:apply-templates select="doc:doc/doc:seealso"/>
+</xsl:template>
+
+<xsl:template name="method-details">
+ <xsl:param name="interface"/>
+ <xsl:variable name="longest">
+ <xsl:call-template name="find-longest">
+ <xsl:with-param name="set" select="@name"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:for-each select="///method">
+ <refsect2>
+ <title><anchor role="function"><xsl:attribute name="id"><xsl:value-of select="$interface"/>.<xsl:value-of select="@name"/></xsl:attribute></anchor><xsl:value-of select="@name"/> ()</title>
+<indexterm><primary><xsl:value-of select="@name"/></primary><secondary><xsl:value-of select="$interface"/></secondary></indexterm>
+<programlisting><xsl:value-of select="@name"/> (<xsl:call-template name="method-args"><xsl:with-param name="indent" select="string-length(@name) + 2"/><xsl:with-param name="prefix" select="."/></xsl:call-template>)</programlisting>
+
+ <xsl:call-template name="method-doc"/>
+ </refsect2>
+
+ </xsl:for-each>
+</xsl:template>
+
+
+<xsl:template name="properties-synopsis">
+ <xsl:param name="interface"/>
+ <xsl:variable name="longest">
+ <xsl:call-template name="find-longest">
+ <xsl:with-param name="set" select="///property/@name"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:for-each select="///property">
+<link><xsl:attribute name="linkend"><xsl:value-of select="$interface"/>:<xsl:value-of select="@name"/></xsl:attribute>'<xsl:value-of select="@name"/>'</link><xsl:call-template name="pad-spaces"><xsl:with-param name="width" select="$longest - string-length(@name) + 1"/></xsl:call-template> <xsl:call-template name="property-args"><xsl:with-param name="indent" select="$longest + 2"/></xsl:call-template>
+</xsl:for-each>
+</xsl:template>
+
+
+<xsl:template name="signals-synopsis">
+ <xsl:param name="interface"/>
+ <xsl:variable name="longest">
+ <xsl:call-template name="find-longest">
+ <xsl:with-param name="set" select="///signal/@name"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:for-each select="///signal">
+<link><xsl:attribute name="linkend"><xsl:value-of select="$interface"/>::<xsl:value-of select="@name"/></xsl:attribute><xsl:value-of select="@name"/></link><xsl:call-template name="pad-spaces"><xsl:with-param name="width" select="$longest - string-length(@name) + 1"/></xsl:call-template>(<xsl:call-template name="signal-args"><xsl:with-param name="indent" select="$longest + 2"/><xsl:with-param name="prefix" select="///signal"/></xsl:call-template>)
+</xsl:for-each>
+</xsl:template>
+
+
+<xsl:template name="methods-synopsis">
+ <xsl:param name="interface"/>
+ <xsl:variable name="longest">
+ <xsl:call-template name="find-longest">
+ <xsl:with-param name="set" select="///method/@name"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:for-each select="///method">
+<link><xsl:attribute name="linkend"><xsl:value-of select="$interface"/>.<xsl:value-of select="@name"/></xsl:attribute><xsl:value-of select="@name"/></link><xsl:call-template name="pad-spaces"><xsl:with-param name="width" select="$longest - string-length(@name) + 1"/></xsl:call-template>(<xsl:call-template name="method-args"><xsl:with-param name="indent" select="$longest + 2"/><xsl:with-param name="prefix" select="///method"/></xsl:call-template>)
+</xsl:for-each>
+</xsl:template>
+
+
+<xsl:template name="method-args"><xsl:param name="indent"/><xsl:param name="prefix"/><xsl:variable name="longest"><xsl:call-template name="find-longest"><xsl:with-param name="set" select="$prefix/arg/@type"/></xsl:call-template></xsl:variable><xsl:for-each select="arg"><xsl:value-of select="@direction"/>
+<xsl:call-template name="pad-spaces"><xsl:with-param name="width" select="4 - string-length(@direction)"/></xsl:call-template>'<xsl:value-of select="@type"/>'<xsl:call-template name="pad-spaces"><xsl:with-param name="width" select="$longest - string-length(@type) + 1"/></xsl:call-template>
+<xsl:value-of select="@name"/><xsl:if test="not(position() = last())">,
+<xsl:call-template name="pad-spaces"><xsl:with-param name="width" select="$indent"/></xsl:call-template></xsl:if>
+</xsl:for-each>
+</xsl:template>
+
+
+<xsl:template name="signal-args"><xsl:param name="indent"/><xsl:param name="prefix"/><xsl:variable name="longest"><xsl:call-template name="find-longest"><xsl:with-param name="set" select="$prefix/arg/@type"/></xsl:call-template></xsl:variable><xsl:for-each select="arg">'<xsl:value-of select="@type"/>'<xsl:call-template name="pad-spaces"><xsl:with-param name="width" select="$longest - string-length(@type) + 1"/></xsl:call-template>
+<xsl:value-of select="@name"/><xsl:if test="not(position() = last())">,
+<xsl:call-template name="pad-spaces"><xsl:with-param name="width" select="$indent"/></xsl:call-template></xsl:if>
+</xsl:for-each>
+</xsl:template>
+
+
+<xsl:template name="property-args"><xsl:param name="indent"/>
+<xsl:value-of select="@access"/><xsl:call-template name="pad-spaces"><xsl:with-param name="width" select="9 - string-length(@access) + 1"/></xsl:call-template>'<xsl:value-of select="@type"/>'
+</xsl:template>
+
+
+<xsl:template name="pad-spaces">
+ <xsl:param name="width"/>
+ <xsl:variable name="spaces" xml:space="preserve"> </xsl:variable>
+ <xsl:value-of select="substring($spaces,1,$width)"/>
+</xsl:template>
+
+
+<xsl:template name="find-longest">
+ <xsl:param name="set"/>
+ <xsl:param name="index" select="1"/>
+ <xsl:param name="longest" select="0"/>
+
+ <xsl:choose>
+ <xsl:when test="$index > count($set)">
+ <!--finished looking-->
+ <xsl:value-of select="$longest"/>
+ </xsl:when>
+ <xsl:when test="string-length($set[$index])>$longest">
+ <!--found new longest-->
+ <xsl:call-template name="find-longest">
+ <xsl:with-param name="set" select="$set"/>
+ <xsl:with-param name="index" select="$index + 1"/>
+ <xsl:with-param name="longest" select="string-length($set[$index])"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!--this isn't any longer-->
+ <xsl:call-template name="find-longest">
+ <xsl:with-param name="set" select="$set"/>
+ <xsl:with-param name="index" select="$index + 1"/>
+ <xsl:with-param name="longest" select="$longest"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+
+<xsl:template name="interface-basename">
+ <xsl:param name="str"/>
+ <xsl:choose>
+ <xsl:when test="contains($str,'.')">
+ <xsl:call-template name="interface-basename">
+ <xsl:with-param name="str" select="substring-after($str,'.')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$str"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/doc/man/Makefile.am b/doc/man/Makefile.am
new file mode 100644
index 0000000..0e88e3d
--- /dev/null
+++ b/doc/man/Makefile.am
@@ -0,0 +1,10 @@
+man_MANS = \
+ mate-session.1 \
+ mate-session-properties.1 \
+ mate-session-save.1 \
+ mate-wm.1
+
+EXTRA_DIST = \
+ $(man_MANS)
+
+-include $(top_srcdir)/git.mk
diff --git a/doc/man/Makefile.in b/doc/man/Makefile.in
new file mode 100644
index 0000000..ae2cb6d
--- /dev/null
+++ b/doc/man/Makefile.in
@@ -0,0 +1,521 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = doc/man
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+man1dir = $(mandir)/man1
+am__installdirs = "$(DESTDIR)$(man1dir)"
+NROFF = nroff
+MANS = $(man_MANS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DEFAULT_WM = @DEFAULT_WM@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGG_SMCLIENT_CFLAGS = @EGG_SMCLIENT_CFLAGS@
+EGG_SMCLIENT_LIBS = @EGG_SMCLIENT_LIBS@
+EGREP = @EGREP@
+EXECINFO_LIBS = @EXECINFO_LIBS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HAVE_XRENDER = @HAVE_XRENDER@
+HAVE_XTEST = @HAVE_XTEST@
+ICE_CFLAGS = @ICE_CFLAGS@
+ICE_LIBS = @ICE_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATECONFTOOL = @MATECONFTOOL@
+MATECONF_CFLAGS = @MATECONF_CFLAGS@
+MATECONF_LIBS = @MATECONF_LIBS@
+MATECONF_SANITY_CHECK = @MATECONF_SANITY_CHECK@
+MATECONF_SCHEMA_CONFIG_SOURCE = @MATECONF_SCHEMA_CONFIG_SOURCE@
+MATECONF_SCHEMA_FILE_DIR = @MATECONF_SCHEMA_FILE_DIR@
+MATE_SESSION_CFLAGS = @MATE_SESSION_CFLAGS@
+MATE_SESSION_LIBS = @MATE_SESSION_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+REBUILD = @REBUILD@
+SED = @SED@
+SESSION_PROPERTIES_CFLAGS = @SESSION_PROPERTIES_CFLAGS@
+SESSION_PROPERTIES_LIBS = @SESSION_PROPERTIES_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SM_CFLAGS = @SM_CFLAGS@
+SM_LIBS = @SM_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XGETTEXT = @XGETTEXT@
+XMKMF = @XMKMF@
+XMLTO = @XMLTO@
+XRENDER_CFLAGS = @XRENDER_CFLAGS@
+XRENDER_LIBS = @XRENDER_LIBS@
+XSLTPROC = @XSLTPROC@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+man_MANS = \
+ mate-session.1 \
+ mate-session-properties.1 \
+ mate-session-save.1 \
+ mate-wm.1
+
+EXTRA_DIST = \
+ $(man_MANS)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/man/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu doc/man/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-man1: $(man_MANS)
+ @$(NORMAL_INSTALL)
+ test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ { for i in $$list; do echo "$$i"; done; \
+ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man1:
+ @$(NORMAL_UNINSTALL)
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ test -z "$$files" || { \
+ echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @list='$(MANS)'; if test -n "$$list"; then \
+ list=`for p in $$list; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+ if test -n "$$list" && \
+ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
+ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+ echo " typically \`make maintainer-clean' will remove them" >&2; \
+ exit 1; \
+ else :; fi; \
+ else :; fi
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(MANS)
+installdirs:
+ for dir in "$(DESTDIR)$(man1dir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-man
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man: install-man1
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-man
+
+uninstall-man: uninstall-man1
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-man1 \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ uninstall uninstall-am uninstall-man uninstall-man1
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/doc/man/mate-session-properties.1 b/doc/man/mate-session-properties.1
new file mode 100644
index 0000000..1ceae63
--- /dev/null
+++ b/doc/man/mate-session-properties.1
@@ -0,0 +1,24 @@
+.\"
+.\" mate-session-properties manual page.
+.\" (C) 2009-2010 Vincent Untz ([email protected])
+.\"
+.TH MATE-SESSION-PROPERTIES 1 "MATE"
+.SH NAME
+mate-session-properties \- Configure applications to start on login
+.SH SYNOPSIS
+.B mate-session-properties
+.SH DESCRIPTION
+.PP
+The \fImate-session-properties\fP program enables the users to
+configure what applications should be started on login, in addition to
+the default startup applications configured on the system.
+.PP
+It also proposes an interface to save a snapshot of the currently
+running applications so that they can automatically be restored to
+their current state on your next MATE session.
+.SH BUGS
+If you find bugs in the \fImate-session-properties\fP program, please report
+these on https://bugzilla.gnome.org.
+.SH SEE ALSO
+.BR mate-session(1)
+.BR mate-session-save(1)
diff --git a/doc/man/mate-session-save.1 b/doc/man/mate-session-save.1
new file mode 100644
index 0000000..6babab0
--- /dev/null
+++ b/doc/man/mate-session-save.1
@@ -0,0 +1,40 @@
+.\"
+.\" mate-session-save manual page.
+.\" (C) 2000 Miguel de Icaza ([email protected])
+.\" (C) 2009-2010 Vincent Untz ([email protected])
+.\"
+.TH MATE-SESSION-SAVE 1 "MATE"
+.SH NAME
+mate-session-save \- End or save the current MATE session
+.SH SYNOPSIS
+.B mate-session-save [\-\-logout] [\-\-force\-logout] [\-\-logout\-dialog] [\-\-shutdown\-dialog] [\-\-gui] [\-\-kill [\-\-silent]]
+.SH DESCRIPTION
+The \fImate-session-save\fP program can be used from a MATE session to
+save a snapshot of the currently running applications. This session will
+be later restored at your next MATE session.
+.PP
+The \fB\-\-gui\fP option will report errors in dialog boxes instead of
+printing to stderr.
+.PP
+If called with the \fB\-\-logout\fP option, the current MATE session will be
+ended, unless logging out has been inhibited by an application. The
+\fB\-\-force\-logout\fP option can be used to end the session regardless of
+the inhibition state.
+.PP
+When the \fB\-\-logout\-dialog\fP option is given, the standard dialog
+displaying logout options is displayed. When \fB\-\-shutdown\-dialog\fP
+option is given, the standard dialog displaying shutdown options is
+displayed.
+.PP
+The \fB\-\-kill\fP and \fB\-\-silent\fP options are deprecated. The
+\fB\-\-kill\fP option is equivalent to the \fB\-\-logout\-dialog\fP
+option. If \fB\-\-silent\fP is used with \fB\-\-kill\fR, then it will
+behave as if \fB\-\-logout\fP was used.
+.PP
+The session is not saved when \fImate-session-save\fP is called with any of
+the options ending the session.
+.SH BUGS
+If you find bugs in the \fImate-session-save\fP program, please report
+these on https://bugzilla.gnome.org.
+.SH SEE ALSO
+.BR mate-session(1)
diff --git a/doc/man/mate-session.1 b/doc/man/mate-session.1
new file mode 100644
index 0000000..427356a
--- /dev/null
+++ b/doc/man/mate-session.1
@@ -0,0 +1,79 @@
+.\"
+.\" mate-session manual page.
+.\" (C) 2000 Miguel de Icaza ([email protected])
+.\" (C) 2009-2010 Vincent Untz ([email protected])
+.\"
+.TH MATE-SESSION 1 "MATE"
+.SH NAME
+mate-session \- Start the MATE desktop environment
+.SH SYNOPSIS
+.B mate-session [\-\-autostart=DIR] [\-\-default-session-key=KEY] [\-\-failsafe|\-f] [\-\-debug]
+.SH DESCRIPTION
+The \fImate-session\fP program starts up the MATE desktop
+environment. This command is typically executed by your login manager
+(either mdm, xdm, or from your X startup scripts). It will load
+either your saved session, or it will provide a default session for the
+user as defined by the system administrator (or the default MATE
+installation on your system).
+.PP
+The default session is defined in the MateConf keys under
+\fB/desktop/mate/session\fP.
+When saving a session, \fImate-session\fP saves the currently running
+applications in the \fB$XDG_CONFIG_HOME/mate-session/saved-session\fP
+directory.
+.PP
+\fImate-session\fP is an X11R6 session manager. It can manage MATE
+applications as well as any X11R6 SM compliant.
+.SH OPTIONS
+The following options are supported:
+.TP
+.I "--autostart=DIR"
+Start all applications defined in \fIDIR\fP, instead of starting the
+applications defined in \fB/desktop/mate/session/default_session\fP,
+or via the \fI--default-session-key\fP option. Multiple
+\fI--autostart\fP options can be passed.
+.TP
+.I "--default-session-key=KEY"
+Set the MateConf key from which applications running a default session
+should be read to \fIKEY\fP. If not specificed,
+\fB/desktop/mate/session/default_session\fP will be used.
+.TP
+.I "--failsafe"
+Run in fail-safe mode. User-specified applications will not be started.
+.TP
+.I "--debug"
+Enable debugging code.
+.SH ENVIRONMENT
+\fImate-session\fP sets several environment variables for the use of
+its child processes:
+.PP
+.B SESSION_MANAGER
+.IP
+This variable is used by session-manager aware clients to contact
+mate-session.
+.PP
+.B DISPLAY
+.IP
+This variable is set to the X display being used by
+\fImate-session\fP. Note that if the --display option is used
+this might be different from the setting of the environment variable
+when mate-session is invoked.
+.SH FILES
+.PP
+.B $XDG_CONFIG_HOME/config/autostart
+.B $XDG_CONFIG_DIRS/config/autostart
+.B /usr/share/mate/autostart
+.IP
+The applications defined in those directories will be started on login.
+\fImate-session-properties(1)\fP can be used to easily configure them.
+.PP
+.B $XDG_CONFIG_HOME/mate-session/saved-session
+.IP
+This directory contains the list of applications of the saved session.
+.SH BUGS
+If you find bugs in the \fImate-session\fP program, please report
+these on https://bugzilla.gnome.org.
+.SH SEE ALSO
+.BR mate-session-properties(1)
+.BR mate-session-save(1)
+.BR mate-wm(1)
diff --git a/doc/man/mate-wm.1 b/doc/man/mate-wm.1
new file mode 100644
index 0000000..db59c23
--- /dev/null
+++ b/doc/man/mate-wm.1
@@ -0,0 +1,51 @@
+.\"
+.\" mate-wm manual page.
+.\" (C) 2000 Miguel de Icaza ([email protected])
+.\" (C) 2009-2010 Vincent Untz ([email protected])
+.\"
+.TH MATE-WM 1 "MATE"
+.SH NAME
+mate-wm \- Start the window manager configured by the user
+.SH SYNOPSIS
+.PP
+.B mate-wm [--default-wm=WINDOWMANAGER] [--sm-client-id=ID]
+.SH DESCRIPTION
+The \fImate-wm\fP program starts the window manager configured by the
+user. If the user has not chosen a window manager it will launch a
+MATE compliant window manager.
+.PP
+The user can define his preferred window manager with the
+\fB/desktop/mate/session/required_components/windowmanager\fP MateConf
+key. The value of this key should be the name of the desktop file of the
+desired window manager, without its \fB.desktop\fP extension. If this
+key is set to \fImate-wm\fP, then \fImate-wm\fP will simply look for
+an appropriate window manager. The user can also override the selection
+of a window manager by setting the \fBWINDOW_MANAGER\fP environment
+variable.
+.PP
+If the \fB--default-wm\fP option is used, \fImate-wm\fP will use
+\fIWINDOWMANAGER\fP as window manager if the \fBWINDOW_MANAGER\fP
+environment variable is not set and if the
+\fB/desktop/mate/session/required_components/windowmanager\fP MateConf
+key does not define a specific window manager, or if the configured
+window manager cannot be found.
+.PP
+The \fB--sm-client-id\fP option is translated to an appropriate option
+depending on which window manager will be started.
+.SH OPTIONS
+The following options are supported:
+.TP
+.I --default-wm=WINDOWMANAGER
+Define the default window manager to start if no window manager is
+configured, or if the configured window manager cannot be found.
+.TP
+.I --sm-client-id=ID
+Specify the session management \fIID\fP when connecting to the session manager.
+.SH ENVIRONMENT
+\fImate-wm\fP uses the value of the \fBWINDOW_MANAGER\fP environment
+variable to let the user override the configured window manager.
+.SH BUGS
+If you find bugs in the \fImate-wm\fP program, please report
+these on https://bugzilla.gnome.org.
+.SH SEE ALSO
+.BR mate-session(1)
diff --git a/egg/Makefile.am b/egg/Makefile.am
new file mode 100644
index 0000000..7bddab4
--- /dev/null
+++ b/egg/Makefile.am
@@ -0,0 +1,52 @@
+platform_defines = -DEGG_SM_CLIENT_BACKEND_XSMP
+platform_ltlibraries = \
+ libeggdesktopfile.la \
+ libeggsmclient-mate.la
+platform_libs = \
+ libeggdesktopfile.la \
+ $(SM_LIBS) \
+ $(ICE_LIBS)
+platform_sources = eggsmclient-xsmp.c
+
+INCLUDES = \
+ -DG_LOG_DOMAIN=\""EggSMClient"\" \
+ $(platform_defines) \
+ $(EGG_SMCLIENT_CFLAGS) \
+ $(SM_CFLAGS) \
+ $(ICE_CFLAGS) \
+ $(WARN_CFLAGS) \
+ $(DISABLE_DEPRECATED_CFLAGS)
+
+noinst_LTLIBRARIES = \
+ libeggsmclient.la \
+ $(platform_ltlibraries)
+
+libeggsmclient_la_LIBADD = \
+ $(EGG_SMCLIENT_LIBS) \
+ $(SM_LIBS) \
+ $(ICE_LIBS) \
+ $(platform_libs)
+
+libeggsmclient_la_SOURCES = \
+ eggsmclient.c \
+ eggsmclient.h \
+ eggsmclient-private.h \
+ $(platform_sources)
+
+libeggsmclient_mate_la_LIBADD = \
+ $(libeggsmclient_la_LIBADD)
+
+libeggsmclient_mate_la_SOURCES = \
+ eggsmclient.c \
+ eggsmclient.h \
+ eggsmclient-private.h \
+ $(platform_sources)
+
+libeggdesktopfile_la_LIBADD = \
+ $(EGG_SMCLIENT_LIBS)
+
+libeggdesktopfile_la_SOURCES = \
+ eggdesktopfile.c \
+ eggdesktopfile.h
+
+-include $(top_srcdir)/git.mk
diff --git a/egg/Makefile.in b/egg/Makefile.in
new file mode 100644
index 0000000..ff7b9b6
--- /dev/null
+++ b/egg/Makefile.in
@@ -0,0 +1,631 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = egg
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libeggdesktopfile_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_libeggdesktopfile_la_OBJECTS = eggdesktopfile.lo
+libeggdesktopfile_la_OBJECTS = $(am_libeggdesktopfile_la_OBJECTS)
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
+am__DEPENDENCIES_2 = libeggdesktopfile.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+libeggsmclient_mate_la_DEPENDENCIES = $(am__DEPENDENCIES_3)
+am__objects_1 = eggsmclient-xsmp.lo
+am_libeggsmclient_mate_la_OBJECTS = eggsmclient.lo $(am__objects_1)
+libeggsmclient_mate_la_OBJECTS = $(am_libeggsmclient_mate_la_OBJECTS)
+libeggsmclient_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_2)
+am_libeggsmclient_la_OBJECTS = eggsmclient.lo $(am__objects_1)
+libeggsmclient_la_OBJECTS = $(am_libeggsmclient_la_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo " CC " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo " CCLD " $@;
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+SOURCES = $(libeggdesktopfile_la_SOURCES) \
+ $(libeggsmclient_mate_la_SOURCES) $(libeggsmclient_la_SOURCES)
+DIST_SOURCES = $(libeggdesktopfile_la_SOURCES) \
+ $(libeggsmclient_mate_la_SOURCES) $(libeggsmclient_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DEFAULT_WM = @DEFAULT_WM@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGG_SMCLIENT_CFLAGS = @EGG_SMCLIENT_CFLAGS@
+EGG_SMCLIENT_LIBS = @EGG_SMCLIENT_LIBS@
+EGREP = @EGREP@
+EXECINFO_LIBS = @EXECINFO_LIBS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HAVE_XRENDER = @HAVE_XRENDER@
+HAVE_XTEST = @HAVE_XTEST@
+ICE_CFLAGS = @ICE_CFLAGS@
+ICE_LIBS = @ICE_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATECONFTOOL = @MATECONFTOOL@
+MATECONF_CFLAGS = @MATECONF_CFLAGS@
+MATECONF_LIBS = @MATECONF_LIBS@
+MATECONF_SANITY_CHECK = @MATECONF_SANITY_CHECK@
+MATECONF_SCHEMA_CONFIG_SOURCE = @MATECONF_SCHEMA_CONFIG_SOURCE@
+MATECONF_SCHEMA_FILE_DIR = @MATECONF_SCHEMA_FILE_DIR@
+MATE_SESSION_CFLAGS = @MATE_SESSION_CFLAGS@
+MATE_SESSION_LIBS = @MATE_SESSION_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+REBUILD = @REBUILD@
+SED = @SED@
+SESSION_PROPERTIES_CFLAGS = @SESSION_PROPERTIES_CFLAGS@
+SESSION_PROPERTIES_LIBS = @SESSION_PROPERTIES_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SM_CFLAGS = @SM_CFLAGS@
+SM_LIBS = @SM_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XGETTEXT = @XGETTEXT@
+XMKMF = @XMKMF@
+XMLTO = @XMLTO@
+XRENDER_CFLAGS = @XRENDER_CFLAGS@
+XRENDER_LIBS = @XRENDER_LIBS@
+XSLTPROC = @XSLTPROC@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+platform_defines = -DEGG_SM_CLIENT_BACKEND_XSMP
+platform_ltlibraries = \
+ libeggdesktopfile.la \
+ libeggsmclient-mate.la
+
+platform_libs = \
+ libeggdesktopfile.la \
+ $(SM_LIBS) \
+ $(ICE_LIBS)
+
+platform_sources = eggsmclient-xsmp.c
+INCLUDES = \
+ -DG_LOG_DOMAIN=\""EggSMClient"\" \
+ $(platform_defines) \
+ $(EGG_SMCLIENT_CFLAGS) \
+ $(SM_CFLAGS) \
+ $(ICE_CFLAGS) \
+ $(WARN_CFLAGS) \
+ $(DISABLE_DEPRECATED_CFLAGS)
+
+noinst_LTLIBRARIES = \
+ libeggsmclient.la \
+ $(platform_ltlibraries)
+
+libeggsmclient_la_LIBADD = \
+ $(EGG_SMCLIENT_LIBS) \
+ $(SM_LIBS) \
+ $(ICE_LIBS) \
+ $(platform_libs)
+
+libeggsmclient_la_SOURCES = \
+ eggsmclient.c \
+ eggsmclient.h \
+ eggsmclient-private.h \
+ $(platform_sources)
+
+libeggsmclient_mate_la_LIBADD = \
+ $(libeggsmclient_la_LIBADD)
+
+libeggsmclient_mate_la_SOURCES = \
+ eggsmclient.c \
+ eggsmclient.h \
+ eggsmclient-private.h \
+ $(platform_sources)
+
+libeggdesktopfile_la_LIBADD = \
+ $(EGG_SMCLIENT_LIBS)
+
+libeggdesktopfile_la_SOURCES = \
+ eggdesktopfile.c \
+ eggdesktopfile.h
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu egg/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu egg/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libeggdesktopfile.la: $(libeggdesktopfile_la_OBJECTS) $(libeggdesktopfile_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(libeggdesktopfile_la_OBJECTS) $(libeggdesktopfile_la_LIBADD) $(LIBS)
+libeggsmclient-mate.la: $(libeggsmclient_mate_la_OBJECTS) $(libeggsmclient_mate_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(libeggsmclient_mate_la_OBJECTS) $(libeggsmclient_mate_la_LIBADD) $(LIBS)
+libeggsmclient.la: $(libeggsmclient_la_OBJECTS) $(libeggsmclient_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(libeggsmclient_la_OBJECTS) $(libeggsmclient_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eggdesktopfile.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eggsmclient-xsmp.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eggsmclient.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/egg/eggdesktopfile.c b/egg/eggdesktopfile.c
new file mode 100644
index 0000000..1972055
--- /dev/null
+++ b/egg/eggdesktopfile.c
@@ -0,0 +1,1499 @@
+/* eggdesktopfile.c - Freedesktop.Org Desktop Files
+ * Copyright (C) 2007 Novell, Inc.
+ *
+ * Based on mate-desktop-item.c
+ * Copyright (C) 1999, 2000 Red Hat Inc.
+ * Copyright (C) 2001 George Lebl
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; see the file COPYING.LIB. If not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place -
+ * Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+ #include "config.h"
+#endif
+
+#include "eggdesktopfile.h"
+
+#include <string.h>
+#include <unistd.h>
+
+#include <glib/gi18n.h>
+#include <gdk/gdkx.h>
+#include <gtk/gtk.h>
+
+struct EggDesktopFile {
+ GKeyFile* key_file;
+ char* source;
+
+ char* name;
+ char* icon;
+ EggDesktopFileType type;
+ char document_code;
+};
+
+/**
+ * egg_desktop_file_new:
+ * @desktop_file_path: path to a Freedesktop-style Desktop file
+ * @error: error pointer
+ *
+ * Creates a new #EggDesktopFile for @desktop_file.
+ *
+ * Return value: the new #EggDesktopFile, or %NULL on error.
+ **/
+EggDesktopFile* egg_desktop_file_new(const char* desktop_file_path, GError** error)
+{
+ GKeyFile* key_file;
+
+ key_file = g_key_file_new();
+
+ if (!g_key_file_load_from_file(key_file, desktop_file_path, 0, error))
+ {
+ g_key_file_free(key_file);
+ return NULL;
+ }
+
+ return egg_desktop_file_new_from_key_file(key_file, desktop_file_path, error);
+}
+
+/**
+ * egg_desktop_file_new_from_data_dirs:
+ * @desktop_file_path: relative path to a Freedesktop-style Desktop file
+ * @error: error pointer
+ *
+ * Looks for @desktop_file_path in the paths returned from
+ * g_get_user_data_dir() and g_get_system_data_dirs(), and creates
+ * a new #EggDesktopFile from it.
+ *
+ * Return value: the new #EggDesktopFile, or %NULL on error.
+ **/
+EggDesktopFile* egg_desktop_file_new_from_data_dirs(const char* desktop_file_path, GError** error)
+{
+ EggDesktopFile* desktop_file;
+ GKeyFile* key_file;
+ char* full_path;
+
+ key_file = g_key_file_new();
+
+ if (!g_key_file_load_from_data_dirs(key_file, desktop_file_path, &full_path, 0, error))
+ {
+ g_key_file_free(key_file);
+ return NULL;
+ }
+
+ desktop_file = egg_desktop_file_new_from_key_file(key_file, full_path, error);
+ g_free(full_path);
+ return desktop_file;
+}
+
+/**
+ * egg_desktop_file_new_from_dirs:
+ * @desktop_file_path: relative path to a Freedesktop-style Desktop file
+ * @search_dirs: NULL-terminated array of directories to search
+ * @error: error pointer
+ *
+ * Looks for @desktop_file_path in the paths returned from
+ * g_get_user_data_dir() and g_get_system_data_dirs(), and creates
+ * a new #EggDesktopFile from it.
+ *
+ * Return value: the new #EggDesktopFile, or %NULL on error.
+ **/
+EggDesktopFile* egg_desktop_file_new_from_dirs(const char* desktop_file_path, const char** search_dirs, GError** error)
+{
+ EggDesktopFile* desktop_file;
+ GKeyFile* key_file;
+ char* full_path;
+
+ key_file = g_key_file_new();
+
+ if (!g_key_file_load_from_dirs(key_file, desktop_file_path, search_dirs, &full_path, 0, error))
+ {
+ g_key_file_free(key_file);
+ return NULL;
+ }
+
+ desktop_file = egg_desktop_file_new_from_key_file(key_file, full_path, error);
+ g_free(full_path);
+ return desktop_file;
+}
+
+/**
+ * egg_desktop_file_new_from_key_file:
+ * @key_file: a #GKeyFile representing a desktop file
+ * @source: the path or URI that @key_file was loaded from, or %NULL
+ * @error: error pointer
+ *
+ * Creates a new #EggDesktopFile for @key_file. Assumes ownership of
+ * @key_file (on success or failure); you should consider @key_file to
+ * be freed after calling this function.
+ *
+ * Return value: the new #EggDesktopFile, or %NULL on error.
+ **/
+EggDesktopFile* egg_desktop_file_new_from_key_file(GKeyFile* key_file, const char* source, GError** error)
+{
+ EggDesktopFile* desktop_file;
+ char* version;
+ char* type;
+
+ if (!g_key_file_has_group(key_file, EGG_DESKTOP_FILE_GROUP))
+ {
+ g_set_error(error, EGG_DESKTOP_FILE_ERROR, EGG_DESKTOP_FILE_ERROR_INVALID, _("File is not a valid .desktop file"));
+ g_key_file_free(key_file);
+ return NULL;
+ }
+
+ version = g_key_file_get_value(key_file, EGG_DESKTOP_FILE_GROUP, EGG_DESKTOP_FILE_KEY_VERSION, NULL);
+
+ if (version)
+ {
+ double version_num;
+ char* end;
+
+ version_num = g_ascii_strtod(version, &end);
+
+ if (*end)
+ {
+ g_warning("Invalid Version string '%s' in %s", version, source ? source : "(unknown)");
+ }
+ else if (version_num > 1.0)
+ {
+ g_set_error(error, EGG_DESKTOP_FILE_ERROR, EGG_DESKTOP_FILE_ERROR_INVALID, _("Unrecognized desktop file Version '%s'"), version);
+ g_free(version);
+ g_key_file_free(key_file);
+ return NULL;
+ }
+
+ g_free (version);
+ }
+
+ desktop_file = g_new0(EggDesktopFile, 1);
+ desktop_file->key_file = key_file;
+
+ if (g_path_is_absolute(source))
+ {
+ desktop_file->source = g_filename_to_uri(source, NULL, NULL);
+ }
+ else
+ {
+ desktop_file->source = g_strdup(source);
+ }
+
+ desktop_file->name = g_key_file_get_string(key_file, EGG_DESKTOP_FILE_GROUP, EGG_DESKTOP_FILE_KEY_NAME, error);
+
+ if (!desktop_file->name)
+ {
+ egg_desktop_file_free(desktop_file);
+ return NULL;
+ }
+
+ type = g_key_file_get_string(key_file, EGG_DESKTOP_FILE_GROUP, EGG_DESKTOP_FILE_KEY_TYPE, error);
+
+ if (!type)
+ {
+ egg_desktop_file_free(desktop_file);
+ return NULL;
+ }
+
+ if (!strcmp (type, "Application"))
+ {
+ char *exec, *p;
+
+ desktop_file->type = EGG_DESKTOP_FILE_TYPE_APPLICATION;
+
+ exec = g_key_file_get_string (key_file,
+ EGG_DESKTOP_FILE_GROUP,
+ EGG_DESKTOP_FILE_KEY_EXEC,
+ error);
+ if (!exec)
+ {
+ egg_desktop_file_free (desktop_file);
+ g_free (type);
+ return NULL;
+ }
+
+ /* See if it takes paths or URIs or neither */
+ for (p = exec; *p; p++)
+ {
+ if (*p == '%')
+ {
+ if (p[1] == '\0' || strchr ("FfUu", p[1]))
+ {
+ desktop_file->document_code = p[1];
+ break;
+ }
+ p++;
+ }
+ }
+
+ g_free (exec);
+ }
+ else if (!strcmp (type, "Link"))
+ {
+ char *url;
+
+ desktop_file->type = EGG_DESKTOP_FILE_TYPE_LINK;
+
+ url = g_key_file_get_string (key_file,
+ EGG_DESKTOP_FILE_GROUP,
+ EGG_DESKTOP_FILE_KEY_URL,
+ error);
+ if (!url)
+ {
+ egg_desktop_file_free (desktop_file);
+ g_free (type);
+ return NULL;
+ }
+ g_free (url);
+ }
+ else if (!strcmp (type, "Directory"))
+ desktop_file->type = EGG_DESKTOP_FILE_TYPE_DIRECTORY;
+ else
+ desktop_file->type = EGG_DESKTOP_FILE_TYPE_UNRECOGNIZED;
+
+ g_free (type);
+
+ /* Check the Icon key */
+ desktop_file->icon = g_key_file_get_string (key_file,
+ EGG_DESKTOP_FILE_GROUP,
+ EGG_DESKTOP_FILE_KEY_ICON,
+ NULL);
+ if (desktop_file->icon && !g_path_is_absolute (desktop_file->icon))
+ {
+ char *ext;
+
+ /* Lots of .desktop files still get this wrong */
+ ext = strrchr (desktop_file->icon, '.');
+ if (ext && (!strcmp (ext, ".png") ||
+ !strcmp (ext, ".xpm") ||
+ !strcmp (ext, ".svg")))
+ {
+ g_warning ("Desktop file '%s' has malformed Icon key '%s'"
+ "(should not include extension)",
+ source ? source : "(unknown)",
+ desktop_file->icon);
+ *ext = '\0';
+ }
+ }
+
+ return desktop_file;
+}
+
+/**
+ * egg_desktop_file_free:
+ * @desktop_file: an #EggDesktopFile
+ *
+ * Frees @desktop_file.
+ **/
+void
+egg_desktop_file_free (EggDesktopFile *desktop_file)
+{
+ g_key_file_free (desktop_file->key_file);
+ g_free (desktop_file->source);
+ g_free (desktop_file->name);
+ g_free (desktop_file->icon);
+ g_free (desktop_file);
+}
+
+/**
+ * egg_desktop_file_get_source:
+ * @desktop_file: an #EggDesktopFile
+ *
+ * Gets the URI that @desktop_file was loaded from.
+ *
+ * Return value: @desktop_file's source URI
+ **/
+const char *
+egg_desktop_file_get_source (EggDesktopFile *desktop_file)
+{
+ return desktop_file->source;
+}
+
+/**
+ * egg_desktop_file_get_desktop_file_type:
+ * @desktop_file: an #EggDesktopFile
+ *
+ * Gets the desktop file type of @desktop_file.
+ *
+ * Return value: @desktop_file's type
+ **/
+EggDesktopFileType
+egg_desktop_file_get_desktop_file_type (EggDesktopFile *desktop_file)
+{
+ return desktop_file->type;
+}
+
+/**
+ * egg_desktop_file_get_name:
+ * @desktop_file: an #EggDesktopFile
+ *
+ * Gets the (localized) value of @desktop_file's "Name" key.
+ *
+ * Return value: the application/link name
+ **/
+const char *
+egg_desktop_file_get_name (EggDesktopFile *desktop_file)
+{
+ return desktop_file->name;
+}
+
+/**
+ * egg_desktop_file_get_icon:
+ * @desktop_file: an #EggDesktopFile
+ *
+ * Gets the value of @desktop_file's "Icon" key.
+ *
+ * If the icon string is a full path (that is, if g_path_is_absolute()
+ * returns %TRUE when called on it), it points to a file containing an
+ * unthemed icon. If the icon string is not a full path, it is the
+ * name of a themed icon, which can be looked up with %GtkIconTheme,
+ * or passed directly to a theme-aware widget like %GtkImage or
+ * %GtkCellRendererPixbuf.
+ *
+ * Return value: the icon path or name
+ **/
+const char *
+egg_desktop_file_get_icon (EggDesktopFile *desktop_file)
+{
+ return desktop_file->icon;
+}
+
+gboolean
+egg_desktop_file_has_key (EggDesktopFile *desktop_file,
+ const char *key,
+ GError **error)
+{
+ return g_key_file_has_key (desktop_file->key_file,
+ EGG_DESKTOP_FILE_GROUP, key,
+ error);
+}
+
+char *
+egg_desktop_file_get_string (EggDesktopFile *desktop_file,
+ const char *key,
+ GError **error)
+{
+ return g_key_file_get_string (desktop_file->key_file,
+ EGG_DESKTOP_FILE_GROUP, key,
+ error);
+}
+
+char *
+egg_desktop_file_get_locale_string (EggDesktopFile *desktop_file,
+ const char *key,
+ const char *locale,
+ GError **error)
+{
+ return g_key_file_get_locale_string (desktop_file->key_file,
+ EGG_DESKTOP_FILE_GROUP, key, locale,
+ error);
+}
+
+gboolean
+egg_desktop_file_get_boolean (EggDesktopFile *desktop_file,
+ const char *key,
+ GError **error)
+{
+ return g_key_file_get_boolean (desktop_file->key_file,
+ EGG_DESKTOP_FILE_GROUP, key,
+ error);
+}
+
+double
+egg_desktop_file_get_numeric (EggDesktopFile *desktop_file,
+ const char *key,
+ GError **error)
+{
+ return g_key_file_get_double (desktop_file->key_file,
+ EGG_DESKTOP_FILE_GROUP, key,
+ error);
+}
+
+char **
+egg_desktop_file_get_string_list (EggDesktopFile *desktop_file,
+ const char *key,
+ gsize *length,
+ GError **error)
+{
+ return g_key_file_get_string_list (desktop_file->key_file,
+ EGG_DESKTOP_FILE_GROUP, key, length,
+ error);
+}
+
+char **
+egg_desktop_file_get_locale_string_list (EggDesktopFile *desktop_file,
+ const char *key,
+ const char *locale,
+ gsize *length,
+ GError **error)
+{
+ return g_key_file_get_locale_string_list (desktop_file->key_file,
+ EGG_DESKTOP_FILE_GROUP, key,
+ locale, length,
+ error);
+}
+
+/**
+ * egg_desktop_file_can_launch:
+ * @desktop_file: an #EggDesktopFile
+ * @desktop_environment: the name of the running desktop environment,
+ * or %NULL
+ *
+ * Tests if @desktop_file can/should be launched in the current
+ * environment. If @desktop_environment is non-%NULL, @desktop_file's
+ * "OnlyShowIn" and "NotShowIn" keys are checked to make sure that
+ * this desktop_file is appropriate for the named environment.
+ *
+ * Furthermore, if @desktop_file has type
+ * %EGG_DESKTOP_FILE_TYPE_APPLICATION, its "TryExec" key (if any) is
+ * also checked, to make sure the binary it points to exists.
+ *
+ * egg_desktop_file_can_launch() does NOT check the value of the
+ * "Hidden" key.
+ *
+ * Return value: %TRUE if @desktop_file can be launched
+ **/
+gboolean
+egg_desktop_file_can_launch (EggDesktopFile *desktop_file,
+ const char *desktop_environment)
+{
+ char *try_exec, *found_program;
+ char **only_show_in, **not_show_in;
+ gboolean found;
+ int i;
+
+ if (desktop_file->type != EGG_DESKTOP_FILE_TYPE_APPLICATION &&
+ desktop_file->type != EGG_DESKTOP_FILE_TYPE_LINK)
+ return FALSE;
+
+ if (desktop_environment)
+ {
+ only_show_in = g_key_file_get_string_list (desktop_file->key_file,
+ EGG_DESKTOP_FILE_GROUP,
+ EGG_DESKTOP_FILE_KEY_ONLY_SHOW_IN,
+ NULL, NULL);
+ if (only_show_in)
+ {
+ for (i = 0, found = FALSE; only_show_in[i] && !found; i++)
+ {
+ if (!strcmp (only_show_in[i], desktop_environment))
+ found = TRUE;
+ }
+
+ g_strfreev (only_show_in);
+
+ if (!found)
+ return FALSE;
+ }
+
+ not_show_in = g_key_file_get_string_list (desktop_file->key_file,
+ EGG_DESKTOP_FILE_GROUP,
+ EGG_DESKTOP_FILE_KEY_NOT_SHOW_IN,
+ NULL, NULL);
+ if (not_show_in)
+ {
+ for (i = 0, found = FALSE; not_show_in[i] && !found; i++)
+ {
+ if (!strcmp (not_show_in[i], desktop_environment))
+ found = TRUE;
+ }
+
+ g_strfreev (not_show_in);
+
+ if (found)
+ return FALSE;
+ }
+ }
+
+ if (desktop_file->type == EGG_DESKTOP_FILE_TYPE_APPLICATION)
+ {
+ try_exec = g_key_file_get_string (desktop_file->key_file,
+ EGG_DESKTOP_FILE_GROUP,
+ EGG_DESKTOP_FILE_KEY_TRY_EXEC,
+ NULL);
+ if (try_exec)
+ {
+ found_program = g_find_program_in_path (try_exec);
+ g_free (try_exec);
+
+ if (!found_program)
+ return FALSE;
+ g_free (found_program);
+ }
+ }
+
+ return TRUE;
+}
+
+/**
+ * egg_desktop_file_accepts_documents:
+ * @desktop_file: an #EggDesktopFile
+ *
+ * Tests if @desktop_file represents an application that can accept
+ * documents on the command line.
+ *
+ * Return value: %TRUE or %FALSE
+ **/
+gboolean
+egg_desktop_file_accepts_documents (EggDesktopFile *desktop_file)
+{
+ return desktop_file->document_code != 0;
+}
+
+/**
+ * egg_desktop_file_accepts_multiple:
+ * @desktop_file: an #EggDesktopFile
+ *
+ * Tests if @desktop_file can accept multiple documents at once.
+ *
+ * If this returns %FALSE, you can still pass multiple documents to
+ * egg_desktop_file_launch(), but that will result in multiple copies
+ * of the application being launched. See egg_desktop_file_launch()
+ * for more details.
+ *
+ * Return value: %TRUE or %FALSE
+ **/
+gboolean
+egg_desktop_file_accepts_multiple (EggDesktopFile *desktop_file)
+{
+ return (desktop_file->document_code == 'F' ||
+ desktop_file->document_code == 'U');
+}
+
+/**
+ * egg_desktop_file_accepts_uris:
+ * @desktop_file: an #EggDesktopFile
+ *
+ * Tests if @desktop_file can accept (non-"file:") URIs as documents to
+ * open.
+ *
+ * Return value: %TRUE or %FALSE
+ **/
+gboolean
+egg_desktop_file_accepts_uris (EggDesktopFile *desktop_file)
+{
+ return (desktop_file->document_code == 'U' ||
+ desktop_file->document_code == 'u');
+}
+
+static void
+append_quoted_word (GString *str,
+ const char *s,
+ gboolean in_single_quotes,
+ gboolean in_double_quotes)
+{
+ const char *p;
+
+ if (!in_single_quotes && !in_double_quotes)
+ g_string_append_c (str, '\'');
+ else if (!in_single_quotes && in_double_quotes)
+ g_string_append (str, "\"'");
+
+ if (!strchr (s, '\''))
+ g_string_append (str, s);
+ else
+ {
+ for (p = s; *p != '\0'; p++)
+ {
+ if (*p == '\'')
+ g_string_append (str, "'\\''");
+ else
+ g_string_append_c (str, *p);
+ }
+ }
+
+ if (!in_single_quotes && !in_double_quotes)
+ g_string_append_c (str, '\'');
+ else if (!in_single_quotes && in_double_quotes)
+ g_string_append (str, "'\"");
+}
+
+static void
+do_percent_subst (EggDesktopFile *desktop_file,
+ char code,
+ GString *str,
+ GSList **documents,
+ gboolean in_single_quotes,
+ gboolean in_double_quotes)
+{
+ GSList *d;
+ char *doc;
+
+ switch (code)
+ {
+ case '%':
+ g_string_append_c (str, '%');
+ break;
+
+ case 'F':
+ case 'U':
+ for (d = *documents; d; d = d->next)
+ {
+ doc = d->data;
+ g_string_append (str, " ");
+ append_quoted_word (str, doc, in_single_quotes, in_double_quotes);
+ }
+ *documents = NULL;
+ break;
+
+ case 'f':
+ case 'u':
+ if (*documents)
+ {
+ doc = (*documents)->data;
+ g_string_append (str, " ");
+ append_quoted_word (str, doc, in_single_quotes, in_double_quotes);
+ *documents = (*documents)->next;
+ }
+ break;
+
+ case 'i':
+ if (desktop_file->icon)
+ {
+ g_string_append (str, "--icon ");
+ append_quoted_word (str, desktop_file->icon,
+ in_single_quotes, in_double_quotes);
+ }
+ break;
+
+ case 'c':
+ if (desktop_file->name)
+ {
+ append_quoted_word (str, desktop_file->name,
+ in_single_quotes, in_double_quotes);
+ }
+ break;
+
+ case 'k':
+ if (desktop_file->source)
+ {
+ append_quoted_word (str, desktop_file->source,
+ in_single_quotes, in_double_quotes);
+ }
+ break;
+
+ case 'D':
+ case 'N':
+ case 'd':
+ case 'n':
+ case 'v':
+ case 'm':
+ /* Deprecated; skip */
+ break;
+
+ default:
+ g_warning ("Unrecognized %%-code '%%%c' in Exec", code);
+ break;
+ }
+}
+
+static char *
+parse_exec (EggDesktopFile *desktop_file,
+ GSList **documents,
+ GError **error)
+{
+ char *exec, *p, *command;
+ gboolean escape, single_quot, double_quot;
+ GString *gs;
+
+ exec = g_key_file_get_string (desktop_file->key_file,
+ EGG_DESKTOP_FILE_GROUP,
+ EGG_DESKTOP_FILE_KEY_EXEC,
+ error);
+ if (!exec)
+ return NULL;
+
+ /* Build the command */
+ gs = g_string_new (NULL);
+ escape = single_quot = double_quot = FALSE;
+
+ for (p = exec; *p != '\0'; p++)
+ {
+ if (escape)
+ {
+ escape = FALSE;
+ g_string_append_c (gs, *p);
+ }
+ else if (*p == '\\')
+ {
+ if (!single_quot)
+ escape = TRUE;
+ g_string_append_c (gs, *p);
+ }
+ else if (*p == '\'')
+ {
+ g_string_append_c (gs, *p);
+ if (!single_quot && !double_quot)
+ single_quot = TRUE;
+ else if (single_quot)
+ single_quot = FALSE;
+ }
+ else if (*p == '"')
+ {
+ g_string_append_c (gs, *p);
+ if (!single_quot && !double_quot)
+ double_quot = TRUE;
+ else if (double_quot)
+ double_quot = FALSE;
+ }
+ else if (*p == '%' && p[1])
+ {
+ do_percent_subst (desktop_file, p[1], gs, documents,
+ single_quot, double_quot);
+ p++;
+ }
+ else
+ g_string_append_c (gs, *p);
+ }
+
+ g_free (exec);
+ command = g_string_free (gs, FALSE);
+
+ /* Prepend "xdg-terminal " if needed (FIXME: use gvfs) */
+ if (g_key_file_has_key (desktop_file->key_file,
+ EGG_DESKTOP_FILE_GROUP,
+ EGG_DESKTOP_FILE_KEY_TERMINAL,
+ NULL))
+ {
+ GError *terminal_error = NULL;
+ gboolean use_terminal =
+ g_key_file_get_boolean (desktop_file->key_file,
+ EGG_DESKTOP_FILE_GROUP,
+ EGG_DESKTOP_FILE_KEY_TERMINAL,
+ &terminal_error);
+ if (terminal_error)
+ {
+ g_free (command);
+ g_propagate_error (error, terminal_error);
+ return NULL;
+ }
+
+ if (use_terminal)
+ {
+ gs = g_string_new ("xdg-terminal ");
+ append_quoted_word (gs, command, FALSE, FALSE);
+ g_free (command);
+ command = g_string_free (gs, FALSE);
+ }
+ }
+
+ return command;
+}
+
+static GSList *
+translate_document_list (EggDesktopFile *desktop_file, GSList *documents)
+{
+ gboolean accepts_uris = egg_desktop_file_accepts_uris (desktop_file);
+ GSList *ret, *d;
+
+ for (d = documents, ret = NULL; d; d = d->next)
+ {
+ const char *document = d->data;
+ gboolean is_uri = !g_path_is_absolute (document);
+ char *translated;
+
+ if (accepts_uris)
+ {
+ if (is_uri)
+ translated = g_strdup (document);
+ else
+ translated = g_filename_to_uri (document, NULL, NULL);
+ }
+ else
+ {
+ if (is_uri)
+ translated = g_filename_from_uri (document, NULL, NULL);
+ else
+ translated = g_strdup (document);
+ }
+
+ if (translated)
+ ret = g_slist_prepend (ret, translated);
+ }
+
+ return g_slist_reverse (ret);
+}
+
+static void
+free_document_list (GSList *documents)
+{
+ GSList *d;
+
+ for (d = documents; d; d = d->next)
+ g_free (d->data);
+ g_slist_free (documents);
+}
+
+/**
+ * egg_desktop_file_parse_exec:
+ * @desktop_file: a #EggDesktopFile
+ * @documents: a list of document paths or URIs
+ * @error: error pointer
+ *
+ * Parses @desktop_file's Exec key, inserting @documents into it, and
+ * returns the result.
+ *
+ * If @documents contains non-file: URIs and @desktop_file does not
+ * accept URIs, those URIs will be ignored. Likewise, if @documents
+ * contains more elements than @desktop_file accepts, the extra
+ * documents will be ignored.
+ *
+ * Return value: the parsed Exec string
+ **/
+char *
+egg_desktop_file_parse_exec (EggDesktopFile *desktop_file,
+ GSList *documents,
+ GError **error)
+{
+ GSList *translated, *docs;
+ char *command;
+
+ docs = translated = translate_document_list (desktop_file, documents);
+ command = parse_exec (desktop_file, &docs, error);
+ free_document_list (translated);
+
+ return command;
+}
+
+static gboolean
+parse_link (EggDesktopFile *desktop_file,
+ EggDesktopFile **app_desktop_file,
+ GSList **documents,
+ GError **error)
+{
+ char *url;
+ GKeyFile *key_file;
+
+ url = g_key_file_get_string (desktop_file->key_file,
+ EGG_DESKTOP_FILE_GROUP,
+ EGG_DESKTOP_FILE_KEY_URL,
+ error);
+ if (!url)
+ return FALSE;
+ *documents = g_slist_prepend (NULL, url);
+
+ /* FIXME: use gvfs */
+ key_file = g_key_file_new ();
+ g_key_file_set_string (key_file, EGG_DESKTOP_FILE_GROUP,
+ EGG_DESKTOP_FILE_KEY_NAME,
+ "xdg-open");
+ g_key_file_set_string (key_file, EGG_DESKTOP_FILE_GROUP,
+ EGG_DESKTOP_FILE_KEY_TYPE,
+ "Application");
+ g_key_file_set_string (key_file, EGG_DESKTOP_FILE_GROUP,
+ EGG_DESKTOP_FILE_KEY_EXEC,
+ "xdg-open %u");
+ *app_desktop_file = egg_desktop_file_new_from_key_file (key_file, NULL, NULL);
+ return TRUE;
+}
+
+#if GTK_CHECK_VERSION (2, 12, 0)
+static char *
+start_startup_notification (GdkDisplay *display,
+ EggDesktopFile *desktop_file,
+ const char *argv0,
+ int screen,
+ int workspace,
+ guint32 launch_time)
+{
+ static int sequence = 0;
+ char *startup_id;
+ char *description, *wmclass;
+ char *screen_str, *workspace_str;
+
+ if (g_key_file_has_key (desktop_file->key_file,
+ EGG_DESKTOP_FILE_GROUP,
+ EGG_DESKTOP_FILE_KEY_STARTUP_NOTIFY,
+ NULL))
+ {
+ if (!g_key_file_get_boolean (desktop_file->key_file,
+ EGG_DESKTOP_FILE_GROUP,
+ EGG_DESKTOP_FILE_KEY_STARTUP_NOTIFY,
+ NULL))
+ return NULL;
+ wmclass = NULL;
+ }
+ else
+ {
+ wmclass = g_key_file_get_string (desktop_file->key_file,
+ EGG_DESKTOP_FILE_GROUP,
+ EGG_DESKTOP_FILE_KEY_STARTUP_WM_CLASS,
+ NULL);
+ if (!wmclass)
+ return NULL;
+ }
+
+ if (launch_time == (guint32)-1)
+ launch_time = gdk_x11_display_get_user_time (display);
+ startup_id = g_strdup_printf ("%s-%lu-%s-%s-%d_TIME%lu",
+ g_get_prgname (),
+ (unsigned long)getpid (),
+ g_get_host_name (),
+ argv0,
+ sequence++,
+ (unsigned long)launch_time);
+
+ description = g_strdup_printf (_("Starting %s"), desktop_file->name);
+ screen_str = g_strdup_printf ("%d", screen);
+ workspace_str = workspace == -1 ? NULL : g_strdup_printf ("%d", workspace);
+
+ gdk_x11_display_broadcast_startup_message (display, "new",
+ "ID", startup_id,
+ "NAME", desktop_file->name,
+ "SCREEN", screen_str,
+ "BIN", argv0,
+ "ICON", desktop_file->icon,
+ "DESKTOP", workspace_str,
+ "DESCRIPTION", description,
+ "WMCLASS", wmclass,
+ NULL);
+
+ g_free (description);
+ g_free (wmclass);
+ g_free (screen_str);
+ g_free (workspace_str);
+
+ return startup_id;
+}
+
+static void
+end_startup_notification (GdkDisplay *display,
+ const char *startup_id)
+{
+ gdk_x11_display_broadcast_startup_message (display, "remove",
+ "ID", startup_id,
+ NULL);
+}
+
+#define EGG_DESKTOP_FILE_SN_TIMEOUT_LENGTH (30 /* seconds */)
+
+typedef struct {
+ GdkDisplay *display;
+ char *startup_id;
+} StartupNotificationData;
+
+static gboolean
+startup_notification_timeout (gpointer data)
+{
+ StartupNotificationData *sn_data = data;
+
+ end_startup_notification (sn_data->display, sn_data->startup_id);
+ g_object_unref (sn_data->display);
+ g_free (sn_data->startup_id);
+ g_free (sn_data);
+
+ return FALSE;
+}
+
+static void
+set_startup_notification_timeout (GdkDisplay *display,
+ const char *startup_id)
+{
+ StartupNotificationData *sn_data;
+
+ sn_data = g_new (StartupNotificationData, 1);
+ sn_data->display = g_object_ref (display);
+ sn_data->startup_id = g_strdup (startup_id);
+
+ g_timeout_add_seconds (EGG_DESKTOP_FILE_SN_TIMEOUT_LENGTH,
+ startup_notification_timeout, sn_data);
+}
+#endif /* GTK 2.12 */
+
+static GPtrArray *
+array_putenv (GPtrArray *env, char *variable)
+{
+ guint i, keylen;
+
+ if (!env)
+ {
+ char **envp;
+
+ env = g_ptr_array_new ();
+
+ envp = g_listenv ();
+ for (i = 0; envp[i]; i++)
+ {
+ const char *value;
+
+ value = g_getenv (envp[i]);
+ g_ptr_array_add (env, g_strdup_printf ("%s=%s", envp[i],
+ value ? value : ""));
+ }
+ g_strfreev (envp);
+ }
+
+ keylen = strcspn (variable, "=");
+
+ /* Remove old value of key */
+ for (i = 0; i < env->len; i++)
+ {
+ char *envvar = env->pdata[i];
+
+ if (!strncmp (envvar, variable, keylen) && envvar[keylen] == '=')
+ {
+ g_free (envvar);
+ g_ptr_array_remove_index_fast (env, i);
+ break;
+ }
+ }
+
+ /* Add new value */
+ g_ptr_array_add (env, g_strdup (variable));
+
+ return env;
+}
+
+static gboolean
+egg_desktop_file_launchv (EggDesktopFile *desktop_file,
+ GSList *documents, va_list args,
+ GError **error)
+{
+ EggDesktopFileLaunchOption option;
+ GSList *translated_documents = NULL, *docs = NULL;
+ char *command, **argv;
+ int argc, i, screen_num;
+ gboolean success, current_success;
+ GdkDisplay *display;
+ char *startup_id;
+
+ GPtrArray *env = NULL;
+ char **variables = NULL;
+ GdkScreen *screen = NULL;
+ int workspace = -1;
+ const char *directory = NULL;
+ guint32 launch_time = (guint32)-1;
+ GSpawnFlags flags = G_SPAWN_SEARCH_PATH;
+ GSpawnChildSetupFunc setup_func = NULL;
+ gpointer setup_data = NULL;
+
+ GPid *ret_pid = NULL;
+ int *ret_stdin = NULL, *ret_stdout = NULL, *ret_stderr = NULL;
+ char **ret_startup_id = NULL;
+
+ if (documents && desktop_file->document_code == 0)
+ {
+ g_set_error (error, EGG_DESKTOP_FILE_ERROR,
+ EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE,
+ _("Application does not accept documents on command line"));
+ return FALSE;
+ }
+
+ /* Read the options: technically it's incorrect for the caller to
+ * NULL-terminate the list of options (rather than 0-terminating
+ * it), but NULL-terminating lets us use G_GNUC_NULL_TERMINATED,
+ * it's more consistent with other glib/gtk methods, and it will
+ * work as long as sizeof (int) <= sizeof (NULL), and NULL is
+ * represented as 0. (Which is true everywhere we care about.)
+ */
+ while ((option = va_arg (args, EggDesktopFileLaunchOption)))
+ {
+ switch (option)
+ {
+ case EGG_DESKTOP_FILE_LAUNCH_CLEARENV:
+ if (env)
+ g_ptr_array_free (env, TRUE);
+ env = g_ptr_array_new ();
+ break;
+ case EGG_DESKTOP_FILE_LAUNCH_PUTENV:
+ variables = va_arg (args, char **);
+ for (i = 0; variables[i]; i++)
+ env = array_putenv (env, variables[i]);
+ break;
+
+ case EGG_DESKTOP_FILE_LAUNCH_SCREEN:
+ screen = va_arg (args, GdkScreen *);
+ break;
+ case EGG_DESKTOP_FILE_LAUNCH_WORKSPACE:
+ workspace = va_arg (args, int);
+ break;
+
+ case EGG_DESKTOP_FILE_LAUNCH_DIRECTORY:
+ directory = va_arg (args, const char *);
+ break;
+ case EGG_DESKTOP_FILE_LAUNCH_TIME:
+ launch_time = va_arg (args, guint32);
+ break;
+ case EGG_DESKTOP_FILE_LAUNCH_FLAGS:
+ flags |= va_arg (args, GSpawnFlags);
+ /* Make sure they didn't set any flags that don't make sense. */
+ flags &= ~G_SPAWN_FILE_AND_ARGV_ZERO;
+ break;
+ case EGG_DESKTOP_FILE_LAUNCH_SETUP_FUNC:
+ setup_func = va_arg (args, GSpawnChildSetupFunc);
+ setup_data = va_arg (args, gpointer);
+ break;
+
+ case EGG_DESKTOP_FILE_LAUNCH_RETURN_PID:
+ ret_pid = va_arg (args, GPid *);
+ break;
+ case EGG_DESKTOP_FILE_LAUNCH_RETURN_STDIN_PIPE:
+ ret_stdin = va_arg (args, int *);
+ break;
+ case EGG_DESKTOP_FILE_LAUNCH_RETURN_STDOUT_PIPE:
+ ret_stdout = va_arg (args, int *);
+ break;
+ case EGG_DESKTOP_FILE_LAUNCH_RETURN_STDERR_PIPE:
+ ret_stderr = va_arg (args, int *);
+ break;
+ case EGG_DESKTOP_FILE_LAUNCH_RETURN_STARTUP_ID:
+ ret_startup_id = va_arg (args, char **);
+ break;
+
+ default:
+ g_set_error (error, EGG_DESKTOP_FILE_ERROR,
+ EGG_DESKTOP_FILE_ERROR_UNRECOGNIZED_OPTION,
+ _("Unrecognized launch option: %d"),
+ GPOINTER_TO_INT (option));
+ success = FALSE;
+ goto out;
+ }
+ }
+
+ if (screen)
+ {
+ char *display_name = gdk_screen_make_display_name (screen);
+ char *display_env = g_strdup_printf ("DISPLAY=%s", display_name);
+ env = array_putenv (env, display_env);
+ g_free (display_name);
+ g_free (display_env);
+
+ display = gdk_screen_get_display (screen);
+ }
+ else
+ {
+ display = gdk_display_get_default ();
+ screen = gdk_display_get_default_screen (display);
+ }
+ screen_num = gdk_screen_get_number (screen);
+
+ translated_documents = translate_document_list (desktop_file, documents);
+ docs = translated_documents;
+
+ success = FALSE;
+
+ do
+ {
+ command = parse_exec (desktop_file, &docs, error);
+ if (!command)
+ goto out;
+
+ if (!g_shell_parse_argv (command, &argc, &argv, error))
+ {
+ g_free (command);
+ goto out;
+ }
+ g_free (command);
+
+#if GTK_CHECK_VERSION (2, 12, 0)
+ startup_id = start_startup_notification (display, desktop_file,
+ argv[0], screen_num,
+ workspace, launch_time);
+ if (startup_id)
+ {
+ char *startup_id_env = g_strdup_printf ("DESKTOP_STARTUP_ID=%s",
+ startup_id);
+ env = array_putenv (env, startup_id_env);
+ g_free (startup_id_env);
+ }
+#else
+ startup_id = NULL;
+#endif /* GTK 2.12 */
+
+ if (env != NULL)
+ g_ptr_array_add (env, NULL);
+
+ current_success =
+ g_spawn_async_with_pipes (directory,
+ argv,
+ env ? (char **)(env->pdata) : NULL,
+ flags,
+ setup_func, setup_data,
+ ret_pid,
+ ret_stdin, ret_stdout, ret_stderr,
+ error);
+ g_strfreev (argv);
+
+ if (startup_id)
+ {
+#if GTK_CHECK_VERSION (2, 12, 0)
+ if (current_success)
+ {
+ set_startup_notification_timeout (display, startup_id);
+
+ if (ret_startup_id)
+ *ret_startup_id = startup_id;
+ else
+ g_free (startup_id);
+ }
+ else
+#endif /* GTK 2.12 */
+ g_free (startup_id);
+ }
+ else if (ret_startup_id)
+ *ret_startup_id = NULL;
+
+ if (current_success)
+ {
+ /* If we successfully launch any instances of the app, make
+ * sure we return TRUE and don't set @error.
+ */
+ success = TRUE;
+ error = NULL;
+
+ /* Also, only set the output params on the first one */
+ ret_pid = NULL;
+ ret_stdin = ret_stdout = ret_stderr = NULL;
+ ret_startup_id = NULL;
+ }
+ }
+ while (docs && current_success);
+
+ out:
+ if (env)
+ {
+ g_ptr_array_foreach (env, (GFunc)g_free, NULL);
+ g_ptr_array_free (env, TRUE);
+ }
+ free_document_list (translated_documents);
+
+ return success;
+}
+
+/**
+ * egg_desktop_file_launch:
+ * @desktop_file: an #EggDesktopFile
+ * @documents: a list of URIs or paths to documents to open
+ * @error: error pointer
+ * @...: additional options
+ *
+ * Launches @desktop_file with the given arguments. Additional options
+ * can be specified as follows:
+ *
+ * %EGG_DESKTOP_FILE_LAUNCH_CLEARENV: (no arguments)
+ * clears the environment in the child process
+ * %EGG_DESKTOP_FILE_LAUNCH_PUTENV: (char **variables)
+ * adds the NAME=VALUE strings in the given %NULL-terminated
+ * array to the child process's environment
+ * %EGG_DESKTOP_FILE_LAUNCH_SCREEN: (GdkScreen *screen)
+ * causes the application to be launched on the given screen
+ * %EGG_DESKTOP_FILE_LAUNCH_WORKSPACE: (int workspace)
+ * causes the application to be launched on the given workspace
+ * %EGG_DESKTOP_FILE_LAUNCH_DIRECTORY: (char *dir)
+ * causes the application to be launched in the given directory
+ * %EGG_DESKTOP_FILE_LAUNCH_TIME: (guint32 launch_time)
+ * sets the "launch time" for the application. If the user
+ * interacts with another window after @launch_time but before
+ * the launched application creates its first window, the window
+ * manager may choose to not give focus to the new application.
+ * Passing 0 for @launch_time will explicitly request that the
+ * application not receive focus.
+ * %EGG_DESKTOP_FILE_LAUNCH_FLAGS (GSpawnFlags flags)
+ * Sets additional #GSpawnFlags to use. See g_spawn_async() for
+ * more details.
+ * %EGG_DESKTOP_FILE_LAUNCH_SETUP_FUNC (GSpawnChildSetupFunc, gpointer)
+ * Sets the child setup callback and the data to pass to it.
+ * (See g_spawn_async() for more details.)
+ *
+ * %EGG_DESKTOP_FILE_LAUNCH_RETURN_PID (GPid **pid)
+ * On a successful launch, sets *@pid to the PID of the launched
+ * application.
+ * %EGG_DESKTOP_FILE_LAUNCH_RETURN_STARTUP_ID (char **startup_id)
+ * On a successful launch, sets *@startup_id to the Startup
+ * Notification "startup id" of the launched application.
+ * %EGG_DESKTOP_FILE_LAUNCH_RETURN_STDIN_PIPE (int *fd)
+ * On a successful launch, sets *@fd to the file descriptor of
+ * a pipe connected to the application's stdin.
+ * %EGG_DESKTOP_FILE_LAUNCH_RETURN_STDOUT_PIPE (int *fd)
+ * On a successful launch, sets *@fd to the file descriptor of
+ * a pipe connected to the application's stdout.
+ * %EGG_DESKTOP_FILE_LAUNCH_RETURN_STDERR_PIPE (int *fd)
+ * On a successful launch, sets *@fd to the file descriptor of
+ * a pipe connected to the application's stderr.
+ *
+ * The options should be terminated with a single %NULL.
+ *
+ * If @documents contains multiple documents, but
+ * egg_desktop_file_accepts_multiple() returns %FALSE for
+ * @desktop_file, then egg_desktop_file_launch() will actually launch
+ * multiple instances of the application. In that case, the return
+ * value (as well as any values passed via
+ * %EGG_DESKTOP_FILE_LAUNCH_RETURN_PID, etc) will only reflect the
+ * first instance of the application that was launched (but the
+ * %EGG_DESKTOP_FILE_LAUNCH_SETUP_FUNC will be called for each
+ * instance).
+ *
+ * Return value: %TRUE if the application was successfully launched.
+ **/
+gboolean
+egg_desktop_file_launch (EggDesktopFile *desktop_file,
+ GSList *documents, GError **error,
+ ...)
+{
+ va_list args;
+ gboolean success;
+ EggDesktopFile *app_desktop_file;
+
+ switch (desktop_file->type)
+ {
+ case EGG_DESKTOP_FILE_TYPE_APPLICATION:
+ va_start (args, error);
+ success = egg_desktop_file_launchv (desktop_file, documents,
+ args, error);
+ va_end (args);
+ break;
+
+ case EGG_DESKTOP_FILE_TYPE_LINK:
+ if (documents)
+ {
+ g_set_error (error, EGG_DESKTOP_FILE_ERROR,
+ EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE,
+ _("Can't pass document URIs to a 'Type=Link' desktop entry"));
+ return FALSE;
+ }
+
+ if (!parse_link (desktop_file, &app_desktop_file, &documents, error))
+ return FALSE;
+
+ va_start (args, error);
+ success = egg_desktop_file_launchv (app_desktop_file, documents,
+ args, error);
+ va_end (args);
+
+ egg_desktop_file_free (app_desktop_file);
+ free_document_list (documents);
+ break;
+
+ case EGG_DESKTOP_FILE_TYPE_UNRECOGNIZED:
+ case EGG_DESKTOP_FILE_TYPE_DIRECTORY:
+ default:
+ g_set_error (error, EGG_DESKTOP_FILE_ERROR,
+ EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE,
+ _("Not a launchable item"));
+ success = FALSE;
+ break;
+ }
+
+ return success;
+}
+
+
+GQuark
+egg_desktop_file_error_quark (void)
+{
+ return g_quark_from_static_string ("egg-desktop_file-error-quark");
+}
+
+
+G_LOCK_DEFINE_STATIC (egg_desktop_file);
+static EggDesktopFile *egg_desktop_file;
+
+static void
+egg_set_desktop_file_internal (const char *desktop_file_path,
+ gboolean set_defaults)
+{
+ GError *error = NULL;
+
+ G_LOCK (egg_desktop_file);
+ if (egg_desktop_file)
+ egg_desktop_file_free (egg_desktop_file);
+
+ egg_desktop_file = egg_desktop_file_new (desktop_file_path, &error);
+ if (error)
+ {
+ g_warning ("Could not load desktop file '%s': %s",
+ desktop_file_path, error->message);
+ g_error_free (error);
+ }
+
+ if (set_defaults && egg_desktop_file != NULL) {
+ /* Set localized application name and default window icon */
+ if (egg_desktop_file->name)
+ g_set_application_name (egg_desktop_file->name);
+ if (egg_desktop_file->icon)
+ {
+ if (g_path_is_absolute (egg_desktop_file->icon))
+ gtk_window_set_default_icon_from_file (egg_desktop_file->icon, NULL);
+ else
+ gtk_window_set_default_icon_name (egg_desktop_file->icon);
+ }
+ }
+
+ G_UNLOCK (egg_desktop_file);
+}
+
+/**
+ * egg_set_desktop_file:
+ * @desktop_file_path: path to the application's desktop file
+ *
+ * Creates an #EggDesktopFile for the application from the data at
+ * @desktop_file_path. This will also call g_set_application_name()
+ * with the localized application name from the desktop file, and
+ * gtk_window_set_default_icon_name() or
+ * gtk_window_set_default_icon_from_file() with the application's
+ * icon. Other code may use additional information from the desktop
+ * file.
+ * See egg_set_desktop_file_without_defaults() for a variant of this
+ * function that does not set the application name and default window
+ * icon.
+ *
+ * Note that for thread safety reasons, this function can only
+ * be called once, and is mutually exclusive with calling
+ * egg_set_desktop_file_without_defaults().
+ **/
+void
+egg_set_desktop_file (const char *desktop_file_path)
+{
+ egg_set_desktop_file_internal (desktop_file_path, TRUE);
+}
+
+/**
+ * egg_set_desktop_file_without_defaults:
+ * @desktop_file_path: path to the application's desktop file
+ *
+ * Creates an #EggDesktopFile for the application from the data at
+ * @desktop_file_path.
+ * See egg_set_desktop_file() for a variant of this function that
+ * sets the application name and default window icon from the information
+ * in the desktop file.
+ *
+ * Note that for thread safety reasons, this function can only
+ * be called once, and is mutually exclusive with calling
+ * egg_set_desktop_file().
+ **/
+void
+egg_set_desktop_file_without_defaults (const char *desktop_file_path)
+{
+ egg_set_desktop_file_internal (desktop_file_path, FALSE);
+}
+
+/**
+ * egg_get_desktop_file:
+ *
+ * Gets the application's #EggDesktopFile, as set by
+ * egg_set_desktop_file().
+ *
+ * Return value: the #EggDesktopFile, or %NULL if it hasn't been set.
+ **/
+EggDesktopFile *
+egg_get_desktop_file (void)
+{
+ EggDesktopFile *retval;
+
+ G_LOCK (egg_desktop_file);
+ retval = egg_desktop_file;
+ G_UNLOCK (egg_desktop_file);
+
+ return retval;
+}
diff --git a/egg/eggdesktopfile.h b/egg/eggdesktopfile.h
new file mode 100644
index 0000000..68850b7
--- /dev/null
+++ b/egg/eggdesktopfile.h
@@ -0,0 +1,164 @@
+/* eggdesktopfile.h - Freedesktop.Org Desktop Files
+ * Copyright (C) 2007 Novell, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; see the file COPYING.LIB. If not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place -
+ * Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __EGG_DESKTOP_FILE_H__
+#define __EGG_DESKTOP_FILE_H__
+
+#include <glib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct EggDesktopFile EggDesktopFile;
+
+typedef enum {
+ EGG_DESKTOP_FILE_TYPE_UNRECOGNIZED,
+
+ EGG_DESKTOP_FILE_TYPE_APPLICATION,
+ EGG_DESKTOP_FILE_TYPE_LINK,
+ EGG_DESKTOP_FILE_TYPE_DIRECTORY
+} EggDesktopFileType;
+
+EggDesktopFile *egg_desktop_file_new (const char *desktop_file_path,
+ GError **error);
+
+EggDesktopFile *egg_desktop_file_new_from_data_dirs (const char *desktop_file_path,
+ GError **error);
+EggDesktopFile *egg_desktop_file_new_from_dirs (const char *desktop_file_path,
+ const char **search_dirs,
+ GError **error);
+EggDesktopFile *egg_desktop_file_new_from_key_file (GKeyFile *key_file,
+ const char *source,
+ GError **error);
+
+void egg_desktop_file_free (EggDesktopFile *desktop_file);
+
+const char *egg_desktop_file_get_source (EggDesktopFile *desktop_file);
+
+EggDesktopFileType egg_desktop_file_get_desktop_file_type (EggDesktopFile *desktop_file);
+
+const char *egg_desktop_file_get_name (EggDesktopFile *desktop_file);
+const char *egg_desktop_file_get_icon (EggDesktopFile *desktop_file);
+
+gboolean egg_desktop_file_can_launch (EggDesktopFile *desktop_file,
+ const char *desktop_environment);
+
+gboolean egg_desktop_file_accepts_documents (EggDesktopFile *desktop_file);
+gboolean egg_desktop_file_accepts_multiple (EggDesktopFile *desktop_file);
+gboolean egg_desktop_file_accepts_uris (EggDesktopFile *desktop_file);
+
+char *egg_desktop_file_parse_exec (EggDesktopFile *desktop_file,
+ GSList *documents,
+ GError **error);
+
+gboolean egg_desktop_file_launch (EggDesktopFile *desktop_file,
+ GSList *documents,
+ GError **error,
+ ...) G_GNUC_NULL_TERMINATED;
+
+typedef enum {
+ EGG_DESKTOP_FILE_LAUNCH_CLEARENV = 1,
+ EGG_DESKTOP_FILE_LAUNCH_PUTENV,
+ EGG_DESKTOP_FILE_LAUNCH_SCREEN,
+ EGG_DESKTOP_FILE_LAUNCH_WORKSPACE,
+ EGG_DESKTOP_FILE_LAUNCH_DIRECTORY,
+ EGG_DESKTOP_FILE_LAUNCH_TIME,
+ EGG_DESKTOP_FILE_LAUNCH_FLAGS,
+ EGG_DESKTOP_FILE_LAUNCH_SETUP_FUNC,
+ EGG_DESKTOP_FILE_LAUNCH_RETURN_PID,
+ EGG_DESKTOP_FILE_LAUNCH_RETURN_STDIN_PIPE,
+ EGG_DESKTOP_FILE_LAUNCH_RETURN_STDOUT_PIPE,
+ EGG_DESKTOP_FILE_LAUNCH_RETURN_STDERR_PIPE,
+ EGG_DESKTOP_FILE_LAUNCH_RETURN_STARTUP_ID
+} EggDesktopFileLaunchOption;
+
+/* Standard Keys */
+#define EGG_DESKTOP_FILE_GROUP "Desktop Entry"
+
+#define EGG_DESKTOP_FILE_KEY_TYPE "Type"
+#define EGG_DESKTOP_FILE_KEY_VERSION "Version"
+#define EGG_DESKTOP_FILE_KEY_NAME "Name"
+#define EGG_DESKTOP_FILE_KEY_GENERIC_NAME "GenericName"
+#define EGG_DESKTOP_FILE_KEY_NO_DISPLAY "NoDisplay"
+#define EGG_DESKTOP_FILE_KEY_COMMENT "Comment"
+#define EGG_DESKTOP_FILE_KEY_ICON "Icon"
+#define EGG_DESKTOP_FILE_KEY_HIDDEN "Hidden"
+#define EGG_DESKTOP_FILE_KEY_ONLY_SHOW_IN "OnlyShowIn"
+#define EGG_DESKTOP_FILE_KEY_NOT_SHOW_IN "NotShowIn"
+#define EGG_DESKTOP_FILE_KEY_TRY_EXEC "TryExec"
+#define EGG_DESKTOP_FILE_KEY_EXEC "Exec"
+#define EGG_DESKTOP_FILE_KEY_PATH "Path"
+#define EGG_DESKTOP_FILE_KEY_TERMINAL "Terminal"
+#define EGG_DESKTOP_FILE_KEY_MIME_TYPE "MimeType"
+#define EGG_DESKTOP_FILE_KEY_CATEGORIES "Categories"
+#define EGG_DESKTOP_FILE_KEY_STARTUP_NOTIFY "StartupNotify"
+#define EGG_DESKTOP_FILE_KEY_STARTUP_WM_CLASS "StartupWMClass"
+#define EGG_DESKTOP_FILE_KEY_URL "URL"
+
+/* Accessors */
+gboolean egg_desktop_file_has_key (EggDesktopFile *desktop_file,
+ const char *key,
+ GError **error);
+char *egg_desktop_file_get_string (EggDesktopFile *desktop_file,
+ const char *key,
+ GError **error) G_GNUC_MALLOC;
+char *egg_desktop_file_get_locale_string (EggDesktopFile *desktop_file,
+ const char *key,
+ const char *locale,
+ GError **error) G_GNUC_MALLOC;
+gboolean egg_desktop_file_get_boolean (EggDesktopFile *desktop_file,
+ const char *key,
+ GError **error);
+double egg_desktop_file_get_numeric (EggDesktopFile *desktop_file,
+ const char *key,
+ GError **error);
+char **egg_desktop_file_get_string_list (EggDesktopFile *desktop_file,
+ const char *key,
+ gsize *length,
+ GError **error) G_GNUC_MALLOC;
+char **egg_desktop_file_get_locale_string_list (EggDesktopFile *desktop_file,
+ const char *key,
+ const char *locale,
+ gsize *length,
+ GError **error) G_GNUC_MALLOC;
+
+
+/* Errors */
+#define EGG_DESKTOP_FILE_ERROR egg_desktop_file_error_quark()
+
+GQuark egg_desktop_file_error_quark (void);
+
+typedef enum {
+ EGG_DESKTOP_FILE_ERROR_INVALID,
+ EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE,
+ EGG_DESKTOP_FILE_ERROR_UNRECOGNIZED_OPTION
+} EggDesktopFileError;
+
+/* Global application desktop file */
+void egg_set_desktop_file (const char *desktop_file_path);
+void egg_set_desktop_file_without_defaults (const char *desktop_file_path);
+EggDesktopFile *egg_get_desktop_file (void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __EGG_DESKTOP_FILE_H__ */
diff --git a/egg/eggsmclient-private.h b/egg/eggsmclient-private.h
new file mode 100644
index 0000000..84da8ab
--- /dev/null
+++ b/egg/eggsmclient-private.h
@@ -0,0 +1,68 @@
+/* eggsmclient-private.h
+ * Copyright (C) 2007 Novell, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __EGG_SM_CLIENT_PRIVATE_H__
+#define __EGG_SM_CLIENT_PRIVATE_H__
+
+#include <gdkconfig.h>
+#include "eggsmclient.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+GKeyFile* egg_sm_client_save_state(EggSMClient* client);
+void egg_sm_client_quit_requested(EggSMClient* client);
+void egg_sm_client_quit_cancelled(EggSMClient* client);
+void egg_sm_client_quit(EggSMClient* client);
+
+#if defined (GDK_WINDOWING_X11)
+
+ #ifdef EGG_SM_CLIENT_BACKEND_XSMP
+
+ GType egg_sm_client_xsmp_get_type(void);
+ EggSMClient* egg_sm_client_xsmp_new(void);
+
+ #endif
+
+ #ifdef EGG_SM_CLIENT_BACKEND_DBUS
+
+ GType egg_sm_client_dbus_get_type(void);
+ EggSMClient* egg_sm_client_dbus_new(void);
+
+ #endif
+
+#elif defined (GDK_WINDOWING_WIN32)
+
+ GType egg_sm_client_win32_get_type(void);
+ EggSMClient* egg_sm_client_win32_new(void);
+
+#elif defined (GDK_WINDOWING_QUARTZ)
+
+ GType egg_sm_client_osx_get_type(void);
+ EggSMClient* egg_sm_client_osx_new(void);
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* __EGG_SM_CLIENT_PRIVATE_H__ */
diff --git a/egg/eggsmclient-xsmp.c b/egg/eggsmclient-xsmp.c
new file mode 100644
index 0000000..8a9c840
--- /dev/null
+++ b/egg/eggsmclient-xsmp.c
@@ -0,0 +1,1369 @@
+/*
+ * Copyright (C) 2007 Novell, Inc.
+ *
+ * Inspired by various other pieces of code including GsmClient (C)
+ * 2001 Havoc Pennington, MateClient (C) 1998 Carsten Schaar, and twm
+ * session code (C) 1998 The Open Group.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include "eggsmclient.h"
+#include "eggsmclient-private.h"
+
+#include "eggdesktopfile.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <X11/SM/SMlib.h>
+
+#include <gdk/gdk.h>
+
+#define EGG_TYPE_SM_CLIENT_XSMP (egg_sm_client_xsmp_get_type ())
+#define EGG_SM_CLIENT_XSMP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_SM_CLIENT_XSMP, EggSMClientXSMP))
+#define EGG_SM_CLIENT_XSMP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_SM_CLIENT_XSMP, EggSMClientXSMPClass))
+#define EGG_IS_SM_CLIENT_XSMP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_SM_CLIENT_XSMP))
+#define EGG_IS_SM_CLIENT_XSMP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_SM_CLIENT_XSMP))
+#define EGG_SM_CLIENT_XSMP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_SM_CLIENT_XSMP, EggSMClientXSMPClass))
+
+typedef struct _EggSMClientXSMP EggSMClientXSMP;
+typedef struct _EggSMClientXSMPClass EggSMClientXSMPClass;
+
+/* These mostly correspond to the similarly-named states in section
+ * 9.1 of the XSMP spec. Some of the states there aren't represented
+ * here, because we don't need them. SHUTDOWN_CANCELLED is slightly
+ * different from the spec; we use it when the client is IDLE after a
+ * ShutdownCancelled message, but the application is still interacting
+ * and doesn't know the shutdown has been cancelled yet.
+ */
+typedef enum {
+ XSMP_STATE_IDLE,
+ XSMP_STATE_SAVE_YOURSELF,
+ XSMP_STATE_INTERACT_REQUEST,
+ XSMP_STATE_INTERACT,
+ XSMP_STATE_SAVE_YOURSELF_DONE,
+ XSMP_STATE_SHUTDOWN_CANCELLED,
+ XSMP_STATE_CONNECTION_CLOSED
+} EggSMClientXSMPState;
+
+static const char* state_names[] = {
+ "idle",
+ "save-yourself",
+ "interact-request",
+ "interact",
+ "save-yourself-done",
+ "shutdown-cancelled",
+ "connection-closed"
+};
+
+#define EGG_SM_CLIENT_XSMP_STATE(xsmp) (state_names[(xsmp)->state])
+
+struct _EggSMClientXSMP
+{
+ EggSMClient parent;
+
+ SmcConn connection;
+ char *client_id;
+
+ EggSMClientXSMPState state;
+ char **restart_command;
+ gboolean set_restart_command;
+ int restart_style;
+
+ guint idle;
+
+ /* Current SaveYourself state */
+ guint expecting_initial_save_yourself : 1;
+ guint need_save_state : 1;
+ guint need_quit_requested : 1;
+ guint interact_errors : 1;
+ guint shutting_down : 1;
+
+ /* Todo list */
+ guint waiting_to_set_initial_properties : 1;
+ guint waiting_to_emit_quit : 1;
+ guint waiting_to_emit_quit_cancelled : 1;
+ guint waiting_to_save_myself : 1;
+
+};
+
+struct _EggSMClientXSMPClass
+{
+ EggSMClientClass parent_class;
+
+};
+
+static void sm_client_xsmp_startup (EggSMClient *client,
+ const char *client_id);
+static void sm_client_xsmp_set_restart_command (EggSMClient *client,
+ int argc,
+ const char **argv);
+static void sm_client_xsmp_will_quit (EggSMClient *client,
+ gboolean will_quit);
+static gboolean sm_client_xsmp_end_session (EggSMClient *client,
+ EggSMClientEndStyle style,
+ gboolean request_confirmation);
+
+static void xsmp_save_yourself (SmcConn smc_conn,
+ SmPointer client_data,
+ int save_style,
+ Bool shutdown,
+ int interact_style,
+ Bool fast);
+static void xsmp_die (SmcConn smc_conn,
+ SmPointer client_data);
+static void xsmp_save_complete (SmcConn smc_conn,
+ SmPointer client_data);
+static void xsmp_shutdown_cancelled (SmcConn smc_conn,
+ SmPointer client_data);
+static void xsmp_interact (SmcConn smc_conn,
+ SmPointer client_data);
+
+static SmProp *array_prop (const char *name,
+ ...);
+static SmProp *ptrarray_prop (const char *name,
+ GPtrArray *values);
+static SmProp *string_prop (const char *name,
+ const char *value);
+static SmProp *card8_prop (const char *name,
+ unsigned char value);
+
+static void set_properties (EggSMClientXSMP *xsmp, ...);
+static void delete_properties (EggSMClientXSMP *xsmp, ...);
+
+static GPtrArray *generate_command (char **restart_command,
+ const char *client_id,
+ const char *state_file);
+
+static void save_state (EggSMClientXSMP *xsmp);
+static void do_save_yourself (EggSMClientXSMP *xsmp);
+static void update_pending_events (EggSMClientXSMP *xsmp);
+
+static void ice_init (void);
+static gboolean process_ice_messages (IceConn ice_conn);
+static void smc_error_handler (SmcConn smc_conn,
+ Bool swap,
+ int offending_minor_opcode,
+ unsigned long offending_sequence,
+ int error_class,
+ int severity,
+ SmPointer values);
+
+G_DEFINE_TYPE (EggSMClientXSMP, egg_sm_client_xsmp, EGG_TYPE_SM_CLIENT)
+
+static void
+egg_sm_client_xsmp_init (EggSMClientXSMP *xsmp)
+{
+ xsmp->state = XSMP_STATE_CONNECTION_CLOSED;
+ xsmp->connection = NULL;
+ xsmp->restart_style = SmRestartIfRunning;
+}
+
+static void
+egg_sm_client_xsmp_class_init (EggSMClientXSMPClass *klass)
+{
+ EggSMClientClass *sm_client_class = EGG_SM_CLIENT_CLASS (klass);
+
+ sm_client_class->startup = sm_client_xsmp_startup;
+ sm_client_class->set_restart_command = sm_client_xsmp_set_restart_command;
+ sm_client_class->will_quit = sm_client_xsmp_will_quit;
+ sm_client_class->end_session = sm_client_xsmp_end_session;
+}
+
+EggSMClient *
+egg_sm_client_xsmp_new (void)
+{
+ if (!g_getenv ("SESSION_MANAGER"))
+ return NULL;
+
+ return g_object_new (EGG_TYPE_SM_CLIENT_XSMP, NULL);
+}
+
+static gboolean
+sm_client_xsmp_set_initial_properties (gpointer user_data)
+{
+ EggSMClientXSMP *xsmp = user_data;
+ EggDesktopFile *desktop_file;
+ GPtrArray *clone, *restart;
+ char pid_str[64];
+
+ if (xsmp->idle)
+ {
+ g_source_remove (xsmp->idle);
+ xsmp->idle = 0;
+ }
+ xsmp->waiting_to_set_initial_properties = FALSE;
+
+ if (egg_sm_client_get_mode () == EGG_SM_CLIENT_MODE_NO_RESTART)
+ xsmp->restart_style = SmRestartNever;
+
+ /* Parse info out of desktop file */
+ desktop_file = egg_get_desktop_file ();
+ if (desktop_file)
+ {
+ GError *err = NULL;
+ char *cmdline, **argv;
+ int argc;
+
+ if (xsmp->restart_style == SmRestartIfRunning)
+ {
+ if (egg_desktop_file_get_boolean (desktop_file,
+ "X-MATE-AutoRestart", NULL))
+ xsmp->restart_style = SmRestartImmediately;
+ }
+
+ if (!xsmp->set_restart_command)
+ {
+ cmdline = egg_desktop_file_parse_exec (desktop_file, NULL, &err);
+ if (cmdline && g_shell_parse_argv (cmdline, &argc, &argv, &err))
+ {
+ egg_sm_client_set_restart_command (EGG_SM_CLIENT (xsmp),
+ argc, (const char **)argv);
+ g_strfreev (argv);
+ }
+ else
+ {
+ g_warning ("Could not parse Exec line in desktop file: %s",
+ err->message);
+ g_error_free (err);
+ }
+ g_free (cmdline);
+ }
+ }
+
+ if (!xsmp->set_restart_command)
+ xsmp->restart_command = g_strsplit (g_get_prgname (), " ", -1);
+
+ clone = generate_command (xsmp->restart_command, NULL, NULL);
+ restart = generate_command (xsmp->restart_command, xsmp->client_id, NULL);
+
+ g_debug ("Setting initial properties");
+
+ /* Program, CloneCommand, RestartCommand, and UserID are required.
+ * ProcessID isn't required, but the SM may be able to do something
+ * useful with it.
+ */
+ g_snprintf (pid_str, sizeof (pid_str), "%lu", (gulong) getpid ());
+ set_properties (xsmp,
+ string_prop (SmProgram, g_get_prgname ()),
+ ptrarray_prop (SmCloneCommand, clone),
+ ptrarray_prop (SmRestartCommand, restart),
+ string_prop (SmUserID, g_get_user_name ()),
+ string_prop (SmProcessID, pid_str),
+ card8_prop (SmRestartStyleHint, xsmp->restart_style),
+ NULL);
+ g_ptr_array_free (clone, TRUE);
+ g_ptr_array_free (restart, TRUE);
+
+ if (desktop_file)
+ {
+ set_properties (xsmp,
+ string_prop ("_GSM_DesktopFile", egg_desktop_file_get_source (desktop_file)),
+ NULL);
+ }
+
+ update_pending_events (xsmp);
+ return FALSE;
+}
+
+/* This gets called from two different places: xsmp_die() (when the
+ * server asks us to disconnect) and process_ice_messages() (when the
+ * server disconnects unexpectedly).
+ */
+static void
+sm_client_xsmp_disconnect (EggSMClientXSMP *xsmp)
+{
+ SmcConn connection;
+
+ if (!xsmp->connection)
+ return;
+
+ g_debug ("Disconnecting");
+
+ connection = xsmp->connection;
+ xsmp->connection = NULL;
+ SmcCloseConnection (connection, 0, NULL);
+ xsmp->state = XSMP_STATE_CONNECTION_CLOSED;
+
+ xsmp->waiting_to_save_myself = FALSE;
+ update_pending_events (xsmp);
+}
+
+static void
+sm_client_xsmp_startup (EggSMClient *client,
+ const char *client_id)
+{
+ EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client;
+ SmcCallbacks callbacks;
+ char *ret_client_id;
+ char error_string_ret[256];
+
+ xsmp->client_id = g_strdup (client_id);
+
+ ice_init ();
+ SmcSetErrorHandler (smc_error_handler);
+
+ callbacks.save_yourself.callback = xsmp_save_yourself;
+ callbacks.die.callback = xsmp_die;
+ callbacks.save_complete.callback = xsmp_save_complete;
+ callbacks.shutdown_cancelled.callback = xsmp_shutdown_cancelled;
+
+ callbacks.save_yourself.client_data = xsmp;
+ callbacks.die.client_data = xsmp;
+ callbacks.save_complete.client_data = xsmp;
+ callbacks.shutdown_cancelled.client_data = xsmp;
+
+ client_id = NULL;
+ error_string_ret[0] = '\0';
+ xsmp->connection =
+ SmcOpenConnection (NULL, xsmp, SmProtoMajor, SmProtoMinor,
+ SmcSaveYourselfProcMask | SmcDieProcMask |
+ SmcSaveCompleteProcMask |
+ SmcShutdownCancelledProcMask,
+ &callbacks,
+ xsmp->client_id, &ret_client_id,
+ sizeof (error_string_ret), error_string_ret);
+
+ if (!xsmp->connection)
+ {
+ g_warning ("Failed to connect to the session manager: %s\n",
+ error_string_ret[0] ?
+ error_string_ret : "no error message given");
+ xsmp->state = XSMP_STATE_CONNECTION_CLOSED;
+ return;
+ }
+
+ /* We expect a pointless initial SaveYourself if either (a) we
+ * didn't have an initial client ID, or (b) we DID have an initial
+ * client ID, but the server rejected it and gave us a new one.
+ */
+ if (!xsmp->client_id ||
+ (ret_client_id && strcmp (xsmp->client_id, ret_client_id) != 0))
+ xsmp->expecting_initial_save_yourself = TRUE;
+
+ if (ret_client_id)
+ {
+ g_free (xsmp->client_id);
+ xsmp->client_id = g_strdup (ret_client_id);
+ free (ret_client_id);
+
+ gdk_threads_enter ();
+ gdk_set_sm_client_id (xsmp->client_id);
+ gdk_threads_leave ();
+
+ g_debug ("Got client ID \"%s\"", xsmp->client_id);
+ }
+
+ xsmp->state = XSMP_STATE_IDLE;
+
+ /* Do not set the initial properties until we reach the main loop,
+ * so that the application has a chance to call
+ * egg_set_desktop_file(). (This may also help the session manager
+ * have a better idea of when the application is fully up and
+ * running.)
+ */
+ xsmp->waiting_to_set_initial_properties = TRUE;
+ xsmp->idle = g_idle_add (sm_client_xsmp_set_initial_properties, client);
+}
+
+static void
+sm_client_xsmp_set_restart_command (EggSMClient *client,
+ int argc,
+ const char **argv)
+{
+ EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client;
+ int i;
+
+ g_strfreev (xsmp->restart_command);
+
+ xsmp->restart_command = g_new (char *, argc + 1);
+ for (i = 0; i < argc; i++)
+ xsmp->restart_command[i] = g_strdup (argv[i]);
+ xsmp->restart_command[i] = NULL;
+
+ xsmp->set_restart_command = TRUE;
+}
+
+static void
+sm_client_xsmp_will_quit (EggSMClient *client,
+ gboolean will_quit)
+{
+ EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client;
+
+ if (xsmp->state == XSMP_STATE_CONNECTION_CLOSED)
+ {
+ /* The session manager has already exited! Schedule a quit
+ * signal.
+ */
+ xsmp->waiting_to_emit_quit = TRUE;
+ update_pending_events (xsmp);
+ return;
+ }
+ else if (xsmp->state == XSMP_STATE_SHUTDOWN_CANCELLED)
+ {
+ /* We received a ShutdownCancelled message while the application
+ * was interacting; Schedule a quit_cancelled signal.
+ */
+ xsmp->waiting_to_emit_quit_cancelled = TRUE;
+ update_pending_events (xsmp);
+ return;
+ }
+
+ g_return_if_fail (xsmp->state == XSMP_STATE_INTERACT);
+
+ g_debug ("Sending InteractDone(%s)", will_quit ? "False" : "True");
+ SmcInteractDone (xsmp->connection, !will_quit);
+
+ if (will_quit && xsmp->need_save_state)
+ save_state (xsmp);
+
+ g_debug ("Sending SaveYourselfDone(%s)", will_quit ? "True" : "False");
+ SmcSaveYourselfDone (xsmp->connection, will_quit);
+ xsmp->state = XSMP_STATE_SAVE_YOURSELF_DONE;
+}
+
+static gboolean
+sm_client_xsmp_end_session (EggSMClient *client,
+ EggSMClientEndStyle style,
+ gboolean request_confirmation)
+{
+ EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client;
+ int save_type;
+
+ /* To end the session via XSMP, we have to send a
+ * SaveYourselfRequest. We aren't allowed to do that if anything
+ * else is going on, but we don't want to expose this fact to the
+ * application. So we do our best to patch things up here...
+ *
+ * In the worst case, this method might block for some length of
+ * time in process_ice_messages, but the only time that code path is
+ * honestly likely to get hit is if the application tries to end the
+ * session as the very first thing it does, in which case it
+ * probably won't actually block anyway. It's not worth gunking up
+ * the API to try to deal nicely with the other 0.01% of cases where
+ * this happens.
+ */
+
+ while (xsmp->state != XSMP_STATE_IDLE ||
+ xsmp->expecting_initial_save_yourself)
+ {
+ /* If we're already shutting down, we don't need to do anything. */
+ if (xsmp->shutting_down)
+ return TRUE;
+
+ switch (xsmp->state)
+ {
+ case XSMP_STATE_CONNECTION_CLOSED:
+ return FALSE;
+
+ case XSMP_STATE_SAVE_YOURSELF:
+ /* Trying to log out from the save_state callback? Whatever.
+ * Abort the save_state.
+ */
+ SmcSaveYourselfDone (xsmp->connection, FALSE);
+ xsmp->state = XSMP_STATE_SAVE_YOURSELF_DONE;
+ break;
+
+ case XSMP_STATE_INTERACT_REQUEST:
+ case XSMP_STATE_INTERACT:
+ case XSMP_STATE_SHUTDOWN_CANCELLED:
+ /* Already in a shutdown-related state, just ignore
+ * the new shutdown request...
+ */
+ return TRUE;
+
+ case XSMP_STATE_IDLE:
+ if (xsmp->waiting_to_set_initial_properties)
+ sm_client_xsmp_set_initial_properties (xsmp);
+
+ if (!xsmp->expecting_initial_save_yourself)
+ break;
+ /* else fall through */
+
+ case XSMP_STATE_SAVE_YOURSELF_DONE:
+ /* We need to wait for some response from the server.*/
+ process_ice_messages (SmcGetIceConnection (xsmp->connection));
+ break;
+
+ default:
+ /* Hm... shouldn't happen */
+ return FALSE;
+ }
+ }
+
+ /* xfce4-session will do the wrong thing if we pass SmSaveGlobal and
+ * the user chooses to save the session. But mate-session will do
+ * the wrong thing if we pass SmSaveBoth and the user chooses NOT to
+ * save the session... Sigh.
+ */
+ if (!strcmp (SmcVendor (xsmp->connection), "xfce4-session"))
+ save_type = SmSaveBoth;
+ else
+ save_type = SmSaveGlobal;
+
+ g_debug ("Sending SaveYourselfRequest(SmSaveGlobal, Shutdown, SmInteractStyleAny, %sFast)", request_confirmation ? "!" : "");
+ SmcRequestSaveYourself (xsmp->connection,
+ save_type,
+ True, /* shutdown */
+ SmInteractStyleAny,
+ !request_confirmation, /* fast */
+ True /* global */);
+ return TRUE;
+}
+
+static gboolean
+idle_do_pending_events (gpointer data)
+{
+ EggSMClientXSMP *xsmp = data;
+ EggSMClient *client = data;
+
+ gdk_threads_enter ();
+
+ xsmp->idle = 0;
+
+ if (xsmp->waiting_to_emit_quit)
+ {
+ xsmp->waiting_to_emit_quit = FALSE;
+ egg_sm_client_quit (client);
+ goto out;
+ }
+
+ if (xsmp->waiting_to_emit_quit_cancelled)
+ {
+ xsmp->waiting_to_emit_quit_cancelled = FALSE;
+ egg_sm_client_quit_cancelled (client);
+ xsmp->state = XSMP_STATE_IDLE;
+ }
+
+ if (xsmp->waiting_to_save_myself)
+ {
+ xsmp->waiting_to_save_myself = FALSE;
+ do_save_yourself (xsmp);
+ }
+
+ out:
+ gdk_threads_leave ();
+ return FALSE;
+}
+
+static void
+update_pending_events (EggSMClientXSMP *xsmp)
+{
+ gboolean want_idle =
+ xsmp->waiting_to_emit_quit ||
+ xsmp->waiting_to_emit_quit_cancelled ||
+ xsmp->waiting_to_save_myself;
+
+ if (want_idle)
+ {
+ if (xsmp->idle == 0)
+ xsmp->idle = g_idle_add (idle_do_pending_events, xsmp);
+ }
+ else
+ {
+ if (xsmp->idle != 0)
+ g_source_remove (xsmp->idle);
+ xsmp->idle = 0;
+ }
+}
+
+static void
+fix_broken_state (EggSMClientXSMP *xsmp, const char *message,
+ gboolean send_interact_done,
+ gboolean send_save_yourself_done)
+{
+ g_warning ("Received XSMP %s message in state %s: client or server error",
+ message, EGG_SM_CLIENT_XSMP_STATE (xsmp));
+
+ /* Forget any pending SaveYourself plans we had */
+ xsmp->waiting_to_save_myself = FALSE;
+ update_pending_events (xsmp);
+
+ if (send_interact_done)
+ SmcInteractDone (xsmp->connection, False);
+ if (send_save_yourself_done)
+ SmcSaveYourselfDone (xsmp->connection, True);
+
+ xsmp->state = send_save_yourself_done ? XSMP_STATE_SAVE_YOURSELF_DONE : XSMP_STATE_IDLE;
+}
+
+/* SM callbacks */
+
+static void
+xsmp_save_yourself (SmcConn smc_conn,
+ SmPointer client_data,
+ int save_type,
+ Bool shutdown,
+ int interact_style,
+ Bool fast)
+{
+ EggSMClientXSMP *xsmp = client_data;
+ gboolean wants_quit_requested;
+
+ g_debug ("Received SaveYourself(%s, %s, %s, %s) in state %s",
+ save_type == SmSaveLocal ? "SmSaveLocal" :
+ save_type == SmSaveGlobal ? "SmSaveGlobal" : "SmSaveBoth",
+ shutdown ? "Shutdown" : "!Shutdown",
+ interact_style == SmInteractStyleAny ? "SmInteractStyleAny" :
+ interact_style == SmInteractStyleErrors ? "SmInteractStyleErrors" :
+ "SmInteractStyleNone", fast ? "Fast" : "!Fast",
+ EGG_SM_CLIENT_XSMP_STATE (xsmp));
+
+ if (xsmp->state != XSMP_STATE_IDLE &&
+ xsmp->state != XSMP_STATE_SHUTDOWN_CANCELLED)
+ {
+ fix_broken_state (xsmp, "SaveYourself", FALSE, TRUE);
+ return;
+ }
+
+ if (xsmp->waiting_to_set_initial_properties)
+ sm_client_xsmp_set_initial_properties (xsmp);
+
+ /* If this is the initial SaveYourself, ignore it; we've already set
+ * properties and there's no reason to actually save state too.
+ */
+ if (xsmp->expecting_initial_save_yourself)
+ {
+ xsmp->expecting_initial_save_yourself = FALSE;
+
+ if (save_type == SmSaveLocal &&
+ interact_style == SmInteractStyleNone &&
+ !shutdown && !fast)
+ {
+ g_debug ("Sending SaveYourselfDone(True) for initial SaveYourself");
+ SmcSaveYourselfDone (xsmp->connection, True);
+ /* As explained in the comment at the end of
+ * do_save_yourself(), SAVE_YOURSELF_DONE is the correct
+ * state here, not IDLE.
+ */
+ xsmp->state = XSMP_STATE_SAVE_YOURSELF_DONE;
+ return;
+ }
+ else
+ g_warning ("First SaveYourself was not the expected one!");
+ }
+
+ /* Even ignoring the "fast" flag completely, there are still 18
+ * different combinations of save_type, shutdown and interact_style.
+ * We interpret them as follows:
+ *
+ * Type Shutdown Interact Interpretation
+ * G F A/E/N do nothing (1)
+ * G T N do nothing (1)*
+ * G T A/E quit_requested (2)
+ * L/B F A/E/N save_state (3)
+ * L/B T N save_state (3)*
+ * L/B T A/E quit_requested, then save_state (4)
+ *
+ * 1. Do nothing, because the SM asked us to do something
+ * uninteresting (save open files, but then don't quit
+ * afterward) or rude (save open files without asking the user
+ * for confirmation).
+ *
+ * 2. Request interaction and then emit ::quit_requested. This
+ * perhaps isn't quite correct for the SmInteractStyleErrors
+ * case, but we don't care.
+ *
+ * 3. Emit ::save_state. The SmSaveBoth SaveYourselfs in these
+ * rows essentially get demoted to SmSaveLocal, because their
+ * Global halves correspond to "do nothing".
+ *
+ * 4. Request interaction, emit ::quit_requested, and then emit
+ * ::save_state after interacting. This is the SmSaveBoth
+ * equivalent of #2, but we also promote SmSaveLocal shutdown
+ * SaveYourselfs to SmSaveBoth here, because we want to give
+ * the user a chance to save open files before quitting.
+ *
+ * (* It would be nice if we could do something useful when the
+ * session manager sends a SaveYourself with shutdown True and
+ * SmInteractStyleNone. But we can't, so we just pretend it didn't
+ * even tell us it was shutting down. The docs for ::quit mention
+ * that it might not always be preceded by ::quit_requested.)
+ */
+
+ /* As an optimization, we don't actually request interaction and
+ * emit ::quit_requested if the application isn't listening to the
+ * signal.
+ */
+ wants_quit_requested = g_signal_has_handler_pending (xsmp, g_signal_lookup ("quit_requested", EGG_TYPE_SM_CLIENT), 0, FALSE);
+
+ xsmp->need_save_state = (save_type != SmSaveGlobal);
+ xsmp->need_quit_requested = (shutdown && wants_quit_requested &&
+ interact_style != SmInteractStyleNone);
+ xsmp->interact_errors = (interact_style == SmInteractStyleErrors);
+
+ xsmp->shutting_down = shutdown;
+
+ do_save_yourself (xsmp);
+}
+
+static void
+do_save_yourself (EggSMClientXSMP *xsmp)
+{
+ if (xsmp->state == XSMP_STATE_SHUTDOWN_CANCELLED)
+ {
+ /* The SM cancelled a previous SaveYourself, but we haven't yet
+ * had a chance to tell the application, so we can't start
+ * processing this SaveYourself yet.
+ */
+ xsmp->waiting_to_save_myself = TRUE;
+ update_pending_events (xsmp);
+ return;
+ }
+
+ if (xsmp->need_quit_requested)
+ {
+ xsmp->state = XSMP_STATE_INTERACT_REQUEST;
+
+ g_debug ("Sending InteractRequest(%s)",
+ xsmp->interact_errors ? "Error" : "Normal");
+ SmcInteractRequest (xsmp->connection,
+ xsmp->interact_errors ? SmDialogError : SmDialogNormal,
+ xsmp_interact,
+ xsmp);
+ return;
+ }
+
+ if (xsmp->need_save_state)
+ {
+ save_state (xsmp);
+
+ /* Though unlikely, the client could have been disconnected
+ * while the application was saving its state.
+ */
+ if (!xsmp->connection)
+ return;
+ }
+
+ g_debug ("Sending SaveYourselfDone(True)");
+ SmcSaveYourselfDone (xsmp->connection, True);
+
+ /* The client state diagram in the XSMP spec says that after a
+ * non-shutdown SaveYourself, we go directly back to "idle". But
+ * everything else in both the XSMP spec and the libSM docs
+ * disagrees.
+ */
+ xsmp->state = XSMP_STATE_SAVE_YOURSELF_DONE;
+}
+
+static void
+save_state (EggSMClientXSMP *xsmp)
+{
+ GKeyFile *state_file;
+ char *state_file_path, *data;
+ EggDesktopFile *desktop_file;
+ GPtrArray *restart;
+ int offset, fd;
+
+ /* We set xsmp->state before emitting save_state, but our caller is
+ * responsible for setting it back afterward.
+ */
+ xsmp->state = XSMP_STATE_SAVE_YOURSELF;
+
+ state_file = egg_sm_client_save_state ((EggSMClient *)xsmp);
+ if (!state_file)
+ {
+ restart = generate_command (xsmp->restart_command, xsmp->client_id, NULL);
+ set_properties (xsmp,
+ ptrarray_prop (SmRestartCommand, restart),
+ NULL);
+ g_ptr_array_free (restart, TRUE);
+ delete_properties (xsmp, SmDiscardCommand, NULL);
+ return;
+ }
+
+ desktop_file = egg_get_desktop_file ();
+ if (desktop_file)
+ {
+ GKeyFile *merged_file;
+ char *desktop_file_path;
+
+ merged_file = g_key_file_new ();
+ desktop_file_path =
+ g_filename_from_uri (egg_desktop_file_get_source (desktop_file),
+ NULL, NULL);
+ if (desktop_file_path &&
+ g_key_file_load_from_file (merged_file, desktop_file_path,
+ G_KEY_FILE_KEEP_COMMENTS |
+ G_KEY_FILE_KEEP_TRANSLATIONS, NULL))
+ {
+ guint g, k, i;
+ char **groups, **keys, *value, *exec;
+
+ groups = g_key_file_get_groups (state_file, NULL);
+ for (g = 0; groups[g]; g++)
+ {
+ keys = g_key_file_get_keys (state_file, groups[g], NULL, NULL);
+ for (k = 0; keys[k]; k++)
+ {
+ value = g_key_file_get_value (state_file, groups[g],
+ keys[k], NULL);
+ if (value)
+ {
+ g_key_file_set_value (merged_file, groups[g],
+ keys[k], value);
+ g_free (value);
+ }
+ }
+ g_strfreev (keys);
+ }
+ g_strfreev (groups);
+
+ g_key_file_free (state_file);
+ state_file = merged_file;
+
+ /* Update Exec key using "--sm-client-state-file %k" */
+ restart = generate_command (xsmp->restart_command,
+ NULL, "%k");
+ for (i = 0; i < restart->len; i++)
+ restart->pdata[i] = g_shell_quote (restart->pdata[i]);
+ g_ptr_array_add (restart, NULL);
+ exec = g_strjoinv (" ", (char **)restart->pdata);
+ g_strfreev ((char **)restart->pdata);
+ g_ptr_array_free (restart, FALSE);
+
+ g_key_file_set_string (state_file, EGG_DESKTOP_FILE_GROUP,
+ EGG_DESKTOP_FILE_KEY_EXEC,
+ exec);
+ g_free (exec);
+ }
+ else
+ desktop_file = NULL;
+
+ g_free (desktop_file_path);
+ }
+
+ /* Now write state_file to disk. (We can't use mktemp(), because
+ * that requires the filename to end with "XXXXXX", and we want
+ * it to end with ".desktop".)
+ */
+
+ data = g_key_file_to_data (state_file, NULL, NULL);
+ g_key_file_free (state_file);
+
+ offset = 0;
+ while (1)
+ {
+ state_file_path = g_strdup_printf ("%s%csession-state%c%s-%ld.%s",
+ g_get_user_config_dir (),
+ G_DIR_SEPARATOR, G_DIR_SEPARATOR,
+ g_get_prgname (),
+ (long)time (NULL) + offset,
+ desktop_file ? "desktop" : "state");
+
+ fd = open (state_file_path, O_WRONLY | O_CREAT | O_EXCL, 0644);
+ if (fd == -1)
+ {
+ if (errno == EEXIST)
+ {
+ offset++;
+ g_free (state_file_path);
+ continue;
+ }
+ else if (errno == ENOTDIR || errno == ENOENT)
+ {
+ char *sep = strrchr (state_file_path, G_DIR_SEPARATOR);
+
+ *sep = '\0';
+ if (g_mkdir_with_parents (state_file_path, 0755) != 0)
+ {
+ g_warning ("Could not create directory '%s'",
+ state_file_path);
+ g_free (state_file_path);
+ state_file_path = NULL;
+ break;
+ }
+
+ continue;
+ }
+
+ g_warning ("Could not create file '%s': %s",
+ state_file_path, g_strerror (errno));
+ g_free (state_file_path);
+ state_file_path = NULL;
+ break;
+ }
+
+ close (fd);
+ g_file_set_contents (state_file_path, data, -1, NULL);
+ break;
+ }
+ g_free (data);
+
+ restart = generate_command (xsmp->restart_command, xsmp->client_id,
+ state_file_path);
+ set_properties (xsmp,
+ ptrarray_prop (SmRestartCommand, restart),
+ NULL);
+ g_ptr_array_free (restart, TRUE);
+
+ if (state_file_path)
+ {
+ set_properties (xsmp,
+ array_prop (SmDiscardCommand,
+ "/bin/rm", "-rf", state_file_path,
+ NULL),
+ NULL);
+ g_free (state_file_path);
+ }
+}
+
+static void
+xsmp_interact (SmcConn smc_conn,
+ SmPointer client_data)
+{
+ EggSMClientXSMP *xsmp = client_data;
+ EggSMClient *client = client_data;
+
+ g_debug ("Received Interact message in state %s",
+ EGG_SM_CLIENT_XSMP_STATE (xsmp));
+
+ if (xsmp->state != XSMP_STATE_INTERACT_REQUEST)
+ {
+ fix_broken_state (xsmp, "Interact", TRUE, TRUE);
+ return;
+ }
+
+ xsmp->state = XSMP_STATE_INTERACT;
+ egg_sm_client_quit_requested (client);
+}
+
+static void
+xsmp_die (SmcConn smc_conn,
+ SmPointer client_data)
+{
+ EggSMClientXSMP *xsmp = client_data;
+ EggSMClient *client = client_data;
+
+ g_debug ("Received Die message in state %s",
+ EGG_SM_CLIENT_XSMP_STATE (xsmp));
+
+ sm_client_xsmp_disconnect (xsmp);
+ egg_sm_client_quit (client);
+}
+
+static void
+xsmp_save_complete (SmcConn smc_conn,
+ SmPointer client_data)
+{
+ EggSMClientXSMP *xsmp = client_data;
+
+ g_debug ("Received SaveComplete message in state %s",
+ EGG_SM_CLIENT_XSMP_STATE (xsmp));
+
+ if (xsmp->state == XSMP_STATE_SAVE_YOURSELF_DONE)
+ xsmp->state = XSMP_STATE_IDLE;
+ else
+ fix_broken_state (xsmp, "SaveComplete", FALSE, FALSE);
+}
+
+static void
+xsmp_shutdown_cancelled (SmcConn smc_conn,
+ SmPointer client_data)
+{
+ EggSMClientXSMP *xsmp = client_data;
+ EggSMClient *client = client_data;
+
+ g_debug ("Received ShutdownCancelled message in state %s",
+ EGG_SM_CLIENT_XSMP_STATE (xsmp));
+
+ xsmp->shutting_down = FALSE;
+
+ if (xsmp->state == XSMP_STATE_SAVE_YOURSELF_DONE)
+ {
+ /* We've finished interacting and now the SM has agreed to
+ * cancel the shutdown.
+ */
+ xsmp->state = XSMP_STATE_IDLE;
+ egg_sm_client_quit_cancelled (client);
+ }
+ else if (xsmp->state == XSMP_STATE_SHUTDOWN_CANCELLED)
+ {
+ /* Hm... ok, so we got a shutdown SaveYourself, which got
+ * cancelled, but the application was still interacting, so we
+ * didn't tell it yet, and then *another* SaveYourself arrived,
+ * which we must still be waiting to tell the app about, except
+ * that now that SaveYourself has been cancelled too! Dizzy yet?
+ */
+ xsmp->waiting_to_save_myself = FALSE;
+ update_pending_events (xsmp);
+ }
+ else
+ {
+ g_debug ("Sending SaveYourselfDone(False)");
+ SmcSaveYourselfDone (xsmp->connection, False);
+
+ if (xsmp->state == XSMP_STATE_INTERACT)
+ {
+ /* The application is currently interacting, so we can't
+ * tell it about the cancellation yet; we will wait until
+ * after it calls egg_sm_client_will_quit().
+ */
+ xsmp->state = XSMP_STATE_SHUTDOWN_CANCELLED;
+ }
+ else
+ {
+ /* The shutdown was cancelled before the application got a
+ * chance to interact.
+ */
+ xsmp->state = XSMP_STATE_IDLE;
+ }
+ }
+}
+
+/* Utilities */
+
+/* Create a restart/clone/Exec command based on @restart_command.
+ * If @client_id is non-%NULL, add "--sm-client-id @client_id".
+ * If @state_file is non-%NULL, add "--sm-client-state-file @state_file".
+ *
+ * None of the input strings are g_strdup()ed; the caller must keep
+ * them around until it is done with the returned GPtrArray, and must
+ * then free the array, but not its contents.
+ */
+static GPtrArray *
+generate_command (char **restart_command, const char *client_id,
+ const char *state_file)
+{
+ GPtrArray *cmd;
+ int i;
+
+ cmd = g_ptr_array_new ();
+ g_ptr_array_add (cmd, restart_command[0]);
+
+ if (client_id)
+ {
+ g_ptr_array_add (cmd, (char *)"--sm-client-id");
+ g_ptr_array_add (cmd, (char *)client_id);
+ }
+
+ if (state_file)
+ {
+ g_ptr_array_add (cmd, (char *)"--sm-client-state-file");
+ g_ptr_array_add (cmd, (char *)state_file);
+ }
+
+ for (i = 1; restart_command[i]; i++)
+ g_ptr_array_add (cmd, restart_command[i]);
+
+ return cmd;
+}
+
+/* Takes a NULL-terminated list of SmProp * values, created by
+ * array_prop, ptrarray_prop, string_prop, card8_prop, sets them, and
+ * frees them.
+ */
+static void
+set_properties (EggSMClientXSMP *xsmp, ...)
+{
+ GPtrArray *props;
+ SmProp *prop;
+ va_list ap;
+ guint i;
+
+ props = g_ptr_array_new ();
+
+ va_start (ap, xsmp);
+ while ((prop = va_arg (ap, SmProp *)))
+ g_ptr_array_add (props, prop);
+ va_end (ap);
+
+ if (xsmp->connection)
+ {
+ SmcSetProperties (xsmp->connection, props->len,
+ (SmProp **)props->pdata);
+ }
+
+ for (i = 0; i < props->len; i++)
+ {
+ prop = props->pdata[i];
+ g_free (prop->vals);
+ g_free (prop);
+ }
+ g_ptr_array_free (props, TRUE);
+}
+
+/* Takes a NULL-terminated list of property names and deletes them. */
+static void
+delete_properties (EggSMClientXSMP *xsmp, ...)
+{
+ GPtrArray *props;
+ char *prop;
+ va_list ap;
+
+ if (!xsmp->connection)
+ return;
+
+ props = g_ptr_array_new ();
+
+ va_start (ap, xsmp);
+ while ((prop = va_arg (ap, char *)))
+ g_ptr_array_add (props, prop);
+ va_end (ap);
+
+ SmcDeleteProperties (xsmp->connection, props->len,
+ (char **)props->pdata);
+
+ g_ptr_array_free (props, TRUE);
+}
+
+/* Takes an array of strings and creates a LISTofARRAY8 property. The
+ * strings are neither dupped nor freed; they need to remain valid
+ * until you're done with the SmProp.
+ */
+static SmProp *
+array_prop (const char *name, ...)
+{
+ SmProp *prop;
+ SmPropValue pv;
+ GArray *vals;
+ char *value;
+ va_list ap;
+
+ prop = g_new (SmProp, 1);
+ prop->name = (char *)name;
+ prop->type = (char *)SmLISTofARRAY8;
+
+ vals = g_array_new (FALSE, FALSE, sizeof (SmPropValue));
+
+ va_start (ap, name);
+ while ((value = va_arg (ap, char *)))
+ {
+ pv.length = strlen (value);
+ pv.value = value;
+ g_array_append_val (vals, pv);
+ }
+
+ prop->num_vals = vals->len;
+ prop->vals = (SmPropValue *)vals->data;
+
+ g_array_free (vals, FALSE);
+
+ return prop;
+}
+
+/* Takes a GPtrArray of strings and creates a LISTofARRAY8 property.
+ * The array contents are neither dupped nor freed; they need to
+ * remain valid until you're done with the SmProp.
+ */
+static SmProp *
+ptrarray_prop (const char *name, GPtrArray *values)
+{
+ SmProp *prop;
+ SmPropValue pv;
+ GArray *vals;
+ guint i;
+
+ prop = g_new (SmProp, 1);
+ prop->name = (char *)name;
+ prop->type = (char *)SmLISTofARRAY8;
+
+ vals = g_array_new (FALSE, FALSE, sizeof (SmPropValue));
+
+ for (i = 0; i < values->len; i++)
+ {
+ pv.length = strlen (values->pdata[i]);
+ pv.value = values->pdata[i];
+ g_array_append_val (vals, pv);
+ }
+
+ prop->num_vals = vals->len;
+ prop->vals = (SmPropValue *)vals->data;
+
+ g_array_free (vals, FALSE);
+
+ return prop;
+}
+
+/* Takes a string and creates an ARRAY8 property. The string is
+ * neither dupped nor freed; it needs to remain valid until you're
+ * done with the SmProp.
+ */
+static SmProp *
+string_prop (const char *name, const char *value)
+{
+ SmProp *prop;
+
+ prop = g_new (SmProp, 1);
+ prop->name = (char *)name;
+ prop->type = (char *)SmARRAY8;
+
+ prop->num_vals = 1;
+ prop->vals = g_new (SmPropValue, 1);
+
+ prop->vals[0].length = strlen (value);
+ prop->vals[0].value = (char *)value;
+
+ return prop;
+}
+
+/* Takes a char and creates a CARD8 property. */
+static SmProp *
+card8_prop (const char *name, unsigned char value)
+{
+ SmProp *prop;
+ char *card8val;
+
+ /* To avoid having to allocate and free prop->vals[0], we cheat and
+ * make vals a 2-element-long array and then use the second element
+ * to store value.
+ */
+
+ prop = g_new (SmProp, 1);
+ prop->name = (char *)name;
+ prop->type = (char *)SmCARD8;
+
+ prop->num_vals = 1;
+ prop->vals = g_new (SmPropValue, 2);
+ card8val = (char *)(&prop->vals[1]);
+ card8val[0] = value;
+
+ prop->vals[0].length = 1;
+ prop->vals[0].value = card8val;
+
+ return prop;
+}
+
+/* ICE code. This makes no effort to play nice with anyone else trying
+ * to use libICE. Fortunately, no one uses libICE for anything other
+ * than SM. (DCOP uses ICE, but it has its own private copy of
+ * libICE.)
+ *
+ * When this moves to gtk, it will need to be cleverer, to avoid
+ * tripping over old apps that use MateClient or that use libSM
+ * directly.
+ */
+
+#include <X11/ICE/ICElib.h>
+#include <fcntl.h>
+
+static void ice_error_handler (IceConn ice_conn,
+ Bool swap,
+ int offending_minor_opcode,
+ unsigned long offending_sequence,
+ int error_class,
+ int severity,
+ IcePointer values);
+static void ice_io_error_handler (IceConn ice_conn);
+static void ice_connection_watch (IceConn ice_conn,
+ IcePointer client_data,
+ Bool opening,
+ IcePointer *watch_data);
+
+static void
+ice_init (void)
+{
+ IceSetIOErrorHandler (ice_io_error_handler);
+ IceSetErrorHandler (ice_error_handler);
+ IceAddConnectionWatch (ice_connection_watch, NULL);
+}
+
+static gboolean
+process_ice_messages (IceConn ice_conn)
+{
+ IceProcessMessagesStatus status;
+
+ gdk_threads_enter ();
+ status = IceProcessMessages (ice_conn, NULL, NULL);
+ gdk_threads_leave ();
+
+ switch (status)
+ {
+ case IceProcessMessagesSuccess:
+ return TRUE;
+
+ case IceProcessMessagesIOError:
+ sm_client_xsmp_disconnect (IceGetConnectionContext (ice_conn));
+ return FALSE;
+
+ case IceProcessMessagesConnectionClosed:
+ return FALSE;
+
+ default:
+ g_assert_not_reached ();
+ }
+}
+
+static gboolean
+ice_iochannel_watch (GIOChannel *channel,
+ GIOCondition condition,
+ gpointer client_data)
+{
+ return process_ice_messages (client_data);
+}
+
+static void
+ice_connection_watch (IceConn ice_conn,
+ IcePointer client_data,
+ Bool opening,
+ IcePointer *watch_data)
+{
+ guint watch_id;
+
+ if (opening)
+ {
+ GIOChannel *channel;
+ int fd = IceConnectionNumber (ice_conn);
+
+ fcntl (fd, F_SETFD, fcntl (fd, F_GETFD, 0) | FD_CLOEXEC);
+ channel = g_io_channel_unix_new (fd);
+ watch_id = g_io_add_watch (channel, G_IO_IN | G_IO_ERR,
+ ice_iochannel_watch, ice_conn);
+ g_io_channel_unref (channel);
+
+ *watch_data = GUINT_TO_POINTER (watch_id);
+ }
+ else
+ {
+ watch_id = GPOINTER_TO_UINT (*watch_data);
+ g_source_remove (watch_id);
+ }
+}
+
+static void
+ice_error_handler (IceConn ice_conn,
+ Bool swap,
+ int offending_minor_opcode,
+ unsigned long offending_sequence,
+ int error_class,
+ int severity,
+ IcePointer values)
+{
+ /* Do nothing */
+}
+
+static void
+ice_io_error_handler (IceConn ice_conn)
+{
+ /* Do nothing */
+}
+
+static void
+smc_error_handler (SmcConn smc_conn,
+ Bool swap,
+ int offending_minor_opcode,
+ unsigned long offending_sequence,
+ int error_class,
+ int severity,
+ SmPointer values)
+{
+ /* Do nothing */
+}
diff --git a/egg/eggsmclient.c b/egg/eggsmclient.c
new file mode 100644
index 0000000..4b65f28
--- /dev/null
+++ b/egg/eggsmclient.c
@@ -0,0 +1,589 @@
+/*
+ * Copyright (C) 2007 Novell, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <glib/gi18n.h>
+
+#include "eggsmclient.h"
+#include "eggsmclient-private.h"
+
+static void egg_sm_client_debug_handler (const char *log_domain,
+ GLogLevelFlags log_level,
+ const char *message,
+ gpointer user_data);
+
+enum {
+ SAVE_STATE,
+ QUIT_REQUESTED,
+ QUIT_CANCELLED,
+ QUIT,
+ LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL];
+
+struct _EggSMClientPrivate {
+ GKeyFile *state_file;
+};
+
+#define EGG_SM_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EGG_TYPE_SM_CLIENT, EggSMClientPrivate))
+
+G_DEFINE_TYPE (EggSMClient, egg_sm_client, G_TYPE_OBJECT)
+
+static EggSMClient *global_client;
+static EggSMClientMode global_client_mode = EGG_SM_CLIENT_MODE_NORMAL;
+
+static void
+egg_sm_client_init (EggSMClient *client)
+{
+ ;
+}
+
+static void
+egg_sm_client_class_init (EggSMClientClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ g_type_class_add_private (klass, sizeof (EggSMClientPrivate));
+
+ /**
+ * EggSMClient::save_state:
+ * @client: the client
+ * @state_file: a #GKeyFile to save state information into
+ *
+ * Emitted when the session manager has requested that the
+ * application save information about its current state. The
+ * application should save its state into @state_file, and then the
+ * session manager may then restart the application in a future
+ * session and tell it to initialize itself from that state.
+ *
+ * You should not save any data into @state_file's "start group"
+ * (ie, the %NULL group). Instead, applications should save their
+ * data into groups with names that start with the application name,
+ * and libraries that connect to this signal should save their data
+ * into groups with names that start with the library name.
+ *
+ * Alternatively, rather than (or in addition to) using @state_file,
+ * the application can save its state by calling
+ * egg_sm_client_set_restart_command() during the processing of this
+ * signal (eg, to include a list of files to open).
+ **/
+ signals[SAVE_STATE] =
+ g_signal_new ("save_state",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (EggSMClientClass, save_state),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__POINTER,
+ G_TYPE_NONE,
+ 1, G_TYPE_POINTER);
+
+ /**
+ * EggSMClient::quit_requested:
+ * @client: the client
+ *
+ * Emitted when the session manager requests that the application
+ * exit (generally because the user is logging out). The application
+ * should decide whether or not it is willing to quit (perhaps after
+ * asking the user what to do with documents that have unsaved
+ * changes) and then call egg_sm_client_will_quit(), passing %TRUE
+ * or %FALSE to give its answer to the session manager. (It does not
+ * need to give an answer before returning from the signal handler;
+ * it can interact with the user asynchronously and then give its
+ * answer later on.) If the application does not connect to this
+ * signal, then #EggSMClient will automatically return %TRUE on its
+ * behalf.
+ *
+ * The application should not save its session state as part of
+ * handling this signal; if the user has requested that the session
+ * be saved when logging out, then ::save_state will be emitted
+ * separately.
+ *
+ * If the application agrees to quit, it should then wait for either
+ * the ::quit_cancelled or ::quit signals to be emitted.
+ **/
+ signals[QUIT_REQUESTED] =
+ g_signal_new ("quit_requested",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (EggSMClientClass, quit_requested),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ /**
+ * EggSMClient::quit_cancelled:
+ * @client: the client
+ *
+ * Emitted when the session manager decides to cancel a logout after
+ * the application has already agreed to quit. After receiving this
+ * signal, the application can go back to what it was doing before
+ * receiving the ::quit_requested signal.
+ **/
+ signals[QUIT_CANCELLED] =
+ g_signal_new ("quit_cancelled",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (EggSMClientClass, quit_cancelled),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ /**
+ * EggSMClient::quit:
+ * @client: the client
+ *
+ * Emitted when the session manager wants the application to quit
+ * (generally because the user is logging out). The application
+ * should exit as soon as possible after receiving this signal; if
+ * it does not, the session manager may choose to forcibly kill it.
+ *
+ * Normally a GUI application would only be sent a ::quit if it
+ * agreed to quit in response to a ::quit_requested signal. However,
+ * this is not guaranteed; in some situations the session manager
+ * may decide to end the session without giving applications a
+ * chance to object.
+ **/
+ signals[QUIT] =
+ g_signal_new ("quit",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (EggSMClientClass, quit),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+}
+
+static gboolean sm_client_disable = FALSE;
+static char *sm_client_state_file = NULL;
+static char *sm_client_id = NULL;
+static char *sm_config_prefix = NULL;
+
+static gboolean
+sm_client_post_parse_func (GOptionContext *context,
+ GOptionGroup *group,
+ gpointer data,
+ GError **error)
+{
+ EggSMClient *client = egg_sm_client_get ();
+
+ if (sm_client_id == NULL)
+ {
+ const gchar *desktop_autostart_id;
+
+ desktop_autostart_id = g_getenv ("DESKTOP_AUTOSTART_ID");
+
+ if (desktop_autostart_id != NULL)
+ sm_client_id = g_strdup (desktop_autostart_id);
+ }
+
+ /* Unset DESKTOP_AUTOSTART_ID in order to avoid child processes to
+ * use the same client id. */
+ g_unsetenv ("DESKTOP_AUTOSTART_ID");
+
+ if (EGG_SM_CLIENT_GET_CLASS (client)->startup)
+ EGG_SM_CLIENT_GET_CLASS (client)->startup (client, sm_client_id);
+ return TRUE;
+}
+
+/**
+ * egg_sm_client_get_option_group:
+ *
+ * Creates a %GOptionGroup containing the session-management-related
+ * options. You should add this group to the application's
+ * %GOptionContext if you want to use #EggSMClient.
+ *
+ * Return value: the %GOptionGroup
+ **/
+GOptionGroup *
+egg_sm_client_get_option_group (void)
+{
+ const GOptionEntry entries[] = {
+ { "sm-client-disable", 0, 0,
+ G_OPTION_ARG_NONE, &sm_client_disable,
+ N_("Disable connection to session manager"), NULL },
+ { "sm-client-state-file", 0, 0,
+ G_OPTION_ARG_FILENAME, &sm_client_state_file,
+ N_("Specify file containing saved configuration"), N_("FILE") },
+ { "sm-client-id", 0, 0,
+ G_OPTION_ARG_STRING, &sm_client_id,
+ N_("Specify session management ID"), N_("ID") },
+ /* MateClient compatibility option */
+ { "sm-disable", 0, G_OPTION_FLAG_HIDDEN,
+ G_OPTION_ARG_NONE, &sm_client_disable,
+ NULL, NULL },
+ /* MateClient compatibility option. This is a dummy option that only
+ * exists so that sessions saved by apps with MateClient can be restored
+ * later when they've switched to EggSMClient. See bug #575308.
+ */
+ { "sm-config-prefix", 0, G_OPTION_FLAG_HIDDEN,
+ G_OPTION_ARG_STRING, &sm_config_prefix,
+ NULL, NULL },
+ { NULL }
+ };
+ GOptionGroup *group;
+
+ /* Use our own debug handler for the "EggSMClient" domain. */
+ g_log_set_handler (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,
+ egg_sm_client_debug_handler, NULL);
+
+ group = g_option_group_new ("sm-client",
+ _("Session management options:"),
+ _("Show session management options"),
+ NULL, NULL);
+ g_option_group_add_entries (group, entries);
+ g_option_group_set_parse_hooks (group, NULL, sm_client_post_parse_func);
+
+ return group;
+}
+
+/**
+ * egg_sm_client_set_mode:
+ * @mode: an #EggSMClient mode
+ *
+ * Sets the "mode" of #EggSMClient as follows:
+ *
+ * %EGG_SM_CLIENT_MODE_DISABLED: Session management is completely
+ * disabled. The application will not even connect to the session
+ * manager. (egg_sm_client_get() will still return an #EggSMClient,
+ * but it will just be a dummy object.)
+ *
+ * %EGG_SM_CLIENT_MODE_NO_RESTART: The application will connect to
+ * the session manager (and thus will receive notification when the
+ * user is logging out, etc), but will request to not be
+ * automatically restarted with saved state in future sessions.
+ *
+ * %EGG_SM_CLIENT_MODE_NORMAL: The default. #EggSMCLient will
+ * function normally.
+ *
+ * This must be called before the application's main loop begins.
+ **/
+void
+egg_sm_client_set_mode (EggSMClientMode mode)
+{
+ global_client_mode = mode;
+}
+
+/**
+ * egg_sm_client_get_mode:
+ *
+ * Gets the global #EggSMClientMode. See egg_sm_client_set_mode()
+ * for details.
+ *
+ * Return value: the global #EggSMClientMode
+ **/
+EggSMClientMode
+egg_sm_client_get_mode (void)
+{
+ return global_client_mode;
+}
+
+/**
+ * egg_sm_client_get:
+ *
+ * Returns the master #EggSMClient for the application.
+ *
+ * On platforms that support saved sessions (ie, POSIX/X11), the
+ * application will only request to be restarted by the session
+ * manager if you call egg_set_desktop_file() to set an application
+ * desktop file. In particular, if the desktop file contains the key
+ * "X
+ *
+ * Return value: the master #EggSMClient.
+ **/
+EggSMClient *
+egg_sm_client_get (void)
+{
+ if (!global_client)
+ {
+ if (global_client_mode != EGG_SM_CLIENT_MODE_DISABLED &&
+ !sm_client_disable)
+ {
+#if defined (GDK_WINDOWING_WIN32)
+ global_client = egg_sm_client_win32_new ();
+#elif defined (GDK_WINDOWING_QUARTZ)
+ global_client = egg_sm_client_osx_new ();
+#else
+ /* If both D-Bus and XSMP are compiled in, try XSMP first
+ * (since it supports state saving) and fall back to D-Bus
+ * if XSMP isn't available.
+ */
+# ifdef EGG_SM_CLIENT_BACKEND_XSMP
+ global_client = egg_sm_client_xsmp_new ();
+# endif
+# ifdef EGG_SM_CLIENT_BACKEND_DBUS
+ if (!global_client)
+ global_client = egg_sm_client_dbus_new ();
+# endif
+#endif
+ }
+
+ /* Fallback: create a dummy client, so that callers don't have
+ * to worry about a %NULL return value.
+ */
+ if (!global_client)
+ global_client = g_object_new (EGG_TYPE_SM_CLIENT, NULL);
+ }
+
+ return global_client;
+}
+
+/**
+ * egg_sm_client_is_resumed:
+ * @client: the client
+ *
+ * Checks whether or not the current session has been resumed from
+ * a previous saved session. If so, the application should call
+ * egg_sm_client_get_state_file() and restore its state from the
+ * returned #GKeyFile.
+ *
+ * Return value: %TRUE if the session has been resumed
+ **/
+gboolean
+egg_sm_client_is_resumed (EggSMClient *client)
+{
+ g_return_val_if_fail (client == global_client, FALSE);
+
+ return sm_client_state_file != NULL;
+}
+
+/**
+ * egg_sm_client_get_state_file:
+ * @client: the client
+ *
+ * If the application was resumed by the session manager, this will
+ * return the #GKeyFile containing its state from the previous
+ * session.
+ *
+ * Note that other libraries and #EggSMClient itself may also store
+ * state in the key file, so if you call egg_sm_client_get_groups(),
+ * on it, the return value will likely include groups that you did not
+ * put there yourself. (It is also not guaranteed that the first
+ * group created by the application will still be the "start group"
+ * when it is resumed.)
+ *
+ * Return value: the #GKeyFile containing the application's earlier
+ * state, or %NULL on error. You should not free this key file; it
+ * is owned by @client.
+ **/
+GKeyFile *
+egg_sm_client_get_state_file (EggSMClient *client)
+{
+ EggSMClientPrivate *priv = EGG_SM_CLIENT_GET_PRIVATE (client);
+ char *state_file_path;
+ GError *err = NULL;
+
+ g_return_val_if_fail (client == global_client, NULL);
+
+ if (!sm_client_state_file)
+ return NULL;
+ if (priv->state_file)
+ return priv->state_file;
+
+ if (!strncmp (sm_client_state_file, "file://", 7))
+ state_file_path = g_filename_from_uri (sm_client_state_file, NULL, NULL);
+ else
+ state_file_path = g_strdup (sm_client_state_file);
+
+ priv->state_file = g_key_file_new ();
+ if (!g_key_file_load_from_file (priv->state_file, state_file_path, 0, &err))
+ {
+ g_warning ("Could not load SM state file '%s': %s",
+ sm_client_state_file, err->message);
+ g_clear_error (&err);
+ g_key_file_free (priv->state_file);
+ priv->state_file = NULL;
+ }
+
+ g_free (state_file_path);
+ return priv->state_file;
+}
+
+/**
+ * egg_sm_client_set_restart_command:
+ * @client: the client
+ * @argc: the length of @argv
+ * @argv: argument vector
+ *
+ * Sets the command used to restart @client if it does not have a
+ * .desktop file that can be used to find its restart command.
+ *
+ * This can also be used when handling the ::save_state signal, to
+ * save the current state via an updated command line. (Eg, providing
+ * a list of filenames to open when the application is resumed.)
+ **/
+void
+egg_sm_client_set_restart_command (EggSMClient *client,
+ int argc,
+ const char **argv)
+{
+ g_return_if_fail (EGG_IS_SM_CLIENT (client));
+
+ if (EGG_SM_CLIENT_GET_CLASS (client)->set_restart_command)
+ EGG_SM_CLIENT_GET_CLASS (client)->set_restart_command (client, argc, argv);
+}
+
+/**
+ * egg_sm_client_will_quit:
+ * @client: the client
+ * @will_quit: whether or not the application is willing to quit
+ *
+ * This MUST be called in response to the ::quit_requested signal, to
+ * indicate whether or not the application is willing to quit. The
+ * application may call it either directly from the signal handler, or
+ * at some later point (eg, after asynchronously interacting with the
+ * user).
+ *
+ * If the application does not connect to ::quit_requested,
+ * #EggSMClient will call this method on its behalf (passing %TRUE
+ * for @will_quit).
+ *
+ * After calling this method, the application should wait to receive
+ * either ::quit_cancelled or ::quit.
+ **/
+void
+egg_sm_client_will_quit (EggSMClient *client,
+ gboolean will_quit)
+{
+ g_return_if_fail (EGG_IS_SM_CLIENT (client));
+
+ if (EGG_SM_CLIENT_GET_CLASS (client)->will_quit)
+ EGG_SM_CLIENT_GET_CLASS (client)->will_quit (client, will_quit);
+}
+
+/**
+ * egg_sm_client_end_session:
+ * @style: a hint at how to end the session
+ * @request_confirmation: whether or not the user should get a chance
+ * to confirm the action
+ *
+ * Requests that the session manager end the current session. @style
+ * indicates how the session should be ended, and
+ * @request_confirmation indicates whether or not the user should be
+ * given a chance to confirm the logout/reboot/shutdown. Both of these
+ * flags are merely hints though; the session manager may choose to
+ * ignore them.
+ *
+ * Return value: %TRUE if the request was sent; %FALSE if it could not
+ * be (eg, because it could not connect to the session manager).
+ **/
+gboolean
+egg_sm_client_end_session (EggSMClientEndStyle style,
+ gboolean request_confirmation)
+{
+ EggSMClient *client = egg_sm_client_get ();
+
+ g_return_val_if_fail (EGG_IS_SM_CLIENT (client), FALSE);
+
+ if (EGG_SM_CLIENT_GET_CLASS (client)->end_session)
+ {
+ return EGG_SM_CLIENT_GET_CLASS (client)->end_session (client, style,
+ request_confirmation);
+ }
+ else
+ return FALSE;
+}
+
+/* Signal-emitting callbacks from platform-specific code */
+
+GKeyFile *
+egg_sm_client_save_state (EggSMClient *client)
+{
+ GKeyFile *state_file;
+ char *group;
+
+ g_return_val_if_fail (client == global_client, NULL);
+
+ state_file = g_key_file_new ();
+
+ g_debug ("Emitting save_state");
+ g_signal_emit (client, signals[SAVE_STATE], 0, state_file);
+ g_debug ("Done emitting save_state");
+
+ group = g_key_file_get_start_group (state_file);
+ if (group)
+ {
+ g_free (group);
+ return state_file;
+ }
+ else
+ {
+ g_key_file_free (state_file);
+ return NULL;
+ }
+}
+
+void
+egg_sm_client_quit_requested (EggSMClient *client)
+{
+ g_return_if_fail (client == global_client);
+
+ if (!g_signal_has_handler_pending (client, signals[QUIT_REQUESTED], 0, FALSE))
+ {
+ g_debug ("Not emitting quit_requested because no one is listening");
+ egg_sm_client_will_quit (client, TRUE);
+ return;
+ }
+
+ g_debug ("Emitting quit_requested");
+ g_signal_emit (client, signals[QUIT_REQUESTED], 0);
+ g_debug ("Done emitting quit_requested");
+}
+
+void
+egg_sm_client_quit_cancelled (EggSMClient *client)
+{
+ g_return_if_fail (client == global_client);
+
+ g_debug ("Emitting quit_cancelled");
+ g_signal_emit (client, signals[QUIT_CANCELLED], 0);
+ g_debug ("Done emitting quit_cancelled");
+}
+
+void
+egg_sm_client_quit (EggSMClient *client)
+{
+ g_return_if_fail (client == global_client);
+
+ g_debug ("Emitting quit");
+ g_signal_emit (client, signals[QUIT], 0);
+ g_debug ("Done emitting quit");
+
+ /* FIXME: should we just call gtk_main_quit() here? */
+}
+
+static void
+egg_sm_client_debug_handler (const char *log_domain,
+ GLogLevelFlags log_level,
+ const char *message,
+ gpointer user_data)
+{
+ static int debug = -1;
+
+ if (debug < 0)
+ debug = (g_getenv ("EGG_SM_CLIENT_DEBUG") != NULL);
+
+ if (debug)
+ g_log_default_handler (log_domain, log_level, message, NULL);
+}
diff --git a/egg/eggsmclient.h b/egg/eggsmclient.h
new file mode 100644
index 0000000..190ca0e
--- /dev/null
+++ b/egg/eggsmclient.h
@@ -0,0 +1,120 @@
+/* eggsmclient.h
+ * Copyright (C) 2007 Novell, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __EGG_SM_CLIENT_H__
+#define __EGG_SM_CLIENT_H__
+
+#include <glib-object.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define EGG_TYPE_SM_CLIENT (egg_sm_client_get_type ())
+#define EGG_SM_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_SM_CLIENT, EggSMClient))
+#define EGG_SM_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_SM_CLIENT, EggSMClientClass))
+#define EGG_IS_SM_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_SM_CLIENT))
+#define EGG_IS_SM_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_SM_CLIENT))
+#define EGG_SM_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_SM_CLIENT, EggSMClientClass))
+
+typedef struct _EggSMClient EggSMClient;
+typedef struct _EggSMClientClass EggSMClientClass;
+typedef struct _EggSMClientPrivate EggSMClientPrivate;
+
+typedef enum {
+ EGG_SM_CLIENT_END_SESSION_DEFAULT,
+ EGG_SM_CLIENT_LOGOUT,
+ EGG_SM_CLIENT_REBOOT,
+ EGG_SM_CLIENT_SHUTDOWN
+} EggSMClientEndStyle;
+
+typedef enum {
+ EGG_SM_CLIENT_MODE_DISABLED,
+ EGG_SM_CLIENT_MODE_NO_RESTART,
+ EGG_SM_CLIENT_MODE_NORMAL
+} EggSMClientMode;
+
+struct _EggSMClient
+{
+ GObject parent;
+
+};
+
+struct _EggSMClientClass
+{
+ GObjectClass parent_class;
+
+ /* signals */
+ void (*save_state) (EggSMClient *client,
+ GKeyFile *state_file);
+
+ void (*quit_requested) (EggSMClient *client);
+ void (*quit_cancelled) (EggSMClient *client);
+ void (*quit) (EggSMClient *client);
+
+ /* virtual methods */
+ void (*startup) (EggSMClient *client,
+ const char *client_id);
+ void (*set_restart_command) (EggSMClient *client,
+ int argc,
+ const char **argv);
+ void (*will_quit) (EggSMClient *client,
+ gboolean will_quit);
+ gboolean (*end_session) (EggSMClient *client,
+ EggSMClientEndStyle style,
+ gboolean request_confirmation);
+
+ /* Padding for future expansion */
+ void (*_egg_reserved1) (void);
+ void (*_egg_reserved2) (void);
+ void (*_egg_reserved3) (void);
+ void (*_egg_reserved4) (void);
+};
+
+GType egg_sm_client_get_type (void) G_GNUC_CONST;
+
+GOptionGroup *egg_sm_client_get_option_group (void);
+
+/* Initialization */
+void egg_sm_client_set_mode (EggSMClientMode mode);
+EggSMClientMode egg_sm_client_get_mode (void);
+EggSMClient *egg_sm_client_get (void);
+
+/* Resuming a saved session */
+gboolean egg_sm_client_is_resumed (EggSMClient *client);
+GKeyFile *egg_sm_client_get_state_file (EggSMClient *client);
+
+/* Alternate means of saving state */
+void egg_sm_client_set_restart_command (EggSMClient *client,
+ int argc,
+ const char **argv);
+
+/* Handling "quit_requested" signal */
+void egg_sm_client_will_quit (EggSMClient *client,
+ gboolean will_quit);
+
+/* Initiate a logout/reboot/shutdown */
+gboolean egg_sm_client_end_session (EggSMClientEndStyle style,
+ gboolean request_confirmation);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __EGG_SM_CLIENT_H__ */
diff --git a/install-sh b/install-sh
new file mode 100755
index 0000000..6781b98
--- /dev/null
+++ b/install-sh
@@ -0,0 +1,520 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2009-04-28.21; # UTC
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+nl='
+'
+IFS=" "" $nl"
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit=${DOITPROG-}
+if test -z "$doit"; then
+ doit_exec=exec
+else
+ doit_exec=$doit
+fi
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+ test "$posix_glob" != "?" || {
+ if (set -f) 2>/dev/null; then
+ posix_glob=
+ else
+ posix_glob=:
+ fi
+ }
+'
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+no_target_directory=
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+ or: $0 [OPTION]... SRCFILES... DIRECTORY
+ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+ or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+ --help display this help and exit.
+ --version display version info and exit.
+
+ -c (ignored)
+ -C install only if different (preserve the last data modification time)
+ -d create directories instead of installing files.
+ -g GROUP $chgrpprog installed files to GROUP.
+ -m MODE $chmodprog installed files to MODE.
+ -o USER $chownprog installed files to USER.
+ -s $stripprog installed files.
+ -t DIRECTORY install into DIRECTORY.
+ -T report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+ CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+ RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+ case $1 in
+ -c) ;;
+
+ -C) copy_on_change=true;;
+
+ -d) dir_arg=true;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift;;
+
+ --help) echo "$usage"; exit $?;;
+
+ -m) mode=$2
+ case $mode in
+ *' '* | *' '* | *'
+'* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
+
+ -o) chowncmd="$chownprog $2"
+ shift;;
+
+ -s) stripcmd=$stripprog;;
+
+ -t) dst_arg=$2
+ shift;;
+
+ -T) no_target_directory=true;;
+
+ --version) echo "$0 $scriptversion"; exit $?;;
+
+ --) shift
+ break;;
+
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
+
+ *) break;;
+ esac
+ shift
+done
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+ # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dst_arg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dst_arg"
+ shift # fnord
+ fi
+ shift # arg
+ dst_arg=$arg
+ done
+fi
+
+if test $# -eq 0; then
+ if test -z "$dir_arg"; then
+ echo "$0: no input file specified." >&2
+ exit 1
+ fi
+ # It's OK to call `install-sh -d' without argument.
+ # This can happen when creating conditional directories.
+ exit 0
+fi
+
+if test -z "$dir_arg"; then
+ trap '(exit $?); exit' 1 2 13 15
+
+ # Set umask so as not to create temps with too-generous modes.
+ # However, 'strip' requires both read and write access to temps.
+ case $mode in
+ # Optimize common cases.
+ *644) cp_umask=133;;
+ *755) cp_umask=22;;
+
+ *[0-7])
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw='% 200'
+ fi
+ cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+ *)
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw=,u+rw
+ fi
+ cp_umask=$mode$u_plus_rw;;
+ esac
+fi
+
+for src
+do
+ # Protect names starting with `-'.
+ case $src in
+ -*) src=./$src;;
+ esac
+
+ if test -n "$dir_arg"; then
+ dst=$src
+ dstdir=$dst
+ test -d "$dstdir"
+ dstdir_status=$?
+ else
+
+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+ # might cause directories to be created, which would be especially bad
+ # if $src (and thus $dsttmp) contains '*'.
+ if test ! -f "$src" && test ! -d "$src"; then
+ echo "$0: $src does not exist." >&2
+ exit 1
+ fi
+
+ if test -z "$dst_arg"; then
+ echo "$0: no destination specified." >&2
+ exit 1
+ fi
+
+ dst=$dst_arg
+ # Protect names starting with `-'.
+ case $dst in
+ -*) dst=./$dst;;
+ esac
+
+ # If destination is a directory, append the input filename; won't work
+ # if double slashes aren't ignored.
+ if test -d "$dst"; then
+ if test -n "$no_target_directory"; then
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
+ fi
+ dstdir=$dst
+ dst=$dstdir/`basename "$src"`
+ dstdir_status=0
+ else
+ # Prefer dirname, but fall back on a substitute if dirname fails.
+ dstdir=`
+ (dirname "$dst") 2>/dev/null ||
+ expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$dst" : 'X\(//\)[^/]' \| \
+ X"$dst" : 'X\(//\)$' \| \
+ X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+ echo X"$dst" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'
+ `
+
+ test -d "$dstdir"
+ dstdir_status=$?
+ fi
+ fi
+
+ obsolete_mkdir_used=false
+
+ if test $dstdir_status != 0; then
+ case $posix_mkdir in
+ '')
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ if (umask $mkdir_umask &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writeable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/d" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
+ esac
+
+ if
+ $posix_mkdir && (
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ )
+ then :
+ else
+
+ # The umask is ridiculous, or mkdir does not conform to POSIX,
+ # or it failed possibly due to a race condition. Create the
+ # directory the slow way, step by step, checking for races as we go.
+
+ case $dstdir in
+ /*) prefix='/';;
+ -*) prefix='./';;
+ *) prefix='';;
+ esac
+
+ eval "$initialize_posix_glob"
+
+ oIFS=$IFS
+ IFS=/
+ $posix_glob set -f
+ set fnord $dstdir
+ shift
+ $posix_glob set +f
+ IFS=$oIFS
+
+ prefixes=
+
+ for d
+ do
+ test -z "$d" && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask=$mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
+ done
+
+ if test -n "$prefixes"; then
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
+ fi
+ fi
+ fi
+
+ if test -n "$dir_arg"; then
+ { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+ { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+ else
+
+ # Make a couple of temp file names in the proper directory.
+ dsttmp=$dstdir/_inst.$$_
+ rmtmp=$dstdir/_rm.$$_
+
+ # Trap to clean up those temp files at exit.
+ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+ # Copy the file name to the temp name.
+ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+ # and set any options; do chmod last to preserve setuid bits.
+ #
+ # If any of these fail, we abort the whole thing. If we want to
+ # ignore errors from any of these, just make sure not to ignore
+ # errors from the above "$doit $cpprog $src $dsttmp" command.
+ #
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+ { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+ { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+ # If -C, don't bother to copy if it wouldn't change the file.
+ if $copy_on_change &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+
+ eval "$initialize_posix_glob" &&
+ $posix_glob set -f &&
+ set X $old && old=:$2:$4:$5:$6 &&
+ set X $new && new=:$2:$4:$5:$6 &&
+ $posix_glob set +f &&
+
+ test "$old" = "$new" &&
+ $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+ then
+ rm -f "$dsttmp"
+ else
+ # Rename the file to the real destination.
+ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+ # The rename failed, perhaps because mv can't rename something else
+ # to itself, or perhaps because mv is so ancient that it does not
+ # support -f.
+ {
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
+ }
+ fi || exit 1
+
+ trap '' 0
+ fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/ltmain.sh b/ltmain.sh
new file mode 100755
index 0000000..3061e3c
--- /dev/null
+++ b/ltmain.sh
@@ -0,0 +1,9636 @@
+
+# libtool (GNU libtool) 2.4
+# Written by Gordon Matzigkeit <[email protected]>, 1996
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
+# 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions. There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool 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.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html,
+# or obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# Usage: $progname [OPTION]... [MODE-ARG]...
+#
+# Provide generalized library-building support services.
+#
+# --config show all configuration variables
+# --debug enable verbose shell tracing
+# -n, --dry-run display commands without modifying any files
+# --features display basic configuration information and exit
+# --mode=MODE use operation mode MODE
+# --preserve-dup-deps don't remove duplicate dependency libraries
+# --quiet, --silent don't print informational messages
+# --no-quiet, --no-silent
+# print informational messages (default)
+# --tag=TAG use configuration variables from tag TAG
+# -v, --verbose print more informational messages than default
+# --no-verbose don't print the extra informational messages
+# --version print version information
+# -h, --help, --help-all print short, long, or detailed help message
+#
+# MODE must be one of the following:
+#
+# clean remove files from the build directory
+# compile compile a source file into a libtool object
+# execute automatically set library path, then run a program
+# finish complete the installation of libtool libraries
+# install install libraries or executables
+# link create a library or an executable
+# uninstall remove libraries from an installed directory
+#
+# MODE-ARGS vary depending on the MODE. When passed as first option,
+# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
+# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
+#
+# When reporting a bug, please describe a test case to reproduce it and
+# include the following information:
+#
+# host-triplet: $host
+# shell: $SHELL
+# compiler: $LTCC
+# compiler flags: $LTCFLAGS
+# linker: $LD (gnu? $with_gnu_ld)
+# $progname: (GNU libtool) 2.4
+# automake: $automake_version
+# autoconf: $autoconf_version
+#
+# Report bugs to <[email protected]>.
+# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
+# General help using GNU software: <http://www.gnu.org/gethelp/>.
+
+PROGRAM=libtool
+PACKAGE=libtool
+VERSION=2.4
+TIMESTAMP=""
+package_revision=1.3293
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+
+# NLS nuisances: We save the old values to restore during execute mode.
+lt_user_locale=
+lt_safe_locale=
+for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+do
+ eval "if test \"\${$lt_var+set}\" = set; then
+ save_$lt_var=\$$lt_var
+ $lt_var=C
+ export $lt_var
+ lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
+ lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
+ fi"
+done
+LC_ALL=C
+LANGUAGE=C
+export LANGUAGE LC_ALL
+
+$lt_unset CDPATH
+
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+
+
+: ${CP="cp -f"}
+test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
+: ${EGREP="grep -E"}
+: ${FGREP="grep -F"}
+: ${GREP="grep"}
+: ${LN_S="ln -s"}
+: ${MAKE="make"}
+: ${MKDIR="mkdir"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+: ${SED="sed"}
+: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
+: ${Xsed="$SED -e 1s/^X//"}
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
+EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
+
+exit_status=$EXIT_SUCCESS
+
+# Make sure IFS has a sensible default
+lt_nl='
+'
+IFS=" $lt_nl"
+
+dirname="s,/[^/]*$,,"
+basename="s,^.*/,,"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+ func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+ if test "X$func_dirname_result" = "X${1}"; then
+ func_dirname_result="${3}"
+ else
+ func_dirname_result="$func_dirname_result${2}"
+ fi
+} # func_dirname may be replaced by extended shell implementation
+
+
+# func_basename file
+func_basename ()
+{
+ func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+} # func_basename may be replaced by extended shell implementation
+
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+# dirname: Compute the dirname of FILE. If nonempty,
+# add APPEND to the result, otherwise set result
+# to NONDIR_REPLACEMENT.
+# value returned in "$func_dirname_result"
+# basename: Compute filename of FILE.
+# value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+ # Extract subdirectory from the argument.
+ func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
+ if test "X$func_dirname_result" = "X${1}"; then
+ func_dirname_result="${3}"
+ else
+ func_dirname_result="$func_dirname_result${2}"
+ fi
+ func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
+} # func_dirname_and_basename may be replaced by extended shell implementation
+
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+ case ${2} in
+ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+ esac
+} # func_stripname may be replaced by extended shell implementation
+
+
+# These SED scripts presuppose an absolute path with a trailing slash.
+pathcar='s,^/\([^/]*\).*$,\1,'
+pathcdr='s,^/[^/]*,,'
+removedotparts=':dotsl
+ s@/\./@/@g
+ t dotsl
+ s,/\.$,/,'
+collapseslashes='s@/\{1,\}@/@g'
+finalslash='s,/*$,/,'
+
+# func_normal_abspath PATH
+# Remove doubled-up and trailing slashes, "." path components,
+# and cancel out any ".." path components in PATH after making
+# it an absolute path.
+# value returned in "$func_normal_abspath_result"
+func_normal_abspath ()
+{
+ # Start from root dir and reassemble the path.
+ func_normal_abspath_result=
+ func_normal_abspath_tpath=$1
+ func_normal_abspath_altnamespace=
+ case $func_normal_abspath_tpath in
+ "")
+ # Empty path, that just means $cwd.
+ func_stripname '' '/' "`pwd`"
+ func_normal_abspath_result=$func_stripname_result
+ return
+ ;;
+ # The next three entries are used to spot a run of precisely
+ # two leading slashes without using negated character classes;
+ # we take advantage of case's first-match behaviour.
+ ///*)
+ # Unusual form of absolute path, do nothing.
+ ;;
+ //*)
+ # Not necessarily an ordinary path; POSIX reserves leading '//'
+ # and for example Cygwin uses it to access remote file shares
+ # over CIFS/SMB, so we conserve a leading double slash if found.
+ func_normal_abspath_altnamespace=/
+ ;;
+ /*)
+ # Absolute path, do nothing.
+ ;;
+ *)
+ # Relative path, prepend $cwd.
+ func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
+ ;;
+ esac
+ # Cancel out all the simple stuff to save iterations. We also want
+ # the path to end with a slash for ease of parsing, so make sure
+ # there is one (and only one) here.
+ func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
+ while :; do
+ # Processed it all yet?
+ if test "$func_normal_abspath_tpath" = / ; then
+ # If we ascended to the root using ".." the result may be empty now.
+ if test -z "$func_normal_abspath_result" ; then
+ func_normal_abspath_result=/
+ fi
+ break
+ fi
+ func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
+ -e "$pathcar"`
+ func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+ -e "$pathcdr"`
+ # Figure out what to do with it
+ case $func_normal_abspath_tcomponent in
+ "")
+ # Trailing empty path component, ignore it.
+ ;;
+ ..)
+ # Parent dir; strip last assembled component from result.
+ func_dirname "$func_normal_abspath_result"
+ func_normal_abspath_result=$func_dirname_result
+ ;;
+ *)
+ # Actual path component, append it.
+ func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
+ ;;
+ esac
+ done
+ # Restore leading double-slash if one was found on entry.
+ func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
+}
+
+# func_relative_path SRCDIR DSTDIR
+# generates a relative path from SRCDIR to DSTDIR, with a trailing
+# slash if non-empty, suitable for immediately appending a filename
+# without needing to append a separator.
+# value returned in "$func_relative_path_result"
+func_relative_path ()
+{
+ func_relative_path_result=
+ func_normal_abspath "$1"
+ func_relative_path_tlibdir=$func_normal_abspath_result
+ func_normal_abspath "$2"
+ func_relative_path_tbindir=$func_normal_abspath_result
+
+ # Ascend the tree starting from libdir
+ while :; do
+ # check if we have found a prefix of bindir
+ case $func_relative_path_tbindir in
+ $func_relative_path_tlibdir)
+ # found an exact match
+ func_relative_path_tcancelled=
+ break
+ ;;
+ $func_relative_path_tlibdir*)
+ # found a matching prefix
+ func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
+ func_relative_path_tcancelled=$func_stripname_result
+ if test -z "$func_relative_path_result"; then
+ func_relative_path_result=.
+ fi
+ break
+ ;;
+ *)
+ func_dirname $func_relative_path_tlibdir
+ func_relative_path_tlibdir=${func_dirname_result}
+ if test "x$func_relative_path_tlibdir" = x ; then
+ # Have to descend all the way to the root!
+ func_relative_path_result=../$func_relative_path_result
+ func_relative_path_tcancelled=$func_relative_path_tbindir
+ break
+ fi
+ func_relative_path_result=../$func_relative_path_result
+ ;;
+ esac
+ done
+
+ # Now calculate path; take care to avoid doubling-up slashes.
+ func_stripname '' '/' "$func_relative_path_result"
+ func_relative_path_result=$func_stripname_result
+ func_stripname '/' '/' "$func_relative_path_tcancelled"
+ if test "x$func_stripname_result" != x ; then
+ func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
+ fi
+
+ # Normalisation. If bindir is libdir, return empty string,
+ # else relative path ending with a slash; either way, target
+ # file name can be directly appended.
+ if test ! -z "$func_relative_path_result"; then
+ func_stripname './' '' "$func_relative_path_result/"
+ func_relative_path_result=$func_stripname_result
+ fi
+}
+
+# The name of this program:
+func_dirname_and_basename "$progpath"
+progname=$func_basename_result
+
+# Make sure we have an absolute path for reexecution:
+case $progpath in
+ [\\/]*|[A-Za-z]:\\*) ;;
+ *[\\/]*)
+ progdir=$func_dirname_result
+ progdir=`cd "$progdir" && pwd`
+ progpath="$progdir/$progname"
+ ;;
+ *)
+ save_IFS="$IFS"
+ IFS=:
+ for progdir in $PATH; do
+ IFS="$save_IFS"
+ test -x "$progdir/$progname" && break
+ done
+ IFS="$save_IFS"
+ test -n "$progdir" || progdir=`pwd`
+ progpath="$progdir/$progname"
+ ;;
+esac
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution that turns a string into a regex matching for the
+# string literally.
+sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
+
+# Sed substitution that converts a w32 file name or path
+# which contains forward slashes, into one that contains
+# (escaped) backslashes. A very naive implementation.
+lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+
+# Re-`\' parameter expansions in output of double_quote_subst that were
+# `\'-ed in input to the same. If an odd number of `\' preceded a '$'
+# in input to double_quote_subst, that '$' was protected from expansion.
+# Since each input `\' is now two `\'s, look for any number of runs of
+# four `\'s followed by two `\'s and then a '$'. `\' that '$'.
+bs='\\'
+bs2='\\\\'
+bs4='\\\\\\\\'
+dollar='\$'
+sed_double_backslash="\
+ s/$bs4/&\\
+/g
+ s/^$bs2$dollar/$bs&/
+ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
+ s/\n//g"
+
+# Standard options:
+opt_dry_run=false
+opt_help=false
+opt_quiet=false
+opt_verbose=false
+opt_warning=:
+
+# func_echo arg...
+# Echo program name prefixed message, along with the current mode
+# name if it has been set yet.
+func_echo ()
+{
+ $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
+}
+
+# func_verbose arg...
+# Echo program name prefixed message in verbose mode only.
+func_verbose ()
+{
+ $opt_verbose && func_echo ${1+"$@"}
+
+ # A bug in bash halts the script if the last line of a function
+ # fails when set -e is in force, so we need another command to
+ # work around that:
+ :
+}
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO "$*"
+}
+
+# func_error arg...
+# Echo program name prefixed message to standard error.
+func_error ()
+{
+ $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
+}
+
+# func_warning arg...
+# Echo program name prefixed warning message to standard error.
+func_warning ()
+{
+ $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
+
+ # bash bug again:
+ :
+}
+
+# func_fatal_error arg...
+# Echo program name prefixed message to standard error, and exit.
+func_fatal_error ()
+{
+ func_error ${1+"$@"}
+ exit $EXIT_FAILURE
+}
+
+# func_fatal_help arg...
+# Echo program name prefixed message to standard error, followed by
+# a help hint, and exit.
+func_fatal_help ()
+{
+ func_error ${1+"$@"}
+ func_fatal_error "$help"
+}
+help="Try \`$progname --help' for more information." ## default
+
+
+# func_grep expression filename
+# Check whether EXPRESSION matches any line of FILENAME, without output.
+func_grep ()
+{
+ $GREP "$1" "$2" >/dev/null 2>&1
+}
+
+
+# func_mkdir_p directory-path
+# Make sure the entire path to DIRECTORY-PATH is available.
+func_mkdir_p ()
+{
+ my_directory_path="$1"
+ my_dir_list=
+
+ if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
+
+ # Protect directory names starting with `-'
+ case $my_directory_path in
+ -*) my_directory_path="./$my_directory_path" ;;
+ esac
+
+ # While some portion of DIR does not yet exist...
+ while test ! -d "$my_directory_path"; do
+ # ...make a list in topmost first order. Use a colon delimited
+ # list incase some portion of path contains whitespace.
+ my_dir_list="$my_directory_path:$my_dir_list"
+
+ # If the last portion added has no slash in it, the list is done
+ case $my_directory_path in */*) ;; *) break ;; esac
+
+ # ...otherwise throw away the child directory and loop
+ my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
+ done
+ my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
+
+ save_mkdir_p_IFS="$IFS"; IFS=':'
+ for my_dir in $my_dir_list; do
+ IFS="$save_mkdir_p_IFS"
+ # mkdir can fail with a `File exist' error if two processes
+ # try to create one of the directories concurrently. Don't
+ # stop in that case!
+ $MKDIR "$my_dir" 2>/dev/null || :
+ done
+ IFS="$save_mkdir_p_IFS"
+
+ # Bail out if we (or some other process) failed to create a directory.
+ test -d "$my_directory_path" || \
+ func_fatal_error "Failed to create \`$1'"
+ fi
+}
+
+
+# func_mktempdir [string]
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible. If
+# given, STRING is the basename for that directory.
+func_mktempdir ()
+{
+ my_template="${TMPDIR-/tmp}/${1-$progname}"
+
+ if test "$opt_dry_run" = ":"; then
+ # Return a directory name, but don't create it in dry-run mode
+ my_tmpdir="${my_template}-$$"
+ else
+
+ # If mktemp works, use that first and foremost
+ my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+
+ if test ! -d "$my_tmpdir"; then
+ # Failing that, at least try and use $RANDOM to avoid a race
+ my_tmpdir="${my_template}-${RANDOM-0}$$"
+
+ save_mktempdir_umask=`umask`
+ umask 0077
+ $MKDIR "$my_tmpdir"
+ umask $save_mktempdir_umask
+ fi
+
+ # If we're not in dry-run mode, bomb out on failure
+ test -d "$my_tmpdir" || \
+ func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
+ fi
+
+ $ECHO "$my_tmpdir"
+}
+
+
+# func_quote_for_eval arg
+# Aesthetically quote ARG to be evaled later.
+# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
+# is double-quoted, suitable for a subsequent eval, whereas
+# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
+# which are still active within double quotes backslashified.
+func_quote_for_eval ()
+{
+ case $1 in
+ *[\\\`\"\$]*)
+ func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
+ *)
+ func_quote_for_eval_unquoted_result="$1" ;;
+ esac
+
+ case $func_quote_for_eval_unquoted_result in
+ # Double-quote args containing shell metacharacters to delay
+ # word splitting, command substitution and and variable
+ # expansion for a subsequent eval.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
+ ;;
+ *)
+ func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
+ esac
+}
+
+
+# func_quote_for_expand arg
+# Aesthetically quote ARG to be evaled later; same as above,
+# but do not quote variable references.
+func_quote_for_expand ()
+{
+ case $1 in
+ *[\\\`\"]*)
+ my_arg=`$ECHO "$1" | $SED \
+ -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
+ *)
+ my_arg="$1" ;;
+ esac
+
+ case $my_arg in
+ # Double-quote args containing shell metacharacters to delay
+ # word splitting and command substitution for a subsequent eval.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ my_arg="\"$my_arg\""
+ ;;
+ esac
+
+ func_quote_for_expand_result="$my_arg"
+}
+
+
+# func_show_eval cmd [fail_exp]
+# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.
+func_show_eval ()
+{
+ my_cmd="$1"
+ my_fail_exp="${2-:}"
+
+ ${opt_silent-false} || {
+ func_quote_for_expand "$my_cmd"
+ eval "func_echo $func_quote_for_expand_result"
+ }
+
+ if ${opt_dry_run-false}; then :; else
+ eval "$my_cmd"
+ my_status=$?
+ if test "$my_status" -eq 0; then :; else
+ eval "(exit $my_status); $my_fail_exp"
+ fi
+ fi
+}
+
+
+# func_show_eval_locale cmd [fail_exp]
+# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it. Use the saved locale for evaluation.
+func_show_eval_locale ()
+{
+ my_cmd="$1"
+ my_fail_exp="${2-:}"
+
+ ${opt_silent-false} || {
+ func_quote_for_expand "$my_cmd"
+ eval "func_echo $func_quote_for_expand_result"
+ }
+
+ if ${opt_dry_run-false}; then :; else
+ eval "$lt_user_locale
+ $my_cmd"
+ my_status=$?
+ eval "$lt_safe_locale"
+ if test "$my_status" -eq 0; then :; else
+ eval "(exit $my_status); $my_fail_exp"
+ fi
+ fi
+}
+
+# func_tr_sh
+# Turn $1 into a string suitable for a shell variable name.
+# Result is stored in $func_tr_sh_result. All characters
+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
+# if $1 begins with a digit, a '_' is prepended as well.
+func_tr_sh ()
+{
+ case $1 in
+ [0-9]* | *[!a-zA-Z0-9_]*)
+ func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
+ ;;
+ * )
+ func_tr_sh_result=$1
+ ;;
+ esac
+}
+
+
+# func_version
+# Echo version message to standard output and exit.
+func_version ()
+{
+ $opt_debug
+
+ $SED -n '/(C)/!b go
+ :more
+ /\./!{
+ N
+ s/\n# / /
+ b more
+ }
+ :go
+ /^# '$PROGRAM' (GNU /,/# warranty; / {
+ s/^# //
+ s/^# *$//
+ s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
+ p
+ }' < "$progpath"
+ exit $?
+}
+
+# func_usage
+# Echo short help message to standard output and exit.
+func_usage ()
+{
+ $opt_debug
+
+ $SED -n '/^# Usage:/,/^# *.*--help/ {
+ s/^# //
+ s/^# *$//
+ s/\$progname/'$progname'/
+ p
+ }' < "$progpath"
+ echo
+ $ECHO "run \`$progname --help | more' for full usage"
+ exit $?
+}
+
+# func_help [NOEXIT]
+# Echo long help message to standard output and exit,
+# unless 'noexit' is passed as argument.
+func_help ()
+{
+ $opt_debug
+
+ $SED -n '/^# Usage:/,/# Report bugs to/ {
+ :print
+ s/^# //
+ s/^# *$//
+ s*\$progname*'$progname'*
+ s*\$host*'"$host"'*
+ s*\$SHELL*'"$SHELL"'*
+ s*\$LTCC*'"$LTCC"'*
+ s*\$LTCFLAGS*'"$LTCFLAGS"'*
+ s*\$LD*'"$LD"'*
+ s/\$with_gnu_ld/'"$with_gnu_ld"'/
+ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
+ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
+ p
+ d
+ }
+ /^# .* home page:/b print
+ /^# General help using/b print
+ ' < "$progpath"
+ ret=$?
+ if test -z "$1"; then
+ exit $ret
+ fi
+}
+
+# func_missing_arg argname
+# Echo program name prefixed message to standard error and set global
+# exit_cmd.
+func_missing_arg ()
+{
+ $opt_debug
+
+ func_error "missing argument for $1."
+ exit_cmd=exit
+}
+
+
+# func_split_short_opt shortopt
+# Set func_split_short_opt_name and func_split_short_opt_arg shell
+# variables after splitting SHORTOPT after the 2nd character.
+func_split_short_opt ()
+{
+ my_sed_short_opt='1s/^\(..\).*$/\1/;q'
+ my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
+
+ func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
+ func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
+} # func_split_short_opt may be replaced by extended shell implementation
+
+
+# func_split_long_opt longopt
+# Set func_split_long_opt_name and func_split_long_opt_arg shell
+# variables after splitting LONGOPT at the `=' sign.
+func_split_long_opt ()
+{
+ my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
+ my_sed_long_arg='1s/^--[^=]*=//'
+
+ func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
+ func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
+} # func_split_long_opt may be replaced by extended shell implementation
+
+exit_cmd=:
+
+
+
+
+
+magic="%%%MAGIC variable%%%"
+magic_exe="%%%MAGIC EXE variable%%%"
+
+# Global variables.
+nonopt=
+preserve_args=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+extracted_archives=
+extracted_serial=0
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end. This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+ eval "${1}=\$${1}\${2}"
+} # func_append may be replaced by extended shell implementation
+
+# func_append_quoted var value
+# Quote VALUE and append to the end of shell variable VAR, separated
+# by a space.
+func_append_quoted ()
+{
+ func_quote_for_eval "${2}"
+ eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
+} # func_append_quoted may be replaced by extended shell implementation
+
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+ func_arith_result=`expr "${@}"`
+} # func_arith may be replaced by extended shell implementation
+
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+ func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
+} # func_len may be replaced by extended shell implementation
+
+
+# func_lo2o object
+func_lo2o ()
+{
+ func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+} # func_lo2o may be replaced by extended shell implementation
+
+
+# func_xform libobj-or-source
+func_xform ()
+{
+ func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+} # func_xform may be replaced by extended shell implementation
+
+
+# func_fatal_configuration arg...
+# Echo program name prefixed message to standard error, followed by
+# a configuration failure hint, and exit.
+func_fatal_configuration ()
+{
+ func_error ${1+"$@"}
+ func_error "See the $PACKAGE documentation for more information."
+ func_fatal_error "Fatal configuration error."
+}
+
+
+# func_config
+# Display the configuration for all the tags in this script.
+func_config ()
+{
+ re_begincf='^# ### BEGIN LIBTOOL'
+ re_endcf='^# ### END LIBTOOL'
+
+ # Default configuration.
+ $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
+
+ # Now print the configurations for the tags.
+ for tagname in $taglist; do
+ $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
+ done
+
+ exit $?
+}
+
+# func_features
+# Display the features supported by this script.
+func_features ()
+{
+ echo "host: $host"
+ if test "$build_libtool_libs" = yes; then
+ echo "enable shared libraries"
+ else
+ echo "disable shared libraries"
+ fi
+ if test "$build_old_libs" = yes; then
+ echo "enable static libraries"
+ else
+ echo "disable static libraries"
+ fi
+
+ exit $?
+}
+
+# func_enable_tag tagname
+# Verify that TAGNAME is valid, and either flag an error and exit, or
+# enable the TAGNAME tag. We also add TAGNAME to the global $taglist
+# variable here.
+func_enable_tag ()
+{
+ # Global variable:
+ tagname="$1"
+
+ re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
+ re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
+ sed_extractcf="/$re_begincf/,/$re_endcf/p"
+
+ # Validate tagname.
+ case $tagname in
+ *[!-_A-Za-z0-9,/]*)
+ func_fatal_error "invalid tag name: $tagname"
+ ;;
+ esac
+
+ # Don't test for the "default" C tag, as we know it's
+ # there but not specially marked.
+ case $tagname in
+ CC) ;;
+ *)
+ if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
+ taglist="$taglist $tagname"
+
+ # Evaluate the configuration. Be careful to quote the path
+ # and the sed script, to avoid splitting on whitespace, but
+ # also don't use non-portable quotes within backquotes within
+ # quotes we have to do it in 2 steps:
+ extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
+ eval "$extractedcf"
+ else
+ func_error "ignoring unknown tag $tagname"
+ fi
+ ;;
+ esac
+}
+
+# func_check_version_match
+# Ensure that we are using m4 macros, and libtool script from the same
+# release of libtool.
+func_check_version_match ()
+{
+ if test "$package_revision" != "$macro_revision"; then
+ if test "$VERSION" != "$macro_version"; then
+ if test -z "$macro_version"; then
+ cat >&2 <<_LT_EOF
+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from an older release.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+ else
+ cat >&2 <<_LT_EOF
+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+ fi
+ else
+ cat >&2 <<_LT_EOF
+$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
+$progname: of $PACKAGE $VERSION and run autoconf again.
+_LT_EOF
+ fi
+
+ exit $EXIT_MISMATCH
+ fi
+}
+
+
+# Shorthand for --mode=foo, only valid as the first argument
+case $1 in
+clean|clea|cle|cl)
+ shift; set dummy --mode clean ${1+"$@"}; shift
+ ;;
+compile|compil|compi|comp|com|co|c)
+ shift; set dummy --mode compile ${1+"$@"}; shift
+ ;;
+execute|execut|execu|exec|exe|ex|e)
+ shift; set dummy --mode execute ${1+"$@"}; shift
+ ;;
+finish|finis|fini|fin|fi|f)
+ shift; set dummy --mode finish ${1+"$@"}; shift
+ ;;
+install|instal|insta|inst|ins|in|i)
+ shift; set dummy --mode install ${1+"$@"}; shift
+ ;;
+link|lin|li|l)
+ shift; set dummy --mode link ${1+"$@"}; shift
+ ;;
+uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+ shift; set dummy --mode uninstall ${1+"$@"}; shift
+ ;;
+esac
+
+
+
+# Option defaults:
+opt_debug=:
+opt_dry_run=false
+opt_config=false
+opt_preserve_dup_deps=false
+opt_features=false
+opt_finish=false
+opt_help=false
+opt_help_all=false
+opt_silent=:
+opt_verbose=:
+opt_silent=false
+opt_verbose=false
+
+
+# Parse options once, thoroughly. This comes as soon as possible in the
+# script to make things like `--version' happen as quickly as we can.
+{
+ # this just eases exit handling
+ while test $# -gt 0; do
+ opt="$1"
+ shift
+ case $opt in
+ --debug|-x) opt_debug='set -x'
+ func_echo "enabling shell trace mode"
+ $opt_debug
+ ;;
+ --dry-run|--dryrun|-n)
+ opt_dry_run=:
+ ;;
+ --config)
+ opt_config=:
+func_config
+ ;;
+ --dlopen|-dlopen)
+ optarg="$1"
+ opt_dlopen="${opt_dlopen+$opt_dlopen
+}$optarg"
+ shift
+ ;;
+ --preserve-dup-deps)
+ opt_preserve_dup_deps=:
+ ;;
+ --features)
+ opt_features=:
+func_features
+ ;;
+ --finish)
+ opt_finish=:
+set dummy --mode finish ${1+"$@"}; shift
+ ;;
+ --help)
+ opt_help=:
+ ;;
+ --help-all)
+ opt_help_all=:
+opt_help=': help-all'
+ ;;
+ --mode)
+ test $# = 0 && func_missing_arg $opt && break
+ optarg="$1"
+ opt_mode="$optarg"
+case $optarg in
+ # Valid mode arguments:
+ clean|compile|execute|finish|install|link|relink|uninstall) ;;
+
+ # Catch anything else as an error
+ *) func_error "invalid argument for $opt"
+ exit_cmd=exit
+ break
+ ;;
+esac
+ shift
+ ;;
+ --no-silent|--no-quiet)
+ opt_silent=false
+func_append preserve_args " $opt"
+ ;;
+ --no-verbose)
+ opt_verbose=false
+func_append preserve_args " $opt"
+ ;;
+ --silent|--quiet)
+ opt_silent=:
+func_append preserve_args " $opt"
+ opt_verbose=false
+ ;;
+ --verbose|-v)
+ opt_verbose=:
+func_append preserve_args " $opt"
+opt_silent=false
+ ;;
+ --tag)
+ test $# = 0 && func_missing_arg $opt && break
+ optarg="$1"
+ opt_tag="$optarg"
+func_append preserve_args " $opt $optarg"
+func_enable_tag "$optarg"
+ shift
+ ;;
+
+ -\?|-h) func_usage ;;
+ --help) func_help ;;
+ --version) func_version ;;
+
+ # Separate optargs to long options:
+ --*=*)
+ func_split_long_opt "$opt"
+ set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
+ shift
+ ;;
+
+ # Separate non-argument short options:
+ -\?*|-h*|-n*|-v*)
+ func_split_short_opt "$opt"
+ set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
+ shift
+ ;;
+
+ --) break ;;
+ -*) func_fatal_help "unrecognized option \`$opt'" ;;
+ *) set dummy "$opt" ${1+"$@"}; shift; break ;;
+ esac
+ done
+
+ # Validate options:
+
+ # save first non-option argument
+ if test "$#" -gt 0; then
+ nonopt="$opt"
+ shift
+ fi
+
+ # preserve --debug
+ test "$opt_debug" = : || func_append preserve_args " --debug"
+
+ case $host in
+ *cygwin* | *mingw* | *pw32* | *cegcc*)
+ # don't eliminate duplications in $postdeps and $predeps
+ opt_duplicate_compiler_generated_deps=:
+ ;;
+ *)
+ opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
+ ;;
+ esac
+
+ $opt_help || {
+ # Sanity checks first:
+ func_check_version_match
+
+ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+ func_fatal_configuration "not configured to build any kind of library"
+ fi
+
+ # Darwin sucks
+ eval std_shrext=\"$shrext_cmds\"
+
+ # Only execute mode is allowed to have -dlopen flags.
+ if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
+ func_error "unrecognized option \`-dlopen'"
+ $ECHO "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Change the help message to a mode-specific one.
+ generic_help="$help"
+ help="Try \`$progname --help --mode=$opt_mode' for more information."
+ }
+
+
+ # Bail if the options were screwed
+ $exit_cmd $EXIT_FAILURE
+}
+
+
+
+
+## ----------- ##
+## Main. ##
+## ----------- ##
+
+# func_lalib_p file
+# True iff FILE is a libtool `.la' library or `.lo' object file.
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_lalib_p ()
+{
+ test -f "$1" &&
+ $SED -e 4q "$1" 2>/dev/null \
+ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+}
+
+# func_lalib_unsafe_p file
+# True iff FILE is a libtool `.la' library or `.lo' object file.
+# This function implements the same check as func_lalib_p without
+# resorting to external programs. To this end, it redirects stdin and
+# closes it afterwards, without saving the original file descriptor.
+# As a safety measure, use it only where a negative result would be
+# fatal anyway. Works if `file' does not exist.
+func_lalib_unsafe_p ()
+{
+ lalib_p=no
+ if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
+ for lalib_p_l in 1 2 3 4
+ do
+ read lalib_p_line
+ case "$lalib_p_line" in
+ \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
+ esac
+ done
+ exec 0<&5 5<&-
+ fi
+ test "$lalib_p" = yes
+}
+
+# func_ltwrapper_script_p file
+# True iff FILE is a libtool wrapper script
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_script_p ()
+{
+ func_lalib_p "$1"
+}
+
+# func_ltwrapper_executable_p file
+# True iff FILE is a libtool wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_executable_p ()
+{
+ func_ltwrapper_exec_suffix=
+ case $1 in
+ *.exe) ;;
+ *) func_ltwrapper_exec_suffix=.exe ;;
+ esac
+ $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
+}
+
+# func_ltwrapper_scriptname file
+# Assumes file is an ltwrapper_executable
+# uses $file to determine the appropriate filename for a
+# temporary ltwrapper_script.
+func_ltwrapper_scriptname ()
+{
+ func_dirname_and_basename "$1" "" "."
+ func_stripname '' '.exe' "$func_basename_result"
+ func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
+}
+
+# func_ltwrapper_p file
+# True iff FILE is a libtool wrapper script or wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_p ()
+{
+ func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
+}
+
+
+# func_execute_cmds commands fail_cmd
+# Execute tilde-delimited COMMANDS.
+# If FAIL_CMD is given, eval that upon failure.
+# FAIL_CMD may read-access the current command in variable CMD!
+func_execute_cmds ()
+{
+ $opt_debug
+ save_ifs=$IFS; IFS='~'
+ for cmd in $1; do
+ IFS=$save_ifs
+ eval cmd=\"$cmd\"
+ func_show_eval "$cmd" "${2-:}"
+ done
+ IFS=$save_ifs
+}
+
+
+# func_source file
+# Source FILE, adding directory component if necessary.
+# Note that it is not necessary on cygwin/mingw to append a dot to
+# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
+# behavior happens only for exec(3), not for open(2)! Also, sourcing
+# `FILE.' does not work on cygwin managed mounts.
+func_source ()
+{
+ $opt_debug
+ case $1 in
+ */* | *\\*) . "$1" ;;
+ *) . "./$1" ;;
+ esac
+}
+
+
+# func_resolve_sysroot PATH
+# Replace a leading = in PATH with a sysroot. Store the result into
+# func_resolve_sysroot_result
+func_resolve_sysroot ()
+{
+ func_resolve_sysroot_result=$1
+ case $func_resolve_sysroot_result in
+ =*)
+ func_stripname '=' '' "$func_resolve_sysroot_result"
+ func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
+ ;;
+ esac
+}
+
+# func_replace_sysroot PATH
+# If PATH begins with the sysroot, replace it with = and
+# store the result into func_replace_sysroot_result.
+func_replace_sysroot ()
+{
+ case "$lt_sysroot:$1" in
+ ?*:"$lt_sysroot"*)
+ func_stripname "$lt_sysroot" '' "$1"
+ func_replace_sysroot_result="=$func_stripname_result"
+ ;;
+ *)
+ # Including no sysroot.
+ func_replace_sysroot_result=$1
+ ;;
+ esac
+}
+
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+ $opt_debug
+ if test -n "$available_tags" && test -z "$tagname"; then
+ CC_quoted=
+ for arg in $CC; do
+ func_append_quoted CC_quoted "$arg"
+ done
+ CC_expanded=`func_echo_all $CC`
+ CC_quoted_expanded=`func_echo_all $CC_quoted`
+ case $@ in
+ # Blanks in the command may have been stripped by the calling shell,
+ # but not from the CC environment variable when configure was run.
+ " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
+ # Blanks at the start of $base_compile will cause this to fail
+ # if we don't check for them as well.
+ *)
+ for z in $available_tags; do
+ if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+ # Evaluate the configuration.
+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+ CC_quoted=
+ for arg in $CC; do
+ # Double-quote args containing other shell metacharacters.
+ func_append_quoted CC_quoted "$arg"
+ done
+ CC_expanded=`func_echo_all $CC`
+ CC_quoted_expanded=`func_echo_all $CC_quoted`
+ case "$@ " in
+ " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
+ # The compiler in the base compile command matches
+ # the one in the tagged configuration.
+ # Assume this is the tagged configuration we want.
+ tagname=$z
+ break
+ ;;
+ esac
+ fi
+ done
+ # If $tagname still isn't set, then no tagged configuration
+ # was found and let the user know that the "--tag" command
+ # line option must be used.
+ if test -z "$tagname"; then
+ func_echo "unable to infer tagged configuration"
+ func_fatal_error "specify a tag with \`--tag'"
+# else
+# func_verbose "using $tagname tagged configuration"
+ fi
+ ;;
+ esac
+ fi
+}
+
+
+
+# func_write_libtool_object output_name pic_name nonpic_name
+# Create a libtool object file (analogous to a ".la" file),
+# but don't create it if we're doing a dry run.
+func_write_libtool_object ()
+{
+ write_libobj=${1}
+ if test "$build_libtool_libs" = yes; then
+ write_lobj=\'${2}\'
+ else
+ write_lobj=none
+ fi
+
+ if test "$build_old_libs" = yes; then
+ write_oldobj=\'${3}\'
+ else
+ write_oldobj=none
+ fi
+
+ $opt_dry_run || {
+ cat >${write_libobj}T <<EOF
+# $write_libobj - a libtool object file
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object=$write_lobj
+
+# Name of the non-PIC object
+non_pic_object=$write_oldobj
+
+EOF
+ $MV "${write_libobj}T" "${write_libobj}"
+ }
+}
+
+
+##################################################
+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
+##################################################
+
+# func_convert_core_file_wine_to_w32 ARG
+# Helper function used by file name conversion functions when $build is *nix,
+# and $host is mingw, cygwin, or some other w32 environment. Relies on a
+# correctly configured wine environment available, with the winepath program
+# in $build's $PATH.
+#
+# ARG is the $build file name to be converted to w32 format.
+# Result is available in $func_convert_core_file_wine_to_w32_result, and will
+# be empty on error (or when ARG is empty)
+func_convert_core_file_wine_to_w32 ()
+{
+ $opt_debug
+ func_convert_core_file_wine_to_w32_result="$1"
+ if test -n "$1"; then
+ # Unfortunately, winepath does not exit with a non-zero error code, so we
+ # are forced to check the contents of stdout. On the other hand, if the
+ # command is not found, the shell will set an exit code of 127 and print
+ # *an error message* to stdout. So we must check for both error code of
+ # zero AND non-empty stdout, which explains the odd construction:
+ func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
+ if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
+ func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
+ $SED -e "$lt_sed_naive_backslashify"`
+ else
+ func_convert_core_file_wine_to_w32_result=
+ fi
+ fi
+}
+# end: func_convert_core_file_wine_to_w32
+
+
+# func_convert_core_path_wine_to_w32 ARG
+# Helper function used by path conversion functions when $build is *nix, and
+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
+# configured wine environment available, with the winepath program in $build's
+# $PATH. Assumes ARG has no leading or trailing path separator characters.
+#
+# ARG is path to be converted from $build format to win32.
+# Result is available in $func_convert_core_path_wine_to_w32_result.
+# Unconvertible file (directory) names in ARG are skipped; if no directory names
+# are convertible, then the result may be empty.
+func_convert_core_path_wine_to_w32 ()
+{
+ $opt_debug
+ # unfortunately, winepath doesn't convert paths, only file names
+ func_convert_core_path_wine_to_w32_result=""
+ if test -n "$1"; then
+ oldIFS=$IFS
+ IFS=:
+ for func_convert_core_path_wine_to_w32_f in $1; do
+ IFS=$oldIFS
+ func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
+ if test -n "$func_convert_core_file_wine_to_w32_result" ; then
+ if test -z "$func_convert_core_path_wine_to_w32_result"; then
+ func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
+ else
+ func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
+ fi
+ fi
+ done
+ IFS=$oldIFS
+ fi
+}
+# end: func_convert_core_path_wine_to_w32
+
+
+# func_cygpath ARGS...
+# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
+# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
+# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
+# (2), returns the Cygwin file name or path in func_cygpath_result (input
+# file name or path is assumed to be in w32 format, as previously converted
+# from $build's *nix or MSYS format). In case (3), returns the w32 file name
+# or path in func_cygpath_result (input file name or path is assumed to be in
+# Cygwin format). Returns an empty string on error.
+#
+# ARGS are passed to cygpath, with the last one being the file name or path to
+# be converted.
+#
+# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
+# environment variable; do not put it in $PATH.
+func_cygpath ()
+{
+ $opt_debug
+ if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
+ func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
+ if test "$?" -ne 0; then
+ # on failure, ensure result is empty
+ func_cygpath_result=
+ fi
+ else
+ func_cygpath_result=
+ func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
+ fi
+}
+#end: func_cygpath
+
+
+# func_convert_core_msys_to_w32 ARG
+# Convert file name or path ARG from MSYS format to w32 format. Return
+# result in func_convert_core_msys_to_w32_result.
+func_convert_core_msys_to_w32 ()
+{
+ $opt_debug
+ # awkward: cmd appends spaces to result
+ func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
+ $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
+}
+#end: func_convert_core_msys_to_w32
+
+
+# func_convert_file_check ARG1 ARG2
+# Verify that ARG1 (a file name in $build format) was converted to $host
+# format in ARG2. Otherwise, emit an error message, but continue (resetting
+# func_to_host_file_result to ARG1).
+func_convert_file_check ()
+{
+ $opt_debug
+ if test -z "$2" && test -n "$1" ; then
+ func_error "Could not determine host file name corresponding to"
+ func_error " \`$1'"
+ func_error "Continuing, but uninstalled executables may not work."
+ # Fallback:
+ func_to_host_file_result="$1"
+ fi
+}
+# end func_convert_file_check
+
+
+# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
+# Verify that FROM_PATH (a path in $build format) was converted to $host
+# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
+# func_to_host_file_result to a simplistic fallback value (see below).
+func_convert_path_check ()
+{
+ $opt_debug
+ if test -z "$4" && test -n "$3"; then
+ func_error "Could not determine the host path corresponding to"
+ func_error " \`$3'"
+ func_error "Continuing, but uninstalled executables may not work."
+ # Fallback. This is a deliberately simplistic "conversion" and
+ # should not be "improved". See libtool.info.
+ if test "x$1" != "x$2"; then
+ lt_replace_pathsep_chars="s|$1|$2|g"
+ func_to_host_path_result=`echo "$3" |
+ $SED -e "$lt_replace_pathsep_chars"`
+ else
+ func_to_host_path_result="$3"
+ fi
+ fi
+}
+# end func_convert_path_check
+
+
+# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
+# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
+# and appending REPL if ORIG matches BACKPAT.
+func_convert_path_front_back_pathsep ()
+{
+ $opt_debug
+ case $4 in
+ $1 ) func_to_host_path_result="$3$func_to_host_path_result"
+ ;;
+ esac
+ case $4 in
+ $2 ) func_append func_to_host_path_result "$3"
+ ;;
+ esac
+}
+# end func_convert_path_front_back_pathsep
+
+
+##################################################
+# $build to $host FILE NAME CONVERSION FUNCTIONS #
+##################################################
+# invoked via `$to_host_file_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# Result will be available in $func_to_host_file_result.
+
+
+# func_to_host_file ARG
+# Converts the file name ARG from $build format to $host format. Return result
+# in func_to_host_file_result.
+func_to_host_file ()
+{
+ $opt_debug
+ $to_host_file_cmd "$1"
+}
+# end func_to_host_file
+
+
+# func_to_tool_file ARG LAZY
+# converts the file name ARG from $build format to toolchain format. Return
+# result in func_to_tool_file_result. If the conversion in use is listed
+# in (the comma separated) LAZY, no conversion takes place.
+func_to_tool_file ()
+{
+ $opt_debug
+ case ,$2, in
+ *,"$to_tool_file_cmd",*)
+ func_to_tool_file_result=$1
+ ;;
+ *)
+ $to_tool_file_cmd "$1"
+ func_to_tool_file_result=$func_to_host_file_result
+ ;;
+ esac
+}
+# end func_to_tool_file
+
+
+# func_convert_file_noop ARG
+# Copy ARG to func_to_host_file_result.
+func_convert_file_noop ()
+{
+ func_to_host_file_result="$1"
+}
+# end func_convert_file_noop
+
+
+# func_convert_file_msys_to_w32 ARG
+# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper. Returns result in
+# func_to_host_file_result.
+func_convert_file_msys_to_w32 ()
+{
+ $opt_debug
+ func_to_host_file_result="$1"
+ if test -n "$1"; then
+ func_convert_core_msys_to_w32 "$1"
+ func_to_host_file_result="$func_convert_core_msys_to_w32_result"
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_w32
+
+
+# func_convert_file_cygwin_to_w32 ARG
+# Convert file name ARG from Cygwin to w32 format. Returns result in
+# func_to_host_file_result.
+func_convert_file_cygwin_to_w32 ()
+{
+ $opt_debug
+ func_to_host_file_result="$1"
+ if test -n "$1"; then
+ # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
+ # LT_CYGPATH in this case.
+ func_to_host_file_result=`cygpath -m "$1"`
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_cygwin_to_w32
+
+
+# func_convert_file_nix_to_w32 ARG
+# Convert file name ARG from *nix to w32 format. Requires a wine environment
+# and a working winepath. Returns result in func_to_host_file_result.
+func_convert_file_nix_to_w32 ()
+{
+ $opt_debug
+ func_to_host_file_result="$1"
+ if test -n "$1"; then
+ func_convert_core_file_wine_to_w32 "$1"
+ func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_w32
+
+
+# func_convert_file_msys_to_cygwin ARG
+# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_file_msys_to_cygwin ()
+{
+ $opt_debug
+ func_to_host_file_result="$1"
+ if test -n "$1"; then
+ func_convert_core_msys_to_w32 "$1"
+ func_cygpath -u "$func_convert_core_msys_to_w32_result"
+ func_to_host_file_result="$func_cygpath_result"
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_cygwin
+
+
+# func_convert_file_nix_to_cygwin ARG
+# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed
+# in a wine environment, working winepath, and LT_CYGPATH set. Returns result
+# in func_to_host_file_result.
+func_convert_file_nix_to_cygwin ()
+{
+ $opt_debug
+ func_to_host_file_result="$1"
+ if test -n "$1"; then
+ # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
+ func_convert_core_file_wine_to_w32 "$1"
+ func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
+ func_to_host_file_result="$func_cygpath_result"
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_cygwin
+
+
+#############################################
+# $build to $host PATH CONVERSION FUNCTIONS #
+#############################################
+# invoked via `$to_host_path_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# The result will be available in $func_to_host_path_result.
+#
+# Path separators are also converted from $build format to $host format. If
+# ARG begins or ends with a path separator character, it is preserved (but
+# converted to $host format) on output.
+#
+# All path conversion functions are named using the following convention:
+# file name conversion function : func_convert_file_X_to_Y ()
+# path conversion function : func_convert_path_X_to_Y ()
+# where, for any given $build/$host combination the 'X_to_Y' value is the
+# same. If conversion functions are added for new $build/$host combinations,
+# the two new functions must follow this pattern, or func_init_to_host_path_cmd
+# will break.
+
+
+# func_init_to_host_path_cmd
+# Ensures that function "pointer" variable $to_host_path_cmd is set to the
+# appropriate value, based on the value of $to_host_file_cmd.
+to_host_path_cmd=
+func_init_to_host_path_cmd ()
+{
+ $opt_debug
+ if test -z "$to_host_path_cmd"; then
+ func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
+ to_host_path_cmd="func_convert_path_${func_stripname_result}"
+ fi
+}
+
+
+# func_to_host_path ARG
+# Converts the path ARG from $build format to $host format. Return result
+# in func_to_host_path_result.
+func_to_host_path ()
+{
+ $opt_debug
+ func_init_to_host_path_cmd
+ $to_host_path_cmd "$1"
+}
+# end func_to_host_path
+
+
+# func_convert_path_noop ARG
+# Copy ARG to func_to_host_path_result.
+func_convert_path_noop ()
+{
+ func_to_host_path_result="$1"
+}
+# end func_convert_path_noop
+
+
+# func_convert_path_msys_to_w32 ARG
+# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper. Returns result in
+# func_to_host_path_result.
+func_convert_path_msys_to_w32 ()
+{
+ $opt_debug
+ func_to_host_path_result="$1"
+ if test -n "$1"; then
+ # Remove leading and trailing path separator characters from ARG. MSYS
+ # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
+ # and winepath ignores them completely.
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+ func_to_host_path_result="$func_convert_core_msys_to_w32_result"
+ func_convert_path_check : ";" \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+ fi
+}
+# end func_convert_path_msys_to_w32
+
+
+# func_convert_path_cygwin_to_w32 ARG
+# Convert path ARG from Cygwin to w32 format. Returns result in
+# func_to_host_file_result.
+func_convert_path_cygwin_to_w32 ()
+{
+ $opt_debug
+ func_to_host_path_result="$1"
+ if test -n "$1"; then
+ # See func_convert_path_msys_to_w32:
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
+ func_convert_path_check : ";" \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+ fi
+}
+# end func_convert_path_cygwin_to_w32
+
+
+# func_convert_path_nix_to_w32 ARG
+# Convert path ARG from *nix to w32 format. Requires a wine environment and
+# a working winepath. Returns result in func_to_host_file_result.
+func_convert_path_nix_to_w32 ()
+{
+ $opt_debug
+ func_to_host_path_result="$1"
+ if test -n "$1"; then
+ # See func_convert_path_msys_to_w32:
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+ func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
+ func_convert_path_check : ";" \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+ fi
+}
+# end func_convert_path_nix_to_w32
+
+
+# func_convert_path_msys_to_cygwin ARG
+# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_path_msys_to_cygwin ()
+{
+ $opt_debug
+ func_to_host_path_result="$1"
+ if test -n "$1"; then
+ # See func_convert_path_msys_to_w32:
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+ func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
+ func_to_host_path_result="$func_cygpath_result"
+ func_convert_path_check : : \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+ fi
+}
+# end func_convert_path_msys_to_cygwin
+
+
+# func_convert_path_nix_to_cygwin ARG
+# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a
+# a wine environment, working winepath, and LT_CYGPATH set. Returns result in
+# func_to_host_file_result.
+func_convert_path_nix_to_cygwin ()
+{
+ $opt_debug
+ func_to_host_path_result="$1"
+ if test -n "$1"; then
+ # Remove leading and trailing path separator characters from
+ # ARG. msys behavior is inconsistent here, cygpath turns them
+ # into '.;' and ';.', and winepath ignores them completely.
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+ func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
+ func_to_host_path_result="$func_cygpath_result"
+ func_convert_path_check : : \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+ fi
+}
+# end func_convert_path_nix_to_cygwin
+
+
+# func_mode_compile arg...
+func_mode_compile ()
+{
+ $opt_debug
+ # Get the compilation command and the source file.
+ base_compile=
+ srcfile="$nonopt" # always keep a non-empty value in "srcfile"
+ suppress_opt=yes
+ suppress_output=
+ arg_mode=normal
+ libobj=
+ later=
+ pie_flag=
+
+ for arg
+ do
+ case $arg_mode in
+ arg )
+ # do not "continue". Instead, add this to base_compile
+ lastarg="$arg"
+ arg_mode=normal
+ ;;
+
+ target )
+ libobj="$arg"
+ arg_mode=normal
+ continue
+ ;;
+
+ normal )
+ # Accept any command-line options.
+ case $arg in
+ -o)
+ test -n "$libobj" && \
+ func_fatal_error "you cannot specify \`-o' more than once"
+ arg_mode=target
+ continue
+ ;;
+
+ -pie | -fpie | -fPIE)
+ func_append pie_flag " $arg"
+ continue
+ ;;
+
+ -shared | -static | -prefer-pic | -prefer-non-pic)
+ func_append later " $arg"
+ continue
+ ;;
+
+ -no-suppress)
+ suppress_opt=no
+ continue
+ ;;
+
+ -Xcompiler)
+ arg_mode=arg # the next one goes into the "base_compile" arg list
+ continue # The current "srcfile" will either be retained or
+ ;; # replaced later. I would guess that would be a bug.
+
+ -Wc,*)
+ func_stripname '-Wc,' '' "$arg"
+ args=$func_stripname_result
+ lastarg=
+ save_ifs="$IFS"; IFS=','
+ for arg in $args; do
+ IFS="$save_ifs"
+ func_append_quoted lastarg "$arg"
+ done
+ IFS="$save_ifs"
+ func_stripname ' ' '' "$lastarg"
+ lastarg=$func_stripname_result
+
+ # Add the arguments to base_compile.
+ func_append base_compile " $lastarg"
+ continue
+ ;;
+
+ *)
+ # Accept the current argument as the source file.
+ # The previous "srcfile" becomes the current argument.
+ #
+ lastarg="$srcfile"
+ srcfile="$arg"
+ ;;
+ esac # case $arg
+ ;;
+ esac # case $arg_mode
+
+ # Aesthetically quote the previous argument.
+ func_append_quoted base_compile "$lastarg"
+ done # for arg
+
+ case $arg_mode in
+ arg)
+ func_fatal_error "you must specify an argument for -Xcompile"
+ ;;
+ target)
+ func_fatal_error "you must specify a target with \`-o'"
+ ;;
+ *)
+ # Get the name of the library object.
+ test -z "$libobj" && {
+ func_basename "$srcfile"
+ libobj="$func_basename_result"
+ }
+ ;;
+ esac
+
+ # Recognize several different file suffixes.
+ # If the user specifies -o file.o, it is replaced with file.lo
+ case $libobj in
+ *.[cCFSifmso] | \
+ *.ada | *.adb | *.ads | *.asm | \
+ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
+ *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup)
+ func_xform "$libobj"
+ libobj=$func_xform_result
+ ;;
+ esac
+
+ case $libobj in
+ *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
+ *)
+ func_fatal_error "cannot determine name of library object from \`$libobj'"
+ ;;
+ esac
+
+ func_infer_tag $base_compile
+
+ for arg in $later; do
+ case $arg in
+ -shared)
+ test "$build_libtool_libs" != yes && \
+ func_fatal_configuration "can not build a shared library"
+ build_old_libs=no
+ continue
+ ;;
+
+ -static)
+ build_libtool_libs=no
+ build_old_libs=yes
+ continue
+ ;;
+
+ -prefer-pic)
+ pic_mode=yes
+ continue
+ ;;
+
+ -prefer-non-pic)
+ pic_mode=no
+ continue
+ ;;
+ esac
+ done
+
+ func_quote_for_eval "$libobj"
+ test "X$libobj" != "X$func_quote_for_eval_result" \
+ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
+ && func_warning "libobj name \`$libobj' may not contain shell special characters."
+ func_dirname_and_basename "$obj" "/" ""
+ objname="$func_basename_result"
+ xdir="$func_dirname_result"
+ lobj=${xdir}$objdir/$objname
+
+ test -z "$base_compile" && \
+ func_fatal_help "you must specify a compilation command"
+
+ # Delete any leftover library objects.
+ if test "$build_old_libs" = yes; then
+ removelist="$obj $lobj $libobj ${libobj}T"
+ else
+ removelist="$lobj $libobj ${libobj}T"
+ fi
+
+ # On Cygwin there's no "real" PIC flag so we must build both object types
+ case $host_os in
+ cygwin* | mingw* | pw32* | os2* | cegcc*)
+ pic_mode=default
+ ;;
+ esac
+ if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+ # non-PIC code in shared libraries is not supported
+ pic_mode=default
+ fi
+
+ # Calculate the filename of the output object if compiler does
+ # not support -o with -c
+ if test "$compiler_c_o" = no; then
+ output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
+ lockfile="$output_obj.lock"
+ else
+ output_obj=
+ need_locks=no
+ lockfile=
+ fi
+
+ # Lock this critical section if it is needed
+ # We use this script file to make the link, it avoids creating a new file
+ if test "$need_locks" = yes; then
+ until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+ func_echo "Waiting for $lockfile to be removed"
+ sleep 2
+ done
+ elif test "$need_locks" = warn; then
+ if test -f "$lockfile"; then
+ $ECHO "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $opt_dry_run || $RM $removelist
+ exit $EXIT_FAILURE
+ fi
+ func_append removelist " $output_obj"
+ $ECHO "$srcfile" > "$lockfile"
+ fi
+
+ $opt_dry_run || $RM $removelist
+ func_append removelist " $lockfile"
+ trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
+
+ func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
+ srcfile=$func_to_tool_file_result
+ func_quote_for_eval "$srcfile"
+ qsrcfile=$func_quote_for_eval_result
+
+ # Only build a PIC object if we are building libtool libraries.
+ if test "$build_libtool_libs" = yes; then
+ # Without this assignment, base_compile gets emptied.
+ fbsd_hideous_sh_bug=$base_compile
+
+ if test "$pic_mode" != no; then
+ command="$base_compile $qsrcfile $pic_flag"
+ else
+ # Don't build PIC code
+ command="$base_compile $qsrcfile"
+ fi
+
+ func_mkdir_p "$xdir$objdir"
+
+ if test -z "$output_obj"; then
+ # Place PIC objects in $objdir
+ func_append command " -o $lobj"
+ fi
+
+ func_show_eval_locale "$command" \
+ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
+
+ if test "$need_locks" = warn &&
+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+ $ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $opt_dry_run || $RM $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed, then go on to compile the next one
+ if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+ func_show_eval '$MV "$output_obj" "$lobj"' \
+ 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+ fi
+
+ # Allow error messages only from the first compilation.
+ if test "$suppress_opt" = yes; then
+ suppress_output=' >/dev/null 2>&1'
+ fi
+ fi
+
+ # Only build a position-dependent object if we build old libraries.
+ if test "$build_old_libs" = yes; then
+ if test "$pic_mode" != yes; then
+ # Don't build PIC code
+ command="$base_compile $qsrcfile$pie_flag"
+ else
+ command="$base_compile $qsrcfile $pic_flag"
+ fi
+ if test "$compiler_c_o" = yes; then
+ func_append command " -o $obj"
+ fi
+
+ # Suppress compiler output if we already did a PIC compilation.
+ func_append command "$suppress_output"
+ func_show_eval_locale "$command" \
+ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
+
+ if test "$need_locks" = warn &&
+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+ $ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $opt_dry_run || $RM $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed
+ if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+ func_show_eval '$MV "$output_obj" "$obj"' \
+ 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+ fi
+ fi
+
+ $opt_dry_run || {
+ func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
+
+ # Unlock the critical section if it was locked
+ if test "$need_locks" != no; then
+ removelist=$lockfile
+ $RM "$lockfile"
+ fi
+ }
+
+ exit $EXIT_SUCCESS
+}
+
+$opt_help || {
+ test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
+}
+
+func_mode_help ()
+{
+ # We need to display help for each of the modes.
+ case $opt_mode in
+ "")
+ # Generic help is extracted from the usage comments
+ # at the start of this file.
+ func_help
+ ;;
+
+ clean)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+ compile)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+ -o OUTPUT-FILE set the output file name to OUTPUT-FILE
+ -no-suppress do not suppress compiler output for multiple passes
+ -prefer-pic try to build PIC objects only
+ -prefer-non-pic try to build non-PIC objects only
+ -shared do not build a \`.o' file suitable for static linking
+ -static only build a \`.o' file suitable for static linking
+ -Wc,FLAG pass FLAG directly to the compiler
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+ ;;
+
+ execute)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+ -dlopen FILE add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+ ;;
+
+ finish)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges. Use
+the \`--dry-run' option if you just want to see what would be executed."
+ ;;
+
+ install)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command. The first component should be
+either the \`install' or \`cp' program.
+
+The following components of INSTALL-COMMAND are treated specially:
+
+ -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+ ;;
+
+ link)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+ -all-static do not do any dynamic linking at all
+ -avoid-version do not add a version suffix if possible
+ -bindir BINDIR specify path to binaries directory (for systems where
+ libraries must be found in the PATH setting at runtime)
+ -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
+ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
+ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+ -export-symbols SYMFILE
+ try to export only the symbols listed in SYMFILE
+ -export-symbols-regex REGEX
+ try to export only the symbols matching REGEX
+ -LLIBDIR search LIBDIR for required installed libraries
+ -lNAME OUTPUT-FILE requires the installed library libNAME
+ -module build a library that can dlopened
+ -no-fast-install disable the fast-install mode
+ -no-install link a not-installable executable
+ -no-undefined declare that a library does not refer to external symbols
+ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
+ -objectlist FILE Use a list of object files found in FILE to specify objects
+ -precious-files-regex REGEX
+ don't remove output files matching REGEX
+ -release RELEASE specify package release information
+ -rpath LIBDIR the created library will eventually be installed in LIBDIR
+ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
+ -shared only do dynamic linking of libtool libraries
+ -shrext SUFFIX override the standard shared library file extension
+ -static do not do any dynamic linking of uninstalled libtool libraries
+ -static-libtool-libs
+ do not do any dynamic linking of libtool libraries
+ -version-info CURRENT[:REVISION[:AGE]]
+ specify library version info [each variable defaults to 0]
+ -weak LIBNAME declare that the target provides the LIBNAME interface
+ -Wc,FLAG
+ -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
+ -Wl,FLAG
+ -Xlinker FLAG pass linker-specific FLAG directly to the linker
+ -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename. Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+ ;;
+
+ uninstall)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+ *)
+ func_fatal_help "invalid operation mode \`$opt_mode'"
+ ;;
+ esac
+
+ echo
+ $ECHO "Try \`$progname --help' for more information about other modes."
+}
+
+# Now that we've collected a possible --mode arg, show help if necessary
+if $opt_help; then
+ if test "$opt_help" = :; then
+ func_mode_help
+ else
+ {
+ func_help noexit
+ for opt_mode in compile link execute install finish uninstall clean; do
+ func_mode_help
+ done
+ } | sed -n '1p; 2,$s/^Usage:/ or: /p'
+ {
+ func_help noexit
+ for opt_mode in compile link execute install finish uninstall clean; do
+ echo
+ func_mode_help
+ done
+ } |
+ sed '1d
+ /^When reporting/,/^Report/{
+ H
+ d
+ }
+ $x
+ /information about other modes/d
+ /more detailed .*MODE/d
+ s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
+ fi
+ exit $?
+fi
+
+
+# func_mode_execute arg...
+func_mode_execute ()
+{
+ $opt_debug
+ # The first argument is the command name.
+ cmd="$nonopt"
+ test -z "$cmd" && \
+ func_fatal_help "you must specify a COMMAND"
+
+ # Handle -dlopen flags immediately.
+ for file in $opt_dlopen; do
+ test -f "$file" \
+ || func_fatal_help "\`$file' is not a file"
+
+ dir=
+ case $file in
+ *.la)
+ func_resolve_sysroot "$file"
+ file=$func_resolve_sysroot_result
+
+ # Check to see that this really is a libtool archive.
+ func_lalib_unsafe_p "$file" \
+ || func_fatal_help "\`$lib' is not a valid libtool archive"
+
+ # Read the libtool library.
+ dlname=
+ library_names=
+ func_source "$file"
+
+ # Skip this library if it cannot be dlopened.
+ if test -z "$dlname"; then
+ # Warn if it was a shared library.
+ test -n "$library_names" && \
+ func_warning "\`$file' was not linked with \`-export-dynamic'"
+ continue
+ fi
+
+ func_dirname "$file" "" "."
+ dir="$func_dirname_result"
+
+ if test -f "$dir/$objdir/$dlname"; then
+ func_append dir "/$objdir"
+ else
+ if test ! -f "$dir/$dlname"; then
+ func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
+ fi
+ fi
+ ;;
+
+ *.lo)
+ # Just add the directory containing the .lo file.
+ func_dirname "$file" "" "."
+ dir="$func_dirname_result"
+ ;;
+
+ *)
+ func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
+ continue
+ ;;
+ esac
+
+ # Get the absolute pathname.
+ absdir=`cd "$dir" && pwd`
+ test -n "$absdir" && dir="$absdir"
+
+ # Now add the directory to shlibpath_var.
+ if eval "test -z \"\$$shlibpath_var\""; then
+ eval "$shlibpath_var=\"\$dir\""
+ else
+ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+ fi
+ done
+
+ # This variable tells wrapper scripts just to set shlibpath_var
+ # rather than running their programs.
+ libtool_execute_magic="$magic"
+
+ # Check if any of the arguments is a wrapper script.
+ args=
+ for file
+ do
+ case $file in
+ -* | *.la | *.lo ) ;;
+ *)
+ # Do a test to see if this is really a libtool program.
+ if func_ltwrapper_script_p "$file"; then
+ func_source "$file"
+ # Transform arg to wrapped name.
+ file="$progdir/$program"
+ elif func_ltwrapper_executable_p "$file"; then
+ func_ltwrapper_scriptname "$file"
+ func_source "$func_ltwrapper_scriptname_result"
+ # Transform arg to wrapped name.
+ file="$progdir/$program"
+ fi
+ ;;
+ esac
+ # Quote arguments (to preserve shell metacharacters).
+ func_append_quoted args "$file"
+ done
+
+ if test "X$opt_dry_run" = Xfalse; then
+ if test -n "$shlibpath_var"; then
+ # Export the shlibpath_var.
+ eval "export $shlibpath_var"
+ fi
+
+ # Restore saved environment variables
+ for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+ do
+ eval "if test \"\${save_$lt_var+set}\" = set; then
+ $lt_var=\$save_$lt_var; export $lt_var
+ else
+ $lt_unset $lt_var
+ fi"
+ done
+
+ # Now prepare to actually exec the command.
+ exec_cmd="\$cmd$args"
+ else
+ # Display what would be done.
+ if test -n "$shlibpath_var"; then
+ eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
+ echo "export $shlibpath_var"
+ fi
+ $ECHO "$cmd$args"
+ exit $EXIT_SUCCESS
+ fi
+}
+
+test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
+
+
+# func_mode_finish arg...
+func_mode_finish ()
+{
+ $opt_debug
+ libs=
+ libdirs=
+ admincmds=
+
+ for opt in "$nonopt" ${1+"$@"}
+ do
+ if test -d "$opt"; then
+ func_append libdirs " $opt"
+
+ elif test -f "$opt"; then
+ if func_lalib_unsafe_p "$opt"; then
+ func_append libs " $opt"
+ else
+ func_warning "\`$opt' is not a valid libtool archive"
+ fi
+
+ else
+ func_fatal_error "invalid argument \`$opt'"
+ fi
+ done
+
+ if test -n "$libs"; then
+ if test -n "$lt_sysroot"; then
+ sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
+ sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
+ else
+ sysroot_cmd=
+ fi
+
+ # Remove sysroot references
+ if $opt_dry_run; then
+ for lib in $libs; do
+ echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
+ done
+ else
+ tmpdir=`func_mktempdir`
+ for lib in $libs; do
+ sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
+ > $tmpdir/tmp-la
+ mv -f $tmpdir/tmp-la $lib
+ done
+ ${RM}r "$tmpdir"
+ fi
+ fi
+
+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+ for libdir in $libdirs; do
+ if test -n "$finish_cmds"; then
+ # Do each command in the finish commands.
+ func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
+'"$cmd"'"'
+ fi
+ if test -n "$finish_eval"; then
+ # Do the single finish_eval.
+ eval cmds=\"$finish_eval\"
+ $opt_dry_run || eval "$cmds" || func_append admincmds "
+ $cmds"
+ fi
+ done
+ fi
+
+ # Exit here if they wanted silent mode.
+ $opt_silent && exit $EXIT_SUCCESS
+
+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+ echo "----------------------------------------------------------------------"
+ echo "Libraries have been installed in:"
+ for libdir in $libdirs; do
+ $ECHO " $libdir"
+ done
+ echo
+ echo "If you ever happen to want to link against installed libraries"
+ echo "in a given directory, LIBDIR, you must either use libtool, and"
+ echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+ echo "flag during linking and do at least one of the following:"
+ if test -n "$shlibpath_var"; then
+ echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
+ echo " during execution"
+ fi
+ if test -n "$runpath_var"; then
+ echo " - add LIBDIR to the \`$runpath_var' environment variable"
+ echo " during linking"
+ fi
+ if test -n "$hardcode_libdir_flag_spec"; then
+ libdir=LIBDIR
+ eval flag=\"$hardcode_libdir_flag_spec\"
+
+ $ECHO " - use the \`$flag' linker flag"
+ fi
+ if test -n "$admincmds"; then
+ $ECHO " - have your system administrator run these commands:$admincmds"
+ fi
+ if test -f /etc/ld.so.conf; then
+ echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+ fi
+ echo
+
+ echo "See any operating system documentation about shared libraries for"
+ case $host in
+ solaris2.[6789]|solaris2.1[0-9])
+ echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+ echo "pages."
+ ;;
+ *)
+ echo "more information, such as the ld(1) and ld.so(8) manual pages."
+ ;;
+ esac
+ echo "----------------------------------------------------------------------"
+ fi
+ exit $EXIT_SUCCESS
+}
+
+test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
+
+
+# func_mode_install arg...
+func_mode_install ()
+{
+ $opt_debug
+ # There may be an optional sh(1) argument at the beginning of
+ # install_prog (especially on Windows NT).
+ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+ # Allow the use of GNU shtool's install command.
+ case $nonopt in *shtool*) :;; *) false;; esac; then
+ # Aesthetically quote it.
+ func_quote_for_eval "$nonopt"
+ install_prog="$func_quote_for_eval_result "
+ arg=$1
+ shift
+ else
+ install_prog=
+ arg=$nonopt
+ fi
+
+ # The real first argument should be the name of the installation program.
+ # Aesthetically quote it.
+ func_quote_for_eval "$arg"
+ func_append install_prog "$func_quote_for_eval_result"
+ install_shared_prog=$install_prog
+ case " $install_prog " in
+ *[\\\ /]cp\ *) install_cp=: ;;
+ *) install_cp=false ;;
+ esac
+
+ # We need to accept at least all the BSD install flags.
+ dest=
+ files=
+ opts=
+ prev=
+ install_type=
+ isdir=no
+ stripme=
+ no_mode=:
+ for arg
+ do
+ arg2=
+ if test -n "$dest"; then
+ func_append files " $dest"
+ dest=$arg
+ continue
+ fi
+
+ case $arg in
+ -d) isdir=yes ;;
+ -f)
+ if $install_cp; then :; else
+ prev=$arg
+ fi
+ ;;
+ -g | -m | -o)
+ prev=$arg
+ ;;
+ -s)
+ stripme=" -s"
+ continue
+ ;;
+ -*)
+ ;;
+ *)
+ # If the previous option needed an argument, then skip it.
+ if test -n "$prev"; then
+ if test "x$prev" = x-m && test -n "$install_override_mode"; then
+ arg2=$install_override_mode
+ no_mode=false
+ fi
+ prev=
+ else
+ dest=$arg
+ continue
+ fi
+ ;;
+ esac
+
+ # Aesthetically quote the argument.
+ func_quote_for_eval "$arg"
+ func_append install_prog " $func_quote_for_eval_result"
+ if test -n "$arg2"; then
+ func_quote_for_eval "$arg2"
+ fi
+ func_append install_shared_prog " $func_quote_for_eval_result"
+ done
+
+ test -z "$install_prog" && \
+ func_fatal_help "you must specify an install program"
+
+ test -n "$prev" && \
+ func_fatal_help "the \`$prev' option requires an argument"
+
+ if test -n "$install_override_mode" && $no_mode; then
+ if $install_cp; then :; else
+ func_quote_for_eval "$install_override_mode"
+ func_append install_shared_prog " -m $func_quote_for_eval_result"
+ fi
+ fi
+
+ if test -z "$files"; then
+ if test -z "$dest"; then
+ func_fatal_help "no file or destination specified"
+ else
+ func_fatal_help "you must specify a destination"
+ fi
+ fi
+
+ # Strip any trailing slash from the destination.
+ func_stripname '' '/' "$dest"
+ dest=$func_stripname_result
+
+ # Check to see that the destination is a directory.
+ test -d "$dest" && isdir=yes
+ if test "$isdir" = yes; then
+ destdir="$dest"
+ destname=
+ else
+ func_dirname_and_basename "$dest" "" "."
+ destdir="$func_dirname_result"
+ destname="$func_basename_result"
+
+ # Not a directory, so check to see that there is only one file specified.
+ set dummy $files; shift
+ test "$#" -gt 1 && \
+ func_fatal_help "\`$dest' is not a directory"
+ fi
+ case $destdir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ for file in $files; do
+ case $file in
+ *.lo) ;;
+ *)
+ func_fatal_help "\`$destdir' must be an absolute directory name"
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic="$magic"
+
+ staticlibs=
+ future_libdirs=
+ current_libdirs=
+ for file in $files; do
+
+ # Do each installation.
+ case $file in
+ *.$libext)
+ # Do the static libraries later.
+ func_append staticlibs " $file"
+ ;;
+
+ *.la)
+ func_resolve_sysroot "$file"
+ file=$func_resolve_sysroot_result
+
+ # Check to see that this really is a libtool archive.
+ func_lalib_unsafe_p "$file" \
+ || func_fatal_help "\`$file' is not a valid libtool archive"
+
+ library_names=
+ old_library=
+ relink_command=
+ func_source "$file"
+
+ # Add the libdir to current_libdirs if it is the destination.
+ if test "X$destdir" = "X$libdir"; then
+ case "$current_libdirs " in
+ *" $libdir "*) ;;
+ *) func_append current_libdirs " $libdir" ;;
+ esac
+ else
+ # Note the libdir as a future libdir.
+ case "$future_libdirs " in
+ *" $libdir "*) ;;
+ *) func_append future_libdirs " $libdir" ;;
+ esac
+ fi
+
+ func_dirname "$file" "/" ""
+ dir="$func_dirname_result"
+ func_append dir "$objdir"
+
+ if test -n "$relink_command"; then
+ # Determine the prefix the user has applied to our future dir.
+ inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
+
+ # Don't allow the user to place us outside of our expected
+ # location b/c this prevents finding dependent libraries that
+ # are installed to the same prefix.
+ # At present, this check doesn't affect windows .dll's that
+ # are installed into $libdir/../bin (currently, that works fine)
+ # but it's something to keep an eye on.
+ test "$inst_prefix_dir" = "$destdir" && \
+ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
+
+ if test -n "$inst_prefix_dir"; then
+ # Stick the inst_prefix_dir data into the link command.
+ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+ else
+ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
+ fi
+
+ func_warning "relinking \`$file'"
+ func_show_eval "$relink_command" \
+ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
+ fi
+
+ # See the names of the shared library.
+ set dummy $library_names; shift
+ if test -n "$1"; then
+ realname="$1"
+ shift
+
+ srcname="$realname"
+ test -n "$relink_command" && srcname="$realname"T
+
+ # Install the shared library and build the symlinks.
+ func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
+ 'exit $?'
+ tstripme="$stripme"
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ case $realname in
+ *.dll.a)
+ tstripme=""
+ ;;
+ esac
+ ;;
+ esac
+ if test -n "$tstripme" && test -n "$striplib"; then
+ func_show_eval "$striplib $destdir/$realname" 'exit $?'
+ fi
+
+ if test "$#" -gt 0; then
+ # Delete the old symlinks, and create new ones.
+ # Try `ln -sf' first, because the `ln' binary might depend on
+ # the symlink we replace! Solaris /bin/ln does not understand -f,
+ # so we also need to try rm && ln -s.
+ for linkname
+ do
+ test "$linkname" != "$realname" \
+ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
+ done
+ fi
+
+ # Do each command in the postinstall commands.
+ lib="$destdir/$realname"
+ func_execute_cmds "$postinstall_cmds" 'exit $?'
+ fi
+
+ # Install the pseudo-library for information purposes.
+ func_basename "$file"
+ name="$func_basename_result"
+ instname="$dir/$name"i
+ func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
+
+ # Maybe install the static library, too.
+ test -n "$old_library" && func_append staticlibs " $dir/$old_library"
+ ;;
+
+ *.lo)
+ # Install (i.e. copy) a libtool object.
+
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile="$destdir/$destname"
+ else
+ func_basename "$file"
+ destfile="$func_basename_result"
+ destfile="$destdir/$destfile"
+ fi
+
+ # Deduce the name of the destination old-style object file.
+ case $destfile in
+ *.lo)
+ func_lo2o "$destfile"
+ staticdest=$func_lo2o_result
+ ;;
+ *.$objext)
+ staticdest="$destfile"
+ destfile=
+ ;;
+ *)
+ func_fatal_help "cannot copy a libtool object to \`$destfile'"
+ ;;
+ esac
+
+ # Install the libtool object if requested.
+ test -n "$destfile" && \
+ func_show_eval "$install_prog $file $destfile" 'exit $?'
+
+ # Install the old object if enabled.
+ if test "$build_old_libs" = yes; then
+ # Deduce the name of the old-style object file.
+ func_lo2o "$file"
+ staticobj=$func_lo2o_result
+ func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
+ fi
+ exit $EXIT_SUCCESS
+ ;;
+
+ *)
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile="$destdir/$destname"
+ else
+ func_basename "$file"
+ destfile="$func_basename_result"
+ destfile="$destdir/$destfile"
+ fi
+
+ # If the file is missing, and there is a .exe on the end, strip it
+ # because it is most likely a libtool script we actually want to
+ # install
+ stripped_ext=""
+ case $file in
+ *.exe)
+ if test ! -f "$file"; then
+ func_stripname '' '.exe' "$file"
+ file=$func_stripname_result
+ stripped_ext=".exe"
+ fi
+ ;;
+ esac
+
+ # Do a test to see if this is really a libtool program.
+ case $host in
+ *cygwin* | *mingw*)
+ if func_ltwrapper_executable_p "$file"; then
+ func_ltwrapper_scriptname "$file"
+ wrapper=$func_ltwrapper_scriptname_result
+ else
+ func_stripname '' '.exe' "$file"
+ wrapper=$func_stripname_result
+ fi
+ ;;
+ *)
+ wrapper=$file
+ ;;
+ esac
+ if func_ltwrapper_script_p "$wrapper"; then
+ notinst_deplibs=
+ relink_command=
+
+ func_source "$wrapper"
+
+ # Check the variables that should have been set.
+ test -z "$generated_by_libtool_version" && \
+ func_fatal_error "invalid libtool wrapper script \`$wrapper'"
+
+ finalize=yes
+ for lib in $notinst_deplibs; do
+ # Check to see that each library is installed.
+ libdir=
+ if test -f "$lib"; then
+ func_source "$lib"
+ fi
+ libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
+ if test -n "$libdir" && test ! -f "$libfile"; then
+ func_warning "\`$lib' has not been installed in \`$libdir'"
+ finalize=no
+ fi
+ done
+
+ relink_command=
+ func_source "$wrapper"
+
+ outputname=
+ if test "$fast_install" = no && test -n "$relink_command"; then
+ $opt_dry_run || {
+ if test "$finalize" = yes; then
+ tmpdir=`func_mktempdir`
+ func_basename "$file$stripped_ext"
+ file="$func_basename_result"
+ outputname="$tmpdir/$file"
+ # Replace the output file specification.
+ relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
+
+ $opt_silent || {
+ func_quote_for_expand "$relink_command"
+ eval "func_echo $func_quote_for_expand_result"
+ }
+ if eval "$relink_command"; then :
+ else
+ func_error "error: relink \`$file' with the above command before installing it"
+ $opt_dry_run || ${RM}r "$tmpdir"
+ continue
+ fi
+ file="$outputname"
+ else
+ func_warning "cannot relink \`$file'"
+ fi
+ }
+ else
+ # Install the binary that we compiled earlier.
+ file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
+ fi
+ fi
+
+ # remove .exe since cygwin /usr/bin/install will append another
+ # one anyway
+ case $install_prog,$host in
+ */usr/bin/install*,*cygwin*)
+ case $file:$destfile in
+ *.exe:*.exe)
+ # this is ok
+ ;;
+ *.exe:*)
+ destfile=$destfile.exe
+ ;;
+ *:*.exe)
+ func_stripname '' '.exe' "$destfile"
+ destfile=$func_stripname_result
+ ;;
+ esac
+ ;;
+ esac
+ func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
+ $opt_dry_run || if test -n "$outputname"; then
+ ${RM}r "$tmpdir"
+ fi
+ ;;
+ esac
+ done
+
+ for file in $staticlibs; do
+ func_basename "$file"
+ name="$func_basename_result"
+
+ # Set up the ranlib parameters.
+ oldlib="$destdir/$name"
+
+ func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
+
+ if test -n "$stripme" && test -n "$old_striplib"; then
+ func_show_eval "$old_striplib $oldlib" 'exit $?'
+ fi
+
+ # Do each command in the postinstall commands.
+ func_execute_cmds "$old_postinstall_cmds" 'exit $?'
+ done
+
+ test -n "$future_libdirs" && \
+ func_warning "remember to run \`$progname --finish$future_libdirs'"
+
+ if test -n "$current_libdirs"; then
+ # Maybe just do a dry run.
+ $opt_dry_run && current_libdirs=" -n$current_libdirs"
+ exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+ else
+ exit $EXIT_SUCCESS
+ fi
+}
+
+test "$opt_mode" = install && func_mode_install ${1+"$@"}
+
+
+# func_generate_dlsyms outputname originator pic_p
+# Extract symbols from dlprefiles and create ${outputname}S.o with
+# a dlpreopen symbol table.
+func_generate_dlsyms ()
+{
+ $opt_debug
+ my_outputname="$1"
+ my_originator="$2"
+ my_pic_p="${3-no}"
+ my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
+ my_dlsyms=
+
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ if test -n "$NM" && test -n "$global_symbol_pipe"; then
+ my_dlsyms="${my_outputname}S.c"
+ else
+ func_error "not configured to extract global symbols from dlpreopened files"
+ fi
+ fi
+
+ if test -n "$my_dlsyms"; then
+ case $my_dlsyms in
+ "") ;;
+ *.c)
+ # Discover the nlist of each of the dlfiles.
+ nlist="$output_objdir/${my_outputname}.nm"
+
+ func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
+
+ # Parse the name list into a source file.
+ func_verbose "creating $output_objdir/$my_dlsyms"
+
+ $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
+/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
+/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
+#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
+#endif
+
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+ relocations are performed -- see ld's documentation on pseudo-relocs. */
+# define LT_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data. */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
+/* External symbol declarations for the compiler. */\
+"
+
+ if test "$dlself" = yes; then
+ func_verbose "generating symbol list for \`$output'"
+
+ $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
+
+ # Add our own program objects to the symbol list.
+ progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
+ for progfile in $progfiles; do
+ func_to_tool_file "$progfile" func_convert_file_msys_to_w32
+ func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
+ $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -n "$exclude_expsyms"; then
+ $opt_dry_run || {
+ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+ eval '$MV "$nlist"T "$nlist"'
+ }
+ fi
+
+ if test -n "$export_symbols_regex"; then
+ $opt_dry_run || {
+ eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+ eval '$MV "$nlist"T "$nlist"'
+ }
+ fi
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ export_symbols="$output_objdir/$outputname.exp"
+ $opt_dry_run || {
+ $RM $export_symbols
+ eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+ eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+ ;;
+ esac
+ }
+ else
+ $opt_dry_run || {
+ eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+ eval '$MV "$nlist"T "$nlist"'
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+ eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+ ;;
+ esac
+ }
+ fi
+ fi
+
+ for dlprefile in $dlprefiles; do
+ func_verbose "extracting global C symbols from \`$dlprefile'"
+ func_basename "$dlprefile"
+ name="$func_basename_result"
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ # if an import library, we need to obtain dlname
+ if func_win32_import_lib_p "$dlprefile"; then
+ func_tr_sh "$dlprefile"
+ eval "curr_lafile=\$libfile_$func_tr_sh_result"
+ dlprefile_dlbasename=""
+ if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
+ # Use subshell, to avoid clobbering current variable values
+ dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
+ if test -n "$dlprefile_dlname" ; then
+ func_basename "$dlprefile_dlname"
+ dlprefile_dlbasename="$func_basename_result"
+ else
+ # no lafile. user explicitly requested -dlpreopen <import library>.
+ $sharedlib_from_linklib_cmd "$dlprefile"
+ dlprefile_dlbasename=$sharedlib_from_linklib_result
+ fi
+ fi
+ $opt_dry_run || {
+ if test -n "$dlprefile_dlbasename" ; then
+ eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
+ else
+ func_warning "Could not compute DLL name from $name"
+ eval '$ECHO ": $name " >> "$nlist"'
+ fi
+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
+ $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
+ }
+ else # not an import lib
+ $opt_dry_run || {
+ eval '$ECHO ": $name " >> "$nlist"'
+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+ }
+ fi
+ ;;
+ *)
+ $opt_dry_run || {
+ eval '$ECHO ": $name " >> "$nlist"'
+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+ }
+ ;;
+ esac
+ done
+
+ $opt_dry_run || {
+ # Make sure we have at least an empty file.
+ test -f "$nlist" || : > "$nlist"
+
+ if test -n "$exclude_expsyms"; then
+ $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+ $MV "$nlist"T "$nlist"
+ fi
+
+ # Try sorting and uniquifying the output.
+ if $GREP -v "^: " < "$nlist" |
+ if sort -k 3 </dev/null >/dev/null 2>&1; then
+ sort -k 3
+ else
+ sort +2
+ fi |
+ uniq > "$nlist"S; then
+ :
+ else
+ $GREP -v "^: " < "$nlist" > "$nlist"S
+ fi
+
+ if test -f "$nlist"S; then
+ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
+ else
+ echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
+ fi
+
+ echo >> "$output_objdir/$my_dlsyms" "\
+
+/* The mapping between symbol names and symbols. */
+typedef struct {
+ const char *name;
+ void *address;
+} lt_dlsymlist;
+extern LT_DLSYM_CONST lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[];
+LT_DLSYM_CONST lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[] =
+{\
+ { \"$my_originator\", (void *) 0 },"
+
+ case $need_lib_prefix in
+ no)
+ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
+ ;;
+ *)
+ eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
+ ;;
+ esac
+ echo >> "$output_objdir/$my_dlsyms" "\
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt_${my_prefix}_LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+ } # !$opt_dry_run
+
+ pic_flag_for_symtable=
+ case "$compile_command " in
+ *" -static "*) ;;
+ *)
+ case $host in
+ # compiling the symbol table file with pic_flag works around
+ # a FreeBSD bug that causes programs to crash when -lm is
+ # linked before any other PIC object. But we must not use
+ # pic_flag when linking with -static. The problem exists in
+ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+ pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
+ *-*-hpux*)
+ pic_flag_for_symtable=" $pic_flag" ;;
+ *)
+ if test "X$my_pic_p" != Xno; then
+ pic_flag_for_symtable=" $pic_flag"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ symtab_cflags=
+ for arg in $LTCFLAGS; do
+ case $arg in
+ -pie | -fpie | -fPIE) ;;
+ *) func_append symtab_cflags " $arg" ;;
+ esac
+ done
+
+ # Now compile the dynamic symbol file.
+ func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
+
+ # Clean up the generated files.
+ func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
+
+ # Transform the symbol file into the correct name.
+ symfileobj="$output_objdir/${my_outputname}S.$objext"
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ if test -f "$output_objdir/$my_outputname.def"; then
+ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+ else
+ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+ fi
+ ;;
+ *)
+ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+ ;;
+ esac
+ ;;
+ *)
+ func_fatal_error "unknown suffix for \`$my_dlsyms'"
+ ;;
+ esac
+ else
+ # We keep going just in case the user didn't refer to
+ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
+ # really was required.
+
+ # Nullify the symbol file.
+ compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
+ finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
+ fi
+}
+
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+# Despite the name, also deal with 64 bit binaries.
+func_win32_libid ()
+{
+ $opt_debug
+ win32_libid_type="unknown"
+ win32_fileres=`file -L $1 2>/dev/null`
+ case $win32_fileres in
+ *ar\ archive\ import\ library*) # definitely import
+ win32_libid_type="x86 archive import"
+ ;;
+ *ar\ archive*) # could be an import, or static
+ # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
+ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
+ $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
+ func_to_tool_file "$1" func_convert_file_msys_to_w32
+ win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
+ $SED -n -e '
+ 1,100{
+ / I /{
+ s,.*,import,
+ p
+ q
+ }
+ }'`
+ case $win32_nmres in
+ import*) win32_libid_type="x86 archive import";;
+ *) win32_libid_type="x86 archive static";;
+ esac
+ fi
+ ;;
+ *DLL*)
+ win32_libid_type="x86 DLL"
+ ;;
+ *executable*) # but shell scripts are "executable" too...
+ case $win32_fileres in
+ *MS\ Windows\ PE\ Intel*)
+ win32_libid_type="x86 DLL"
+ ;;
+ esac
+ ;;
+ esac
+ $ECHO "$win32_libid_type"
+}
+
+# func_cygming_dll_for_implib ARG
+#
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+# Invoked by eval'ing the libtool variable
+# $sharedlib_from_linklib_cmd
+# Result is available in the variable
+# $sharedlib_from_linklib_result
+func_cygming_dll_for_implib ()
+{
+ $opt_debug
+ sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
+}
+
+# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
+#
+# The is the core of a fallback implementation of a
+# platform-specific function to extract the name of the
+# DLL associated with the specified import library LIBNAME.
+#
+# SECTION_NAME is either .idata$6 or .idata$7, depending
+# on the platform and compiler that created the implib.
+#
+# Echos the name of the DLL associated with the
+# specified import library.
+func_cygming_dll_for_implib_fallback_core ()
+{
+ $opt_debug
+ match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
+ $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
+ $SED '/^Contents of section '"$match_literal"':/{
+ # Place marker at beginning of archive member dllname section
+ s/.*/====MARK====/
+ p
+ d
+ }
+ # These lines can sometimes be longer than 43 characters, but
+ # are always uninteresting
+ /:[ ]*file format pe[i]\{,1\}-/d
+ /^In archive [^:]*:/d
+ # Ensure marker is printed
+ /^====MARK====/p
+ # Remove all lines with less than 43 characters
+ /^.\{43\}/!d
+ # From remaining lines, remove first 43 characters
+ s/^.\{43\}//' |
+ $SED -n '
+ # Join marker and all lines until next marker into a single line
+ /^====MARK====/ b para
+ H
+ $ b para
+ b
+ :para
+ x
+ s/\n//g
+ # Remove the marker
+ s/^====MARK====//
+ # Remove trailing dots and whitespace
+ s/[\. \t]*$//
+ # Print
+ /./p' |
+ # we now have a list, one entry per line, of the stringified
+ # contents of the appropriate section of all members of the
+ # archive which possess that section. Heuristic: eliminate
+ # all those which have a first or second character that is
+ # a '.' (that is, objdump's representation of an unprintable
+ # character.) This should work for all archives with less than
+ # 0x302f exports -- but will fail for DLLs whose name actually
+ # begins with a literal '.' or a single character followed by
+ # a '.'.
+ #
+ # Of those that remain, print the first one.
+ $SED -e '/^\./d;/^.\./d;q'
+}
+
+# func_cygming_gnu_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is a GNU/binutils-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_gnu_implib_p ()
+{
+ $opt_debug
+ func_to_tool_file "$1" func_convert_file_msys_to_w32
+ func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
+ test -n "$func_cygming_gnu_implib_tmp"
+}
+
+# func_cygming_ms_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is an MS-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_ms_implib_p ()
+{
+ $opt_debug
+ func_to_tool_file "$1" func_convert_file_msys_to_w32
+ func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
+ test -n "$func_cygming_ms_implib_tmp"
+}
+
+# func_cygming_dll_for_implib_fallback ARG
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+#
+# This fallback implementation is for use when $DLLTOOL
+# does not support the --identify-strict option.
+# Invoked by eval'ing the libtool variable
+# $sharedlib_from_linklib_cmd
+# Result is available in the variable
+# $sharedlib_from_linklib_result
+func_cygming_dll_for_implib_fallback ()
+{
+ $opt_debug
+ if func_cygming_gnu_implib_p "$1" ; then
+ # binutils import library
+ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
+ elif func_cygming_ms_implib_p "$1" ; then
+ # ms-generated import library
+ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
+ else
+ # unknown
+ sharedlib_from_linklib_result=""
+ fi
+}
+
+
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+ $opt_debug
+ f_ex_an_ar_dir="$1"; shift
+ f_ex_an_ar_oldlib="$1"
+ if test "$lock_old_archive_extraction" = yes; then
+ lockfile=$f_ex_an_ar_oldlib.lock
+ until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+ func_echo "Waiting for $lockfile to be removed"
+ sleep 2
+ done
+ fi
+ func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
+ 'stat=$?; rm -f "$lockfile"; exit $stat'
+ if test "$lock_old_archive_extraction" = yes; then
+ $opt_dry_run || rm -f "$lockfile"
+ fi
+ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+ :
+ else
+ func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
+ fi
+}
+
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+ $opt_debug
+ my_gentop="$1"; shift
+ my_oldlibs=${1+"$@"}
+ my_oldobjs=""
+ my_xlib=""
+ my_xabs=""
+ my_xdir=""
+
+ for my_xlib in $my_oldlibs; do
+ # Extract the objects.
+ case $my_xlib in
+ [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+ *) my_xabs=`pwd`"/$my_xlib" ;;
+ esac
+ func_basename "$my_xlib"
+ my_xlib="$func_basename_result"
+ my_xlib_u=$my_xlib
+ while :; do
+ case " $extracted_archives " in
+ *" $my_xlib_u "*)
+ func_arith $extracted_serial + 1
+ extracted_serial=$func_arith_result
+ my_xlib_u=lt$extracted_serial-$my_xlib ;;
+ *) break ;;
+ esac
+ done
+ extracted_archives="$extracted_archives $my_xlib_u"
+ my_xdir="$my_gentop/$my_xlib_u"
+
+ func_mkdir_p "$my_xdir"
+
+ case $host in
+ *-darwin*)
+ func_verbose "Extracting $my_xabs"
+ # Do not bother doing anything if just a dry run
+ $opt_dry_run || {
+ darwin_orig_dir=`pwd`
+ cd $my_xdir || exit $?
+ darwin_archive=$my_xabs
+ darwin_curdir=`pwd`
+ darwin_base_archive=`basename "$darwin_archive"`
+ darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
+ if test -n "$darwin_arches"; then
+ darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
+ darwin_arch=
+ func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
+ for darwin_arch in $darwin_arches ; do
+ func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+ $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
+ cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+ func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+ cd "$darwin_curdir"
+ $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+ done # $darwin_arches
+ ## Okay now we've a bunch of thin objects, gotta fatten them up :)
+ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
+ darwin_file=
+ darwin_files=
+ for darwin_file in $darwin_filelist; do
+ darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
+ $LIPO -create -output "$darwin_file" $darwin_files
+ done # $darwin_filelist
+ $RM -rf unfat-$$
+ cd "$darwin_orig_dir"
+ else
+ cd $darwin_orig_dir
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ fi # $darwin_arches
+ } # !$opt_dry_run
+ ;;
+ *)
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ ;;
+ esac
+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
+ done
+
+ func_extract_archives_result="$my_oldobjs"
+}
+
+
+# func_emit_wrapper [arg=no]
+#
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable. Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
+#
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take. If 'yes', then the emitted script
+# will assume that the directory in which it is stored is
+# the $objdir directory. This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
+{
+ func_emit_wrapper_arg1=${1-no}
+
+ $ECHO "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='$sed_quote_subst'
+
+# Be Bourne compatible
+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+ # install mode needs the following variables:
+ generated_by_libtool_version='$macro_version'
+ notinst_deplibs='$notinst_deplibs'
+else
+ # When we are sourced in execute mode, \$file and \$ECHO are already set.
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ file=\"\$0\""
+
+ qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
+ $ECHO "\
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+ ECHO=\"$qECHO\"
+ fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ which is used only on
+# windows platforms, and (c) all begin with the string "--lt-"
+# (application programs are unlikely to have options which match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's $0 value, followed by "$@".
+lt_option_debug=
+func_parse_lt_options ()
+{
+ lt_script_arg0=\$0
+ shift
+ for lt_opt
+ do
+ case \"\$lt_opt\" in
+ --lt-debug) lt_option_debug=1 ;;
+ --lt-dump-script)
+ lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
+ test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
+ lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
+ cat \"\$lt_dump_D/\$lt_dump_F\"
+ exit 0
+ ;;
+ --lt-*)
+ \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
+ exit 1
+ ;;
+ esac
+ done
+
+ # Print the debug banner immediately:
+ if test -n \"\$lt_option_debug\"; then
+ echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
+ fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+ lt_dump_args_N=1;
+ for lt_arg
+ do
+ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
+ lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
+ done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+"
+ case $host in
+ # Backslashes separate directories on plain windows
+ *-*-mingw | *-*-os2* | *-cegcc*)
+ $ECHO "\
+ if test -n \"\$lt_option_debug\"; then
+ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
+ func_lt_dump_args \${1+\"\$@\"} 1>&2
+ fi
+ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+ ;;
+
+ *)
+ $ECHO "\
+ if test -n \"\$lt_option_debug\"; then
+ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
+ func_lt_dump_args \${1+\"\$@\"} 1>&2
+ fi
+ exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+ ;;
+ esac
+ $ECHO "\
+ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+ exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from \$@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+ for lt_wr_arg
+ do
+ case \$lt_wr_arg in
+ --lt-*) ;;
+ *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
+ esac
+ shift
+ done
+ func_exec_program_core \${1+\"\$@\"}
+}
+
+ # Parse options
+ func_parse_lt_options \"\$0\" \${1+\"\$@\"}
+
+ # Find the directory that this script lives in.
+ thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
+ test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+ # Follow symbolic links until we get to the real thisdir.
+ file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
+ while test -n \"\$file\"; do
+ destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
+
+ # If there was a directory component, then change thisdir.
+ if test \"x\$destdir\" != \"x\$file\"; then
+ case \"\$destdir\" in
+ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+ *) thisdir=\"\$thisdir/\$destdir\" ;;
+ esac
+ fi
+
+ file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
+ file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
+ done
+
+ # Usually 'no', except on cygwin/mingw when embedded into
+ # the cwrapper.
+ WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
+ if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
+ # special case for '.'
+ if test \"\$thisdir\" = \".\"; then
+ thisdir=\`pwd\`
+ fi
+ # remove .libs from thisdir
+ case \"\$thisdir\" in
+ *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
+ $objdir ) thisdir=. ;;
+ esac
+ fi
+
+ # Try to get the absolute directory name.
+ absdir=\`cd \"\$thisdir\" && pwd\`
+ test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+ if test "$fast_install" = yes; then
+ $ECHO "\
+ program=lt-'$outputname'$exeext
+ progdir=\"\$thisdir/$objdir\"
+
+ if test ! -f \"\$progdir/\$program\" ||
+ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+ test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+ file=\"\$\$-\$program\"
+
+ if test ! -d \"\$progdir\"; then
+ $MKDIR \"\$progdir\"
+ else
+ $RM \"\$progdir/\$file\"
+ fi"
+
+ $ECHO "\
+
+ # relink executable if necessary
+ if test -n \"\$relink_command\"; then
+ if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+ else
+ $ECHO \"\$relink_command_output\" >&2
+ $RM \"\$progdir/\$file\"
+ exit 1
+ fi
+ fi
+
+ $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+ { $RM \"\$progdir/\$program\";
+ $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+ $RM \"\$progdir/\$file\"
+ fi"
+ else
+ $ECHO "\
+ program='$outputname'
+ progdir=\"\$thisdir/$objdir\"
+"
+ fi
+
+ $ECHO "\
+
+ if test -f \"\$progdir/\$program\"; then"
+
+ # fixup the dll searchpath if we need to.
+ #
+ # Fix the DLL searchpath if we need to. Do this before prepending
+ # to shlibpath, because on Windows, both are PATH and uninstalled
+ # libraries must come first.
+ if test -n "$dllsearchpath"; then
+ $ECHO "\
+ # Add the dll search path components to the executable PATH
+ PATH=$dllsearchpath:\$PATH
+"
+ fi
+
+ # Export our shlibpath_var if we have one.
+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ $ECHO "\
+ # Add our own library path to $shlibpath_var
+ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+ # Some systems cannot cope with colon-terminated $shlibpath_var
+ # The second colon is a workaround for a bug in BeOS R4 sed
+ $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
+
+ export $shlibpath_var
+"
+ fi
+
+ $ECHO "\
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ # Run the actual program with our arguments.
+ func_exec_program \${1+\"\$@\"}
+ fi
+ else
+ # The program doesn't exist.
+ \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
+ \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
+ \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
+ exit 1
+ fi
+fi\
+"
+}
+
+
+# func_emit_cwrapperexe_src
+# emit the source code for a wrapper executable on stdout
+# Must ONLY be called from within func_mode_link because
+# it depends on a number of variable set therein.
+func_emit_cwrapperexe_src ()
+{
+ cat <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+ Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+
+ The $output program cannot be directly executed until all the libtool
+ libraries that it depends on are installed.
+
+ This wrapper executable should never be moved out of the build directory.
+ If it is, it will not operate correctly.
+*/
+EOF
+ cat <<"EOF"
+#ifdef _MSC_VER
+# define _CRT_SECURE_NO_DEPRECATE 1
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef _MSC_VER
+# include <direct.h>
+# include <process.h>
+# include <io.h>
+#else
+# include <unistd.h>
+# include <stdint.h>
+# ifdef __CYGWIN__
+# include <io.h>
+# endif
+#endif
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+/* declarations of non-ANSI functions */
+#if defined(__MINGW32__)
+# ifdef __STRICT_ANSI__
+int _putenv (const char *);
+# endif
+#elif defined(__CYGWIN__)
+# ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+int putenv (char *);
+int setenv (const char *, const char *, int);
+# endif
+/* #elif defined (other platforms) ... */
+#endif
+
+/* portability defines, excluding path handling macros */
+#if defined(_MSC_VER)
+# define setmode _setmode
+# define stat _stat
+# define chmod _chmod
+# define getcwd _getcwd
+# define putenv _putenv
+# define S_IXUSR _S_IEXEC
+# ifndef _INTPTR_T_DEFINED
+# define _INTPTR_T_DEFINED
+# define intptr_t int
+# endif
+#elif defined(__MINGW32__)
+# define setmode _setmode
+# define stat _stat
+# define chmod _chmod
+# define getcwd _getcwd
+# define putenv _putenv
+#elif defined(__CYGWIN__)
+# define HAVE_SETENV
+# define FOPEN_WB "wb"
+/* #elif defined (other platforms) ... */
+#endif
+
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef S_IXOTH
+# define S_IXOTH 0
+#endif
+#ifndef S_IXGRP
+# define S_IXGRP 0
+#endif
+
+/* path handling portability macros */
+#ifndef DIR_SEPARATOR
+# define DIR_SEPARATOR '/'
+# define PATH_SEPARATOR ':'
+#endif
+
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+ defined (__OS2__)
+# define HAVE_DOS_BASED_FILE_SYSTEM
+# define FOPEN_WB "wb"
+# ifndef DIR_SEPARATOR_2
+# define DIR_SEPARATOR_2 '\\'
+# endif
+# ifndef PATH_SEPARATOR_2
+# define PATH_SEPARATOR_2 ';'
+# endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#ifndef PATH_SEPARATOR_2
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
+#else /* PATH_SEPARATOR_2 */
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
+#endif /* PATH_SEPARATOR_2 */
+
+#ifndef FOPEN_WB
+# define FOPEN_WB "w"
+#endif
+#ifndef _O_BINARY
+# define _O_BINARY 0
+#endif
+
+#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+ if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
+
+#if defined(LT_DEBUGWRAPPER)
+static int lt_debug = 1;
+#else
+static int lt_debug = 0;
+#endif
+
+const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
+
+void *xmalloc (size_t num);
+char *xstrdup (const char *string);
+const char *base_name (const char *name);
+char *find_executable (const char *wrapper);
+char *chase_symlinks (const char *pathspec);
+int make_executable (const char *path);
+int check_executable (const char *path);
+char *strendzap (char *str, const char *pat);
+void lt_debugprintf (const char *file, int line, const char *fmt, ...);
+void lt_fatal (const char *file, int line, const char *message, ...);
+static const char *nonnull (const char *s);
+static const char *nonempty (const char *s);
+void lt_setenv (const char *name, const char *value);
+char *lt_extend_str (const char *orig_value, const char *add, int to_end);
+void lt_update_exe_path (const char *name, const char *value);
+void lt_update_lib_path (const char *name, const char *value);
+char **prepare_spawn (char **argv);
+void lt_dump_script (FILE *f);
+EOF
+
+ cat <<EOF
+volatile const char * MAGIC_EXE = "$magic_exe";
+const char * LIB_PATH_VARNAME = "$shlibpath_var";
+EOF
+
+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ func_to_host_path "$temp_rpath"
+ cat <<EOF
+const char * LIB_PATH_VALUE = "$func_to_host_path_result";
+EOF
+ else
+ cat <<"EOF"
+const char * LIB_PATH_VALUE = "";
+EOF
+ fi
+
+ if test -n "$dllsearchpath"; then
+ func_to_host_path "$dllsearchpath:"
+ cat <<EOF
+const char * EXE_PATH_VARNAME = "PATH";
+const char * EXE_PATH_VALUE = "$func_to_host_path_result";
+EOF
+ else
+ cat <<"EOF"
+const char * EXE_PATH_VARNAME = "";
+const char * EXE_PATH_VALUE = "";
+EOF
+ fi
+
+ if test "$fast_install" = yes; then
+ cat <<EOF
+const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
+EOF
+ else
+ cat <<EOF
+const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
+EOF
+ fi
+
+
+ cat <<"EOF"
+
+#define LTWRAPPER_OPTION_PREFIX "--lt-"
+
+static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
+static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
+static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
+
+int
+main (int argc, char *argv[])
+{
+ char **newargz;
+ int newargc;
+ char *tmp_pathspec;
+ char *actual_cwrapper_path;
+ char *actual_cwrapper_name;
+ char *target_name;
+ char *lt_argv_zero;
+ intptr_t rval = 127;
+
+ int i;
+
+ program_name = (char *) xstrdup (base_name (argv[0]));
+ newargz = XMALLOC (char *, argc + 1);
+
+ /* very simple arg parsing; don't want to rely on getopt
+ * also, copy all non cwrapper options to newargz, except
+ * argz[0], which is handled differently
+ */
+ newargc=0;
+ for (i = 1; i < argc; i++)
+ {
+ if (strcmp (argv[i], dumpscript_opt) == 0)
+ {
+EOF
+ case "$host" in
+ *mingw* | *cygwin* )
+ # make stdout use "unix" line endings
+ echo " setmode(1,_O_BINARY);"
+ ;;
+ esac
+
+ cat <<"EOF"
+ lt_dump_script (stdout);
+ return 0;
+ }
+ if (strcmp (argv[i], debug_opt) == 0)
+ {
+ lt_debug = 1;
+ continue;
+ }
+ if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
+ {
+ /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+ namespace, but it is not one of the ones we know about and
+ have already dealt with, above (inluding dump-script), then
+ report an error. Otherwise, targets might begin to believe
+ they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+ namespace. The first time any user complains about this, we'll
+ need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+ or a configure.ac-settable value.
+ */
+ lt_fatal (__FILE__, __LINE__,
+ "unrecognized %s option: '%s'",
+ ltwrapper_option_prefix, argv[i]);
+ }
+ /* otherwise ... */
+ newargz[++newargc] = xstrdup (argv[i]);
+ }
+ newargz[++newargc] = NULL;
+
+EOF
+ cat <<EOF
+ /* The GNU banner must be the first non-error debug message */
+ lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
+EOF
+ cat <<"EOF"
+ lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
+ lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
+
+ tmp_pathspec = find_executable (argv[0]);
+ if (tmp_pathspec == NULL)
+ lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) found exe (before symlink chase) at: %s\n",
+ tmp_pathspec);
+
+ actual_cwrapper_path = chase_symlinks (tmp_pathspec);
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) found exe (after symlink chase) at: %s\n",
+ actual_cwrapper_path);
+ XFREE (tmp_pathspec);
+
+ actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
+ strendzap (actual_cwrapper_path, actual_cwrapper_name);
+
+ /* wrapper name transforms */
+ strendzap (actual_cwrapper_name, ".exe");
+ tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
+ XFREE (actual_cwrapper_name);
+ actual_cwrapper_name = tmp_pathspec;
+ tmp_pathspec = 0;
+
+ /* target_name transforms -- use actual target program name; might have lt- prefix */
+ target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
+ strendzap (target_name, ".exe");
+ tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
+ XFREE (target_name);
+ target_name = tmp_pathspec;
+ tmp_pathspec = 0;
+
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) libtool target name: %s\n",
+ target_name);
+EOF
+
+ cat <<EOF
+ newargz[0] =
+ XMALLOC (char, (strlen (actual_cwrapper_path) +
+ strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
+ strcpy (newargz[0], actual_cwrapper_path);
+ strcat (newargz[0], "$objdir");
+ strcat (newargz[0], "/");
+EOF
+
+ cat <<"EOF"
+ /* stop here, and copy so we don't have to do this twice */
+ tmp_pathspec = xstrdup (newargz[0]);
+
+ /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
+ strcat (newargz[0], actual_cwrapper_name);
+
+ /* DO want the lt- prefix here if it exists, so use target_name */
+ lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
+ XFREE (tmp_pathspec);
+ tmp_pathspec = NULL;
+EOF
+
+ case $host_os in
+ mingw*)
+ cat <<"EOF"
+ {
+ char* p;
+ while ((p = strchr (newargz[0], '\\')) != NULL)
+ {
+ *p = '/';
+ }
+ while ((p = strchr (lt_argv_zero, '\\')) != NULL)
+ {
+ *p = '/';
+ }
+ }
+EOF
+ ;;
+ esac
+
+ cat <<"EOF"
+ XFREE (target_name);
+ XFREE (actual_cwrapper_path);
+ XFREE (actual_cwrapper_name);
+
+ lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
+ lt_setenv ("DUALCASE", "1"); /* for MSK sh */
+ /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
+ be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
+ because on Windows, both *_VARNAMEs are PATH but uninstalled
+ libraries must come first. */
+ lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+ lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+
+ lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
+ nonnull (lt_argv_zero));
+ for (i = 0; i < newargc; i++)
+ {
+ lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
+ i, nonnull (newargz[i]));
+ }
+
+EOF
+
+ case $host_os in
+ mingw*)
+ cat <<"EOF"
+ /* execv doesn't actually work on mingw as expected on unix */
+ newargz = prepare_spawn (newargz);
+ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
+ if (rval == -1)
+ {
+ /* failed to start process */
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) failed to launch target \"%s\": %s\n",
+ lt_argv_zero, nonnull (strerror (errno)));
+ return 127;
+ }
+ return rval;
+EOF
+ ;;
+ *)
+ cat <<"EOF"
+ execv (lt_argv_zero, newargz);
+ return rval; /* =127, but avoids unused variable warning */
+EOF
+ ;;
+ esac
+
+ cat <<"EOF"
+}
+
+void *
+xmalloc (size_t num)
+{
+ void *p = (void *) malloc (num);
+ if (!p)
+ lt_fatal (__FILE__, __LINE__, "memory exhausted");
+
+ return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+ return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
+ string) : NULL;
+}
+
+const char *
+base_name (const char *name)
+{
+ const char *base;
+
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+ /* Skip over the disk name in MSDOS pathnames. */
+ if (isalpha ((unsigned char) name[0]) && name[1] == ':')
+ name += 2;
+#endif
+
+ for (base = name; *name; name++)
+ if (IS_DIR_SEPARATOR (*name))
+ base = name + 1;
+ return base;
+}
+
+int
+check_executable (const char *path)
+{
+ struct stat st;
+
+ lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
+ nonempty (path));
+ if ((!path) || (!*path))
+ return 0;
+
+ if ((stat (path, &st) >= 0)
+ && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+ return 1;
+ else
+ return 0;
+}
+
+int
+make_executable (const char *path)
+{
+ int rval = 0;
+ struct stat st;
+
+ lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
+ nonempty (path));
+ if ((!path) || (!*path))
+ return 0;
+
+ if (stat (path, &st) >= 0)
+ {
+ rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
+ }
+ return rval;
+}
+
+/* Searches for the full path of the wrapper. Returns
+ newly allocated full path name if found, NULL otherwise
+ Does not chase symlinks, even on platforms that support them.
+*/
+char *
+find_executable (const char *wrapper)
+{
+ int has_slash = 0;
+ const char *p;
+ const char *p_next;
+ /* static buffer for getcwd */
+ char tmp[LT_PATHMAX + 1];
+ int tmp_len;
+ char *concat_name;
+
+ lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
+ nonempty (wrapper));
+
+ if ((wrapper == NULL) || (*wrapper == '\0'))
+ return NULL;
+
+ /* Absolute path? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+ if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
+ {
+ concat_name = xstrdup (wrapper);
+ if (check_executable (concat_name))
+ return concat_name;
+ XFREE (concat_name);
+ }
+ else
+ {
+#endif
+ if (IS_DIR_SEPARATOR (wrapper[0]))
+ {
+ concat_name = xstrdup (wrapper);
+ if (check_executable (concat_name))
+ return concat_name;
+ XFREE (concat_name);
+ }
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+ }
+#endif
+
+ for (p = wrapper; *p; p++)
+ if (*p == '/')
+ {
+ has_slash = 1;
+ break;
+ }
+ if (!has_slash)
+ {
+ /* no slashes; search PATH */
+ const char *path = getenv ("PATH");
+ if (path != NULL)
+ {
+ for (p = path; *p; p = p_next)
+ {
+ const char *q;
+ size_t p_len;
+ for (q = p; *q; q++)
+ if (IS_PATH_SEPARATOR (*q))
+ break;
+ p_len = q - p;
+ p_next = (*q == '\0' ? q : q + 1);
+ if (p_len == 0)
+ {
+ /* empty path: current directory */
+ if (getcwd (tmp, LT_PATHMAX) == NULL)
+ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+ nonnull (strerror (errno)));
+ tmp_len = strlen (tmp);
+ concat_name =
+ XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+ memcpy (concat_name, tmp, tmp_len);
+ concat_name[tmp_len] = '/';
+ strcpy (concat_name + tmp_len + 1, wrapper);
+ }
+ else
+ {
+ concat_name =
+ XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
+ memcpy (concat_name, p, p_len);
+ concat_name[p_len] = '/';
+ strcpy (concat_name + p_len + 1, wrapper);
+ }
+ if (check_executable (concat_name))
+ return concat_name;
+ XFREE (concat_name);
+ }
+ }
+ /* not found in PATH; assume curdir */
+ }
+ /* Relative path | not found in path: prepend cwd */
+ if (getcwd (tmp, LT_PATHMAX) == NULL)
+ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+ nonnull (strerror (errno)));
+ tmp_len = strlen (tmp);
+ concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+ memcpy (concat_name, tmp, tmp_len);
+ concat_name[tmp_len] = '/';
+ strcpy (concat_name + tmp_len + 1, wrapper);
+
+ if (check_executable (concat_name))
+ return concat_name;
+ XFREE (concat_name);
+ return NULL;
+}
+
+char *
+chase_symlinks (const char *pathspec)
+{
+#ifndef S_ISLNK
+ return xstrdup (pathspec);
+#else
+ char buf[LT_PATHMAX];
+ struct stat s;
+ char *tmp_pathspec = xstrdup (pathspec);
+ char *p;
+ int has_symlinks = 0;
+ while (strlen (tmp_pathspec) && !has_symlinks)
+ {
+ lt_debugprintf (__FILE__, __LINE__,
+ "checking path component for symlinks: %s\n",
+ tmp_pathspec);
+ if (lstat (tmp_pathspec, &s) == 0)
+ {
+ if (S_ISLNK (s.st_mode) != 0)
+ {
+ has_symlinks = 1;
+ break;
+ }
+
+ /* search backwards for last DIR_SEPARATOR */
+ p = tmp_pathspec + strlen (tmp_pathspec) - 1;
+ while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+ p--;
+ if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+ {
+ /* no more DIR_SEPARATORS left */
+ break;
+ }
+ *p = '\0';
+ }
+ else
+ {
+ lt_fatal (__FILE__, __LINE__,
+ "error accessing file \"%s\": %s",
+ tmp_pathspec, nonnull (strerror (errno)));
+ }
+ }
+ XFREE (tmp_pathspec);
+
+ if (!has_symlinks)
+ {
+ return xstrdup (pathspec);
+ }
+
+ tmp_pathspec = realpath (pathspec, buf);
+ if (tmp_pathspec == 0)
+ {
+ lt_fatal (__FILE__, __LINE__,
+ "could not follow symlinks for %s", pathspec);
+ }
+ return xstrdup (tmp_pathspec);
+#endif
+}
+
+char *
+strendzap (char *str, const char *pat)
+{
+ size_t len, patlen;
+
+ assert (str != NULL);
+ assert (pat != NULL);
+
+ len = strlen (str);
+ patlen = strlen (pat);
+
+ if (patlen <= len)
+ {
+ str += len - patlen;
+ if (strcmp (str, pat) == 0)
+ *str = '\0';
+ }
+ return str;
+}
+
+void
+lt_debugprintf (const char *file, int line, const char *fmt, ...)
+{
+ va_list args;
+ if (lt_debug)
+ {
+ (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
+ va_start (args, fmt);
+ (void) vfprintf (stderr, fmt, args);
+ va_end (args);
+ }
+}
+
+static void
+lt_error_core (int exit_status, const char *file,
+ int line, const char *mode,
+ const char *message, va_list ap)
+{
+ fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
+ vfprintf (stderr, message, ap);
+ fprintf (stderr, ".\n");
+
+ if (exit_status >= 0)
+ exit (exit_status);
+}
+
+void
+lt_fatal (const char *file, int line, const char *message, ...)
+{
+ va_list ap;
+ va_start (ap, message);
+ lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
+ va_end (ap);
+}
+
+static const char *
+nonnull (const char *s)
+{
+ return s ? s : "(null)";
+}
+
+static const char *
+nonempty (const char *s)
+{
+ return (s && !*s) ? "(empty)" : nonnull (s);
+}
+
+void
+lt_setenv (const char *name, const char *value)
+{
+ lt_debugprintf (__FILE__, __LINE__,
+ "(lt_setenv) setting '%s' to '%s'\n",
+ nonnull (name), nonnull (value));
+ {
+#ifdef HAVE_SETENV
+ /* always make a copy, for consistency with !HAVE_SETENV */
+ char *str = xstrdup (value);
+ setenv (name, str, 1);
+#else
+ int len = strlen (name) + 1 + strlen (value) + 1;
+ char *str = XMALLOC (char, len);
+ sprintf (str, "%s=%s", name, value);
+ if (putenv (str) != EXIT_SUCCESS)
+ {
+ XFREE (str);
+ }
+#endif
+ }
+}
+
+char *
+lt_extend_str (const char *orig_value, const char *add, int to_end)
+{
+ char *new_value;
+ if (orig_value && *orig_value)
+ {
+ int orig_value_len = strlen (orig_value);
+ int add_len = strlen (add);
+ new_value = XMALLOC (char, add_len + orig_value_len + 1);
+ if (to_end)
+ {
+ strcpy (new_value, orig_value);
+ strcpy (new_value + orig_value_len, add);
+ }
+ else
+ {
+ strcpy (new_value, add);
+ strcpy (new_value + add_len, orig_value);
+ }
+ }
+ else
+ {
+ new_value = xstrdup (add);
+ }
+ return new_value;
+}
+
+void
+lt_update_exe_path (const char *name, const char *value)
+{
+ lt_debugprintf (__FILE__, __LINE__,
+ "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+ nonnull (name), nonnull (value));
+
+ if (name && *name && value && *value)
+ {
+ char *new_value = lt_extend_str (getenv (name), value, 0);
+ /* some systems can't cope with a ':'-terminated path #' */
+ int len = strlen (new_value);
+ while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
+ {
+ new_value[len-1] = '\0';
+ }
+ lt_setenv (name, new_value);
+ XFREE (new_value);
+ }
+}
+
+void
+lt_update_lib_path (const char *name, const char *value)
+{
+ lt_debugprintf (__FILE__, __LINE__,
+ "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+ nonnull (name), nonnull (value));
+
+ if (name && *name && value && *value)
+ {
+ char *new_value = lt_extend_str (getenv (name), value, 0);
+ lt_setenv (name, new_value);
+ XFREE (new_value);
+ }
+}
+
+EOF
+ case $host_os in
+ mingw*)
+ cat <<"EOF"
+
+/* Prepares an argument vector before calling spawn().
+ Note that spawn() does not by itself call the command interpreter
+ (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
+ ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+ GetVersionEx(&v);
+ v.dwPlatformId == VER_PLATFORM_WIN32_NT;
+ }) ? "cmd.exe" : "command.com").
+ Instead it simply concatenates the arguments, separated by ' ', and calls
+ CreateProcess(). We must quote the arguments since Win32 CreateProcess()
+ interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
+ special way:
+ - Space and tab are interpreted as delimiters. They are not treated as
+ delimiters if they are surrounded by double quotes: "...".
+ - Unescaped double quotes are removed from the input. Their only effect is
+ that within double quotes, space and tab are treated like normal
+ characters.
+ - Backslashes not followed by double quotes are not special.
+ - But 2*n+1 backslashes followed by a double quote become
+ n backslashes followed by a double quote (n >= 0):
+ \" -> "
+ \\\" -> \"
+ \\\\\" -> \\"
+ */
+#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+char **
+prepare_spawn (char **argv)
+{
+ size_t argc;
+ char **new_argv;
+ size_t i;
+
+ /* Count number of arguments. */
+ for (argc = 0; argv[argc] != NULL; argc++)
+ ;
+
+ /* Allocate new argument vector. */
+ new_argv = XMALLOC (char *, argc + 1);
+
+ /* Put quoted arguments into the new argument vector. */
+ for (i = 0; i < argc; i++)
+ {
+ const char *string = argv[i];
+
+ if (string[0] == '\0')
+ new_argv[i] = xstrdup ("\"\"");
+ else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
+ {
+ int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
+ size_t length;
+ unsigned int backslashes;
+ const char *s;
+ char *quoted_string;
+ char *p;
+
+ length = 0;
+ backslashes = 0;
+ if (quote_around)
+ length++;
+ for (s = string; *s != '\0'; s++)
+ {
+ char c = *s;
+ if (c == '"')
+ length += backslashes + 1;
+ length++;
+ if (c == '\\')
+ backslashes++;
+ else
+ backslashes = 0;
+ }
+ if (quote_around)
+ length += backslashes + 1;
+
+ quoted_string = XMALLOC (char, length + 1);
+
+ p = quoted_string;
+ backslashes = 0;
+ if (quote_around)
+ *p++ = '"';
+ for (s = string; *s != '\0'; s++)
+ {
+ char c = *s;
+ if (c == '"')
+ {
+ unsigned int j;
+ for (j = backslashes + 1; j > 0; j--)
+ *p++ = '\\';
+ }
+ *p++ = c;
+ if (c == '\\')
+ backslashes++;
+ else
+ backslashes = 0;
+ }
+ if (quote_around)
+ {
+ unsigned int j;
+ for (j = backslashes; j > 0; j--)
+ *p++ = '\\';
+ *p++ = '"';
+ }
+ *p = '\0';
+
+ new_argv[i] = quoted_string;
+ }
+ else
+ new_argv[i] = (char *) string;
+ }
+ new_argv[argc] = NULL;
+
+ return new_argv;
+}
+EOF
+ ;;
+ esac
+
+ cat <<"EOF"
+void lt_dump_script (FILE* f)
+{
+EOF
+ func_emit_wrapper yes |
+ $SED -e 's/\([\\"]\)/\\\1/g' \
+ -e 's/^/ fputs ("/' -e 's/$/\\n", f);/'
+
+ cat <<"EOF"
+}
+EOF
+}
+# end: func_emit_cwrapperexe_src
+
+# func_win32_import_lib_p ARG
+# True if ARG is an import lib, as indicated by $file_magic_cmd
+func_win32_import_lib_p ()
+{
+ $opt_debug
+ case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
+ *import*) : ;;
+ *) false ;;
+ esac
+}
+
+# func_mode_link arg...
+func_mode_link ()
+{
+ $opt_debug
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+ # It is impossible to link a dll without this setting, and
+ # we shouldn't force the makefile maintainer to figure out
+ # which system we are compiling for in order to pass an extra
+ # flag for every libtool invocation.
+ # allow_undefined=no
+
+ # FIXME: Unfortunately, there are problems with the above when trying
+ # to make a dll which has undefined symbols, in which case not
+ # even a static library is built. For now, we need to specify
+ # -no-undefined on the libtool link line when we can be certain
+ # that all symbols are satisfied, otherwise we get a static library.
+ allow_undefined=yes
+ ;;
+ *)
+ allow_undefined=yes
+ ;;
+ esac
+ libtool_args=$nonopt
+ base_compile="$nonopt $@"
+ compile_command=$nonopt
+ finalize_command=$nonopt
+
+ compile_rpath=
+ finalize_rpath=
+ compile_shlibpath=
+ finalize_shlibpath=
+ convenience=
+ old_convenience=
+ deplibs=
+ old_deplibs=
+ compiler_flags=
+ linker_flags=
+ dllsearchpath=
+ lib_search_path=`pwd`
+ inst_prefix_dir=
+ new_inherited_linker_flags=
+
+ avoid_version=no
+ bindir=
+ dlfiles=
+ dlprefiles=
+ dlself=no
+ export_dynamic=no
+ export_symbols=
+ export_symbols_regex=
+ generated=
+ libobjs=
+ ltlibs=
+ module=no
+ no_install=no
+ objs=
+ non_pic_objects=
+ precious_files_regex=
+ prefer_static_libs=no
+ preload=no
+ prev=
+ prevarg=
+ release=
+ rpath=
+ xrpath=
+ perm_rpath=
+ temp_rpath=
+ thread_safe=no
+ vinfo=
+ vinfo_number=no
+ weak_libs=
+ single_module="${wl}-single_module"
+ func_infer_tag $base_compile
+
+ # We need to know -static, to get the right output filenames.
+ for arg
+ do
+ case $arg in
+ -shared)
+ test "$build_libtool_libs" != yes && \
+ func_fatal_configuration "can not build a shared library"
+ build_old_libs=no
+ break
+ ;;
+ -all-static | -static | -static-libtool-libs)
+ case $arg in
+ -all-static)
+ if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+ func_warning "complete static linking is impossible in this configuration"
+ fi
+ if test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ prefer_static_libs=yes
+ ;;
+ -static)
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ prefer_static_libs=built
+ ;;
+ -static-libtool-libs)
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ prefer_static_libs=yes
+ ;;
+ esac
+ build_libtool_libs=no
+ build_old_libs=yes
+ break
+ ;;
+ esac
+ done
+
+ # See if our shared archives depend on static archives.
+ test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+ # Go through the arguments, transforming them on the way.
+ while test "$#" -gt 0; do
+ arg="$1"
+ shift
+ func_quote_for_eval "$arg"
+ qarg=$func_quote_for_eval_unquoted_result
+ func_append libtool_args " $func_quote_for_eval_result"
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+ case $prev in
+ output)
+ func_append compile_command " @OUTPUT@"
+ func_append finalize_command " @OUTPUT@"
+ ;;
+ esac
+
+ case $prev in
+ bindir)
+ bindir="$arg"
+ prev=
+ continue
+ ;;
+ dlfiles|dlprefiles)
+ if test "$preload" = no; then
+ # Add the symbol object into the linking commands.
+ func_append compile_command " @SYMFILE@"
+ func_append finalize_command " @SYMFILE@"
+ preload=yes
+ fi
+ case $arg in
+ *.la | *.lo) ;; # We handle these cases below.
+ force)
+ if test "$dlself" = no; then
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ self)
+ if test "$prev" = dlprefiles; then
+ dlself=yes
+ elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+ dlself=yes
+ else
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ *)
+ if test "$prev" = dlfiles; then
+ func_append dlfiles " $arg"
+ else
+ func_append dlprefiles " $arg"
+ fi
+ prev=
+ continue
+ ;;
+ esac
+ ;;
+ expsyms)
+ export_symbols="$arg"
+ test -f "$arg" \
+ || func_fatal_error "symbol file \`$arg' does not exist"
+ prev=
+ continue
+ ;;
+ expsyms_regex)
+ export_symbols_regex="$arg"
+ prev=
+ continue
+ ;;
+ framework)
+ case $host in
+ *-*-darwin*)
+ case "$deplibs " in
+ *" $qarg.ltframework "*) ;;
+ *) func_append deplibs " $qarg.ltframework" # this is fixed later
+ ;;
+ esac
+ ;;
+ esac
+ prev=
+ continue
+ ;;
+ inst_prefix)
+ inst_prefix_dir="$arg"
+ prev=
+ continue
+ ;;
+ objectlist)
+ if test -f "$arg"; then
+ save_arg=$arg
+ moreargs=
+ for fil in `cat "$save_arg"`
+ do
+# func_append moreargs " $fil"
+ arg=$fil
+ # A libtool-controlled object.
+
+ # Check to see that this really is a libtool object.
+ if func_lalib_unsafe_p "$arg"; then
+ pic_object=
+ non_pic_object=
+
+ # Read the .lo file
+ func_source "$arg"
+
+ if test -z "$pic_object" ||
+ test -z "$non_pic_object" ||
+ test "$pic_object" = none &&
+ test "$non_pic_object" = none; then
+ func_fatal_error "cannot find name of object for \`$arg'"
+ fi
+
+ # Extract subdirectory from the argument.
+ func_dirname "$arg" "/" ""
+ xdir="$func_dirname_result"
+
+ if test "$pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ pic_object="$xdir$pic_object"
+
+ if test "$prev" = dlfiles; then
+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+ func_append dlfiles " $pic_object"
+ prev=
+ continue
+ else
+ # If libtool objects are unsupported, then we need to preload.
+ prev=dlprefiles
+ fi
+ fi
+
+ # CHECK ME: I think I busted this. -Ossama
+ if test "$prev" = dlprefiles; then
+ # Preload the old-style object.
+ func_append dlprefiles " $pic_object"
+ prev=
+ fi
+
+ # A PIC object.
+ func_append libobjs " $pic_object"
+ arg="$pic_object"
+ fi
+
+ # Non-PIC object.
+ if test "$non_pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ non_pic_object="$xdir$non_pic_object"
+
+ # A standard non-PIC object
+ func_append non_pic_objects " $non_pic_object"
+ if test -z "$pic_object" || test "$pic_object" = none ; then
+ arg="$non_pic_object"
+ fi
+ else
+ # If the PIC object exists, use it instead.
+ # $xdir was prepended to $pic_object above.
+ non_pic_object="$pic_object"
+ func_append non_pic_objects " $non_pic_object"
+ fi
+ else
+ # Only an error if not doing a dry-run.
+ if $opt_dry_run; then
+ # Extract subdirectory from the argument.
+ func_dirname "$arg" "/" ""
+ xdir="$func_dirname_result"
+
+ func_lo2o "$arg"
+ pic_object=$xdir$objdir/$func_lo2o_result
+ non_pic_object=$xdir$func_lo2o_result
+ func_append libobjs " $pic_object"
+ func_append non_pic_objects " $non_pic_object"
+ else
+ func_fatal_error "\`$arg' is not a valid libtool object"
+ fi
+ fi
+ done
+ else
+ func_fatal_error "link input file \`$arg' does not exist"
+ fi
+ arg=$save_arg
+ prev=
+ continue
+ ;;
+ precious_regex)
+ precious_files_regex="$arg"
+ prev=
+ continue
+ ;;
+ release)
+ release="-$arg"
+ prev=
+ continue
+ ;;
+ rpath | xrpath)
+ # We need an absolute path.
+ case $arg in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ func_fatal_error "only absolute run-paths are allowed"
+ ;;
+ esac
+ if test "$prev" = rpath; then
+ case "$rpath " in
+ *" $arg "*) ;;
+ *) func_append rpath " $arg" ;;
+ esac
+ else
+ case "$xrpath " in
+ *" $arg "*) ;;
+ *) func_append xrpath " $arg" ;;
+ esac
+ fi
+ prev=
+ continue
+ ;;
+ shrext)
+ shrext_cmds="$arg"
+ prev=
+ continue
+ ;;
+ weak)
+ func_append weak_libs " $arg"
+ prev=
+ continue
+ ;;
+ xcclinker)
+ func_append linker_flags " $qarg"
+ func_append compiler_flags " $qarg"
+ prev=
+ func_append compile_command " $qarg"
+ func_append finalize_command " $qarg"
+ continue
+ ;;
+ xcompiler)
+ func_append compiler_flags " $qarg"
+ prev=
+ func_append compile_command " $qarg"
+ func_append finalize_command " $qarg"
+ continue
+ ;;
+ xlinker)
+ func_append linker_flags " $qarg"
+ func_append compiler_flags " $wl$qarg"
+ prev=
+ func_append compile_command " $wl$qarg"
+ func_append finalize_command " $wl$qarg"
+ continue
+ ;;
+ *)
+ eval "$prev=\"\$arg\""
+ prev=
+ continue
+ ;;
+ esac
+ fi # test -n "$prev"
+
+ prevarg="$arg"
+
+ case $arg in
+ -all-static)
+ if test -n "$link_static_flag"; then
+ # See comment for -static flag below, for more details.
+ func_append compile_command " $link_static_flag"
+ func_append finalize_command " $link_static_flag"
+ fi
+ continue
+ ;;
+
+ -allow-undefined)
+ # FIXME: remove this flag sometime in the future.
+ func_fatal_error "\`-allow-undefined' must not be used because it is the default"
+ ;;
+
+ -avoid-version)
+ avoid_version=yes
+ continue
+ ;;
+
+ -bindir)
+ prev=bindir
+ continue
+ ;;
+
+ -dlopen)
+ prev=dlfiles
+ continue
+ ;;
+
+ -dlpreopen)
+ prev=dlprefiles
+ continue
+ ;;
+
+ -export-dynamic)
+ export_dynamic=yes
+ continue
+ ;;
+
+ -export-symbols | -export-symbols-regex)
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+ func_fatal_error "more than one -exported-symbols argument is not allowed"
+ fi
+ if test "X$arg" = "X-export-symbols"; then
+ prev=expsyms
+ else
+ prev=expsyms_regex
+ fi
+ continue
+ ;;
+
+ -framework)
+ prev=framework
+ continue
+ ;;
+
+ -inst-prefix-dir)
+ prev=inst_prefix
+ continue
+ ;;
+
+ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+ # so, if we see these flags be careful not to treat them like -L
+ -L[A-Z][A-Z]*:*)
+ case $with_gcc/$host in
+ no/*-*-irix* | /*-*-irix*)
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ ;;
+ esac
+ continue
+ ;;
+
+ -L*)
+ func_stripname "-L" '' "$arg"
+ if test -z "$func_stripname_result"; then
+ if test "$#" -gt 0; then
+ func_fatal_error "require no space between \`-L' and \`$1'"
+ else
+ func_fatal_error "need path for \`-L' option"
+ fi
+ fi
+ func_resolve_sysroot "$func_stripname_result"
+ dir=$func_resolve_sysroot_result
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ test -z "$absdir" && \
+ func_fatal_error "cannot determine absolute directory name of \`$dir'"
+ dir="$absdir"
+ ;;
+ esac
+ case "$deplibs " in
+ *" -L$dir "* | *" $arg "*)
+ # Will only happen for absolute or sysroot arguments
+ ;;
+ *)
+ # Preserve sysroot, but never include relative directories
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
+ *) func_append deplibs " -L$dir" ;;
+ esac
+ func_append lib_search_path " $dir"
+ ;;
+ esac
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+ testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
+ case :$dllsearchpath: in
+ *":$dir:"*) ;;
+ ::) dllsearchpath=$dir;;
+ *) func_append dllsearchpath ":$dir";;
+ esac
+ case :$dllsearchpath: in
+ *":$testbindir:"*) ;;
+ ::) dllsearchpath=$testbindir;;
+ *) func_append dllsearchpath ":$testbindir";;
+ esac
+ ;;
+ esac
+ continue
+ ;;
+
+ -l*)
+ if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
+ # These systems don't actually have a C or math library (as such)
+ continue
+ ;;
+ *-*-os2*)
+ # These systems don't actually have a C library (as such)
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc due to us having libc/libc_r.
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C and math libraries are in the System framework
+ func_append deplibs " System.ltframework"
+ continue
+ ;;
+ *-*-sco3.2v5* | *-*-sco5v6*)
+ # Causes problems with __ctype
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+ # Compiler inserts libc in the correct place for threads to work
+ test "X$arg" = "X-lc" && continue
+ ;;
+ esac
+ elif test "X$arg" = "X-lc_r"; then
+ case $host in
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc_r directly, use -pthread flag.
+ continue
+ ;;
+ esac
+ fi
+ func_append deplibs " $arg"
+ continue
+ ;;
+
+ -module)
+ module=yes
+ continue
+ ;;
+
+ # Tru64 UNIX uses -model [arg] to determine the layout of C++
+ # classes, name mangling, and exception handling.
+ # Darwin uses the -arch flag to determine output architecture.
+ -model|-arch|-isysroot|--sysroot)
+ func_append compiler_flags " $arg"
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ prev=xcompiler
+ continue
+ ;;
+
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+ func_append compiler_flags " $arg"
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ case "$new_inherited_linker_flags " in
+ *" $arg "*) ;;
+ * ) func_append new_inherited_linker_flags " $arg" ;;
+ esac
+ continue
+ ;;
+
+ -multi_module)
+ single_module="${wl}-multi_module"
+ continue
+ ;;
+
+ -no-fast-install)
+ fast_install=no
+ continue
+ ;;
+
+ -no-install)
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
+ # The PATH hackery in wrapper scripts is required on Windows
+ # and Darwin in order for the loader to find any dlls it needs.
+ func_warning "\`-no-install' is ignored for $host"
+ func_warning "assuming \`-no-fast-install' instead"
+ fast_install=no
+ ;;
+ *) no_install=yes ;;
+ esac
+ continue
+ ;;
+
+ -no-undefined)
+ allow_undefined=no
+ continue
+ ;;
+
+ -objectlist)
+ prev=objectlist
+ continue
+ ;;
+
+ -o) prev=output ;;
+
+ -precious-files-regex)
+ prev=precious_regex
+ continue
+ ;;
+
+ -release)
+ prev=release
+ continue
+ ;;
+
+ -rpath)
+ prev=rpath
+ continue
+ ;;
+
+ -R)
+ prev=xrpath
+ continue
+ ;;
+
+ -R*)
+ func_stripname '-R' '' "$arg"
+ dir=$func_stripname_result
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ =*)
+ func_stripname '=' '' "$dir"
+ dir=$lt_sysroot$func_stripname_result
+ ;;
+ *)
+ func_fatal_error "only absolute run-paths are allowed"
+ ;;
+ esac
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) func_append xrpath " $dir" ;;
+ esac
+ continue
+ ;;
+
+ -shared)
+ # The effects of -shared are defined in a previous loop.
+ continue
+ ;;
+
+ -shrext)
+ prev=shrext
+ continue
+ ;;
+
+ -static | -static-libtool-libs)
+ # The effects of -static are defined in a previous loop.
+ # We used to do the same as -all-static on platforms that
+ # didn't have a PIC flag, but the assumption that the effects
+ # would be equivalent was wrong. It would break on at least
+ # Digital Unix and AIX.
+ continue
+ ;;
+
+ -thread-safe)
+ thread_safe=yes
+ continue
+ ;;
+
+ -version-info)
+ prev=vinfo
+ continue
+ ;;
+
+ -version-number)
+ prev=vinfo
+ vinfo_number=yes
+ continue
+ ;;
+
+ -weak)
+ prev=weak
+ continue
+ ;;
+
+ -Wc,*)
+ func_stripname '-Wc,' '' "$arg"
+ args=$func_stripname_result
+ arg=
+ save_ifs="$IFS"; IFS=','
+ for flag in $args; do
+ IFS="$save_ifs"
+ func_quote_for_eval "$flag"
+ func_append arg " $func_quote_for_eval_result"
+ func_append compiler_flags " $func_quote_for_eval_result"
+ done
+ IFS="$save_ifs"
+ func_stripname ' ' '' "$arg"
+ arg=$func_stripname_result
+ ;;
+
+ -Wl,*)
+ func_stripname '-Wl,' '' "$arg"
+ args=$func_stripname_result
+ arg=
+ save_ifs="$IFS"; IFS=','
+ for flag in $args; do
+ IFS="$save_ifs"
+ func_quote_for_eval "$flag"
+ func_append arg " $wl$func_quote_for_eval_result"
+ func_append compiler_flags " $wl$func_quote_for_eval_result"
+ func_append linker_flags " $func_quote_for_eval_result"
+ done
+ IFS="$save_ifs"
+ func_stripname ' ' '' "$arg"
+ arg=$func_stripname_result
+ ;;
+
+ -Xcompiler)
+ prev=xcompiler
+ continue
+ ;;
+
+ -Xlinker)
+ prev=xlinker
+ continue
+ ;;
+
+ -XCClinker)
+ prev=xcclinker
+ continue
+ ;;
+
+ # -msg_* for osf cc
+ -msg_*)
+ func_quote_for_eval "$arg"
+ arg="$func_quote_for_eval_result"
+ ;;
+
+ # Flags to be passed through unchanged, with rationale:
+ # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
+ # -r[0-9][0-9]* specify processor for the SGI compiler
+ # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
+ # +DA*, +DD* enable 64-bit mode for the HP compiler
+ # -q* compiler args for the IBM compiler
+ # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
+ # -F/path path to uninstalled frameworks, gcc on darwin
+ # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
+ # @file GCC response files
+ # -tp=* Portland pgcc target processor selection
+ # --sysroot=* for sysroot support
+ # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
+ -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
+ func_quote_for_eval "$arg"
+ arg="$func_quote_for_eval_result"
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ func_append compiler_flags " $arg"
+ continue
+ ;;
+
+ # Some other compiler flag.
+ -* | +*)
+ func_quote_for_eval "$arg"
+ arg="$func_quote_for_eval_result"
+ ;;
+
+ *.$objext)
+ # A standard object.
+ func_append objs " $arg"
+ ;;
+
+ *.lo)
+ # A libtool-controlled object.
+
+ # Check to see that this really is a libtool object.
+ if func_lalib_unsafe_p "$arg"; then
+ pic_object=
+ non_pic_object=
+
+ # Read the .lo file
+ func_source "$arg"
+
+ if test -z "$pic_object" ||
+ test -z "$non_pic_object" ||
+ test "$pic_object" = none &&
+ test "$non_pic_object" = none; then
+ func_fatal_error "cannot find name of object for \`$arg'"
+ fi
+
+ # Extract subdirectory from the argument.
+ func_dirname "$arg" "/" ""
+ xdir="$func_dirname_result"
+
+ if test "$pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ pic_object="$xdir$pic_object"
+
+ if test "$prev" = dlfiles; then
+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+ func_append dlfiles " $pic_object"
+ prev=
+ continue
+ else
+ # If libtool objects are unsupported, then we need to preload.
+ prev=dlprefiles
+ fi
+ fi
+
+ # CHECK ME: I think I busted this. -Ossama
+ if test "$prev" = dlprefiles; then
+ # Preload the old-style object.
+ func_append dlprefiles " $pic_object"
+ prev=
+ fi
+
+ # A PIC object.
+ func_append libobjs " $pic_object"
+ arg="$pic_object"
+ fi
+
+ # Non-PIC object.
+ if test "$non_pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ non_pic_object="$xdir$non_pic_object"
+
+ # A standard non-PIC object
+ func_append non_pic_objects " $non_pic_object"
+ if test -z "$pic_object" || test "$pic_object" = none ; then
+ arg="$non_pic_object"
+ fi
+ else
+ # If the PIC object exists, use it instead.
+ # $xdir was prepended to $pic_object above.
+ non_pic_object="$pic_object"
+ func_append non_pic_objects " $non_pic_object"
+ fi
+ else
+ # Only an error if not doing a dry-run.
+ if $opt_dry_run; then
+ # Extract subdirectory from the argument.
+ func_dirname "$arg" "/" ""
+ xdir="$func_dirname_result"
+
+ func_lo2o "$arg"
+ pic_object=$xdir$objdir/$func_lo2o_result
+ non_pic_object=$xdir$func_lo2o_result
+ func_append libobjs " $pic_object"
+ func_append non_pic_objects " $non_pic_object"
+ else
+ func_fatal_error "\`$arg' is not a valid libtool object"
+ fi
+ fi
+ ;;
+
+ *.$libext)
+ # An archive.
+ func_append deplibs " $arg"
+ func_append old_deplibs " $arg"
+ continue
+ ;;
+
+ *.la)
+ # A libtool-controlled library.
+
+ func_resolve_sysroot "$arg"
+ if test "$prev" = dlfiles; then
+ # This library was specified with -dlopen.
+ func_append dlfiles " $func_resolve_sysroot_result"
+ prev=
+ elif test "$prev" = dlprefiles; then
+ # The library was specified with -dlpreopen.
+ func_append dlprefiles " $func_resolve_sysroot_result"
+ prev=
+ else
+ func_append deplibs " $func_resolve_sysroot_result"
+ fi
+ continue
+ ;;
+
+ # Some other compiler argument.
+ *)
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ func_quote_for_eval "$arg"
+ arg="$func_quote_for_eval_result"
+ ;;
+ esac # arg
+
+ # Now actually substitute the argument into the commands.
+ if test -n "$arg"; then
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ fi
+ done # argument parsing loop
+
+ test -n "$prev" && \
+ func_fatal_help "the \`$prevarg' option requires an argument"
+
+ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+ eval arg=\"$export_dynamic_flag_spec\"
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ fi
+
+ oldlibs=
+ # calculate the name of the file, without its directory
+ func_basename "$output"
+ outputname="$func_basename_result"
+ libobjs_save="$libobjs"
+
+ if test -n "$shlibpath_var"; then
+ # get the directories listed in $shlibpath_var
+ eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
+ else
+ shlib_search_path=
+ fi
+ eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+ func_dirname "$output" "/" ""
+ output_objdir="$func_dirname_result$objdir"
+ func_to_tool_file "$output_objdir/"
+ tool_output_objdir=$func_to_tool_file_result
+ # Create the object directory.
+ func_mkdir_p "$output_objdir"
+
+ # Determine the type of output
+ case $output in
+ "")
+ func_fatal_help "you must specify an output file"
+ ;;
+ *.$libext) linkmode=oldlib ;;
+ *.lo | *.$objext) linkmode=obj ;;
+ *.la) linkmode=lib ;;
+ *) linkmode=prog ;; # Anything else should be a program.
+ esac
+
+ specialdeplibs=
+
+ libs=
+ # Find all interdependent deplibs by searching for libraries
+ # that are linked more than once (e.g. -la -lb -la)
+ for deplib in $deplibs; do
+ if $opt_preserve_dup_deps ; then
+ case "$libs " in
+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+ esac
+ fi
+ func_append libs " $deplib"
+ done
+
+ if test "$linkmode" = lib; then
+ libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+ # Compute libraries that are listed more than once in $predeps
+ # $postdeps and mark them as special (i.e., whose duplicates are
+ # not to be eliminated).
+ pre_post_deps=
+ if $opt_duplicate_compiler_generated_deps; then
+ for pre_post_dep in $predeps $postdeps; do
+ case "$pre_post_deps " in
+ *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
+ esac
+ func_append pre_post_deps " $pre_post_dep"
+ done
+ fi
+ pre_post_deps=
+ fi
+
+ deplibs=
+ newdependency_libs=
+ newlib_search_path=
+ need_relink=no # whether we're linking any uninstalled libtool libraries
+ notinst_deplibs= # not-installed libtool libraries
+ notinst_path= # paths that contain not-installed libtool libraries
+
+ case $linkmode in
+ lib)
+ passes="conv dlpreopen link"
+ for file in $dlfiles $dlprefiles; do
+ case $file in
+ *.la) ;;
+ *)
+ func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
+ ;;
+ esac
+ done
+ ;;
+ prog)
+ compile_deplibs=
+ finalize_deplibs=
+ alldeplibs=no
+ newdlfiles=
+ newdlprefiles=
+ passes="conv scan dlopen dlpreopen link"
+ ;;
+ *) passes="conv"
+ ;;
+ esac
+
+ for pass in $passes; do
+ # The preopen pass in lib mode reverses $deplibs; put it back here
+ # so that -L comes before libs that need it for instance...
+ if test "$linkmode,$pass" = "lib,link"; then
+ ## FIXME: Find the place where the list is rebuilt in the wrong
+ ## order, and fix it there properly
+ tmp_deplibs=
+ for deplib in $deplibs; do
+ tmp_deplibs="$deplib $tmp_deplibs"
+ done
+ deplibs="$tmp_deplibs"
+ fi
+
+ if test "$linkmode,$pass" = "lib,link" ||
+ test "$linkmode,$pass" = "prog,scan"; then
+ libs="$deplibs"
+ deplibs=
+ fi
+ if test "$linkmode" = prog; then
+ case $pass in
+ dlopen) libs="$dlfiles" ;;
+ dlpreopen) libs="$dlprefiles" ;;
+ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+ esac
+ fi
+ if test "$linkmode,$pass" = "lib,dlpreopen"; then
+ # Collect and forward deplibs of preopened libtool libs
+ for lib in $dlprefiles; do
+ # Ignore non-libtool-libs
+ dependency_libs=
+ func_resolve_sysroot "$lib"
+ case $lib in
+ *.la) func_source "$func_resolve_sysroot_result" ;;
+ esac
+
+ # Collect preopened libtool deplibs, except any this library
+ # has declared as weak libs
+ for deplib in $dependency_libs; do
+ func_basename "$deplib"
+ deplib_base=$func_basename_result
+ case " $weak_libs " in
+ *" $deplib_base "*) ;;
+ *) func_append deplibs " $deplib" ;;
+ esac
+ done
+ done
+ libs="$dlprefiles"
+ fi
+ if test "$pass" = dlopen; then
+ # Collect dlpreopened libraries
+ save_deplibs="$deplibs"
+ deplibs=
+ fi
+
+ for deplib in $libs; do
+ lib=
+ found=no
+ case $deplib in
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ func_append compiler_flags " $deplib"
+ if test "$linkmode" = lib ; then
+ case "$new_inherited_linker_flags " in
+ *" $deplib "*) ;;
+ * ) func_append new_inherited_linker_flags " $deplib" ;;
+ esac
+ fi
+ fi
+ continue
+ ;;
+ -l*)
+ if test "$linkmode" != lib && test "$linkmode" != prog; then
+ func_warning "\`-l' is ignored for archives/objects"
+ continue
+ fi
+ func_stripname '-l' '' "$deplib"
+ name=$func_stripname_result
+ if test "$linkmode" = lib; then
+ searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
+ else
+ searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
+ fi
+ for searchdir in $searchdirs; do
+ for search_ext in .la $std_shrext .so .a; do
+ # Search the libtool library
+ lib="$searchdir/lib${name}${search_ext}"
+ if test -f "$lib"; then
+ if test "$search_ext" = ".la"; then
+ found=yes
+ else
+ found=no
+ fi
+ break 2
+ fi
+ done
+ done
+ if test "$found" != yes; then
+ # deplib doesn't seem to be a libtool library
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+ fi
+ continue
+ else # deplib is a libtool library
+ # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+ # We need to do some special things here, and not later.
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $deplib "*)
+ if func_lalib_p "$lib"; then
+ library_names=
+ old_library=
+ func_source "$lib"
+ for l in $old_library $library_names; do
+ ll="$l"
+ done
+ if test "X$ll" = "X$old_library" ; then # only static version available
+ found=no
+ func_dirname "$lib" "" "."
+ ladir="$func_dirname_result"
+ lib=$ladir/$old_library
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+ fi
+ continue
+ fi
+ fi
+ ;;
+ *) ;;
+ esac
+ fi
+ fi
+ ;; # -l
+ *.ltframework)
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ if test "$linkmode" = lib ; then
+ case "$new_inherited_linker_flags " in
+ *" $deplib "*) ;;
+ * ) func_append new_inherited_linker_flags " $deplib" ;;
+ esac
+ fi
+ fi
+ continue
+ ;;
+ -L*)
+ case $linkmode in
+ lib)
+ deplibs="$deplib $deplibs"
+ test "$pass" = conv && continue
+ newdependency_libs="$deplib $newdependency_libs"
+ func_stripname '-L' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result"
+ func_append newlib_search_path " $func_resolve_sysroot_result"
+ ;;
+ prog)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ if test "$pass" = scan; then
+ deplibs="$deplib $deplibs"
+ else
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ func_stripname '-L' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result"
+ func_append newlib_search_path " $func_resolve_sysroot_result"
+ ;;
+ *)
+ func_warning "\`-L' is ignored for archives/objects"
+ ;;
+ esac # linkmode
+ continue
+ ;; # -L
+ -R*)
+ if test "$pass" = link; then
+ func_stripname '-R' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result"
+ dir=$func_resolve_sysroot_result
+ # Make sure the xrpath contains only unique directories.
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) func_append xrpath " $dir" ;;
+ esac
+ fi
+ deplibs="$deplib $deplibs"
+ continue
+ ;;
+ *.la)
+ func_resolve_sysroot "$deplib"
+ lib=$func_resolve_sysroot_result
+ ;;
+ *.$libext)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ case $linkmode in
+ lib)
+ # Linking convenience modules into shared libraries is allowed,
+ # but linking other static libraries is non-portable.
+ case " $dlpreconveniencelibs " in
+ *" $deplib "*) ;;
+ *)
+ valid_a_lib=no
+ case $deplibs_check_method in
+ match_pattern*)
+ set dummy $deplibs_check_method; shift
+ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+ if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
+ | $EGREP "$match_pattern_regex" > /dev/null; then
+ valid_a_lib=yes
+ fi
+ ;;
+ pass_all)
+ valid_a_lib=yes
+ ;;
+ esac
+ if test "$valid_a_lib" != yes; then
+ echo
+ $ECHO "*** Warning: Trying to link with static lib archive $deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because the file extensions .$libext of this argument makes me believe"
+ echo "*** that it is just a static archive that I should not use here."
+ else
+ echo
+ $ECHO "*** Warning: Linking the shared library $output against the"
+ $ECHO "*** static library $deplib is not portable!"
+ deplibs="$deplib $deplibs"
+ fi
+ ;;
+ esac
+ continue
+ ;;
+ prog)
+ if test "$pass" != link; then
+ deplibs="$deplib $deplibs"
+ else
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ continue
+ ;;
+ esac # linkmode
+ ;; # *.$libext
+ *.lo | *.$objext)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+ elif test "$linkmode" = prog; then
+ if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+ # If there is no dlopen support or we're linking statically,
+ # we need to preload.
+ func_append newdlprefiles " $deplib"
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ func_append newdlfiles " $deplib"
+ fi
+ fi
+ continue
+ ;;
+ %DEPLIBS%)
+ alldeplibs=yes
+ continue
+ ;;
+ esac # case $deplib
+
+ if test "$found" = yes || test -f "$lib"; then :
+ else
+ func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
+ fi
+
+ # Check to see that this really is a libtool archive.
+ func_lalib_unsafe_p "$lib" \
+ || func_fatal_error "\`$lib' is not a valid libtool archive"
+
+ func_dirname "$lib" "" "."
+ ladir="$func_dirname_result"
+
+ dlname=
+ dlopen=
+ dlpreopen=
+ libdir=
+ library_names=
+ old_library=
+ inherited_linker_flags=
+ # If the library was installed with an old release of libtool,
+ # it will not redefine variables installed, or shouldnotlink
+ installed=yes
+ shouldnotlink=no
+ avoidtemprpath=
+
+
+ # Read the .la file
+ func_source "$lib"
+
+ # Convert "-framework foo" to "foo.ltframework"
+ if test -n "$inherited_linker_flags"; then
+ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
+ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+ case " $new_inherited_linker_flags " in
+ *" $tmp_inherited_linker_flag "*) ;;
+ *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
+ esac
+ done
+ fi
+ dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ if test "$linkmode,$pass" = "lib,link" ||
+ test "$linkmode,$pass" = "prog,scan" ||
+ { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+ test -n "$dlopen" && func_append dlfiles " $dlopen"
+ test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
+ fi
+
+ if test "$pass" = conv; then
+ # Only check for convenience libraries
+ deplibs="$lib $deplibs"
+ if test -z "$libdir"; then
+ if test -z "$old_library"; then
+ func_fatal_error "cannot find name of link library for \`$lib'"
+ fi
+ # It is a libtool convenience library, so add in its objects.
+ func_append convenience " $ladir/$objdir/$old_library"
+ func_append old_convenience " $ladir/$objdir/$old_library"
+ elif test "$linkmode" != prog && test "$linkmode" != lib; then
+ func_fatal_error "\`$lib' is not a convenience library"
+ fi
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ deplibs="$deplib $deplibs"
+ if $opt_preserve_dup_deps ; then
+ case "$tmp_libs " in
+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+ esac
+ fi
+ func_append tmp_libs " $deplib"
+ done
+ continue
+ fi # $pass = conv
+
+
+ # Get the name of the library we link against.
+ linklib=
+ if test -n "$old_library" &&
+ { test "$prefer_static_libs" = yes ||
+ test "$prefer_static_libs,$installed" = "built,no"; }; then
+ linklib=$old_library
+ else
+ for l in $old_library $library_names; do
+ linklib="$l"
+ done
+ fi
+ if test -z "$linklib"; then
+ func_fatal_error "cannot find name of link library for \`$lib'"
+ fi
+
+ # This library was specified with -dlopen.
+ if test "$pass" = dlopen; then
+ if test -z "$libdir"; then
+ func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
+ fi
+ if test -z "$dlname" ||
+ test "$dlopen_support" != yes ||
+ test "$build_libtool_libs" = no; then
+ # If there is no dlname, no dlopen support or we're linking
+ # statically, we need to preload. We also need to preload any
+ # dependent libraries so libltdl's deplib preloader doesn't
+ # bomb out in the load deplibs phase.
+ func_append dlprefiles " $lib $dependency_libs"
+ else
+ func_append newdlfiles " $lib"
+ fi
+ continue
+ fi # $pass = dlopen
+
+ # We need an absolute path.
+ case $ladir in
+ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+ *)
+ abs_ladir=`cd "$ladir" && pwd`
+ if test -z "$abs_ladir"; then
+ func_warning "cannot determine absolute directory name of \`$ladir'"
+ func_warning "passing it literally to the linker, although it might fail"
+ abs_ladir="$ladir"
+ fi
+ ;;
+ esac
+ func_basename "$lib"
+ laname="$func_basename_result"
+
+ # Find the relevant object directory and library name.
+ if test "X$installed" = Xyes; then
+ if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+ func_warning "library \`$lib' was moved."
+ dir="$ladir"
+ absdir="$abs_ladir"
+ libdir="$abs_ladir"
+ else
+ dir="$lt_sysroot$libdir"
+ absdir="$lt_sysroot$libdir"
+ fi
+ test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+ else
+ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+ dir="$ladir"
+ absdir="$abs_ladir"
+ # Remove this search path later
+ func_append notinst_path " $abs_ladir"
+ else
+ dir="$ladir/$objdir"
+ absdir="$abs_ladir/$objdir"
+ # Remove this search path later
+ func_append notinst_path " $abs_ladir"
+ fi
+ fi # $installed = yes
+ func_stripname 'lib' '.la' "$laname"
+ name=$func_stripname_result
+
+ # This library was specified with -dlpreopen.
+ if test "$pass" = dlpreopen; then
+ if test -z "$libdir" && test "$linkmode" = prog; then
+ func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
+ fi
+ case "$host" in
+ # special handling for platforms with PE-DLLs.
+ *cygwin* | *mingw* | *cegcc* )
+ # Linker will automatically link against shared library if both
+ # static and shared are present. Therefore, ensure we extract
+ # symbols from the import library if a shared library is present
+ # (otherwise, the dlopen module name will be incorrect). We do
+ # this by putting the import library name into $newdlprefiles.
+ # We recover the dlopen module name by 'saving' the la file
+ # name in a special purpose variable, and (later) extracting the
+ # dlname from the la file.
+ if test -n "$dlname"; then
+ func_tr_sh "$dir/$linklib"
+ eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
+ func_append newdlprefiles " $dir/$linklib"
+ else
+ func_append newdlprefiles " $dir/$old_library"
+ # Keep a list of preopened convenience libraries to check
+ # that they are being used correctly in the link pass.
+ test -z "$libdir" && \
+ func_append dlpreconveniencelibs " $dir/$old_library"
+ fi
+ ;;
+ * )
+ # Prefer using a static library (so that no silly _DYNAMIC symbols
+ # are required to link).
+ if test -n "$old_library"; then
+ func_append newdlprefiles " $dir/$old_library"
+ # Keep a list of preopened convenience libraries to check
+ # that they are being used correctly in the link pass.
+ test -z "$libdir" && \
+ func_append dlpreconveniencelibs " $dir/$old_library"
+ # Otherwise, use the dlname, so that lt_dlopen finds it.
+ elif test -n "$dlname"; then
+ func_append newdlprefiles " $dir/$dlname"
+ else
+ func_append newdlprefiles " $dir/$linklib"
+ fi
+ ;;
+ esac
+ fi # $pass = dlpreopen
+
+ if test -z "$libdir"; then
+ # Link the convenience library
+ if test "$linkmode" = lib; then
+ deplibs="$dir/$old_library $deplibs"
+ elif test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$dir/$old_library $compile_deplibs"
+ finalize_deplibs="$dir/$old_library $finalize_deplibs"
+ else
+ deplibs="$lib $deplibs" # used for prog,scan pass
+ fi
+ continue
+ fi
+
+
+ if test "$linkmode" = prog && test "$pass" != link; then
+ func_append newlib_search_path " $ladir"
+ deplibs="$lib $deplibs"
+
+ linkalldeplibs=no
+ if test "$link_all_deplibs" != no || test -z "$library_names" ||
+ test "$build_libtool_libs" = no; then
+ linkalldeplibs=yes
+ fi
+
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ case $deplib in
+ -L*) func_stripname '-L' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result"
+ func_append newlib_search_path " $func_resolve_sysroot_result"
+ ;;
+ esac
+ # Need to link against all dependency_libs?
+ if test "$linkalldeplibs" = yes; then
+ deplibs="$deplib $deplibs"
+ else
+ # Need to hardcode shared library paths
+ # or/and link against static libraries
+ newdependency_libs="$deplib $newdependency_libs"
+ fi
+ if $opt_preserve_dup_deps ; then
+ case "$tmp_libs " in
+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+ esac
+ fi
+ func_append tmp_libs " $deplib"
+ done # for deplib
+ continue
+ fi # $linkmode = prog...
+
+ if test "$linkmode,$pass" = "prog,link"; then
+ if test -n "$library_names" &&
+ { { test "$prefer_static_libs" = no ||
+ test "$prefer_static_libs,$installed" = "built,yes"; } ||
+ test -z "$old_library"; }; then
+ # We need to hardcode the library path
+ if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+ # Make sure the rpath contains only unique directories.
+ case "$temp_rpath:" in
+ *"$absdir:"*) ;;
+ *) func_append temp_rpath "$absdir:" ;;
+ esac
+ fi
+
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) func_append compile_rpath " $absdir" ;;
+ esac
+ ;;
+ esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) func_append finalize_rpath " $libdir" ;;
+ esac
+ ;;
+ esac
+ fi # $linkmode,$pass = prog,link...
+
+ if test "$alldeplibs" = yes &&
+ { test "$deplibs_check_method" = pass_all ||
+ { test "$build_libtool_libs" = yes &&
+ test -n "$library_names"; }; }; then
+ # We only need to search for static libraries
+ continue
+ fi
+ fi
+
+ link_static=no # Whether the deplib will be linked statically
+ use_static_libs=$prefer_static_libs
+ if test "$use_static_libs" = built && test "$installed" = yes; then
+ use_static_libs=no
+ fi
+ if test -n "$library_names" &&
+ { test "$use_static_libs" = no || test -z "$old_library"; }; then
+ case $host in
+ *cygwin* | *mingw* | *cegcc*)
+ # No point in relinking DLLs because paths are not encoded
+ func_append notinst_deplibs " $lib"
+ need_relink=no
+ ;;
+ *)
+ if test "$installed" = no; then
+ func_append notinst_deplibs " $lib"
+ need_relink=yes
+ fi
+ ;;
+ esac
+ # This is a shared library
+
+ # Warn about portability, can't link against -module's on some
+ # systems (darwin). Don't bleat about dlopened modules though!
+ dlopenmodule=""
+ for dlpremoduletest in $dlprefiles; do
+ if test "X$dlpremoduletest" = "X$lib"; then
+ dlopenmodule="$dlpremoduletest"
+ break
+ fi
+ done
+ if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
+ echo
+ if test "$linkmode" = prog; then
+ $ECHO "*** Warning: Linking the executable $output against the loadable module"
+ else
+ $ECHO "*** Warning: Linking the shared library $output against the loadable module"
+ fi
+ $ECHO "*** $linklib is not portable!"
+ fi
+ if test "$linkmode" = lib &&
+ test "$hardcode_into_libs" = yes; then
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) func_append compile_rpath " $absdir" ;;
+ esac
+ ;;
+ esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) func_append finalize_rpath " $libdir" ;;
+ esac
+ ;;
+ esac
+ fi
+
+ if test -n "$old_archive_from_expsyms_cmds"; then
+ # figure out the soname
+ set dummy $library_names
+ shift
+ realname="$1"
+ shift
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ # use dlname if we got it. it's perfectly good, no?
+ if test -n "$dlname"; then
+ soname="$dlname"
+ elif test -n "$soname_spec"; then
+ # bleh windows
+ case $host in
+ *cygwin* | mingw* | *cegcc*)
+ func_arith $current - $age
+ major=$func_arith_result
+ versuffix="-$major"
+ ;;
+ esac
+ eval soname=\"$soname_spec\"
+ else
+ soname="$realname"
+ fi
+
+ # Make a new name for the extract_expsyms_cmds to use
+ soroot="$soname"
+ func_basename "$soroot"
+ soname="$func_basename_result"
+ func_stripname 'lib' '.dll' "$soname"
+ newlib=libimp-$func_stripname_result.a
+
+ # If the library has no export list, then create one now
+ if test -f "$output_objdir/$soname-def"; then :
+ else
+ func_verbose "extracting exported symbol list from \`$soname'"
+ func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
+ fi
+
+ # Create $newlib
+ if test -f "$output_objdir/$newlib"; then :; else
+ func_verbose "generating import library for \`$soname'"
+ func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
+ fi
+ # make sure the library variables are pointing to the new library
+ dir=$output_objdir
+ linklib=$newlib
+ fi # test -n "$old_archive_from_expsyms_cmds"
+
+ if test "$linkmode" = prog || test "$opt_mode" != relink; then
+ add_shlibpath=
+ add_dir=
+ add=
+ lib_linked=yes
+ case $hardcode_action in
+ immediate | unsupported)
+ if test "$hardcode_direct" = no; then
+ add="$dir/$linklib"
+ case $host in
+ *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
+ *-*-sysv4*uw2*) add_dir="-L$dir" ;;
+ *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
+ *-*-unixware7*) add_dir="-L$dir" ;;
+ *-*-darwin* )
+ # if the lib is a (non-dlopened) module then we can not
+ # link against it, someone is ignoring the earlier warnings
+ if /usr/bin/file -L $add 2> /dev/null |
+ $GREP ": [^:]* bundle" >/dev/null ; then
+ if test "X$dlopenmodule" != "X$lib"; then
+ $ECHO "*** Warning: lib $linklib is a module, not a shared library"
+ if test -z "$old_library" ; then
+ echo
+ echo "*** And there doesn't seem to be a static archive available"
+ echo "*** The link will probably fail, sorry"
+ else
+ add="$dir/$old_library"
+ fi
+ elif test -n "$old_library"; then
+ add="$dir/$old_library"
+ fi
+ fi
+ esac
+ elif test "$hardcode_minus_L" = no; then
+ case $host in
+ *-*-sunos*) add_shlibpath="$dir" ;;
+ esac
+ add_dir="-L$dir"
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = no; then
+ add_shlibpath="$dir"
+ add="-l$name"
+ else
+ lib_linked=no
+ fi
+ ;;
+ relink)
+ if test "$hardcode_direct" = yes &&
+ test "$hardcode_direct_absolute" = no; then
+ add="$dir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+ add_dir="-L$dir"
+ # Try looking first in the location we're being installed to.
+ if test -n "$inst_prefix_dir"; then
+ case $libdir in
+ [\\/]*)
+ func_append add_dir " -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+ add_shlibpath="$dir"
+ add="-l$name"
+ else
+ lib_linked=no
+ fi
+ ;;
+ *) lib_linked=no ;;
+ esac
+
+ if test "$lib_linked" != yes; then
+ func_fatal_configuration "unsupported hardcode properties"
+ fi
+
+ if test -n "$add_shlibpath"; then
+ case :$compile_shlibpath: in
+ *":$add_shlibpath:"*) ;;
+ *) func_append compile_shlibpath "$add_shlibpath:" ;;
+ esac
+ fi
+ if test "$linkmode" = prog; then
+ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+ test -n "$add" && compile_deplibs="$add $compile_deplibs"
+ else
+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
+ test -n "$add" && deplibs="$add $deplibs"
+ if test "$hardcode_direct" != yes &&
+ test "$hardcode_minus_L" != yes &&
+ test "$hardcode_shlibpath_var" = yes; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+ *) func_append finalize_shlibpath "$libdir:" ;;
+ esac
+ fi
+ fi
+ fi
+
+ if test "$linkmode" = prog || test "$opt_mode" = relink; then
+ add_shlibpath=
+ add_dir=
+ add=
+ # Finalize command for both is simple: just hardcode it.
+ if test "$hardcode_direct" = yes &&
+ test "$hardcode_direct_absolute" = no; then
+ add="$libdir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+ add_dir="-L$libdir"
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+ *) func_append finalize_shlibpath "$libdir:" ;;
+ esac
+ add="-l$name"
+ elif test "$hardcode_automatic" = yes; then
+ if test -n "$inst_prefix_dir" &&
+ test -f "$inst_prefix_dir$libdir/$linklib" ; then
+ add="$inst_prefix_dir$libdir/$linklib"
+ else
+ add="$libdir/$linklib"
+ fi
+ else
+ # We cannot seem to hardcode it, guess we'll fake it.
+ add_dir="-L$libdir"
+ # Try looking first in the location we're being installed to.
+ if test -n "$inst_prefix_dir"; then
+ case $libdir in
+ [\\/]*)
+ func_append add_dir " -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+ add="-l$name"
+ fi
+
+ if test "$linkmode" = prog; then
+ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+ test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+ else
+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
+ test -n "$add" && deplibs="$add $deplibs"
+ fi
+ fi
+ elif test "$linkmode" = prog; then
+ # Here we assume that one of hardcode_direct or hardcode_minus_L
+ # is not unsupported. This is valid on all known static and
+ # shared platforms.
+ if test "$hardcode_direct" != unsupported; then
+ test -n "$old_library" && linklib="$old_library"
+ compile_deplibs="$dir/$linklib $compile_deplibs"
+ finalize_deplibs="$dir/$linklib $finalize_deplibs"
+ else
+ compile_deplibs="-l$name -L$dir $compile_deplibs"
+ finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+ fi
+ elif test "$build_libtool_libs" = yes; then
+ # Not a shared library
+ if test "$deplibs_check_method" != pass_all; then
+ # We're trying link a shared library against a static one
+ # but the system doesn't support it.
+
+ # Just print a warning and add the library to dependency_libs so
+ # that the program can be linked against the static library.
+ echo
+ $ECHO "*** Warning: This system can not link to static lib archive $lib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have."
+ if test "$module" = yes; then
+ echo "*** But as you try to build a module library, libtool will still create "
+ echo "*** a static module, that should work as long as the dlopening application"
+ echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
+ if test -z "$global_symbol_pipe"; then
+ echo
+ echo "*** However, this would only work if libtool was able to extract symbol"
+ echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+ echo "*** not find such a program. So, this module is probably useless."
+ echo "*** \`nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test "$build_old_libs" = no; then
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ fi
+ else
+ deplibs="$dir/$old_library $deplibs"
+ link_static=yes
+ fi
+ fi # link shared/static library?
+
+ if test "$linkmode" = lib; then
+ if test -n "$dependency_libs" &&
+ { test "$hardcode_into_libs" != yes ||
+ test "$build_old_libs" = yes ||
+ test "$link_static" = yes; }; then
+ # Extract -R from dependency_libs
+ temp_deplibs=
+ for libdir in $dependency_libs; do
+ case $libdir in
+ -R*) func_stripname '-R' '' "$libdir"
+ temp_xrpath=$func_stripname_result
+ case " $xrpath " in
+ *" $temp_xrpath "*) ;;
+ *) func_append xrpath " $temp_xrpath";;
+ esac;;
+ *) func_append temp_deplibs " $libdir";;
+ esac
+ done
+ dependency_libs="$temp_deplibs"
+ fi
+
+ func_append newlib_search_path " $absdir"
+ # Link against this library
+ test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+ # ... and its dependency_libs
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ newdependency_libs="$deplib $newdependency_libs"
+ case $deplib in
+ -L*) func_stripname '-L' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result";;
+ *) func_resolve_sysroot "$deplib" ;;
+ esac
+ if $opt_preserve_dup_deps ; then
+ case "$tmp_libs " in
+ *" $func_resolve_sysroot_result "*)
+ func_append specialdeplibs " $func_resolve_sysroot_result" ;;
+ esac
+ fi
+ func_append tmp_libs " $func_resolve_sysroot_result"
+ done
+
+ if test "$link_all_deplibs" != no; then
+ # Add the search paths of all dependency libraries
+ for deplib in $dependency_libs; do
+ path=
+ case $deplib in
+ -L*) path="$deplib" ;;
+ *.la)
+ func_resolve_sysroot "$deplib"
+ deplib=$func_resolve_sysroot_result
+ func_dirname "$deplib" "" "."
+ dir=$func_dirname_result
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ func_warning "cannot determine absolute directory name of \`$dir'"
+ absdir="$dir"
+ fi
+ ;;
+ esac
+ if $GREP "^installed=no" $deplib > /dev/null; then
+ case $host in
+ *-*-darwin*)
+ depdepl=
+ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+ if test -n "$deplibrary_names" ; then
+ for tmp in $deplibrary_names ; do
+ depdepl=$tmp
+ done
+ if test -f "$absdir/$objdir/$depdepl" ; then
+ depdepl="$absdir/$objdir/$depdepl"
+ darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+ if test -z "$darwin_install_name"; then
+ darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+ fi
+ func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
+ func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
+ path=
+ fi
+ fi
+ ;;
+ *)
+ path="-L$absdir/$objdir"
+ ;;
+ esac
+ else
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ test -z "$libdir" && \
+ func_fatal_error "\`$deplib' is not a valid libtool archive"
+ test "$absdir" != "$libdir" && \
+ func_warning "\`$deplib' seems to be moved"
+
+ path="-L$absdir"
+ fi
+ ;;
+ esac
+ case " $deplibs " in
+ *" $path "*) ;;
+ *) deplibs="$path $deplibs" ;;
+ esac
+ done
+ fi # link_all_deplibs != no
+ fi # linkmode = lib
+ done # for deplib in $libs
+ if test "$pass" = link; then
+ if test "$linkmode" = "prog"; then
+ compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
+ finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
+ else
+ compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ fi
+ fi
+ dependency_libs="$newdependency_libs"
+ if test "$pass" = dlpreopen; then
+ # Link the dlpreopened libraries before other libraries
+ for deplib in $save_deplibs; do
+ deplibs="$deplib $deplibs"
+ done
+ fi
+ if test "$pass" != dlopen; then
+ if test "$pass" != conv; then
+ # Make sure lib_search_path contains only unique directories.
+ lib_search_path=
+ for dir in $newlib_search_path; do
+ case "$lib_search_path " in
+ *" $dir "*) ;;
+ *) func_append lib_search_path " $dir" ;;
+ esac
+ done
+ newlib_search_path=
+ fi
+
+ if test "$linkmode,$pass" != "prog,link"; then
+ vars="deplibs"
+ else
+ vars="compile_deplibs finalize_deplibs"
+ fi
+ for var in $vars dependency_libs; do
+ # Add libraries to $var in reverse order
+ eval tmp_libs=\"\$$var\"
+ new_libs=
+ for deplib in $tmp_libs; do
+ # FIXME: Pedantically, this is the right thing to do, so
+ # that some nasty dependency loop isn't accidentally
+ # broken:
+ #new_libs="$deplib $new_libs"
+ # Pragmatically, this seems to cause very few problems in
+ # practice:
+ case $deplib in
+ -L*) new_libs="$deplib $new_libs" ;;
+ -R*) ;;
+ *)
+ # And here is the reason: when a library appears more
+ # than once as an explicit dependence of a library, or
+ # is implicitly linked in more than once by the
+ # compiler, it is considered special, and multiple
+ # occurrences thereof are not removed. Compare this
+ # with having the same library being listed as a
+ # dependency of multiple other libraries: in this case,
+ # we know (pedantically, we assume) the library does not
+ # need to be listed more than once, so we keep only the
+ # last copy. This is not always right, but it is rare
+ # enough that we require users that really mean to play
+ # such unportable linking tricks to link the library
+ # using -Wl,-lname, so that libtool does not consider it
+ # for duplicate removal.
+ case " $specialdeplibs " in
+ *" $deplib "*) new_libs="$deplib $new_libs" ;;
+ *)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) new_libs="$deplib $new_libs" ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ done
+ tmp_libs=
+ for deplib in $new_libs; do
+ case $deplib in
+ -L*)
+ case " $tmp_libs " in
+ *" $deplib "*) ;;
+ *) func_append tmp_libs " $deplib" ;;
+ esac
+ ;;
+ *) func_append tmp_libs " $deplib" ;;
+ esac
+ done
+ eval $var=\"$tmp_libs\"
+ done # for var
+ fi
+ # Last step: remove runtime libs from dependency_libs
+ # (they stay in deplibs)
+ tmp_libs=
+ for i in $dependency_libs ; do
+ case " $predeps $postdeps $compiler_lib_search_path " in
+ *" $i "*)
+ i=""
+ ;;
+ esac
+ if test -n "$i" ; then
+ func_append tmp_libs " $i"
+ fi
+ done
+ dependency_libs=$tmp_libs
+ done # for pass
+ if test "$linkmode" = prog; then
+ dlfiles="$newdlfiles"
+ fi
+ if test "$linkmode" = prog || test "$linkmode" = lib; then
+ dlprefiles="$newdlprefiles"
+ fi
+
+ case $linkmode in
+ oldlib)
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ func_warning "\`-dlopen' is ignored for archives"
+ fi
+
+ case " $deplibs" in
+ *\ -l* | *\ -L*)
+ func_warning "\`-l' and \`-L' are ignored for archives" ;;
+ esac
+
+ test -n "$rpath" && \
+ func_warning "\`-rpath' is ignored for archives"
+
+ test -n "$xrpath" && \
+ func_warning "\`-R' is ignored for archives"
+
+ test -n "$vinfo" && \
+ func_warning "\`-version-info/-version-number' is ignored for archives"
+
+ test -n "$release" && \
+ func_warning "\`-release' is ignored for archives"
+
+ test -n "$export_symbols$export_symbols_regex" && \
+ func_warning "\`-export-symbols' is ignored for archives"
+
+ # Now set the variables for building old libraries.
+ build_libtool_libs=no
+ oldlibs="$output"
+ func_append objs "$old_deplibs"
+ ;;
+
+ lib)
+ # Make sure we only generate libraries of the form `libNAME.la'.
+ case $outputname in
+ lib*)
+ func_stripname 'lib' '.la' "$outputname"
+ name=$func_stripname_result
+ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ ;;
+ *)
+ test "$module" = no && \
+ func_fatal_help "libtool library \`$output' must begin with \`lib'"
+
+ if test "$need_lib_prefix" != no; then
+ # Add the "lib" prefix for modules if required
+ func_stripname '' '.la' "$outputname"
+ name=$func_stripname_result
+ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ else
+ func_stripname '' '.la' "$outputname"
+ libname=$func_stripname_result
+ fi
+ ;;
+ esac
+
+ if test -n "$objs"; then
+ if test "$deplibs_check_method" != pass_all; then
+ func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
+ else
+ echo
+ $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
+ $ECHO "*** objects $objs is not portable!"
+ func_append libobjs " $objs"
+ fi
+ fi
+
+ test "$dlself" != no && \
+ func_warning "\`-dlopen self' is ignored for libtool libraries"
+
+ set dummy $rpath
+ shift
+ test "$#" -gt 1 && \
+ func_warning "ignoring multiple \`-rpath's for a libtool library"
+
+ install_libdir="$1"
+
+ oldlibs=
+ if test -z "$rpath"; then
+ if test "$build_libtool_libs" = yes; then
+ # Building a libtool convenience library.
+ # Some compilers have problems with a `.al' extension so
+ # convenience libraries should have the same extension an
+ # archive normally would.
+ oldlibs="$output_objdir/$libname.$libext $oldlibs"
+ build_libtool_libs=convenience
+ build_old_libs=yes
+ fi
+
+ test -n "$vinfo" && \
+ func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
+
+ test -n "$release" && \
+ func_warning "\`-release' is ignored for convenience libraries"
+ else
+
+ # Parse the version information argument.
+ save_ifs="$IFS"; IFS=':'
+ set dummy $vinfo 0 0 0
+ shift
+ IFS="$save_ifs"
+
+ test -n "$7" && \
+ func_fatal_help "too many parameters to \`-version-info'"
+
+ # convert absolute version numbers to libtool ages
+ # this retains compatibility with .la files and attempts
+ # to make the code below a bit more comprehensible
+
+ case $vinfo_number in
+ yes)
+ number_major="$1"
+ number_minor="$2"
+ number_revision="$3"
+ #
+ # There are really only two kinds -- those that
+ # use the current revision as the major version
+ # and those that subtract age and use age as
+ # a minor version. But, then there is irix
+ # which has an extra 1 added just for fun
+ #
+ case $version_type in
+ darwin|linux|osf|windows|none)
+ func_arith $number_major + $number_minor
+ current=$func_arith_result
+ age="$number_minor"
+ revision="$number_revision"
+ ;;
+ freebsd-aout|freebsd-elf|qnx|sunos)
+ current="$number_major"
+ revision="$number_minor"
+ age="0"
+ ;;
+ irix|nonstopux)
+ func_arith $number_major + $number_minor
+ current=$func_arith_result
+ age="$number_minor"
+ revision="$number_minor"
+ lt_irix_increment=no
+ ;;
+ esac
+ ;;
+ no)
+ current="$1"
+ revision="$2"
+ age="$3"
+ ;;
+ esac
+
+ # Check that each of the things are valid numbers.
+ case $current in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ func_error "CURRENT \`$current' must be a nonnegative integer"
+ func_fatal_error "\`$vinfo' is not valid version information"
+ ;;
+ esac
+
+ case $revision in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ func_error "REVISION \`$revision' must be a nonnegative integer"
+ func_fatal_error "\`$vinfo' is not valid version information"
+ ;;
+ esac
+
+ case $age in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ func_error "AGE \`$age' must be a nonnegative integer"
+ func_fatal_error "\`$vinfo' is not valid version information"
+ ;;
+ esac
+
+ if test "$age" -gt "$current"; then
+ func_error "AGE \`$age' is greater than the current interface number \`$current'"
+ func_fatal_error "\`$vinfo' is not valid version information"
+ fi
+
+ # Calculate the version variables.
+ major=
+ versuffix=
+ verstring=
+ case $version_type in
+ none) ;;
+
+ darwin)
+ # Like Linux, but with the current version available in
+ # verstring for coding it into the library header
+ func_arith $current - $age
+ major=.$func_arith_result
+ versuffix="$major.$age.$revision"
+ # Darwin ld doesn't like 0 for these options...
+ func_arith $current + 1
+ minor_current=$func_arith_result
+ xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+ ;;
+
+ freebsd-aout)
+ major=".$current"
+ versuffix=".$current.$revision";
+ ;;
+
+ freebsd-elf)
+ major=".$current"
+ versuffix=".$current"
+ ;;
+
+ irix | nonstopux)
+ if test "X$lt_irix_increment" = "Xno"; then
+ func_arith $current - $age
+ else
+ func_arith $current - $age + 1
+ fi
+ major=$func_arith_result
+
+ case $version_type in
+ nonstopux) verstring_prefix=nonstopux ;;
+ *) verstring_prefix=sgi ;;
+ esac
+ verstring="$verstring_prefix$major.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$revision
+ while test "$loop" -ne 0; do
+ func_arith $revision - $loop
+ iface=$func_arith_result
+ func_arith $loop - 1
+ loop=$func_arith_result
+ verstring="$verstring_prefix$major.$iface:$verstring"
+ done
+
+ # Before this point, $major must not contain `.'.
+ major=.$major
+ versuffix="$major.$revision"
+ ;;
+
+ linux)
+ func_arith $current - $age
+ major=.$func_arith_result
+ versuffix="$major.$age.$revision"
+ ;;
+
+ osf)
+ func_arith $current - $age
+ major=.$func_arith_result
+ versuffix=".$current.$age.$revision"
+ verstring="$current.$age.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$age
+ while test "$loop" -ne 0; do
+ func_arith $current - $loop
+ iface=$func_arith_result
+ func_arith $loop - 1
+ loop=$func_arith_result
+ verstring="$verstring:${iface}.0"
+ done
+
+ # Make executables depend on our current version.
+ func_append verstring ":${current}.0"
+ ;;
+
+ qnx)
+ major=".$current"
+ versuffix=".$current"
+ ;;
+
+ sunos)
+ major=".$current"
+ versuffix=".$current.$revision"
+ ;;
+
+ windows)
+ # Use '-' rather than '.', since we only want one
+ # extension on DOS 8.3 filesystems.
+ func_arith $current - $age
+ major=$func_arith_result
+ versuffix="-$major"
+ ;;
+
+ *)
+ func_fatal_configuration "unknown library version type \`$version_type'"
+ ;;
+ esac
+
+ # Clear the version info if we defaulted, and they specified a release.
+ if test -z "$vinfo" && test -n "$release"; then
+ major=
+ case $version_type in
+ darwin)
+ # we can't check for "0.0" in archive_cmds due to quoting
+ # problems, so we reset it completely
+ verstring=
+ ;;
+ *)
+ verstring="0.0"
+ ;;
+ esac
+ if test "$need_version" = no; then
+ versuffix=
+ else
+ versuffix=".0.0"
+ fi
+ fi
+
+ # Remove version info from name if versioning should be avoided
+ if test "$avoid_version" = yes && test "$need_version" = no; then
+ major=
+ versuffix=
+ verstring=""
+ fi
+
+ # Check to see if the archive will have undefined symbols.
+ if test "$allow_undefined" = yes; then
+ if test "$allow_undefined_flag" = unsupported; then
+ func_warning "undefined symbols not allowed in $host shared libraries"
+ build_libtool_libs=no
+ build_old_libs=yes
+ fi
+ else
+ # Don't allow undefined symbols.
+ allow_undefined_flag="$no_undefined_flag"
+ fi
+
+ fi
+
+ func_generate_dlsyms "$libname" "$libname" "yes"
+ func_append libobjs " $symfileobj"
+ test "X$libobjs" = "X " && libobjs=
+
+ if test "$opt_mode" != relink; then
+ # Remove our outputs, but don't remove object files since they
+ # may have been created when compiling PIC objects.
+ removelist=
+ tempremovelist=`$ECHO "$output_objdir/*"`
+ for p in $tempremovelist; do
+ case $p in
+ *.$objext | *.gcno)
+ ;;
+ $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+ if test "X$precious_files_regex" != "X"; then
+ if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+ then
+ continue
+ fi
+ fi
+ func_append removelist " $p"
+ ;;
+ *) ;;
+ esac
+ done
+ test -n "$removelist" && \
+ func_show_eval "${RM}r \$removelist"
+ fi
+
+ # Now set the variables for building old libraries.
+ if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+ func_append oldlibs " $output_objdir/$libname.$libext"
+
+ # Transform .lo files to .o files.
+ oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
+ fi
+
+ # Eliminate all temporary directories.
+ #for path in $notinst_path; do
+ # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
+ # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
+ # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
+ #done
+
+ if test -n "$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ temp_xrpath=
+ for libdir in $xrpath; do
+ func_replace_sysroot "$libdir"
+ func_append temp_xrpath " -R$func_replace_sysroot_result"
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) func_append finalize_rpath " $libdir" ;;
+ esac
+ done
+ if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+ dependency_libs="$temp_xrpath $dependency_libs"
+ fi
+ fi
+
+ # Make sure dlfiles contains only unique files that won't be dlpreopened
+ old_dlfiles="$dlfiles"
+ dlfiles=
+ for lib in $old_dlfiles; do
+ case " $dlprefiles $dlfiles " in
+ *" $lib "*) ;;
+ *) func_append dlfiles " $lib" ;;
+ esac
+ done
+
+ # Make sure dlprefiles contains only unique files
+ old_dlprefiles="$dlprefiles"
+ dlprefiles=
+ for lib in $old_dlprefiles; do
+ case "$dlprefiles " in
+ *" $lib "*) ;;
+ *) func_append dlprefiles " $lib" ;;
+ esac
+ done
+
+ if test "$build_libtool_libs" = yes; then
+ if test -n "$rpath"; then
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
+ # these systems don't actually have a c library (as such)!
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C library is in the System framework
+ func_append deplibs " System.ltframework"
+ ;;
+ *-*-netbsd*)
+ # Don't link with libc until the a.out ld.so is fixed.
+ ;;
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc due to us having libc/libc_r.
+ ;;
+ *-*-sco3.2v5* | *-*-sco5v6*)
+ # Causes problems with __ctype
+ ;;
+ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+ # Compiler inserts libc in the correct place for threads to work
+ ;;
+ *)
+ # Add libc to deplibs on all other systems if necessary.
+ if test "$build_libtool_need_lc" = "yes"; then
+ func_append deplibs " -lc"
+ fi
+ ;;
+ esac
+ fi
+
+ # Transform deplibs into only deplibs that can be linked in shared.
+ name_save=$name
+ libname_save=$libname
+ release_save=$release
+ versuffix_save=$versuffix
+ major_save=$major
+ # I'm not sure if I'm treating the release correctly. I think
+ # release should show up in the -l (ie -lgmp5) so we don't want to
+ # add it in twice. Is that correct?
+ release=""
+ versuffix=""
+ major=""
+ newdeplibs=
+ droppeddeps=no
+ case $deplibs_check_method in
+ pass_all)
+ # Don't check for shared/static. Everything works.
+ # This might be a little naive. We might want to check
+ # whether the library exists or not. But this is on
+ # osf3 & osf4 and I'm not really sure... Just
+ # implementing what was already the behavior.
+ newdeplibs=$deplibs
+ ;;
+ test_compile)
+ # This code stresses the "libraries are programs" paradigm to its
+ # limits. Maybe even breaks it. We compile a program, linking it
+ # against the deplibs as a proxy for the library. Then we can check
+ # whether they linked in statically or dynamically with ldd.
+ $opt_dry_run || $RM conftest.c
+ cat > conftest.c <<EOF
+ int main() { return 0; }
+EOF
+ $opt_dry_run || $RM conftest
+ if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+ ldd_output=`ldd conftest`
+ for i in $deplibs; do
+ case $i in
+ -l*)
+ func_stripname -l '' "$i"
+ name=$func_stripname_result
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ func_append newdeplibs " $i"
+ i=""
+ ;;
+ esac
+ fi
+ if test -n "$i" ; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+ set dummy $deplib_matches; shift
+ deplib_match=$1
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+ func_append newdeplibs " $i"
+ else
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which I believe you do not have"
+ echo "*** because a test_compile did reveal that the linker did not use it for"
+ echo "*** its dynamic dependency list that programs get resolved with at runtime."
+ fi
+ fi
+ ;;
+ *)
+ func_append newdeplibs " $i"
+ ;;
+ esac
+ done
+ else
+ # Error occurred in the first compile. Let's try to salvage
+ # the situation: Compile a separate program for each library.
+ for i in $deplibs; do
+ case $i in
+ -l*)
+ func_stripname -l '' "$i"
+ name=$func_stripname_result
+ $opt_dry_run || $RM conftest
+ if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+ ldd_output=`ldd conftest`
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ func_append newdeplibs " $i"
+ i=""
+ ;;
+ esac
+ fi
+ if test -n "$i" ; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+ set dummy $deplib_matches; shift
+ deplib_match=$1
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+ func_append newdeplibs " $i"
+ else
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because a test_compile did reveal that the linker did not use this one"
+ echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+ fi
+ fi
+ else
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
+ echo "*** make it link in! You will probably need to install it or some"
+ echo "*** library that it depends on before this library will be fully"
+ echo "*** functional. Installing it before continuing would be even better."
+ fi
+ ;;
+ *)
+ func_append newdeplibs " $i"
+ ;;
+ esac
+ done
+ fi
+ ;;
+ file_magic*)
+ set dummy $deplibs_check_method; shift
+ file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+ for a_deplib in $deplibs; do
+ case $a_deplib in
+ -l*)
+ func_stripname -l '' "$a_deplib"
+ name=$func_stripname_result
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $a_deplib "*)
+ func_append newdeplibs " $a_deplib"
+ a_deplib=""
+ ;;
+ esac
+ fi
+ if test -n "$a_deplib" ; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ if test -n "$file_magic_glob"; then
+ libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
+ else
+ libnameglob=$libname
+ fi
+ test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ if test "$want_nocaseglob" = yes; then
+ shopt -s nocaseglob
+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+ $nocaseglob
+ else
+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+ fi
+ for potent_lib in $potential_libs; do
+ # Follow soft links.
+ if ls -lLd "$potent_lib" 2>/dev/null |
+ $GREP " -> " >/dev/null; then
+ continue
+ fi
+ # The statement above tries to avoid entering an
+ # endless loop below, in case of cyclic links.
+ # We might still enter an endless loop, since a link
+ # loop can be closed while we follow links,
+ # but so what?
+ potlib="$potent_lib"
+ while test -h "$potlib" 2>/dev/null; do
+ potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+ case $potliblink in
+ [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+ *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
+ esac
+ done
+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
+ $SED -e 10q |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ func_append newdeplibs " $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+ done
+ done
+ fi
+ if test -n "$a_deplib" ; then
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because I did check the linker path looking for a file starting"
+ if test -z "$potlib" ; then
+ $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
+ else
+ $ECHO "*** with $libname and none of the candidates passed a file format test"
+ $ECHO "*** using a file magic. Last file checked: $potlib"
+ fi
+ fi
+ ;;
+ *)
+ # Add a -L argument.
+ func_append newdeplibs " $a_deplib"
+ ;;
+ esac
+ done # Gone through all deplibs.
+ ;;
+ match_pattern*)
+ set dummy $deplibs_check_method; shift
+ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+ for a_deplib in $deplibs; do
+ case $a_deplib in
+ -l*)
+ func_stripname -l '' "$a_deplib"
+ name=$func_stripname_result
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $a_deplib "*)
+ func_append newdeplibs " $a_deplib"
+ a_deplib=""
+ ;;
+ esac
+ fi
+ if test -n "$a_deplib" ; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+ for potent_lib in $potential_libs; do
+ potlib="$potent_lib" # see symlink-check above in file_magic test
+ if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
+ $EGREP "$match_pattern_regex" > /dev/null; then
+ func_append newdeplibs " $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+ done
+ done
+ fi
+ if test -n "$a_deplib" ; then
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because I did check the linker path looking for a file starting"
+ if test -z "$potlib" ; then
+ $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
+ else
+ $ECHO "*** with $libname and none of the candidates passed a file format test"
+ $ECHO "*** using a regex pattern. Last file checked: $potlib"
+ fi
+ fi
+ ;;
+ *)
+ # Add a -L argument.
+ func_append newdeplibs " $a_deplib"
+ ;;
+ esac
+ done # Gone through all deplibs.
+ ;;
+ none | unknown | *)
+ newdeplibs=""
+ tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ for i in $predeps $postdeps ; do
+ # can't use Xsed below, because $i might contain '/'
+ tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
+ done
+ fi
+ case $tmp_deplibs in
+ *[!\ \ ]*)
+ echo
+ if test "X$deplibs_check_method" = "Xnone"; then
+ echo "*** Warning: inter-library dependencies are not supported in this platform."
+ else
+ echo "*** Warning: inter-library dependencies are not known to be supported."
+ fi
+ echo "*** All declared inter-library dependencies are being dropped."
+ droppeddeps=yes
+ ;;
+ esac
+ ;;
+ esac
+ versuffix=$versuffix_save
+ major=$major_save
+ release=$release_save
+ libname=$libname_save
+ name=$name_save
+
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library with the System framework
+ newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
+ ;;
+ esac
+
+ if test "$droppeddeps" = yes; then
+ if test "$module" = yes; then
+ echo
+ echo "*** Warning: libtool could not satisfy all declared inter-library"
+ $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
+ echo "*** a static module, that should work as long as the dlopening"
+ echo "*** application is linked with the -dlopen flag."
+ if test -z "$global_symbol_pipe"; then
+ echo
+ echo "*** However, this would only work if libtool was able to extract symbol"
+ echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+ echo "*** not find such a program. So, this module is probably useless."
+ echo "*** \`nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test "$build_old_libs" = no; then
+ oldlibs="$output_objdir/$libname.$libext"
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ else
+ echo "*** The inter-library dependencies that have been dropped here will be"
+ echo "*** automatically added whenever a program is linked with this library"
+ echo "*** or is declared to -dlopen it."
+
+ if test "$allow_undefined" = no; then
+ echo
+ echo "*** Since this library must not contain undefined symbols,"
+ echo "*** because either the platform does not support them or"
+ echo "*** it was explicitly requested with -no-undefined,"
+ echo "*** libtool will only create a static version of it."
+ if test "$build_old_libs" = no; then
+ oldlibs="$output_objdir/$libname.$libext"
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ fi
+ fi
+ fi
+ # Done checking deplibs!
+ deplibs=$newdeplibs
+ fi
+ # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+ case $host in
+ *-*-darwin*)
+ newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ ;;
+ esac
+
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
+ for path in $notinst_path; do
+ case " $new_libs " in
+ *" -L$path/$objdir "*) ;;
+ *)
+ case " $deplibs " in
+ *" -L$path/$objdir "*)
+ func_append new_libs " -L$path/$objdir" ;;
+ esac
+ ;;
+ esac
+ done
+ for deplib in $deplibs; do
+ case $deplib in
+ -L*)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) func_append new_libs " $deplib" ;;
+ esac
+ ;;
+ *) func_append new_libs " $deplib" ;;
+ esac
+ done
+ deplibs="$new_libs"
+
+ # All the library-specific variables (install_libdir is set above).
+ library_names=
+ old_library=
+ dlname=
+
+ # Test again, we may have decided not to build it any more
+ if test "$build_libtool_libs" = yes; then
+ if test "$hardcode_into_libs" = yes; then
+ # Hardcode the library paths
+ hardcode_libdirs=
+ dep_rpath=
+ rpath="$finalize_rpath"
+ test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
+ for libdir in $rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ func_replace_sysroot "$libdir"
+ libdir=$func_replace_sysroot_result
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ func_append dep_rpath " $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) func_apped perm_rpath " $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ if test -n "$hardcode_libdir_flag_spec_ld"; then
+ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
+ else
+ eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+ fi
+ fi
+ if test -n "$runpath_var" && test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ func_append rpath "$dir:"
+ done
+ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+ fi
+ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+ fi
+
+ shlibpath="$finalize_shlibpath"
+ test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+ if test -n "$shlibpath"; then
+ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+ fi
+
+ # Get the real and link names of the library.
+ eval shared_ext=\"$shrext_cmds\"
+ eval library_names=\"$library_names_spec\"
+ set dummy $library_names
+ shift
+ realname="$1"
+ shift
+
+ if test -n "$soname_spec"; then
+ eval soname=\"$soname_spec\"
+ else
+ soname="$realname"
+ fi
+ if test -z "$dlname"; then
+ dlname=$soname
+ fi
+
+ lib="$output_objdir/$realname"
+ linknames=
+ for link
+ do
+ func_append linknames " $link"
+ done
+
+ # Use standard objects if they are pic
+ test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
+ test "X$libobjs" = "X " && libobjs=
+
+ delfiles=
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
+ export_symbols="$output_objdir/$libname.uexp"
+ func_append delfiles " $export_symbols"
+ fi
+
+ orig_export_symbols=
+ case $host_os in
+ cygwin* | mingw* | cegcc*)
+ if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
+ # exporting using user supplied symfile
+ if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
+ # and it's NOT already a .def file. Must figure out
+ # which of the given symbols are data symbols and tag
+ # them as such. So, trigger use of export_symbols_cmds.
+ # export_symbols gets reassigned inside the "prepare
+ # the list of exported symbols" if statement, so the
+ # include_expsyms logic still works.
+ orig_export_symbols="$export_symbols"
+ export_symbols=
+ always_export_symbols=yes
+ fi
+ fi
+ ;;
+ esac
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+ func_verbose "generating symbol list for \`$libname.la'"
+ export_symbols="$output_objdir/$libname.exp"
+ $opt_dry_run || $RM $export_symbols
+ cmds=$export_symbols_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd1 in $cmds; do
+ IFS="$save_ifs"
+ # Take the normal branch if the nm_file_list_spec branch
+ # doesn't work or if tool conversion is not needed.
+ case $nm_file_list_spec~$to_tool_file_cmd in
+ *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
+ try_normal_branch=yes
+ eval cmd=\"$cmd1\"
+ func_len " $cmd"
+ len=$func_len_result
+ ;;
+ *)
+ try_normal_branch=no
+ ;;
+ esac
+ if test "$try_normal_branch" = yes \
+ && { test "$len" -lt "$max_cmd_len" \
+ || test "$max_cmd_len" -le -1; }
+ then
+ func_show_eval "$cmd" 'exit $?'
+ skipped_export=false
+ elif test -n "$nm_file_list_spec"; then
+ func_basename "$output"
+ output_la=$func_basename_result
+ save_libobjs=$libobjs
+ save_output=$output
+ output=${output_objdir}/${output_la}.nm
+ func_to_tool_file "$output"
+ libobjs=$nm_file_list_spec$func_to_tool_file_result
+ func_append delfiles " $output"
+ func_verbose "creating $NM input file list: $output"
+ for obj in $save_libobjs; do
+ func_to_tool_file "$obj"
+ $ECHO "$func_to_tool_file_result"
+ done > "$output"
+ eval cmd=\"$cmd1\"
+ func_show_eval "$cmd" 'exit $?'
+ output=$save_output
+ libobjs=$save_libobjs
+ skipped_export=false
+ else
+ # The command line is too long to execute in one step.
+ func_verbose "using reloadable object file for export list..."
+ skipped_export=:
+ # Break out early, otherwise skipped_export may be
+ # set to false by a later but shorter cmd.
+ break
+ fi
+ done
+ IFS="$save_ifs"
+ if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
+ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+ func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+ fi
+ fi
+ fi
+
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ tmp_export_symbols="$export_symbols"
+ test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
+ fi
+
+ if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
+ # The given exports_symbols file has to be filtered, so filter it.
+ func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+ # FIXME: $output_objdir/$libname.filter potentially contains lots of
+ # 's' commands which not all seds can handle. GNU sed should be fine
+ # though. Also, the filter scales superlinearly with the number of
+ # global variables. join(1) would be nice here, but unfortunately
+ # isn't a blessed tool.
+ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+ func_append delfiles " $export_symbols $output_objdir/$libname.filter"
+ export_symbols=$output_objdir/$libname.def
+ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+ fi
+
+ tmp_deplibs=
+ for test_deplib in $deplibs; do
+ case " $convenience " in
+ *" $test_deplib "*) ;;
+ *)
+ func_append tmp_deplibs " $test_deplib"
+ ;;
+ esac
+ done
+ deplibs="$tmp_deplibs"
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec" &&
+ test "$compiler_needs_object" = yes &&
+ test -z "$libobjs"; then
+ # extract the archives, so we have objects to list.
+ # TODO: could optimize this to just extract one archive.
+ whole_archive_flag_spec=
+ fi
+ if test -n "$whole_archive_flag_spec"; then
+ save_libobjs=$libobjs
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ test "X$libobjs" = "X " && libobjs=
+ else
+ gentop="$output_objdir/${outputname}x"
+ func_append generated " $gentop"
+
+ func_extract_archives $gentop $convenience
+ func_append libobjs " $func_extract_archives_result"
+ test "X$libobjs" = "X " && libobjs=
+ fi
+ fi
+
+ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+ eval flag=\"$thread_safe_flag_spec\"
+ func_append linker_flags " $flag"
+ fi
+
+ # Make a backup of the uninstalled library when relinking
+ if test "$opt_mode" = relink; then
+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
+ fi
+
+ # Do each of the archive commands.
+ if test "$module" = yes && test -n "$module_cmds" ; then
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+ eval test_cmds=\"$module_expsym_cmds\"
+ cmds=$module_expsym_cmds
+ else
+ eval test_cmds=\"$module_cmds\"
+ cmds=$module_cmds
+ fi
+ else
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ eval test_cmds=\"$archive_expsym_cmds\"
+ cmds=$archive_expsym_cmds
+ else
+ eval test_cmds=\"$archive_cmds\"
+ cmds=$archive_cmds
+ fi
+ fi
+
+ if test "X$skipped_export" != "X:" &&
+ func_len " $test_cmds" &&
+ len=$func_len_result &&
+ test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ :
+ else
+ # The command line is too long to link in one step, link piecewise
+ # or, if using GNU ld and skipped_export is not :, use a linker
+ # script.
+
+ # Save the value of $output and $libobjs because we want to
+ # use them later. If we have whole_archive_flag_spec, we
+ # want to use save_libobjs as it was before
+ # whole_archive_flag_spec was expanded, because we can't
+ # assume the linker understands whole_archive_flag_spec.
+ # This may have to be revisited, in case too many
+ # convenience libraries get linked in and end up exceeding
+ # the spec.
+ if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+ save_libobjs=$libobjs
+ fi
+ save_output=$output
+ func_basename "$output"
+ output_la=$func_basename_result
+
+ # Clear the reloadable object creation command queue and
+ # initialize k to one.
+ test_cmds=
+ concat_cmds=
+ objlist=
+ last_robj=
+ k=1
+
+ if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
+ output=${output_objdir}/${output_la}.lnkscript
+ func_verbose "creating GNU ld script: $output"
+ echo 'INPUT (' > $output
+ for obj in $save_libobjs
+ do
+ func_to_tool_file "$obj"
+ $ECHO "$func_to_tool_file_result" >> $output
+ done
+ echo ')' >> $output
+ func_append delfiles " $output"
+ func_to_tool_file "$output"
+ output=$func_to_tool_file_result
+ elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
+ output=${output_objdir}/${output_la}.lnk
+ func_verbose "creating linker input file list: $output"
+ : > $output
+ set x $save_libobjs
+ shift
+ firstobj=
+ if test "$compiler_needs_object" = yes; then
+ firstobj="$1 "
+ shift
+ fi
+ for obj
+ do
+ func_to_tool_file "$obj"
+ $ECHO "$func_to_tool_file_result" >> $output
+ done
+ func_append delfiles " $output"
+ func_to_tool_file "$output"
+ output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
+ else
+ if test -n "$save_libobjs"; then
+ func_verbose "creating reloadable object files..."
+ output=$output_objdir/$output_la-${k}.$objext
+ eval test_cmds=\"$reload_cmds\"
+ func_len " $test_cmds"
+ len0=$func_len_result
+ len=$len0
+
+ # Loop over the list of objects to be linked.
+ for obj in $save_libobjs
+ do
+ func_len " $obj"
+ func_arith $len + $func_len_result
+ len=$func_arith_result
+ if test "X$objlist" = X ||
+ test "$len" -lt "$max_cmd_len"; then
+ func_append objlist " $obj"
+ else
+ # The command $test_cmds is almost too long, add a
+ # command to the queue.
+ if test "$k" -eq 1 ; then
+ # The first file doesn't have a previous command to add.
+ reload_objs=$objlist
+ eval concat_cmds=\"$reload_cmds\"
+ else
+ # All subsequent reloadable object files will link in
+ # the last one created.
+ reload_objs="$objlist $last_robj"
+ eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
+ fi
+ last_robj=$output_objdir/$output_la-${k}.$objext
+ func_arith $k + 1
+ k=$func_arith_result
+ output=$output_objdir/$output_la-${k}.$objext
+ objlist=" $obj"
+ func_len " $last_robj"
+ func_arith $len0 + $func_len_result
+ len=$func_arith_result
+ fi
+ done
+ # Handle the remaining objects by creating one last
+ # reloadable object file. All subsequent reloadable object
+ # files will link in the last one created.
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ reload_objs="$objlist $last_robj"
+ eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
+ if test -n "$last_robj"; then
+ eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
+ fi
+ func_append delfiles " $output"
+
+ else
+ output=
+ fi
+
+ if ${skipped_export-false}; then
+ func_verbose "generating symbol list for \`$libname.la'"
+ export_symbols="$output_objdir/$libname.exp"
+ $opt_dry_run || $RM $export_symbols
+ libobjs=$output
+ # Append the command to create the export file.
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
+ if test -n "$last_robj"; then
+ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
+ fi
+ fi
+
+ test -n "$save_libobjs" &&
+ func_verbose "creating a temporary reloadable object file: $output"
+
+ # Loop through the commands generated above and execute them.
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $concat_cmds; do
+ IFS="$save_ifs"
+ $opt_silent || {
+ func_quote_for_expand "$cmd"
+ eval "func_echo $func_quote_for_expand_result"
+ }
+ $opt_dry_run || eval "$cmd" || {
+ lt_exit=$?
+
+ # Restore the uninstalled library and exit
+ if test "$opt_mode" = relink; then
+ ( cd "$output_objdir" && \
+ $RM "${realname}T" && \
+ $MV "${realname}U" "$realname" )
+ fi
+
+ exit $lt_exit
+ }
+ done
+ IFS="$save_ifs"
+
+ if test -n "$export_symbols_regex" && ${skipped_export-false}; then
+ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+ func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+ fi
+ fi
+
+ if ${skipped_export-false}; then
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ tmp_export_symbols="$export_symbols"
+ test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
+ fi
+
+ if test -n "$orig_export_symbols"; then
+ # The given exports_symbols file has to be filtered, so filter it.
+ func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+ # FIXME: $output_objdir/$libname.filter potentially contains lots of
+ # 's' commands which not all seds can handle. GNU sed should be fine
+ # though. Also, the filter scales superlinearly with the number of
+ # global variables. join(1) would be nice here, but unfortunately
+ # isn't a blessed tool.
+ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+ func_append delfiles " $export_symbols $output_objdir/$libname.filter"
+ export_symbols=$output_objdir/$libname.def
+ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+ fi
+ fi
+
+ libobjs=$output
+ # Restore the value of output.
+ output=$save_output
+
+ if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ test "X$libobjs" = "X " && libobjs=
+ fi
+ # Expand the library linking commands again to reset the
+ # value of $libobjs for piecewise linking.
+
+ # Do each of the archive commands.
+ if test "$module" = yes && test -n "$module_cmds" ; then
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+ cmds=$module_expsym_cmds
+ else
+ cmds=$module_cmds
+ fi
+ else
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ cmds=$archive_expsym_cmds
+ else
+ cmds=$archive_cmds
+ fi
+ fi
+ fi
+
+ if test -n "$delfiles"; then
+ # Append the command to remove temporary files to $cmds.
+ eval cmds=\"\$cmds~\$RM $delfiles\"
+ fi
+
+ # Add any objects from preloaded convenience libraries
+ if test -n "$dlprefiles"; then
+ gentop="$output_objdir/${outputname}x"
+ func_append generated " $gentop"
+
+ func_extract_archives $gentop $dlprefiles
+ func_append libobjs " $func_extract_archives_result"
+ test "X$libobjs" = "X " && libobjs=
+ fi
+
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $opt_silent || {
+ func_quote_for_expand "$cmd"
+ eval "func_echo $func_quote_for_expand_result"
+ }
+ $opt_dry_run || eval "$cmd" || {
+ lt_exit=$?
+
+ # Restore the uninstalled library and exit
+ if test "$opt_mode" = relink; then
+ ( cd "$output_objdir" && \
+ $RM "${realname}T" && \
+ $MV "${realname}U" "$realname" )
+ fi
+
+ exit $lt_exit
+ }
+ done
+ IFS="$save_ifs"
+
+ # Restore the uninstalled library and exit
+ if test "$opt_mode" = relink; then
+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
+
+ if test -n "$convenience"; then
+ if test -z "$whole_archive_flag_spec"; then
+ func_show_eval '${RM}r "$gentop"'
+ fi
+ fi
+
+ exit $EXIT_SUCCESS
+ fi
+
+ # Create links to the real library.
+ for linkname in $linknames; do
+ if test "$realname" != "$linkname"; then
+ func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
+ fi
+ done
+
+ # If -module or -export-dynamic was specified, set the dlname.
+ if test "$module" = yes || test "$export_dynamic" = yes; then
+ # On all known operating systems, these are identical.
+ dlname="$soname"
+ fi
+ fi
+ ;;
+
+ obj)
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ func_warning "\`-dlopen' is ignored for objects"
+ fi
+
+ case " $deplibs" in
+ *\ -l* | *\ -L*)
+ func_warning "\`-l' and \`-L' are ignored for objects" ;;
+ esac
+
+ test -n "$rpath" && \
+ func_warning "\`-rpath' is ignored for objects"
+
+ test -n "$xrpath" && \
+ func_warning "\`-R' is ignored for objects"
+
+ test -n "$vinfo" && \
+ func_warning "\`-version-info' is ignored for objects"
+
+ test -n "$release" && \
+ func_warning "\`-release' is ignored for objects"
+
+ case $output in
+ *.lo)
+ test -n "$objs$old_deplibs" && \
+ func_fatal_error "cannot build library object \`$output' from non-libtool objects"
+
+ libobj=$output
+ func_lo2o "$libobj"
+ obj=$func_lo2o_result
+ ;;
+ *)
+ libobj=
+ obj="$output"
+ ;;
+ esac
+
+ # Delete the old objects.
+ $opt_dry_run || $RM $obj $libobj
+
+ # Objects from convenience libraries. This assumes
+ # single-version convenience libraries. Whenever we create
+ # different ones for PIC/non-PIC, this we'll have to duplicate
+ # the extraction.
+ reload_conv_objs=
+ gentop=
+ # reload_cmds runs $LD directly, so let us get rid of
+ # -Wl from whole_archive_flag_spec and hope we can get by with
+ # turning comma into space..
+ wl=
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
+ reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
+ else
+ gentop="$output_objdir/${obj}x"
+ func_append generated " $gentop"
+
+ func_extract_archives $gentop $convenience
+ reload_conv_objs="$reload_objs $func_extract_archives_result"
+ fi
+ fi
+
+ # If we're not building shared, we need to use non_pic_objs
+ test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
+
+ # Create the old-style object.
+ reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+ output="$obj"
+ func_execute_cmds "$reload_cmds" 'exit $?'
+
+ # Exit if we aren't doing a library object file.
+ if test -z "$libobj"; then
+ if test -n "$gentop"; then
+ func_show_eval '${RM}r "$gentop"'
+ fi
+
+ exit $EXIT_SUCCESS
+ fi
+
+ if test "$build_libtool_libs" != yes; then
+ if test -n "$gentop"; then
+ func_show_eval '${RM}r "$gentop"'
+ fi
+
+ # Create an invalid libtool object if no PIC, so that we don't
+ # accidentally link it into a program.
+ # $show "echo timestamp > $libobj"
+ # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
+ exit $EXIT_SUCCESS
+ fi
+
+ if test -n "$pic_flag" || test "$pic_mode" != default; then
+ # Only do commands if we really have different PIC objects.
+ reload_objs="$libobjs $reload_conv_objs"
+ output="$libobj"
+ func_execute_cmds "$reload_cmds" 'exit $?'
+ fi
+
+ if test -n "$gentop"; then
+ func_show_eval '${RM}r "$gentop"'
+ fi
+
+ exit $EXIT_SUCCESS
+ ;;
+
+ prog)
+ case $host in
+ *cygwin*) func_stripname '' '.exe' "$output"
+ output=$func_stripname_result.exe;;
+ esac
+ test -n "$vinfo" && \
+ func_warning "\`-version-info' is ignored for programs"
+
+ test -n "$release" && \
+ func_warning "\`-release' is ignored for programs"
+
+ test "$preload" = yes \
+ && test "$dlopen_support" = unknown \
+ && test "$dlopen_self" = unknown \
+ && test "$dlopen_self_static" = unknown && \
+ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
+
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library is the System framework
+ compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
+ finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
+ ;;
+ esac
+
+ case $host in
+ *-*-darwin*)
+ # Don't allow lazy linking, it breaks C++ global constructors
+ # But is supposedly fixed on 10.4 or later (yay!).
+ if test "$tagname" = CXX ; then
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
+ 10.[0123])
+ func_append compile_command " ${wl}-bind_at_load"
+ func_append finalize_command " ${wl}-bind_at_load"
+ ;;
+ esac
+ fi
+ # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+ compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ ;;
+ esac
+
+
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
+ for path in $notinst_path; do
+ case " $new_libs " in
+ *" -L$path/$objdir "*) ;;
+ *)
+ case " $compile_deplibs " in
+ *" -L$path/$objdir "*)
+ func_append new_libs " -L$path/$objdir" ;;
+ esac
+ ;;
+ esac
+ done
+ for deplib in $compile_deplibs; do
+ case $deplib in
+ -L*)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) func_append new_libs " $deplib" ;;
+ esac
+ ;;
+ *) func_append new_libs " $deplib" ;;
+ esac
+ done
+ compile_deplibs="$new_libs"
+
+
+ func_append compile_command " $compile_deplibs"
+ func_append finalize_command " $finalize_deplibs"
+
+ if test -n "$rpath$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ for libdir in $rpath $xrpath; do
+ # This is the magic to use -rpath.
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) func_append finalize_rpath " $libdir" ;;
+ esac
+ done
+ fi
+
+ # Now hardcode the library paths
+ rpath=
+ hardcode_libdirs=
+ for libdir in $compile_rpath $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ func_append rpath " $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) func_append perm_rpath " $libdir" ;;
+ esac
+ fi
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+ testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
+ case :$dllsearchpath: in
+ *":$libdir:"*) ;;
+ ::) dllsearchpath=$libdir;;
+ *) func_append dllsearchpath ":$libdir";;
+ esac
+ case :$dllsearchpath: in
+ *":$testbindir:"*) ;;
+ ::) dllsearchpath=$testbindir;;
+ *) func_append dllsearchpath ":$testbindir";;
+ esac
+ ;;
+ esac
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ compile_rpath="$rpath"
+
+ rpath=
+ hardcode_libdirs=
+ for libdir in $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ func_append rpath " $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$finalize_perm_rpath " in
+ *" $libdir "*) ;;
+ *) func_append finalize_perm_rpath " $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ finalize_rpath="$rpath"
+
+ if test -n "$libobjs" && test "$build_old_libs" = yes; then
+ # Transform all the library objects into standard objects.
+ compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+ finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+ fi
+
+ func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
+
+ # template prelinking step
+ if test -n "$prelink_cmds"; then
+ func_execute_cmds "$prelink_cmds" 'exit $?'
+ fi
+
+ wrappers_required=yes
+ case $host in
+ *cegcc* | *mingw32ce*)
+ # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
+ wrappers_required=no
+ ;;
+ *cygwin* | *mingw* )
+ if test "$build_libtool_libs" != yes; then
+ wrappers_required=no
+ fi
+ ;;
+ *)
+ if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+ wrappers_required=no
+ fi
+ ;;
+ esac
+ if test "$wrappers_required" = no; then
+ # Replace the output file specification.
+ compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
+ link_command="$compile_command$compile_rpath"
+
+ # We have no uninstalled library dependencies, so finalize right now.
+ exit_status=0
+ func_show_eval "$link_command" 'exit_status=$?'
+
+ if test -n "$postlink_cmds"; then
+ func_to_tool_file "$output"
+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+ func_execute_cmds "$postlink_cmds" 'exit $?'
+ fi
+
+ # Delete the generated files.
+ if test -f "$output_objdir/${outputname}S.${objext}"; then
+ func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
+ fi
+
+ exit $exit_status
+ fi
+
+ if test -n "$compile_shlibpath$finalize_shlibpath"; then
+ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+ fi
+ if test -n "$finalize_shlibpath"; then
+ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+ fi
+
+ compile_var=
+ finalize_var=
+ if test -n "$runpath_var"; then
+ if test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ func_append rpath "$dir:"
+ done
+ compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ if test -n "$finalize_perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $finalize_perm_rpath; do
+ func_append rpath "$dir:"
+ done
+ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ fi
+
+ if test "$no_install" = yes; then
+ # We don't need to create a wrapper script.
+ link_command="$compile_var$compile_command$compile_rpath"
+ # Replace the output file specification.
+ link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
+ # Delete the old output file.
+ $opt_dry_run || $RM $output
+ # Link the executable and exit
+ func_show_eval "$link_command" 'exit $?'
+
+ if test -n "$postlink_cmds"; then
+ func_to_tool_file "$output"
+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+ func_execute_cmds "$postlink_cmds" 'exit $?'
+ fi
+
+ exit $EXIT_SUCCESS
+ fi
+
+ if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+ func_warning "this platform does not like uninstalled shared libraries"
+ func_warning "\`$output' will be relinked during installation"
+ else
+ if test "$fast_install" != no; then
+ link_command="$finalize_var$compile_command$finalize_rpath"
+ if test "$fast_install" = yes; then
+ relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
+ else
+ # fast_install is set to needless
+ relink_command=
+ fi
+ else
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+ fi
+ fi
+
+ # Replace the output file specification.
+ link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+ # Delete the old output files.
+ $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+ func_show_eval "$link_command" 'exit $?'
+
+ if test -n "$postlink_cmds"; then
+ func_to_tool_file "$output_objdir/$outputname"
+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+ func_execute_cmds "$postlink_cmds" 'exit $?'
+ fi
+
+ # Now create the wrapper script.
+ func_verbose "creating $output"
+
+ # Quote the relink command for shipping.
+ if test -n "$relink_command"; then
+ # Preserve any variables that may affect compiler behavior
+ for var in $variables_saved_for_relink; do
+ if eval test -z \"\${$var+set}\"; then
+ relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+ elif eval var_value=\$$var; test -z "$var_value"; then
+ relink_command="$var=; export $var; $relink_command"
+ else
+ func_quote_for_eval "$var_value"
+ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+ fi
+ done
+ relink_command="(cd `pwd`; $relink_command)"
+ relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
+ fi
+
+ # Only actually do things if not in dry run mode.
+ $opt_dry_run || {
+ # win32 will think the script is a binary if it has
+ # a .exe suffix, so we strip it off here.
+ case $output in
+ *.exe) func_stripname '' '.exe' "$output"
+ output=$func_stripname_result ;;
+ esac
+ # test for cygwin because mv fails w/o .exe extensions
+ case $host in
+ *cygwin*)
+ exeext=.exe
+ func_stripname '' '.exe' "$outputname"
+ outputname=$func_stripname_result ;;
+ *) exeext= ;;
+ esac
+ case $host in
+ *cygwin* | *mingw* )
+ func_dirname_and_basename "$output" "" "."
+ output_name=$func_basename_result
+ output_path=$func_dirname_result
+ cwrappersource="$output_path/$objdir/lt-$output_name.c"
+ cwrapper="$output_path/$output_name.exe"
+ $RM $cwrappersource $cwrapper
+ trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+ func_emit_cwrapperexe_src > $cwrappersource
+
+ # The wrapper executable is built using the $host compiler,
+ # because it contains $host paths and files. If cross-
+ # compiling, it, like the target executable, must be
+ # executed on the $host or under an emulation environment.
+ $opt_dry_run || {
+ $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
+ $STRIP $cwrapper
+ }
+
+ # Now, create the wrapper script for func_source use:
+ func_ltwrapper_scriptname $cwrapper
+ $RM $func_ltwrapper_scriptname_result
+ trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
+ $opt_dry_run || {
+ # note: this script will not be executed, so do not chmod.
+ if test "x$build" = "x$host" ; then
+ $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
+ else
+ func_emit_wrapper no > $func_ltwrapper_scriptname_result
+ fi
+ }
+ ;;
+ * )
+ $RM $output
+ trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
+
+ func_emit_wrapper no > $output
+ chmod +x $output
+ ;;
+ esac
+ }
+ exit $EXIT_SUCCESS
+ ;;
+ esac
+
+ # See if we need to build an old-fashioned archive.
+ for oldlib in $oldlibs; do
+
+ if test "$build_libtool_libs" = convenience; then
+ oldobjs="$libobjs_save $symfileobj"
+ addlibs="$convenience"
+ build_libtool_libs=no
+ else
+ if test "$build_libtool_libs" = module; then
+ oldobjs="$libobjs_save"
+ build_libtool_libs=no
+ else
+ oldobjs="$old_deplibs $non_pic_objects"
+ if test "$preload" = yes && test -f "$symfileobj"; then
+ func_append oldobjs " $symfileobj"
+ fi
+ fi
+ addlibs="$old_convenience"
+ fi
+
+ if test -n "$addlibs"; then
+ gentop="$output_objdir/${outputname}x"
+ func_append generated " $gentop"
+
+ func_extract_archives $gentop $addlibs
+ func_append oldobjs " $func_extract_archives_result"
+ fi
+
+ # Do each command in the archive commands.
+ if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+ cmds=$old_archive_from_new_cmds
+ else
+
+ # Add any objects from preloaded convenience libraries
+ if test -n "$dlprefiles"; then
+ gentop="$output_objdir/${outputname}x"
+ func_append generated " $gentop"
+
+ func_extract_archives $gentop $dlprefiles
+ func_append oldobjs " $func_extract_archives_result"
+ fi
+
+ # POSIX demands no paths to be encoded in archives. We have
+ # to avoid creating archives with duplicate basenames if we
+ # might have to extract them afterwards, e.g., when creating a
+ # static archive out of a convenience library, or when linking
+ # the entirety of a libtool archive into another (currently
+ # not supported by libtool).
+ if (for obj in $oldobjs
+ do
+ func_basename "$obj"
+ $ECHO "$func_basename_result"
+ done | sort | sort -uc >/dev/null 2>&1); then
+ :
+ else
+ echo "copying selected object files to avoid basename conflicts..."
+ gentop="$output_objdir/${outputname}x"
+ func_append generated " $gentop"
+ func_mkdir_p "$gentop"
+ save_oldobjs=$oldobjs
+ oldobjs=
+ counter=1
+ for obj in $save_oldobjs
+ do
+ func_basename "$obj"
+ objbase="$func_basename_result"
+ case " $oldobjs " in
+ " ") oldobjs=$obj ;;
+ *[\ /]"$objbase "*)
+ while :; do
+ # Make sure we don't pick an alternate name that also
+ # overlaps.
+ newobj=lt$counter-$objbase
+ func_arith $counter + 1
+ counter=$func_arith_result
+ case " $oldobjs " in
+ *[\ /]"$newobj "*) ;;
+ *) if test ! -f "$gentop/$newobj"; then break; fi ;;
+ esac
+ done
+ func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+ func_append oldobjs " $gentop/$newobj"
+ ;;
+ *) func_append oldobjs " $obj" ;;
+ esac
+ done
+ fi
+ eval cmds=\"$old_archive_cmds\"
+
+ func_len " $cmds"
+ len=$func_len_result
+ if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ cmds=$old_archive_cmds
+ elif test -n "$archiver_list_spec"; then
+ func_verbose "using command file archive linking..."
+ for obj in $oldobjs
+ do
+ func_to_tool_file "$obj"
+ $ECHO "$func_to_tool_file_result"
+ done > $output_objdir/$libname.libcmd
+ func_to_tool_file "$output_objdir/$libname.libcmd"
+ oldobjs=" $archiver_list_spec$func_to_tool_file_result"
+ cmds=$old_archive_cmds
+ else
+ # the command line is too long to link in one step, link in parts
+ func_verbose "using piecewise archive linking..."
+ save_RANLIB=$RANLIB
+ RANLIB=:
+ objlist=
+ concat_cmds=
+ save_oldobjs=$oldobjs
+ oldobjs=
+ # Is there a better way of finding the last object in the list?
+ for obj in $save_oldobjs
+ do
+ last_oldobj=$obj
+ done
+ eval test_cmds=\"$old_archive_cmds\"
+ func_len " $test_cmds"
+ len0=$func_len_result
+ len=$len0
+ for obj in $save_oldobjs
+ do
+ func_len " $obj"
+ func_arith $len + $func_len_result
+ len=$func_arith_result
+ func_append objlist " $obj"
+ if test "$len" -lt "$max_cmd_len"; then
+ :
+ else
+ # the above command should be used before it gets too long
+ oldobjs=$objlist
+ if test "$obj" = "$last_oldobj" ; then
+ RANLIB=$save_RANLIB
+ fi
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+ objlist=
+ len=$len0
+ fi
+ done
+ RANLIB=$save_RANLIB
+ oldobjs=$objlist
+ if test "X$oldobjs" = "X" ; then
+ eval cmds=\"\$concat_cmds\"
+ else
+ eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+ fi
+ fi
+ fi
+ func_execute_cmds "$cmds" 'exit $?'
+ done
+
+ test -n "$generated" && \
+ func_show_eval "${RM}r$generated"
+
+ # Now create the libtool archive.
+ case $output in
+ *.la)
+ old_library=
+ test "$build_old_libs" = yes && old_library="$libname.$libext"
+ func_verbose "creating $output"
+
+ # Preserve any variables that may affect compiler behavior
+ for var in $variables_saved_for_relink; do
+ if eval test -z \"\${$var+set}\"; then
+ relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+ elif eval var_value=\$$var; test -z "$var_value"; then
+ relink_command="$var=; export $var; $relink_command"
+ else
+ func_quote_for_eval "$var_value"
+ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+ fi
+ done
+ # Quote the link command for shipping.
+ relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+ relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
+ if test "$hardcode_automatic" = yes ; then
+ relink_command=
+ fi
+
+ # Only create the output if not a dry run.
+ $opt_dry_run || {
+ for installed in no yes; do
+ if test "$installed" = yes; then
+ if test -z "$install_libdir"; then
+ break
+ fi
+ output="$output_objdir/$outputname"i
+ # Replace all uninstalled libtool libraries with the installed ones
+ newdependency_libs=
+ for deplib in $dependency_libs; do
+ case $deplib in
+ *.la)
+ func_basename "$deplib"
+ name="$func_basename_result"
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ test -z "$libdir" && \
+ func_fatal_error "\`$deplib' is not a valid libtool archive"
+ func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
+ ;;
+ -L*)
+ func_stripname -L '' "$deplib"
+ func_replace_sysroot "$func_stripname_result"
+ func_append newdependency_libs " -L$func_replace_sysroot_result"
+ ;;
+ -R*)
+ func_stripname -R '' "$deplib"
+ func_replace_sysroot "$func_stripname_result"
+ func_append newdependency_libs " -R$func_replace_sysroot_result"
+ ;;
+ *) func_append newdependency_libs " $deplib" ;;
+ esac
+ done
+ dependency_libs="$newdependency_libs"
+ newdlfiles=
+
+ for lib in $dlfiles; do
+ case $lib in
+ *.la)
+ func_basename "$lib"
+ name="$func_basename_result"
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+ test -z "$libdir" && \
+ func_fatal_error "\`$lib' is not a valid libtool archive"
+ func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
+ ;;
+ *) func_append newdlfiles " $lib" ;;
+ esac
+ done
+ dlfiles="$newdlfiles"
+ newdlprefiles=
+ for lib in $dlprefiles; do
+ case $lib in
+ *.la)
+ # Only pass preopened files to the pseudo-archive (for
+ # eventual linking with the app. that links it) if we
+ # didn't already link the preopened objects directly into
+ # the library:
+ func_basename "$lib"
+ name="$func_basename_result"
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+ test -z "$libdir" && \
+ func_fatal_error "\`$lib' is not a valid libtool archive"
+ func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
+ ;;
+ esac
+ done
+ dlprefiles="$newdlprefiles"
+ else
+ newdlfiles=
+ for lib in $dlfiles; do
+ case $lib in
+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+ *) abs=`pwd`"/$lib" ;;
+ esac
+ func_append newdlfiles " $abs"
+ done
+ dlfiles="$newdlfiles"
+ newdlprefiles=
+ for lib in $dlprefiles; do
+ case $lib in
+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+ *) abs=`pwd`"/$lib" ;;
+ esac
+ func_append newdlprefiles " $abs"
+ done
+ dlprefiles="$newdlprefiles"
+ fi
+ $RM $output
+ # place dlname in correct position for cygwin
+ # In fact, it would be nice if we could use this code for all target
+ # systems that can't hard-code library paths into their executables
+ # and that have no shared library path variable independent of PATH,
+ # but it turns out we can't easily determine that from inspecting
+ # libtool variables, so we have to hard-code the OSs to which it
+ # applies here; at the moment, that means platforms that use the PE
+ # object format with DLL files. See the long comment at the top of
+ # tests/bindir.at for full details.
+ tdlname=$dlname
+ case $host,$output,$installed,$module,$dlname in
+ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
+ # If a -bindir argument was supplied, place the dll there.
+ if test "x$bindir" != x ;
+ then
+ func_relative_path "$install_libdir" "$bindir"
+ tdlname=$func_relative_path_result$dlname
+ else
+ # Otherwise fall back on heuristic.
+ tdlname=../bin/$dlname
+ fi
+ ;;
+ esac
+ $ECHO > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags='$new_inherited_linker_flags'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Names of additional weak libraries provided by this library
+weak_library_names='$weak_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+ if test "$installed" = no && test "$need_relink" = yes; then
+ $ECHO >> $output "\
+relink_command=\"$relink_command\""
+ fi
+ done
+ }
+
+ # Do a symbolic link so that the libtool archive can be found in
+ # LD_LIBRARY_PATH before the program is installed.
+ func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
+ ;;
+ esac
+ exit $EXIT_SUCCESS
+}
+
+{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
+ func_mode_link ${1+"$@"}
+
+
+# func_mode_uninstall arg...
+func_mode_uninstall ()
+{
+ $opt_debug
+ RM="$nonopt"
+ files=
+ rmforce=
+ exit_status=0
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic="$magic"
+
+ for arg
+ do
+ case $arg in
+ -f) func_append RM " $arg"; rmforce=yes ;;
+ -*) func_append RM " $arg" ;;
+ *) func_append files " $arg" ;;
+ esac
+ done
+
+ test -z "$RM" && \
+ func_fatal_help "you must specify an RM program"
+
+ rmdirs=
+
+ for file in $files; do
+ func_dirname "$file" "" "."
+ dir="$func_dirname_result"
+ if test "X$dir" = X.; then
+ odir="$objdir"
+ else
+ odir="$dir/$objdir"
+ fi
+ func_basename "$file"
+ name="$func_basename_result"
+ test "$opt_mode" = uninstall && odir="$dir"
+
+ # Remember odir for removal later, being careful to avoid duplicates
+ if test "$opt_mode" = clean; then
+ case " $rmdirs " in
+ *" $odir "*) ;;
+ *) func_append rmdirs " $odir" ;;
+ esac
+ fi
+
+ # Don't error if the file doesn't exist and rm -f was used.
+ if { test -L "$file"; } >/dev/null 2>&1 ||
+ { test -h "$file"; } >/dev/null 2>&1 ||
+ test -f "$file"; then
+ :
+ elif test -d "$file"; then
+ exit_status=1
+ continue
+ elif test "$rmforce" = yes; then
+ continue
+ fi
+
+ rmfiles="$file"
+
+ case $name in
+ *.la)
+ # Possibly a libtool archive, so verify it.
+ if func_lalib_p "$file"; then
+ func_source $dir/$name
+
+ # Delete the libtool libraries and symlinks.
+ for n in $library_names; do
+ func_append rmfiles " $odir/$n"
+ done
+ test -n "$old_library" && func_append rmfiles " $odir/$old_library"
+
+ case "$opt_mode" in
+ clean)
+ case " $library_names " in
+ *" $dlname "*) ;;
+ *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
+ esac
+ test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
+ ;;
+ uninstall)
+ if test -n "$library_names"; then
+ # Do each command in the postuninstall commands.
+ func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+ fi
+
+ if test -n "$old_library"; then
+ # Do each command in the old_postuninstall commands.
+ func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+ fi
+ # FIXME: should reinstall the best remaining shared library.
+ ;;
+ esac
+ fi
+ ;;
+
+ *.lo)
+ # Possibly a libtool object, so verify it.
+ if func_lalib_p "$file"; then
+
+ # Read the .lo file
+ func_source $dir/$name
+
+ # Add PIC object to the list of files to remove.
+ if test -n "$pic_object" &&
+ test "$pic_object" != none; then
+ func_append rmfiles " $dir/$pic_object"
+ fi
+
+ # Add non-PIC object to the list of files to remove.
+ if test -n "$non_pic_object" &&
+ test "$non_pic_object" != none; then
+ func_append rmfiles " $dir/$non_pic_object"
+ fi
+ fi
+ ;;
+
+ *)
+ if test "$opt_mode" = clean ; then
+ noexename=$name
+ case $file in
+ *.exe)
+ func_stripname '' '.exe' "$file"
+ file=$func_stripname_result
+ func_stripname '' '.exe' "$name"
+ noexename=$func_stripname_result
+ # $file with .exe has already been added to rmfiles,
+ # add $file without .exe
+ func_append rmfiles " $file"
+ ;;
+ esac
+ # Do a test to see if this is a libtool program.
+ if func_ltwrapper_p "$file"; then
+ if func_ltwrapper_executable_p "$file"; then
+ func_ltwrapper_scriptname "$file"
+ relink_command=
+ func_source $func_ltwrapper_scriptname_result
+ func_append rmfiles " $func_ltwrapper_scriptname_result"
+ else
+ relink_command=
+ func_source $dir/$noexename
+ fi
+
+ # note $name still contains .exe if it was in $file originally
+ # as does the version of $file that was added into $rmfiles
+ func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
+ if test "$fast_install" = yes && test -n "$relink_command"; then
+ func_append rmfiles " $odir/lt-$name"
+ fi
+ if test "X$noexename" != "X$name" ; then
+ func_append rmfiles " $odir/lt-${noexename}.c"
+ fi
+ fi
+ fi
+ ;;
+ esac
+ func_show_eval "$RM $rmfiles" 'exit_status=1'
+ done
+
+ # Try to remove the ${objdir}s in the directories where we deleted files
+ for dir in $rmdirs; do
+ if test -d "$dir"; then
+ func_show_eval "rmdir $dir >/dev/null 2>&1"
+ fi
+ done
+
+ exit $exit_status
+}
+
+{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
+ func_mode_uninstall ${1+"$@"}
+
+test -z "$opt_mode" && {
+ help="$generic_help"
+ func_fatal_help "you must specify a MODE"
+}
+
+test -z "$exec_cmd" && \
+ func_fatal_help "invalid operation mode \`$opt_mode'"
+
+if test -n "$exec_cmd"; then
+ eval exec "$exec_cmd"
+ exit $EXIT_FAILURE
+fi
+
+exit $exit_status
+
+
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries. Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them. This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration. But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+build_libtool_libs=no
+build_old_libs=yes
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
+# vi:sw=2
+
diff --git a/m4/intltool.m4 b/m4/intltool.m4
new file mode 100644
index 0000000..839e855
--- /dev/null
+++ b/m4/intltool.m4
@@ -0,0 +1,216 @@
+## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*-
+## Copyright (C) 2001 Eazel, Inc.
+## Author: Maciej Stachowiak <[email protected]>
+## Kenneth Christiansen <[email protected]>
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+##
+## As a special exception to the GNU General Public License, if you
+## distribute this file as part of a program that contains a
+## configuration script generated by Autoconf, you may include it under
+## the same distribution terms that you use for the rest of that program.
+
+dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
+# serial 40 IT_PROG_INTLTOOL
+AC_DEFUN([IT_PROG_INTLTOOL], [
+AC_PREREQ([2.50])dnl
+AC_REQUIRE([AM_NLS])dnl
+
+case "$am__api_version" in
+ 1.[01234])
+ AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool])
+ ;;
+ *)
+ ;;
+esac
+
+if test -n "$1"; then
+ AC_MSG_CHECKING([for intltool >= $1])
+
+ INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
+ INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3`
+ [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
+ ]
+ AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found])
+ test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" ||
+ AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.])
+fi
+
+AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update])
+AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge])
+AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract])
+if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then
+ AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.])
+fi
+
+ INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@'
+ INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@'
+ INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+
+_IT_SUBST(INTLTOOL_DESKTOP_RULE)
+_IT_SUBST(INTLTOOL_DIRECTORY_RULE)
+_IT_SUBST(INTLTOOL_KEYS_RULE)
+_IT_SUBST(INTLTOOL_PROP_RULE)
+_IT_SUBST(INTLTOOL_OAF_RULE)
+_IT_SUBST(INTLTOOL_PONG_RULE)
+_IT_SUBST(INTLTOOL_SERVER_RULE)
+_IT_SUBST(INTLTOOL_SHEET_RULE)
+_IT_SUBST(INTLTOOL_SOUNDLIST_RULE)
+_IT_SUBST(INTLTOOL_UI_RULE)
+_IT_SUBST(INTLTOOL_XAM_RULE)
+_IT_SUBST(INTLTOOL_KBD_RULE)
+_IT_SUBST(INTLTOOL_XML_RULE)
+_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE)
+_IT_SUBST(INTLTOOL_CAVES_RULE)
+_IT_SUBST(INTLTOOL_SCHEMAS_RULE)
+_IT_SUBST(INTLTOOL_THEME_RULE)
+_IT_SUBST(INTLTOOL_SERVICE_RULE)
+_IT_SUBST(INTLTOOL_POLICY_RULE)
+
+# Check the gettext tools to make sure they are GNU
+AC_PATH_PROG(XGETTEXT, xgettext)
+AC_PATH_PROG(MSGMERGE, msgmerge)
+AC_PATH_PROG(MSGFMT, msgfmt)
+AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then
+ AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
+fi
+xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`"
+mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`"
+mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`"
+if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then
+ AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
+fi
+
+AC_PATH_PROG(INTLTOOL_PERL, perl)
+if test -z "$INTLTOOL_PERL"; then
+ AC_MSG_ERROR([perl not found])
+fi
+AC_MSG_CHECKING([for perl >= 5.8.1])
+$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1
+if test $? -ne 0; then
+ AC_MSG_ERROR([perl 5.8.1 is required for intltool])
+else
+ IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`"
+ AC_MSG_RESULT([$IT_PERL_VERSION])
+fi
+if test "x$2" != "xno-xml"; then
+ AC_MSG_CHECKING([for XML::Parser])
+ if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
+ AC_MSG_RESULT([ok])
+ else
+ AC_MSG_ERROR([XML::Parser perl module is required for intltool])
+ fi
+fi
+
+# Substitute ALL_LINGUAS so we can use it in po/Makefile
+AC_SUBST(ALL_LINGUAS)
+
+# Set DATADIRNAME correctly if it is not set yet
+# (copied from glib-gettext.m4)
+if test -z "$DATADIRNAME"; then
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[]],
+ [[extern int _nl_msg_cat_cntr;
+ return _nl_msg_cat_cntr]])],
+ [DATADIRNAME=share],
+ [case $host in
+ *-*-solaris*)
+ dnl On Solaris, if bind_textdomain_codeset is in libc,
+ dnl GNU format message catalog is always supported,
+ dnl since both are added to the libc all together.
+ dnl Hence, we'd like to go with DATADIRNAME=share
+ dnl in this case.
+ AC_CHECK_FUNC(bind_textdomain_codeset,
+ [DATADIRNAME=share], [DATADIRNAME=lib])
+ ;;
+ *)
+ [DATADIRNAME=lib]
+ ;;
+ esac])
+fi
+AC_SUBST(DATADIRNAME)
+
+IT_PO_SUBDIR([po])
+
+])
+
+
+# IT_PO_SUBDIR(DIRNAME)
+# ---------------------
+# All po subdirs have to be declared with this macro; the subdir "po" is
+# declared by IT_PROG_INTLTOOL.
+#
+AC_DEFUN([IT_PO_SUBDIR],
+[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS.
+dnl
+dnl The following CONFIG_COMMANDS should be executed at the very end
+dnl of config.status.
+AC_CONFIG_COMMANDS_PRE([
+ AC_CONFIG_COMMANDS([$1/stamp-it], [
+ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then
+ AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.])
+ fi
+ rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp"
+ >"$1/stamp-it.tmp"
+ [sed '/^#/d
+ s/^[[].*] *//
+ /^[ ]*$/d
+ '"s|^| $ac_top_srcdir/|" \
+ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES"
+ ]
+ [sed '/^POTFILES =/,/[^\\]$/ {
+ /^POTFILES =/!d
+ r $1/POTFILES
+ }
+ ' "$1/Makefile.in" >"$1/Makefile"]
+ rm -f "$1/Makefile.tmp"
+ mv "$1/stamp-it.tmp" "$1/stamp-it"
+ ])
+])dnl
+])
+
+# _IT_SUBST(VARIABLE)
+# -------------------
+# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST
+#
+AC_DEFUN([_IT_SUBST],
+[
+AC_SUBST([$1])
+m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])])
+]
+)
+
+# deprecated macros
+AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL])
+# A hint is needed for aclocal from Automake <= 1.9.4:
+# AC_DEFUN([AC_PROG_INTLTOOL], ...)
+
diff --git a/m4/libtool.m4 b/m4/libtool.m4
new file mode 100644
index 0000000..d812584
--- /dev/null
+++ b/m4/libtool.m4
@@ -0,0 +1,7831 @@
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+# Inc.
+# Written by Gordon Matzigkeit, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+m4_define([_LT_COPYING], [dnl
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+# Inc.
+# Written by Gordon Matzigkeit, 1996
+#
+# This file is part of GNU Libtool.
+#
+# GNU Libtool 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.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+])
+
+# serial 57 LT_INIT
+
+
+# LT_PREREQ(VERSION)
+# ------------------
+# Complain and exit if this libtool version is less that VERSION.
+m4_defun([LT_PREREQ],
+[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
+ [m4_default([$3],
+ [m4_fatal([Libtool version $1 or higher is required],
+ 63)])],
+ [$2])])
+
+
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+m4_defun([_LT_CHECK_BUILDDIR],
+[case `pwd` in
+ *\ * | *\ *)
+ AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
+esac
+])
+
+
+# LT_INIT([OPTIONS])
+# ------------------
+AC_DEFUN([LT_INIT],
+[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+AC_BEFORE([$0], [LT_LANG])dnl
+AC_BEFORE([$0], [LT_OUTPUT])dnl
+AC_BEFORE([$0], [LTDL_INIT])dnl
+m4_require([_LT_CHECK_BUILDDIR])dnl
+
+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+dnl unless we require an AC_DEFUNed macro:
+AC_REQUIRE([LTOPTIONS_VERSION])dnl
+AC_REQUIRE([LTSUGAR_VERSION])dnl
+AC_REQUIRE([LTVERSION_VERSION])dnl
+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+m4_require([_LT_PROG_LTMAIN])dnl
+
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
+dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+_LT_SETUP
+
+# Only expand once:
+m4_define([LT_INIT])
+])# LT_INIT
+
+# Old names:
+AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
+AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
+dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+m4_defun([_LT_CC_BASENAME],
+[for cc_temp in $1""; do
+ case $cc_temp in
+ compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+ distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+])
+
+
+# _LT_FILEUTILS_DEFAULTS
+# ----------------------
+# It is okay to use these file commands and assume they have been set
+# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
+m4_defun([_LT_FILEUTILS_DEFAULTS],
+[: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+])# _LT_FILEUTILS_DEFAULTS
+
+
+# _LT_SETUP
+# ---------
+m4_defun([_LT_SETUP],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+
+_LT_DECL([], [host_alias], [0], [The host system])dnl
+_LT_DECL([], [host], [0])dnl
+_LT_DECL([], [host_os], [0])dnl
+dnl
+_LT_DECL([], [build_alias], [0], [The build system])dnl
+_LT_DECL([], [build], [0])dnl
+_LT_DECL([], [build_os], [0])dnl
+dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+test -z "$LN_S" && LN_S="ln -s"
+_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
+dnl
+AC_REQUIRE([LT_CMD_MAX_LEN])dnl
+_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
+_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
+dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
+m4_require([_LT_CMD_RELOAD])dnl
+m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
+m4_require([_LT_CMD_OLD_ARCHIVE])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_WITH_SYSROOT])dnl
+
+_LT_CONFIG_LIBTOOL_INIT([
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+fi
+])
+if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+fi
+
+_LT_CHECK_OBJDIR
+
+m4_require([_LT_TAG_COMPILER])dnl
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ _LT_PATH_MAGIC
+ fi
+ ;;
+esac
+
+# Use C for the default configuration in the libtool script
+LT_SUPPORTED_TAG([CC])
+_LT_LANG_C_CONFIG
+_LT_LANG_DEFAULT_CONFIG
+_LT_CONFIG_COMMANDS
+])# _LT_SETUP
+
+
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
+[# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+])
+
+# _LT_PROG_LTMAIN
+# ---------------
+# Note that this code is called both from `configure', and `config.status'
+# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably,
+# `config.status' has no value for ac_aux_dir unless we are using Automake,
+# so we pass a copy along to make sure it has a sensible value anyway.
+m4_defun([_LT_PROG_LTMAIN],
+[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
+_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
+ltmain="$ac_aux_dir/ltmain.sh"
+])# _LT_PROG_LTMAIN
+
+
+## ------------------------------------- ##
+## Accumulate code for creating libtool. ##
+## ------------------------------------- ##
+
+# So that we can recreate a full libtool script including additional
+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+# in macros and then make a single call at the end using the `libtool'
+# label.
+
+
+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+# ----------------------------------------
+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL_INIT],
+[m4_ifval([$1],
+ [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
+ [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_INIT])
+
+
+# _LT_CONFIG_LIBTOOL([COMMANDS])
+# ------------------------------
+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL],
+[m4_ifval([$1],
+ [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
+ [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
+
+
+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+# -----------------------------------------------------
+m4_defun([_LT_CONFIG_SAVE_COMMANDS],
+[_LT_CONFIG_LIBTOOL([$1])
+_LT_CONFIG_LIBTOOL_INIT([$2])
+])
+
+
+# _LT_FORMAT_COMMENT([COMMENT])
+# -----------------------------
+# Add leading comment marks to the start of each line, and a trailing
+# full-stop to the whole comment if one is not present already.
+m4_define([_LT_FORMAT_COMMENT],
+[m4_ifval([$1], [
+m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
+ [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
+)])
+
+
+
+## ------------------------ ##
+## FIXME: Eliminate VARNAME ##
+## ------------------------ ##
+
+
+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+# -------------------------------------------------------------------
+# CONFIGNAME is the name given to the value in the libtool script.
+# VARNAME is the (base) name used in the configure script.
+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+# VARNAME. Any other value will be used directly.
+m4_define([_LT_DECL],
+[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
+ [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
+ [m4_ifval([$1], [$1], [$2])])
+ lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
+ m4_ifval([$4],
+ [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
+ lt_dict_add_subkey([lt_decl_dict], [$2],
+ [tagged?], [m4_ifval([$5], [yes], [no])])])
+])
+
+
+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+# --------------------------------------------------------
+m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
+
+
+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_tag_varnames],
+[_lt_decl_filter([tagged?], [yes], $@)])
+
+
+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+# ---------------------------------------------------------
+m4_define([_lt_decl_filter],
+[m4_case([$#],
+ [0], [m4_fatal([$0: too few arguments: $#])],
+ [1], [m4_fatal([$0: too few arguments: $#: $1])],
+ [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
+ [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
+ [lt_dict_filter([lt_decl_dict], $@)])[]dnl
+])
+
+
+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+# --------------------------------------------------
+m4_define([lt_decl_quote_varnames],
+[_lt_decl_filter([value], [1], $@)])
+
+
+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_dquote_varnames],
+[_lt_decl_filter([value], [2], $@)])
+
+
+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_varnames_tagged],
+[m4_assert([$# <= 2])dnl
+_$0(m4_quote(m4_default([$1], [[, ]])),
+ m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
+ m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
+m4_define([_lt_decl_varnames_tagged],
+[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
+
+
+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_all_varnames],
+[_$0(m4_quote(m4_default([$1], [[, ]])),
+ m4_if([$2], [],
+ m4_quote(lt_decl_varnames),
+ m4_quote(m4_shift($@))))[]dnl
+])
+m4_define([_lt_decl_all_varnames],
+[lt_join($@, lt_decl_varnames_tagged([$1],
+ lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
+])
+
+
+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+# ------------------------------------
+# Quote a variable value, and forward it to `config.status' so that its
+# declaration there will have the same value as in `configure'. VARNAME
+# must have a single quote delimited value for this to work.
+m4_define([_LT_CONFIG_STATUS_DECLARE],
+[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
+
+
+# _LT_CONFIG_STATUS_DECLARATIONS
+# ------------------------------
+# We delimit libtool config variables with single quotes, so when
+# we write them to config.status, we have to be sure to quote all
+# embedded single quotes properly. In configure, this macro expands
+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+#
+# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
+m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
+ [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAGS
+# ----------------
+# Output comment and list of tags supported by the script
+m4_defun([_LT_LIBTOOL_TAGS],
+[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
+available_tags="_LT_TAGS"dnl
+])
+
+
+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+# -----------------------------------
+# Extract the dictionary values for VARNAME (optionally with TAG) and
+# expand to a commented shell variable setting:
+#
+# # Some comment about what VAR is for.
+# visible_name=$lt_internal_name
+m4_define([_LT_LIBTOOL_DECLARE],
+[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
+ [description])))[]dnl
+m4_pushdef([_libtool_name],
+ m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
+m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
+ [0], [_libtool_name=[$]$1],
+ [1], [_libtool_name=$lt_[]$1],
+ [2], [_libtool_name=$lt_[]$1],
+ [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
+m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
+])
+
+
+# _LT_LIBTOOL_CONFIG_VARS
+# -----------------------
+# Produce commented declarations of non-tagged libtool config variables
+# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
+# script. Tagged libtool config variables (even for the LIBTOOL CONFIG
+# section) are produced by _LT_LIBTOOL_TAG_VARS.
+m4_defun([_LT_LIBTOOL_CONFIG_VARS],
+[m4_foreach([_lt_var],
+ m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
+ [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAG_VARS(TAG)
+# -------------------------
+m4_define([_LT_LIBTOOL_TAG_VARS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
+ [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
+
+
+# _LT_TAGVAR(VARNAME, [TAGNAME])
+# ------------------------------
+m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
+
+
+# _LT_CONFIG_COMMANDS
+# -------------------
+# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of
+# variables for single and double quote escaping we saved from calls
+# to _LT_DECL, we can put quote escaped variables declarations
+# into `config.status', and then the shell code to quote escape them in
+# for loops in `config.status'. Finally, any additional code accumulated
+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+m4_defun([_LT_CONFIG_COMMANDS],
+[AC_PROVIDE_IFELSE([LT_OUTPUT],
+ dnl If the libtool generation code has been placed in $CONFIG_LT,
+ dnl instead of duplicating it all over again into config.status,
+ dnl then we will have config.status run $CONFIG_LT later, so it
+ dnl needs to know what name is stored there:
+ [AC_CONFIG_COMMANDS([libtool],
+ [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
+ dnl If the libtool generation code is destined for config.status,
+ dnl expand the accumulated commands and init code now:
+ [AC_CONFIG_COMMANDS([libtool],
+ [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
+])#_LT_CONFIG_COMMANDS
+
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
+[
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+_LT_CONFIG_STATUS_DECLARATIONS
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$[]1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_quote_varnames); do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[[\\\\\\\`\\"\\\$]]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_dquote_varnames); do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[[\\\\\\\`\\"\\\$]]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+_LT_OUTPUT_LIBTOOL_INIT
+])
+
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable. If COMMENT is supplied, it is inserted after the
+# `#!' sequence but before initialization text begins. After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script. The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+m4_ifdef([AS_INIT_GENERATED],
+[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
+[m4_defun([_LT_GENERATED_FILE_INIT],
+[m4_require([AS_PREPARE])]dnl
+[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
+[lt_write_fail=0
+cat >$1 <<_ASEOF || lt_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+$2
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$1 <<\_ASEOF || lt_write_fail=1
+AS_SHELL_SANITIZE
+_AS_PREPARE
+exec AS_MESSAGE_FD>&1
+_ASEOF
+test $lt_write_fail = 0 && chmod +x $1[]dnl
+m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
+
+# LT_OUTPUT
+# ---------
+# This macro allows early generation of the libtool script (before
+# AC_OUTPUT is called), incase it is used in configure for compilation
+# tests.
+AC_DEFUN([LT_OUTPUT],
+[: ${CONFIG_LT=./config.lt}
+AC_MSG_NOTICE([creating $CONFIG_LT])
+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
+[# Run this file to recreate a libtool stub with the current configuration.])
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+lt_cl_silent=false
+exec AS_MESSAGE_LOG_FD>>config.log
+{
+ echo
+ AS_BOX([Running $as_me.])
+} >&AS_MESSAGE_LOG_FD
+
+lt_cl_help="\
+\`$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $[0] [[OPTIONS]]
+
+ -h, --help print this help, then exit
+ -V, --version print version number, then exit
+ -q, --quiet do not print progress messages
+ -d, --debug don't remove temporary files
+
+Report bugs to <[email protected]>."
+
+lt_cl_version="\
+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+configured by $[0], generated by m4_PACKAGE_STRING.
+
+Copyright (C) 2010 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test $[#] != 0
+do
+ case $[1] in
+ --version | --v* | -V )
+ echo "$lt_cl_version"; exit 0 ;;
+ --help | --h* | -h )
+ echo "$lt_cl_help"; exit 0 ;;
+ --debug | --d* | -d )
+ debug=: ;;
+ --quiet | --q* | --silent | --s* | -q )
+ lt_cl_silent=: ;;
+
+ -*) AC_MSG_ERROR([unrecognized option: $[1]
+Try \`$[0] --help' for more information.]) ;;
+
+ *) AC_MSG_ERROR([unrecognized argument: $[1]
+Try \`$[0] --help' for more information.]) ;;
+ esac
+ shift
+done
+
+if $lt_cl_silent; then
+ exec AS_MESSAGE_FD>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AC_MSG_NOTICE([creating $ofile])
+_LT_OUTPUT_LIBTOOL_COMMANDS
+AS_EXIT(0)
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure. Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+lt_cl_success=:
+test "$silent" = yes &&
+ lt_config_lt_args="$lt_config_lt_args --quiet"
+exec AS_MESSAGE_LOG_FD>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec AS_MESSAGE_LOG_FD>>config.log
+$lt_cl_success || AS_EXIT(1)
+])# LT_OUTPUT
+
+
+# _LT_CONFIG(TAG)
+# ---------------
+# If TAG is the built-in tag, create an initial libtool script with a
+# default configuration from the untagged config vars. Otherwise add code
+# to config.status for appending the configuration named by TAG from the
+# matching tagged config vars.
+m4_defun([_LT_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_CONFIG_SAVE_COMMANDS([
+ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
+ m4_if(_LT_TAG, [C], [
+ # See if we are running on zsh, and set the options which allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile="${ofile}T"
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+
+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+_LT_COPYING
+_LT_LIBTOOL_TAGS
+
+# ### BEGIN LIBTOOL CONFIG
+_LT_LIBTOOL_CONFIG_VARS
+_LT_LIBTOOL_TAG_VARS
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+ _LT_PROG_LTMAIN
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ _LT_PROG_REPLACE_SHELLFNS
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+],
+[cat <<_LT_EOF >> "$ofile"
+
+dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
+dnl in a comment (ie after a #).
+# ### BEGIN LIBTOOL TAG CONFIG: $1
+_LT_LIBTOOL_TAG_VARS(_LT_TAG)
+# ### END LIBTOOL TAG CONFIG: $1
+_LT_EOF
+])dnl /m4_if
+],
+[m4_if([$1], [], [
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ TIMESTAMP='$TIMESTAMP'
+ RM='$RM'
+ ofile='$ofile'], [])
+])dnl /_LT_CONFIG_SAVE_COMMANDS
+])# _LT_CONFIG
+
+
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+# autoconf --trace 'LT_SUPPORTED_TAG:$1'
+AC_DEFUN([LT_SUPPORTED_TAG], [])
+
+
+# C support is built-in for now
+m4_define([_LT_LANG_C_enabled], [])
+m4_define([_LT_TAGS], [])
+
+
+# LT_LANG(LANG)
+# -------------
+# Enable libtool support for the given language if not already enabled.
+AC_DEFUN([LT_LANG],
+[AC_BEFORE([$0], [LT_OUTPUT])dnl
+m4_case([$1],
+ [C], [_LT_LANG(C)],
+ [C++], [_LT_LANG(CXX)],
+ [Java], [_LT_LANG(GCJ)],
+ [Fortran 77], [_LT_LANG(F77)],
+ [Fortran], [_LT_LANG(FC)],
+ [Windows Resource], [_LT_LANG(RC)],
+ [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+ [_LT_LANG($1)],
+ [m4_fatal([$0: unsupported language: "$1"])])])dnl
+])# LT_LANG
+
+
+# _LT_LANG(LANGNAME)
+# ------------------
+m4_defun([_LT_LANG],
+[m4_ifdef([_LT_LANG_]$1[_enabled], [],
+ [LT_SUPPORTED_TAG([$1])dnl
+ m4_append([_LT_TAGS], [$1 ])dnl
+ m4_define([_LT_LANG_]$1[_enabled], [])dnl
+ _LT_LANG_$1_CONFIG($1)])dnl
+])# _LT_LANG
+
+
+# _LT_LANG_DEFAULT_CONFIG
+# -----------------------
+m4_defun([_LT_LANG_DEFAULT_CONFIG],
+[AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [LT_LANG(CXX)],
+ [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_F77],
+ [LT_LANG(F77)],
+ [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_FC],
+ [LT_LANG(FC)],
+ [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
+
+dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
+dnl pulling things in needlessly.
+AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+ [LT_LANG(GCJ)],
+ [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+ [LT_LANG(GCJ)],
+ [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
+ [LT_LANG(GCJ)],
+ [m4_ifdef([AC_PROG_GCJ],
+ [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
+ m4_ifdef([A][M_PROG_GCJ],
+ [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
+ m4_ifdef([LT_PROG_GCJ],
+ [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
+
+AC_PROVIDE_IFELSE([LT_PROG_RC],
+ [LT_LANG(RC)],
+ [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
+])# _LT_LANG_DEFAULT_CONFIG
+
+# Obsolete macros:
+AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
+dnl AC_DEFUN([AC_LIBTOOL_F77], [])
+dnl AC_DEFUN([AC_LIBTOOL_FC], [])
+dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+dnl AC_DEFUN([AC_LIBTOOL_RC], [])
+
+
+# _LT_TAG_COMPILER
+# ----------------
+m4_defun([_LT_TAG_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
+_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
+_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
+_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_TAG_COMPILER
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+m4_defun([_LT_COMPILER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+m4_defun([_LT_LINKER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+])# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
+ case $host_os in
+ rhapsody* | darwin*)
+ AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+ AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+ AC_CHECK_TOOL([LIPO], [lipo], [:])
+ AC_CHECK_TOOL([OTOOL], [otool], [:])
+ AC_CHECK_TOOL([OTOOL64], [otool64], [:])
+ _LT_DECL([], [DSYMUTIL], [1],
+ [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
+ _LT_DECL([], [NMEDIT], [1],
+ [Tool to change global to local symbols on Mac OS X])
+ _LT_DECL([], [LIPO], [1],
+ [Tool to manipulate fat objects and archives on Mac OS X])
+ _LT_DECL([], [OTOOL], [1],
+ [ldd/readelf like tool for Mach-O binaries on Mac OS X])
+ _LT_DECL([], [OTOOL64], [1],
+ [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
+
+ AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+ [lt_cv_apple_cc_single_mod=no
+ if test -z "${LT_MULTI_MODULE}"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi])
+ AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+ [lt_cv_ld_exported_symbols_list],
+ [lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+ [lt_cv_ld_exported_symbols_list=yes],
+ [lt_cv_ld_exported_symbols_list=no])
+ LDFLAGS="$save_LDFLAGS"
+ ])
+ AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
+ [lt_cv_ld_force_load=no
+ cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
+ echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+ $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+ echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
+ $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
+ cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
+ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+ _lt_result=$?
+ if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
+ lt_cv_ld_force_load=yes
+ else
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ fi
+ rm -f conftest.err libconftest.a conftest conftest.c
+ rm -rf conftest.dSYM
+ ])
+ case $host_os in
+ rhapsody* | darwin1.[[012]])
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ 10.[[012]]*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+ _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ fi
+ if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+])
+
+
+# _LT_DARWIN_LINKER_FEATURES
+# --------------------------
+# Checks for linker and compiler features on darwin
+m4_defun([_LT_DARWIN_LINKER_FEATURES],
+[
+ m4_require([_LT_REQUIRED_DARWIN_CHECKS])
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_automatic, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ if test "$lt_cv_ld_force_load" = "yes"; then
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+ else
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+ fi
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
+ case $cc_basename in
+ ifort*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test "$_lt_dar_can_shared" = "yes"; then
+ output_verbose_link_cmd=func_echo_all
+ _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+ m4_if([$1], [CXX],
+[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+ _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+ _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+ fi
+],[])
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+])
+
+# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
+# ----------------------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+# Store the results from the different compilers for each TAGNAME.
+# Allow to override them for all tags through lt_cv_aix_libpath.
+m4_defun([_LT_SYS_MODULE_PATH_AIX],
+[m4_require([_LT_DECL_SED])dnl
+if test "${lt_cv_aix_libpath+set}" = set; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
+ lt_aix_libpath_sed='[
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }]'
+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi],[])
+ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
+ fi
+ ])
+ aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
+fi
+])# _LT_SYS_MODULE_PATH_AIX
+
+
+# _LT_SHELL_INIT(ARG)
+# -------------------
+m4_define([_LT_SHELL_INIT],
+[m4_divert_text([M4SH-INIT], [$1
+])])# _LT_SHELL_INIT
+
+
+
+# _LT_PROG_ECHO_BACKSLASH
+# -----------------------
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script which will find a shell with a builtin
+# printf (which we can use as an echo command).
+m4_defun([_LT_PROG_ECHO_BACKSLASH],
+[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+AC_MSG_CHECKING([how to print strings])
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='printf %s\n'
+else
+ # Use this function as a fallback that always works.
+ func_fallback_echo ()
+ {
+ eval 'cat <<_LTECHO_EOF
+$[]1
+_LTECHO_EOF'
+ }
+ ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO "$*"
+}
+
+case "$ECHO" in
+ printf*) AC_MSG_RESULT([printf]) ;;
+ print*) AC_MSG_RESULT([print -r]) ;;
+ *) AC_MSG_RESULT([cat]) ;;
+esac
+
+m4_ifdef([_AS_DETECT_SUGGESTED],
+[_AS_DETECT_SUGGESTED([
+ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
+ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+ PATH=/empty FPATH=/empty; export PATH FPATH
+ test "X`printf %s $ECHO`" = "X$ECHO" \
+ || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
+
+_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
+_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
+])# _LT_PROG_ECHO_BACKSLASH
+
+
+# _LT_WITH_SYSROOT
+# ----------------
+AC_DEFUN([_LT_WITH_SYSROOT],
+[AC_MSG_CHECKING([for sysroot])
+AC_ARG_WITH([sysroot],
+[ --with-sysroot[=DIR] Search for dependent libraries within DIR
+ (or the compiler's sysroot if not specified).],
+[], [with_sysroot=no])
+
+dnl lt_sysroot will always be passed unquoted. We quote it here
+dnl in case the user passed a directory name.
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+ if test "$GCC" = yes; then
+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+ fi
+ ;; #(
+ /*)
+ lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+ ;; #(
+ no|'')
+ ;; #(
+ *)
+ AC_MSG_RESULT([${with_sysroot}])
+ AC_MSG_ERROR([The sysroot must be an absolute path.])
+ ;;
+esac
+
+ AC_MSG_RESULT([${lt_sysroot:-no}])
+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
+[dependent libraries, and in which our libraries should be installed.])])
+
+# _LT_ENABLE_LOCK
+# ---------------
+m4_defun([_LT_ENABLE_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+ [AS_HELP_STRING([--disable-libtool-lock],
+ [avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE="32"
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE="64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ ppc64-*linux*|powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+ [AC_LANG_PUSH(C)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+ AC_LANG_POP])
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+sparc*-*solaris*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*) LD="${LD-ld} -m elf64_sparc" ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+need_locks="$enable_libtool_lock"
+])# _LT_ENABLE_LOCK
+
+
+# _LT_PROG_AR
+# -----------
+m4_defun([_LT_PROG_AR],
+[AC_CHECK_TOOLS(AR, [ar], false)
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
+ [lt_cv_ar_at_file=no
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
+ [echo conftest.$ac_objext > conftest.lst
+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
+ AC_TRY_EVAL([lt_ar_try])
+ if test "$ac_status" -eq 0; then
+ # Ensure the archiver fails upon bogus file names.
+ rm -f conftest.$ac_objext libconftest.a
+ AC_TRY_EVAL([lt_ar_try])
+ if test "$ac_status" -ne 0; then
+ lt_cv_ar_at_file=@
+ fi
+ fi
+ rm -f conftest.* libconftest.a
+ ])
+ ])
+
+if test "x$lt_cv_ar_at_file" = xno; then
+ archiver_list_spec=
+else
+ archiver_list_spec=$lt_cv_ar_at_file
+fi
+_LT_DECL([], [archiver_list_spec], [1],
+ [How to feed a file listing to the archiver])
+])# _LT_PROG_AR
+
+
+# _LT_CMD_OLD_ARCHIVE
+# -------------------
+m4_defun([_LT_CMD_OLD_ARCHIVE],
+[_LT_PROG_AR
+
+AC_CHECK_TOOL(STRIP, strip, :)
+test -z "$STRIP" && STRIP=:
+_LT_DECL([], [STRIP], [1], [A symbol stripping program])
+
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+test -z "$RANLIB" && RANLIB=:
+_LT_DECL([], [RANLIB], [1],
+ [Commands used to install an old-style archive])
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+case $host_os in
+ darwin*)
+ lock_old_archive_extraction=yes ;;
+ *)
+ lock_old_archive_extraction=no ;;
+esac
+_LT_DECL([], [old_postinstall_cmds], [2])
+_LT_DECL([], [old_postuninstall_cmds], [2])
+_LT_TAGDECL([], [old_archive_cmds], [2],
+ [Commands used to build an old-style archive])
+_LT_DECL([], [lock_old_archive_extraction], [0],
+ [Whether to use a lock for old archive extraction])
+])# _LT_CMD_OLD_ARCHIVE
+
+
+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([_LT_COMPILER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$3"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ fi
+ $RM conftest*
+])
+
+if test x"[$]$2" = xyes; then
+ m4_if([$5], , :, [$5])
+else
+ m4_if([$6], , :, [$6])
+fi
+])# _LT_COMPILER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
+
+
+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+# [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------
+# Check whether the given linker option works
+AC_DEFUN([_LT_LINKER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $3"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&AS_MESSAGE_LOG_FD
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ else
+ $2=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+ m4_if([$4], , :, [$4])
+else
+ m4_if([$5], , :, [$5])
+fi
+])# _LT_LINKER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
+
+
+# LT_CMD_MAX_LEN
+#---------------
+AC_DEFUN([LT_CMD_MAX_LEN],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+ i=0
+ teststring="ABCD"
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ mint*)
+ # On MiNT this can take a long time and run out of memory.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8 ; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
+ = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+ test $i != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+ AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+ AC_MSG_RESULT(none)
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+_LT_DECL([], [max_cmd_len], [0],
+ [What is the maximum length of a command?])
+])# LT_CMD_MAX_LEN
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
+
+
+# _LT_HEADER_DLFCN
+# ----------------
+m4_defun([_LT_HEADER_DLFCN],
+[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
+])# _LT_HEADER_DLFCN
+
+
+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ----------------------------------------------------------------
+m4_defun([_LT_TRY_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+ [$4]
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+[#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}]
+_LT_EOF
+ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) $1 ;;
+ x$lt_dlneed_uscore) $2 ;;
+ x$lt_dlunknown|x*) $3 ;;
+ esac
+ else :
+ # compilation failed
+ $3
+ fi
+fi
+rm -fr conftest*
+])# _LT_TRY_DLOPEN_SELF
+
+
+# LT_SYS_DLOPEN_SELF
+# ------------------
+AC_DEFUN([LT_SYS_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ])
+ ;;
+
+ *)
+ AC_CHECK_FUNC([shl_load],
+ [lt_cv_dlopen="shl_load"],
+ [AC_CHECK_LIB([dld], [shl_load],
+ [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
+ [AC_CHECK_FUNC([dlopen],
+ [lt_cv_dlopen="dlopen"],
+ [AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+ [AC_CHECK_LIB([svld], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+ [AC_CHECK_LIB([dld], [dld_link],
+ [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
+ ])
+ ])
+ ])
+ ])
+ ])
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ AC_CACHE_CHECK([whether a program can dlopen itself],
+ lt_cv_dlopen_self, [dnl
+ _LT_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+ ])
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+ lt_cv_dlopen_self_static, [dnl
+ _LT_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
+ ])
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+_LT_DECL([dlopen_support], [enable_dlopen], [0],
+ [Whether dlopen is supported])
+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+ [Whether dlopen of programs is supported])
+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+ [Whether dlopen of statically linked programs is supported])
+])# LT_SYS_DLOPEN_SELF
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
+
+
+# _LT_COMPILER_C_O([TAGNAME])
+# ---------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler.
+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+m4_defun([_LT_COMPILER_C_O],
+[m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+ [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+ [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&AS_MESSAGE_LOG_FD
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+ fi
+ fi
+ chmod u+w . 2>&AS_MESSAGE_LOG_FD
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+])
+_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
+ [Does compiler simultaneously support -c and -o options?])
+])# _LT_COMPILER_C_O
+
+
+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+# ----------------------------------
+# Check to see if we can do hard links to lock some files if needed
+m4_defun([_LT_COMPILER_FILE_LOCKS],
+[m4_require([_LT_ENABLE_LOCK])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_COMPILER_C_O([$1])
+
+hard_links="nottested"
+if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ AC_MSG_CHECKING([if we can lock with hard links])
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ AC_MSG_RESULT([$hard_links])
+ if test "$hard_links" = no; then
+ AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
+])# _LT_COMPILER_FILE_LOCKS
+
+
+# _LT_CHECK_OBJDIR
+# ----------------
+m4_defun([_LT_CHECK_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+_LT_DECL([], [objdir], [0],
+ [The name of the directory that contains temporary libtool files])dnl
+m4_pattern_allow([LT_OBJDIR])dnl
+AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
+ [Define to the sub-directory in which libtool stores uninstalled libraries.])
+])# _LT_CHECK_OBJDIR
+
+
+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+# --------------------------------------
+# Check hardcoding attributes.
+m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
+ test -n "$_LT_TAGVAR(runpath_var, $1)" ||
+ test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+
+ # We can hardcode non-existent directories.
+ if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+ test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
+ # Linking always hardcodes the temporary library directory.
+ _LT_TAGVAR(hardcode_action, $1)=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ _LT_TAGVAR(hardcode_action, $1)=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ _LT_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
+ test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+_LT_TAGDECL([], [hardcode_action], [0],
+ [How to hardcode a shared library path into an executable])
+])# _LT_LINKER_HARDCODE_LIBPATH
+
+
+# _LT_CMD_STRIPLIB
+# ----------------
+m4_defun([_LT_CMD_STRIPLIB],
+[m4_require([_LT_DECL_EGREP])
+striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ ;;
+ *)
+ AC_MSG_RESULT([no])
+ ;;
+ esac
+fi
+_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
+_LT_DECL([], [striplib], [1])
+])# _LT_CMD_STRIPLIB
+
+
+# _LT_SYS_DYNAMIC_LINKER([TAG])
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+m4_defun([_LT_SYS_DYNAMIC_LINKER],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_OBJDUMP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
+m4_if([$1],
+ [], [
+if test "$GCC" = yes; then
+ case $host_os in
+ darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+ *) lt_awk_arg="/^libraries:/" ;;
+ esac
+ case $host_os in
+ mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
+ *) lt_sed_strip_eq="s,=/,/,g" ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+ case $lt_search_path_spec in
+ *\;*)
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+ ;;
+ *)
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ esac
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary.
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+ else
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+ lt_foo="";
+ lt_count=0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo="/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+ if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+ # AWK program above erroneously prepends '/' to C:/dos/paths
+ # for these hosts.
+ case $host_os in
+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
+ esac
+ sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix[[4-9]]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[[01]] | aix4.[[01]].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[[45]]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$cc_basename in
+ yes,*)
+ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+m4_if([$1], [],[
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ ;;
+
+ *,cl*)
+ # Native MSVC
+ libname_spec='$name'
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+ library_names_spec='${libname}.dll.lib'
+
+ case $build_os in
+ mingw*)
+ sys_lib_search_path_spec=
+ lt_save_ifs=$IFS
+ IFS=';'
+ for lt_path in $LIB
+ do
+ IFS=$lt_save_ifs
+ # Let DOS variable expansion print the short 8.3 style file name.
+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+ done
+ IFS=$lt_save_ifs
+ # Convert to MSYS style.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
+ ;;
+ cygwin*)
+ # Convert to unix form, then to dos form, then back to unix form
+ # but this time dos style (no spaces!) so that the unix form looks
+ # like /cygdrive/c/PROGRA~1:/cygdr...
+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ *)
+ sys_lib_search_path_spec="$LIB"
+ if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+ # It is most probably a Windows format PATH.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # FIXME: find the short name or the path components, as spaces are
+ # common. (e.g. "Program Files" -> "PROGRA~1")
+ ;;
+ esac
+
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
+ # Assume MSVC wrapper
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+m4_if([$1], [],[
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[[123]]*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+haiku*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ dynamic_linker="$host_os runtime_loader"
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+ postinstall_cmds='chmod 555 $lib'
+ # or fails outright, so override atomically:
+ install_override_mode=555
+ ;;
+
+interix[[3-9]]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+
+ # Some binutils ld are patched to set DT_RUNPATH
+ AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
+ [lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+ [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+ [lt_cv_shlibpath_overrides_runpath=yes])])
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+ ])
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec="/usr/lib"
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[[89]] | openbsd2.[[89]].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=freebsd-elf
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test "$with_gnu_ld" = yes; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+_LT_DECL([], [variables_saved_for_relink], [1],
+ [Variables whose values should be saved in libtool wrapper scripts and
+ restored at link time])
+_LT_DECL([], [need_lib_prefix], [0],
+ [Do we need the "lib" prefix for modules?])
+_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
+_LT_DECL([], [version_type], [0], [Library versioning type])
+_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable])
+_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
+_LT_DECL([], [shlibpath_overrides_runpath], [0],
+ [Is shlibpath searched before the hard-coded library search path?])
+_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
+_LT_DECL([], [library_names_spec], [1],
+ [[List of archive names. First name is the real one, the rest are links.
+ The last name is the one that the linker finds with -lNAME]])
+_LT_DECL([], [soname_spec], [1],
+ [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [install_override_mode], [1],
+ [Permission mode override for installation of shared libraries])
+_LT_DECL([], [postinstall_cmds], [2],
+ [Command to use after installation of a shared archive])
+_LT_DECL([], [postuninstall_cmds], [2],
+ [Command to use after uninstallation of a shared archive])
+_LT_DECL([], [finish_cmds], [2],
+ [Commands used to finish a libtool library installation in a directory])
+_LT_DECL([], [finish_eval], [1],
+ [[As "finish_cmds", except a single script fragment to be evaled but
+ not shown]])
+_LT_DECL([], [hardcode_into_libs], [0],
+ [Whether we should hardcode library paths into libraries])
+_LT_DECL([], [sys_lib_search_path_spec], [2],
+ [Compile-time system search path for libraries])
+_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
+ [Run-time system search path for libraries])
+])# _LT_SYS_DYNAMIC_LINKER
+
+
+# _LT_PATH_TOOL_PREFIX(TOOL)
+# --------------------------
+# find a file program which can recognize shared library
+AC_DEFUN([_LT_PATH_TOOL_PREFIX],
+[m4_require([_LT_DECL_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] | ?:[\\/]*])
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word. This closes a longstanding sh security hole.
+ ac_dummy="m4_if([$2], , $PATH, [$2])"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$1; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ AC_MSG_RESULT($MAGIC_CMD)
+else
+ AC_MSG_RESULT(no)
+fi
+_LT_DECL([], [MAGIC_CMD], [0],
+ [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+])# _LT_PATH_TOOL_PREFIX
+
+# Old name:
+AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
+
+
+# _LT_PATH_MAGIC
+# --------------
+# find a file program which can recognize a shared library
+m4_defun([_LT_PATH_MAGIC],
+[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+ else
+ MAGIC_CMD=:
+ fi
+fi
+])# _LT_PATH_MAGIC
+
+
+# LT_PATH_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([LT_PATH_LD],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
+
+AC_ARG_WITH([gnu-ld],
+ [AS_HELP_STRING([--with-gnu-ld],
+ [assume the C compiler uses GNU ld @<:@default=no@:>@])],
+ [test "$withval" = no || with_gnu_ld=yes],
+ [with_gnu_ld=no])dnl
+
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by $CC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]]* | ?:[[\\/]]*)
+ re_direlt='/[[^/]][[^/]]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+_LT_PATH_LD_GNU
+AC_SUBST([LD])
+
+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+])# LT_PATH_LD
+
+# Old names:
+AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
+AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_LD], [])
+dnl AC_DEFUN([AC_PROG_LD], [])
+
+
+# _LT_PATH_LD_GNU
+#- --------------
+m4_defun([_LT_PATH_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# _LT_PATH_LD_GNU
+
+
+# _LT_CMD_RELOAD
+# --------------
+# find reload flag for linker
+# -- PORTME Some linkers may need a different reload flag.
+m4_defun([_LT_CMD_RELOAD],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+ lt_cv_ld_reload_flag,
+ [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ if test "$GCC" != yes; then
+ reload_cmds=false
+ fi
+ ;;
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_TAGDECL([], [reload_cmds], [2])dnl
+])# _LT_CMD_RELOAD
+
+
+# _LT_CHECK_MAGIC_METHOD
+# ----------------------
+# how to check for library dependencies
+# -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_MAGIC_METHOD],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+AC_CACHE_CHECK([how to recognize dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[[4-9]]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[[45]]*)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+ if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ # Keep this pattern in sync with the one in func_win32_libid.
+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+cegcc*)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+haiku*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[[3-9]]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+openbsd*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+])
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+ case $host_os in
+ mingw* | pw32*)
+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+ want_nocaseglob=yes
+ else
+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
+ fi
+ ;;
+ esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+_LT_DECL([], [deplibs_check_method], [1],
+ [Method to check whether dependent libraries are shared objects])
+_LT_DECL([], [file_magic_cmd], [1],
+ [Command to use when deplibs_check_method = "file_magic"])
+_LT_DECL([], [file_magic_glob], [1],
+ [How to find potential files when deplibs_check_method = "file_magic"])
+_LT_DECL([], [want_nocaseglob], [1],
+ [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
+])# _LT_CHECK_MAGIC_METHOD
+
+
+# LT_PATH_NM
+# ----------
+# find the pathname to a BSD- or MS-compatible name lister
+AC_DEFUN([LT_PATH_NM],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+[if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ lt_nm_to_check="${ac_tool_prefix}nm"
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm="$ac_dir/$lt_tmp_nm"
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+ */dev/null* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+ done
+ : ${lt_cv_path_NM=no}
+fi])
+if test "$lt_cv_path_NM" != "no"; then
+ NM="$lt_cv_path_NM"
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$DUMPBIN"; then :
+ # Let the user override the test.
+ else
+ AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
+ case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+ *COFF*)
+ DUMPBIN="$DUMPBIN -symbols"
+ ;;
+ *)
+ DUMPBIN=:
+ ;;
+ esac
+ fi
+ AC_SUBST([DUMPBIN])
+ if test "$DUMPBIN" != ":"; then
+ NM="$DUMPBIN"
+ fi
+fi
+test -z "$NM" && NM=nm
+AC_SUBST([NM])
+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+
+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+ [lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
+ cat conftest.out >&AS_MESSAGE_LOG_FD
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*])
+])# LT_PATH_NM
+
+# Old names:
+AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
+AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_NM], [])
+dnl AC_DEFUN([AC_PROG_NM], [])
+
+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+# --------------------------------
+# how to determine the name of the shared library
+# associated with a specific link library.
+# -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+m4_require([_LT_DECL_DLLTOOL])
+AC_CACHE_CHECK([how to associate runtime and link libraries],
+lt_cv_sharedlib_from_linklib_cmd,
+[lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+ # two different shell functions defined in ltmain.sh
+ # decide which to use based on capabilities of $DLLTOOL
+ case `$DLLTOOL --help 2>&1` in
+ *--identify-strict*)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+ ;;
+ *)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+ ;;
+ esac
+ ;;
+*)
+ # fallback: assume linklib IS sharedlib
+ lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+ ;;
+esac
+])
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
+ [Command to associate shared and link libraries])
+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+
+
+# _LT_PATH_MANIFEST_TOOL
+# ----------------------
+# locate the manifest tool
+m4_defun([_LT_PATH_MANIFEST_TOOL],
+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
+ [lt_cv_path_mainfest_tool=no
+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+ lt_cv_path_mainfest_tool=yes
+ fi
+ rm -f conftest*])
+if test "x$lt_cv_path_mainfest_tool" != xyes; then
+ MANIFEST_TOOL=:
+fi
+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
+])# _LT_PATH_MANIFEST_TOOL
+
+
+# LT_LIB_M
+# --------
+# check for math library
+AC_DEFUN([LT_LIB_M],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
+ # These system don't have libm, or don't need it
+ ;;
+*-ncr-sysv4.3*)
+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+ AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+ ;;
+*)
+ AC_CHECK_LIB(m, cos, LIBM="-lm")
+ ;;
+esac
+AC_SUBST([LIBM])
+])# LT_LIB_M
+
+# Old name:
+AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_CHECK_LIBM], [])
+
+
+# _LT_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------
+m4_defun([_LT_COMPILER_NO_RTTI],
+[m4_require([_LT_TAG_COMPILER])dnl
+
+_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+ case $cc_basename in
+ nvcc*)
+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
+ esac
+
+ _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+ lt_cv_prog_compiler_rtti_exceptions,
+ [-fno-rtti -fno-exceptions], [],
+ [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
+ [Compiler flag to turn off builtin functions])
+])# _LT_COMPILER_NO_RTTI
+
+
+# _LT_CMD_GLOBAL_SYMBOLS
+# ----------------------
+m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[[BCDT]]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[[ABCDGISTW]]'
+ ;;
+hpux*)
+ if test "$host_cpu" = ia64; then
+ symcode='[[ABCDEGRST]]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[[BCDEGRST]]'
+ ;;
+osf*)
+ symcode='[[BCDEGQRST]]'
+ ;;
+solaris*)
+ symcode='[[BDRT]]'
+ ;;
+sco3.2v5*)
+ symcode='[[DT]]'
+ ;;
+sysv4.2uw2*)
+ symcode='[[DT]]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[[ABDT]]'
+ ;;
+sysv4)
+ symcode='[[DFNSTU]]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function
+ # and D for any global variable.
+ # Also find C++ and __fastcall symbols from MSVC++,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK ['"\
+" {last_section=section; section=\$ 3};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+" s[1]~/^[@?]/{print s[1], s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx]"
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+ if AC_TRY_EVAL(ac_compile); then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+ relocations are performed -- see ld's documentation on pseudo-relocs. */
+# define LT@&t@_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data. */
+# define LT@&t@_DLSYM_CONST
+#else
+# define LT@&t@_DLSYM_CONST const
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols. */
+LT@&t@_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[[]] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_globsym_save_LIBS=$LIBS
+ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+ LIBS=$lt_globsym_save_LIBS
+ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ AC_MSG_RESULT(failed)
+else
+ AC_MSG_RESULT(ok)
+fi
+
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
+ nm_file_list_spec='@'
+fi
+
+_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
+ [Take the output of nm and produce a listing of raw symbols and C names])
+_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
+ [Transform the output of nm in a proper C declaration])
+_LT_DECL([global_symbol_to_c_name_address],
+ [lt_cv_sys_global_symbol_to_c_name_address], [1],
+ [Transform the output of nm in a C name address pair])
+_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
+ [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
+ [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([], [nm_file_list_spec], [1],
+ [Specify filename containing input files for $NM])
+]) # _LT_CMD_GLOBAL_SYMBOLS
+
+
+# _LT_COMPILER_PIC([TAGNAME])
+# ---------------------------
+m4_defun([_LT_COMPILER_PIC],
+[m4_require([_LT_TAG_COMPILER])dnl
+_LT_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_TAGVAR(lt_prog_compiler_static, $1)=
+
+m4_if([$1], [CXX], [
+ # C++ specific cases for pic, static, wl, etc.
+ if test "$GXX" = yes; then
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw* | cygwin* | os2* | pw32* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ m4_if([$1], [GCJ], [],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+ ;;
+ *djgpp*)
+ # DJGPP does not support shared libraries at all
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ ;;
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)=
+ ;;
+ interix[[3-9]]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+ fi
+ ;;
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ ;;
+ *qnx* | *nto*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ else
+ case $host_os in
+ aix[[4-9]]*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ else
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ cxch68*)
+ # Green Hills C++ Compiler
+ # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+ ;;
+ esac
+ ;;
+ mingw* | cygwin* | os2* | pw32* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ m4_if([$1], [GCJ], [],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ ;;
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ freebsd* | dragonfly*)
+ # FreeBSD uses GNU C++
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+ if test "$host_cpu" != ia64; then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ fi
+ ;;
+ aCC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ ;;
+ esac
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ interix*)
+ # This is c89, which is MS Visual C++ (no shared libs)
+ # Anyone wants to do a port?
+ ;;
+ irix5* | irix6* | nonstopux*)
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ # CC pic flag -KPIC is the default.
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ KCC*)
+ # KAI C++ Compiler
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ ecpc* )
+ # old Intel C++ for x86_64 which still supported -KPIC.
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ icpc* )
+ # Intel C++, used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ cxx*)
+ # Compaq C++
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
+ # IBM XL 8.0, 9.0 on PPC and BlueGene
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ lynxos*)
+ ;;
+ m88k*)
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ netbsd*)
+ ;;
+ *qnx* | *nto*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+ ;;
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ cxx*)
+ # Digital/Compaq C++
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ psos*)
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC* | sunCC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ lcc*)
+ # Lucid
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ esac
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ vxworks*)
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+ esac
+ fi
+],
+[
+ if test "$GCC" = yes; then
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ m4_if([$1], [GCJ], [],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+ ;;
+
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)=
+ ;;
+
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ ;;
+
+ interix[[3-9]]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ enable_shared=no
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+ fi
+ ;;
+
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+
+ case $cc_basename in
+ nvcc*) # Cuda Compiler Driver 2.2
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ else
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ m4_if([$1], [GCJ], [],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # PIC (with -KPIC) is the default.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ # old Intel for x86_64 which still supported -KPIC.
+ ecc*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
+ ;;
+ nagfor*)
+ # NAG Fortran compiler
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ ccc*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # All Alpha code is PIC.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ xl* | bgxl* | bgf* | mpixl*)
+ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ F* | *Sun*Fortran*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+ ;;
+ *Sun\ C*)
+ # Sun C 5.9
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ newsos6)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # All OSF/1 code is PIC.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ rdos*)
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ solaris*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ unicos*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+
+ uts4*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ *)
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+ esac
+ fi
+])
+case $host_os in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
+ ;;
+esac
+
+AC_CACHE_CHECK([for $compiler option to produce PIC],
+ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
+ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+ _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
+ [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
+ [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
+ [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
+ "" | " "*) ;;
+ *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+ esac],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
+ [Additional compiler flags for building library objects])
+
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+ [How to pass a linker flag through the compiler])
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
+_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+ _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
+ $lt_tmp_static_flag,
+ [],
+ [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
+_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
+ [Compiler flag to prevent dynamic linking])
+])# _LT_COMPILER_PIC
+
+
+# _LT_LINKER_SHLIBS([TAGNAME])
+# ----------------------------
+# See if the linker supports building shared libraries.
+m4_defun([_LT_LINKER_SHLIBS],
+[AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+m4_if([$1], [CXX], [
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+ case $host_os in
+ aix[[4-9]]*)
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ # Also, AIX nm treats weak defined symbols like other global defined
+ # symbols, whereas GNU nm marks them as "W".
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ else
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ fi
+ ;;
+ pw32*)
+ _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+ ;;
+ cygwin* | mingw* | cegcc*)
+ case $cc_basename in
+ cl*) ;;
+ *)
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+ ;;
+ esac
+ ;;
+ *)
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ esac
+], [
+ runpath_var=
+ _LT_TAGVAR(allow_undefined_flag, $1)=
+ _LT_TAGVAR(always_export_symbols, $1)=no
+ _LT_TAGVAR(archive_cmds, $1)=
+ _LT_TAGVAR(archive_expsym_cmds, $1)=
+ _LT_TAGVAR(compiler_needs_object, $1)=no
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_TAGVAR(hardcode_automatic, $1)=no
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=
+ _LT_TAGVAR(hardcode_minus_L, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ _LT_TAGVAR(inherit_rpath, $1)=no
+ _LT_TAGVAR(link_all_deplibs, $1)=unknown
+ _LT_TAGVAR(module_cmds, $1)=
+ _LT_TAGVAR(module_expsym_cmds, $1)=
+ _LT_TAGVAR(old_archive_from_new_cmds, $1)=
+ _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+ _LT_TAGVAR(thread_safe_flag_spec, $1)=
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ _LT_TAGVAR(include_expsyms, $1)=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+dnl Note also adjust exclude_expsyms for C++ above.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+
+ # On some targets, GNU ld is compatible enough with the native linker
+ # that we're better off using the native interface for both.
+ lt_use_gnu_ld_interface=no
+ if test "$with_gnu_ld" = yes; then
+ case $host_os in
+ aix*)
+ # The AIX port of GNU ld has always aspired to compatibility
+ # with the native linker. However, as the warning in the GNU ld
+ # block says, versions before 2.19.5* couldn't really create working
+ # shared libraries, regardless of the interface used.
+ case `$LD -v 2>&1` in
+ *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+ *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
+ *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ fi
+
+ if test "$lt_use_gnu_ld_interface" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[[3-9]]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)=''
+ ;;
+ m68k)
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ ;;
+ esac
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ # Joseph Beckenbach <[email protected]> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+ # as there is no search path for DLLs.
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=no
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ haiku*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ interix[[3-9]]*)
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test "$host_os" = linux-dietlibc; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test "$tmp_diet" = no
+ then
+ tmp_addflag=' $pic_flag'
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group f77 and f90 compilers
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ tmp_sharedflag='--shared' ;;
+ xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ nvcc*) # Cuda Compiler Driver 2.2
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ _LT_TAGVAR(compiler_needs_object, $1)=yes
+ ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ _LT_TAGVAR(compiler_needs_object, $1)=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test "x$supports_anon_versioning" = xyes; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+ xlf* | bgf* | bgxlf* | mpixlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+ _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+
+ if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
+ runpath_var=
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ _LT_TAGVAR(hardcode_direct, $1)=unsupported
+ fi
+ ;;
+
+ aix[[4-9]]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ # Also, AIX nm treats weak defined symbols like other global
+ # defined symbols, whereas GNU nm marks them as "W".
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ else
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ _LT_TAGVAR(archive_cmds, $1)=''
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[[012]]|aix4.[[012]].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ _LT_TAGVAR(hardcode_direct, $1)=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+ _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+ if test "$with_gnu_ld" = yes; then
+ # We only use this code for GNU lds that support --whole-archive.
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+ # This is similar to how AIX traditionally builds its shared libraries.
+ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)=''
+ ;;
+ m68k)
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[[45]]*)
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ case $cc_basename in
+ cl*)
+ # Native MSVC
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='@'
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+ else
+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+ fi~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ linknames='
+ # The linker will not automatically build a static lib if we build a DLL.
+ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+ # Don't use ranlib
+ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+ lt_tool_outputfile="@TOOL_OUTPUT@"~
+ case $lt_outputfile in
+ *.exe|*.EXE) ;;
+ *)
+ lt_outputfile="$lt_outputfile.exe"
+ lt_tool_outputfile="$lt_tool_outputfile.exe"
+ ;;
+ esac~
+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+ $RM "$lt_outputfile.manifest";
+ fi'
+ ;;
+ *)
+ # Assume MSVC wrapper
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+ # FIXME: Should let the user specify the lib program.
+ _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+ _LT_DARWIN_LINKER_FEATURES($1)
+ ;;
+
+ dgux*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ freebsd1*)
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ ;;
+
+ hpux10*)
+ if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test "$with_gnu_ld" = no; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+ case $host_cpu in
+ hppa*64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ m4_if($1, [], [
+ # Older versions of the 11.00 compiler do not understand -b yet
+ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+ _LT_LINKER_OPTION([if $CC understands -b],
+ _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
+ [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
+ [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
+ [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+ *)
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ # This should be the same for all languages, so no per-tag cache variable.
+ AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
+ [lt_cv_irix_exported_symbol],
+ [save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+ AC_LINK_IFELSE(
+ [AC_LANG_SOURCE(
+ [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
+ [C++], [[int foo (void) { return 0; }]],
+ [Fortran 77], [[
+ subroutine foo
+ end]],
+ [Fortran], [[
+ subroutine foo
+ end]])])],
+ [lt_cv_irix_exported_symbol=yes],
+ [lt_cv_irix_exported_symbol=no])
+ LDFLAGS="$save_LDFLAGS"])
+ if test "$lt_cv_irix_exported_symbol" = yes; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+ fi
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(inherit_rpath, $1)=yes
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ newsos6)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ else
+ case $host_os in
+ openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ os2*)
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ else
+ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+
+ solaris*)
+ _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='${wl}'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'. GCC discards it without `$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test "$GCC" = yes; then
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ else
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ ;;
+ motorola)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ sysv4.3*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+ _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+ _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ *)
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+
+ if test x$host_vendor = xsni; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+])
+AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
+
+_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
+_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
+_LT_DECL([], [extract_expsyms_cmds], [2],
+ [The commands to extract the exported symbol list from a shared archive])
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+ # Assume -lc should be added
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $_LT_TAGVAR(archive_cmds, $1) in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ AC_CACHE_CHECK([whether -lc should be explicitly linked in],
+ [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
+ [$RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+ pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+ _LT_TAGVAR(allow_undefined_flag, $1)=
+ if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+ then
+ lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ else
+ lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+ fi
+ _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+ ])
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
+ [Whether or not to add -lc for building shared libraries])
+_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
+ [enable_shared_with_static_runtimes], [0],
+ [Whether or not to disallow shared libs when runtime libs are static])
+_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
+ [Compiler flag to allow reflexive dlopens])
+_LT_TAGDECL([], [whole_archive_flag_spec], [1],
+ [Compiler flag to generate shared objects directly from archives])
+_LT_TAGDECL([], [compiler_needs_object], [1],
+ [Whether the compiler copes with passing no objects directly])
+_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
+ [Create an old-style archive from a shared archive])
+_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
+ [Create a temporary old-style archive to link instead of a shared archive])
+_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
+_LT_TAGDECL([], [archive_expsym_cmds], [2])
+_LT_TAGDECL([], [module_cmds], [2],
+ [Commands used to build a loadable module if different from building
+ a shared archive.])
+_LT_TAGDECL([], [module_expsym_cmds], [2])
+_LT_TAGDECL([], [with_gnu_ld], [1],
+ [Whether we are building with GNU ld or not])
+_LT_TAGDECL([], [allow_undefined_flag], [1],
+ [Flag that allows shared libraries with undefined symbols to be built])
+_LT_TAGDECL([], [no_undefined_flag], [1],
+ [Flag that enforces no undefined symbols])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
+ [Flag to hardcode $libdir into a binary during linking.
+ This must work even if $libdir does not exist])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
+ [[If ld is used when linking, flag to hardcode $libdir into a binary
+ during linking. This must work even if $libdir does not exist]])
+_LT_TAGDECL([], [hardcode_libdir_separator], [1],
+ [Whether we need a single "-rpath" flag with a separated argument])
+_LT_TAGDECL([], [hardcode_direct], [0],
+ [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+ DIR into the resulting binary])
+_LT_TAGDECL([], [hardcode_direct_absolute], [0],
+ [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+ DIR into the resulting binary and the resulting library dependency is
+ "absolute", i.e impossible to change by setting ${shlibpath_var} if the
+ library is relocated])
+_LT_TAGDECL([], [hardcode_minus_L], [0],
+ [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+ into the resulting binary])
+_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
+ [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+ into the resulting binary])
+_LT_TAGDECL([], [hardcode_automatic], [0],
+ [Set to "yes" if building a shared library automatically hardcodes DIR
+ into the library and all subsequent libraries and executables linked
+ against it])
+_LT_TAGDECL([], [inherit_rpath], [0],
+ [Set to yes if linker adds runtime paths of dependent libraries
+ to runtime path list])
+_LT_TAGDECL([], [link_all_deplibs], [0],
+ [Whether libtool must link a program against all its dependency libraries])
+_LT_TAGDECL([], [always_export_symbols], [0],
+ [Set to "yes" if exported symbols are required])
+_LT_TAGDECL([], [export_symbols_cmds], [2],
+ [The commands to list exported symbols])
+_LT_TAGDECL([], [exclude_expsyms], [1],
+ [Symbols that should not be listed in the preloaded symbols])
+_LT_TAGDECL([], [include_expsyms], [1],
+ [Symbols that must always be exported])
+_LT_TAGDECL([], [prelink_cmds], [2],
+ [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [postlink_cmds], [2],
+ [Commands necessary for finishing linking programs])
+_LT_TAGDECL([], [file_list_spec], [1],
+ [Specify filename containing input files])
+dnl FIXME: Not yet implemented
+dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
+dnl [Compiler flag to generate thread safe objects])
+])# _LT_LINKER_SHLIBS
+
+
+# _LT_LANG_C_CONFIG([TAG])
+# ------------------------
+# Ensure that the configuration variables for a C compiler are suitably
+# defined. These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_C_CONFIG],
+[m4_require([_LT_DECL_EGREP])dnl
+lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+_LT_TAG_COMPILER
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+ _LT_COMPILER_NO_RTTI($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_SYS_DYNAMIC_LINKER($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+ LT_SYS_DLOPEN_SELF
+ _LT_CMD_STRIPLIB
+
+ # Report which library types will actually be built
+ AC_MSG_CHECKING([if libtool supports shared libraries])
+ AC_MSG_RESULT([$can_build_shared])
+
+ AC_MSG_CHECKING([whether to build shared libraries])
+ test "$can_build_shared" = "no" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[[4-9]]*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+ esac
+ AC_MSG_RESULT([$enable_shared])
+
+ AC_MSG_CHECKING([whether to build static libraries])
+ # Make sure either enable_shared or enable_static is yes.
+ test "$enable_shared" = yes || enable_static=yes
+ AC_MSG_RESULT([$enable_static])
+
+ _LT_CONFIG($1)
+fi
+AC_LANG_POP
+CC="$lt_save_CC"
+])# _LT_LANG_C_CONFIG
+
+
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined. These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_CXX_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
+ AC_PROG_CXXCPP
+else
+ _lt_caught_CXX_error=yes
+fi
+
+AC_LANG_PUSH(C++)
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(compiler_needs_object, $1)=no
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working. Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_caught_CXX_error" != yes; then
+ # Code to be used in simple compile tests
+ lt_simple_compile_test_code="int some_variable = 0;"
+
+ # Code to be used in simple link tests
+ lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
+
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+ _LT_TAG_COMPILER
+
+ # save warnings/boilerplate of simple test code
+ _LT_COMPILER_BOILERPLATE
+ _LT_LINKER_BOILERPLATE
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC=$CC
+ lt_save_CFLAGS=$CFLAGS
+ lt_save_LD=$LD
+ lt_save_GCC=$GCC
+ GCC=$GXX
+ lt_save_with_gnu_ld=$with_gnu_ld
+ lt_save_path_LD=$lt_cv_path_LD
+ if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+ else
+ $as_unset lt_cv_prog_gnu_ld
+ fi
+ if test -n "${lt_cv_path_LDCXX+set}"; then
+ lt_cv_path_LD=$lt_cv_path_LDCXX
+ else
+ $as_unset lt_cv_path_LD
+ fi
+ test -z "${LDCXX+set}" || LD=$LDCXX
+ CC=${CXX-"c++"}
+ CFLAGS=$CXXFLAGS
+ compiler=$CC
+ _LT_TAGVAR(compiler, $1)=$CC
+ _LT_CC_BASENAME([$compiler])
+
+ if test -n "$compiler"; then
+ # We don't want -fno-exception when compiling C++ code, so set the
+ # no_builtin_flag separately
+ if test "$GXX" = yes; then
+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+ else
+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+ fi
+
+ if test "$GXX" = yes; then
+ # Set up default GNU C++ configuration
+
+ LT_PATH_LD
+
+ # Check if GNU C++ uses GNU ld as the underlying linker, since the
+ # archiving commands below assume that GNU ld is being used.
+ if test "$with_gnu_ld" = yes; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+ # investigate it a little bit more. (MM)
+ wlarc='${wl}'
+
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+ $GREP 'no-whole-archive' > /dev/null; then
+ _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ else
+ with_gnu_ld=no
+ wlarc=
+
+ # A generic and very simple default shared library creation
+ # command for GNU C++ for the case where it uses the native
+ # linker, instead of GNU ld. If possible, this setting should
+ # overridden to take advantage of the native linker features on
+ # the platform it is being used on.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ fi
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+ else
+ GXX=no
+ with_gnu_ld=no
+ wlarc=
+ fi
+
+ # PORTME: fill in a description of your system's C++ link characteristics
+ AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ case $host_os in
+ aix3*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aix[[4-9]]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+ for ld_flag in $LDFLAGS; do
+ case $ld_flag in
+ *-brtl*)
+ aix_use_runtimelinking=yes
+ break
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ _LT_TAGVAR(archive_cmds, $1)=''
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+
+ if test "$GXX" = yes; then
+ case $host_os in aix4.[[012]]|aix4.[[012]].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ _LT_TAGVAR(hardcode_direct, $1)=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=
+ fi
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to
+ # export.
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+ # Determine the default libpath from the value encoded in an empty
+ # executable.
+ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+ _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+ if test "$with_gnu_ld" = yes; then
+ # We only use this code for GNU lds that support --whole-archive.
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+ # This is similar to how AIX traditionally builds its shared
+ # libraries.
+ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ # Joseph Beckenbach <[email protected]> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ chorus*)
+ case $cc_basename in
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ case $GXX,$cc_basename in
+ ,cl* | no,cl*)
+ # Native MSVC
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='@'
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+ else
+ $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+ fi~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ linknames='
+ # The linker will not automatically build a static lib if we build a DLL.
+ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ # Don't use ranlib
+ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+ lt_tool_outputfile="@TOOL_OUTPUT@"~
+ case $lt_outputfile in
+ *.exe|*.EXE) ;;
+ *)
+ lt_outputfile="$lt_outputfile.exe"
+ lt_tool_outputfile="$lt_tool_outputfile.exe"
+ ;;
+ esac~
+ func_to_tool_file "$lt_outputfile"~
+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+ $RM "$lt_outputfile.manifest";
+ fi'
+ ;;
+ *)
+ # g++
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+ # as there is no search path for DLLs.
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=no
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+ darwin* | rhapsody*)
+ _LT_DARWIN_LINKER_FEATURES($1)
+ ;;
+
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ freebsd[[12]]*)
+ # C++ shared libraries reported to be fairly broken before
+ # switch to ELF
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ freebsd-elf*)
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ ;;
+
+ freebsd* | dragonfly*)
+ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+ # conventions
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ ;;
+
+ gnu*)
+ ;;
+
+ haiku*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ hpux9*)
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aCC*)
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+
+ hpux10*|hpux11*)
+ if test $with_gnu_ld = no; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ ;;
+ esac
+ fi
+ case $host_cpu in
+ hppa*64*|ia64*)
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+ *)
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ esac
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aCC*)
+ case $host_cpu in
+ hppa*64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test $with_gnu_ld = no; then
+ case $host_cpu in
+ hppa*64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ fi
+ else
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+
+ interix[[3-9]]*)
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+ irix5* | irix6*)
+ case $cc_basename in
+ CC*)
+ # SGI C++
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+
+ # Archives containing C++ object files must be created using
+ # "CC -ar", where "CC" is the IRIX C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test "$with_gnu_ld" = no; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
+ fi
+ fi
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+ esac
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(inherit_rpath, $1)=yes
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+ ;;
+ icpc* | ecpc* )
+ # Intel C++
+ with_gnu_ld=yes
+ # version 8.0 and above of icpc choke on multiply defined symbols
+ # if we add $predep_objects and $postdep_objects, however 7.1 and
+ # earlier do not add the objects themselves.
+ case `$CC -V 2>&1` in
+ *"Version 7."*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ *) # Version 8.0 or newer
+ tmp_idyn=
+ case $host_cpu in
+ ia64*) tmp_idyn=' -i_dynamic';;
+ esac
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ esac
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ case `$CC -V` in
+ *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
+ _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ $RANLIB $oldlib'
+ _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ ;;
+ *) # Version 6 and above use weak symbols
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ ;;
+ esac
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ ;;
+ cxx*)
+ # Compaq C++
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+ runpath_var=LD_RUN_PATH
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
+ ;;
+ xl* | mpixl* | bgxl*)
+ # IBM XL 8.0 on PPC, with GNU ld
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ _LT_TAGVAR(compiler_needs_object, $1)=yes
+
+ # Not sure whether something based on
+ # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+ # would be better.
+ output_verbose_link_cmd='func_echo_all'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ lynxos*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ m88k*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+ wlarc=
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ fi
+ # Workaround some broken pre-1.5 toolchains
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+ ;;
+
+ *nto* | *qnx*)
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ ;;
+
+ openbsd2*)
+ # C++ shared libraries are fairly broken
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ fi
+ output_verbose_link_cmd=func_echo_all
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Archives containing C++ object files must be created using
+ # the KAI C++ compiler.
+ case $host in
+ osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
+ *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
+ esac
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ cxx*)
+ case $host in
+ osf3*)
+ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ ;;
+ *)
+ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+ echo "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
+ $RM $lib.exp'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ ;;
+ esac
+
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ ;;
+ *)
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ case $host in
+ osf3*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ ;;
+ esac
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+
+ psos*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ lcc*)
+ # Lucid
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ solaris*)
+ case $cc_basename in
+ CC* | sunCC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
+ _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+ ;;
+ esac
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+
+ output_verbose_link_cmd='func_echo_all'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+ # The C++ compiler must be used to create the archive.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+ ;;
+ *)
+ # GNU C++ compiler with Solaris linker
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+ if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ else
+ # g++ 2.7 appears to require `-G' NOT `-shared' on this
+ # platform.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ fi
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *)
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+ _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+ _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
+ '"$_LT_TAGVAR(old_archive_cmds, $1)"
+ _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
+ '"$_LT_TAGVAR(reload_cmds, $1)"
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ vxworks*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+
+ AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+ test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+ _LT_TAGVAR(GCC, $1)="$GXX"
+ _LT_TAGVAR(LD, $1)="$LD"
+
+ ## CAVEAT EMPTOR:
+ ## There is no encapsulation within the following macros, do not change
+ ## the running order or otherwise move them around unless you know exactly
+ ## what you are doing...
+ _LT_SYS_HIDDEN_LIBDEPS($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_SYS_DYNAMIC_LINKER($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+ fi # test -n "$compiler"
+
+ CC=$lt_save_CC
+ CFLAGS=$lt_save_CFLAGS
+ LDCXX=$LD
+ LD=$lt_save_LD
+ GCC=$lt_save_GCC
+ with_gnu_ld=$lt_save_with_gnu_ld
+ lt_cv_path_LDCXX=$lt_cv_path_LD
+ lt_cv_path_LD=$lt_save_path_LD
+ lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+ lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test "$_lt_caught_CXX_error" != yes
+
+AC_LANG_POP
+])# _LT_LANG_CXX_CONFIG
+
+
+# _LT_FUNC_STRIPNAME_CNF
+# ----------------------
+# func_stripname_cnf prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+#
+# This function is identical to the (non-XSI) version of func_stripname,
+# except this one can be used by m4 code that may be executed by configure,
+# rather than the libtool script.
+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
+AC_REQUIRE([_LT_DECL_SED])
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
+func_stripname_cnf ()
+{
+ case ${2} in
+ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+ esac
+} # func_stripname_cnf
+])# _LT_FUNC_STRIPNAME_CNF
+
+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+# ---------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
+# Dependencies to place before and after the object being linked:
+_LT_TAGVAR(predep_objects, $1)=
+_LT_TAGVAR(postdep_objects, $1)=
+_LT_TAGVAR(predeps, $1)=
+_LT_TAGVAR(postdeps, $1)=
+_LT_TAGVAR(compiler_lib_search_path, $1)=
+
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library. It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
+int a;
+void foo (void) { a = 0; }
+_LT_EOF
+], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+ Foo (void) { a = 0; }
+private:
+ int a;
+};
+_LT_EOF
+], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
+ subroutine foo
+ implicit none
+ integer*4 a
+ a=0
+ return
+ end
+_LT_EOF
+], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
+ subroutine foo
+ implicit none
+ integer a
+ a=0
+ return
+ end
+_LT_EOF
+], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
+public class foo {
+ private int a;
+ public void bar (void) {
+ a = 0;
+ }
+};
+_LT_EOF
+])
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+esac
+
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+ # Parse the compiler output and extract the necessary
+ # objects, libraries and library flags.
+
+ # Sentinel used to keep track of whether or not we are before
+ # the conftest object file.
+ pre_test_object_deps_done=no
+
+ for p in `eval "$output_verbose_link_cmd"`; do
+ case ${prev}${p} in
+
+ -L* | -R* | -l*)
+ # Some compilers place space between "-{L,R}" and the path.
+ # Remove the space.
+ if test $p = "-L" ||
+ test $p = "-R"; then
+ prev=$p
+ continue
+ fi
+
+ # Expand the sysroot to ease extracting the directories later.
+ if test -z "$prev"; then
+ case $p in
+ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+ esac
+ fi
+ case $p in
+ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+ esac
+ if test "$pre_test_object_deps_done" = no; then
+ case ${prev} in
+ -L | -R)
+ # Internal compiler library paths should come after those
+ # provided the user. The postdeps already come after the
+ # user supplied libs so there is no need to process them.
+ if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
+ _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+ else
+ _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+ fi
+ ;;
+ # The "-l" case would never come before the object being
+ # linked, so don't bother handling this case.
+ esac
+ else
+ if test -z "$_LT_TAGVAR(postdeps, $1)"; then
+ _LT_TAGVAR(postdeps, $1)="${prev}${p}"
+ else
+ _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
+ fi
+ fi
+ prev=
+ ;;
+
+ *.lto.$objext) ;; # Ignore GCC LTO objects
+ *.$objext)
+ # This assumes that the test object file only shows up
+ # once in the compiler output.
+ if test "$p" = "conftest.$objext"; then
+ pre_test_object_deps_done=yes
+ continue
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
+ _LT_TAGVAR(predep_objects, $1)="$p"
+ else
+ _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
+ fi
+ else
+ if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
+ _LT_TAGVAR(postdep_objects, $1)="$p"
+ else
+ _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
+ fi
+ fi
+ ;;
+
+ *) ;; # Ignore the rest.
+
+ esac
+ done
+
+ # Clean up.
+ rm -f a.out a.exe
+else
+ echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
+
+# PORTME: override above test on systems where it is broken
+m4_if([$1], [CXX],
+[case $host_os in
+interix[[3-9]]*)
+ # Interix 3.5 installs completely hosed .la files for C++, so rather than
+ # hack all around it, let's just trust "g++" to DTRT.
+ _LT_TAGVAR(predep_objects,$1)=
+ _LT_TAGVAR(postdep_objects,$1)=
+ _LT_TAGVAR(postdeps,$1)=
+ ;;
+
+linux*)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+
+ if test "$solaris_use_stlport4" != yes; then
+ _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+
+solaris*)
+ case $cc_basename in
+ CC* | sunCC*)
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+
+ # Adding this requires a known-good setup of shared libraries for
+ # Sun compiler versions before 5.6, else PIC objects from an old
+ # archive will be linked into the output, leading to subtle bugs.
+ if test "$solaris_use_stlport4" != yes; then
+ _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+esac
+])
+
+case " $_LT_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=
+if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
+ [The directories searched by this compiler when creating a shared library])
+_LT_TAGDECL([], [predep_objects], [1],
+ [Dependencies to place before and after the objects being linked to
+ create a shared library])
+_LT_TAGDECL([], [postdep_objects], [1])
+_LT_TAGDECL([], [predeps], [1])
+_LT_TAGDECL([], [postdeps], [1])
+_LT_TAGDECL([], [compiler_lib_search_path], [1],
+ [The library search path used internally by the compiler when linking
+ a shared library])
+])# _LT_SYS_HIDDEN_LIBDEPS
+
+
+# _LT_LANG_F77_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a Fortran 77 compiler are
+# suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_F77_CONFIG],
+[AC_LANG_PUSH(Fortran 77)
+if test -z "$F77" || test "X$F77" = "Xno"; then
+ _lt_disable_F77=yes
+fi
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the F77 compiler isn't working. Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_F77" != yes; then
+ # Code to be used in simple compile tests
+ lt_simple_compile_test_code="\
+ subroutine t
+ return
+ end
+"
+
+ # Code to be used in simple link tests
+ lt_simple_link_test_code="\
+ program t
+ end
+"
+
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+ _LT_TAG_COMPILER
+
+ # save warnings/boilerplate of simple test code
+ _LT_COMPILER_BOILERPLATE
+ _LT_LINKER_BOILERPLATE
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC="$CC"
+ lt_save_GCC=$GCC
+ lt_save_CFLAGS=$CFLAGS
+ CC=${F77-"f77"}
+ CFLAGS=$FFLAGS
+ compiler=$CC
+ _LT_TAGVAR(compiler, $1)=$CC
+ _LT_CC_BASENAME([$compiler])
+ GCC=$G77
+ if test -n "$compiler"; then
+ AC_MSG_CHECKING([if libtool supports shared libraries])
+ AC_MSG_RESULT([$can_build_shared])
+
+ AC_MSG_CHECKING([whether to build shared libraries])
+ test "$can_build_shared" = "no" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+ aix[[4-9]]*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+ esac
+ AC_MSG_RESULT([$enable_shared])
+
+ AC_MSG_CHECKING([whether to build static libraries])
+ # Make sure either enable_shared or enable_static is yes.
+ test "$enable_shared" = yes || enable_static=yes
+ AC_MSG_RESULT([$enable_static])
+
+ _LT_TAGVAR(GCC, $1)="$G77"
+ _LT_TAGVAR(LD, $1)="$LD"
+
+ ## CAVEAT EMPTOR:
+ ## There is no encapsulation within the following macros, do not change
+ ## the running order or otherwise move them around unless you know exactly
+ ## what you are doing...
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_SYS_DYNAMIC_LINKER($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+ fi # test -n "$compiler"
+
+ GCC=$lt_save_GCC
+ CC="$lt_save_CC"
+ CFLAGS="$lt_save_CFLAGS"
+fi # test "$_lt_disable_F77" != yes
+
+AC_LANG_POP
+])# _LT_LANG_F77_CONFIG
+
+
+# _LT_LANG_FC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for a Fortran compiler are
+# suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_FC_CONFIG],
+[AC_LANG_PUSH(Fortran)
+
+if test -z "$FC" || test "X$FC" = "Xno"; then
+ _lt_disable_FC=yes
+fi
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for fc test sources.
+ac_ext=${ac_fc_srcext-f}
+
+# Object file extension for compiled fc test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the FC compiler isn't working. Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_FC" != yes; then
+ # Code to be used in simple compile tests
+ lt_simple_compile_test_code="\
+ subroutine t
+ return
+ end
+"
+
+ # Code to be used in simple link tests
+ lt_simple_link_test_code="\
+ program t
+ end
+"
+
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+ _LT_TAG_COMPILER
+
+ # save warnings/boilerplate of simple test code
+ _LT_COMPILER_BOILERPLATE
+ _LT_LINKER_BOILERPLATE
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC="$CC"
+ lt_save_GCC=$GCC
+ lt_save_CFLAGS=$CFLAGS
+ CC=${FC-"f95"}
+ CFLAGS=$FCFLAGS
+ compiler=$CC
+ GCC=$ac_cv_fc_compiler_gnu
+
+ _LT_TAGVAR(compiler, $1)=$CC
+ _LT_CC_BASENAME([$compiler])
+
+ if test -n "$compiler"; then
+ AC_MSG_CHECKING([if libtool supports shared libraries])
+ AC_MSG_RESULT([$can_build_shared])
+
+ AC_MSG_CHECKING([whether to build shared libraries])
+ test "$can_build_shared" = "no" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+ aix[[4-9]]*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+ esac
+ AC_MSG_RESULT([$enable_shared])
+
+ AC_MSG_CHECKING([whether to build static libraries])
+ # Make sure either enable_shared or enable_static is yes.
+ test "$enable_shared" = yes || enable_static=yes
+ AC_MSG_RESULT([$enable_static])
+
+ _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
+ _LT_TAGVAR(LD, $1)="$LD"
+
+ ## CAVEAT EMPTOR:
+ ## There is no encapsulation within the following macros, do not change
+ ## the running order or otherwise move them around unless you know exactly
+ ## what you are doing...
+ _LT_SYS_HIDDEN_LIBDEPS($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_SYS_DYNAMIC_LINKER($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+ fi # test -n "$compiler"
+
+ GCC=$lt_save_GCC
+ CC=$lt_save_CC
+ CFLAGS=$lt_save_CFLAGS
+fi # test "$_lt_disable_FC" != yes
+
+AC_LANG_POP
+])# _LT_LANG_FC_CONFIG
+
+
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_GCJ_CONFIG],
+[AC_REQUIRE([LT_PROG_GCJ])dnl
+AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GCJ-"gcj"}
+CFLAGS=$GCJFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)="$LD"
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+ _LT_COMPILER_NO_RTTI($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GCJ_CONFIG
+
+
+# _LT_LANG_RC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for the Windows resource compiler
+# are suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_RC_CONFIG],
+[AC_REQUIRE([LT_PROG_RC])dnl
+AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=
+CC=${RC-"windres"}
+CFLAGS=
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+if test -n "$compiler"; then
+ :
+ _LT_CONFIG($1)
+fi
+
+GCC=$lt_save_GCC
+AC_LANG_RESTORE
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_RC_CONFIG
+
+
+# LT_PROG_GCJ
+# -----------
+AC_DEFUN([LT_PROG_GCJ],
+[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+ [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+ [AC_CHECK_TOOL(GCJ, gcj,)
+ test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+ AC_SUBST(GCJFLAGS)])])[]dnl
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
+
+
+# LT_PROG_RC
+# ----------
+AC_DEFUN([LT_PROG_RC],
+[AC_CHECK_TOOL(RC, windres,)
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_RC], [])
+
+
+# _LT_DECL_EGREP
+# --------------
+# If we don't have a new enough Autoconf to choose the best grep
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_EGREP],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_REQUIRE([AC_PROG_FGREP])dnl
+test -z "$GREP" && GREP=grep
+_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
+_LT_DECL([], [EGREP], [1], [An ERE matcher])
+_LT_DECL([], [FGREP], [1], [A literal string matcher])
+dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
+AC_SUBST([GREP])
+])
+
+
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_OBJDUMP],
+[AC_CHECK_TOOL(OBJDUMP, objdump, false)
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
+AC_SUBST([OBJDUMP])
+])
+
+# _LT_DECL_DLLTOOL
+# ----------------
+# Ensure DLLTOOL variable is set.
+m4_defun([_LT_DECL_DLLTOOL],
+[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
+AC_SUBST([DLLTOOL])
+])
+
+# _LT_DECL_SED
+# ------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible. Prefer GNU sed if found.
+m4_defun([_LT_DECL_SED],
+[AC_PROG_SED
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
+_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
+ [Sed that helps us avoid accidentally triggering echo(1) options like -n])
+])# _LT_DECL_SED
+
+m4_ifndef([AC_PROG_SED], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into #
+# GNU Autoconf as AC_PROG_SED. When it is available in #
+# a released version of Autoconf we should remove this #
+# macro and use it instead. #
+############################################################
+
+m4_defun([AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for lt_ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+ lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+ fi
+ done
+ done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+ test ! -f $lt_ac_sed && continue
+ cat /dev/null > conftest.in
+ lt_ac_count=0
+ echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+ # Check for GNU sed and select it if it is found.
+ if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+ lt_cv_path_SED=$lt_ac_sed
+ break
+ fi
+ while true; do
+ cat conftest.in conftest.in >conftest.tmp
+ mv conftest.tmp conftest.in
+ cp conftest.in conftest.nl
+ echo >>conftest.nl
+ $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+ cmp -s conftest.out conftest.nl || break
+ # 10000 chars as input seems more than enough
+ test $lt_ac_count -gt 10 && break
+ lt_ac_count=`expr $lt_ac_count + 1`
+ if test $lt_ac_count -gt $lt_ac_max; then
+ lt_ac_max=$lt_ac_count
+ lt_cv_path_SED=$lt_ac_sed
+ fi
+ done
+done
+])
+SED=$lt_cv_path_SED
+AC_SUBST([SED])
+AC_MSG_RESULT([$SED])
+])#AC_PROG_SED
+])#m4_ifndef
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_SED], [])
+
+
+# _LT_CHECK_SHELL_FEATURES
+# ------------------------
+# Find out whether the shell is Bourne or XSI compatible,
+# or has some other useful features.
+m4_defun([_LT_CHECK_SHELL_FEATURES],
+[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
+ = c,a/b,b/c, \
+ && eval 'test $(( 1 + 1 )) -eq 2 \
+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+ && xsi_shell=yes
+AC_MSG_RESULT([$xsi_shell])
+_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
+
+AC_MSG_CHECKING([whether the shell understands "+="])
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
+ >/dev/null 2>&1 \
+ && lt_shell_append=yes
+AC_MSG_RESULT([$lt_shell_append])
+_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
+else
+ lt_unset=false
+fi
+_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
+_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
+_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
+])# _LT_CHECK_SHELL_FEATURES
+
+
+# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
+# ------------------------------------------------------
+# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
+# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
+m4_defun([_LT_PROG_FUNCTION_REPLACE],
+[dnl {
+sed -e '/^$1 ()$/,/^} # $1 /c\
+$1 ()\
+{\
+m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1])
+} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
+ && mv -f "$cfgfile.tmp" "$cfgfile" \
+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+])
+
+
+# _LT_PROG_REPLACE_SHELLFNS
+# -------------------------
+# Replace existing portable implementations of several shell functions with
+# equivalent extended shell implementations where those features are available..
+m4_defun([_LT_PROG_REPLACE_SHELLFNS],
+[if test x"$xsi_shell" = xyes; then
+ _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
+ case ${1} in
+ */*) func_dirname_result="${1%/*}${2}" ;;
+ * ) func_dirname_result="${3}" ;;
+ esac])
+
+ _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
+ func_basename_result="${1##*/}"])
+
+ _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
+ case ${1} in
+ */*) func_dirname_result="${1%/*}${2}" ;;
+ * ) func_dirname_result="${3}" ;;
+ esac
+ func_basename_result="${1##*/}"])
+
+ _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
+ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+ # positional parameters, so assign one to ordinary parameter first.
+ func_stripname_result=${3}
+ func_stripname_result=${func_stripname_result#"${1}"}
+ func_stripname_result=${func_stripname_result%"${2}"}])
+
+ _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
+ func_split_long_opt_name=${1%%=*}
+ func_split_long_opt_arg=${1#*=}])
+
+ _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
+ func_split_short_opt_arg=${1#??}
+ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
+
+ _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
+ case ${1} in
+ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+ *) func_lo2o_result=${1} ;;
+ esac])
+
+ _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo])
+
+ _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))])
+
+ _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}])
+fi
+
+if test x"$lt_shell_append" = xyes; then
+ _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"])
+
+ _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
+ func_quote_for_eval "${2}"
+dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
+ eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
+
+ # Save a `func_append' function call where possible by direct use of '+='
+ sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
+ && mv -f "$cfgfile.tmp" "$cfgfile" \
+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+ test 0 -eq $? || _lt_function_replace_fail=:
+else
+ # Save a `func_append' function call even when '+=' is not available
+ sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
+ && mv -f "$cfgfile.tmp" "$cfgfile" \
+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+ test 0 -eq $? || _lt_function_replace_fail=:
+fi
+
+if test x"$_lt_function_replace_fail" = x":"; then
+ AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
+fi
+])
+
+# _LT_PATH_CONVERSION_FUNCTIONS
+# -----------------------------
+# Determine which file name conversion functions should be used by
+# func_to_host_file (and, implicitly, by func_to_host_path). These are needed
+# for certain cross-compile configurations and native mingw.
+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_MSG_CHECKING([how to convert $build file names to $host format])
+AC_CACHE_VAL(lt_cv_to_host_file_cmd,
+[case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+ ;;
+ esac
+ ;;
+ *-*-cygwin* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+ ;;
+ esac
+ ;;
+ * ) # unhandled hosts (and "normal" native builds)
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+esac
+])
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
+ [0], [convert $build file names to $host format])dnl
+
+AC_MSG_CHECKING([how to convert $build file names to toolchain format])
+AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
+[#assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ esac
+ ;;
+esac
+])
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
+ [0], [convert $build files to toolchain format])dnl
+])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4
new file mode 100644
index 0000000..17cfd51
--- /dev/null
+++ b/m4/ltoptions.m4
@@ -0,0 +1,369 @@
+# Helper functions for option handling. -*- Autoconf -*-
+#
+# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 7 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+m4_define([_LT_MANGLE_OPTION],
+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it. Other OPTION-NAMEs are
+# saved as a flag.
+m4_define([_LT_SET_OPTION],
+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
+ _LT_MANGLE_DEFUN([$1], [$2]),
+ [m4_warning([Unknown $1 option `$2'])])[]dnl
+])
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+m4_define([_LT_IF_OPTION],
+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+m4_define([_LT_UNLESS_OPTIONS],
+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+ [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
+ [m4_define([$0_found])])])[]dnl
+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
+])[]dnl
+])
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME. If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+m4_defun([_LT_SET_OPTIONS],
+[# Set options
+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+ [_LT_SET_OPTION([$1], _LT_Option)])
+
+m4_if([$1],[LT_INIT],[
+ dnl
+ dnl Simply set some default values (i.e off) if boolean options were not
+ dnl specified:
+ _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
+ ])
+ _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
+ ])
+ dnl
+ dnl If no reference was made to various pairs of opposing options, then
+ dnl we run the default mode handler for the pair. For example, if neither
+ dnl `shared' nor `disable-shared' was passed, we enable building of shared
+ dnl archives by default:
+ _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
+ _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
+ _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
+ _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
+ [_LT_ENABLE_FAST_INSTALL])
+ ])
+])# _LT_SET_OPTIONS
+
+
+## --------------------------------- ##
+## Macros to handle LT_INIT options. ##
+## --------------------------------- ##
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+m4_define([_LT_MANGLE_DEFUN],
+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+m4_define([LT_OPTION_DEFINE],
+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
+])# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
+])
+
+AU_DEFUN([AC_LIBTOOL_DLOPEN],
+[_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `dlopen' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+LT_OPTION_DEFINE([LT_INIT], [win32-dll],
+[enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
+ AC_CHECK_TOOL(AS, as, false)
+ AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+ AC_CHECK_TOOL(OBJDUMP, objdump, false)
+ ;;
+esac
+
+test -z "$AS" && AS=as
+_LT_DECL([], [AS], [1], [Assembler program])dnl
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
+])# win32-dll
+
+AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `win32-dll' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the `shared' and
+# `disable-shared' LT_INIT options.
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_SHARED],
+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([shared],
+ [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+ [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac],
+ [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
+
+ _LT_DECL([build_libtool_libs], [enable_shared], [0],
+ [Whether or not to build shared libraries])
+])# _LT_ENABLE_SHARED
+
+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+
+AC_DEFUN([AC_DISABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+
+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_SHARED], [])
+dnl AC_DEFUN([AM_DISABLE_SHARED], [])
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the `static' and
+# `disable-static' LT_INIT options.
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_STATIC],
+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([static],
+ [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+ [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac],
+ [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
+
+ _LT_DECL([build_old_libs], [enable_static], [0],
+ [Whether or not to build static libraries])
+])# _LT_ENABLE_STATIC
+
+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+
+AC_DEFUN([AC_DISABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+
+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_STATIC], [])
+dnl AC_DEFUN([AM_DISABLE_STATIC], [])
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the `fast-install'
+# and `disable-fast-install' LT_INIT options.
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_FAST_INSTALL],
+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([fast-install],
+ [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+ [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac],
+ [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
+
+_LT_DECL([fast_install], [enable_fast_install], [0],
+ [Whether or not to optimize for fast installation])dnl
+])# _LT_ENABLE_FAST_INSTALL
+
+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
+
+# Old names:
+AU_DEFUN([AC_ENABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `fast-install' option into LT_INIT's first parameter.])
+])
+
+AU_DEFUN([AC_DISABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `disable-fast-install' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# LT_INIT options.
+# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
+m4_define([_LT_WITH_PIC],
+[AC_ARG_WITH([pic],
+ [AS_HELP_STRING([--with-pic],
+ [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+ [pic_mode="$withval"],
+ [pic_mode=default])
+
+test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
+
+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
+])# _LT_WITH_PIC
+
+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
+
+# Old name:
+AU_DEFUN([AC_LIBTOOL_PICMODE],
+[_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `pic-only' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
+
+## ----------------- ##
+## LTDL_INIT Options ##
+## ----------------- ##
+
+m4_define([_LTDL_MODE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
+ [m4_define([_LTDL_MODE], [nonrecursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [recursive],
+ [m4_define([_LTDL_MODE], [recursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [subproject],
+ [m4_define([_LTDL_MODE], [subproject])])
+
+m4_define([_LTDL_TYPE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [installable],
+ [m4_define([_LTDL_TYPE], [installable])])
+LT_OPTION_DEFINE([LTDL_INIT], [convenience],
+ [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4
new file mode 100644
index 0000000..9000a05
--- /dev/null
+++ b/m4/ltsugar.m4
@@ -0,0 +1,123 @@
+# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
+#
+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+m4_define([lt_join],
+[m4_if([$#], [1], [],
+ [$#], [2], [[$2]],
+ [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
+m4_define([_lt_join],
+[m4_if([$#$2], [2], [],
+ [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59 which quotes differently.
+m4_define([lt_car], [[$1]])
+m4_define([lt_cdr],
+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
+ [$#], 1, [],
+ [m4_dquote(m4_shift($@))])])
+m4_define([lt_unquote], $1)
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+m4_define([lt_append],
+[m4_define([$1],
+ m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+m4_define([lt_combine],
+[m4_if(m4_eval([$# > 3]), [1],
+ [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
+[[m4_foreach([_Lt_prefix], [$2],
+ [m4_foreach([_Lt_suffix],
+ ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
+ [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+m4_define([lt_if_append_uniq],
+[m4_ifdef([$1],
+ [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
+ [lt_append([$1], [$2], [$3])$4],
+ [$5])],
+ [lt_append([$1], [$2], [$3])$4])])
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+m4_define([lt_dict_add],
+[m4_define([$1($2)], [$3])])
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+m4_define([lt_dict_add_subkey],
+[m4_define([$1($2:$3)], [$4])])
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+m4_define([lt_dict_fetch],
+[m4_ifval([$3],
+ m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
+ m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+m4_define([lt_if_dict_fetch],
+[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
+ [$5],
+ [$6])])
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+m4_define([lt_dict_filter],
+[m4_if([$5], [], [],
+ [lt_join(m4_quote(m4_default([$4], [[, ]])),
+ lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
+ [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
+])
diff --git a/m4/ltversion.m4 b/m4/ltversion.m4
new file mode 100644
index 0000000..9c7b5d4
--- /dev/null
+++ b/m4/ltversion.m4
@@ -0,0 +1,23 @@
+# ltversion.m4 -- version numbers -*- Autoconf -*-
+#
+# Copyright (C) 2004 Free Software Foundation, Inc.
+# Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# @configure_input@
+
+# serial 3293 ltversion.m4
+# This file is part of GNU Libtool
+
+m4_define([LT_PACKAGE_VERSION], [2.4])
+m4_define([LT_PACKAGE_REVISION], [1.3293])
+
+AC_DEFUN([LTVERSION_VERSION],
+[macro_version='2.4'
+macro_revision='1.3293'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4
new file mode 100644
index 0000000..ecc946d
--- /dev/null
+++ b/m4/lt~obsolete.m4
@@ -0,0 +1,98 @@
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
+#
+# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
+# Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 5 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else. This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+
+m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
+m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
+m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
+m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
+m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
+m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
+m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
+m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
+m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
+m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
+m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
+m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
+m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
+m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
+m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
+m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
+m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
+m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
+m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
+m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
+m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
+m4_ifndef([_LT_AC_TAMATECONFIG], [AC_DEFUN([_LT_AC_TAMATECONFIG])])
+m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
+m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
+m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
+m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
+m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
+m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
+m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
+m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
+m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
+m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
+m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
+m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
+m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
+m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
+m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
+m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
diff --git a/m4/mate-doc-utils.m4 b/m4/mate-doc-utils.m4
new file mode 100644
index 0000000..b55e0fe
--- /dev/null
+++ b/m4/mate-doc-utils.m4
@@ -0,0 +1,56 @@
+dnl Do not call MATE_DOC_DEFINES directly. It is split out from
+dnl MATE_DOC_INIT to allow mate-doc-utils to bootstrap off itself.
+AC_DEFUN([MATE_DOC_DEFINES],
+[
+AC_ARG_WITH([help-dir],
+ AC_HELP_STRING([--with-help-dir=DIR], [path to help docs]),,
+ [with_help_dir='${datadir}/mate/help'])
+HELP_DIR="$with_help_dir"
+AC_SUBST(HELP_DIR)
+
+AC_ARG_WITH([omf-dir],
+ AC_HELP_STRING([--with-omf-dir=DIR], [path to OMF files]),,
+ [with_omf_dir='${datadir}/omf'])
+OMF_DIR="$with_omf_dir"
+AC_SUBST(OMF_DIR)
+
+AC_ARG_WITH([help-formats],
+ AC_HELP_STRING([--with-help-formats=FORMATS], [list of formats]),,
+ [with_help_formats=''])
+DOC_USER_FORMATS="$with_help_formats"
+AC_SUBST(DOC_USER_FORMATS)
+
+AC_ARG_ENABLE([scrollkeeper],
+ [AC_HELP_STRING([--disable-scrollkeeper],
+ [do not make updates to the scrollkeeper database])],,
+ enable_scrollkeeper=yes)
+AM_CONDITIONAL([ENABLE_SK],[test "$gdu_cv_have_gdu" = "yes" -a "$enable_scrollkeeper" = "yes"])
+
+dnl disable scrollkeeper automatically for distcheck
+DISTCHECK_CONFIGURE_FLAGS="--disable-scrollkeeper $DISTCHECK_CONFIGURE_FLAGS"
+AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
+
+AM_CONDITIONAL([HAVE_MATE_DOC_UTILS],[test "$gdu_cv_have_gdu" = "yes"])
+])
+
+# MATE_DOC_INIT ([MINIMUM-VERSION],[ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
+#
+AC_DEFUN([MATE_DOC_INIT],
+[AC_REQUIRE([AC_PROG_LN_S])dnl
+
+ifelse([$1],,[gdu_cv_version_required=0.3.2],[gdu_cv_version_required=$1])
+
+AC_MSG_CHECKING([mate-doc-utils >= $gdu_cv_version_required])
+PKG_CHECK_EXISTS([mate-doc-utils >= $gdu_cv_version_required],
+ [gdu_cv_have_gdu=yes],[gdu_cv_have_gdu=no])
+
+if test "$gdu_cv_have_gdu" = "yes"; then
+ AC_MSG_RESULT([yes])
+ ifelse([$2],,[:],[$2])
+else
+ AC_MSG_RESULT([no])
+ ifelse([$3],,[AC_MSG_ERROR([mate-doc-utils >= $gdu_cv_version_required not found])],[$3])
+fi
+
+MATE_DOC_DEFINES
+])
diff --git a/mate-doc-utils.make b/mate-doc-utils.make
new file mode 100644
index 0000000..f97d41a
--- /dev/null
+++ b/mate-doc-utils.make
@@ -0,0 +1,655 @@
+# mate-doc-utils.make - make magic for building documentation
+# Copyright (C) 2004-2005 Shaun McCance <[email protected]>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+################################################################################
+## @@ Generating Header Files
+
+## @ DOC_H_FILE
+## The name of the header file to generate
+DOC_H_FILE ?=
+
+## @ DOC_H_DOCS
+## The input DocBook files for generating the header file
+DOC_H_DOCS ?=
+
+$(DOC_H_FILE): $(DOC_H_DOCS);
+ echo 'const gchar* documentation_credits[] = {' >> [email protected]
+ list='$(DOC_H_DOCS)'; for doc in $$list; do \
+ xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \
+ if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \
+ xsltproc --path "$$xmlpath" $(_credits) $$doc; \
+ done | sort | uniq \
+ | awk 'BEGIN{s=""}{n=split($$0,w,"<");if(s!=""&&s!=substr(w[1],1,length(w[1])-1)){print s};if(n>1){print $$0;s=""}else{s=$$0}};END{if(s!=""){print s}}' \
+ | sed -e 's/\\/\\\\/' -e 's/"/\\"/' -e 's/\(.*\)/\t"\1",/' >> [email protected]
+ echo ' NULL' >> [email protected]
+ echo '};' >> [email protected]
+ list='$(DOC_H_DOCS)'; for doc in $$list; do \
+ xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \
+ if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \
+ docid=`echo "$$doc" | sed -e 's/.*\/\([^/]*\)\.xml/\1/' \
+ | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`; \
+ echo $$xmlpath; \
+ ids=`xsltproc --xinclude --path "$$xmlpath" $(_ids) $$doc`; \
+ for id in $$ids; do \
+ echo '#define HELP_'`echo $$docid`'_'`echo $$id \
+ | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`' "'$$id'"' >> [email protected]; \
+ done; \
+ echo >> [email protected]; \
+ done;
+
+dist-check-gdu:
+if !HAVE_MATE_DOC_UTILS
+ @echo "*** MATE Doc Utils must be installed in order to make dist"
+ @false
+endif
+
+.PHONY: dist-doc-header
+dist-doc-header: $(DOC_H_FILE)
+ @if test -f "$(DOC_H_FILE)"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$(INSTALL_DATA) $${d}$(DOC_H_FILE) $(distdir)/$(DOC_H_FILE)"; \
+ $(INSTALL_DATA) "$${d}$(DOC_H_FILE)" "$(distdir)/$(DOC_H_FILE)";
+
+doc-dist-hook: dist-check-gdu $(if $(DOC_H_FILE),dist-doc-header)
+
+.PHONY: clean-doc-header
+_clean_doc_header = $(if $(DOC_H_FILE),clean-doc-header)
+clean-local: $(_clean_doc_header)
+distclean-local: $(_clean_doc_header)
+mostlyclean-local: $(_clean_doc_header)
+maintainer-clean-local: $(_clean_doc_header)
+clean-doc-header:
+ rm -f $(DOC_H_FILE)
+
+all: $(DOC_H_FILE)
+
+
+################################################################################
+## @@ Generating Documentation Files
+
+## @ DOC_MODULE
+## The name of the document being built
+DOC_MODULE ?=
+
+## @ DOC_ID
+## The unique identifier for a Mallard document
+DOC_ID ?=
+
+## @ DOC_PAGES
+## Page files in a Mallard document
+DOC_PAGES ?=
+
+## @ DOC_ENTITIES
+## Files included with a SYSTEM entity
+DOC_ENTITIES ?=
+
+## @ DOC_INCLUDES
+## Files included with XInclude
+DOC_INCLUDES ?=
+
+## @ DOC_FIGURES
+## Figures and other external data
+DOC_FIGURES ?=
+
+## @ DOC_FORMATS
+## The default formats to be built and installed
+DOC_FORMATS ?= docbook
+_DOC_REAL_FORMATS = $(if $(DOC_USER_FORMATS),$(DOC_USER_FORMATS),$(DOC_FORMATS))
+
+## @ DOC_LINGUAS
+## The languages this document is translated into
+DOC_LINGUAS ?=
+_DOC_REAL_LINGUAS = $(if $(filter environment,$(origin LINGUAS)), \
+ $(filter $(LINGUAS),$(DOC_LINGUAS)), \
+ $(DOC_LINGUAS))
+
+_DOC_ABS_SRCDIR = @abs_srcdir@
+
+
+################################################################################
+## Variables for Bootstrapping
+
+_xml2po ?= `which xml2po`
+_xml2po_mode = $(if $(DOC_ID),mallard,docbook)
+
+_db2html ?= `$(PKG_CONFIG) --variable db2html mate-doc-utils`
+_db2omf ?= `$(PKG_CONFIG) --variable db2omf mate-doc-utils`
+_malrng ?= `$(PKG_CONFIG) --variable malrng mate-doc-utils`
+_chunks ?= `$(PKG_CONFIG) --variable xmldir mate-doc-utils`/mate/xslt/docbook/utils/chunks.xsl
+_credits ?= `$(PKG_CONFIG) --variable xmldir mate-doc-utils`/mate/xslt/docbook/utils/credits.xsl
+_ids ?= `$(PKG_CONFIG) --variable xmldir mate-doc-utils`/mate/xslt/docbook/utils/ids.xsl
+
+if ENABLE_SK
+_ENABLE_SK = true
+_skpkgdatadir ?= `scrollkeeper-config --pkgdatadir`
+_sklocalstatedir ?= `scrollkeeper-config --pkglocalstatedir`
+_skcontentslist ?= $(_skpkgdatadir)/Templates/C/scrollkeeper_cl.xml
+endif
+
+
+################################################################################
+## @@ Rules for OMF Files
+
+db2omf_args = \
+ --stringparam db2omf.basename $(DOC_MODULE) \
+ --stringparam db2omf.format $(3) \
+ --stringparam db2omf.dtd \
+ $(shell xmllint --format $(2) | grep -h PUBLIC | head -n 1 \
+ | sed -e 's/.*PUBLIC \(\"[^\"]*\"\).*/\1/') \
+ --stringparam db2omf.lang $(notdir $(patsubst %/$(notdir $(2)),%,$(2))) \
+ --stringparam db2omf.omf_dir "$(OMF_DIR)" \
+ --stringparam db2omf.help_dir "$(HELP_DIR)" \
+ --stringparam db2omf.omf_in "$(_DOC_OMF_IN)" \
+ $(if $(_ENABLE_SK), \
+ --stringparam db2omf.scrollkeeper_cl "$(_skcontentslist)") \
+ $(_db2omf) $(2)
+
+## @ _DOC_OMF_IN
+## The OMF input file
+_DOC_OMF_IN = $(if $(DOC_MODULE),$(wildcard $(_DOC_ABS_SRCDIR)/$(DOC_MODULE).omf.in))
+
+## @ _DOC_OMF_DB
+## The OMF files for DocBook output
+_DOC_OMF_DB = $(if $(_DOC_OMF_IN), \
+ $(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-$(lc).omf))
+
+$(_DOC_OMF_DB) : $(_DOC_OMF_IN)
+$(_DOC_OMF_DB) : $(DOC_MODULE)-%.omf : %/$(DOC_MODULE).xml
+ @test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || { \
+ echo "The file '$(_skcontentslist)' does not exist." >&2; \
+ echo "Please check your ScrollKeeper installation." >&2; \
+ exit 1; }
+ xsltproc -o $@ $(call db2omf_args,$@,$<,'docbook') || { rm -f "$@"; exit 1; }
+
+## @ _DOC_OMF_HTML
+## The OMF files for HTML output
+_DOC_OMF_HTML = $(if $(_DOC_OMF_IN), \
+ $(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-html-$(lc).omf))
+
+$(_DOC_OMF_HTML) : $(_DOC_OMF_IN)
+$(_DOC_OMF_HTML) : $(DOC_MODULE)-html-%.omf : %/$(DOC_MODULE).xml
+if ENABLE_SK
+ @test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || { \
+ echo "The file '$(_skcontentslist)' does not exist" >&2; \
+ echo "Please check your ScrollKeeper installation." >&2; \
+ exit 1; }
+endif
+ xsltproc -o $@ $(call db2omf_args,$@,$<,'xhtml') || { rm -f "$@"; exit 1; }
+
+## @ _DOC_OMF_ALL
+## All OMF output files to be built
+# FIXME
+_DOC_OMF_ALL = \
+ $(if $(filter docbook,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_DB)) \
+ $(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_HTML))
+
+.PHONY: omf
+omf: $(_DOC_OMF_ALL)
+
+
+################################################################################
+## @@ C Locale Documents
+
+## @ _DOC_C_MODULE
+## The top-level documentation file in the C locale
+_DOC_C_MODULE = $(if $(DOC_MODULE),C/$(DOC_MODULE).xml)
+
+## @ _DOC_C_PAGES
+## Page files in a Mallard document in the C locale
+_DOC_C_PAGES = $(foreach page,$(DOC_PAGES),C/$(page))
+
+## @ _DOC_C_ENTITIES
+## Files included with a SYSTEM entity in the C locale
+_DOC_C_ENTITIES = $(foreach ent,$(DOC_ENTITIES),C/$(ent))
+
+## @ _DOC_C_XINCLUDES
+## Files included with XInclude in the C locale
+_DOC_C_INCLUDES = $(foreach inc,$(DOC_INCLUDES),C/$(inc))
+
+## @ _DOC_C_DOCS
+## All documentation files in the C locale
+_DOC_C_DOCS = \
+ $(_DOC_C_ENTITIES) $(_DOC_C_INCLUDES) \
+ $(_DOC_C_PAGES) $(_DOC_C_MODULE)
+
+## @ _DOC_C_DOCS_NOENT
+## All documentation files in the C locale,
+## except files included with a SYSTEM entity
+_DOC_C_DOCS_NOENT = \
+ $(_DOC_C_MODULE) $(_DOC_C_INCLUDES) \
+ $(_DOC_C_PAGES)
+
+## @ _DOC_C_FIGURES
+## All figures and other external data in the C locale
+_DOC_C_FIGURES = $(if $(DOC_FIGURES), \
+ $(foreach fig,$(DOC_FIGURES),C/$(fig)), \
+ $(patsubst $(srcdir)/%,%,$(wildcard $(srcdir)/C/figures/*.png)))
+
+## @ _DOC_C_HTML
+## All HTML documentation in the C locale
+# FIXME: probably have to shell escape to determine the file names
+_DOC_C_HTML = $(foreach f, \
+ $(shell xsltproc --xinclude \
+ --stringparam db.chunk.basename "$(DOC_MODULE)" \
+ $(_chunks) "C/$(DOC_MODULE).xml"), \
+ C/$(f).xhtml)
+
+###############################################################################
+## @@ Other Locale Documentation
+
+## @ _DOC_POFILES
+## The .po files used for translating the document
+_DOC_POFILES = $(if $(DOC_MODULE)$(DOC_ID), \
+ $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(lc).po))
+
+.PHONY: po
+po: $(_DOC_POFILES)
+
+## @ _DOC_MOFILES
+## The .mo files used for translating the document
+_DOC_MOFILES = $(patsubst %.po,%.mo,$(_DOC_POFILES))
+
+.PHONY: mo
+mo: $(_DOC_MOFILES)
+
+## @ _DOC_LC_MODULES
+## The top-level documentation files in all other locales
+_DOC_LC_MODULES = $(if $(DOC_MODULE), \
+ $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xml))
+
+## @ _DOC_LC_PAGES
+## Page files in a Mallard document in all other locales
+_DOC_LC_PAGES = \
+ $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach page,$(_DOC_C_PAGES), \
+ $(lc)/$(notdir $(page)) ))
+
+## @ _DOC_LC_XINCLUDES
+## Files included with XInclude in all other locales
+_DOC_LC_INCLUDES = \
+ $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach inc,$(_DOC_C_INCLUDES), \
+ $(lc)/$(notdir $(inc)) ))
+
+## @ _DOC_LC_HTML
+## All HTML documentation in all other locales
+# FIXME: probably have to shell escape to determine the file names
+_DOC_LC_HTML = \
+ $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach doc,$(_DOC_C_HTML), \
+ $(lc)/$(notdir $(doc)) ))
+
+## @ _DOC_LC_DOCS
+## All documentation files in all other locales
+_DOC_LC_DOCS = \
+ $(_DOC_LC_MODULES) $(_DOC_LC_INCLUDES) $(_DOC_LC_PAGES) \
+ $(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_LC_HTML))
+
+## @ _DOC_LC_FIGURES
+## All figures and other external data in all other locales
+_DOC_LC_FIGURES = $(foreach lc,$(_DOC_REAL_LINGUAS), \
+ $(patsubst C/%,$(lc)/%,$(_DOC_C_FIGURES)) )
+
+_DOC_SRC_FIGURES = \
+ $(foreach fig,$(_DOC_C_FIGURES), $(foreach lc,C $(_DOC_REAL_LINGUAS), \
+ $(wildcard $(srcdir)/$(lc)/$(patsubst C/%,%,$(fig))) ))
+
+$(_DOC_POFILES):
+ @if ! test -d $(dir $@); then \
+ echo "mkdir $(dir $@)"; \
+ mkdir "$(dir $@)"; \
+ fi
+ @if test ! -f $@ -a -f $(srcdir)/$@; then \
+ echo "cp $(srcdir)/$@ $@"; \
+ cp "$(srcdir)/$@" "$@"; \
+ fi;
+ @docs=; \
+ list='$(_DOC_C_DOCS_NOENT)'; for doc in $$list; do \
+ docs="$$docs $(_DOC_ABS_SRCDIR)/$$doc"; \
+ done; \
+ if ! test -f $@; then \
+ echo "(cd $(dir $@) && \
+ $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \
+ cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)"; \
+ (cd $(dir $@) && \
+ $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \
+ cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp); \
+ else \
+ echo "(cd $(dir $@) && \
+ $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs)"; \
+ (cd $(dir $@) && \
+ $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs); \
+ fi
+
+$(_DOC_MOFILES): %.mo: %.po
+ @if ! test -d $(dir $@); then \
+ echo "mkdir $(dir $@)"; \
+ mkdir "$(dir $@)"; \
+ fi
+ msgfmt -o $@ $<
+
+# FIXME: fix the dependancy
+# FIXME: hook xml2po up
+$(_DOC_LC_DOCS) : $(_DOC_MOFILES)
+$(_DOC_LC_DOCS) : $(_DOC_C_DOCS)
+ if ! test -d $(dir $@); then mkdir $(dir $@); fi
+ if [ -f "C/$(notdir $@)" ]; then d="../"; else d="$(_DOC_ABS_SRCDIR)/"; fi; \
+ mo="$(dir $@)$(patsubst %/$(notdir $@),%,$@).mo"; \
+ if [ -f "$${mo}" ]; then mo="../$${mo}"; else mo="$(_DOC_ABS_SRCDIR)/$${mo}"; fi; \
+ (cd $(dir $@) && \
+ $(_xml2po) -m $(_xml2po_mode) -e -t "$${mo}" \
+ "$${d}C/$(notdir $@)" > $(notdir $@).tmp && \
+ cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)
+
+## @ _DOC_POT
+## A pot file
+_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot)
+.PHONY: pot
+pot: $(_DOC_POT)
+$(_DOC_POT): $(_DOC_C_DOCS_NOENT)
+ $(_xml2po) -m $(_xml2po_mode) -e -o $@ $^
+
+
+################################################################################
+## @@ All Documentation
+
+## @ _DOC_HTML_ALL
+## All HTML documentation, only if it's built
+_DOC_HTML_ALL = $(if $(filter html HTML,$(_DOC_REAL_FORMATS)), \
+ $(_DOC_C_HTML) $(_DOC_LC_HTML))
+
+_DOC_HTML_TOPS = $(foreach lc,C $(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xhtml)
+
+$(_DOC_HTML_TOPS): $(_DOC_C_DOCS) $(_DOC_LC_DOCS)
+ xsltproc -o $@ --xinclude --param db.chunk.chunk_top "false()" --stringparam db.chunk.basename "$(DOC_MODULE)" --stringparam db.chunk.extension ".xhtml" $(_db2html) $(patsubst %.xhtml,%.xml,$@)
+
+
+################################################################################
+## All
+
+all: \
+ $(_DOC_C_DOCS) $(_DOC_LC_DOCS) \
+ $(_DOC_OMF_ALL) $(_DOC_DSK_ALL) \
+ $(_DOC_HTML_ALL) $(_DOC_POFILES)
+
+
+################################################################################
+## Clean
+
+.PHONY: clean-doc-omf clean-doc-dsk clean-doc-lc clean-doc-dir
+
+clean-doc-omf: ; rm -f $(_DOC_OMF_DB) $(_DOC_OMF_HTML)
+clean-doc-dsk: ; rm -f $(_DOC_DSK_DB) $(_DOC_DSK_HTML)
+clean-doc-lc:
+ rm -f $(_DOC_LC_DOCS)
+ rm -f $(_DOC_MOFILES)
+ @list='$(_DOC_POFILES)'; for po in $$list; do \
+ if ! test "$$po" -ef "$(srcdir)/$$po"; then \
+ echo "rm -f $$po"; \
+ rm -f "$$po"; \
+ fi; \
+ done
+# .xml2.po.mo cleaning is obsolete as of 0.18.1 and could be removed in 0.20.x
+ @for lc in C $(_DOC_REAL_LINGUAS); do \
+ if test -f "$$lc/.xml2po.mo"; then \
+ echo "rm -f $$lc/.xml2po.mo"; \
+ rm -f "$$lc/.xml2po.mo"; \
+ fi; \
+ done
+clean-doc-dir: clean-doc-lc
+ @for lc in C $(_DOC_REAL_LINGUAS); do \
+ for dir in `find $$lc -depth -type d`; do \
+ if ! test $$dir -ef $(srcdir)/$$dir; then \
+ echo "rmdir $$dir"; \
+ rmdir "$$dir"; \
+ fi; \
+ done; \
+ done
+
+_clean_omf = $(if $(_DOC_OMF_IN),clean-doc-omf)
+_clean_dsk = $(if $(_DOC_DSK_IN),clean-doc-dsk)
+_clean_lc = $(if $(_DOC_REAL_LINGUAS),clean-doc-lc)
+_clean_dir = $(if $(DOC_MODULE)$(DOC_ID),clean-doc-dir)
+
+clean-local: \
+ $(_clean_omf) $(_clean_dsk) \
+ $(_clean_lc) $(_clean_dir)
+distclean-local: \
+ $(_clean_omf) $(_clean_dsk) \
+ $(_clean_lc) $(_clean_dir)
+mostlyclean-local: \
+ $(_clean_omf) $(_clean_dsk) \
+ $(_clean_lc) $(_clean_dir)
+maintainer-clean-local: \
+ $(_clean_omf) $(_clean_dsk) \
+ $(_clean_lc) $(_clean_dir)
+
+
+
+################################################################################
+## Dist
+
+.PHONY: dist-doc-docs dist-doc-pages dist-doc-figs dist-doc-omf dist-doc-dsk
+doc-dist-hook: \
+ $(if $(DOC_MODULE)$(DOC_ID),dist-doc-docs) \
+ $(if $(_DOC_C_FIGURES),dist-doc-figs) \
+ $(if $(_DOC_OMF_IN),dist-doc-omf)
+# $(if $(_DOC_DSK_IN),dist-doc-dsk)
+
+dist-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)
+ @for lc in C $(_DOC_REAL_LINGUAS); do \
+ echo " $(mkinstalldirs) $(distdir)/$$lc"; \
+ $(mkinstalldirs) "$(distdir)/$$lc"; \
+ done
+ @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)'; \
+ for doc in $$list; do \
+ if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
+ docdir=`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
+ if ! test -d "$(distdir)/$$docdir"; then \
+ echo "$(mkinstalldirs) $(distdir)/$$docdir"; \
+ $(mkinstalldirs) "$(distdir)/$$docdir"; \
+ fi; \
+ echo "$(INSTALL_DATA) $$d$$doc $(distdir)/$$doc"; \
+ $(INSTALL_DATA) "$$d$$doc" "$(distdir)/$$doc"; \
+ done
+
+dist-doc-figs: $(_DOC_SRC_FIGURES)
+ @list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; \
+ for fig in $$list; do \
+ if test -f "$$fig"; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$fig"; then \
+ figdir=`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
+ if ! test -d "$(distdir)/$$figdir"; then \
+ echo "$(mkinstalldirs) $(distdir)/$$figdir"; \
+ $(mkinstalldirs) "$(distdir)/$$figdir"; \
+ fi; \
+ echo "$(INSTALL_DATA) $$d$$fig $(distdir)/$$fig"; \
+ $(INSTALL_DATA) "$$d$$fig" "$(distdir)/$$fig"; \
+ fi; \
+ done;
+
+dist-doc-omf:
+ @if test -f "$(_DOC_OMF_IN)"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$(INSTALL_DATA) $$d$(_DOC_OMF_IN) $(distdir)/$(notdir $(_DOC_OMF_IN))"; \
+ $(INSTALL_DATA) "$$d$(_DOC_OMF_IN)" "$(distdir)/$(notdir $(_DOC_OMF_IN))"
+
+dist-doc-dsk:
+ @if test -f "$(_DOC_DSK_IN)"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$(INSTALL_DATA) $$d$(_DOC_DSK_IN) $(distdir)/$(notdir $(_DOC_DSK_IN))"; \
+ $(INSTALL_DATA) "$$d$(_DOC_DSK_IN)" "$(distdir)/$(notdir $(_DOC_DSK_IN))"
+
+
+
+################################################################################
+## Check
+
+.PHONY: check-doc-docs check-doc-omf
+check: \
+ $(if $(DOC_MODULE),check-doc-docs) \
+ $(if $(DOC_ID),check-doc-pages) \
+ $(if $(_DOC_OMF_IN),check-doc-omf)
+
+check-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS)
+ @for lc in C $(_DOC_REAL_LINGUAS); do \
+ if test -f "$$lc"; \
+ then d=; \
+ xmlpath="$$lc"; \
+ else \
+ d="$(srcdir)/"; \
+ xmlpath="$$lc:$(srcdir)/$$lc"; \
+ fi; \
+ echo "xmllint --noout --noent --path $$xmlpath --xinclude --postvalid $$d$$lc/$(DOC_MODULE).xml"; \
+ xmllint --noout --noent --path "$$xmlpath" --xinclude --postvalid "$$d$$lc/$(DOC_MODULE).xml"; \
+ done
+
+check-doc-pages: $(_DOC_C_PAGES) $(_DOC_LC_PAGES)
+ for lc in C $(_DOC_REAL_LINGUAS); do \
+ if test -f "$$lc"; \
+ then d=; \
+ xmlpath="$$lc"; \
+ else \
+ d="$(srcdir)/"; \
+ xmlpath="$$lc:$(srcdir)/$$lc"; \
+ fi; \
+ for page in $(DOC_PAGES); do \
+ echo "xmllint --noout --noent --path $$xmlpath --xinclude --relaxng $(_malrng) $$d$$lc/$$page"; \
+ xmllint --noout --noent --path "$$xmlpath" --xinclude --relaxng "$(_malrng)" "$$d$$lc/$$page"; \
+ done; \
+ done
+
+check-doc-omf: $(_DOC_OMF_ALL)
+ @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
+ echo "xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf"; \
+ xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf; \
+ done
+
+
+
+################################################################################
+## Install
+
+.PHONY: install-doc-docs install-doc-html install-doc-figs install-doc-omf install-doc-dsk
+
+_doc_install_dir = $(if $(DOC_ID),$(DOC_ID),$(DOC_MODULE))
+
+install-data-local: \
+ $(if $(DOC_MODULE)$(DOC_ID),install-doc-docs) \
+ $(if $(_DOC_HTML_ALL),install-doc-html) \
+ $(if $(_DOC_C_FIGURES),install-doc-figs) \
+ $(if $(_DOC_OMF_IN),install-doc-omf)
+# $(if $(_DOC_DSK_IN),install-doc-dsk)
+
+install-doc-docs:
+ @for lc in C $(_DOC_REAL_LINGUAS); do \
+ echo "$(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc"; \
+ $(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc; \
+ done
+ @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \
+ if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
+ docdir="$$lc/"`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
+ docdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$docdir"; \
+ if ! test -d "$$docdir"; then \
+ echo "$(mkinstalldirs) $$docdir"; \
+ $(mkinstalldirs) "$$docdir"; \
+ fi; \
+ echo "$(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
+ $(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc; \
+ done
+
+install-doc-figs:
+ @list='$(patsubst C/%,%,$(_DOC_C_FIGURES))'; for fig in $$list; do \
+ for lc in C $(_DOC_REAL_LINGUAS); do \
+ figsymlink=false; \
+ if test -f "$$lc/$$fig"; then \
+ figfile="$$lc/$$fig"; \
+ elif test -f "$(srcdir)/$$lc/$$fig"; then \
+ figfile="$(srcdir)/$$lc/$$fig"; \
+ else \
+ figsymlink=true; \
+ fi; \
+ figdir="$$lc/"`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
+ figdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$figdir"; \
+ if ! test -d "$$figdir"; then \
+ echo "$(mkinstalldirs) $$figdir"; \
+ $(mkinstalldirs) "$$figdir"; \
+ fi; \
+ figbase=`echo $$fig | sed -e 's/^.*\///'`; \
+ if $$figsymlink; then \
+ echo "cd $$figdir && $(LN_S) -f ../../C/$$fig $$figbase"; \
+ ( cd "$$figdir" && $(LN_S) -f "../../C/$$fig" "$$figbase" ); \
+ else \
+ echo "$(INSTALL_DATA) $$figfile $$figdir$$figbase"; \
+ $(INSTALL_DATA) "$$figfile" "$$figdir$$figbase"; \
+ fi; \
+ done; \
+ done
+
+install-doc-html:
+ echo install-html
+
+install-doc-omf:
+ $(mkinstalldirs) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)
+ @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
+ echo "$(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
+ $(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf; \
+ done
+ @if test "x$(_ENABLE_SK)" = "xtrue"; then \
+ echo "scrollkeeper-update -p $(DESTDIR)$(_sklocalstatedir) -o $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \
+ scrollkeeper-update -p "$(DESTDIR)$(_sklocalstatedir)" -o "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \
+ fi;
+
+install-doc-dsk:
+ echo install-dsk
+
+
+
+################################################################################
+## Uninstall
+
+.PHONY: uninstall-doc-docs uninstall-doc-html uninstall-doc-figs uninstall-doc-omf uninstall-doc-dsk
+uninstall-local: \
+ $(if $(DOC_MODULE)$(DOC_ID),uninstall-doc-docs) \
+ $(if $(_DOC_HTML_ALL),uninstall-doc-html) \
+ $(if $(_DOC_C_FIGURES),uninstall-doc-figs) \
+ $(if $(_DOC_OMF_IN),uninstall-doc-omf)
+# $(if $(_DOC_DSK_IN),uninstall-doc-dsk)
+
+uninstall-doc-docs:
+ @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \
+ echo " rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
+ rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
+ done
+
+uninstall-doc-figs:
+ @list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; for fig in $$list; do \
+ echo "rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \
+ rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \
+ done;
+
+uninstall-doc-omf:
+ @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
+ if test "x$(_ENABLE_SK)" = "xtrue"; then \
+ echo "scrollkeeper-uninstall -p $(_sklocalstatedir) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
+ scrollkeeper-uninstall -p "$(_sklocalstatedir)" "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
+ fi; \
+ echo "rm -f $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
+ rm -f "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
+ done
diff --git a/mate-session/Makefile.am b/mate-session/Makefile.am
new file mode 100644
index 0000000..ee98a30
--- /dev/null
+++ b/mate-session/Makefile.am
@@ -0,0 +1,140 @@
+bin_PROGRAMS = mate-session
+noinst_LTLIBRARIES = libgsmutil.la
+noinst_PROGRAMS = \
+ test-client-dbus \
+ test-inhibit
+
+AM_CPPFLAGS = \
+ $(MATE_SESSION_CFLAGS) \
+ $(DISABLE_DEPRECATED_CFLAGS)
+
+AM_CFLAGS = $(WARN_CFLAGS)
+
+mate_session_SOURCES = \
+ gsm-app.h \
+ gsm-app.c \
+ gsm-autostart-app.h \
+ gsm-autostart-app.c \
+ gsm-client.c \
+ gsm-client.h \
+ gsm-xsmp-client.h \
+ gsm-xsmp-client.c \
+ gsm-dbus-client.h \
+ gsm-dbus-client.c \
+ gsm-marshal.h \
+ gsm-marshal.c \
+ gsm-consolekit.c \
+ gsm-consolekit.h \
+ gsm-logout-dialog.h \
+ gsm-logout-dialog.c \
+ gsm-inhibit-dialog.h \
+ gsm-inhibit-dialog.c \
+ gs-idle-monitor.h \
+ gs-idle-monitor.c \
+ gsm-presence.h \
+ gsm-presence.c \
+ gsm-mateconf.c \
+ gsm-mateconf.h \
+ mdm.h \
+ mdm.c \
+ mdm-signal-handler.h \
+ mdm-signal-handler.c \
+ mdm-log.h \
+ mdm-log.c \
+ main.c \
+ gsm-store.h \
+ gsm-store.c \
+ gsm-inhibitor.h \
+ gsm-inhibitor.c \
+ gsm-manager.c \
+ gsm-manager.h \
+ gsm-session-save.c \
+ gsm-session-save.h \
+ gsm-xsmp-server.c \
+ gsm-xsmp-server.h
+
+mate_session_CPPFLAGS = \
+ $(AM_CPPFLAGS) \
+ $(SM_CFLAGS) \
+ $(ICE_CFLAGS) \
+ $(XEXT_CFLAGS) \
+ $(MATECONF_CFLAGS) \
+ -I$(top_srcdir)/egg \
+ -DLOCALE_DIR=\""$(datadir)/locale"\" \
+ -DDATA_DIR=\""$(datadir)/mate-session"\" \
+ -DLIBEXECDIR=\"$(libexecdir)\" \
+ -DGTKBUILDER_DIR=\""$(pkgdatadir)"\" \
+ -DMATECONF_SANITY_CHECK=\""$(MATECONF_SANITY_CHECK)"\" \
+ -DMATECONFTOOL_CMD=\"$(MATECONFTOOL)\" \
+ -DI_KNOW_THE_DEVICEKIT_POWER_API_IS_SUBJECT_TO_CHANGE
+
+mate_session_LDADD = \
+ libgsmutil.la \
+ $(top_builddir)/egg/libeggdesktopfile.la \
+ $(SM_LIBS) \
+ $(ICE_LIBS) \
+ $(XRENDER_LIBS) \
+ $(XTEST_LIBS) \
+ $(XEXT_LIBS) \
+ $(MATE_SESSION_LIBS) \
+ $(MATECONF_LIBS) \
+ $(EXECINFO_LIBS)
+
+libgsmutil_la_SOURCES = \
+ gsm-util.c \
+ gsm-util.h
+
+libgsmutil_la_LIBADD = \
+ $(MATE_SESSION_LIBS)
+
+test_inhibit_SOURCES = test-inhibit.c
+test_inhibit_LDADD = $(MATE_SESSION_LIBS)
+
+test_client_dbus_SOURCES = test-client-dbus.c
+test_client_dbus_LDADD = $(DBUS_GLIB_LIBS)
+
+gsm-marshal.c: gsm-marshal.list
+ $(AM_V_GEN)echo "#include \"gsm-marshal.h\"" > $@ && \
+ $(GLIB_GENMARSHAL) $< --prefix=gsm_marshal --body >> $@
+
+gsm-marshal.h: gsm-marshal.list
+ $(AM_V_GEN)$(GLIB_GENMARSHAL) $< --prefix=gsm_marshal --header > $@
+
+gsm-manager-glue.h: org.mate.SessionManager.xml Makefile.am
+ $(AM_V_GEN)dbus-binding-tool --prefix=gsm_manager --mode=glib-server --output=gsm-manager-glue.h $(srcdir)/org.mate.SessionManager.xml
+
+gsm-client-glue.h: org.mate.SessionManager.Client.xml Makefile.am
+ $(AM_V_GEN)dbus-binding-tool --prefix=gsm_client --mode=glib-server --output=gsm-client-glue.h $(srcdir)/org.mate.SessionManager.Client.xml
+
+gsm-app-glue.h: org.mate.SessionManager.App.xml Makefile.am
+ $(AM_V_GEN)dbus-binding-tool --prefix=gsm_app --mode=glib-server --output=gsm-app-glue.h $(srcdir)/org.mate.SessionManager.App.xml
+
+gsm-inhibitor-glue.h: org.mate.SessionManager.Inhibitor.xml Makefile.am
+ $(AM_V_GEN)dbus-binding-tool --prefix=gsm_inhibitor --mode=glib-server --output=gsm-inhibitor-glue.h $(srcdir)/org.mate.SessionManager.Inhibitor.xml
+
+gsm-presence-glue.h: org.mate.SessionManager.Presence.xml Makefile.am
+ $(AM_V_GEN)dbus-binding-tool --prefix=gsm_presence --mode=glib-server --output=gsm-presence-glue.h $(srcdir)/org.mate.SessionManager.Presence.xml
+
+BUILT_SOURCES = \
+ gsm-marshal.c \
+ gsm-marshal.h \
+ gsm-manager-glue.h \
+ gsm-presence-glue.h \
+ gsm-inhibitor-glue.h \
+ gsm-client-glue.h \
+ gsm-app-glue.h
+
+EXTRA_DIST = \
+ README \
+ gsm-marshal.list \
+ org.mate.SessionManager.xml \
+ org.mate.SessionManager.App.xml \
+ org.mate.SessionManager.Client.xml \
+ org.mate.SessionManager.ClientPrivate.xml \
+ org.mate.SessionManager.Inhibitor.xml \
+ org.mate.SessionManager.Presence.xml
+
+CLEANFILES = \
+ $(BUILT_SOURCES)
+
+-include $(top_srcdir)/git.mk
diff --git a/mate-session/Makefile.in b/mate-session/Makefile.in
new file mode 100644
index 0000000..c2a5b48
--- /dev/null
+++ b/mate-session/Makefile.in
@@ -0,0 +1,1158 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+bin_PROGRAMS = mate-session$(EXEEXT)
+noinst_PROGRAMS = test-client-dbus$(EXEEXT) test-inhibit$(EXEEXT)
+subdir = mate-session
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libgsmutil_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_libgsmutil_la_OBJECTS = gsm-util.lo
+libgsmutil_la_OBJECTS = $(am_libgsmutil_la_OBJECTS)
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
+am__installdirs = "$(DESTDIR)$(bindir)"
+PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
+am_mate_session_OBJECTS = mate_session-gsm-app.$(OBJEXT) \
+ mate_session-gsm-autostart-app.$(OBJEXT) \
+ mate_session-gsm-client.$(OBJEXT) \
+ mate_session-gsm-xsmp-client.$(OBJEXT) \
+ mate_session-gsm-dbus-client.$(OBJEXT) \
+ mate_session-gsm-marshal.$(OBJEXT) \
+ mate_session-gsm-consolekit.$(OBJEXT) \
+ mate_session-gsm-logout-dialog.$(OBJEXT) \
+ mate_session-gsm-inhibit-dialog.$(OBJEXT) \
+ mate_session-gs-idle-monitor.$(OBJEXT) \
+ mate_session-gsm-presence.$(OBJEXT) \
+ mate_session-gsm-mateconf.$(OBJEXT) mate_session-mdm.$(OBJEXT) \
+ mate_session-mdm-signal-handler.$(OBJEXT) \
+ mate_session-mdm-log.$(OBJEXT) mate_session-main.$(OBJEXT) \
+ mate_session-gsm-store.$(OBJEXT) \
+ mate_session-gsm-inhibitor.$(OBJEXT) \
+ mate_session-gsm-manager.$(OBJEXT) \
+ mate_session-gsm-session-save.$(OBJEXT) \
+ mate_session-gsm-xsmp-server.$(OBJEXT)
+mate_session_OBJECTS = $(am_mate_session_OBJECTS)
+mate_session_DEPENDENCIES = libgsmutil.la \
+ $(top_builddir)/egg/libeggdesktopfile.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am_test_client_dbus_OBJECTS = test-client-dbus.$(OBJEXT)
+test_client_dbus_OBJECTS = $(am_test_client_dbus_OBJECTS)
+test_client_dbus_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_test_inhibit_OBJECTS = test-inhibit.$(OBJEXT)
+test_inhibit_OBJECTS = $(am_test_inhibit_OBJECTS)
+test_inhibit_DEPENDENCIES = $(am__DEPENDENCIES_1)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo " CC " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo " CCLD " $@;
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+SOURCES = $(libgsmutil_la_SOURCES) $(mate_session_SOURCES) \
+ $(test_client_dbus_SOURCES) $(test_inhibit_SOURCES)
+DIST_SOURCES = $(libgsmutil_la_SOURCES) $(mate_session_SOURCES) \
+ $(test_client_dbus_SOURCES) $(test_inhibit_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DEFAULT_WM = @DEFAULT_WM@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGG_SMCLIENT_CFLAGS = @EGG_SMCLIENT_CFLAGS@
+EGG_SMCLIENT_LIBS = @EGG_SMCLIENT_LIBS@
+EGREP = @EGREP@
+EXECINFO_LIBS = @EXECINFO_LIBS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HAVE_XRENDER = @HAVE_XRENDER@
+HAVE_XTEST = @HAVE_XTEST@
+ICE_CFLAGS = @ICE_CFLAGS@
+ICE_LIBS = @ICE_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATECONFTOOL = @MATECONFTOOL@
+MATECONF_CFLAGS = @MATECONF_CFLAGS@
+MATECONF_LIBS = @MATECONF_LIBS@
+MATECONF_SANITY_CHECK = @MATECONF_SANITY_CHECK@
+MATECONF_SCHEMA_CONFIG_SOURCE = @MATECONF_SCHEMA_CONFIG_SOURCE@
+MATECONF_SCHEMA_FILE_DIR = @MATECONF_SCHEMA_FILE_DIR@
+MATE_SESSION_CFLAGS = @MATE_SESSION_CFLAGS@
+MATE_SESSION_LIBS = @MATE_SESSION_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+REBUILD = @REBUILD@
+SED = @SED@
+SESSION_PROPERTIES_CFLAGS = @SESSION_PROPERTIES_CFLAGS@
+SESSION_PROPERTIES_LIBS = @SESSION_PROPERTIES_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SM_CFLAGS = @SM_CFLAGS@
+SM_LIBS = @SM_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XGETTEXT = @XGETTEXT@
+XMKMF = @XMKMF@
+XMLTO = @XMLTO@
+XRENDER_CFLAGS = @XRENDER_CFLAGS@
+XRENDER_LIBS = @XRENDER_LIBS@
+XSLTPROC = @XSLTPROC@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+noinst_LTLIBRARIES = libgsmutil.la
+AM_CPPFLAGS = \
+ $(MATE_SESSION_CFLAGS) \
+ $(DISABLE_DEPRECATED_CFLAGS)
+
+AM_CFLAGS = $(WARN_CFLAGS)
+mate_session_SOURCES = \
+ gsm-app.h \
+ gsm-app.c \
+ gsm-autostart-app.h \
+ gsm-autostart-app.c \
+ gsm-client.c \
+ gsm-client.h \
+ gsm-xsmp-client.h \
+ gsm-xsmp-client.c \
+ gsm-dbus-client.h \
+ gsm-dbus-client.c \
+ gsm-marshal.h \
+ gsm-marshal.c \
+ gsm-consolekit.c \
+ gsm-consolekit.h \
+ gsm-logout-dialog.h \
+ gsm-logout-dialog.c \
+ gsm-inhibit-dialog.h \
+ gsm-inhibit-dialog.c \
+ gs-idle-monitor.h \
+ gs-idle-monitor.c \
+ gsm-presence.h \
+ gsm-presence.c \
+ gsm-mateconf.c \
+ gsm-mateconf.h \
+ mdm.h \
+ mdm.c \
+ mdm-signal-handler.h \
+ mdm-signal-handler.c \
+ mdm-log.h \
+ mdm-log.c \
+ main.c \
+ gsm-store.h \
+ gsm-store.c \
+ gsm-inhibitor.h \
+ gsm-inhibitor.c \
+ gsm-manager.c \
+ gsm-manager.h \
+ gsm-session-save.c \
+ gsm-session-save.h \
+ gsm-xsmp-server.c \
+ gsm-xsmp-server.h
+
+mate_session_CPPFLAGS = \
+ $(AM_CPPFLAGS) \
+ $(SM_CFLAGS) \
+ $(ICE_CFLAGS) \
+ $(XEXT_CFLAGS) \
+ $(MATECONF_CFLAGS) \
+ -I$(top_srcdir)/egg \
+ -DLOCALE_DIR=\""$(datadir)/locale"\" \
+ -DDATA_DIR=\""$(datadir)/mate-session"\" \
+ -DLIBEXECDIR=\"$(libexecdir)\" \
+ -DGTKBUILDER_DIR=\""$(pkgdatadir)"\" \
+ -DMATECONF_SANITY_CHECK=\""$(MATECONF_SANITY_CHECK)"\" \
+ -DMATECONFTOOL_CMD=\"$(MATECONFTOOL)\" \
+ -DI_KNOW_THE_DEVICEKIT_POWER_API_IS_SUBJECT_TO_CHANGE
+
+mate_session_LDADD = \
+ libgsmutil.la \
+ $(top_builddir)/egg/libeggdesktopfile.la \
+ $(SM_LIBS) \
+ $(ICE_LIBS) \
+ $(XRENDER_LIBS) \
+ $(XTEST_LIBS) \
+ $(XEXT_LIBS) \
+ $(MATE_SESSION_LIBS) \
+ $(MATECONF_LIBS) \
+ $(EXECINFO_LIBS)
+
+libgsmutil_la_SOURCES = \
+ gsm-util.c \
+ gsm-util.h
+
+libgsmutil_la_LIBADD = \
+ $(MATE_SESSION_LIBS)
+
+test_inhibit_SOURCES = test-inhibit.c
+test_inhibit_LDADD = $(MATE_SESSION_LIBS)
+test_client_dbus_SOURCES = test-client-dbus.c
+test_client_dbus_LDADD = $(DBUS_GLIB_LIBS)
+BUILT_SOURCES = \
+ gsm-marshal.c \
+ gsm-marshal.h \
+ gsm-manager-glue.h \
+ gsm-presence-glue.h \
+ gsm-inhibitor-glue.h \
+ gsm-client-glue.h \
+ gsm-app-glue.h
+
+EXTRA_DIST = \
+ README \
+ gsm-marshal.list \
+ org.mate.SessionManager.xml \
+ org.mate.SessionManager.App.xml \
+ org.mate.SessionManager.Client.xml \
+ org.mate.SessionManager.ClientPrivate.xml \
+ org.mate.SessionManager.Inhibitor.xml \
+ org.mate.SessionManager.Presence.xml
+
+CLEANFILES = \
+ $(BUILT_SOURCES)
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mate-session/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu mate-session/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libgsmutil.la: $(libgsmutil_la_OBJECTS) $(libgsmutil_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(libgsmutil_la_OBJECTS) $(libgsmutil_la_LIBADD) $(LIBS)
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p || test -f $$p1; \
+ then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+ @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+
+clean-noinstPROGRAMS:
+ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+mate-session$(EXEEXT): $(mate_session_OBJECTS) $(mate_session_DEPENDENCIES)
+ @rm -f mate-session$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mate_session_OBJECTS) $(mate_session_LDADD) $(LIBS)
+test-client-dbus$(EXEEXT): $(test_client_dbus_OBJECTS) $(test_client_dbus_DEPENDENCIES)
+ @rm -f test-client-dbus$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_client_dbus_OBJECTS) $(test_client_dbus_LDADD) $(LIBS)
+test-inhibit$(EXEEXT): $(test_inhibit_OBJECTS) $(test_inhibit_DEPENDENCIES)
+ @rm -f test-inhibit$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_inhibit_OBJECTS) $(test_inhibit_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsm-util.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-gs-idle-monitor.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-gsm-app.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-gsm-autostart-app.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-gsm-client.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-gsm-consolekit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-gsm-dbus-client.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-gsm-inhibit-dialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-gsm-inhibitor.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-gsm-logout-dialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-gsm-manager.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-gsm-marshal.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-gsm-mateconf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-gsm-presence.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-gsm-session-save.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-gsm-store.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-gsm-xsmp-client.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-gsm-xsmp-server.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-mdm-log.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-mdm-signal-handler.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate_session-mdm.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-client-dbus.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-inhibit.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+mate_session-gsm-app.o: gsm-app.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-app.o -MD -MP -MF $(DEPDIR)/mate_session-gsm-app.Tpo -c -o mate_session-gsm-app.o `test -f 'gsm-app.c' || echo '$(srcdir)/'`gsm-app.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-app.Tpo $(DEPDIR)/mate_session-gsm-app.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-app.c' object='mate_session-gsm-app.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-app.o `test -f 'gsm-app.c' || echo '$(srcdir)/'`gsm-app.c
+
+mate_session-gsm-app.obj: gsm-app.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-app.obj -MD -MP -MF $(DEPDIR)/mate_session-gsm-app.Tpo -c -o mate_session-gsm-app.obj `if test -f 'gsm-app.c'; then $(CYGPATH_W) 'gsm-app.c'; else $(CYGPATH_W) '$(srcdir)/gsm-app.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-app.Tpo $(DEPDIR)/mate_session-gsm-app.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-app.c' object='mate_session-gsm-app.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-app.obj `if test -f 'gsm-app.c'; then $(CYGPATH_W) 'gsm-app.c'; else $(CYGPATH_W) '$(srcdir)/gsm-app.c'; fi`
+
+mate_session-gsm-autostart-app.o: gsm-autostart-app.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-autostart-app.o -MD -MP -MF $(DEPDIR)/mate_session-gsm-autostart-app.Tpo -c -o mate_session-gsm-autostart-app.o `test -f 'gsm-autostart-app.c' || echo '$(srcdir)/'`gsm-autostart-app.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-autostart-app.Tpo $(DEPDIR)/mate_session-gsm-autostart-app.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-autostart-app.c' object='mate_session-gsm-autostart-app.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-autostart-app.o `test -f 'gsm-autostart-app.c' || echo '$(srcdir)/'`gsm-autostart-app.c
+
+mate_session-gsm-autostart-app.obj: gsm-autostart-app.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-autostart-app.obj -MD -MP -MF $(DEPDIR)/mate_session-gsm-autostart-app.Tpo -c -o mate_session-gsm-autostart-app.obj `if test -f 'gsm-autostart-app.c'; then $(CYGPATH_W) 'gsm-autostart-app.c'; else $(CYGPATH_W) '$(srcdir)/gsm-autostart-app.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-autostart-app.Tpo $(DEPDIR)/mate_session-gsm-autostart-app.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-autostart-app.c' object='mate_session-gsm-autostart-app.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-autostart-app.obj `if test -f 'gsm-autostart-app.c'; then $(CYGPATH_W) 'gsm-autostart-app.c'; else $(CYGPATH_W) '$(srcdir)/gsm-autostart-app.c'; fi`
+
+mate_session-gsm-client.o: gsm-client.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-client.o -MD -MP -MF $(DEPDIR)/mate_session-gsm-client.Tpo -c -o mate_session-gsm-client.o `test -f 'gsm-client.c' || echo '$(srcdir)/'`gsm-client.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-client.Tpo $(DEPDIR)/mate_session-gsm-client.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-client.c' object='mate_session-gsm-client.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-client.o `test -f 'gsm-client.c' || echo '$(srcdir)/'`gsm-client.c
+
+mate_session-gsm-client.obj: gsm-client.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-client.obj -MD -MP -MF $(DEPDIR)/mate_session-gsm-client.Tpo -c -o mate_session-gsm-client.obj `if test -f 'gsm-client.c'; then $(CYGPATH_W) 'gsm-client.c'; else $(CYGPATH_W) '$(srcdir)/gsm-client.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-client.Tpo $(DEPDIR)/mate_session-gsm-client.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-client.c' object='mate_session-gsm-client.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-client.obj `if test -f 'gsm-client.c'; then $(CYGPATH_W) 'gsm-client.c'; else $(CYGPATH_W) '$(srcdir)/gsm-client.c'; fi`
+
+mate_session-gsm-xsmp-client.o: gsm-xsmp-client.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-xsmp-client.o -MD -MP -MF $(DEPDIR)/mate_session-gsm-xsmp-client.Tpo -c -o mate_session-gsm-xsmp-client.o `test -f 'gsm-xsmp-client.c' || echo '$(srcdir)/'`gsm-xsmp-client.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-xsmp-client.Tpo $(DEPDIR)/mate_session-gsm-xsmp-client.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-xsmp-client.c' object='mate_session-gsm-xsmp-client.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-xsmp-client.o `test -f 'gsm-xsmp-client.c' || echo '$(srcdir)/'`gsm-xsmp-client.c
+
+mate_session-gsm-xsmp-client.obj: gsm-xsmp-client.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-xsmp-client.obj -MD -MP -MF $(DEPDIR)/mate_session-gsm-xsmp-client.Tpo -c -o mate_session-gsm-xsmp-client.obj `if test -f 'gsm-xsmp-client.c'; then $(CYGPATH_W) 'gsm-xsmp-client.c'; else $(CYGPATH_W) '$(srcdir)/gsm-xsmp-client.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-xsmp-client.Tpo $(DEPDIR)/mate_session-gsm-xsmp-client.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-xsmp-client.c' object='mate_session-gsm-xsmp-client.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-xsmp-client.obj `if test -f 'gsm-xsmp-client.c'; then $(CYGPATH_W) 'gsm-xsmp-client.c'; else $(CYGPATH_W) '$(srcdir)/gsm-xsmp-client.c'; fi`
+
+mate_session-gsm-dbus-client.o: gsm-dbus-client.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-dbus-client.o -MD -MP -MF $(DEPDIR)/mate_session-gsm-dbus-client.Tpo -c -o mate_session-gsm-dbus-client.o `test -f 'gsm-dbus-client.c' || echo '$(srcdir)/'`gsm-dbus-client.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-dbus-client.Tpo $(DEPDIR)/mate_session-gsm-dbus-client.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-dbus-client.c' object='mate_session-gsm-dbus-client.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-dbus-client.o `test -f 'gsm-dbus-client.c' || echo '$(srcdir)/'`gsm-dbus-client.c
+
+mate_session-gsm-dbus-client.obj: gsm-dbus-client.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-dbus-client.obj -MD -MP -MF $(DEPDIR)/mate_session-gsm-dbus-client.Tpo -c -o mate_session-gsm-dbus-client.obj `if test -f 'gsm-dbus-client.c'; then $(CYGPATH_W) 'gsm-dbus-client.c'; else $(CYGPATH_W) '$(srcdir)/gsm-dbus-client.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-dbus-client.Tpo $(DEPDIR)/mate_session-gsm-dbus-client.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-dbus-client.c' object='mate_session-gsm-dbus-client.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-dbus-client.obj `if test -f 'gsm-dbus-client.c'; then $(CYGPATH_W) 'gsm-dbus-client.c'; else $(CYGPATH_W) '$(srcdir)/gsm-dbus-client.c'; fi`
+
+mate_session-gsm-marshal.o: gsm-marshal.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-marshal.o -MD -MP -MF $(DEPDIR)/mate_session-gsm-marshal.Tpo -c -o mate_session-gsm-marshal.o `test -f 'gsm-marshal.c' || echo '$(srcdir)/'`gsm-marshal.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-marshal.Tpo $(DEPDIR)/mate_session-gsm-marshal.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-marshal.c' object='mate_session-gsm-marshal.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-marshal.o `test -f 'gsm-marshal.c' || echo '$(srcdir)/'`gsm-marshal.c
+
+mate_session-gsm-marshal.obj: gsm-marshal.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-marshal.obj -MD -MP -MF $(DEPDIR)/mate_session-gsm-marshal.Tpo -c -o mate_session-gsm-marshal.obj `if test -f 'gsm-marshal.c'; then $(CYGPATH_W) 'gsm-marshal.c'; else $(CYGPATH_W) '$(srcdir)/gsm-marshal.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-marshal.Tpo $(DEPDIR)/mate_session-gsm-marshal.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-marshal.c' object='mate_session-gsm-marshal.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-marshal.obj `if test -f 'gsm-marshal.c'; then $(CYGPATH_W) 'gsm-marshal.c'; else $(CYGPATH_W) '$(srcdir)/gsm-marshal.c'; fi`
+
+mate_session-gsm-consolekit.o: gsm-consolekit.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-consolekit.o -MD -MP -MF $(DEPDIR)/mate_session-gsm-consolekit.Tpo -c -o mate_session-gsm-consolekit.o `test -f 'gsm-consolekit.c' || echo '$(srcdir)/'`gsm-consolekit.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-consolekit.Tpo $(DEPDIR)/mate_session-gsm-consolekit.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-consolekit.c' object='mate_session-gsm-consolekit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-consolekit.o `test -f 'gsm-consolekit.c' || echo '$(srcdir)/'`gsm-consolekit.c
+
+mate_session-gsm-consolekit.obj: gsm-consolekit.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-consolekit.obj -MD -MP -MF $(DEPDIR)/mate_session-gsm-consolekit.Tpo -c -o mate_session-gsm-consolekit.obj `if test -f 'gsm-consolekit.c'; then $(CYGPATH_W) 'gsm-consolekit.c'; else $(CYGPATH_W) '$(srcdir)/gsm-consolekit.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-consolekit.Tpo $(DEPDIR)/mate_session-gsm-consolekit.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-consolekit.c' object='mate_session-gsm-consolekit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-consolekit.obj `if test -f 'gsm-consolekit.c'; then $(CYGPATH_W) 'gsm-consolekit.c'; else $(CYGPATH_W) '$(srcdir)/gsm-consolekit.c'; fi`
+
+mate_session-gsm-logout-dialog.o: gsm-logout-dialog.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-logout-dialog.o -MD -MP -MF $(DEPDIR)/mate_session-gsm-logout-dialog.Tpo -c -o mate_session-gsm-logout-dialog.o `test -f 'gsm-logout-dialog.c' || echo '$(srcdir)/'`gsm-logout-dialog.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-logout-dialog.Tpo $(DEPDIR)/mate_session-gsm-logout-dialog.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-logout-dialog.c' object='mate_session-gsm-logout-dialog.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-logout-dialog.o `test -f 'gsm-logout-dialog.c' || echo '$(srcdir)/'`gsm-logout-dialog.c
+
+mate_session-gsm-logout-dialog.obj: gsm-logout-dialog.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-logout-dialog.obj -MD -MP -MF $(DEPDIR)/mate_session-gsm-logout-dialog.Tpo -c -o mate_session-gsm-logout-dialog.obj `if test -f 'gsm-logout-dialog.c'; then $(CYGPATH_W) 'gsm-logout-dialog.c'; else $(CYGPATH_W) '$(srcdir)/gsm-logout-dialog.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-logout-dialog.Tpo $(DEPDIR)/mate_session-gsm-logout-dialog.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-logout-dialog.c' object='mate_session-gsm-logout-dialog.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-logout-dialog.obj `if test -f 'gsm-logout-dialog.c'; then $(CYGPATH_W) 'gsm-logout-dialog.c'; else $(CYGPATH_W) '$(srcdir)/gsm-logout-dialog.c'; fi`
+
+mate_session-gsm-inhibit-dialog.o: gsm-inhibit-dialog.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-inhibit-dialog.o -MD -MP -MF $(DEPDIR)/mate_session-gsm-inhibit-dialog.Tpo -c -o mate_session-gsm-inhibit-dialog.o `test -f 'gsm-inhibit-dialog.c' || echo '$(srcdir)/'`gsm-inhibit-dialog.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-inhibit-dialog.Tpo $(DEPDIR)/mate_session-gsm-inhibit-dialog.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-inhibit-dialog.c' object='mate_session-gsm-inhibit-dialog.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-inhibit-dialog.o `test -f 'gsm-inhibit-dialog.c' || echo '$(srcdir)/'`gsm-inhibit-dialog.c
+
+mate_session-gsm-inhibit-dialog.obj: gsm-inhibit-dialog.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-inhibit-dialog.obj -MD -MP -MF $(DEPDIR)/mate_session-gsm-inhibit-dialog.Tpo -c -o mate_session-gsm-inhibit-dialog.obj `if test -f 'gsm-inhibit-dialog.c'; then $(CYGPATH_W) 'gsm-inhibit-dialog.c'; else $(CYGPATH_W) '$(srcdir)/gsm-inhibit-dialog.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-inhibit-dialog.Tpo $(DEPDIR)/mate_session-gsm-inhibit-dialog.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-inhibit-dialog.c' object='mate_session-gsm-inhibit-dialog.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-inhibit-dialog.obj `if test -f 'gsm-inhibit-dialog.c'; then $(CYGPATH_W) 'gsm-inhibit-dialog.c'; else $(CYGPATH_W) '$(srcdir)/gsm-inhibit-dialog.c'; fi`
+
+mate_session-gs-idle-monitor.o: gs-idle-monitor.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gs-idle-monitor.o -MD -MP -MF $(DEPDIR)/mate_session-gs-idle-monitor.Tpo -c -o mate_session-gs-idle-monitor.o `test -f 'gs-idle-monitor.c' || echo '$(srcdir)/'`gs-idle-monitor.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gs-idle-monitor.Tpo $(DEPDIR)/mate_session-gs-idle-monitor.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gs-idle-monitor.c' object='mate_session-gs-idle-monitor.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gs-idle-monitor.o `test -f 'gs-idle-monitor.c' || echo '$(srcdir)/'`gs-idle-monitor.c
+
+mate_session-gs-idle-monitor.obj: gs-idle-monitor.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gs-idle-monitor.obj -MD -MP -MF $(DEPDIR)/mate_session-gs-idle-monitor.Tpo -c -o mate_session-gs-idle-monitor.obj `if test -f 'gs-idle-monitor.c'; then $(CYGPATH_W) 'gs-idle-monitor.c'; else $(CYGPATH_W) '$(srcdir)/gs-idle-monitor.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gs-idle-monitor.Tpo $(DEPDIR)/mate_session-gs-idle-monitor.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gs-idle-monitor.c' object='mate_session-gs-idle-monitor.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gs-idle-monitor.obj `if test -f 'gs-idle-monitor.c'; then $(CYGPATH_W) 'gs-idle-monitor.c'; else $(CYGPATH_W) '$(srcdir)/gs-idle-monitor.c'; fi`
+
+mate_session-gsm-presence.o: gsm-presence.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-presence.o -MD -MP -MF $(DEPDIR)/mate_session-gsm-presence.Tpo -c -o mate_session-gsm-presence.o `test -f 'gsm-presence.c' || echo '$(srcdir)/'`gsm-presence.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-presence.Tpo $(DEPDIR)/mate_session-gsm-presence.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-presence.c' object='mate_session-gsm-presence.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-presence.o `test -f 'gsm-presence.c' || echo '$(srcdir)/'`gsm-presence.c
+
+mate_session-gsm-presence.obj: gsm-presence.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-presence.obj -MD -MP -MF $(DEPDIR)/mate_session-gsm-presence.Tpo -c -o mate_session-gsm-presence.obj `if test -f 'gsm-presence.c'; then $(CYGPATH_W) 'gsm-presence.c'; else $(CYGPATH_W) '$(srcdir)/gsm-presence.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-presence.Tpo $(DEPDIR)/mate_session-gsm-presence.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-presence.c' object='mate_session-gsm-presence.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-presence.obj `if test -f 'gsm-presence.c'; then $(CYGPATH_W) 'gsm-presence.c'; else $(CYGPATH_W) '$(srcdir)/gsm-presence.c'; fi`
+
+mate_session-gsm-mateconf.o: gsm-mateconf.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-mateconf.o -MD -MP -MF $(DEPDIR)/mate_session-gsm-mateconf.Tpo -c -o mate_session-gsm-mateconf.o `test -f 'gsm-mateconf.c' || echo '$(srcdir)/'`gsm-mateconf.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-mateconf.Tpo $(DEPDIR)/mate_session-gsm-mateconf.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-mateconf.c' object='mate_session-gsm-mateconf.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-mateconf.o `test -f 'gsm-mateconf.c' || echo '$(srcdir)/'`gsm-mateconf.c
+
+mate_session-gsm-mateconf.obj: gsm-mateconf.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-mateconf.obj -MD -MP -MF $(DEPDIR)/mate_session-gsm-mateconf.Tpo -c -o mate_session-gsm-mateconf.obj `if test -f 'gsm-mateconf.c'; then $(CYGPATH_W) 'gsm-mateconf.c'; else $(CYGPATH_W) '$(srcdir)/gsm-mateconf.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-mateconf.Tpo $(DEPDIR)/mate_session-gsm-mateconf.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-mateconf.c' object='mate_session-gsm-mateconf.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-mateconf.obj `if test -f 'gsm-mateconf.c'; then $(CYGPATH_W) 'gsm-mateconf.c'; else $(CYGPATH_W) '$(srcdir)/gsm-mateconf.c'; fi`
+
+mate_session-mdm.o: mdm.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-mdm.o -MD -MP -MF $(DEPDIR)/mate_session-mdm.Tpo -c -o mate_session-mdm.o `test -f 'mdm.c' || echo '$(srcdir)/'`mdm.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-mdm.Tpo $(DEPDIR)/mate_session-mdm.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mdm.c' object='mate_session-mdm.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-mdm.o `test -f 'mdm.c' || echo '$(srcdir)/'`mdm.c
+
+mate_session-mdm.obj: mdm.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-mdm.obj -MD -MP -MF $(DEPDIR)/mate_session-mdm.Tpo -c -o mate_session-mdm.obj `if test -f 'mdm.c'; then $(CYGPATH_W) 'mdm.c'; else $(CYGPATH_W) '$(srcdir)/mdm.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-mdm.Tpo $(DEPDIR)/mate_session-mdm.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mdm.c' object='mate_session-mdm.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-mdm.obj `if test -f 'mdm.c'; then $(CYGPATH_W) 'mdm.c'; else $(CYGPATH_W) '$(srcdir)/mdm.c'; fi`
+
+mate_session-mdm-signal-handler.o: mdm-signal-handler.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-mdm-signal-handler.o -MD -MP -MF $(DEPDIR)/mate_session-mdm-signal-handler.Tpo -c -o mate_session-mdm-signal-handler.o `test -f 'mdm-signal-handler.c' || echo '$(srcdir)/'`mdm-signal-handler.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-mdm-signal-handler.Tpo $(DEPDIR)/mate_session-mdm-signal-handler.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mdm-signal-handler.c' object='mate_session-mdm-signal-handler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-mdm-signal-handler.o `test -f 'mdm-signal-handler.c' || echo '$(srcdir)/'`mdm-signal-handler.c
+
+mate_session-mdm-signal-handler.obj: mdm-signal-handler.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-mdm-signal-handler.obj -MD -MP -MF $(DEPDIR)/mate_session-mdm-signal-handler.Tpo -c -o mate_session-mdm-signal-handler.obj `if test -f 'mdm-signal-handler.c'; then $(CYGPATH_W) 'mdm-signal-handler.c'; else $(CYGPATH_W) '$(srcdir)/mdm-signal-handler.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-mdm-signal-handler.Tpo $(DEPDIR)/mate_session-mdm-signal-handler.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mdm-signal-handler.c' object='mate_session-mdm-signal-handler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-mdm-signal-handler.obj `if test -f 'mdm-signal-handler.c'; then $(CYGPATH_W) 'mdm-signal-handler.c'; else $(CYGPATH_W) '$(srcdir)/mdm-signal-handler.c'; fi`
+
+mate_session-mdm-log.o: mdm-log.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-mdm-log.o -MD -MP -MF $(DEPDIR)/mate_session-mdm-log.Tpo -c -o mate_session-mdm-log.o `test -f 'mdm-log.c' || echo '$(srcdir)/'`mdm-log.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-mdm-log.Tpo $(DEPDIR)/mate_session-mdm-log.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mdm-log.c' object='mate_session-mdm-log.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-mdm-log.o `test -f 'mdm-log.c' || echo '$(srcdir)/'`mdm-log.c
+
+mate_session-mdm-log.obj: mdm-log.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-mdm-log.obj -MD -MP -MF $(DEPDIR)/mate_session-mdm-log.Tpo -c -o mate_session-mdm-log.obj `if test -f 'mdm-log.c'; then $(CYGPATH_W) 'mdm-log.c'; else $(CYGPATH_W) '$(srcdir)/mdm-log.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-mdm-log.Tpo $(DEPDIR)/mate_session-mdm-log.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mdm-log.c' object='mate_session-mdm-log.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-mdm-log.obj `if test -f 'mdm-log.c'; then $(CYGPATH_W) 'mdm-log.c'; else $(CYGPATH_W) '$(srcdir)/mdm-log.c'; fi`
+
+mate_session-main.o: main.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-main.o -MD -MP -MF $(DEPDIR)/mate_session-main.Tpo -c -o mate_session-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-main.Tpo $(DEPDIR)/mate_session-main.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='mate_session-main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+
+mate_session-main.obj: main.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-main.obj -MD -MP -MF $(DEPDIR)/mate_session-main.Tpo -c -o mate_session-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-main.Tpo $(DEPDIR)/mate_session-main.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='mate_session-main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+
+mate_session-gsm-store.o: gsm-store.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-store.o -MD -MP -MF $(DEPDIR)/mate_session-gsm-store.Tpo -c -o mate_session-gsm-store.o `test -f 'gsm-store.c' || echo '$(srcdir)/'`gsm-store.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-store.Tpo $(DEPDIR)/mate_session-gsm-store.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-store.c' object='mate_session-gsm-store.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-store.o `test -f 'gsm-store.c' || echo '$(srcdir)/'`gsm-store.c
+
+mate_session-gsm-store.obj: gsm-store.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-store.obj -MD -MP -MF $(DEPDIR)/mate_session-gsm-store.Tpo -c -o mate_session-gsm-store.obj `if test -f 'gsm-store.c'; then $(CYGPATH_W) 'gsm-store.c'; else $(CYGPATH_W) '$(srcdir)/gsm-store.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-store.Tpo $(DEPDIR)/mate_session-gsm-store.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-store.c' object='mate_session-gsm-store.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-store.obj `if test -f 'gsm-store.c'; then $(CYGPATH_W) 'gsm-store.c'; else $(CYGPATH_W) '$(srcdir)/gsm-store.c'; fi`
+
+mate_session-gsm-inhibitor.o: gsm-inhibitor.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-inhibitor.o -MD -MP -MF $(DEPDIR)/mate_session-gsm-inhibitor.Tpo -c -o mate_session-gsm-inhibitor.o `test -f 'gsm-inhibitor.c' || echo '$(srcdir)/'`gsm-inhibitor.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-inhibitor.Tpo $(DEPDIR)/mate_session-gsm-inhibitor.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-inhibitor.c' object='mate_session-gsm-inhibitor.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-inhibitor.o `test -f 'gsm-inhibitor.c' || echo '$(srcdir)/'`gsm-inhibitor.c
+
+mate_session-gsm-inhibitor.obj: gsm-inhibitor.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-inhibitor.obj -MD -MP -MF $(DEPDIR)/mate_session-gsm-inhibitor.Tpo -c -o mate_session-gsm-inhibitor.obj `if test -f 'gsm-inhibitor.c'; then $(CYGPATH_W) 'gsm-inhibitor.c'; else $(CYGPATH_W) '$(srcdir)/gsm-inhibitor.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-inhibitor.Tpo $(DEPDIR)/mate_session-gsm-inhibitor.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-inhibitor.c' object='mate_session-gsm-inhibitor.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-inhibitor.obj `if test -f 'gsm-inhibitor.c'; then $(CYGPATH_W) 'gsm-inhibitor.c'; else $(CYGPATH_W) '$(srcdir)/gsm-inhibitor.c'; fi`
+
+mate_session-gsm-manager.o: gsm-manager.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-manager.o -MD -MP -MF $(DEPDIR)/mate_session-gsm-manager.Tpo -c -o mate_session-gsm-manager.o `test -f 'gsm-manager.c' || echo '$(srcdir)/'`gsm-manager.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-manager.Tpo $(DEPDIR)/mate_session-gsm-manager.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-manager.c' object='mate_session-gsm-manager.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-manager.o `test -f 'gsm-manager.c' || echo '$(srcdir)/'`gsm-manager.c
+
+mate_session-gsm-manager.obj: gsm-manager.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-manager.obj -MD -MP -MF $(DEPDIR)/mate_session-gsm-manager.Tpo -c -o mate_session-gsm-manager.obj `if test -f 'gsm-manager.c'; then $(CYGPATH_W) 'gsm-manager.c'; else $(CYGPATH_W) '$(srcdir)/gsm-manager.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-manager.Tpo $(DEPDIR)/mate_session-gsm-manager.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-manager.c' object='mate_session-gsm-manager.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-manager.obj `if test -f 'gsm-manager.c'; then $(CYGPATH_W) 'gsm-manager.c'; else $(CYGPATH_W) '$(srcdir)/gsm-manager.c'; fi`
+
+mate_session-gsm-session-save.o: gsm-session-save.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-session-save.o -MD -MP -MF $(DEPDIR)/mate_session-gsm-session-save.Tpo -c -o mate_session-gsm-session-save.o `test -f 'gsm-session-save.c' || echo '$(srcdir)/'`gsm-session-save.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-session-save.Tpo $(DEPDIR)/mate_session-gsm-session-save.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-session-save.c' object='mate_session-gsm-session-save.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-session-save.o `test -f 'gsm-session-save.c' || echo '$(srcdir)/'`gsm-session-save.c
+
+mate_session-gsm-session-save.obj: gsm-session-save.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-session-save.obj -MD -MP -MF $(DEPDIR)/mate_session-gsm-session-save.Tpo -c -o mate_session-gsm-session-save.obj `if test -f 'gsm-session-save.c'; then $(CYGPATH_W) 'gsm-session-save.c'; else $(CYGPATH_W) '$(srcdir)/gsm-session-save.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-session-save.Tpo $(DEPDIR)/mate_session-gsm-session-save.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-session-save.c' object='mate_session-gsm-session-save.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-session-save.obj `if test -f 'gsm-session-save.c'; then $(CYGPATH_W) 'gsm-session-save.c'; else $(CYGPATH_W) '$(srcdir)/gsm-session-save.c'; fi`
+
+mate_session-gsm-xsmp-server.o: gsm-xsmp-server.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-xsmp-server.o -MD -MP -MF $(DEPDIR)/mate_session-gsm-xsmp-server.Tpo -c -o mate_session-gsm-xsmp-server.o `test -f 'gsm-xsmp-server.c' || echo '$(srcdir)/'`gsm-xsmp-server.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-xsmp-server.Tpo $(DEPDIR)/mate_session-gsm-xsmp-server.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-xsmp-server.c' object='mate_session-gsm-xsmp-server.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-xsmp-server.o `test -f 'gsm-xsmp-server.c' || echo '$(srcdir)/'`gsm-xsmp-server.c
+
+mate_session-gsm-xsmp-server.obj: gsm-xsmp-server.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mate_session-gsm-xsmp-server.obj -MD -MP -MF $(DEPDIR)/mate_session-gsm-xsmp-server.Tpo -c -o mate_session-gsm-xsmp-server.obj `if test -f 'gsm-xsmp-server.c'; then $(CYGPATH_W) 'gsm-xsmp-server.c'; else $(CYGPATH_W) '$(srcdir)/gsm-xsmp-server.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mate_session-gsm-xsmp-server.Tpo $(DEPDIR)/mate_session-gsm-xsmp-server.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsm-xsmp-server.c' object='mate_session-gsm-xsmp-server.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mate_session_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mate_session-gsm-xsmp-server.obj `if test -f 'gsm-xsmp-server.c'; then $(CYGPATH_W) 'gsm-xsmp-server.c'; else $(CYGPATH_W) '$(srcdir)/gsm-xsmp-server.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES) $(PROGRAMS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool \
+ clean-noinstLTLIBRARIES clean-noinstPROGRAMS mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+ clean-generic clean-libtool clean-noinstLTLIBRARIES \
+ clean-noinstPROGRAMS ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-binPROGRAMS install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-binPROGRAMS
+
+
+gsm-marshal.c: gsm-marshal.list
+ $(AM_V_GEN)echo "#include \"gsm-marshal.h\"" > $@ && \
+ $(GLIB_GENMARSHAL) $< --prefix=gsm_marshal --body >> $@
+
+gsm-marshal.h: gsm-marshal.list
+ $(AM_V_GEN)$(GLIB_GENMARSHAL) $< --prefix=gsm_marshal --header > $@
+
+gsm-manager-glue.h: org.mate.SessionManager.xml Makefile.am
+ $(AM_V_GEN)dbus-binding-tool --prefix=gsm_manager --mode=glib-server --output=gsm-manager-glue.h $(srcdir)/org.mate.SessionManager.xml
+
+gsm-client-glue.h: org.mate.SessionManager.Client.xml Makefile.am
+ $(AM_V_GEN)dbus-binding-tool --prefix=gsm_client --mode=glib-server --output=gsm-client-glue.h $(srcdir)/org.mate.SessionManager.Client.xml
+
+gsm-app-glue.h: org.mate.SessionManager.App.xml Makefile.am
+ $(AM_V_GEN)dbus-binding-tool --prefix=gsm_app --mode=glib-server --output=gsm-app-glue.h $(srcdir)/org.mate.SessionManager.App.xml
+
+gsm-inhibitor-glue.h: org.mate.SessionManager.Inhibitor.xml Makefile.am
+ $(AM_V_GEN)dbus-binding-tool --prefix=gsm_inhibitor --mode=glib-server --output=gsm-inhibitor-glue.h $(srcdir)/org.mate.SessionManager.Inhibitor.xml
+
+gsm-presence-glue.h: org.mate.SessionManager.Presence.xml Makefile.am
+ $(AM_V_GEN)dbus-binding-tool --prefix=gsm_presence --mode=glib-server --output=gsm-presence-glue.h $(srcdir)/org.mate.SessionManager.Presence.xml
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/mate-session/README b/mate-session/README
new file mode 100644
index 0000000..05bfe9d
--- /dev/null
+++ b/mate-session/README
@@ -0,0 +1,65 @@
+See also http://live.gnome.org/SessionManagement/NewGnomeSession
+
+Startup
+-------
+
+main() creates the GsmSession object representing the session (either
+failsafe or normal). gsm_session_new() reads the appropriate autostart
+and session files to create a list of GsmApps to be started.
+(GsmAppAutostart represents an autostarted app, and GsmAppResumed
+represents an app resumed from the previous saved session.)
+
+Startup is divided into 6 phases (GsmSessionPhase):
+
+ * GSM_SESSION_PHASE_STARTUP covers mate-session's internal
+ startup, which also includes starting mateconfd and dbus-daemon (if
+ it's not already running). Mate-session starts up those
+ explicitly because it needs them for its own purposes.
+
+ * GSM_SESSION_PHASE_INITIALIZATION is the first phase of "normal"
+ startup (ie, startup controlled by .desktop files rather than
+ hardcoding). It covers low-level stuff like
+ mate-settings-daemon and at-spi-registryd, that need to be
+ running very early (before any windows are displayed).
+
+ Apps in this phase can make use of a D-Bus interface
+ (org.mate.SessionManager.Setenv) to set environment variables
+ in mate-session's environment. This can be used for things like
+ $GTK_MODULES, $MATE_KEYRING_SOCKET, etc
+
+ * GSM_SESSION_PHASE_WINDOW_MANAGER includes window managers and
+ compositing managers, and anything else that has to be running
+ before any windows are mapped
+
+ * GSM_SESSION_PHASE_PANEL includes anything that permanently takes
+ up screen real estate (via EWMH struts). This is the first phase
+ where things actually appear on the screen.
+
+ * GSM_SESSION_PHASE_DESKTOP includes anything that draws directly
+ on the desktop (eg, caja).
+
+ * GSM_SESSION_PHASE_APPLICATION is everything else (normal apps,
+ tray icons, etc)
+
+For each startup phase, GsmSession launches the appropriate GsmApps.
+When apps connect to the XSMP or D-Bus servers, GsmClients are created
+and added to the session. The session tries to map these clients to
+GsmApps. GsmApps signal when they register (via XSMP or SN) or exit,
+and GsmSession uses this to decide when the phase is complete.
+
+FIXME: after starting the session, we need to run the DiscardCommands
+of resumed apps.
+
+
+Running/Shutdown
+----------------
+
+GSM_SESSION_PHASE_RUNNING is pretty similar to the old mate-session;
+mostly it just tracks XSMP clients, and watches for
+SmRestartImmediately clients exiting (NOTE: THIS DOESN'T HAPPEN YET).
+
+GsmClient is in theory not XSMP-specific, but it's very very
+XSMP-like, and the shutdown procedure is also very XSMP-like. This is
+just because there's no way to do XSMP shutdown correctly otherwise.
+However, GsmClientDBus will still be able to present a more sane
+protocol to its clients than GsmClient presents to it.
diff --git a/mate-session/gs-idle-monitor.c b/mate-session/gs-idle-monitor.c
new file mode 100644
index 0000000..05dbb02
--- /dev/null
+++ b/mate-session/gs-idle-monitor.c
@@ -0,0 +1,507 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Authors: William Jon McCann <[email protected]>
+ *
+ */
+
+#include "config.h"
+
+#include <time.h>
+#include <string.h>
+
+#include <X11/Xlib.h>
+#include <X11/extensions/sync.h>
+
+#ifdef HAVE_XTEST
+#include <X11/keysym.h>
+#include <X11/extensions/XTest.h>
+#endif /* HAVE_XTEST */
+
+#include <glib.h>
+#include <gdk/gdkx.h>
+#include <gdk/gdk.h>
+
+#include "gs-idle-monitor.h"
+
+static void gs_idle_monitor_class_init (GSIdleMonitorClass *klass);
+static void gs_idle_monitor_init (GSIdleMonitor *idle_monitor);
+static void gs_idle_monitor_finalize (GObject *object);
+
+#define GS_IDLE_MONITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GS_TYPE_IDLE_MONITOR, GSIdleMonitorPrivate))
+
+struct GSIdleMonitorPrivate
+{
+ GHashTable *watches;
+ int sync_event_base;
+ XSyncCounter counter;
+
+ /* For use with XTest */
+ int *keycode;
+ int keycode1;
+ int keycode2;
+ gboolean have_xtest;
+};
+
+typedef struct
+{
+ guint id;
+ XSyncValue interval;
+ GSIdleMonitorWatchFunc callback;
+ gpointer user_data;
+ XSyncAlarm xalarm_positive;
+ XSyncAlarm xalarm_negative;
+} GSIdleMonitorWatch;
+
+static guint32 watch_serial = 1;
+
+G_DEFINE_TYPE (GSIdleMonitor, gs_idle_monitor, G_TYPE_OBJECT)
+
+static gint64
+_xsyncvalue_to_int64 (XSyncValue value)
+{
+ return ((guint64) XSyncValueHigh32 (value)) << 32
+ | (guint64) XSyncValueLow32 (value);
+}
+
+static XSyncValue
+_int64_to_xsyncvalue (gint64 value)
+{
+ XSyncValue ret;
+
+ XSyncIntsToValue (&ret, value, ((guint64)value) >> 32);
+
+ return ret;
+}
+
+static void
+gs_idle_monitor_dispose (GObject *object)
+{
+ GSIdleMonitor *monitor;
+
+ g_return_if_fail (GS_IS_IDLE_MONITOR (object));
+
+ monitor = GS_IDLE_MONITOR (object);
+
+ if (monitor->priv->watches != NULL) {
+ g_hash_table_destroy (monitor->priv->watches);
+ monitor->priv->watches = NULL;
+ }
+
+ G_OBJECT_CLASS (gs_idle_monitor_parent_class)->dispose (object);
+}
+
+static gboolean
+_find_alarm (gpointer key,
+ GSIdleMonitorWatch *watch,
+ XSyncAlarm *alarm)
+{
+ g_debug ("Searching for %d in %d,%d", (int)*alarm, (int)watch->xalarm_positive, (int)watch->xalarm_negative);
+ if (watch->xalarm_positive == *alarm
+ || watch->xalarm_negative == *alarm) {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static GSIdleMonitorWatch *
+find_watch_for_alarm (GSIdleMonitor *monitor,
+ XSyncAlarm alarm)
+{
+ GSIdleMonitorWatch *watch;
+
+ watch = g_hash_table_find (monitor->priv->watches,
+ (GHRFunc)_find_alarm,
+ &alarm);
+ return watch;
+}
+
+#ifdef HAVE_XTEST
+static gboolean
+send_fake_event (GSIdleMonitor *monitor)
+{
+ if (! monitor->priv->have_xtest) {
+ return FALSE;
+ }
+
+ g_debug ("GSIdleMonitor: sending fake key");
+
+ XLockDisplay (GDK_DISPLAY());
+ XTestFakeKeyEvent (GDK_DISPLAY(),
+ *monitor->priv->keycode,
+ True,
+ CurrentTime);
+ XTestFakeKeyEvent (GDK_DISPLAY(),
+ *monitor->priv->keycode,
+ False,
+ CurrentTime);
+ XUnlockDisplay (GDK_DISPLAY());
+
+ /* Swap the keycode */
+ if (monitor->priv->keycode == &monitor->priv->keycode1) {
+ monitor->priv->keycode = &monitor->priv->keycode2;
+ } else {
+ monitor->priv->keycode = &monitor->priv->keycode1;
+ }
+
+ return TRUE;
+}
+#endif /* HAVE_XTEST */
+
+void
+gs_idle_monitor_reset (GSIdleMonitor *monitor)
+{
+ g_return_if_fail (GS_IS_IDLE_MONITOR (monitor));
+
+#ifdef HAVE_XTEST
+ /* FIXME: is there a better way to reset the IDLETIME? */
+ send_fake_event (monitor);
+#endif
+}
+
+static void
+handle_alarm_notify_event (GSIdleMonitor *monitor,
+ XSyncAlarmNotifyEvent *alarm_event)
+{
+ GSIdleMonitorWatch *watch;
+ gboolean res;
+ gboolean condition;
+
+ if (alarm_event->state == XSyncAlarmDestroyed) {
+ return;
+ }
+
+ watch = find_watch_for_alarm (monitor, alarm_event->alarm);
+
+ if (watch == NULL) {
+ g_debug ("Unable to find watch for alarm %d", (int)alarm_event->alarm);
+ return;
+ }
+
+ g_debug ("Watch %d fired, idle time = %lld",
+ watch->id,
+ _xsyncvalue_to_int64 (alarm_event->counter_value));
+
+ if (alarm_event->alarm == watch->xalarm_positive) {
+ condition = TRUE;
+ } else {
+ condition = FALSE;
+ }
+
+ res = TRUE;
+ if (watch->callback != NULL) {
+ res = watch->callback (monitor,
+ watch->id,
+ condition,
+ watch->user_data);
+ }
+
+ if (! res) {
+ /* reset all timers */
+ g_debug ("GSIdleMonitor: callback returned FALSE; resetting idle time");
+ gs_idle_monitor_reset (monitor);
+ }
+}
+
+static GdkFilterReturn
+xevent_filter (GdkXEvent *xevent,
+ GdkEvent *event,
+ GSIdleMonitor *monitor)
+{
+ XEvent *ev;
+ XSyncAlarmNotifyEvent *alarm_event;
+
+ ev = xevent;
+ if (ev->xany.type != monitor->priv->sync_event_base + XSyncAlarmNotify) {
+ return GDK_FILTER_CONTINUE;
+ }
+
+ alarm_event = xevent;
+
+ handle_alarm_notify_event (monitor, alarm_event);
+
+ return GDK_FILTER_CONTINUE;
+}
+
+static gboolean
+init_xsync (GSIdleMonitor *monitor)
+{
+ int sync_error_base;
+ int res;
+ int major;
+ int minor;
+ int i;
+ int ncounters;
+ XSyncSystemCounter *counters;
+
+ res = XSyncQueryExtension (GDK_DISPLAY (),
+ &monitor->priv->sync_event_base,
+ &sync_error_base);
+ if (! res) {
+ g_warning ("GSIdleMonitor: Sync extension not present");
+ return FALSE;
+ }
+
+ res = XSyncInitialize (GDK_DISPLAY (), &major, &minor);
+ if (! res) {
+ g_warning ("GSIdleMonitor: Unable to initialize Sync extension");
+ return FALSE;
+ }
+
+ counters = XSyncListSystemCounters (GDK_DISPLAY (), &ncounters);
+ for (i = 0; i < ncounters; i++) {
+ if (counters[i].name != NULL
+ && strcmp (counters[i].name, "IDLETIME") == 0) {
+ monitor->priv->counter = counters[i].counter;
+ break;
+ }
+ }
+ XSyncFreeSystemCounterList (counters);
+
+ if (monitor->priv->counter == None) {
+ g_warning ("GSIdleMonitor: IDLETIME counter not found");
+ return FALSE;
+ }
+
+ gdk_window_add_filter (NULL, (GdkFilterFunc)xevent_filter, monitor);
+
+ return TRUE;
+}
+
+static void
+_init_xtest (GSIdleMonitor *monitor)
+{
+#ifdef HAVE_XTEST
+ int a, b, c, d;
+
+ XLockDisplay (GDK_DISPLAY());
+ monitor->priv->have_xtest = (XTestQueryExtension (GDK_DISPLAY(), &a, &b, &c, &d) == True);
+ if (monitor->priv->have_xtest) {
+ monitor->priv->keycode1 = XKeysymToKeycode (GDK_DISPLAY(), XK_Alt_L);
+ if (monitor->priv->keycode1 == 0) {
+ g_warning ("keycode1 not existant");
+ }
+ monitor->priv->keycode2 = XKeysymToKeycode (GDK_DISPLAY(), XK_Alt_R);
+ if (monitor->priv->keycode2 == 0) {
+ monitor->priv->keycode2 = XKeysymToKeycode (GDK_DISPLAY(), XK_Alt_L);
+ if (monitor->priv->keycode2 == 0) {
+ g_warning ("keycode2 not existant");
+ }
+ }
+ monitor->priv->keycode = &monitor->priv->keycode1;
+ }
+ XUnlockDisplay (GDK_DISPLAY());
+#endif /* HAVE_XTEST */
+}
+
+static GObject *
+gs_idle_monitor_constructor (GType type,
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
+{
+ GSIdleMonitor *monitor;
+
+ monitor = GS_IDLE_MONITOR (G_OBJECT_CLASS (gs_idle_monitor_parent_class)->constructor (type,
+ n_construct_properties,
+ construct_properties));
+
+ _init_xtest (monitor);
+
+ if (! init_xsync (monitor)) {
+ g_object_unref (monitor);
+ return NULL;
+ }
+
+ return G_OBJECT (monitor);
+}
+
+static void
+gs_idle_monitor_class_init (GSIdleMonitorClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->finalize = gs_idle_monitor_finalize;
+ object_class->dispose = gs_idle_monitor_dispose;
+ object_class->constructor = gs_idle_monitor_constructor;
+
+ g_type_class_add_private (klass, sizeof (GSIdleMonitorPrivate));
+}
+
+static guint32
+get_next_watch_serial (void)
+{
+ guint32 serial;
+
+ serial = watch_serial++;
+
+ if ((gint32)watch_serial < 0) {
+ watch_serial = 1;
+ }
+
+ /* FIXME: make sure it isn't in the hash */
+
+ return serial;
+}
+
+static GSIdleMonitorWatch *
+idle_monitor_watch_new (guint interval)
+{
+ GSIdleMonitorWatch *watch;
+
+ watch = g_slice_new0 (GSIdleMonitorWatch);
+ watch->interval = _int64_to_xsyncvalue ((gint64)interval);
+ watch->id = get_next_watch_serial ();
+ watch->xalarm_positive = None;
+ watch->xalarm_negative = None;
+
+ return watch;
+}
+
+static void
+idle_monitor_watch_free (GSIdleMonitorWatch *watch)
+{
+ if (watch == NULL) {
+ return;
+ }
+ if (watch->xalarm_positive != None) {
+ XSyncDestroyAlarm (GDK_DISPLAY (), watch->xalarm_positive);
+ }
+ if (watch->xalarm_negative != None) {
+ XSyncDestroyAlarm (GDK_DISPLAY (), watch->xalarm_negative);
+ }
+ g_slice_free (GSIdleMonitorWatch, watch);
+}
+
+static void
+gs_idle_monitor_init (GSIdleMonitor *monitor)
+{
+ monitor->priv = GS_IDLE_MONITOR_GET_PRIVATE (monitor);
+
+ monitor->priv->watches = g_hash_table_new_full (NULL,
+ NULL,
+ NULL,
+ (GDestroyNotify)idle_monitor_watch_free);
+
+ monitor->priv->counter = None;
+}
+
+static void
+gs_idle_monitor_finalize (GObject *object)
+{
+ GSIdleMonitor *idle_monitor;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GS_IS_IDLE_MONITOR (object));
+
+ idle_monitor = GS_IDLE_MONITOR (object);
+
+ g_return_if_fail (idle_monitor->priv != NULL);
+
+ G_OBJECT_CLASS (gs_idle_monitor_parent_class)->finalize (object);
+}
+
+GSIdleMonitor *
+gs_idle_monitor_new (void)
+{
+ GObject *idle_monitor;
+
+ idle_monitor = g_object_new (GS_TYPE_IDLE_MONITOR,
+ NULL);
+
+ return GS_IDLE_MONITOR (idle_monitor);
+}
+
+static gboolean
+_xsync_alarm_set (GSIdleMonitor *monitor,
+ GSIdleMonitorWatch *watch)
+{
+ XSyncAlarmAttributes attr;
+ XSyncValue delta;
+ guint flags;
+
+ flags = XSyncCACounter
+ | XSyncCAValueType
+ | XSyncCATestType
+ | XSyncCAValue
+ | XSyncCADelta
+ | XSyncCAEvents;
+
+ XSyncIntToValue (&delta, 0);
+ attr.trigger.counter = monitor->priv->counter;
+ attr.trigger.value_type = XSyncAbsolute;
+ attr.trigger.wait_value = watch->interval;
+ attr.delta = delta;
+ attr.events = TRUE;
+
+ attr.trigger.test_type = XSyncPositiveTransition;
+ if (watch->xalarm_positive != None) {
+ g_debug ("GSIdleMonitor: updating alarm for positive transition wait=%lld",
+ _xsyncvalue_to_int64 (attr.trigger.wait_value));
+ XSyncChangeAlarm (GDK_DISPLAY (), watch->xalarm_positive, flags, &attr);
+ } else {
+ g_debug ("GSIdleMonitor: creating new alarm for positive transition wait=%lld",
+ _xsyncvalue_to_int64 (attr.trigger.wait_value));
+ watch->xalarm_positive = XSyncCreateAlarm (GDK_DISPLAY (), flags, &attr);
+ }
+
+ attr.trigger.test_type = XSyncNegativeTransition;
+ if (watch->xalarm_negative != None) {
+ g_debug ("GSIdleMonitor: updating alarm for negative transition wait=%lld",
+ _xsyncvalue_to_int64 (attr.trigger.wait_value));
+ XSyncChangeAlarm (GDK_DISPLAY (), watch->xalarm_negative, flags, &attr);
+ } else {
+ g_debug ("GSIdleMonitor: creating new alarm for negative transition wait=%lld",
+ _xsyncvalue_to_int64 (attr.trigger.wait_value));
+ watch->xalarm_negative = XSyncCreateAlarm (GDK_DISPLAY (), flags, &attr);
+ }
+
+ return TRUE;
+}
+
+guint
+gs_idle_monitor_add_watch (GSIdleMonitor *monitor,
+ guint interval,
+ GSIdleMonitorWatchFunc callback,
+ gpointer user_data)
+{
+ GSIdleMonitorWatch *watch;
+
+ g_return_val_if_fail (GS_IS_IDLE_MONITOR (monitor), 0);
+ g_return_val_if_fail (callback != NULL, 0);
+
+ watch = idle_monitor_watch_new (interval);
+ watch->callback = callback;
+ watch->user_data = user_data;
+
+ _xsync_alarm_set (monitor, watch);
+
+ g_hash_table_insert (monitor->priv->watches,
+ GUINT_TO_POINTER (watch->id),
+ watch);
+ return watch->id;
+}
+
+void
+gs_idle_monitor_remove_watch (GSIdleMonitor *monitor,
+ guint id)
+{
+ g_return_if_fail (GS_IS_IDLE_MONITOR (monitor));
+
+ g_hash_table_remove (monitor->priv->watches,
+ GUINT_TO_POINTER (id));
+}
diff --git a/mate-session/gs-idle-monitor.h b/mate-session/gs-idle-monitor.h
new file mode 100644
index 0000000..631f8eb
--- /dev/null
+++ b/mate-session/gs-idle-monitor.h
@@ -0,0 +1,75 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Authors: William Jon McCann <[email protected]>
+ *
+ */
+
+#ifndef __GS_IDLE_MONITOR_H
+#define __GS_IDLE_MONITOR_H
+
+#include <glib-object.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GS_TYPE_IDLE_MONITOR (gs_idle_monitor_get_type ())
+#define GS_IDLE_MONITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GS_TYPE_IDLE_MONITOR, GSIdleMonitor))
+#define GS_IDLE_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GS_TYPE_IDLE_MONITOR, GSIdleMonitorClass))
+#define GS_IS_IDLE_MONITOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GS_TYPE_IDLE_MONITOR))
+#define GS_IS_IDLE_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GS_TYPE_IDLE_MONITOR))
+#define GS_IDLE_MONITOR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GS_TYPE_IDLE_MONITOR, GSIdleMonitorClass))
+
+typedef struct GSIdleMonitorPrivate GSIdleMonitorPrivate;
+
+typedef struct
+{
+ GObject parent;
+ GSIdleMonitorPrivate *priv;
+} GSIdleMonitor;
+
+typedef struct
+{
+ GObjectClass parent_class;
+} GSIdleMonitorClass;
+
+typedef gboolean (*GSIdleMonitorWatchFunc) (GSIdleMonitor *monitor,
+ guint id,
+ gboolean condition,
+ gpointer user_data);
+
+GType gs_idle_monitor_get_type (void);
+
+GSIdleMonitor * gs_idle_monitor_new (void);
+
+guint gs_idle_monitor_add_watch (GSIdleMonitor *monitor,
+ guint interval,
+ GSIdleMonitorWatchFunc callback,
+ gpointer user_data);
+
+void gs_idle_monitor_remove_watch (GSIdleMonitor *monitor,
+ guint id);
+void gs_idle_monitor_reset (GSIdleMonitor *monitor);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GS_IDLE_MONITOR_H */
diff --git a/mate-session/gsm-app.c b/mate-session/gsm-app.c
new file mode 100644
index 0000000..8131177
--- /dev/null
+++ b/mate-session/gsm-app.c
@@ -0,0 +1,489 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007 Novell, Inc.
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <glib.h>
+#include <string.h>
+
+#include "gsm-app.h"
+#include "gsm-app-glue.h"
+
+#define GSM_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_APP, GsmAppPrivate))
+
+struct _GsmAppPrivate
+{
+ char *id;
+ char *app_id;
+ int phase;
+ char *startup_id;
+ DBusGConnection *connection;
+};
+
+
+enum {
+ EXITED,
+ DIED,
+ REGISTERED,
+ LAST_SIGNAL
+};
+
+static guint32 app_serial = 1;
+
+static guint signals[LAST_SIGNAL] = { 0 };
+
+enum {
+ PROP_0,
+ PROP_ID,
+ PROP_STARTUP_ID,
+ PROP_PHASE,
+ LAST_PROP
+};
+
+G_DEFINE_TYPE (GsmApp, gsm_app, G_TYPE_OBJECT)
+
+GQuark
+gsm_app_error_quark (void)
+{
+ static GQuark ret = 0;
+ if (ret == 0) {
+ ret = g_quark_from_static_string ("gsm_app_error");
+ }
+
+ return ret;
+
+}
+
+static guint32
+get_next_app_serial (void)
+{
+ guint32 serial;
+
+ serial = app_serial++;
+
+ if ((gint32)app_serial < 0) {
+ app_serial = 1;
+ }
+
+ return serial;
+}
+
+static gboolean
+register_app (GsmApp *app)
+{
+ GError *error;
+
+ error = NULL;
+ app->priv->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+ if (app->priv->connection == NULL) {
+ if (error != NULL) {
+ g_critical ("error getting session bus: %s", error->message);
+ g_error_free (error);
+ }
+ return FALSE;
+ }
+
+ dbus_g_connection_register_g_object (app->priv->connection, app->priv->id, G_OBJECT (app));
+
+ return TRUE;
+}
+
+static GObject *
+gsm_app_constructor (GType type,
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
+{
+ GsmApp *app;
+ gboolean res;
+
+ app = GSM_APP (G_OBJECT_CLASS (gsm_app_parent_class)->constructor (type,
+ n_construct_properties,
+ construct_properties));
+
+ g_free (app->priv->id);
+ app->priv->id = g_strdup_printf ("/org/mate/SessionManager/App%u", get_next_app_serial ());
+
+ res = register_app (app);
+ if (! res) {
+ g_warning ("Unable to register app with session bus");
+ }
+
+ return G_OBJECT (app);
+}
+
+static void
+gsm_app_init (GsmApp *app)
+{
+ app->priv = GSM_APP_GET_PRIVATE (app);
+}
+
+static void
+gsm_app_set_phase (GsmApp *app,
+ int phase)
+{
+ g_return_if_fail (GSM_IS_APP (app));
+
+ app->priv->phase = phase;
+}
+
+static void
+gsm_app_set_id (GsmApp *app,
+ const char *id)
+{
+ g_return_if_fail (GSM_IS_APP (app));
+
+ g_free (app->priv->id);
+
+ app->priv->id = g_strdup (id);
+ g_object_notify (G_OBJECT (app), "id");
+
+}
+static void
+gsm_app_set_startup_id (GsmApp *app,
+ const char *startup_id)
+{
+ g_return_if_fail (GSM_IS_APP (app));
+
+ g_free (app->priv->startup_id);
+
+ app->priv->startup_id = g_strdup (startup_id);
+ g_object_notify (G_OBJECT (app), "startup-id");
+
+}
+
+static void
+gsm_app_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GsmApp *app = GSM_APP (object);
+
+ switch (prop_id) {
+ case PROP_STARTUP_ID:
+ gsm_app_set_startup_id (app, g_value_get_string (value));
+ break;
+ case PROP_ID:
+ gsm_app_set_id (app, g_value_get_string (value));
+ break;
+ case PROP_PHASE:
+ gsm_app_set_phase (app, g_value_get_int (value));
+ break;
+ default:
+ break;
+ }
+}
+
+static void
+gsm_app_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GsmApp *app = GSM_APP (object);
+
+ switch (prop_id) {
+ case PROP_STARTUP_ID:
+ g_value_set_string (value, app->priv->startup_id);
+ break;
+ case PROP_ID:
+ g_value_set_string (value, app->priv->id);
+ break;
+ case PROP_PHASE:
+ g_value_set_int (value, app->priv->phase);
+ break;
+ default:
+ break;
+ }
+}
+
+static void
+gsm_app_dispose (GObject *object)
+{
+ GsmApp *app = GSM_APP (object);
+
+ g_free (app->priv->startup_id);
+ app->priv->startup_id = NULL;
+
+ g_free (app->priv->id);
+ app->priv->id = NULL;
+
+ G_OBJECT_CLASS (gsm_app_parent_class)->dispose (object);
+}
+
+static void
+gsm_app_class_init (GsmAppClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->set_property = gsm_app_set_property;
+ object_class->get_property = gsm_app_get_property;
+ object_class->dispose = gsm_app_dispose;
+ object_class->constructor = gsm_app_constructor;
+
+ klass->impl_start = NULL;
+ klass->impl_get_app_id = NULL;
+ klass->impl_get_autorestart = NULL;
+ klass->impl_provides = NULL;
+ klass->impl_is_running = NULL;
+
+ g_object_class_install_property (object_class,
+ PROP_PHASE,
+ g_param_spec_int ("phase",
+ "Phase",
+ "Phase",
+ -1,
+ G_MAXINT,
+ -1,
+ G_PARAM_READWRITE));
+ g_object_class_install_property (object_class,
+ PROP_ID,
+ g_param_spec_string ("id",
+ "ID",
+ "ID",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_STARTUP_ID,
+ g_param_spec_string ("startup-id",
+ "startup ID",
+ "Session management startup ID",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+ signals[EXITED] =
+ g_signal_new ("exited",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmAppClass, exited),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+ signals[DIED] =
+ g_signal_new ("died",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmAppClass, died),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ signals[REGISTERED] =
+ g_signal_new ("registered",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmAppClass, registered),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ g_type_class_add_private (klass, sizeof (GsmAppPrivate));
+ dbus_g_object_type_install_info (GSM_TYPE_APP, &dbus_glib_gsm_app_object_info);
+}
+
+const char *
+gsm_app_peek_id (GsmApp *app)
+{
+ return app->priv->id;
+}
+
+const char *
+gsm_app_peek_app_id (GsmApp *app)
+{
+ return GSM_APP_GET_CLASS (app)->impl_get_app_id (app);
+}
+
+const char *
+gsm_app_peek_startup_id (GsmApp *app)
+{
+ return app->priv->startup_id;
+}
+
+/**
+ * gsm_app_peek_phase:
+ * @app: a %GsmApp
+ *
+ * Returns @app's startup phase.
+ *
+ * Return value: @app's startup phase
+ **/
+GsmManagerPhase
+gsm_app_peek_phase (GsmApp *app)
+{
+ g_return_val_if_fail (GSM_IS_APP (app), GSM_MANAGER_PHASE_APPLICATION);
+
+ return app->priv->phase;
+}
+
+gboolean
+gsm_app_peek_is_disabled (GsmApp *app)
+{
+ g_return_val_if_fail (GSM_IS_APP (app), FALSE);
+
+ if (GSM_APP_GET_CLASS (app)->impl_is_disabled) {
+ return GSM_APP_GET_CLASS (app)->impl_is_disabled (app);
+ } else {
+ return FALSE;
+ }
+}
+
+gboolean
+gsm_app_peek_is_conditionally_disabled (GsmApp *app)
+{
+ g_return_val_if_fail (GSM_IS_APP (app), FALSE);
+
+ if (GSM_APP_GET_CLASS (app)->impl_is_conditionally_disabled) {
+ return GSM_APP_GET_CLASS (app)->impl_is_conditionally_disabled (app);
+ } else {
+ return FALSE;
+ }
+}
+
+gboolean
+gsm_app_is_running (GsmApp *app)
+{
+ g_return_val_if_fail (GSM_IS_APP (app), FALSE);
+
+ if (GSM_APP_GET_CLASS (app)->impl_is_running) {
+ return GSM_APP_GET_CLASS (app)->impl_is_running (app);
+ } else {
+ return FALSE;
+ }
+}
+
+gboolean
+gsm_app_peek_autorestart (GsmApp *app)
+{
+ g_return_val_if_fail (GSM_IS_APP (app), FALSE);
+
+ if (GSM_APP_GET_CLASS (app)->impl_get_autorestart) {
+ return GSM_APP_GET_CLASS (app)->impl_get_autorestart (app);
+ } else {
+ return FALSE;
+ }
+}
+
+gboolean
+gsm_app_provides (GsmApp *app, const char *service)
+{
+
+ if (GSM_APP_GET_CLASS (app)->impl_provides) {
+ return GSM_APP_GET_CLASS (app)->impl_provides (app, service);
+ } else {
+ return FALSE;
+ }
+}
+
+gboolean
+gsm_app_has_autostart_condition (GsmApp *app,
+ const char *condition)
+{
+
+ if (GSM_APP_GET_CLASS (app)->impl_has_autostart_condition) {
+ return GSM_APP_GET_CLASS (app)->impl_has_autostart_condition (app, condition);
+ } else {
+ return FALSE;
+ }
+}
+
+gboolean
+gsm_app_start (GsmApp *app,
+ GError **error)
+{
+ g_debug ("Starting app: %s", app->priv->id);
+
+ return GSM_APP_GET_CLASS (app)->impl_start (app, error);
+}
+
+gboolean
+gsm_app_restart (GsmApp *app,
+ GError **error)
+{
+ g_debug ("Re-starting app: %s", app->priv->id);
+
+ return GSM_APP_GET_CLASS (app)->impl_restart (app, error);
+}
+
+gboolean
+gsm_app_stop (GsmApp *app,
+ GError **error)
+{
+ return GSM_APP_GET_CLASS (app)->impl_stop (app, error);
+}
+
+void
+gsm_app_registered (GsmApp *app)
+{
+ g_return_if_fail (GSM_IS_APP (app));
+
+ g_signal_emit (app, signals[REGISTERED], 0);
+}
+
+void
+gsm_app_exited (GsmApp *app)
+{
+ g_return_if_fail (GSM_IS_APP (app));
+
+ g_signal_emit (app, signals[EXITED], 0);
+}
+
+void
+gsm_app_died (GsmApp *app)
+{
+ g_return_if_fail (GSM_IS_APP (app));
+
+ g_signal_emit (app, signals[DIED], 0);
+}
+
+gboolean
+gsm_app_get_app_id (GsmApp *app,
+ char **id,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_APP (app), FALSE);
+ *id = g_strdup (GSM_APP_GET_CLASS (app)->impl_get_app_id (app));
+ return TRUE;
+}
+
+gboolean
+gsm_app_get_startup_id (GsmApp *app,
+ char **id,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_APP (app), FALSE);
+ *id = g_strdup (app->priv->startup_id);
+ return TRUE;
+}
+
+gboolean
+gsm_app_get_phase (GsmApp *app,
+ guint *phase,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_APP (app), FALSE);
+ *phase = app->priv->phase;
+ return TRUE;
+}
diff --git a/mate-session/gsm-app.h b/mate-session/gsm-app.h
new file mode 100644
index 0000000..eaef6c5
--- /dev/null
+++ b/mate-session/gsm-app.h
@@ -0,0 +1,136 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007 Novell, Inc.
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef __GSM_APP_H__
+#define __GSM_APP_H__
+
+#include <glib-object.h>
+#include <sys/types.h>
+
+#include "eggdesktopfile.h"
+
+#include "gsm-manager.h"
+#include "gsm-client.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GSM_TYPE_APP (gsm_app_get_type ())
+#define GSM_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSM_TYPE_APP, GsmApp))
+#define GSM_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSM_TYPE_APP, GsmAppClass))
+#define GSM_IS_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSM_TYPE_APP))
+#define GSM_IS_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSM_TYPE_APP))
+#define GSM_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSM_TYPE_APP, GsmAppClass))
+
+typedef struct _GsmApp GsmApp;
+typedef struct _GsmAppClass GsmAppClass;
+typedef struct _GsmAppPrivate GsmAppPrivate;
+
+struct _GsmApp
+{
+ GObject parent;
+ GsmAppPrivate *priv;
+};
+
+struct _GsmAppClass
+{
+ GObjectClass parent_class;
+
+ /* signals */
+ void (*exited) (GsmApp *app);
+ void (*died) (GsmApp *app);
+ void (*registered) (GsmApp *app);
+
+ /* virtual methods */
+ gboolean (*impl_start) (GsmApp *app,
+ GError **error);
+ gboolean (*impl_restart) (GsmApp *app,
+ GError **error);
+ gboolean (*impl_stop) (GsmApp *app,
+ GError **error);
+ gboolean (*impl_provides) (GsmApp *app,
+ const char *service);
+ gboolean (*impl_has_autostart_condition) (GsmApp *app,
+ const char *service);
+ gboolean (*impl_is_running) (GsmApp *app);
+
+ gboolean (*impl_get_autorestart) (GsmApp *app);
+ const char *(*impl_get_app_id) (GsmApp *app);
+ gboolean (*impl_is_disabled) (GsmApp *app);
+ gboolean (*impl_is_conditionally_disabled) (GsmApp *app);
+};
+
+typedef enum
+{
+ GSM_APP_ERROR_GENERAL = 0,
+ GSM_APP_ERROR_START,
+ GSM_APP_ERROR_STOP,
+ GSM_APP_NUM_ERRORS
+} GsmAppError;
+
+#define GSM_APP_ERROR gsm_app_error_quark ()
+
+GQuark gsm_app_error_quark (void);
+GType gsm_app_get_type (void) G_GNUC_CONST;
+
+gboolean gsm_app_peek_autorestart (GsmApp *app);
+
+const char *gsm_app_peek_id (GsmApp *app);
+const char *gsm_app_peek_app_id (GsmApp *app);
+const char *gsm_app_peek_startup_id (GsmApp *app);
+GsmManagerPhase gsm_app_peek_phase (GsmApp *app);
+gboolean gsm_app_peek_is_disabled (GsmApp *app);
+gboolean gsm_app_peek_is_conditionally_disabled (GsmApp *app);
+
+gboolean gsm_app_start (GsmApp *app,
+ GError **error);
+gboolean gsm_app_restart (GsmApp *app,
+ GError **error);
+gboolean gsm_app_stop (GsmApp *app,
+ GError **error);
+gboolean gsm_app_is_running (GsmApp *app);
+
+void gsm_app_exited (GsmApp *app);
+void gsm_app_died (GsmApp *app);
+
+gboolean gsm_app_provides (GsmApp *app,
+ const char *service);
+gboolean gsm_app_has_autostart_condition (GsmApp *app,
+ const char *condition);
+void gsm_app_registered (GsmApp *app);
+
+/* exported to bus */
+gboolean gsm_app_get_app_id (GsmApp *app,
+ char **id,
+ GError **error);
+gboolean gsm_app_get_startup_id (GsmApp *app,
+ char **id,
+ GError **error);
+gboolean gsm_app_get_phase (GsmApp *app,
+ guint *phase,
+ GError **error);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSM_APP_H__ */
diff --git a/mate-session/gsm-autostart-app.c b/mate-session/gsm-autostart-app.c
new file mode 100644
index 0000000..a696a96
--- /dev/null
+++ b/mate-session/gsm-autostart-app.c
@@ -0,0 +1,1144 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007 Novell, Inc.
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <config.h>
+
+#include <ctype.h>
+#include <string.h>
+#include <sys/wait.h>
+#include <errno.h>
+
+#include <glib.h>
+#include <gio/gio.h>
+
+#include <mateconf/mateconf-client.h>
+
+#include "gsm-autostart-app.h"
+#include "gsm-util.h"
+
+enum {
+ AUTOSTART_LAUNCH_SPAWN = 0,
+ AUTOSTART_LAUNCH_ACTIVATE
+};
+
+enum {
+ GSM_CONDITION_NONE = 0,
+ GSM_CONDITION_IF_EXISTS = 1,
+ GSM_CONDITION_UNLESS_EXISTS = 2,
+ GSM_CONDITION_MATE = 3,
+ GSM_CONDITION_UNKNOWN = 4
+};
+
+#define GSM_SESSION_CLIENT_DBUS_INTERFACE "org.mate.SessionClient"
+
+struct _GsmAutostartAppPrivate {
+ char *desktop_filename;
+ char *desktop_id;
+ char *startup_id;
+
+ EggDesktopFile *desktop_file;
+
+ /* desktop file state */
+ char *condition_string;
+ gboolean condition;
+ gboolean autorestart;
+
+ GFileMonitor *condition_monitor;
+ guint condition_notify_id;
+
+ int launch_type;
+ GPid pid;
+ guint child_watch_id;
+
+ DBusGProxy *proxy;
+ DBusGProxyCall *proxy_call;
+};
+
+enum {
+ CONDITION_CHANGED,
+ LAST_SIGNAL
+};
+
+enum {
+ PROP_0,
+ PROP_DESKTOP_FILENAME
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
+
+#define GSM_AUTOSTART_APP_GET_PRIVATE(object) (G_TYPE_INSTANCE_GET_PRIVATE ((object), GSM_TYPE_AUTOSTART_APP, GsmAutostartAppPrivate))
+
+G_DEFINE_TYPE (GsmAutostartApp, gsm_autostart_app, GSM_TYPE_APP)
+
+static void
+gsm_autostart_app_init (GsmAutostartApp *app)
+{
+ app->priv = GSM_AUTOSTART_APP_GET_PRIVATE (app);
+
+ app->priv->pid = -1;
+ app->priv->condition_monitor = NULL;
+ app->priv->condition = FALSE;
+}
+
+static gboolean
+is_disabled (GsmApp *app)
+{
+ GsmAutostartAppPrivate *priv;
+
+ priv = GSM_AUTOSTART_APP (app)->priv;
+
+ /* GSM_AUTOSTART_APP_ENABLED_KEY key, used by old mate-session */
+ if (egg_desktop_file_has_key (priv->desktop_file,
+ GSM_AUTOSTART_APP_ENABLED_KEY, NULL) &&
+ !egg_desktop_file_get_boolean (priv->desktop_file,
+ GSM_AUTOSTART_APP_ENABLED_KEY, NULL)) {
+ g_debug ("app %s is disabled by " GSM_AUTOSTART_APP_ENABLED_KEY,
+ gsm_app_peek_id (app));
+ return TRUE;
+ }
+
+ /* Hidden key, used by autostart spec */
+ if (egg_desktop_file_get_boolean (priv->desktop_file,
+ EGG_DESKTOP_FILE_KEY_HIDDEN, NULL)) {
+ g_debug ("app %s is disabled by Hidden",
+ gsm_app_peek_id (app));
+ return TRUE;
+ }
+
+ /* Check OnlyShowIn/NotShowIn/TryExec */
+ if (!egg_desktop_file_can_launch (priv->desktop_file, "MATE")) {
+ g_debug ("app %s not installed or not for MATE",
+ gsm_app_peek_id (app));
+ return TRUE;
+ }
+
+ /* Do not check AutostartCondition - this method is only to determine
+ if the app is unconditionally disabled */
+
+ return FALSE;
+}
+
+static gboolean
+parse_condition_string (const char *condition_string,
+ guint *condition_kindp,
+ char **keyp)
+{
+ const char *space;
+ const char *key;
+ int len;
+ guint kind;
+
+ space = condition_string + strcspn (condition_string, " ");
+ len = space - condition_string;
+ key = space;
+ while (isspace ((unsigned char)*key)) {
+ key++;
+ }
+
+ if (!g_ascii_strncasecmp (condition_string, "if-exists", len) && key) {
+ kind = GSM_CONDITION_IF_EXISTS;
+ } else if (!g_ascii_strncasecmp (condition_string, "unless-exists", len) && key) {
+ kind = GSM_CONDITION_UNLESS_EXISTS;
+ } else if (!g_ascii_strncasecmp (condition_string, "MATE", len)) {
+ kind = GSM_CONDITION_MATE;
+ } else {
+ key = NULL;
+ kind = GSM_CONDITION_UNKNOWN;
+ }
+
+ if (keyp != NULL) {
+ *keyp = g_strdup (key);
+ }
+
+ if (condition_kindp != NULL) {
+ *condition_kindp = kind;
+ }
+
+ return (kind != GSM_CONDITION_UNKNOWN);
+}
+
+static void
+if_exists_condition_cb (GFileMonitor *monitor,
+ GFile *file,
+ GFile *other_file,
+ GFileMonitorEvent event,
+ GsmApp *app)
+{
+ GsmAutostartAppPrivate *priv;
+ gboolean condition = FALSE;
+
+ priv = GSM_AUTOSTART_APP (app)->priv;
+
+ switch (event) {
+ case G_FILE_MONITOR_EVENT_CREATED:
+ condition = TRUE;
+ break;
+ case G_FILE_MONITOR_EVENT_DELETED:
+ condition = FALSE;
+ break;
+ default:
+ /* Ignore any other monitor event */
+ return;
+ }
+
+ /* Emit only if the condition actually changed */
+ if (condition != priv->condition) {
+ priv->condition = condition;
+ g_signal_emit (app, signals[CONDITION_CHANGED], 0, condition);
+ }
+}
+
+static void
+unless_exists_condition_cb (GFileMonitor *monitor,
+ GFile *file,
+ GFile *other_file,
+ GFileMonitorEvent event,
+ GsmApp *app)
+{
+ GsmAutostartAppPrivate *priv;
+ gboolean condition = FALSE;
+
+ priv = GSM_AUTOSTART_APP (app)->priv;
+
+ switch (event) {
+ case G_FILE_MONITOR_EVENT_CREATED:
+ condition = FALSE;
+ break;
+ case G_FILE_MONITOR_EVENT_DELETED:
+ condition = TRUE;
+ break;
+ default:
+ /* Ignore any other monitor event */
+ return;
+ }
+
+ /* Emit only if the condition actually changed */
+ if (condition != priv->condition) {
+ priv->condition = condition;
+ g_signal_emit (app, signals[CONDITION_CHANGED], 0, condition);
+ }
+}
+
+static void
+mateconf_condition_cb (MateConfClient *client,
+ guint cnxn_id,
+ MateConfEntry *entry,
+ gpointer user_data)
+{
+ GsmApp *app;
+ GsmAutostartAppPrivate *priv;
+ gboolean condition;
+
+ g_return_if_fail (GSM_IS_APP (user_data));
+
+ app = GSM_APP (user_data);
+
+ priv = GSM_AUTOSTART_APP (app)->priv;
+
+ condition = FALSE;
+ if (entry->value != NULL && entry->value->type == MATECONF_VALUE_BOOL) {
+ condition = mateconf_value_get_bool (entry->value);
+ }
+
+ g_debug ("GsmAutostartApp: app:%s condition changed condition:%d",
+ gsm_app_peek_id (app),
+ condition);
+
+ /* Emit only if the condition actually changed */
+ if (condition != priv->condition) {
+ priv->condition = condition;
+ g_signal_emit (app, signals[CONDITION_CHANGED], 0, condition);
+ }
+}
+
+static void
+setup_condition_monitor (GsmAutostartApp *app)
+{
+ guint kind;
+ char *key;
+ gboolean res;
+ gboolean disabled;
+
+ if (app->priv->condition_monitor != NULL) {
+ g_file_monitor_cancel (app->priv->condition_monitor);
+ }
+
+ if (app->priv->condition_notify_id > 0) {
+ MateConfClient *client;
+ client = mateconf_client_get_default ();
+ mateconf_client_notify_remove (client,
+ app->priv->condition_notify_id);
+ app->priv->condition_notify_id = 0;
+ }
+
+ if (app->priv->condition_string == NULL) {
+ return;
+ }
+
+ /* if it is disabled outright there is no point in monitoring */
+ if (is_disabled (GSM_APP (app))) {
+ return;
+ }
+
+ key = NULL;
+ res = parse_condition_string (app->priv->condition_string, &kind, &key);
+ if (! res) {
+ g_free (key);
+ return;
+ }
+
+ if (key == NULL) {
+ return;
+ }
+
+ if (kind == GSM_CONDITION_IF_EXISTS) {
+ char *file_path;
+ GFile *file;
+
+ file_path = g_build_filename (g_get_user_config_dir (), key, NULL);
+
+ disabled = !g_file_test (file_path, G_FILE_TEST_EXISTS);
+
+ file = g_file_new_for_path (file_path);
+ app->priv->condition_monitor = g_file_monitor_file (file, 0, NULL, NULL);
+
+ g_signal_connect (app->priv->condition_monitor, "changed",
+ G_CALLBACK (if_exists_condition_cb),
+ app);
+
+ g_object_unref (file);
+ g_free (file_path);
+ } else if (kind == GSM_CONDITION_UNLESS_EXISTS) {
+ char *file_path;
+ GFile *file;
+
+ file_path = g_build_filename (g_get_user_config_dir (), key, NULL);
+
+ disabled = g_file_test (file_path, G_FILE_TEST_EXISTS);
+
+ file = g_file_new_for_path (file_path);
+ app->priv->condition_monitor = g_file_monitor_file (file, 0, NULL, NULL);
+
+ g_signal_connect (app->priv->condition_monitor, "changed",
+ G_CALLBACK (unless_exists_condition_cb),
+ app);
+
+ g_object_unref (file);
+ g_free (file_path);
+ } else if (kind == GSM_CONDITION_MATE) {
+ MateConfClient *client;
+ char *dir;
+
+ client = mateconf_client_get_default ();
+ g_assert (MATECONF_IS_CLIENT (client));
+
+ disabled = !mateconf_client_get_bool (client, key, NULL);
+
+ dir = g_path_get_dirname (key);
+
+ mateconf_client_add_dir (client,
+ dir,
+ MATECONF_CLIENT_PRELOAD_NONE, NULL);
+ g_free (dir);
+
+ app->priv->condition_notify_id = mateconf_client_notify_add (client,
+ key,
+ mateconf_condition_cb,
+ app, NULL, NULL);
+ g_object_unref (client);
+ } else {
+ disabled = TRUE;
+ }
+
+ g_free (key);
+
+ /* FIXME: cache the disabled value? */
+}
+
+static gboolean
+load_desktop_file (GsmAutostartApp *app)
+{
+ char *dbus_name;
+ char *startup_id;
+ char *phase_str;
+ int phase;
+ gboolean res;
+
+ if (app->priv->desktop_file == NULL) {
+ return FALSE;
+ }
+
+ phase_str = egg_desktop_file_get_string (app->priv->desktop_file,
+ GSM_AUTOSTART_APP_PHASE_KEY,
+ NULL);
+ if (phase_str != NULL) {
+ if (strcmp (phase_str, "Initialization") == 0) {
+ phase = GSM_MANAGER_PHASE_INITIALIZATION;
+ } else if (strcmp (phase_str, "WindowManager") == 0) {
+ phase = GSM_MANAGER_PHASE_WINDOW_MANAGER;
+ } else if (strcmp (phase_str, "Panel") == 0) {
+ phase = GSM_MANAGER_PHASE_PANEL;
+ } else if (strcmp (phase_str, "Desktop") == 0) {
+ phase = GSM_MANAGER_PHASE_DESKTOP;
+ } else {
+ phase = GSM_MANAGER_PHASE_APPLICATION;
+ }
+
+ g_free (phase_str);
+ } else {
+ phase = GSM_MANAGER_PHASE_APPLICATION;
+ }
+
+ dbus_name = egg_desktop_file_get_string (app->priv->desktop_file,
+ GSM_AUTOSTART_APP_DBUS_NAME_KEY,
+ NULL);
+ if (dbus_name != NULL) {
+ app->priv->launch_type = AUTOSTART_LAUNCH_ACTIVATE;
+ } else {
+ app->priv->launch_type = AUTOSTART_LAUNCH_SPAWN;
+ }
+
+ /* this must only be done on first load */
+ switch (app->priv->launch_type) {
+ case AUTOSTART_LAUNCH_SPAWN:
+ startup_id =
+ egg_desktop_file_get_string (app->priv->desktop_file,
+ GSM_AUTOSTART_APP_STARTUP_ID_KEY,
+ NULL);
+
+ if (startup_id == NULL) {
+ startup_id = gsm_util_generate_startup_id ();
+ }
+ break;
+ case AUTOSTART_LAUNCH_ACTIVATE:
+ startup_id = g_strdup (dbus_name);
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+
+ res = egg_desktop_file_has_key (app->priv->desktop_file,
+ GSM_AUTOSTART_APP_AUTORESTART_KEY,
+ NULL);
+ if (res) {
+ app->priv->autorestart = egg_desktop_file_get_boolean (app->priv->desktop_file,
+ GSM_AUTOSTART_APP_AUTORESTART_KEY,
+ NULL);
+ } else {
+ app->priv->autorestart = FALSE;
+ }
+
+ g_free (app->priv->condition_string);
+ app->priv->condition_string = egg_desktop_file_get_string (app->priv->desktop_file,
+ "AutostartCondition",
+ NULL);
+ setup_condition_monitor (app);
+
+ g_object_set (app,
+ "phase", phase,
+ "startup-id", startup_id,
+ NULL);
+
+ g_free (startup_id);
+ g_free (dbus_name);
+
+ return TRUE;
+}
+
+static void
+gsm_autostart_app_set_desktop_filename (GsmAutostartApp *app,
+ const char *desktop_filename)
+{
+ GError *error;
+
+ if (app->priv->desktop_file != NULL) {
+ egg_desktop_file_free (app->priv->desktop_file);
+ app->priv->desktop_file = NULL;
+ g_free (app->priv->desktop_id);
+ }
+
+ if (desktop_filename == NULL) {
+ return;
+ }
+
+ app->priv->desktop_id = g_path_get_basename (desktop_filename);
+
+ error = NULL;
+ app->priv->desktop_file = egg_desktop_file_new (desktop_filename, &error);
+ if (app->priv->desktop_file == NULL) {
+ g_warning ("Could not parse desktop file %s: %s",
+ desktop_filename,
+ error->message);
+ g_error_free (error);
+ return;
+ }
+}
+
+static void
+gsm_autostart_app_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GsmAutostartApp *self;
+
+ self = GSM_AUTOSTART_APP (object);
+
+ switch (prop_id) {
+ case PROP_DESKTOP_FILENAME:
+ gsm_autostart_app_set_desktop_filename (self, g_value_get_string (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_autostart_app_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GsmAutostartApp *self;
+
+ self = GSM_AUTOSTART_APP (object);
+
+ switch (prop_id) {
+ case PROP_DESKTOP_FILENAME:
+ if (self->priv->desktop_file != NULL) {
+ g_value_set_string (value, egg_desktop_file_get_source (self->priv->desktop_file));
+ } else {
+ g_value_set_string (value, NULL);
+ }
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_autostart_app_dispose (GObject *object)
+{
+ GsmAutostartAppPrivate *priv;
+
+ priv = GSM_AUTOSTART_APP (object)->priv;
+
+ if (priv->startup_id) {
+ g_free (priv->startup_id);
+ priv->startup_id = NULL;
+ }
+
+ if (priv->condition_string) {
+ g_free (priv->condition_string);
+ priv->condition_string = NULL;
+ }
+
+ if (priv->desktop_file) {
+ egg_desktop_file_free (priv->desktop_file);
+ priv->desktop_file = NULL;
+ }
+
+ if (priv->desktop_id) {
+ g_free (priv->desktop_id);
+ priv->desktop_id = NULL;
+ }
+
+ if (priv->child_watch_id > 0) {
+ g_source_remove (priv->child_watch_id);
+ priv->child_watch_id = 0;
+ }
+
+ if (priv->proxy_call != NULL) {
+ dbus_g_proxy_cancel_call (priv->proxy, priv->proxy_call);
+ priv->proxy_call = NULL;
+ }
+
+ if (priv->proxy != NULL) {
+ g_object_unref (priv->proxy);
+ priv->proxy = NULL;
+ }
+
+ if (priv->condition_monitor) {
+ g_file_monitor_cancel (priv->condition_monitor);
+ }
+
+ G_OBJECT_CLASS (gsm_autostart_app_parent_class)->dispose (object);
+}
+
+static gboolean
+is_running (GsmApp *app)
+{
+ GsmAutostartAppPrivate *priv;
+ gboolean is;
+
+ priv = GSM_AUTOSTART_APP (app)->priv;
+
+ /* is running if pid is still valid or
+ * or a client is connected
+ */
+ /* FIXME: check client */
+ is = (priv->pid != -1);
+
+ return is;
+}
+
+static gboolean
+is_conditionally_disabled (GsmApp *app)
+{
+ GsmAutostartAppPrivate *priv;
+ gboolean res;
+ gboolean disabled;
+ char *key;
+ guint kind;
+
+ priv = GSM_AUTOSTART_APP (app)->priv;
+
+ /* Check AutostartCondition */
+ if (priv->condition_string == NULL) {
+ return FALSE;
+ }
+
+ key = NULL;
+ res = parse_condition_string (priv->condition_string, &kind, &key);
+ if (! res) {
+ g_free (key);
+ return TRUE;
+ }
+
+ if (key == NULL) {
+ return TRUE;
+ }
+
+ if (kind == GSM_CONDITION_IF_EXISTS) {
+ char *file_path;
+
+ file_path = g_build_filename (g_get_user_config_dir (), key, NULL);
+ disabled = !g_file_test (file_path, G_FILE_TEST_EXISTS);
+ g_free (file_path);
+ } else if (kind == GSM_CONDITION_UNLESS_EXISTS) {
+ char *file_path;
+
+ file_path = g_build_filename (g_get_user_config_dir (), key, NULL);
+ disabled = g_file_test (file_path, G_FILE_TEST_EXISTS);
+ g_free (file_path);
+ } else if (kind == GSM_CONDITION_MATE) {
+ MateConfClient *client;
+ client = mateconf_client_get_default ();
+ g_assert (MATECONF_IS_CLIENT (client));
+ disabled = !mateconf_client_get_bool (client, key, NULL);
+ g_object_unref (client);
+ } else {
+ disabled = TRUE;
+ }
+
+ /* Set initial condition */
+ priv->condition = !disabled;
+
+ g_free (key);
+
+ return disabled;
+}
+
+static void
+app_exited (GPid pid,
+ int status,
+ GsmAutostartApp *app)
+{
+ g_debug ("GsmAutostartApp: (pid:%d) done (%s:%d)",
+ (int) pid,
+ WIFEXITED (status) ? "status"
+ : WIFSIGNALED (status) ? "signal"
+ : "unknown",
+ WIFEXITED (status) ? WEXITSTATUS (status)
+ : WIFSIGNALED (status) ? WTERMSIG (status)
+ : -1);
+
+ g_spawn_close_pid (app->priv->pid);
+ app->priv->pid = -1;
+ app->priv->child_watch_id = 0;
+
+ if (WIFEXITED (status)) {
+ gsm_app_exited (GSM_APP (app));
+ } else if (WIFSIGNALED (status)) {
+ gsm_app_died (GSM_APP (app));
+ }
+}
+
+static int
+_signal_pid (int pid,
+ int signal)
+{
+ int status = -1;
+
+ /* perhaps block sigchld */
+ g_debug ("GsmAutostartApp: sending signal %d to process %d", signal, pid);
+ errno = 0;
+ status = kill (pid, signal);
+
+ if (status < 0) {
+ if (errno == ESRCH) {
+ g_warning ("Child process %d was already dead.",
+ (int)pid);
+ } else {
+ g_warning ("Couldn't kill child process %d: %s",
+ pid,
+ g_strerror (errno));
+ }
+ }
+
+ /* perhaps unblock sigchld */
+
+ return status;
+}
+
+static gboolean
+autostart_app_stop_spawn (GsmAutostartApp *app,
+ GError **error)
+{
+ int res;
+
+ if (app->priv->pid < 1) {
+ g_set_error (error,
+ GSM_APP_ERROR,
+ GSM_APP_ERROR_STOP,
+ "Not running");
+ return FALSE;
+ }
+
+ res = _signal_pid (app->priv->pid, SIGTERM);
+ if (res != 0) {
+ g_set_error (error,
+ GSM_APP_ERROR,
+ GSM_APP_ERROR_STOP,
+ "Unable to stop: %s",
+ g_strerror (errno));
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static gboolean
+autostart_app_stop_activate (GsmAutostartApp *app,
+ GError **error)
+{
+ return TRUE;
+}
+
+static gboolean
+gsm_autostart_app_stop (GsmApp *app,
+ GError **error)
+{
+ GsmAutostartApp *aapp;
+ gboolean ret;
+
+ aapp = GSM_AUTOSTART_APP (app);
+
+ g_return_val_if_fail (aapp->priv->desktop_file != NULL, FALSE);
+
+ switch (aapp->priv->launch_type) {
+ case AUTOSTART_LAUNCH_SPAWN:
+ ret = autostart_app_stop_spawn (aapp, error);
+ break;
+ case AUTOSTART_LAUNCH_ACTIVATE:
+ ret = autostart_app_stop_activate (aapp, error);
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+
+ return ret;
+}
+
+static gboolean
+autostart_app_start_spawn (GsmAutostartApp *app,
+ GError **error)
+{
+ char *env[2] = { NULL, NULL };
+ gboolean success;
+ GError *local_error;
+ const char *startup_id;
+ char *command;
+
+ startup_id = gsm_app_peek_startup_id (GSM_APP (app));
+ g_assert (startup_id != NULL);
+
+ env[0] = g_strdup_printf ("DESKTOP_AUTOSTART_ID=%s", startup_id);
+
+ local_error = NULL;
+ command = egg_desktop_file_parse_exec (app->priv->desktop_file,
+ NULL,
+ &local_error);
+ if (command == NULL) {
+ g_warning ("Unable to parse command from '%s': %s",
+ egg_desktop_file_get_source (app->priv->desktop_file),
+ local_error->message);
+ g_error_free (local_error);
+ }
+
+ g_debug ("GsmAutostartApp: starting %s: command=%s startup-id=%s", app->priv->desktop_id, command, startup_id);
+ g_free (command);
+
+ g_free (app->priv->startup_id);
+ local_error = NULL;
+ success = egg_desktop_file_launch (app->priv->desktop_file,
+ NULL,
+ &local_error,
+ EGG_DESKTOP_FILE_LAUNCH_PUTENV, env,
+ EGG_DESKTOP_FILE_LAUNCH_FLAGS, G_SPAWN_DO_NOT_REAP_CHILD,
+ EGG_DESKTOP_FILE_LAUNCH_RETURN_PID, &app->priv->pid,
+ EGG_DESKTOP_FILE_LAUNCH_RETURN_STARTUP_ID, &app->priv->startup_id,
+ NULL);
+ g_free (env[0]);
+
+ if (success) {
+ g_debug ("GsmAutostartApp: started pid:%d", app->priv->pid);
+ app->priv->child_watch_id = g_child_watch_add (app->priv->pid,
+ (GChildWatchFunc)app_exited,
+ app);
+ } else {
+ g_set_error (error,
+ GSM_APP_ERROR,
+ GSM_APP_ERROR_START,
+ "Unable to start application: %s", local_error->message);
+ g_error_free (local_error);
+ }
+
+ return success;
+}
+
+static void
+start_notify (DBusGProxy *proxy,
+ DBusGProxyCall *call,
+ GsmAutostartApp *app)
+{
+ gboolean res;
+ GError *error;
+
+ error = NULL;
+ res = dbus_g_proxy_end_call (proxy,
+ call,
+ &error,
+ G_TYPE_INVALID);
+ app->priv->proxy_call = NULL;
+
+ if (! res) {
+ g_warning ("GsmAutostartApp: Error starting application: %s", error->message);
+ g_error_free (error);
+ } else {
+ g_debug ("GsmAutostartApp: Started application %s", app->priv->desktop_id);
+ }
+}
+
+static gboolean
+autostart_app_start_activate (GsmAutostartApp *app,
+ GError **error)
+{
+ const char *name;
+ char *path;
+ char *arguments;
+ DBusGConnection *bus;
+ GError *local_error;
+
+ local_error = NULL;
+ bus = dbus_g_bus_get (DBUS_BUS_SESSION, &local_error);
+ if (bus == NULL) {
+ if (local_error != NULL) {
+ g_warning ("error getting session bus: %s", local_error->message);
+ }
+ g_propagate_error (error, local_error);
+ return FALSE;
+ }
+
+ name = gsm_app_peek_startup_id (GSM_APP (app));
+ g_assert (name != NULL);
+
+ path = egg_desktop_file_get_string (app->priv->desktop_file,
+ GSM_AUTOSTART_APP_DBUS_PATH_KEY,
+ NULL);
+ if (path == NULL) {
+ /* just pick one? */
+ path = g_strdup ("/");
+ }
+
+ arguments = egg_desktop_file_get_string (app->priv->desktop_file,
+ GSM_AUTOSTART_APP_DBUS_ARGS_KEY,
+ NULL);
+
+ app->priv->proxy = dbus_g_proxy_new_for_name (bus,
+ name,
+ path,
+ GSM_SESSION_CLIENT_DBUS_INTERFACE);
+ if (app->priv->proxy == NULL) {
+ g_set_error (error,
+ GSM_APP_ERROR,
+ GSM_APP_ERROR_START,
+ "Unable to start application: unable to create proxy for client");
+ return FALSE;
+ }
+
+ app->priv->proxy_call = dbus_g_proxy_begin_call (app->priv->proxy,
+ "Start",
+ (DBusGProxyCallNotify)start_notify,
+ app,
+ NULL,
+ G_TYPE_STRING, arguments,
+ G_TYPE_INVALID);
+ if (app->priv->proxy_call == NULL) {
+ g_object_unref (app->priv->proxy);
+ app->priv->proxy = NULL;
+ g_set_error (error,
+ GSM_APP_ERROR,
+ GSM_APP_ERROR_START,
+ "Unable to start application: unable to call Start on client");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static gboolean
+gsm_autostart_app_start (GsmApp *app,
+ GError **error)
+{
+ GsmAutostartApp *aapp;
+ gboolean ret;
+
+ aapp = GSM_AUTOSTART_APP (app);
+
+ g_return_val_if_fail (aapp->priv->desktop_file != NULL, FALSE);
+
+ switch (aapp->priv->launch_type) {
+ case AUTOSTART_LAUNCH_SPAWN:
+ ret = autostart_app_start_spawn (aapp, error);
+ break;
+ case AUTOSTART_LAUNCH_ACTIVATE:
+ ret = autostart_app_start_activate (aapp, error);
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+
+ return ret;
+}
+
+static gboolean
+gsm_autostart_app_restart (GsmApp *app,
+ GError **error)
+{
+ GError *local_error;
+ gboolean res;
+
+ /* ignore stop errors - it is fine if it is already stopped */
+ local_error = NULL;
+ res = gsm_app_stop (app, &local_error);
+ if (! res) {
+ g_debug ("GsmAutostartApp: Couldn't stop app: %s", local_error->message);
+ g_error_free (local_error);
+ }
+
+ res = gsm_app_start (app, &local_error);
+ if (! res) {
+ g_propagate_error (error, local_error);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static gboolean
+gsm_autostart_app_provides (GsmApp *app,
+ const char *service)
+{
+ char **provides;
+ gsize len;
+ gsize i;
+ GsmAutostartApp *aapp;
+
+ g_return_val_if_fail (GSM_IS_APP (app), FALSE);
+
+ aapp = GSM_AUTOSTART_APP (app);
+
+ if (aapp->priv->desktop_file == NULL) {
+ return FALSE;
+ }
+
+ provides = egg_desktop_file_get_string_list (aapp->priv->desktop_file,
+ GSM_AUTOSTART_APP_PROVIDES_KEY,
+ &len, NULL);
+ if (!provides) {
+ return FALSE;
+ }
+
+ for (i = 0; i < len; i++) {
+ if (!strcmp (provides[i], service)) {
+ g_strfreev (provides);
+ return TRUE;
+ }
+ }
+
+ g_strfreev (provides);
+ return FALSE;
+}
+
+static gboolean
+gsm_autostart_app_has_autostart_condition (GsmApp *app,
+ const char *condition)
+{
+ GsmAutostartApp *aapp;
+
+ g_return_val_if_fail (GSM_IS_APP (app), FALSE);
+ g_return_val_if_fail (condition != NULL, FALSE);
+
+ aapp = GSM_AUTOSTART_APP (app);
+
+ if (aapp->priv->condition_string == NULL) {
+ return FALSE;
+ }
+
+ if (strcmp (aapp->priv->condition_string, condition) == 0) {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static gboolean
+gsm_autostart_app_get_autorestart (GsmApp *app)
+{
+ gboolean res;
+ gboolean autorestart;
+
+ if (GSM_AUTOSTART_APP (app)->priv->desktop_file == NULL) {
+ return FALSE;
+ }
+
+ autorestart = FALSE;
+
+ res = egg_desktop_file_has_key (GSM_AUTOSTART_APP (app)->priv->desktop_file,
+ GSM_AUTOSTART_APP_AUTORESTART_KEY,
+ NULL);
+ if (res) {
+ autorestart = egg_desktop_file_get_boolean (GSM_AUTOSTART_APP (app)->priv->desktop_file,
+ GSM_AUTOSTART_APP_AUTORESTART_KEY,
+ NULL);
+ }
+
+ return autorestart;
+}
+
+static const char *
+gsm_autostart_app_get_app_id (GsmApp *app)
+{
+ const char *location;
+ const char *slash;
+
+ if (GSM_AUTOSTART_APP (app)->priv->desktop_file == NULL) {
+ return NULL;
+ }
+
+ location = egg_desktop_file_get_source (GSM_AUTOSTART_APP (app)->priv->desktop_file);
+
+ slash = strrchr (location, '/');
+ if (slash != NULL) {
+ return slash + 1;
+ } else {
+ return location;
+ }
+}
+
+static GObject *
+gsm_autostart_app_constructor (GType type,
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
+{
+ GsmAutostartApp *app;
+
+ app = GSM_AUTOSTART_APP (G_OBJECT_CLASS (gsm_autostart_app_parent_class)->constructor (type,
+ n_construct_properties,
+ construct_properties));
+
+ if (! load_desktop_file (app)) {
+ g_object_unref (app);
+ app = NULL;
+ }
+
+ return G_OBJECT (app);
+}
+
+static void
+gsm_autostart_app_class_init (GsmAutostartAppClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GsmAppClass *app_class = GSM_APP_CLASS (klass);
+
+ object_class->set_property = gsm_autostart_app_set_property;
+ object_class->get_property = gsm_autostart_app_get_property;
+ object_class->dispose = gsm_autostart_app_dispose;
+ object_class->constructor = gsm_autostart_app_constructor;
+
+ app_class->impl_is_disabled = is_disabled;
+ app_class->impl_is_conditionally_disabled = is_conditionally_disabled;
+ app_class->impl_is_running = is_running;
+ app_class->impl_start = gsm_autostart_app_start;
+ app_class->impl_restart = gsm_autostart_app_restart;
+ app_class->impl_stop = gsm_autostart_app_stop;
+ app_class->impl_provides = gsm_autostart_app_provides;
+ app_class->impl_has_autostart_condition = gsm_autostart_app_has_autostart_condition;
+ app_class->impl_get_app_id = gsm_autostart_app_get_app_id;
+ app_class->impl_get_autorestart = gsm_autostart_app_get_autorestart;
+
+ g_object_class_install_property (object_class,
+ PROP_DESKTOP_FILENAME,
+ g_param_spec_string ("desktop-filename",
+ "Desktop filename",
+ "Freedesktop .desktop file",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ signals[CONDITION_CHANGED] =
+ g_signal_new ("condition-changed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmAutostartAppClass, condition_changed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__BOOLEAN,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_BOOLEAN);
+
+ g_type_class_add_private (object_class, sizeof (GsmAutostartAppPrivate));
+}
+
+GsmApp *
+gsm_autostart_app_new (const char *desktop_file)
+{
+ GsmAutostartApp *app;
+
+ app = g_object_new (GSM_TYPE_AUTOSTART_APP,
+ "desktop-filename", desktop_file,
+ NULL);
+
+ return GSM_APP (app);
+}
diff --git a/mate-session/gsm-autostart-app.h b/mate-session/gsm-autostart-app.h
new file mode 100644
index 0000000..866522d
--- /dev/null
+++ b/mate-session/gsm-autostart-app.h
@@ -0,0 +1,78 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007 Novell, Inc.
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef __GSM_AUTOSTART_APP_H__
+#define __GSM_AUTOSTART_APP_H__
+
+#include "gsm-app.h"
+
+#include <X11/SM/SMlib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GSM_TYPE_AUTOSTART_APP (gsm_autostart_app_get_type ())
+#define GSM_AUTOSTART_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSM_TYPE_AUTOSTART_APP, GsmAutostartApp))
+#define GSM_AUTOSTART_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSM_TYPE_AUTOSTART_APP, GsmAutostartAppClass))
+#define GSM_IS_AUTOSTART_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSM_TYPE_AUTOSTART_APP))
+#define GSM_IS_AUTOSTART_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSM_TYPE_AUTOSTART_APP))
+#define GSM_AUTOSTART_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSM_TYPE_AUTOSTART_APP, GsmAutostartAppClass))
+
+typedef struct _GsmAutostartApp GsmAutostartApp;
+typedef struct _GsmAutostartAppClass GsmAutostartAppClass;
+typedef struct _GsmAutostartAppPrivate GsmAutostartAppPrivate;
+
+struct _GsmAutostartApp
+{
+ GsmApp parent;
+
+ GsmAutostartAppPrivate *priv;
+};
+
+struct _GsmAutostartAppClass
+{
+ GsmAppClass parent_class;
+
+ /* signals */
+ void (*condition_changed) (GsmApp *app,
+ gboolean condition);
+};
+
+GType gsm_autostart_app_get_type (void) G_GNUC_CONST;
+
+GsmApp *gsm_autostart_app_new (const char *desktop_file);
+
+#define GSM_AUTOSTART_APP_ENABLED_KEY "X-MATE-Autostart-enabled"
+#define GSM_AUTOSTART_APP_PHASE_KEY "X-MATE-Autostart-Phase"
+#define GSM_AUTOSTART_APP_PROVIDES_KEY "X-MATE-Provides"
+#define GSM_AUTOSTART_APP_STARTUP_ID_KEY "X-MATE-Autostart-startup-id"
+#define GSM_AUTOSTART_APP_AUTORESTART_KEY "X-MATE-AutoRestart"
+#define GSM_AUTOSTART_APP_DBUS_NAME_KEY "X-MATE-DBus-Name"
+#define GSM_AUTOSTART_APP_DBUS_PATH_KEY "X-MATE-DBus-Path"
+#define GSM_AUTOSTART_APP_DBUS_ARGS_KEY "X-MATE-DBus-Start-Arguments"
+#define GSM_AUTOSTART_APP_DISCARD_KEY "X-MATE-Autostart-discard-exec"
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSM_AUTOSTART_APP_H__ */
diff --git a/mate-session/gsm-client.c b/mate-session/gsm-client.c
new file mode 100644
index 0000000..9cb1d81
--- /dev/null
+++ b/mate-session/gsm-client.c
@@ -0,0 +1,531 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007 Novell, Inc.
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <dbus/dbus-glib.h>
+
+#include "eggdesktopfile.h"
+
+#include "gsm-marshal.h"
+#include "gsm-client.h"
+#include "gsm-client-glue.h"
+
+static guint32 client_serial = 1;
+
+#define GSM_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_CLIENT, GsmClientPrivate))
+
+struct GsmClientPrivate
+{
+ char *id;
+ char *startup_id;
+ char *app_id;
+ guint status;
+ DBusGConnection *connection;
+};
+
+enum {
+ PROP_0,
+ PROP_ID,
+ PROP_STARTUP_ID,
+ PROP_APP_ID,
+ PROP_STATUS
+};
+
+enum {
+ DISCONNECTED,
+ END_SESSION_RESPONSE,
+ LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
+
+G_DEFINE_ABSTRACT_TYPE (GsmClient, gsm_client, G_TYPE_OBJECT)
+
+GQuark
+gsm_client_error_quark (void)
+{
+ static GQuark ret = 0;
+ if (ret == 0) {
+ ret = g_quark_from_static_string ("gsm_client_error");
+ }
+
+ return ret;
+}
+
+#define ENUM_ENTRY(NAME, DESC) { NAME, "" #NAME "", DESC }
+
+GType
+gsm_client_error_get_type (void)
+{
+ static GType etype = 0;
+
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ ENUM_ENTRY (GSM_CLIENT_ERROR_GENERAL, "GeneralError"),
+ ENUM_ENTRY (GSM_CLIENT_ERROR_NOT_REGISTERED, "NotRegistered"),
+ { 0, 0, 0 }
+ };
+
+ g_assert (GSM_CLIENT_NUM_ERRORS == G_N_ELEMENTS (values) - 1);
+
+ etype = g_enum_register_static ("GsmClientError", values);
+ }
+
+ return etype;
+}
+
+static guint32
+get_next_client_serial (void)
+{
+ guint32 serial;
+
+ serial = client_serial++;
+
+ if ((gint32)client_serial < 0) {
+ client_serial = 1;
+ }
+
+ return serial;
+}
+
+static gboolean
+register_client (GsmClient *client)
+{
+ GError *error;
+
+ error = NULL;
+ client->priv->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+ if (client->priv->connection == NULL) {
+ if (error != NULL) {
+ g_critical ("error getting session bus: %s", error->message);
+ g_error_free (error);
+ }
+ return FALSE;
+ }
+
+ dbus_g_connection_register_g_object (client->priv->connection, client->priv->id, G_OBJECT (client));
+
+ return TRUE;
+}
+
+static GObject *
+gsm_client_constructor (GType type,
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
+{
+ GsmClient *client;
+ gboolean res;
+
+ client = GSM_CLIENT (G_OBJECT_CLASS (gsm_client_parent_class)->constructor (type,
+ n_construct_properties,
+ construct_properties));
+
+ g_free (client->priv->id);
+ client->priv->id = g_strdup_printf ("/org/mate/SessionManager/Client%u", get_next_client_serial ());
+
+ res = register_client (client);
+ if (! res) {
+ g_warning ("Unable to register client with session bus");
+ }
+
+ return G_OBJECT (client);
+}
+
+static void
+gsm_client_init (GsmClient *client)
+{
+ client->priv = GSM_CLIENT_GET_PRIVATE (client);
+}
+
+static void
+gsm_client_finalize (GObject *object)
+{
+ GsmClient *client;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GSM_IS_CLIENT (object));
+
+ client = GSM_CLIENT (object);
+
+ g_return_if_fail (client->priv != NULL);
+
+ g_free (client->priv->id);
+ g_free (client->priv->startup_id);
+ g_free (client->priv->app_id);
+
+ G_OBJECT_CLASS (gsm_client_parent_class)->finalize (object);
+}
+
+void
+gsm_client_set_status (GsmClient *client,
+ guint status)
+{
+ g_return_if_fail (GSM_IS_CLIENT (client));
+ if (client->priv->status != status) {
+ client->priv->status = status;
+ g_object_notify (G_OBJECT (client), "status");
+ }
+}
+
+static void
+gsm_client_set_startup_id (GsmClient *client,
+ const char *startup_id)
+{
+ g_return_if_fail (GSM_IS_CLIENT (client));
+
+ g_free (client->priv->startup_id);
+
+ if (startup_id != NULL) {
+ client->priv->startup_id = g_strdup (startup_id);
+ } else {
+ client->priv->startup_id = g_strdup ("");
+ }
+ g_object_notify (G_OBJECT (client), "startup-id");
+}
+
+void
+gsm_client_set_app_id (GsmClient *client,
+ const char *app_id)
+{
+ g_return_if_fail (GSM_IS_CLIENT (client));
+
+ g_free (client->priv->app_id);
+
+ if (app_id != NULL) {
+ client->priv->app_id = g_strdup (app_id);
+ } else {
+ client->priv->app_id = g_strdup ("");
+ }
+ g_object_notify (G_OBJECT (client), "app-id");
+}
+
+static void
+gsm_client_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GsmClient *self;
+
+ self = GSM_CLIENT (object);
+
+ switch (prop_id) {
+ case PROP_STARTUP_ID:
+ gsm_client_set_startup_id (self, g_value_get_string (value));
+ break;
+ case PROP_APP_ID:
+ gsm_client_set_app_id (self, g_value_get_string (value));
+ break;
+ case PROP_STATUS:
+ gsm_client_set_status (self, g_value_get_uint (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_client_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GsmClient *self;
+
+ self = GSM_CLIENT (object);
+
+ switch (prop_id) {
+ case PROP_STARTUP_ID:
+ g_value_set_string (value, self->priv->startup_id);
+ break;
+ case PROP_APP_ID:
+ g_value_set_string (value, self->priv->app_id);
+ break;
+ case PROP_STATUS:
+ g_value_set_uint (value, self->priv->status);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static gboolean
+default_stop (GsmClient *client,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_CLIENT (client), FALSE);
+
+ g_warning ("Stop not implemented");
+
+ return TRUE;
+}
+
+static void
+gsm_client_dispose (GObject *object)
+{
+ GsmClient *client;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GSM_IS_CLIENT (object));
+
+ client = GSM_CLIENT (object);
+
+ g_debug ("GsmClient: disposing %s", client->priv->id);
+
+ G_OBJECT_CLASS (gsm_client_parent_class)->dispose (object);
+}
+
+static void
+gsm_client_class_init (GsmClientClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->get_property = gsm_client_get_property;
+ object_class->set_property = gsm_client_set_property;
+ object_class->constructor = gsm_client_constructor;
+ object_class->finalize = gsm_client_finalize;
+ object_class->dispose = gsm_client_dispose;
+
+ klass->impl_stop = default_stop;
+
+ signals[DISCONNECTED] =
+ g_signal_new ("disconnected",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmClientClass, disconnected),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+ signals[END_SESSION_RESPONSE] =
+ g_signal_new ("end-session-response",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmClientClass, end_session_response),
+ NULL, NULL,
+ gsm_marshal_VOID__BOOLEAN_BOOLEAN_BOOLEAN_STRING,
+ G_TYPE_NONE,
+ 4, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING);
+
+ g_object_class_install_property (object_class,
+ PROP_STARTUP_ID,
+ g_param_spec_string ("startup-id",
+ "startup-id",
+ "startup-id",
+ "",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_APP_ID,
+ g_param_spec_string ("app-id",
+ "app-id",
+ "app-id",
+ "",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_STATUS,
+ g_param_spec_uint ("status",
+ "status",
+ "status",
+ 0,
+ G_MAXINT,
+ GSM_CLIENT_UNREGISTERED,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+ g_type_class_add_private (klass, sizeof (GsmClientPrivate));
+
+ dbus_g_object_type_install_info (GSM_TYPE_CLIENT, &dbus_glib_gsm_client_object_info);
+}
+
+const char *
+gsm_client_peek_id (GsmClient *client)
+{
+ g_return_val_if_fail (GSM_IS_CLIENT (client), NULL);
+
+ return client->priv->id;
+}
+
+const char *
+gsm_client_peek_app_id (GsmClient *client)
+{
+ g_return_val_if_fail (GSM_IS_CLIENT (client), NULL);
+
+ return client->priv->app_id;
+}
+
+const char *
+gsm_client_peek_startup_id (GsmClient *client)
+{
+ g_return_val_if_fail (GSM_IS_CLIENT (client), NULL);
+
+ return client->priv->startup_id;
+}
+
+guint
+gsm_client_peek_status (GsmClient *client)
+{
+ g_return_val_if_fail (GSM_IS_CLIENT (client), GSM_CLIENT_UNREGISTERED);
+
+ return client->priv->status;
+}
+
+guint
+gsm_client_peek_restart_style_hint (GsmClient *client)
+{
+ g_return_val_if_fail (GSM_IS_CLIENT (client), GSM_CLIENT_RESTART_NEVER);
+
+ return GSM_CLIENT_GET_CLASS (client)->impl_get_restart_style_hint (client);
+}
+
+gboolean
+gsm_client_get_startup_id (GsmClient *client,
+ char **id,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_CLIENT (client), FALSE);
+
+ *id = g_strdup (client->priv->startup_id);
+
+ return TRUE;
+}
+
+gboolean
+gsm_client_get_app_id (GsmClient *client,
+ char **id,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_CLIENT (client), FALSE);
+
+ *id = g_strdup (client->priv->app_id);
+
+ return TRUE;
+}
+
+gboolean
+gsm_client_get_restart_style_hint (GsmClient *client,
+ guint *hint,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_CLIENT (client), FALSE);
+
+ *hint = GSM_CLIENT_GET_CLASS (client)->impl_get_restart_style_hint (client);
+
+ return TRUE;
+}
+
+gboolean
+gsm_client_get_status (GsmClient *client,
+ guint *status,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_CLIENT (client), FALSE);
+
+ *status = client->priv->status;
+
+ return TRUE;
+}
+
+gboolean
+gsm_client_get_unix_process_id (GsmClient *client,
+ guint *pid,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_CLIENT (client), FALSE);
+
+ *pid = GSM_CLIENT_GET_CLASS (client)->impl_get_unix_process_id (client);
+
+ return TRUE;
+}
+
+char *
+gsm_client_get_app_name (GsmClient *client)
+{
+ g_return_val_if_fail (GSM_IS_CLIENT (client), NULL);
+
+ return GSM_CLIENT_GET_CLASS (client)->impl_get_app_name (client);
+}
+
+gboolean
+gsm_client_cancel_end_session (GsmClient *client,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_CLIENT (client), FALSE);
+
+ return GSM_CLIENT_GET_CLASS (client)->impl_cancel_end_session (client, error);
+}
+
+
+gboolean
+gsm_client_query_end_session (GsmClient *client,
+ guint flags,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_CLIENT (client), FALSE);
+
+ return GSM_CLIENT_GET_CLASS (client)->impl_query_end_session (client, flags, error);
+}
+
+gboolean
+gsm_client_end_session (GsmClient *client,
+ guint flags,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_CLIENT (client), FALSE);
+
+ return GSM_CLIENT_GET_CLASS (client)->impl_end_session (client, flags, error);
+}
+
+gboolean
+gsm_client_stop (GsmClient *client,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_CLIENT (client), FALSE);
+
+ return GSM_CLIENT_GET_CLASS (client)->impl_stop (client, error);
+}
+
+void
+gsm_client_disconnected (GsmClient *client)
+{
+ g_signal_emit (client, signals[DISCONNECTED], 0);
+}
+
+GKeyFile *
+gsm_client_save (GsmClient *client,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_CLIENT (client), FALSE);
+
+ return GSM_CLIENT_GET_CLASS (client)->impl_save (client, error);
+}
+
+void
+gsm_client_end_session_response (GsmClient *client,
+ gboolean is_ok,
+ gboolean do_last,
+ gboolean cancel,
+ const char *reason)
+{
+ g_signal_emit (client, signals[END_SESSION_RESPONSE], 0,
+ is_ok, do_last, cancel, reason);
+}
diff --git a/mate-session/gsm-client.h b/mate-session/gsm-client.h
new file mode 100644
index 0000000..8c096a6
--- /dev/null
+++ b/mate-session/gsm-client.h
@@ -0,0 +1,175 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007 Novell, Inc.
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef __GSM_CLIENT_H__
+#define __GSM_CLIENT_H__
+
+#include <glib.h>
+#include <glib-object.h>
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GSM_TYPE_CLIENT (gsm_client_get_type ())
+#define GSM_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSM_TYPE_CLIENT, GsmClient))
+#define GSM_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSM_TYPE_CLIENT, GsmClientClass))
+#define GSM_IS_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSM_TYPE_CLIENT))
+#define GSM_IS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSM_TYPE_CLIENT))
+#define GSM_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSM_TYPE_CLIENT, GsmClientClass))
+
+typedef struct _GsmClient GsmClient;
+typedef struct _GsmClientClass GsmClientClass;
+
+typedef struct GsmClientPrivate GsmClientPrivate;
+
+typedef enum {
+ GSM_CLIENT_UNREGISTERED = 0,
+ GSM_CLIENT_REGISTERED,
+ GSM_CLIENT_FINISHED,
+ GSM_CLIENT_FAILED
+} GsmClientStatus;
+
+typedef enum {
+ GSM_CLIENT_RESTART_NEVER = 0,
+ GSM_CLIENT_RESTART_IF_RUNNING,
+ GSM_CLIENT_RESTART_ANYWAY,
+ GSM_CLIENT_RESTART_IMMEDIATELY
+} GsmClientRestartStyle;
+
+typedef enum {
+ GSM_CLIENT_END_SESSION_FLAG_FORCEFUL = 1 << 0,
+ GSM_CLIENT_END_SESSION_FLAG_SAVE = 1 << 1,
+ GSM_CLIENT_END_SESSION_FLAG_LAST = 1 << 2
+} GsmClientEndSessionFlag;
+
+struct _GsmClient
+{
+ GObject parent;
+ GsmClientPrivate *priv;
+};
+
+struct _GsmClientClass
+{
+ GObjectClass parent_class;
+
+ /* signals */
+ void (*disconnected) (GsmClient *client);
+ void (*end_session_response) (GsmClient *client,
+ gboolean ok,
+ gboolean do_last,
+ gboolean cancel,
+ const char *reason);
+
+ /* virtual methods */
+ char * (*impl_get_app_name) (GsmClient *client);
+ GsmClientRestartStyle (*impl_get_restart_style_hint) (GsmClient *client);
+ guint (*impl_get_unix_process_id) (GsmClient *client);
+ gboolean (*impl_query_end_session) (GsmClient *client,
+ guint flags,
+ GError **error);
+ gboolean (*impl_end_session) (GsmClient *client,
+ guint flags,
+ GError **error);
+ gboolean (*impl_cancel_end_session) (GsmClient *client,
+ GError **error);
+ gboolean (*impl_stop) (GsmClient *client,
+ GError **error);
+ GKeyFile * (*impl_save) (GsmClient *client,
+ GError **error);
+};
+
+typedef enum
+{
+ GSM_CLIENT_ERROR_GENERAL = 0,
+ GSM_CLIENT_ERROR_NOT_REGISTERED,
+ GSM_CLIENT_NUM_ERRORS
+} GsmClientError;
+
+#define GSM_CLIENT_ERROR gsm_client_error_quark ()
+#define GSM_CLIENT_TYPE_ERROR (gsm_client_error_get_type ())
+
+GType gsm_client_error_get_type (void);
+GQuark gsm_client_error_quark (void);
+
+GType gsm_client_get_type (void) G_GNUC_CONST;
+
+const char *gsm_client_peek_id (GsmClient *client);
+
+
+const char * gsm_client_peek_startup_id (GsmClient *client);
+const char * gsm_client_peek_app_id (GsmClient *client);
+guint gsm_client_peek_restart_style_hint (GsmClient *client);
+guint gsm_client_peek_status (GsmClient *client);
+
+
+char *gsm_client_get_app_name (GsmClient *client);
+void gsm_client_set_app_id (GsmClient *client,
+ const char *app_id);
+void gsm_client_set_status (GsmClient *client,
+ guint status);
+
+gboolean gsm_client_end_session (GsmClient *client,
+ guint flags,
+ GError **error);
+gboolean gsm_client_query_end_session (GsmClient *client,
+ guint flags,
+ GError **error);
+gboolean gsm_client_cancel_end_session (GsmClient *client,
+ GError **error);
+
+void gsm_client_disconnected (GsmClient *client);
+
+GKeyFile *gsm_client_save (GsmClient *client,
+ GError **error);
+/* exported to bus */
+gboolean gsm_client_stop (GsmClient *client,
+ GError **error);
+gboolean gsm_client_get_startup_id (GsmClient *client,
+ char **startup_id,
+ GError **error);
+gboolean gsm_client_get_app_id (GsmClient *client,
+ char **app_id,
+ GError **error);
+gboolean gsm_client_get_restart_style_hint (GsmClient *client,
+ guint *hint,
+ GError **error);
+gboolean gsm_client_get_status (GsmClient *client,
+ guint *status,
+ GError **error);
+gboolean gsm_client_get_unix_process_id (GsmClient *client,
+ guint *pid,
+ GError **error);
+
+/* private */
+
+void gsm_client_end_session_response (GsmClient *client,
+ gboolean is_ok,
+ gboolean do_last,
+ gboolean cancel,
+ const char *reason);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSM_CLIENT_H__ */
diff --git a/mate-session/gsm-consolekit.c b/mate-session/gsm-consolekit.c
new file mode 100644
index 0000000..e8dd726
--- /dev/null
+++ b/mate-session/gsm-consolekit.c
@@ -0,0 +1,903 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Jon McCann <[email protected]>
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <glib.h>
+#include <glib-object.h>
+#include <glib/gi18n.h>
+
+#include <dbus/dbus-glib.h>
+#include <dbus/dbus-glib-lowlevel.h>
+
+#include "gsm-marshal.h"
+#include "gsm-consolekit.h"
+
+#define CK_NAME "org.freedesktop.ConsoleKit"
+#define CK_PATH "/org/freedesktop/ConsoleKit"
+#define CK_INTERFACE "org.freedesktop.ConsoleKit"
+
+#define CK_MANAGER_PATH "/org/freedesktop/ConsoleKit/Manager"
+#define CK_MANAGER_INTERFACE "org.freedesktop.ConsoleKit.Manager"
+#define CK_SEAT_INTERFACE "org.freedesktop.ConsoleKit.Seat"
+#define CK_SESSION_INTERFACE "org.freedesktop.ConsoleKit.Session"
+
+#define GSM_CONSOLEKIT_GET_PRIVATE(o) \
+ (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_CONSOLEKIT, GsmConsolekitPrivate))
+
+struct _GsmConsolekitPrivate
+{
+ DBusGConnection *dbus_connection;
+ DBusGProxy *bus_proxy;
+ DBusGProxy *ck_proxy;
+ guint32 is_connected : 1;
+};
+
+enum {
+ PROP_0,
+ PROP_IS_CONNECTED
+};
+
+enum {
+ REQUEST_COMPLETED = 0,
+ PRIVILEGES_COMPLETED,
+ LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
+
+static void gsm_consolekit_class_init (GsmConsolekitClass *klass);
+static void gsm_consolekit_init (GsmConsolekit *ck);
+static void gsm_consolekit_finalize (GObject *object);
+
+static void gsm_consolekit_free_dbus (GsmConsolekit *manager);
+
+static DBusHandlerResult gsm_consolekit_dbus_filter (DBusConnection *connection,
+ DBusMessage *message,
+ void *user_data);
+
+static void gsm_consolekit_on_name_owner_changed (DBusGProxy *bus_proxy,
+ const char *name,
+ const char *prev_owner,
+ const char *new_owner,
+ GsmConsolekit *manager);
+
+G_DEFINE_TYPE (GsmConsolekit, gsm_consolekit, G_TYPE_OBJECT);
+
+static void
+gsm_consolekit_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GsmConsolekit *manager = GSM_CONSOLEKIT (object);
+
+ switch (prop_id) {
+ case PROP_IS_CONNECTED:
+ g_value_set_boolean (value,
+ manager->priv->is_connected);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
+ prop_id,
+ pspec);
+ }
+}
+
+static void
+gsm_consolekit_class_init (GsmConsolekitClass *manager_class)
+{
+ GObjectClass *object_class;
+ GParamSpec *param_spec;
+
+ object_class = G_OBJECT_CLASS (manager_class);
+
+ object_class->finalize = gsm_consolekit_finalize;
+ object_class->get_property = gsm_consolekit_get_property;
+
+ param_spec = g_param_spec_boolean ("is-connected",
+ "Is connected",
+ "Whether the session is connected to ConsoleKit",
+ FALSE,
+ G_PARAM_READABLE);
+
+ g_object_class_install_property (object_class, PROP_IS_CONNECTED,
+ param_spec);
+
+ signals [REQUEST_COMPLETED] =
+ g_signal_new ("request-completed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmConsolekitClass, request_completed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__POINTER,
+ G_TYPE_NONE,
+ 1, G_TYPE_POINTER);
+
+ signals [PRIVILEGES_COMPLETED] =
+ g_signal_new ("privileges-completed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmConsolekitClass, privileges_completed),
+ NULL,
+ NULL,
+ gsm_marshal_VOID__BOOLEAN_BOOLEAN_POINTER,
+ G_TYPE_NONE,
+ 3, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_POINTER);
+
+ g_type_class_add_private (manager_class, sizeof (GsmConsolekitPrivate));
+}
+
+static DBusHandlerResult
+gsm_consolekit_dbus_filter (DBusConnection *connection,
+ DBusMessage *message,
+ void *user_data)
+{
+ GsmConsolekit *manager;
+
+ manager = GSM_CONSOLEKIT (user_data);
+
+ if (dbus_message_is_signal (message,
+ DBUS_INTERFACE_LOCAL, "Disconnected") &&
+ strcmp (dbus_message_get_path (message), DBUS_PATH_LOCAL) == 0) {
+ gsm_consolekit_free_dbus (manager);
+ return DBUS_HANDLER_RESULT_HANDLED;
+ }
+
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+}
+
+static gboolean
+gsm_consolekit_ensure_ck_connection (GsmConsolekit *manager,
+ GError **error)
+{
+ GError *connection_error;
+ gboolean is_connected;
+
+ connection_error = NULL;
+
+ if (manager->priv->dbus_connection == NULL) {
+ DBusConnection *connection;
+
+ manager->priv->dbus_connection = dbus_g_bus_get (DBUS_BUS_SYSTEM,
+ &connection_error);
+
+ if (manager->priv->dbus_connection == NULL) {
+ g_propagate_error (error, connection_error);
+ is_connected = FALSE;
+ goto out;
+ }
+
+ connection = dbus_g_connection_get_connection (manager->priv->dbus_connection);
+ dbus_connection_set_exit_on_disconnect (connection, FALSE);
+ dbus_connection_add_filter (connection,
+ gsm_consolekit_dbus_filter,
+ manager, NULL);
+ }
+
+ if (manager->priv->bus_proxy == NULL) {
+ manager->priv->bus_proxy =
+ dbus_g_proxy_new_for_name_owner (manager->priv->dbus_connection,
+ DBUS_SERVICE_DBUS,
+ DBUS_PATH_DBUS,
+ DBUS_INTERFACE_DBUS,
+ &connection_error);
+
+ if (manager->priv->bus_proxy == NULL) {
+ g_propagate_error (error, connection_error);
+ is_connected = FALSE;
+ goto out;
+ }
+
+ dbus_g_proxy_add_signal (manager->priv->bus_proxy,
+ "NameOwnerChanged",
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_INVALID);
+
+ dbus_g_proxy_connect_signal (manager->priv->bus_proxy,
+ "NameOwnerChanged",
+ G_CALLBACK (gsm_consolekit_on_name_owner_changed),
+ manager, NULL);
+ }
+
+ if (manager->priv->ck_proxy == NULL) {
+ manager->priv->ck_proxy =
+ dbus_g_proxy_new_for_name_owner (manager->priv->dbus_connection,
+ "org.freedesktop.ConsoleKit",
+ "/org/freedesktop/ConsoleKit/Manager",
+ "org.freedesktop.ConsoleKit.Manager",
+ &connection_error);
+
+ if (manager->priv->ck_proxy == NULL) {
+ g_propagate_error (error, connection_error);
+ is_connected = FALSE;
+ goto out;
+ }
+ }
+
+ is_connected = TRUE;
+
+ out:
+ if (manager->priv->is_connected != is_connected) {
+ manager->priv->is_connected = is_connected;
+ g_object_notify (G_OBJECT (manager), "is-connected");
+ }
+
+ if (!is_connected) {
+ if (manager->priv->dbus_connection == NULL) {
+ if (manager->priv->bus_proxy != NULL) {
+ g_object_unref (manager->priv->bus_proxy);
+ manager->priv->bus_proxy = NULL;
+ }
+
+ if (manager->priv->ck_proxy != NULL) {
+ g_object_unref (manager->priv->ck_proxy);
+ manager->priv->ck_proxy = NULL;
+ }
+ } else if (manager->priv->bus_proxy == NULL) {
+ if (manager->priv->ck_proxy != NULL) {
+ g_object_unref (manager->priv->ck_proxy);
+ manager->priv->ck_proxy = NULL;
+ }
+ }
+ }
+
+ return is_connected;
+}
+
+static void
+gsm_consolekit_on_name_owner_changed (DBusGProxy *bus_proxy,
+ const char *name,
+ const char *prev_owner,
+ const char *new_owner,
+ GsmConsolekit *manager)
+{
+ if (name != NULL && strcmp (name, "org.freedesktop.ConsoleKit") != 0) {
+ return;
+ }
+
+ if (manager->priv->ck_proxy != NULL) {
+ g_object_unref (manager->priv->ck_proxy);
+ manager->priv->ck_proxy = NULL;
+ }
+
+ gsm_consolekit_ensure_ck_connection (manager, NULL);
+}
+
+static void
+gsm_consolekit_init (GsmConsolekit *manager)
+{
+ GError *error;
+
+ manager->priv = GSM_CONSOLEKIT_GET_PRIVATE (manager);
+
+ error = NULL;
+
+ if (!gsm_consolekit_ensure_ck_connection (manager, &error)) {
+ g_warning ("Could not connect to ConsoleKit: %s",
+ error->message);
+ g_error_free (error);
+ }
+}
+
+static void
+gsm_consolekit_free_dbus (GsmConsolekit *manager)
+{
+ if (manager->priv->bus_proxy != NULL) {
+ g_object_unref (manager->priv->bus_proxy);
+ manager->priv->bus_proxy = NULL;
+ }
+
+ if (manager->priv->ck_proxy != NULL) {
+ g_object_unref (manager->priv->ck_proxy);
+ manager->priv->ck_proxy = NULL;
+ }
+
+ if (manager->priv->dbus_connection != NULL) {
+ DBusConnection *connection;
+ connection = dbus_g_connection_get_connection (manager->priv->dbus_connection);
+ dbus_connection_remove_filter (connection,
+ gsm_consolekit_dbus_filter,
+ manager);
+
+ dbus_g_connection_unref (manager->priv->dbus_connection);
+ manager->priv->dbus_connection = NULL;
+ }
+}
+
+static void
+gsm_consolekit_finalize (GObject *object)
+{
+ GsmConsolekit *manager;
+ GObjectClass *parent_class;
+
+ manager = GSM_CONSOLEKIT (object);
+
+ parent_class = G_OBJECT_CLASS (gsm_consolekit_parent_class);
+
+ gsm_consolekit_free_dbus (manager);
+
+ if (parent_class->finalize != NULL) {
+ parent_class->finalize (object);
+ }
+}
+
+GQuark
+gsm_consolekit_error_quark (void)
+{
+ static GQuark error_quark = 0;
+
+ if (error_quark == 0) {
+ error_quark = g_quark_from_static_string ("gsm-consolekit-error");
+ }
+
+ return error_quark;
+}
+
+GsmConsolekit *
+gsm_consolekit_new (void)
+{
+ GsmConsolekit *manager;
+
+ manager = g_object_new (GSM_TYPE_CONSOLEKIT, NULL);
+
+ return manager;
+}
+
+static void
+emit_restart_complete (GsmConsolekit *manager,
+ GError *error)
+{
+ GError *call_error;
+
+ call_error = NULL;
+
+ if (error != NULL) {
+ call_error = g_error_new_literal (GSM_CONSOLEKIT_ERROR,
+ GSM_CONSOLEKIT_ERROR_RESTARTING,
+ error->message);
+ }
+
+ g_signal_emit (G_OBJECT (manager),
+ signals [REQUEST_COMPLETED],
+ 0, call_error);
+
+ if (call_error != NULL) {
+ g_error_free (call_error);
+ }
+}
+
+static void
+emit_stop_complete (GsmConsolekit *manager,
+ GError *error)
+{
+ GError *call_error;
+
+ call_error = NULL;
+
+ if (error != NULL) {
+ call_error = g_error_new_literal (GSM_CONSOLEKIT_ERROR,
+ GSM_CONSOLEKIT_ERROR_STOPPING,
+ error->message);
+ }
+
+ g_signal_emit (G_OBJECT (manager),
+ signals [REQUEST_COMPLETED],
+ 0, call_error);
+
+ if (call_error != NULL) {
+ g_error_free (call_error);
+ }
+}
+
+void
+gsm_consolekit_attempt_restart (GsmConsolekit *manager)
+{
+ gboolean res;
+ GError *error;
+
+ error = NULL;
+
+ if (!gsm_consolekit_ensure_ck_connection (manager, &error)) {
+ g_warning ("Could not connect to ConsoleKit: %s",
+ error->message);
+ emit_restart_complete (manager, error);
+ g_error_free (error);
+ return;
+ }
+
+ res = dbus_g_proxy_call_with_timeout (manager->priv->ck_proxy,
+ "Restart",
+ INT_MAX,
+ &error,
+ G_TYPE_INVALID,
+ G_TYPE_INVALID);
+
+ if (!res) {
+ g_warning ("Unable to restart system: %s", error->message);
+ emit_restart_complete (manager, error);
+ g_error_free (error);
+ } else {
+ emit_restart_complete (manager, NULL);
+ }
+}
+
+void
+gsm_consolekit_attempt_stop (GsmConsolekit *manager)
+{
+ gboolean res;
+ GError *error;
+
+ error = NULL;
+
+ if (!gsm_consolekit_ensure_ck_connection (manager, &error)) {
+ g_warning ("Could not connect to ConsoleKit: %s",
+ error->message);
+ emit_stop_complete (manager, error);
+ g_error_free (error);
+ return;
+ }
+
+ res = dbus_g_proxy_call_with_timeout (manager->priv->ck_proxy,
+ "Stop",
+ INT_MAX,
+ &error,
+ G_TYPE_INVALID,
+ G_TYPE_INVALID);
+
+ if (!res) {
+ g_warning ("Unable to stop system: %s", error->message);
+ emit_stop_complete (manager, error);
+ g_error_free (error);
+ } else {
+ emit_stop_complete (manager, NULL);
+ }
+}
+
+static gboolean
+get_current_session_id (DBusConnection *connection,
+ char **session_id)
+{
+ DBusError local_error;
+ DBusMessage *message;
+ DBusMessage *reply;
+ gboolean ret;
+ DBusMessageIter iter;
+ const char *value;
+
+ ret = FALSE;
+ reply = NULL;
+
+ dbus_error_init (&local_error);
+ message = dbus_message_new_method_call (CK_NAME,
+ CK_MANAGER_PATH,
+ CK_MANAGER_INTERFACE,
+ "GetCurrentSession");
+ if (message == NULL) {
+ goto out;
+ }
+
+ dbus_error_init (&local_error);
+ reply = dbus_connection_send_with_reply_and_block (connection,
+ message,
+ -1,
+ &local_error);
+ if (reply == NULL) {
+ if (dbus_error_is_set (&local_error)) {
+ g_warning ("Unable to determine session: %s", local_error.message);
+ dbus_error_free (&local_error);
+ goto out;
+ }
+ }
+
+ dbus_message_iter_init (reply, &iter);
+ dbus_message_iter_get_basic (&iter, &value);
+ if (session_id != NULL) {
+ *session_id = g_strdup (value);
+ }
+
+ ret = TRUE;
+ out:
+ if (message != NULL) {
+ dbus_message_unref (message);
+ }
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
+
+ return ret;
+}
+
+static gboolean
+get_seat_id_for_session (DBusConnection *connection,
+ const char *session_id,
+ char **seat_id)
+{
+ DBusError local_error;
+ DBusMessage *message;
+ DBusMessage *reply;
+ gboolean ret;
+ DBusMessageIter iter;
+ const char *value;
+
+ ret = FALSE;
+ reply = NULL;
+
+ dbus_error_init (&local_error);
+ message = dbus_message_new_method_call (CK_NAME,
+ session_id,
+ CK_SESSION_INTERFACE,
+ "GetSeatId");
+ if (message == NULL) {
+ goto out;
+ }
+
+ dbus_error_init (&local_error);
+ reply = dbus_connection_send_with_reply_and_block (connection,
+ message,
+ -1,
+ &local_error);
+ if (reply == NULL) {
+ if (dbus_error_is_set (&local_error)) {
+ g_warning ("Unable to determine seat: %s", local_error.message);
+ dbus_error_free (&local_error);
+ goto out;
+ }
+ }
+
+ dbus_message_iter_init (reply, &iter);
+ dbus_message_iter_get_basic (&iter, &value);
+ if (seat_id != NULL) {
+ *seat_id = g_strdup (value);
+ }
+
+ ret = TRUE;
+ out:
+ if (message != NULL) {
+ dbus_message_unref (message);
+ }
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
+
+ return ret;
+}
+
+static char *
+get_current_seat_id (DBusConnection *connection)
+{
+ gboolean res;
+ char *session_id;
+ char *seat_id;
+
+ session_id = NULL;
+ seat_id = NULL;
+
+ res = get_current_session_id (connection, &session_id);
+ if (res) {
+ res = get_seat_id_for_session (connection, session_id, &seat_id);
+ }
+ g_free (session_id);
+
+ return seat_id;
+}
+
+void
+gsm_consolekit_set_session_idle (GsmConsolekit *manager,
+ gboolean is_idle)
+{
+ gboolean res;
+ GError *error;
+ char *session_id;
+ DBusMessage *message;
+ DBusMessage *reply;
+ DBusError dbus_error;
+ DBusMessageIter iter;
+
+ error = NULL;
+
+ if (!gsm_consolekit_ensure_ck_connection (manager, &error)) {
+ g_warning ("Could not connect to ConsoleKit: %s",
+ error->message);
+ g_error_free (error);
+ return;
+ }
+
+ session_id = NULL;
+ res = get_current_session_id (dbus_g_connection_get_connection (manager->priv->dbus_connection),
+ &session_id);
+ if (!res) {
+ goto out;
+ }
+
+
+ g_debug ("Updating ConsoleKit idle status: %d", is_idle);
+ message = dbus_message_new_method_call (CK_NAME,
+ session_id,
+ CK_SESSION_INTERFACE,
+ "SetIdleHint");
+ if (message == NULL) {
+ g_debug ("Couldn't allocate the D-Bus message");
+ return;
+ }
+
+ dbus_message_iter_init_append (message, &iter);
+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_BOOLEAN, &is_idle);
+
+ /* FIXME: use async? */
+ dbus_error_init (&dbus_error);
+ reply = dbus_connection_send_with_reply_and_block (dbus_g_connection_get_connection (manager->priv->dbus_connection),
+ message,
+ -1,
+ &dbus_error);
+ dbus_message_unref (message);
+
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
+
+ if (dbus_error_is_set (&dbus_error)) {
+ g_debug ("%s raised:\n %s\n\n", dbus_error.name, dbus_error.message);
+ dbus_error_free (&dbus_error);
+ }
+
+out:
+ g_free (session_id);
+}
+
+static gboolean
+seat_can_activate_sessions (DBusConnection *connection,
+ const char *seat_id)
+{
+ DBusError local_error;
+ DBusMessage *message;
+ DBusMessage *reply;
+ DBusMessageIter iter;
+ gboolean can_activate;
+
+ can_activate = FALSE;
+ reply = NULL;
+
+ dbus_error_init (&local_error);
+ message = dbus_message_new_method_call (CK_NAME,
+ seat_id,
+ CK_SEAT_INTERFACE,
+ "CanActivateSessions");
+ if (message == NULL) {
+ goto out;
+ }
+
+ dbus_error_init (&local_error);
+ reply = dbus_connection_send_with_reply_and_block (connection,
+ message,
+ -1,
+ &local_error);
+ if (reply == NULL) {
+ if (dbus_error_is_set (&local_error)) {
+ g_warning ("Unable to activate session: %s", local_error.message);
+ dbus_error_free (&local_error);
+ goto out;
+ }
+ }
+
+ dbus_message_iter_init (reply, &iter);
+ dbus_message_iter_get_basic (&iter, &can_activate);
+
+ out:
+ if (message != NULL) {
+ dbus_message_unref (message);
+ }
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
+
+ return can_activate;
+}
+
+gboolean
+gsm_consolekit_can_switch_user (GsmConsolekit *manager)
+{
+ GError *error;
+ char *seat_id;
+ gboolean ret;
+
+ error = NULL;
+
+ if (!gsm_consolekit_ensure_ck_connection (manager, &error)) {
+ g_warning ("Could not connect to ConsoleKit: %s",
+ error->message);
+ g_error_free (error);
+ return FALSE;
+ }
+
+ seat_id = get_current_seat_id (dbus_g_connection_get_connection (manager->priv->dbus_connection));
+ if (seat_id == NULL || seat_id[0] == '\0') {
+ g_debug ("seat id is not set; can't switch sessions");
+ return FALSE;
+ }
+
+ ret = seat_can_activate_sessions (dbus_g_connection_get_connection (manager->priv->dbus_connection),
+ seat_id);
+ g_free (seat_id);
+
+ return ret;
+}
+
+gboolean
+gsm_consolekit_get_restart_privileges (GsmConsolekit *manager)
+{
+ g_signal_emit (G_OBJECT (manager),
+ signals [PRIVILEGES_COMPLETED],
+ 0, TRUE, TRUE, NULL);
+
+ return TRUE;
+}
+
+gboolean
+gsm_consolekit_get_stop_privileges (GsmConsolekit *manager)
+{
+ g_signal_emit (G_OBJECT (manager),
+ signals [PRIVILEGES_COMPLETED],
+ 0, TRUE, TRUE, NULL);
+
+ return TRUE;
+}
+
+gboolean
+gsm_consolekit_can_restart (GsmConsolekit *manager)
+{
+ gboolean res;
+ gboolean can_restart;
+ GError *error;
+
+ error = NULL;
+
+ if (!gsm_consolekit_ensure_ck_connection (manager, &error)) {
+ g_warning ("Could not connect to ConsoleKit: %s",
+ error->message);
+ g_error_free (error);
+ return FALSE;
+ }
+
+ res = dbus_g_proxy_call_with_timeout (manager->priv->ck_proxy,
+ "CanRestart",
+ INT_MAX,
+ &error,
+ G_TYPE_INVALID,
+ G_TYPE_BOOLEAN, &can_restart,
+ G_TYPE_INVALID);
+
+ return can_restart;
+}
+
+gboolean
+gsm_consolekit_can_stop (GsmConsolekit *manager)
+{
+ gboolean res;
+ gboolean can_stop;
+ GError *error;
+
+ error = NULL;
+
+ if (!gsm_consolekit_ensure_ck_connection (manager, &error)) {
+ g_warning ("Could not connect to ConsoleKit: %s",
+ error->message);
+ g_error_free (error);
+ return FALSE;
+ }
+
+ res = dbus_g_proxy_call_with_timeout (manager->priv->ck_proxy,
+ "CanStop",
+ INT_MAX,
+ &error,
+ G_TYPE_INVALID,
+ G_TYPE_BOOLEAN, &can_stop,
+ G_TYPE_INVALID);
+
+ return can_stop;
+}
+
+gchar *
+gsm_consolekit_get_current_session_type (GsmConsolekit *manager)
+{
+ GError *gerror;
+ DBusConnection *connection;
+ DBusError error;
+ DBusMessage *message = NULL;
+ DBusMessage *reply = NULL;
+ gchar *session_id;
+ gchar *ret;
+ DBusMessageIter iter;
+ const char *value;
+
+ session_id = NULL;
+ ret = NULL;
+ gerror = NULL;
+
+ if (!gsm_consolekit_ensure_ck_connection (manager, &gerror)) {
+ g_warning ("Could not connect to ConsoleKit: %s",
+ gerror->message);
+ g_error_free (gerror);
+ goto out;
+ }
+
+ connection = dbus_g_connection_get_connection (manager->priv->dbus_connection);
+ if (!get_current_session_id (connection, &session_id)) {
+ goto out;
+ }
+
+ dbus_error_init (&error);
+ message = dbus_message_new_method_call (CK_NAME,
+ session_id,
+ CK_SESSION_INTERFACE,
+ "GetSessionType");
+ if (message == NULL) {
+ goto out;
+ }
+
+ reply = dbus_connection_send_with_reply_and_block (connection,
+ message,
+ -1,
+ &error);
+
+ if (reply == NULL) {
+ if (dbus_error_is_set (&error)) {
+ g_warning ("Unable to determine session type: %s", error.message);
+ dbus_error_free (&error);
+ }
+ goto out;
+ }
+
+ dbus_message_iter_init (reply, &iter);
+ dbus_message_iter_get_basic (&iter, &value);
+ ret = g_strdup (value);
+
+out:
+ if (message != NULL) {
+ dbus_message_unref (message);
+ }
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
+ g_free (session_id);
+
+ return ret;
+}
+
+
+GsmConsolekit *
+gsm_get_consolekit (void)
+{
+ static GsmConsolekit *manager = NULL;
+
+ if (manager == NULL) {
+ manager = gsm_consolekit_new ();
+ }
+
+ return g_object_ref (manager);
+}
diff --git a/mate-session/gsm-consolekit.h b/mate-session/gsm-consolekit.h
new file mode 100644
index 0000000..203ec40
--- /dev/null
+++ b/mate-session/gsm-consolekit.h
@@ -0,0 +1,105 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * Authors:
+ * Jon McCann <[email protected]>
+ */
+
+#ifndef __GSM_CONSOLEKIT_H__
+#define __GSM_CONSOLEKIT_H__
+
+#include <glib.h>
+#include <glib-object.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GSM_TYPE_CONSOLEKIT (gsm_consolekit_get_type ())
+#define GSM_CONSOLEKIT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSM_TYPE_CONSOLEKIT, GsmConsolekit))
+#define GSM_CONSOLEKIT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSM_TYPE_CONSOLEKIT, GsmConsolekitClass))
+#define GSM_IS_CONSOLEKIT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSM_TYPE_CONSOLEKIT))
+#define GSM_IS_CONSOLEKIT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSM_TYPE_CONSOLEKIT))
+#define GSM_CONSOLEKIT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GSM_TYPE_CONSOLEKIT, GsmConsolekitClass))
+#define GSM_CONSOLEKIT_ERROR (gsm_consolekit_error_quark ())
+
+typedef struct _GsmConsolekit GsmConsolekit;
+typedef struct _GsmConsolekitClass GsmConsolekitClass;
+typedef struct _GsmConsolekitPrivate GsmConsolekitPrivate;
+typedef enum _GsmConsolekitError GsmConsolekitError;
+
+struct _GsmConsolekit
+{
+ GObject parent;
+
+ GsmConsolekitPrivate *priv;
+};
+
+struct _GsmConsolekitClass
+{
+ GObjectClass parent_class;
+
+ void (* request_completed) (GsmConsolekit *manager,
+ GError *error);
+
+ void (* privileges_completed) (GsmConsolekit *manager,
+ gboolean success,
+ gboolean ask_later,
+ GError *error);
+};
+
+enum _GsmConsolekitError {
+ GSM_CONSOLEKIT_ERROR_RESTARTING = 0,
+ GSM_CONSOLEKIT_ERROR_STOPPING
+};
+
+#define GSM_CONSOLEKIT_SESSION_TYPE_LOGIN_WINDOW "LoginWindow"
+
+GType gsm_consolekit_get_type (void);
+
+GQuark gsm_consolekit_error_quark (void);
+
+GsmConsolekit *gsm_consolekit_new (void) G_GNUC_MALLOC;
+
+gboolean gsm_consolekit_can_switch_user (GsmConsolekit *manager);
+
+gboolean gsm_consolekit_get_restart_privileges (GsmConsolekit *manager);
+
+gboolean gsm_consolekit_get_stop_privileges (GsmConsolekit *manager);
+
+gboolean gsm_consolekit_can_stop (GsmConsolekit *manager);
+
+gboolean gsm_consolekit_can_restart (GsmConsolekit *manager);
+
+void gsm_consolekit_attempt_stop (GsmConsolekit *manager);
+
+void gsm_consolekit_attempt_restart (GsmConsolekit *manager);
+
+void gsm_consolekit_set_session_idle (GsmConsolekit *manager,
+ gboolean is_idle);
+
+gchar *gsm_consolekit_get_current_session_type (GsmConsolekit *manager);
+
+GsmConsolekit *gsm_get_consolekit (void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSM_CONSOLEKIT_H__ */
diff --git a/mate-session/gsm-dbus-client.c b/mate-session/gsm-dbus-client.c
new file mode 100644
index 0000000..65b393c
--- /dev/null
+++ b/mate-session/gsm-dbus-client.c
@@ -0,0 +1,700 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <dbus/dbus.h>
+#include <dbus/dbus-glib.h>
+#include <dbus/dbus-glib-lowlevel.h>
+
+#include "gsm-dbus-client.h"
+#include "gsm-marshal.h"
+
+#include "gsm-manager.h"
+
+#define GSM_DBUS_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_DBUS_CLIENT, GsmDBusClientPrivate))
+
+#define IS_STRING_EMPTY(x) ((x)==NULL||(x)[0]=='\0')
+
+
+#define SM_DBUS_NAME "org.mate.SessionManager"
+#define SM_DBUS_CLIENT_PRIVATE_INTERFACE "org.mate.SessionManager.ClientPrivate"
+
+struct GsmDBusClientPrivate
+{
+ char *bus_name;
+ GPid caller_pid;
+ GsmClientRestartStyle restart_style_hint;
+ DBusConnection *connection;
+};
+
+enum {
+ PROP_0,
+ PROP_BUS_NAME
+};
+
+G_DEFINE_TYPE (GsmDBusClient, gsm_dbus_client, GSM_TYPE_CLIENT)
+
+GQuark
+gsm_dbus_client_error_quark (void)
+{
+ static GQuark ret = 0;
+ if (ret == 0) {
+ ret = g_quark_from_static_string ("gsm_dbus_client_error");
+ }
+
+ return ret;
+}
+
+#define ENUM_ENTRY(NAME, DESC) { NAME, "" #NAME "", DESC }
+
+GType
+gsm_dbus_client_error_get_type (void)
+{
+ static GType etype = 0;
+
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ ENUM_ENTRY (GSM_DBUS_CLIENT_ERROR_GENERAL, "GeneralError"),
+ ENUM_ENTRY (GSM_DBUS_CLIENT_ERROR_NOT_CLIENT, "NotClient"),
+ { 0, 0, 0 }
+ };
+
+ g_assert (GSM_DBUS_CLIENT_NUM_ERRORS == G_N_ELEMENTS (values) - 1);
+
+ etype = g_enum_register_static ("GsmDbusClientError", values);
+ }
+
+ return etype;
+}
+
+static gboolean
+setup_connection (GsmDBusClient *client)
+{
+ DBusError error;
+
+ dbus_error_init (&error);
+
+ if (client->priv->connection == NULL) {
+ client->priv->connection = dbus_bus_get (DBUS_BUS_SESSION, &error);
+ if (client->priv->connection == NULL) {
+ if (dbus_error_is_set (&error)) {
+ g_debug ("GsmDbusClient: Couldn't connect to session bus: %s",
+ error.message);
+ dbus_error_free (&error);
+ }
+ return FALSE;
+ }
+
+ dbus_connection_setup_with_g_main (client->priv->connection, NULL);
+ dbus_connection_set_exit_on_disconnect (client->priv->connection, FALSE);
+ }
+
+ return TRUE;
+}
+
+static void
+raise_error (DBusConnection *connection,
+ DBusMessage *in_reply_to,
+ const char *error_name,
+ char *format, ...)
+{
+ char buf[512];
+ DBusMessage *reply;
+
+ va_list args;
+ va_start (args, format);
+ vsnprintf (buf, sizeof (buf), format, args);
+ va_end (args);
+
+ reply = dbus_message_new_error (in_reply_to, error_name, buf);
+ if (reply == NULL) {
+ g_error ("No memory");
+ }
+ if (! dbus_connection_send (connection, reply, NULL)) {
+ g_error ("No memory");
+ }
+
+ dbus_message_unref (reply);
+}
+
+static void
+handle_end_session_response (GsmDBusClient *client,
+ DBusMessage *message)
+{
+ const char *sender;
+ DBusMessage *reply;
+ DBusError error;
+ dbus_bool_t is_ok;
+ const char *reason;
+
+ dbus_error_init (&error);
+ if (! dbus_message_get_args (message, &error,
+ DBUS_TYPE_BOOLEAN, &is_ok,
+ DBUS_TYPE_STRING, &reason,
+ DBUS_TYPE_INVALID)) {
+ if (dbus_error_is_set (&error)) {
+ g_warning ("Invalid method call: %s", error.message);
+ dbus_error_free (&error);
+ }
+ raise_error (client->priv->connection,
+ message,
+ DBUS_ERROR_FAILED,
+ "There is a syntax error in the invocation of the method EndSessionResponse");
+ return;
+ }
+
+ g_debug ("GsmDBusClient: got EndSessionResponse is-ok:%d reason=%s", is_ok, reason);
+
+ /* make sure it is from our client */
+ sender = dbus_message_get_sender (message);
+ if (sender == NULL
+ || IS_STRING_EMPTY (client->priv->bus_name)
+ || strcmp (sender, client->priv->bus_name) != 0) {
+
+ raise_error (client->priv->connection,
+ message,
+ DBUS_ERROR_FAILED,
+ "Caller not recognized as the client");
+ return;
+ }
+
+ reply = dbus_message_new_method_return (message);
+ if (reply == NULL) {
+ g_error ("No memory");
+ }
+
+ gsm_client_end_session_response (GSM_CLIENT (client),
+ is_ok, FALSE, FALSE, reason);
+
+
+ if (! dbus_connection_send (client->priv->connection, reply, NULL)) {
+ g_error ("No memory");
+ }
+
+ dbus_message_unref (reply);
+}
+
+static DBusHandlerResult
+client_dbus_filter_function (DBusConnection *connection,
+ DBusMessage *message,
+ void *user_data)
+{
+ GsmDBusClient *client = GSM_DBUS_CLIENT (user_data);
+ const char *path;
+
+ g_return_val_if_fail (connection != NULL, DBUS_HANDLER_RESULT_NOT_YET_HANDLED);
+ g_return_val_if_fail (message != NULL, DBUS_HANDLER_RESULT_NOT_YET_HANDLED);
+
+ path = dbus_message_get_path (message);
+
+ g_debug ("GsmDBusClient: obj_path=%s interface=%s method=%s",
+ dbus_message_get_path (message),
+ dbus_message_get_interface (message),
+ dbus_message_get_member (message));
+
+ if (dbus_message_is_method_call (message, SM_DBUS_CLIENT_PRIVATE_INTERFACE, "EndSessionResponse")) {
+ g_assert (gsm_client_peek_id (GSM_CLIENT (client)) != NULL);
+
+ if (path != NULL && strcmp (path, gsm_client_peek_id (GSM_CLIENT (client))) != 0) {
+ /* Different object path */
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ }
+ handle_end_session_response (client, message);
+ return DBUS_HANDLER_RESULT_HANDLED;
+ }
+
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+}
+
+static GObject *
+gsm_dbus_client_constructor (GType type,
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
+{
+ GsmDBusClient *client;
+
+ client = GSM_DBUS_CLIENT (G_OBJECT_CLASS (gsm_dbus_client_parent_class)->constructor (type,
+ n_construct_properties,
+ construct_properties));
+
+ if (! setup_connection (client)) {
+ g_object_unref (client);
+ return NULL;
+ }
+
+ /* Object path is already registered by base class */
+ dbus_connection_add_filter (client->priv->connection, client_dbus_filter_function, client, NULL);
+
+ return G_OBJECT (client);
+}
+
+static void
+gsm_dbus_client_init (GsmDBusClient *client)
+{
+ client->priv = GSM_DBUS_CLIENT_GET_PRIVATE (client);
+}
+
+/* adapted from PolicyKit */
+static gboolean
+get_caller_info (GsmDBusClient *client,
+ const char *sender,
+ uid_t *calling_uid,
+ pid_t *calling_pid)
+{
+ gboolean res;
+ GError *error;
+ DBusGConnection *connection;
+ DBusGProxy *bus_proxy;
+
+ res = FALSE;
+ bus_proxy = NULL;
+
+ if (sender == NULL) {
+ goto out;
+ }
+
+ error = NULL;
+ connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+ if (connection == NULL) {
+ if (error != NULL) {
+ g_warning ("error getting session bus: %s", error->message);
+ g_error_free (error);
+ }
+ goto out;
+ }
+
+ bus_proxy = dbus_g_proxy_new_for_name (connection,
+ DBUS_SERVICE_DBUS,
+ DBUS_PATH_DBUS,
+ DBUS_INTERFACE_DBUS);
+
+ error = NULL;
+ if (! dbus_g_proxy_call (bus_proxy, "GetConnectionUnixUser", &error,
+ G_TYPE_STRING, sender,
+ G_TYPE_INVALID,
+ G_TYPE_UINT, calling_uid,
+ G_TYPE_INVALID)) {
+ g_debug ("GetConnectionUnixUser() failed: %s", error->message);
+ g_error_free (error);
+ goto out;
+ }
+
+ error = NULL;
+ if (! dbus_g_proxy_call (bus_proxy, "GetConnectionUnixProcessID", &error,
+ G_TYPE_STRING, sender,
+ G_TYPE_INVALID,
+ G_TYPE_UINT, calling_pid,
+ G_TYPE_INVALID)) {
+ g_debug ("GetConnectionUnixProcessID() failed: %s", error->message);
+ g_error_free (error);
+ goto out;
+ }
+
+ res = TRUE;
+
+ g_debug ("uid = %d", *calling_uid);
+ g_debug ("pid = %d", *calling_pid);
+
+out:
+ if (bus_proxy != NULL) {
+ g_object_unref (bus_proxy);
+ }
+ return res;
+}
+
+static void
+gsm_dbus_client_set_bus_name (GsmDBusClient *client,
+ const char *bus_name)
+{
+ uid_t uid;
+ pid_t pid;
+
+ g_return_if_fail (GSM_IS_DBUS_CLIENT (client));
+
+ g_free (client->priv->bus_name);
+
+ client->priv->bus_name = g_strdup (bus_name);
+ g_object_notify (G_OBJECT (client), "bus-name");
+
+ if (client->priv->bus_name != NULL) {
+ gboolean res;
+
+ res = get_caller_info (client, bus_name, &uid, &pid);
+ if (! res) {
+ pid = 0;
+ }
+ } else {
+ pid = 0;
+ }
+ client->priv->caller_pid = pid;
+}
+
+const char *
+gsm_dbus_client_get_bus_name (GsmDBusClient *client)
+{
+ g_return_val_if_fail (GSM_IS_DBUS_CLIENT (client), NULL);
+
+ return client->priv->bus_name;
+}
+
+static void
+gsm_dbus_client_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GsmDBusClient *self;
+
+ self = GSM_DBUS_CLIENT (object);
+
+ switch (prop_id) {
+ case PROP_BUS_NAME:
+ gsm_dbus_client_set_bus_name (self, g_value_get_string (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_dbus_client_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GsmDBusClient *self;
+
+ self = GSM_DBUS_CLIENT (object);
+
+ switch (prop_id) {
+ case PROP_BUS_NAME:
+ g_value_set_string (value, self->priv->bus_name);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_dbus_client_finalize (GObject *object)
+{
+ GsmDBusClient *client = (GsmDBusClient *) object;
+
+ g_free (client->priv->bus_name);
+
+ G_OBJECT_CLASS (gsm_dbus_client_parent_class)->finalize (object);
+}
+
+static GKeyFile *
+dbus_client_save (GsmClient *client,
+ GError **error)
+{
+ g_debug ("GsmDBusClient: saving client with id %s",
+ gsm_client_peek_id (client));
+
+ /* FIXME: We still don't support client saving for D-Bus
+ * session clients */
+
+ return NULL;
+}
+
+static gboolean
+dbus_client_stop (GsmClient *client,
+ GError **error)
+{
+ GsmDBusClient *dbus_client = (GsmDBusClient *) client;
+ DBusMessage *message;
+ gboolean ret;
+
+ ret = FALSE;
+
+ /* unicast the signal to only the registered bus name */
+ message = dbus_message_new_signal (gsm_client_peek_id (client),
+ SM_DBUS_CLIENT_PRIVATE_INTERFACE,
+ "Stop");
+ if (message == NULL) {
+ goto out;
+ }
+ if (!dbus_message_set_destination (message, dbus_client->priv->bus_name)) {
+ goto out;
+ }
+
+ if (!dbus_connection_send (dbus_client->priv->connection, message, NULL)) {
+ goto out;
+ }
+
+ ret = TRUE;
+
+ out:
+ if (message != NULL) {
+ dbus_message_unref (message);
+ }
+
+ return ret;
+}
+
+static char *
+dbus_client_get_app_name (GsmClient *client)
+{
+ /* Always use app-id instead */
+ return NULL;
+}
+
+static GsmClientRestartStyle
+dbus_client_get_restart_style_hint (GsmClient *client)
+{
+ return (GSM_DBUS_CLIENT (client)->priv->restart_style_hint);
+}
+
+static guint
+dbus_client_get_unix_process_id (GsmClient *client)
+{
+ return (GSM_DBUS_CLIENT (client)->priv->caller_pid);
+}
+
+static gboolean
+dbus_client_query_end_session (GsmClient *client,
+ guint flags,
+ GError **error)
+{
+ GsmDBusClient *dbus_client = (GsmDBusClient *) client;
+ DBusMessage *message;
+ DBusMessageIter iter;
+ gboolean ret;
+
+ ret = FALSE;
+
+ if (dbus_client->priv->bus_name == NULL) {
+ g_set_error (error,
+ GSM_CLIENT_ERROR,
+ GSM_CLIENT_ERROR_NOT_REGISTERED,
+ "Client is not registered");
+ return FALSE;
+ }
+
+ g_debug ("GsmDBusClient: sending QueryEndSession signal to %s", dbus_client->priv->bus_name);
+
+ /* unicast the signal to only the registered bus name */
+ message = dbus_message_new_signal (gsm_client_peek_id (client),
+ SM_DBUS_CLIENT_PRIVATE_INTERFACE,
+ "QueryEndSession");
+ if (message == NULL) {
+ g_set_error (error,
+ GSM_CLIENT_ERROR,
+ GSM_CLIENT_ERROR_NOT_REGISTERED,
+ "Unable to send QueryEndSession message");
+ goto out;
+ }
+ if (!dbus_message_set_destination (message, dbus_client->priv->bus_name)) {
+ g_set_error (error,
+ GSM_CLIENT_ERROR,
+ GSM_CLIENT_ERROR_NOT_REGISTERED,
+ "Unable to send QueryEndSession message");
+ goto out;
+ }
+
+ dbus_message_iter_init_append (message, &iter);
+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_UINT32, &flags);
+
+ if (!dbus_connection_send (dbus_client->priv->connection, message, NULL)) {
+ g_set_error (error,
+ GSM_CLIENT_ERROR,
+ GSM_CLIENT_ERROR_NOT_REGISTERED,
+ "Unable to send QueryEndSession message");
+ goto out;
+ }
+
+ ret = TRUE;
+
+ out:
+ if (message != NULL) {
+ dbus_message_unref (message);
+ }
+
+ return ret;
+}
+
+static gboolean
+dbus_client_end_session (GsmClient *client,
+ guint flags,
+ GError **error)
+{
+ GsmDBusClient *dbus_client = (GsmDBusClient *) client;
+ DBusMessage *message;
+ DBusMessageIter iter;
+ gboolean ret;
+
+ ret = FALSE;
+
+ /* unicast the signal to only the registered bus name */
+ message = dbus_message_new_signal (gsm_client_peek_id (client),
+ SM_DBUS_CLIENT_PRIVATE_INTERFACE,
+ "EndSession");
+ if (message == NULL) {
+ g_set_error (error,
+ GSM_CLIENT_ERROR,
+ GSM_CLIENT_ERROR_NOT_REGISTERED,
+ "Unable to send EndSession message");
+ goto out;
+ }
+ if (!dbus_message_set_destination (message, dbus_client->priv->bus_name)) {
+ g_set_error (error,
+ GSM_CLIENT_ERROR,
+ GSM_CLIENT_ERROR_NOT_REGISTERED,
+ "Unable to send EndSession message");
+ goto out;
+ }
+
+ dbus_message_iter_init_append (message, &iter);
+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_UINT32, &flags);
+
+ if (!dbus_connection_send (dbus_client->priv->connection, message, NULL)) {
+ g_set_error (error,
+ GSM_CLIENT_ERROR,
+ GSM_CLIENT_ERROR_NOT_REGISTERED,
+ "Unable to send EndSession message");
+ goto out;
+ }
+
+ ret = TRUE;
+
+ out:
+ if (message != NULL) {
+ dbus_message_unref (message);
+ }
+ return ret;
+}
+
+static gboolean
+dbus_client_cancel_end_session (GsmClient *client,
+ GError **error)
+{
+ GsmDBusClient *dbus_client = (GsmDBusClient *) client;
+ DBusMessage *message;
+ gboolean ret;
+
+ /* unicast the signal to only the registered bus name */
+ message = dbus_message_new_signal (gsm_client_peek_id (client),
+ SM_DBUS_CLIENT_PRIVATE_INTERFACE,
+ "CancelEndSession");
+ if (message == NULL) {
+ g_set_error (error,
+ GSM_CLIENT_ERROR,
+ GSM_CLIENT_ERROR_NOT_REGISTERED,
+ "Unable to send CancelEndSession message");
+ goto out;
+ }
+ if (!dbus_message_set_destination (message, dbus_client->priv->bus_name)) {
+ g_set_error (error,
+ GSM_CLIENT_ERROR,
+ GSM_CLIENT_ERROR_NOT_REGISTERED,
+ "Unable to send CancelEndSession message");
+ goto out;
+ }
+
+ if (!dbus_connection_send (dbus_client->priv->connection, message, NULL)) {
+ g_set_error (error,
+ GSM_CLIENT_ERROR,
+ GSM_CLIENT_ERROR_NOT_REGISTERED,
+ "Unable to send CancelEndSession message");
+ goto out;
+ }
+
+ ret = TRUE;
+
+ out:
+ if (message != NULL) {
+ dbus_message_unref (message);
+ }
+
+ return ret;
+}
+
+static void
+gsm_dbus_client_dispose (GObject *object)
+{
+ GsmDBusClient *client;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GSM_IS_DBUS_CLIENT (object));
+
+ client = GSM_DBUS_CLIENT (object);
+
+ dbus_connection_remove_filter (client->priv->connection, client_dbus_filter_function, client);
+
+ G_OBJECT_CLASS (gsm_dbus_client_parent_class)->dispose (object);
+}
+
+static void
+gsm_dbus_client_class_init (GsmDBusClientClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GsmClientClass *client_class = GSM_CLIENT_CLASS (klass);
+
+ object_class->finalize = gsm_dbus_client_finalize;
+ object_class->constructor = gsm_dbus_client_constructor;
+ object_class->get_property = gsm_dbus_client_get_property;
+ object_class->set_property = gsm_dbus_client_set_property;
+ object_class->dispose = gsm_dbus_client_dispose;
+
+ client_class->impl_save = dbus_client_save;
+ client_class->impl_stop = dbus_client_stop;
+ client_class->impl_query_end_session = dbus_client_query_end_session;
+ client_class->impl_end_session = dbus_client_end_session;
+ client_class->impl_cancel_end_session = dbus_client_cancel_end_session;
+ client_class->impl_get_app_name = dbus_client_get_app_name;
+ client_class->impl_get_restart_style_hint = dbus_client_get_restart_style_hint;
+ client_class->impl_get_unix_process_id = dbus_client_get_unix_process_id;
+
+ g_object_class_install_property (object_class,
+ PROP_BUS_NAME,
+ g_param_spec_string ("bus-name",
+ "bus-name",
+ "bus-name",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+ g_type_class_add_private (klass, sizeof (GsmDBusClientPrivate));
+}
+
+GsmClient *
+gsm_dbus_client_new (const char *startup_id,
+ const char *bus_name)
+{
+ GsmDBusClient *client;
+
+ client = g_object_new (GSM_TYPE_DBUS_CLIENT,
+ "startup-id", startup_id,
+ "bus-name", bus_name,
+ NULL);
+
+ return GSM_CLIENT (client);
+}
diff --git a/mate-session/gsm-dbus-client.h b/mate-session/gsm-dbus-client.h
new file mode 100644
index 0000000..4b1895d
--- /dev/null
+++ b/mate-session/gsm-dbus-client.h
@@ -0,0 +1,77 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef __GSM_DBUS_CLIENT_H__
+#define __GSM_DBUS_CLIENT_H__
+
+#include "gsm-client.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GSM_TYPE_DBUS_CLIENT (gsm_dbus_client_get_type ())
+#define GSM_DBUS_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSM_TYPE_DBUS_CLIENT, GsmDBusClient))
+#define GSM_DBUS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSM_TYPE_DBUS_CLIENT, GsmDBusClientClass))
+#define GSM_IS_DBUS_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSM_TYPE_DBUS_CLIENT))
+#define GSM_IS_DBUS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSM_TYPE_DBUS_CLIENT))
+#define GSM_DBUS_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSM_TYPE_DBUS_CLIENT, GsmDBusClientClass))
+
+typedef struct _GsmDBusClient GsmDBusClient;
+typedef struct _GsmDBusClientClass GsmDBusClientClass;
+
+typedef struct GsmDBusClientPrivate GsmDBusClientPrivate;
+
+struct _GsmDBusClient
+{
+ GsmClient parent;
+ GsmDBusClientPrivate *priv;
+};
+
+struct _GsmDBusClientClass
+{
+ GsmClientClass parent_class;
+};
+
+typedef enum
+{
+ GSM_DBUS_CLIENT_ERROR_GENERAL = 0,
+ GSM_DBUS_CLIENT_ERROR_NOT_CLIENT,
+ GSM_DBUS_CLIENT_NUM_ERRORS
+} GsmDBusClientError;
+
+#define GSM_DBUS_CLIENT_ERROR gsm_dbus_client_error_quark ()
+
+GType gsm_dbus_client_error_get_type (void);
+#define GSM_DBUS_CLIENT_TYPE_ERROR (gsm_dbus_client_error_get_type ())
+
+GQuark gsm_dbus_client_error_quark (void);
+
+GType gsm_dbus_client_get_type (void) G_GNUC_CONST;
+
+GsmClient * gsm_dbus_client_new (const char *startup_id,
+ const char *bus_name);
+const char * gsm_dbus_client_get_bus_name (GsmDBusClient *client);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSM_DBUS_CLIENT_H__ */
diff --git a/mate-session/gsm-inhibit-dialog.c b/mate-session/gsm-inhibit-dialog.c
new file mode 100644
index 0000000..d5b4d57
--- /dev/null
+++ b/mate-session/gsm-inhibit-dialog.c
@@ -0,0 +1,1164 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <string.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <gdk/gdkx.h>
+
+#include <mateconf/mateconf-client.h>
+
+#include "gsm-inhibit-dialog.h"
+#include "gsm-store.h"
+#include "gsm-client.h"
+#include "gsm-inhibitor.h"
+#include "eggdesktopfile.h"
+#include "gsm-util.h"
+
+#ifdef HAVE_XRENDER
+#include <X11/extensions/Xrender.h>
+#endif
+
+#define GSM_INHIBIT_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_INHIBIT_DIALOG, GsmInhibitDialogPrivate))
+
+#define IS_STRING_EMPTY(x) ((x)==NULL||(x)[0]=='\0')
+
+#define GTKBUILDER_FILE "gsm-inhibit-dialog.ui"
+
+#ifndef DEFAULT_ICON_SIZE
+#define DEFAULT_ICON_SIZE 32
+#endif
+
+#ifndef DEFAULT_SNAPSHOT_SIZE
+#define DEFAULT_SNAPSHOT_SIZE 128
+#endif
+
+#define DIALOG_RESPONSE_LOCK_SCREEN 1
+
+struct GsmInhibitDialogPrivate
+{
+ GtkBuilder *xml;
+ int action;
+ gboolean is_done;
+ GsmStore *inhibitors;
+ GsmStore *clients;
+ GtkListStore *list_store;
+ gboolean have_xrender;
+ int xrender_event_base;
+ int xrender_error_base;
+};
+
+enum {
+ PROP_0,
+ PROP_ACTION,
+ PROP_INHIBITOR_STORE,
+ PROP_CLIENT_STORE
+};
+
+enum {
+ INHIBIT_IMAGE_COLUMN = 0,
+ INHIBIT_NAME_COLUMN,
+ INHIBIT_REASON_COLUMN,
+ INHIBIT_ID_COLUMN,
+ NUMBER_OF_COLUMNS
+};
+
+static void gsm_inhibit_dialog_class_init (GsmInhibitDialogClass *klass);
+static void gsm_inhibit_dialog_init (GsmInhibitDialog *inhibit_dialog);
+static void gsm_inhibit_dialog_finalize (GObject *object);
+
+G_DEFINE_TYPE (GsmInhibitDialog, gsm_inhibit_dialog, GTK_TYPE_DIALOG)
+
+static void
+lock_screen (GsmInhibitDialog *dialog)
+{
+ GError *error;
+ error = NULL;
+ g_spawn_command_line_async ("mate-screensaver-command --lock", &error);
+ if (error != NULL) {
+ g_warning ("Couldn't lock screen: %s", error->message);
+ g_error_free (error);
+ }
+}
+
+static void
+on_response (GsmInhibitDialog *dialog,
+ gint response_id)
+
+{
+ if (dialog->priv->is_done) {
+ g_signal_stop_emission_by_name (dialog, "response");
+ return;
+ }
+
+ switch (response_id) {
+ case DIALOG_RESPONSE_LOCK_SCREEN:
+ g_signal_stop_emission_by_name (dialog, "response");
+ lock_screen (dialog);
+ break;
+ default:
+ dialog->priv->is_done = TRUE;
+ break;
+ }
+}
+
+static void
+gsm_inhibit_dialog_set_action (GsmInhibitDialog *dialog,
+ int action)
+{
+ dialog->priv->action = action;
+}
+
+static gboolean
+find_inhibitor (GsmInhibitDialog *dialog,
+ const char *id,
+ GtkTreeIter *iter)
+{
+ GtkTreeModel *model;
+ gboolean found_item;
+
+ g_assert (GSM_IS_INHIBIT_DIALOG (dialog));
+
+ found_item = FALSE;
+ model = GTK_TREE_MODEL (dialog->priv->list_store);
+
+ if (!gtk_tree_model_get_iter_first (model, iter)) {
+ return FALSE;
+ }
+
+ do {
+ char *item_id;
+
+ gtk_tree_model_get (model,
+ iter,
+ INHIBIT_ID_COLUMN, &item_id,
+ -1);
+ if (item_id != NULL
+ && id != NULL
+ && strcmp (item_id, id) == 0) {
+ found_item = TRUE;
+ }
+ g_free (item_id);
+ } while (!found_item && gtk_tree_model_iter_next (model, iter));
+
+ return found_item;
+}
+
+/* copied from mate-panel panel-util.c */
+static char *
+_util_icon_remove_extension (const char *icon)
+{
+ char *icon_no_extension;
+ char *p;
+
+ icon_no_extension = g_strdup (icon);
+ p = strrchr (icon_no_extension, '.');
+ if (p &&
+ (strcmp (p, ".png") == 0 ||
+ strcmp (p, ".xpm") == 0 ||
+ strcmp (p, ".svg") == 0)) {
+ *p = 0;
+ }
+
+ return icon_no_extension;
+}
+
+/* copied from mate-panel panel-util.c */
+static char *
+_find_icon (GtkIconTheme *icon_theme,
+ const char *icon_name,
+ gint size)
+{
+ GtkIconInfo *info;
+ char *retval;
+ char *icon_no_extension;
+
+ if (icon_name == NULL || strcmp (icon_name, "") == 0)
+ return NULL;
+
+ if (g_path_is_absolute (icon_name)) {
+ if (g_file_test (icon_name, G_FILE_TEST_EXISTS)) {
+ return g_strdup (icon_name);
+ } else {
+ char *basename;
+
+ basename = g_path_get_basename (icon_name);
+ retval = _find_icon (icon_theme, basename,
+ size);
+ g_free (basename);
+
+ return retval;
+ }
+ }
+
+ /* This is needed because some .desktop files have an icon name *and*
+ * an extension as icon */
+ icon_no_extension = _util_icon_remove_extension (icon_name);
+
+ info = gtk_icon_theme_lookup_icon (icon_theme, icon_no_extension,
+ size, 0);
+
+ g_free (icon_no_extension);
+
+ if (info) {
+ retval = g_strdup (gtk_icon_info_get_filename (info));
+ gtk_icon_info_free (info);
+ } else
+ retval = NULL;
+
+ return retval;
+}
+
+/* copied from mate-panel panel-util.c */
+static GdkPixbuf *
+_load_icon (GtkIconTheme *icon_theme,
+ const char *icon_name,
+ int size,
+ int desired_width,
+ int desired_height,
+ char **error_msg)
+{
+ GdkPixbuf *retval;
+ char *file;
+ GError *error;
+
+ g_return_val_if_fail (error_msg == NULL || *error_msg == NULL, NULL);
+
+ file = _find_icon (icon_theme, icon_name, size);
+ if (!file) {
+ if (error_msg)
+ *error_msg = g_strdup_printf (_("Icon '%s' not found"),
+ icon_name);
+
+ return NULL;
+ }
+
+ error = NULL;
+ retval = gdk_pixbuf_new_from_file_at_size (file,
+ desired_width,
+ desired_height,
+ &error);
+ if (error) {
+ if (error_msg)
+ *error_msg = g_strdup (error->message);
+ g_error_free (error);
+ }
+
+ g_free (file);
+
+ return retval;
+}
+
+
+static GdkPixbuf *
+scale_pixbuf (GdkPixbuf *pixbuf,
+ int max_width,
+ int max_height,
+ gboolean no_stretch_hint)
+{
+ int pw;
+ int ph;
+ float scale_factor_x = 1.0;
+ float scale_factor_y = 1.0;
+ float scale_factor = 1.0;
+
+ pw = gdk_pixbuf_get_width (pixbuf);
+ ph = gdk_pixbuf_get_height (pixbuf);
+
+ /* Determine which dimension requires the smallest scale. */
+ scale_factor_x = (float) max_width / (float) pw;
+ scale_factor_y = (float) max_height / (float) ph;
+
+ if (scale_factor_x > scale_factor_y) {
+ scale_factor = scale_factor_y;
+ } else {
+ scale_factor = scale_factor_x;
+ }
+
+ /* always scale down, allow to disable scaling up */
+ if (scale_factor < 1.0 || !no_stretch_hint) {
+ int scale_x = (int) (pw * scale_factor);
+ int scale_y = (int) (ph * scale_factor);
+ g_debug ("Scaling to %dx%d", scale_x, scale_y);
+ return gdk_pixbuf_scale_simple (pixbuf,
+ scale_x,
+ scale_y,
+ GDK_INTERP_BILINEAR);
+ } else {
+ return g_object_ref (pixbuf);
+ }
+}
+
+#ifdef HAVE_XRENDER
+
+/* adapted from marco */
+static GdkColormap*
+get_cmap (GdkPixmap *pixmap)
+{
+ GdkColormap *cmap;
+
+ cmap = gdk_drawable_get_colormap (pixmap);
+ if (cmap) {
+ g_object_ref (G_OBJECT (cmap));
+ }
+
+ if (cmap == NULL) {
+ if (gdk_drawable_get_depth (pixmap) == 1) {
+ g_debug ("Using NULL colormap for snapshotting bitmap\n");
+ cmap = NULL;
+ } else {
+ g_debug ("Using system cmap to snapshot pixmap\n");
+ cmap = gdk_screen_get_system_colormap (gdk_drawable_get_screen (pixmap));
+
+ g_object_ref (G_OBJECT (cmap));
+ }
+ }
+
+ /* Be sure we aren't going to blow up due to visual mismatch */
+ if (cmap &&
+ (gdk_visual_get_depth (gdk_colormap_get_visual (cmap)) !=
+ gdk_drawable_get_depth (pixmap))) {
+ cmap = NULL;
+ g_debug ("Switching back to NULL cmap because of depth mismatch\n");
+ }
+
+ return cmap;
+}
+
+static GdkPixbuf *
+pixbuf_get_from_pixmap (Pixmap xpixmap)
+{
+ GdkDrawable *drawable;
+ GdkPixbuf *retval;
+ GdkColormap *cmap;
+ int width;
+ int height;
+
+ retval = NULL;
+ cmap = NULL;
+
+ g_debug ("GsmInhibitDialog: getting foreign pixmap for %u", (guint)xpixmap);
+ drawable = gdk_pixmap_foreign_new (xpixmap);
+ if (GDK_IS_PIXMAP (drawable)) {
+ cmap = get_cmap (drawable);
+
+ #if GTK_CHECK_VERSION(3, 0, 0)
+ width = gdk_window_get_width(drawable);
+ height = gdk_window_get_height(drawable);
+ #else
+ gdk_drawable_get_size(drawable, &width, &height);
+ #endif
+
+ g_debug ("GsmInhibitDialog: getting pixbuf w=%d h=%d", width, height);
+
+ retval = gdk_pixbuf_get_from_drawable (NULL,
+ drawable,
+ cmap,
+ 0, 0,
+ 0, 0,
+ width, height);
+ }
+ if (cmap) {
+ g_object_unref (G_OBJECT (cmap));
+ }
+ if (drawable) {
+ g_object_unref (G_OBJECT (drawable));
+ }
+
+ return retval;
+}
+
+static Pixmap
+get_pixmap_for_window (Window window)
+{
+ XWindowAttributes attr;
+ XRenderPictureAttributes pa;
+ Pixmap pixmap;
+ XRenderPictFormat *format;
+ Picture src_picture;
+ Picture dst_picture;
+ gboolean has_alpha;
+ int x;
+ int y;
+ int width;
+ int height;
+
+ XGetWindowAttributes (GDK_DISPLAY (), window, &attr);
+
+ format = XRenderFindVisualFormat (GDK_DISPLAY (), attr.visual);
+ has_alpha = (format->type == PictTypeDirect && format->direct.alphaMask);
+ x = attr.x;
+ y = attr.y;
+ width = attr.width;
+ height = attr.height;
+
+ pa.subwindow_mode = IncludeInferiors; /* Don't clip child widgets */
+
+ src_picture = XRenderCreatePicture (GDK_DISPLAY (), window, format, CPSubwindowMode, &pa);
+
+ pixmap = XCreatePixmap (GDK_DISPLAY (),
+ window,
+ width, height,
+ attr.depth);
+
+ dst_picture = XRenderCreatePicture (GDK_DISPLAY (), pixmap, format, 0, 0);
+ XRenderComposite (GDK_DISPLAY (),
+ has_alpha ? PictOpOver : PictOpSrc,
+ src_picture,
+ None,
+ dst_picture,
+ 0, 0, 0, 0,
+ 0, 0,
+ width, height);
+
+
+ return pixmap;
+}
+
+#endif /* HAVE_COMPOSITE */
+
+static GdkPixbuf *
+get_pixbuf_for_window (guint xid,
+ int width,
+ int height)
+{
+ GdkPixbuf *pixbuf = NULL;
+#ifdef HAVE_XRENDER
+ Window xwindow;
+ Pixmap xpixmap;
+
+ xwindow = (Window) xid;
+ xpixmap = get_pixmap_for_window (xwindow);
+ if (xpixmap == None) {
+ g_debug ("GsmInhibitDialog: Unable to get window snapshot for %u", xid);
+ return NULL;
+ } else {
+ g_debug ("GsmInhibitDialog: Got xpixmap %u", (guint)xpixmap);
+ }
+
+ pixbuf = pixbuf_get_from_pixmap (xpixmap);
+
+ if (xpixmap != None) {
+ gdk_error_trap_push ();
+ XFreePixmap (GDK_DISPLAY (), xpixmap);
+ gdk_display_sync (gdk_display_get_default ());
+ gdk_error_trap_pop ();
+ }
+
+ if (pixbuf != NULL) {
+ GdkPixbuf *scaled;
+ g_debug ("GsmInhibitDialog: scaling pixbuf to w=%d h=%d", width, height);
+ scaled = scale_pixbuf (pixbuf, width, height, TRUE);
+ g_object_unref (pixbuf);
+ pixbuf = scaled;
+ }
+#else
+ g_debug ("GsmInhibitDialog: no support for getting window snapshot");
+#endif
+ return pixbuf;
+}
+
+static void
+add_inhibitor (GsmInhibitDialog *dialog,
+ GsmInhibitor *inhibitor)
+{
+ const char *name;
+ const char *icon_name;
+ const char *app_id;
+ char *desktop_filename;
+ GdkPixbuf *pixbuf;
+ EggDesktopFile *desktop_file;
+ GError *error;
+ char **search_dirs;
+ guint xid;
+ char *freeme;
+
+ /* FIXME: get info from xid */
+
+ desktop_file = NULL;
+ name = NULL;
+ pixbuf = NULL;
+ freeme = NULL;
+
+ app_id = gsm_inhibitor_peek_app_id (inhibitor);
+
+ if (IS_STRING_EMPTY (app_id)) {
+ desktop_filename = NULL;
+ } else if (! g_str_has_suffix (app_id, ".desktop")) {
+ desktop_filename = g_strdup_printf ("%s.desktop", app_id);
+ } else {
+ desktop_filename = g_strdup (app_id);
+ }
+
+ xid = gsm_inhibitor_peek_toplevel_xid (inhibitor);
+ g_debug ("GsmInhibitDialog: inhibitor has XID %u", xid);
+ if (xid > 0 && dialog->priv->have_xrender) {
+ pixbuf = get_pixbuf_for_window (xid, DEFAULT_SNAPSHOT_SIZE, DEFAULT_SNAPSHOT_SIZE);
+ if (pixbuf == NULL) {
+ g_debug ("GsmInhibitDialog: unable to read pixbuf from %u", xid);
+ }
+ }
+
+ if (desktop_filename != NULL) {
+ search_dirs = gsm_util_get_desktop_dirs ();
+
+ if (g_path_is_absolute (desktop_filename)) {
+ char *basename;
+
+ error = NULL;
+ desktop_file = egg_desktop_file_new (desktop_filename,
+ &error);
+ if (desktop_file == NULL) {
+ if (error) {
+ g_warning ("Unable to load desktop file '%s': %s",
+ desktop_filename, error->message);
+ g_error_free (error);
+ } else {
+ g_warning ("Unable to load desktop file '%s'",
+ desktop_filename);
+ }
+
+ basename = g_path_get_basename (desktop_filename);
+ g_free (desktop_filename);
+ desktop_filename = basename;
+ }
+ }
+
+ if (desktop_file == NULL) {
+ error = NULL;
+ desktop_file = egg_desktop_file_new_from_dirs (desktop_filename,
+ (const char **)search_dirs,
+ &error);
+ }
+
+ /* look for a file with a vendor prefix */
+ if (desktop_file == NULL) {
+ if (error) {
+ g_warning ("Unable to find desktop file '%s': %s",
+ desktop_filename, error->message);
+ g_error_free (error);
+ } else {
+ g_warning ("Unable to find desktop file '%s'",
+ desktop_filename);
+ }
+ g_free (desktop_filename);
+ desktop_filename = g_strdup_printf ("mate-%s.desktop", app_id);
+ error = NULL;
+ desktop_file = egg_desktop_file_new_from_dirs (desktop_filename,
+ (const char **)search_dirs,
+ &error);
+ }
+ g_strfreev (search_dirs);
+
+ if (desktop_file == NULL) {
+ if (error) {
+ g_warning ("Unable to find desktop file '%s': %s",
+ desktop_filename, error->message);
+ g_error_free (error);
+ } else {
+ g_warning ("Unable to find desktop file '%s'",
+ desktop_filename);
+ }
+ } else {
+ name = egg_desktop_file_get_name (desktop_file);
+ icon_name = egg_desktop_file_get_icon (desktop_file);
+
+ if (pixbuf == NULL) {
+ pixbuf = _load_icon (gtk_icon_theme_get_default (),
+ icon_name,
+ DEFAULT_ICON_SIZE,
+ DEFAULT_ICON_SIZE,
+ DEFAULT_ICON_SIZE,
+ NULL);
+ }
+ }
+ }
+
+ /* try client info */
+ if (name == NULL) {
+ const char *client_id;
+ client_id = gsm_inhibitor_peek_client_id (inhibitor);
+ if (! IS_STRING_EMPTY (client_id)) {
+ GsmClient *client;
+ client = GSM_CLIENT (gsm_store_lookup (dialog->priv->clients, client_id));
+ if (client != NULL) {
+ freeme = gsm_client_get_app_name (client);
+ name = freeme;
+ }
+ }
+ }
+
+ if (name == NULL) {
+ if (! IS_STRING_EMPTY (app_id)) {
+ name = app_id;
+ } else {
+ name = _("Unknown");
+ }
+ }
+
+ if (pixbuf == NULL) {
+ pixbuf = _load_icon (gtk_icon_theme_get_default (),
+ "mate-windows",
+ DEFAULT_ICON_SIZE,
+ DEFAULT_ICON_SIZE,
+ DEFAULT_ICON_SIZE,
+ NULL);
+ }
+
+ gtk_list_store_insert_with_values (dialog->priv->list_store,
+ NULL, 0,
+ INHIBIT_IMAGE_COLUMN, pixbuf,
+ INHIBIT_NAME_COLUMN, name,
+ INHIBIT_REASON_COLUMN, gsm_inhibitor_peek_reason (inhibitor),
+ INHIBIT_ID_COLUMN, gsm_inhibitor_peek_id (inhibitor),
+ -1);
+
+ g_free (desktop_filename);
+ g_free (freeme);
+ if (pixbuf != NULL) {
+ g_object_unref (pixbuf);
+ }
+ if (desktop_file != NULL) {
+ egg_desktop_file_free (desktop_file);
+ }
+}
+
+static gboolean
+model_has_one_entry (GtkTreeModel *model)
+{
+ guint n_rows;
+
+ n_rows = gtk_tree_model_iter_n_children (model, NULL);
+ g_debug ("Model has %d rows", n_rows);
+
+ return (n_rows > 0 && n_rows < 2);
+}
+
+static void
+update_dialog_text (GsmInhibitDialog *dialog)
+{
+ const char *description_text;
+ const char *header_text;
+ GtkWidget *widget;
+
+ if (model_has_one_entry (GTK_TREE_MODEL (dialog->priv->list_store))) {
+ g_debug ("Found one entry in model");
+ header_text = _("A program is still running:");
+ description_text = _("Waiting for the program to finish. Interrupting the program may cause you to lose work.");
+ } else {
+ g_debug ("Found multiple entries (or none) in model");
+ header_text = _("Some programs are still running:");
+ description_text = _("Waiting for programs to finish. Interrupting these programs may cause you to lose work.");
+ }
+
+ widget = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml,
+ "header-label"));
+ if (widget != NULL) {
+ char *markup;
+ markup = g_strdup_printf ("<b>%s</b>", header_text);
+ gtk_label_set_markup (GTK_LABEL (widget), markup);
+ g_free (markup);
+ }
+
+ widget = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml,
+ "description-label"));
+ if (widget != NULL) {
+ gtk_label_set_text (GTK_LABEL (widget), description_text);
+ }
+}
+
+static void
+on_store_inhibitor_added (GsmStore *store,
+ const char *id,
+ GsmInhibitDialog *dialog)
+{
+ GsmInhibitor *inhibitor;
+ GtkTreeIter iter;
+
+ g_debug ("GsmInhibitDialog: inhibitor added: %s", id);
+
+ if (dialog->priv->is_done) {
+ return;
+ }
+
+ inhibitor = (GsmInhibitor *)gsm_store_lookup (store, id);
+
+ /* Add to model */
+ if (! find_inhibitor (dialog, id, &iter)) {
+ add_inhibitor (dialog, inhibitor);
+ update_dialog_text (dialog);
+ }
+
+}
+
+static void
+on_store_inhibitor_removed (GsmStore *store,
+ const char *id,
+ GsmInhibitDialog *dialog)
+{
+ GtkTreeIter iter;
+
+ g_debug ("GsmInhibitDialog: inhibitor removed: %s", id);
+
+ if (dialog->priv->is_done) {
+ return;
+ }
+
+ /* Remove from model */
+ if (find_inhibitor (dialog, id, &iter)) {
+ gtk_list_store_remove (dialog->priv->list_store, &iter);
+ update_dialog_text (dialog);
+ }
+
+ /* if there are no inhibitors left then trigger response */
+ if (! gtk_tree_model_get_iter_first (GTK_TREE_MODEL (dialog->priv->list_store), &iter)) {
+ gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_ACCEPT);
+ }
+}
+
+static void
+gsm_inhibit_dialog_set_inhibitor_store (GsmInhibitDialog *dialog,
+ GsmStore *store)
+{
+ g_return_if_fail (GSM_IS_INHIBIT_DIALOG (dialog));
+
+ if (store != NULL) {
+ g_object_ref (store);
+ }
+
+ if (dialog->priv->inhibitors != NULL) {
+ g_signal_handlers_disconnect_by_func (dialog->priv->inhibitors,
+ on_store_inhibitor_added,
+ dialog);
+ g_signal_handlers_disconnect_by_func (dialog->priv->inhibitors,
+ on_store_inhibitor_removed,
+ dialog);
+
+ g_object_unref (dialog->priv->inhibitors);
+ }
+
+
+ g_debug ("GsmInhibitDialog: setting store %p", store);
+
+ dialog->priv->inhibitors = store;
+
+ if (dialog->priv->inhibitors != NULL) {
+ g_signal_connect (dialog->priv->inhibitors,
+ "added",
+ G_CALLBACK (on_store_inhibitor_added),
+ dialog);
+ g_signal_connect (dialog->priv->inhibitors,
+ "removed",
+ G_CALLBACK (on_store_inhibitor_removed),
+ dialog);
+ }
+}
+
+static void
+gsm_inhibit_dialog_set_client_store (GsmInhibitDialog *dialog,
+ GsmStore *store)
+{
+ g_return_if_fail (GSM_IS_INHIBIT_DIALOG (dialog));
+
+ if (store != NULL) {
+ g_object_ref (store);
+ }
+
+ if (dialog->priv->clients != NULL) {
+ g_object_unref (dialog->priv->clients);
+ }
+
+ dialog->priv->clients = store;
+}
+
+static void
+gsm_inhibit_dialog_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GsmInhibitDialog *dialog = GSM_INHIBIT_DIALOG (object);
+
+ switch (prop_id) {
+ case PROP_ACTION:
+ gsm_inhibit_dialog_set_action (dialog, g_value_get_int (value));
+ break;
+ case PROP_INHIBITOR_STORE:
+ gsm_inhibit_dialog_set_inhibitor_store (dialog, g_value_get_object (value));
+ break;
+ case PROP_CLIENT_STORE:
+ gsm_inhibit_dialog_set_client_store (dialog, g_value_get_object (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_inhibit_dialog_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GsmInhibitDialog *dialog = GSM_INHIBIT_DIALOG (object);
+
+ switch (prop_id) {
+ case PROP_ACTION:
+ g_value_set_int (value, dialog->priv->action);
+ break;
+ case PROP_INHIBITOR_STORE:
+ g_value_set_object (value, dialog->priv->inhibitors);
+ break;
+ case PROP_CLIENT_STORE:
+ g_value_set_object (value, dialog->priv->clients);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+name_cell_data_func (GtkTreeViewColumn *tree_column,
+ GtkCellRenderer *cell,
+ GtkTreeModel *model,
+ GtkTreeIter *iter,
+ GsmInhibitDialog *dialog)
+{
+ char *name;
+ char *reason;
+ char *markup;
+
+ name = NULL;
+ reason = NULL;
+ gtk_tree_model_get (model,
+ iter,
+ INHIBIT_NAME_COLUMN, &name,
+ INHIBIT_REASON_COLUMN, &reason,
+ -1);
+
+ markup = g_strdup_printf ("<b>%s</b>\n"
+ "<span size=\"small\">%s</span>",
+ name ? name : "(null)",
+ reason ? reason : "(null)");
+
+ g_free (name);
+ g_free (reason);
+
+ g_object_set (cell, "markup", markup, NULL);
+ g_free (markup);
+}
+
+static gboolean
+add_to_model (const char *id,
+ GsmInhibitor *inhibitor,
+ GsmInhibitDialog *dialog)
+{
+ add_inhibitor (dialog, inhibitor);
+ return FALSE;
+}
+
+static void
+populate_model (GsmInhibitDialog *dialog)
+{
+ gsm_store_foreach_remove (dialog->priv->inhibitors,
+ (GsmStoreFunc)add_to_model,
+ dialog);
+ update_dialog_text (dialog);
+}
+
+static void
+setup_dialog (GsmInhibitDialog *dialog)
+{
+ const char *button_text;
+ GtkWidget *treeview;
+ GtkTreeViewColumn *column;
+ GtkCellRenderer *renderer;
+
+ switch (dialog->priv->action) {
+ case GSM_LOGOUT_ACTION_SWITCH_USER:
+ button_text = _("Switch User Anyway");
+ break;
+ case GSM_LOGOUT_ACTION_LOGOUT:
+ button_text = _("Log Out Anyway");
+ break;
+ case GSM_LOGOUT_ACTION_SLEEP:
+ button_text = _("Suspend Anyway");
+ break;
+ case GSM_LOGOUT_ACTION_HIBERNATE:
+ button_text = _("Hibernate Anyway");
+ break;
+ case GSM_LOGOUT_ACTION_SHUTDOWN:
+ button_text = _("Shut Down Anyway");
+ break;
+ case GSM_LOGOUT_ACTION_REBOOT:
+ button_text = _("Reboot Anyway");
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+
+ gtk_dialog_add_button (GTK_DIALOG (dialog),
+ _("Lock Screen"),
+ DIALOG_RESPONSE_LOCK_SCREEN);
+ gtk_dialog_add_button (GTK_DIALOG (dialog),
+ _("Cancel"),
+ GTK_RESPONSE_CANCEL);
+ gtk_dialog_add_button (GTK_DIALOG (dialog),
+ button_text,
+ GTK_RESPONSE_ACCEPT);
+ g_signal_connect (dialog,
+ "response",
+ G_CALLBACK (on_response),
+ dialog);
+
+ dialog->priv->list_store = gtk_list_store_new (NUMBER_OF_COLUMNS,
+ GDK_TYPE_PIXBUF,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_STRING);
+
+ treeview = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml,
+ "inhibitors-treeview"));
+ gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), FALSE);
+ gtk_tree_view_set_model (GTK_TREE_VIEW (treeview),
+ GTK_TREE_MODEL (dialog->priv->list_store));
+
+ /* IMAGE COLUMN */
+ renderer = gtk_cell_renderer_pixbuf_new ();
+ column = gtk_tree_view_column_new ();
+ gtk_tree_view_column_pack_start (column, renderer, FALSE);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
+
+ gtk_tree_view_column_set_attributes (column,
+ renderer,
+ "pixbuf", INHIBIT_IMAGE_COLUMN,
+ NULL);
+
+ g_object_set (renderer, "xalign", 1.0, NULL);
+
+ /* NAME COLUMN */
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new ();
+ gtk_tree_view_column_pack_start (column, renderer, FALSE);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
+ gtk_tree_view_column_set_cell_data_func (column,
+ renderer,
+ (GtkTreeCellDataFunc) name_cell_data_func,
+ dialog,
+ NULL);
+
+ gtk_tree_view_set_tooltip_column (GTK_TREE_VIEW (treeview),
+ INHIBIT_REASON_COLUMN);
+
+ populate_model (dialog);
+}
+
+static GObject *
+gsm_inhibit_dialog_constructor (GType type,
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
+{
+ GsmInhibitDialog *dialog;
+
+ dialog = GSM_INHIBIT_DIALOG (G_OBJECT_CLASS (gsm_inhibit_dialog_parent_class)->constructor (type,
+ n_construct_properties,
+ construct_properties));
+
+#ifdef HAVE_XRENDER
+ gdk_error_trap_push ();
+ if (XRenderQueryExtension (GDK_DISPLAY (), &dialog->priv->xrender_event_base, &dialog->priv->xrender_error_base)) {
+ g_debug ("GsmInhibitDialog: Initialized XRender extension");
+ dialog->priv->have_xrender = TRUE;
+ } else {
+ g_debug ("GsmInhibitDialog: Unable to initialize XRender extension");
+ dialog->priv->have_xrender = FALSE;
+ }
+ gdk_display_sync (gdk_display_get_default ());
+ gdk_error_trap_pop ();
+#endif /* HAVE_XRENDER */
+
+ /* FIXME: turn this on when it is ready */
+ dialog->priv->have_xrender = FALSE;
+
+ setup_dialog (dialog);
+
+ gtk_widget_show_all (GTK_WIDGET (dialog));
+
+ return G_OBJECT (dialog);
+}
+
+static void
+gsm_inhibit_dialog_dispose (GObject *object)
+{
+ GsmInhibitDialog *dialog;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GSM_IS_INHIBIT_DIALOG (object));
+
+ dialog = GSM_INHIBIT_DIALOG (object);
+
+ g_debug ("GsmInhibitDialog: dispose called");
+
+ if (dialog->priv->list_store != NULL) {
+ g_object_unref (dialog->priv->list_store);
+ dialog->priv->list_store = NULL;
+ }
+
+ if (dialog->priv->inhibitors != NULL) {
+ g_signal_handlers_disconnect_by_func (dialog->priv->inhibitors,
+ on_store_inhibitor_added,
+ dialog);
+ g_signal_handlers_disconnect_by_func (dialog->priv->inhibitors,
+ on_store_inhibitor_removed,
+ dialog);
+
+ g_object_unref (dialog->priv->inhibitors);
+ dialog->priv->inhibitors = NULL;
+ }
+
+ if (dialog->priv->xml != NULL) {
+ g_object_unref (dialog->priv->xml);
+ dialog->priv->xml = NULL;
+ }
+
+ G_OBJECT_CLASS (gsm_inhibit_dialog_parent_class)->dispose (object);
+}
+
+static void
+gsm_inhibit_dialog_class_init (GsmInhibitDialogClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->get_property = gsm_inhibit_dialog_get_property;
+ object_class->set_property = gsm_inhibit_dialog_set_property;
+ object_class->constructor = gsm_inhibit_dialog_constructor;
+ object_class->dispose = gsm_inhibit_dialog_dispose;
+ object_class->finalize = gsm_inhibit_dialog_finalize;
+
+ g_object_class_install_property (object_class,
+ PROP_ACTION,
+ g_param_spec_int ("action",
+ "action",
+ "action",
+ -1,
+ G_MAXINT,
+ -1,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_INHIBITOR_STORE,
+ g_param_spec_object ("inhibitor-store",
+ NULL,
+ NULL,
+ GSM_TYPE_STORE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_CLIENT_STORE,
+ g_param_spec_object ("client-store",
+ NULL,
+ NULL,
+ GSM_TYPE_STORE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+ g_type_class_add_private (klass, sizeof (GsmInhibitDialogPrivate));
+}
+
+static void
+gsm_inhibit_dialog_init (GsmInhibitDialog *dialog)
+{
+ GtkWidget *content_area;
+ GtkWidget *widget;
+ GError *error;
+
+ dialog->priv = GSM_INHIBIT_DIALOG_GET_PRIVATE (dialog);
+
+ dialog->priv->xml = gtk_builder_new ();
+ gtk_builder_set_translation_domain (dialog->priv->xml, GETTEXT_PACKAGE);
+
+ error = NULL;
+ if (!gtk_builder_add_from_file (dialog->priv->xml,
+ GTKBUILDER_DIR "/" GTKBUILDER_FILE,
+ &error)) {
+ if (error) {
+ g_warning ("Could not load inhibitor UI file: %s",
+ error->message);
+ g_error_free (error);
+ } else {
+ g_warning ("Could not load inhibitor UI file.");
+ }
+ }
+
+ content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
+ widget = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml,
+ "main-box"));
+ gtk_container_add (GTK_CONTAINER (content_area), widget);
+
+ gtk_container_set_border_width (GTK_CONTAINER (dialog), 6);
+ gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE);
+ gtk_window_set_icon_name (GTK_WINDOW (dialog), "system-log-out");
+ gtk_window_set_title (GTK_WINDOW (dialog), "");
+ g_object_set (dialog,
+ "allow-shrink", FALSE,
+ "allow-grow", FALSE,
+ NULL);
+}
+
+static void
+gsm_inhibit_dialog_finalize (GObject *object)
+{
+ GsmInhibitDialog *dialog;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GSM_IS_INHIBIT_DIALOG (object));
+
+ dialog = GSM_INHIBIT_DIALOG (object);
+
+ g_return_if_fail (dialog->priv != NULL);
+
+ g_debug ("GsmInhibitDialog: finalizing");
+
+ G_OBJECT_CLASS (gsm_inhibit_dialog_parent_class)->finalize (object);
+}
+
+GtkWidget *
+gsm_inhibit_dialog_new (GsmStore *inhibitors,
+ GsmStore *clients,
+ int action)
+{
+ GObject *object;
+
+ object = g_object_new (GSM_TYPE_INHIBIT_DIALOG,
+ "action", action,
+ "inhibitor-store", inhibitors,
+ "client-store", clients,
+ NULL);
+
+ return GTK_WIDGET (object);
+}
diff --git a/mate-session/gsm-inhibit-dialog.h b/mate-session/gsm-inhibit-dialog.h
new file mode 100644
index 0000000..035f424
--- /dev/null
+++ b/mate-session/gsm-inhibit-dialog.h
@@ -0,0 +1,74 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#ifndef __GSM_INHIBIT_DIALOG_H
+#define __GSM_INHIBIT_DIALOG_H
+
+#include <glib-object.h>
+#include <gtk/gtk.h>
+
+#include "gsm-store.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GSM_TYPE_INHIBIT_DIALOG (gsm_inhibit_dialog_get_type ())
+#define GSM_INHIBIT_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSM_TYPE_INHIBIT_DIALOG, GsmInhibitDialog))
+#define GSM_INHIBIT_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSM_TYPE_INHIBIT_DIALOG, GsmInhibitDialogClass))
+#define GSM_IS_INHIBIT_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSM_TYPE_INHIBIT_DIALOG))
+#define GSM_IS_INHIBIT_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSM_TYPE_INHIBIT_DIALOG))
+#define GSM_INHIBIT_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSM_TYPE_INHIBIT_DIALOG, GsmInhibitDialogClass))
+
+typedef struct GsmInhibitDialogPrivate GsmInhibitDialogPrivate;
+
+typedef enum
+{
+ GSM_LOGOUT_ACTION_LOGOUT,
+ GSM_LOGOUT_ACTION_SWITCH_USER,
+ GSM_LOGOUT_ACTION_SHUTDOWN,
+ GSM_LOGOUT_ACTION_REBOOT,
+ GSM_LOGOUT_ACTION_HIBERNATE,
+ GSM_LOGOUT_ACTION_SLEEP
+} GsmLogoutAction;
+
+typedef struct
+{
+ GtkDialog parent;
+ GsmInhibitDialogPrivate *priv;
+} GsmInhibitDialog;
+
+typedef struct
+{
+ GtkDialogClass parent_class;
+} GsmInhibitDialogClass;
+
+GType gsm_inhibit_dialog_get_type (void);
+
+GtkWidget * gsm_inhibit_dialog_new (GsmStore *inhibitors,
+ GsmStore *clients,
+ int action);
+GtkTreeModel * gsm_inhibit_dialog_get_model (GsmInhibitDialog *dialog);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSM_INHIBIT_DIALOG_H */
diff --git a/mate-session/gsm-inhibitor.c b/mate-session/gsm-inhibitor.c
new file mode 100644
index 0000000..13124a4
--- /dev/null
+++ b/mate-session/gsm-inhibitor.c
@@ -0,0 +1,605 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <dbus/dbus-glib.h>
+
+#include "gsm-inhibitor.h"
+#include "gsm-inhibitor-glue.h"
+
+static guint32 inhibitor_serial = 1;
+
+#define IS_STRING_EMPTY(x) ((x)==NULL||(x)[0]=='\0')
+
+#define GSM_INHIBITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_INHIBITOR, GsmInhibitorPrivate))
+
+struct GsmInhibitorPrivate
+{
+ char *id;
+ char *bus_name;
+ char *app_id;
+ char *client_id;
+ char *reason;
+ guint flags;
+ guint toplevel_xid;
+ guint cookie;
+ DBusGConnection *connection;
+};
+
+enum {
+ PROP_0,
+ PROP_BUS_NAME,
+ PROP_REASON,
+ PROP_APP_ID,
+ PROP_CLIENT_ID,
+ PROP_FLAGS,
+ PROP_TOPLEVEL_XID,
+ PROP_COOKIE
+};
+
+G_DEFINE_TYPE (GsmInhibitor, gsm_inhibitor, G_TYPE_OBJECT)
+
+GQuark
+gsm_inhibitor_error_quark (void)
+{
+ static GQuark ret = 0;
+ if (ret == 0) {
+ ret = g_quark_from_static_string ("gsm_inhibitor_error");
+ }
+
+ return ret;
+}
+
+#define ENUM_ENTRY(NAME, DESC) { NAME, "" #NAME "", DESC }
+
+GType
+gsm_inhibitor_error_get_type (void)
+{
+ static GType etype = 0;
+
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ ENUM_ENTRY (GSM_INHIBITOR_ERROR_GENERAL, "GeneralError"),
+ ENUM_ENTRY (GSM_INHIBITOR_ERROR_NOT_SET, "NotSet"),
+ { 0, 0, 0 }
+ };
+
+ g_assert (GSM_INHIBITOR_NUM_ERRORS == G_N_ELEMENTS (values) - 1);
+
+ etype = g_enum_register_static ("GsmInhibitorError", values);
+ }
+
+ return etype;
+}
+
+static guint32
+get_next_inhibitor_serial (void)
+{
+ guint32 serial;
+
+ serial = inhibitor_serial++;
+
+ if ((gint32)inhibitor_serial < 0) {
+ inhibitor_serial = 1;
+ }
+
+ return serial;
+}
+
+static gboolean
+register_inhibitor (GsmInhibitor *inhibitor)
+{
+ GError *error;
+
+ error = NULL;
+ inhibitor->priv->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+ if (inhibitor->priv->connection == NULL) {
+ if (error != NULL) {
+ g_critical ("error getting session bus: %s", error->message);
+ g_error_free (error);
+ }
+ return FALSE;
+ }
+
+ dbus_g_connection_register_g_object (inhibitor->priv->connection, inhibitor->priv->id, G_OBJECT (inhibitor));
+
+ return TRUE;
+}
+
+static GObject *
+gsm_inhibitor_constructor (GType type,
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
+{
+ GsmInhibitor *inhibitor;
+ gboolean res;
+
+ inhibitor = GSM_INHIBITOR (G_OBJECT_CLASS (gsm_inhibitor_parent_class)->constructor (type,
+ n_construct_properties,
+ construct_properties));
+
+ g_free (inhibitor->priv->id);
+ inhibitor->priv->id = g_strdup_printf ("/org/mate/SessionManager/Inhibitor%u", get_next_inhibitor_serial ());
+ res = register_inhibitor (inhibitor);
+ if (! res) {
+ g_warning ("Unable to register inhibitor with session bus");
+ }
+
+ return G_OBJECT (inhibitor);
+}
+
+static void
+gsm_inhibitor_init (GsmInhibitor *inhibitor)
+{
+ inhibitor->priv = GSM_INHIBITOR_GET_PRIVATE (inhibitor);
+}
+
+static void
+gsm_inhibitor_set_bus_name (GsmInhibitor *inhibitor,
+ const char *bus_name)
+{
+ g_return_if_fail (GSM_IS_INHIBITOR (inhibitor));
+
+ g_free (inhibitor->priv->bus_name);
+
+ if (bus_name != NULL) {
+ inhibitor->priv->bus_name = g_strdup (bus_name);
+ } else {
+ inhibitor->priv->bus_name = g_strdup ("");
+ }
+ g_object_notify (G_OBJECT (inhibitor), "bus-name");
+}
+
+static void
+gsm_inhibitor_set_app_id (GsmInhibitor *inhibitor,
+ const char *app_id)
+{
+ g_return_if_fail (GSM_IS_INHIBITOR (inhibitor));
+
+ g_free (inhibitor->priv->app_id);
+
+ inhibitor->priv->app_id = g_strdup (app_id);
+ g_object_notify (G_OBJECT (inhibitor), "app-id");
+}
+
+static void
+gsm_inhibitor_set_client_id (GsmInhibitor *inhibitor,
+ const char *client_id)
+{
+ g_return_if_fail (GSM_IS_INHIBITOR (inhibitor));
+
+ g_free (inhibitor->priv->client_id);
+
+ g_debug ("GsmInhibitor: setting client-id = %s", client_id);
+
+ if (client_id != NULL) {
+ inhibitor->priv->client_id = g_strdup (client_id);
+ } else {
+ inhibitor->priv->client_id = g_strdup ("");
+ }
+ g_object_notify (G_OBJECT (inhibitor), "client-id");
+}
+
+static void
+gsm_inhibitor_set_reason (GsmInhibitor *inhibitor,
+ const char *reason)
+{
+ g_return_if_fail (GSM_IS_INHIBITOR (inhibitor));
+
+ g_free (inhibitor->priv->reason);
+
+ if (reason != NULL) {
+ inhibitor->priv->reason = g_strdup (reason);
+ } else {
+ inhibitor->priv->reason = g_strdup ("");
+ }
+ g_object_notify (G_OBJECT (inhibitor), "reason");
+}
+
+static void
+gsm_inhibitor_set_cookie (GsmInhibitor *inhibitor,
+ guint cookie)
+{
+ g_return_if_fail (GSM_IS_INHIBITOR (inhibitor));
+
+ if (inhibitor->priv->cookie != cookie) {
+ inhibitor->priv->cookie = cookie;
+ g_object_notify (G_OBJECT (inhibitor), "cookie");
+ }
+}
+
+static void
+gsm_inhibitor_set_flags (GsmInhibitor *inhibitor,
+ guint flags)
+{
+ g_return_if_fail (GSM_IS_INHIBITOR (inhibitor));
+
+ if (inhibitor->priv->flags != flags) {
+ inhibitor->priv->flags = flags;
+ g_object_notify (G_OBJECT (inhibitor), "flags");
+ }
+}
+
+static void
+gsm_inhibitor_set_toplevel_xid (GsmInhibitor *inhibitor,
+ guint xid)
+{
+ g_return_if_fail (GSM_IS_INHIBITOR (inhibitor));
+
+ if (inhibitor->priv->toplevel_xid != xid) {
+ inhibitor->priv->toplevel_xid = xid;
+ g_object_notify (G_OBJECT (inhibitor), "toplevel-xid");
+ }
+}
+
+const char *
+gsm_inhibitor_peek_bus_name (GsmInhibitor *inhibitor)
+{
+ g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), NULL);
+
+ return inhibitor->priv->bus_name;
+}
+
+gboolean
+gsm_inhibitor_get_app_id (GsmInhibitor *inhibitor,
+ char **id,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), FALSE);
+
+ if (inhibitor->priv->app_id != NULL) {
+ *id = g_strdup (inhibitor->priv->app_id);
+ } else {
+ *id = g_strdup ("");
+ }
+
+ return TRUE;
+}
+
+gboolean
+gsm_inhibitor_get_client_id (GsmInhibitor *inhibitor,
+ char **id,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), FALSE);
+
+ /* object paths are not allowed to be NULL or blank */
+ if (IS_STRING_EMPTY (inhibitor->priv->client_id)) {
+ g_set_error (error,
+ GSM_INHIBITOR_ERROR,
+ GSM_INHIBITOR_ERROR_NOT_SET,
+ "Value is not set");
+ return FALSE;
+ }
+
+ *id = g_strdup (inhibitor->priv->client_id);
+
+ g_debug ("GsmInhibitor: getting client-id = '%s'", *id);
+
+ return TRUE;
+}
+
+gboolean
+gsm_inhibitor_get_reason (GsmInhibitor *inhibitor,
+ char **reason,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), FALSE);
+
+ if (inhibitor->priv->reason != NULL) {
+ *reason = g_strdup (inhibitor->priv->reason);
+ } else {
+ *reason = g_strdup ("");
+ }
+
+ return TRUE;
+}
+
+gboolean
+gsm_inhibitor_get_flags (GsmInhibitor *inhibitor,
+ guint *flags,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), FALSE);
+
+ *flags = inhibitor->priv->flags;
+
+ return TRUE;
+}
+
+gboolean
+gsm_inhibitor_get_toplevel_xid (GsmInhibitor *inhibitor,
+ guint *xid,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), FALSE);
+
+ *xid = inhibitor->priv->toplevel_xid;
+
+ return TRUE;
+}
+
+const char *
+gsm_inhibitor_peek_id (GsmInhibitor *inhibitor)
+{
+ g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), NULL);
+
+ return inhibitor->priv->id;
+}
+
+const char *
+gsm_inhibitor_peek_app_id (GsmInhibitor *inhibitor)
+{
+ g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), NULL);
+
+ return inhibitor->priv->app_id;
+}
+
+const char *
+gsm_inhibitor_peek_client_id (GsmInhibitor *inhibitor)
+{
+ g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), NULL);
+
+ return inhibitor->priv->client_id;
+}
+
+const char *
+gsm_inhibitor_peek_reason (GsmInhibitor *inhibitor)
+{
+ g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), NULL);
+
+ return inhibitor->priv->reason;
+}
+
+guint
+gsm_inhibitor_peek_flags (GsmInhibitor *inhibitor)
+{
+ g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), 0);
+
+ return inhibitor->priv->flags;
+}
+
+guint
+gsm_inhibitor_peek_toplevel_xid (GsmInhibitor *inhibitor)
+{
+ g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), 0);
+
+ return inhibitor->priv->toplevel_xid;
+}
+
+guint
+gsm_inhibitor_peek_cookie (GsmInhibitor *inhibitor)
+{
+ g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), 0);
+
+ return inhibitor->priv->cookie;
+}
+
+static void
+gsm_inhibitor_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GsmInhibitor *self;
+
+ self = GSM_INHIBITOR (object);
+
+ switch (prop_id) {
+ case PROP_BUS_NAME:
+ gsm_inhibitor_set_bus_name (self, g_value_get_string (value));
+ break;
+ case PROP_APP_ID:
+ gsm_inhibitor_set_app_id (self, g_value_get_string (value));
+ break;
+ case PROP_CLIENT_ID:
+ gsm_inhibitor_set_client_id (self, g_value_get_string (value));
+ break;
+ case PROP_REASON:
+ gsm_inhibitor_set_reason (self, g_value_get_string (value));
+ break;
+ case PROP_FLAGS:
+ gsm_inhibitor_set_flags (self, g_value_get_uint (value));
+ break;
+ case PROP_COOKIE:
+ gsm_inhibitor_set_cookie (self, g_value_get_uint (value));
+ break;
+ case PROP_TOPLEVEL_XID:
+ gsm_inhibitor_set_toplevel_xid (self, g_value_get_uint (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_inhibitor_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GsmInhibitor *self;
+
+ self = GSM_INHIBITOR (object);
+
+ switch (prop_id) {
+ case PROP_BUS_NAME:
+ g_value_set_string (value, self->priv->bus_name);
+ break;
+ case PROP_APP_ID:
+ g_value_set_string (value, self->priv->app_id);
+ break;
+ case PROP_CLIENT_ID:
+ g_value_set_string (value, self->priv->client_id);
+ break;
+ case PROP_REASON:
+ g_value_set_string (value, self->priv->reason);
+ break;
+ case PROP_FLAGS:
+ g_value_set_uint (value, self->priv->flags);
+ break;
+ case PROP_COOKIE:
+ g_value_set_uint (value, self->priv->cookie);
+ break;
+ case PROP_TOPLEVEL_XID:
+ g_value_set_uint (value, self->priv->toplevel_xid);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_inhibitor_finalize (GObject *object)
+{
+ GsmInhibitor *inhibitor = (GsmInhibitor *) object;
+
+ g_free (inhibitor->priv->id);
+ g_free (inhibitor->priv->bus_name);
+ g_free (inhibitor->priv->app_id);
+ g_free (inhibitor->priv->client_id);
+ g_free (inhibitor->priv->reason);
+
+ G_OBJECT_CLASS (gsm_inhibitor_parent_class)->finalize (object);
+}
+
+static void
+gsm_inhibitor_class_init (GsmInhibitorClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->finalize = gsm_inhibitor_finalize;
+ object_class->constructor = gsm_inhibitor_constructor;
+ object_class->get_property = gsm_inhibitor_get_property;
+ object_class->set_property = gsm_inhibitor_set_property;
+
+ g_object_class_install_property (object_class,
+ PROP_BUS_NAME,
+ g_param_spec_string ("bus-name",
+ "bus-name",
+ "bus-name",
+ "",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_APP_ID,
+ g_param_spec_string ("app-id",
+ "app-id",
+ "app-id",
+ "",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_CLIENT_ID,
+ g_param_spec_string ("client-id",
+ "client-id",
+ "client-id",
+ "",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_REASON,
+ g_param_spec_string ("reason",
+ "reason",
+ "reason",
+ "",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_FLAGS,
+ g_param_spec_uint ("flags",
+ "flags",
+ "flags",
+ 0,
+ G_MAXINT,
+ 0,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_TOPLEVEL_XID,
+ g_param_spec_uint ("toplevel-xid",
+ "toplevel-xid",
+ "toplevel-xid",
+ 0,
+ G_MAXINT,
+ 0,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_COOKIE,
+ g_param_spec_uint ("cookie",
+ "cookie",
+ "cookie",
+ 0,
+ G_MAXINT,
+ 0,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+ dbus_g_object_type_install_info (GSM_TYPE_INHIBITOR, &dbus_glib_gsm_inhibitor_object_info);
+ dbus_g_error_domain_register (GSM_INHIBITOR_ERROR, NULL, GSM_INHIBITOR_TYPE_ERROR);
+ g_type_class_add_private (klass, sizeof (GsmInhibitorPrivate));
+}
+
+GsmInhibitor *
+gsm_inhibitor_new (const char *app_id,
+ guint toplevel_xid,
+ guint flags,
+ const char *reason,
+ const char *bus_name,
+ guint cookie)
+{
+ GsmInhibitor *inhibitor;
+
+ inhibitor = g_object_new (GSM_TYPE_INHIBITOR,
+ "app-id", app_id,
+ "reason", reason,
+ "bus-name", bus_name,
+ "flags", flags,
+ "toplevel-xid", toplevel_xid,
+ "cookie", cookie,
+ NULL);
+
+ return inhibitor;
+}
+
+GsmInhibitor *
+gsm_inhibitor_new_for_client (const char *client_id,
+ const char *app_id,
+ guint flags,
+ const char *reason,
+ const char *bus_name,
+ guint cookie)
+{
+ GsmInhibitor *inhibitor;
+
+ inhibitor = g_object_new (GSM_TYPE_INHIBITOR,
+ "client-id", client_id,
+ "app-id", app_id,
+ "reason", reason,
+ "bus-name", bus_name,
+ "flags", flags,
+ "cookie", cookie,
+ NULL);
+
+ return inhibitor;
+}
diff --git a/mate-session/gsm-inhibitor.h b/mate-session/gsm-inhibitor.h
new file mode 100644
index 0000000..c4fc5b3
--- /dev/null
+++ b/mate-session/gsm-inhibitor.h
@@ -0,0 +1,120 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef __GSM_INHIBITOR_H__
+#define __GSM_INHIBITOR_H__
+
+#include <glib-object.h>
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GSM_TYPE_INHIBITOR (gsm_inhibitor_get_type ())
+#define GSM_INHIBITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSM_TYPE_INHIBITOR, GsmInhibitor))
+#define GSM_INHIBITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSM_TYPE_INHIBITOR, GsmInhibitorClass))
+#define GSM_IS_INHIBITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSM_TYPE_INHIBITOR))
+#define GSM_IS_INHIBITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSM_TYPE_INHIBITOR))
+#define GSM_INHIBITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSM_TYPE_INHIBITOR, GsmInhibitorClass))
+
+typedef struct _GsmInhibitor GsmInhibitor;
+typedef struct _GsmInhibitorClass GsmInhibitorClass;
+
+typedef struct GsmInhibitorPrivate GsmInhibitorPrivate;
+
+struct _GsmInhibitor
+{
+ GObject parent;
+ GsmInhibitorPrivate *priv;
+};
+
+struct _GsmInhibitorClass
+{
+ GObjectClass parent_class;
+};
+
+typedef enum {
+ GSM_INHIBITOR_FLAG_LOGOUT = 1 << 0,
+ GSM_INHIBITOR_FLAG_SWITCH_USER = 1 << 1,
+ GSM_INHIBITOR_FLAG_SUSPEND = 1 << 2,
+ GSM_INHIBITOR_FLAG_IDLE = 1 << 3
+} GsmInhibitorFlag;
+
+typedef enum
+{
+ GSM_INHIBITOR_ERROR_GENERAL = 0,
+ GSM_INHIBITOR_ERROR_NOT_SET,
+ GSM_INHIBITOR_NUM_ERRORS
+} GsmInhibitorError;
+
+#define GSM_INHIBITOR_ERROR gsm_inhibitor_error_quark ()
+GType gsm_inhibitor_error_get_type (void);
+#define GSM_INHIBITOR_TYPE_ERROR (gsm_inhibitor_error_get_type ())
+
+GQuark gsm_inhibitor_error_quark (void);
+
+GType gsm_inhibitor_get_type (void) G_GNUC_CONST;
+
+GsmInhibitor * gsm_inhibitor_new (const char *app_id,
+ guint toplevel_xid,
+ guint flags,
+ const char *reason,
+ const char *bus_name,
+ guint cookie);
+GsmInhibitor * gsm_inhibitor_new_for_client (const char *client_id,
+ const char *app_id,
+ guint flags,
+ const char *reason,
+ const char *bus_name,
+ guint cookie);
+
+const char * gsm_inhibitor_peek_id (GsmInhibitor *inhibitor);
+const char * gsm_inhibitor_peek_app_id (GsmInhibitor *inhibitor);
+const char * gsm_inhibitor_peek_client_id (GsmInhibitor *inhibitor);
+const char * gsm_inhibitor_peek_reason (GsmInhibitor *inhibitor);
+const char * gsm_inhibitor_peek_bus_name (GsmInhibitor *inhibitor);
+guint gsm_inhibitor_peek_cookie (GsmInhibitor *inhibitor);
+guint gsm_inhibitor_peek_flags (GsmInhibitor *inhibitor);
+guint gsm_inhibitor_peek_toplevel_xid (GsmInhibitor *inhibitor);
+
+/* exported to bus */
+gboolean gsm_inhibitor_get_app_id (GsmInhibitor *inhibitor,
+ char **id,
+ GError **error);
+gboolean gsm_inhibitor_get_client_id (GsmInhibitor *inhibitor,
+ char **id,
+ GError **error);
+gboolean gsm_inhibitor_get_reason (GsmInhibitor *inhibitor,
+ char **reason,
+ GError **error);
+gboolean gsm_inhibitor_get_flags (GsmInhibitor *inhibitor,
+ guint *flags,
+ GError **error);
+gboolean gsm_inhibitor_get_toplevel_xid (GsmInhibitor *inhibitor,
+ guint *xid,
+ GError **error);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSM_INHIBITOR_H__ */
diff --git a/mate-session/gsm-logout-dialog.c b/mate-session/gsm-logout-dialog.c
new file mode 100644
index 0000000..de606a4
--- /dev/null
+++ b/mate-session/gsm-logout-dialog.c
@@ -0,0 +1,461 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2006 Vincent Untz
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * Authors:
+ * Vincent Untz <[email protected]>
+ */
+
+#include <config.h>
+
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+
+#include <upower.h>
+
+#include "gsm-logout-dialog.h"
+#include "gsm-consolekit.h"
+#include "mdm.h"
+
+#define GSM_LOGOUT_DIALOG_GET_PRIVATE(o) \
+ (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_LOGOUT_DIALOG, GsmLogoutDialogPrivate))
+
+#define AUTOMATIC_ACTION_TIMEOUT 60
+
+#define GSM_ICON_LOGOUT "system-log-out"
+#define GSM_ICON_SHUTDOWN "system-shutdown"
+
+typedef enum {
+ GSM_DIALOG_LOGOUT_TYPE_LOGOUT,
+ GSM_DIALOG_LOGOUT_TYPE_SHUTDOWN
+} GsmDialogLogoutType;
+
+struct _GsmLogoutDialogPrivate
+{
+ GsmDialogLogoutType type;
+
+ UpClient *up_client;
+ GsmConsolekit *consolekit;
+
+ int timeout;
+ unsigned int timeout_id;
+
+ unsigned int default_response;
+};
+
+static GsmLogoutDialog *current_dialog = NULL;
+
+static void gsm_logout_dialog_set_timeout (GsmLogoutDialog *logout_dialog);
+
+static void gsm_logout_dialog_destroy (GsmLogoutDialog *logout_dialog,
+ gpointer data);
+
+static void gsm_logout_dialog_show (GsmLogoutDialog *logout_dialog,
+ gpointer data);
+
+enum {
+ PROP_0,
+ PROP_MESSAGE_TYPE
+};
+
+G_DEFINE_TYPE (GsmLogoutDialog, gsm_logout_dialog, GTK_TYPE_MESSAGE_DIALOG);
+
+static void
+gsm_logout_dialog_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ switch (prop_id) {
+ case PROP_MESSAGE_TYPE:
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_logout_dialog_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ switch (prop_id) {
+ case PROP_MESSAGE_TYPE:
+ g_value_set_enum (value, GTK_MESSAGE_WARNING);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_logout_dialog_class_init (GsmLogoutDialogClass *klass)
+{
+ GObjectClass *gobject_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+
+ /* This is a workaround to avoid a stupid crash: libmateui
+ * listens for the "show" signal on all GtkMessageDialog and
+ * gets the "message-type" of the dialogs. We will crash when
+ * it accesses this property if we don't override it since we
+ * didn't define it. */
+ gobject_class->set_property = gsm_logout_dialog_set_property;
+ gobject_class->get_property = gsm_logout_dialog_get_property;
+
+ g_object_class_override_property (gobject_class,
+ PROP_MESSAGE_TYPE,
+ "message-type");
+
+ g_type_class_add_private (klass, sizeof (GsmLogoutDialogPrivate));
+}
+
+static void
+gsm_logout_dialog_init (GsmLogoutDialog *logout_dialog)
+{
+ logout_dialog->priv = GSM_LOGOUT_DIALOG_GET_PRIVATE (logout_dialog);
+
+ logout_dialog->priv->timeout_id = 0;
+ logout_dialog->priv->timeout = 0;
+ logout_dialog->priv->default_response = GTK_RESPONSE_CANCEL;
+
+ gtk_window_set_skip_taskbar_hint (GTK_WINDOW (logout_dialog), TRUE);
+ gtk_window_set_keep_above (GTK_WINDOW (logout_dialog), TRUE);
+ gtk_window_stick (GTK_WINDOW (logout_dialog));
+
+ logout_dialog->priv->up_client = up_client_new ();
+
+ logout_dialog->priv->consolekit = gsm_get_consolekit ();
+
+ g_signal_connect (logout_dialog,
+ "destroy",
+ G_CALLBACK (gsm_logout_dialog_destroy),
+ NULL);
+
+ g_signal_connect (logout_dialog,
+ "show",
+ G_CALLBACK (gsm_logout_dialog_show),
+ NULL);
+}
+
+static void
+gsm_logout_dialog_destroy (GsmLogoutDialog *logout_dialog,
+ gpointer data)
+{
+ if (logout_dialog->priv->timeout_id != 0) {
+ g_source_remove (logout_dialog->priv->timeout_id);
+ logout_dialog->priv->timeout_id = 0;
+ }
+
+ if (logout_dialog->priv->up_client) {
+ g_object_unref (logout_dialog->priv->up_client);
+ logout_dialog->priv->up_client = NULL;
+ }
+
+ if (logout_dialog->priv->consolekit) {
+ g_object_unref (logout_dialog->priv->consolekit);
+ logout_dialog->priv->consolekit = NULL;
+ }
+
+ current_dialog = NULL;
+}
+
+static gboolean
+gsm_logout_supports_system_suspend (GsmLogoutDialog *logout_dialog)
+{
+ return up_client_get_can_suspend (logout_dialog->priv->up_client);
+}
+
+static gboolean
+gsm_logout_supports_system_hibernate (GsmLogoutDialog *logout_dialog)
+{
+ return up_client_get_can_hibernate (logout_dialog->priv->up_client);
+}
+
+static gboolean
+gsm_logout_supports_switch_user (GsmLogoutDialog *logout_dialog)
+{
+ gboolean ret;
+
+ ret = gsm_consolekit_can_switch_user (logout_dialog->priv->consolekit);
+
+ return ret;
+}
+
+static gboolean
+gsm_logout_supports_reboot (GsmLogoutDialog *logout_dialog)
+{
+ gboolean ret;
+
+ ret = gsm_consolekit_can_restart (logout_dialog->priv->consolekit);
+ if (!ret) {
+ ret = mdm_supports_logout_action (MDM_LOGOUT_ACTION_REBOOT);
+ }
+
+ return ret;
+}
+
+static gboolean
+gsm_logout_supports_shutdown (GsmLogoutDialog *logout_dialog)
+{
+ gboolean ret;
+
+ ret = gsm_consolekit_can_stop (logout_dialog->priv->consolekit);
+
+ if (!ret) {
+ ret = mdm_supports_logout_action (MDM_LOGOUT_ACTION_SHUTDOWN);
+ }
+
+ return ret;
+}
+
+static void
+gsm_logout_dialog_show (GsmLogoutDialog *logout_dialog, gpointer user_data)
+{
+ gsm_logout_dialog_set_timeout (logout_dialog);
+}
+
+static gboolean
+gsm_logout_dialog_timeout (gpointer data)
+{
+ GsmLogoutDialog *logout_dialog;
+ char *seconds_warning;
+ char *secondary_text;
+ int seconds_to_show;
+ static char *session_type = NULL;
+
+ logout_dialog = (GsmLogoutDialog *) data;
+
+ if (!logout_dialog->priv->timeout) {
+ gtk_dialog_response (GTK_DIALOG (logout_dialog),
+ logout_dialog->priv->default_response);
+
+ return FALSE;
+ }
+
+ if (logout_dialog->priv->timeout <= 30) {
+ seconds_to_show = logout_dialog->priv->timeout;
+ } else {
+ seconds_to_show = (logout_dialog->priv->timeout/10) * 10;
+
+ if (logout_dialog->priv->timeout % 10)
+ seconds_to_show += 10;
+ }
+
+ switch (logout_dialog->priv->type) {
+ case GSM_DIALOG_LOGOUT_TYPE_LOGOUT:
+ seconds_warning = ngettext ("You will be automatically logged "
+ "out in %d second.",
+ "You will be automatically logged "
+ "out in %d seconds.",
+ seconds_to_show);
+ break;
+
+ case GSM_DIALOG_LOGOUT_TYPE_SHUTDOWN:
+ seconds_warning = ngettext ("This system will be automatically "
+ "shut down in %d second.",
+ "This system will be automatically "
+ "shut down in %d seconds.",
+ seconds_to_show);
+ break;
+
+ default:
+ g_assert_not_reached ();
+ }
+
+ if (session_type == NULL) {
+ GsmConsolekit *consolekit;
+
+ consolekit = gsm_get_consolekit ();
+ session_type = gsm_consolekit_get_current_session_type (consolekit);
+ g_object_unref (consolekit);
+ }
+
+ if (g_strcmp0 (session_type, GSM_CONSOLEKIT_SESSION_TYPE_LOGIN_WINDOW) != 0) {
+ char *name, *tmp;
+
+ name = g_locale_to_utf8 (g_get_real_name (), -1, NULL, NULL, NULL);
+
+ if (!name || name[0] == '\0' || strcmp (name, "Unknown") == 0) {
+ name = g_locale_to_utf8 (g_get_user_name (), -1 , NULL, NULL, NULL);
+ }
+
+ if (!name) {
+ name = g_strdup (g_get_user_name ());
+ }
+
+ tmp = g_strdup_printf (_("You are currently logged in as \"%s\"."), name);
+ secondary_text = g_strconcat (tmp, "\n", seconds_warning, NULL);
+ g_free (tmp);
+
+ g_free (name);
+ } else {
+ secondary_text = g_strdup (seconds_warning);
+ }
+
+ gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (logout_dialog),
+ secondary_text,
+ seconds_to_show,
+ NULL);
+
+ logout_dialog->priv->timeout--;
+
+ g_free (secondary_text);
+
+ return TRUE;
+}
+
+static void
+gsm_logout_dialog_set_timeout (GsmLogoutDialog *logout_dialog)
+{
+ logout_dialog->priv->timeout = AUTOMATIC_ACTION_TIMEOUT;
+
+ /* Sets the secondary text */
+ gsm_logout_dialog_timeout (logout_dialog);
+
+ if (logout_dialog->priv->timeout_id != 0) {
+ g_source_remove (logout_dialog->priv->timeout_id);
+ }
+
+ logout_dialog->priv->timeout_id = g_timeout_add (1000,
+ gsm_logout_dialog_timeout,
+ logout_dialog);
+}
+
+static GtkWidget *
+gsm_get_dialog (GsmDialogLogoutType type,
+ GdkScreen *screen,
+ guint32 activate_time)
+{
+ GsmLogoutDialog *logout_dialog;
+ GtkWidget *dialog_image;
+ const char *primary_text;
+ const char *icon_name;
+
+ if (current_dialog != NULL) {
+ gtk_widget_destroy (GTK_WIDGET (current_dialog));
+ }
+
+ logout_dialog = g_object_new (GSM_TYPE_LOGOUT_DIALOG, NULL);
+
+ current_dialog = logout_dialog;
+
+ gtk_window_set_title (GTK_WINDOW (logout_dialog), "");
+
+ logout_dialog->priv->type = type;
+
+ icon_name = NULL;
+ primary_text = NULL;
+
+ switch (type) {
+ case GSM_DIALOG_LOGOUT_TYPE_LOGOUT:
+ icon_name = GSM_ICON_LOGOUT;
+ primary_text = _("Log out of this system now?");
+
+ logout_dialog->priv->default_response = GSM_LOGOUT_RESPONSE_LOGOUT;
+
+ if (gsm_logout_supports_switch_user (logout_dialog)) {
+ gtk_dialog_add_button (GTK_DIALOG (logout_dialog),
+ _("_Switch User"),
+ GSM_LOGOUT_RESPONSE_SWITCH_USER);
+ }
+
+ gtk_dialog_add_button (GTK_DIALOG (logout_dialog),
+ GTK_STOCK_CANCEL,
+ GTK_RESPONSE_CANCEL);
+
+ gtk_dialog_add_button (GTK_DIALOG (logout_dialog),
+ _("_Log Out"),
+ GSM_LOGOUT_RESPONSE_LOGOUT);
+
+ break;
+ case GSM_DIALOG_LOGOUT_TYPE_SHUTDOWN:
+ icon_name = GSM_ICON_SHUTDOWN;
+ primary_text = _("Shut down this system now?");
+
+ logout_dialog->priv->default_response = GSM_LOGOUT_RESPONSE_SHUTDOWN;
+
+ if (gsm_logout_supports_system_suspend (logout_dialog)) {
+ gtk_dialog_add_button (GTK_DIALOG (logout_dialog),
+ _("S_uspend"),
+ GSM_LOGOUT_RESPONSE_SLEEP);
+ }
+
+ if (gsm_logout_supports_system_hibernate (logout_dialog)) {
+ gtk_dialog_add_button (GTK_DIALOG (logout_dialog),
+ _("_Hibernate"),
+ GSM_LOGOUT_RESPONSE_HIBERNATE);
+ }
+
+ if (gsm_logout_supports_reboot (logout_dialog)) {
+ gtk_dialog_add_button (GTK_DIALOG (logout_dialog),
+ _("_Restart"),
+ GSM_LOGOUT_RESPONSE_REBOOT);
+ }
+
+ gtk_dialog_add_button (GTK_DIALOG (logout_dialog),
+ GTK_STOCK_CANCEL,
+ GTK_RESPONSE_CANCEL);
+
+ if (gsm_logout_supports_shutdown (logout_dialog)) {
+ gtk_dialog_add_button (GTK_DIALOG (logout_dialog),
+ _("_Shut Down"),
+ GSM_LOGOUT_RESPONSE_SHUTDOWN);
+ }
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+
+ dialog_image = gtk_message_dialog_get_image (GTK_MESSAGE_DIALOG (logout_dialog));
+
+ gtk_image_set_from_icon_name (GTK_IMAGE (dialog_image),
+ icon_name, GTK_ICON_SIZE_DIALOG);
+ gtk_window_set_icon_name (GTK_WINDOW (logout_dialog), icon_name);
+ gtk_window_set_position (GTK_WINDOW (logout_dialog), GTK_WIN_POS_CENTER_ALWAYS);
+ gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG (logout_dialog), primary_text);
+
+ gtk_dialog_set_default_response (GTK_DIALOG (logout_dialog),
+ logout_dialog->priv->default_response);
+
+ gtk_window_set_screen (GTK_WINDOW (logout_dialog), screen);
+
+ return GTK_WIDGET (logout_dialog);
+}
+
+GtkWidget *
+gsm_get_shutdown_dialog (GdkScreen *screen,
+ guint32 activate_time)
+{
+ return gsm_get_dialog (GSM_DIALOG_LOGOUT_TYPE_SHUTDOWN,
+ screen,
+ activate_time);
+}
+
+GtkWidget *
+gsm_get_logout_dialog (GdkScreen *screen,
+ guint32 activate_time)
+{
+ return gsm_get_dialog (GSM_DIALOG_LOGOUT_TYPE_LOGOUT,
+ screen,
+ activate_time);
+}
diff --git a/mate-session/gsm-logout-dialog.h b/mate-session/gsm-logout-dialog.h
new file mode 100644
index 0000000..c3aad69
--- /dev/null
+++ b/mate-session/gsm-logout-dialog.h
@@ -0,0 +1,77 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2006 Vincent Untz
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * Authors:
+ * Vincent Untz <[email protected]>
+ */
+
+#ifndef __GSM_LOGOUT_DIALOG_H__
+#define __GSM_LOGOUT_DIALOG_H__
+
+#include <gtk/gtk.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum
+{
+ GSM_LOGOUT_RESPONSE_LOGOUT,
+ GSM_LOGOUT_RESPONSE_SWITCH_USER,
+ GSM_LOGOUT_RESPONSE_SHUTDOWN,
+ GSM_LOGOUT_RESPONSE_REBOOT,
+ GSM_LOGOUT_RESPONSE_HIBERNATE,
+ GSM_LOGOUT_RESPONSE_SLEEP
+};
+
+#define GSM_TYPE_LOGOUT_DIALOG (gsm_logout_dialog_get_type ())
+#define GSM_LOGOUT_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSM_TYPE_LOGOUT_DIALOG, GsmLogoutDialog))
+#define GSM_LOGOUT_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSM_TYPE_LOGOUT_DIALOG, GsmLogoutDialogClass))
+#define GSM_IS_LOGOUT_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSM_TYPE_LOGOUT_DIALOG))
+#define GSM_IS_LOGOUT_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSM_TYPE_LOGOUT_DIALOG))
+#define GSM_LOGOUT_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSM_TYPE_LOGOUT_DIALOG, GsmLogoutDialogClass))
+
+typedef struct _GsmLogoutDialog GsmLogoutDialog;
+typedef struct _GsmLogoutDialogClass GsmLogoutDialogClass;
+typedef struct _GsmLogoutDialogPrivate GsmLogoutDialogPrivate;
+
+struct _GsmLogoutDialog
+{
+ GtkMessageDialog parent;
+
+ GsmLogoutDialogPrivate *priv;
+};
+
+struct _GsmLogoutDialogClass
+{
+ GtkMessageDialogClass parent_class;
+};
+
+GType gsm_logout_dialog_get_type (void) G_GNUC_CONST;
+
+GtkWidget *gsm_get_logout_dialog (GdkScreen *screen,
+ guint32 activate_time);
+GtkWidget *gsm_get_shutdown_dialog (GdkScreen *screen,
+ guint32 activate_time);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSM_LOGOUT_DIALOG_H__ */
diff --git a/mate-session/gsm-manager.c b/mate-session/gsm-manager.c
new file mode 100644
index 0000000..cbddf21
--- /dev/null
+++ b/mate-session/gsm-manager.c
@@ -0,0 +1,3481 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007 Novell, Inc.
+ * Copyright (C) 2008 Red Hat, Inc.
+ * Copyright (C) 2008 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <string.h>
+#include <signal.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <glib/gstdio.h>
+#include <glib-object.h>
+#include <dbus/dbus-glib.h>
+#include <dbus/dbus-glib-lowlevel.h>
+
+#include <upower.h>
+
+#include <gtk/gtk.h> /* for logout dialog */
+#include <mateconf/mateconf-client.h>
+
+#include "gsm-manager.h"
+#include "gsm-manager-glue.h"
+
+#include "gsm-store.h"
+#include "gsm-inhibitor.h"
+#include "gsm-presence.h"
+
+#include "gsm-xsmp-client.h"
+#include "gsm-dbus-client.h"
+
+#include "gsm-autostart-app.h"
+
+#include "gsm-util.h"
+#include "mdm.h"
+#include "gsm-logout-dialog.h"
+#include "gsm-inhibit-dialog.h"
+#include "gsm-consolekit.h"
+#include "gsm-session-save.h"
+
+#define GSM_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_MANAGER, GsmManagerPrivate))
+
+#define GSM_MANAGER_DBUS_PATH "/org/mate/SessionManager"
+#define GSM_MANAGER_DBUS_NAME "org.mate.SessionManager"
+
+#define GSM_MANAGER_PHASE_TIMEOUT 10 /* seconds */
+
+#define MDM_FLEXISERVER_COMMAND "mdmflexiserver"
+#define MDM_FLEXISERVER_ARGS "--startnew Standard"
+
+
+#define KEY_LOCKDOWN_DIR "/desktop/mate/lockdown"
+#define KEY_LOCK_DISABLE KEY_LOCKDOWN_DIR "/disable_lock_screen"
+#define KEY_USER_SWITCH_DISABLE KEY_LOCKDOWN_DIR "/disable_user_switching"
+
+#define KEY_DESKTOP_DIR "/desktop/mate/session"
+#define KEY_IDLE_DELAY KEY_DESKTOP_DIR "/idle_delay"
+
+#define KEY_MATE_SESSION_DIR "/apps/mate-session/options"
+#define KEY_AUTOSAVE KEY_MATE_SESSION_DIR "/auto_save_session"
+
+#define KEY_SLEEP_LOCK "/apps/mate-screensaver/lock_enabled"
+
+#define IS_STRING_EMPTY(x) ((x)==NULL||(x)[0]=='\0')
+
+typedef enum
+{
+ GSM_MANAGER_LOGOUT_NONE,
+ GSM_MANAGER_LOGOUT_LOGOUT,
+ GSM_MANAGER_LOGOUT_REBOOT,
+ GSM_MANAGER_LOGOUT_REBOOT_INTERACT,
+ GSM_MANAGER_LOGOUT_REBOOT_MDM,
+ GSM_MANAGER_LOGOUT_SHUTDOWN,
+ GSM_MANAGER_LOGOUT_SHUTDOWN_INTERACT,
+ GSM_MANAGER_LOGOUT_SHUTDOWN_MDM
+} GsmManagerLogoutType;
+
+struct GsmManagerPrivate
+{
+ gboolean failsafe;
+ GsmStore *clients;
+ GsmStore *inhibitors;
+ GsmStore *apps;
+ GsmPresence *presence;
+
+ /* Current status */
+ GsmManagerPhase phase;
+ guint phase_timeout_id;
+ GSList *pending_apps;
+ gboolean forceful_logout;
+ GSList *query_clients;
+ guint query_timeout_id;
+ /* This is used for GSM_MANAGER_PHASE_END_SESSION only at the moment,
+ * since it uses a sublist of all running client that replied in a
+ * specific way */
+ GSList *next_query_clients;
+ /* This is the action that will be done just before we exit */
+ GsmManagerLogoutType logout_type;
+
+ GtkWidget *inhibit_dialog;
+
+ /* List of clients which were disconnected due to disabled condition
+ * and shouldn't be automatically restarted */
+ GSList *condition_clients;
+
+ MateConfClient *mateconf_client;
+ guint desktop_notify_id;
+ guint lockdown_notify_id;
+
+ DBusGProxy *bus_proxy;
+ DBusGConnection *connection;
+
+ /* Interface with other parts of the system */
+ UpClient *up_client;
+};
+
+enum {
+ PROP_0,
+ PROP_CLIENT_STORE,
+ PROP_FAILSAFE
+};
+
+enum {
+ PHASE_CHANGED,
+ CLIENT_ADDED,
+ CLIENT_REMOVED,
+ INHIBITOR_ADDED,
+ INHIBITOR_REMOVED,
+ SESSION_RUNNING,
+ SESSION_OVER,
+ LAST_SIGNAL
+};
+
+static guint signals [LAST_SIGNAL] = { 0 };
+
+static void gsm_manager_class_init (GsmManagerClass *klass);
+static void gsm_manager_init (GsmManager *manager);
+static void gsm_manager_finalize (GObject *object);
+
+static gboolean auto_save_is_enabled (GsmManager *manager);
+static void maybe_save_session (GsmManager *manager);
+
+static gpointer manager_object = NULL;
+
+G_DEFINE_TYPE (GsmManager, gsm_manager, G_TYPE_OBJECT)
+
+GQuark
+gsm_manager_error_quark (void)
+{
+ static GQuark ret = 0;
+ if (ret == 0) {
+ ret = g_quark_from_static_string ("gsm_manager_error");
+ }
+
+ return ret;
+}
+
+#define ENUM_ENTRY(NAME, DESC) { NAME, "" #NAME "", DESC }
+
+GType
+gsm_manager_error_get_type (void)
+{
+ static GType etype = 0;
+
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ ENUM_ENTRY (GSM_MANAGER_ERROR_GENERAL, "GeneralError"),
+ ENUM_ENTRY (GSM_MANAGER_ERROR_NOT_IN_INITIALIZATION, "NotInInitialization"),
+ ENUM_ENTRY (GSM_MANAGER_ERROR_NOT_IN_RUNNING, "NotInRunning"),
+ ENUM_ENTRY (GSM_MANAGER_ERROR_ALREADY_REGISTERED, "AlreadyRegistered"),
+ ENUM_ENTRY (GSM_MANAGER_ERROR_NOT_REGISTERED, "NotRegistered"),
+ ENUM_ENTRY (GSM_MANAGER_ERROR_INVALID_OPTION, "InvalidOption"),
+ { 0, 0, 0 }
+ };
+
+ g_assert (GSM_MANAGER_NUM_ERRORS == G_N_ELEMENTS (values) - 1);
+
+ etype = g_enum_register_static ("GsmManagerError", values);
+ }
+
+ return etype;
+}
+
+static gboolean
+_debug_client (const char *id,
+ GsmClient *client,
+ GsmManager *manager)
+{
+ g_debug ("GsmManager: Client %s", gsm_client_peek_id (client));
+ return FALSE;
+}
+
+static void
+debug_clients (GsmManager *manager)
+{
+ gsm_store_foreach (manager->priv->clients,
+ (GsmStoreFunc)_debug_client,
+ manager);
+}
+
+static gboolean
+_debug_inhibitor (const char *id,
+ GsmInhibitor *inhibitor,
+ GsmManager *manager)
+{
+ g_debug ("GsmManager: Inhibitor app:%s client:%s bus-name:%s reason:%s",
+ gsm_inhibitor_peek_app_id (inhibitor),
+ gsm_inhibitor_peek_client_id (inhibitor),
+ gsm_inhibitor_peek_bus_name (inhibitor),
+ gsm_inhibitor_peek_reason (inhibitor));
+ return FALSE;
+}
+
+static void
+debug_inhibitors (GsmManager *manager)
+{
+ gsm_store_foreach (manager->priv->inhibitors,
+ (GsmStoreFunc)_debug_inhibitor,
+ manager);
+}
+
+static gboolean
+_find_by_cookie (const char *id,
+ GsmInhibitor *inhibitor,
+ guint *cookie_ap)
+{
+ guint cookie_b;
+
+ cookie_b = gsm_inhibitor_peek_cookie (inhibitor);
+
+ return (*cookie_ap == cookie_b);
+}
+
+static gboolean
+_find_by_startup_id (const char *id,
+ GsmClient *client,
+ const char *startup_id_a)
+{
+ const char *startup_id_b;
+
+ startup_id_b = gsm_client_peek_startup_id (client);
+ if (IS_STRING_EMPTY (startup_id_b)) {
+ return FALSE;
+ }
+
+ return (strcmp (startup_id_a, startup_id_b) == 0);
+}
+
+static void
+app_condition_changed (GsmApp *app,
+ gboolean condition,
+ GsmManager *manager)
+{
+ GsmClient *client;
+
+ g_debug ("GsmManager: app:%s condition changed condition:%d",
+ gsm_app_peek_id (app),
+ condition);
+
+ client = (GsmClient *)gsm_store_find (manager->priv->clients,
+ (GsmStoreFunc)_find_by_startup_id,
+ (char *)gsm_app_peek_startup_id (app));
+
+ if (condition) {
+ if (!gsm_app_is_running (app) && client == NULL) {
+ GError *error;
+ gboolean res;
+
+ g_debug ("GsmManager: starting app '%s'", gsm_app_peek_id (app));
+
+ error = NULL;
+ res = gsm_app_start (app, &error);
+ if (error != NULL) {
+ g_warning ("Not able to start app from its condition: %s",
+ error->message);
+ g_error_free (error);
+ }
+ } else {
+ g_debug ("GsmManager: not starting - app still running '%s'", gsm_app_peek_id (app));
+ }
+ } else {
+ GError *error;
+ gboolean res;
+
+ if (client != NULL) {
+ /* Kill client in case condition if false and make sure it won't
+ * be automatically restarted by adding the client to
+ * condition_clients */
+ manager->priv->condition_clients =
+ g_slist_prepend (manager->priv->condition_clients, client);
+
+ g_debug ("GsmManager: stopping client %s for app", gsm_client_peek_id (client));
+
+ error = NULL;
+ res = gsm_client_stop (client, &error);
+ if (error != NULL) {
+ g_warning ("Not able to stop app client from its condition: %s",
+ error->message);
+ g_error_free (error);
+ }
+ } else {
+ g_debug ("GsmManager: stopping app %s", gsm_app_peek_id (app));
+
+ /* If we don't have a client then we should try to kill the app */
+ error = NULL;
+ res = gsm_app_stop (app, &error);
+ if (error != NULL) {
+ g_warning ("Not able to stop app from its condition: %s",
+ error->message);
+ g_error_free (error);
+ }
+ }
+ }
+}
+
+static const char *
+phase_num_to_name (guint phase)
+{
+ const char *name;
+
+ switch (phase) {
+ case GSM_MANAGER_PHASE_STARTUP:
+ name = "STARTUP";
+ break;
+ case GSM_MANAGER_PHASE_INITIALIZATION:
+ name = "INITIALIZATION";
+ break;
+ case GSM_MANAGER_PHASE_WINDOW_MANAGER:
+ name = "WINDOW_MANAGER";
+ break;
+ case GSM_MANAGER_PHASE_PANEL:
+ name = "PANEL";
+ break;
+ case GSM_MANAGER_PHASE_DESKTOP:
+ name = "DESKTOP";
+ break;
+ case GSM_MANAGER_PHASE_APPLICATION:
+ name = "APPLICATION";
+ break;
+ case GSM_MANAGER_PHASE_RUNNING:
+ name = "RUNNING";
+ break;
+ case GSM_MANAGER_PHASE_QUERY_END_SESSION:
+ name = "QUERY_END_SESSION";
+ break;
+ case GSM_MANAGER_PHASE_END_SESSION:
+ name = "END_SESSION";
+ break;
+ case GSM_MANAGER_PHASE_EXIT:
+ name = "EXIT";
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+
+ return name;
+}
+
+static void start_phase (GsmManager *manager);
+
+static void
+quit_request_completed (GsmConsolekit *consolekit,
+ GError *error,
+ gpointer user_data)
+{
+ MdmLogoutAction fallback_action = GPOINTER_TO_INT (user_data);
+
+ if (error != NULL) {
+ mdm_set_logout_action (fallback_action);
+ }
+
+ g_object_unref (consolekit);
+
+ gtk_main_quit ();
+}
+
+static void
+gsm_manager_quit (GsmManager *manager)
+{
+ GsmConsolekit *consolekit;
+
+ /* See the comment in request_reboot() for some more details about how
+ * this works. */
+
+ switch (manager->priv->logout_type) {
+ case GSM_MANAGER_LOGOUT_LOGOUT:
+ gtk_main_quit ();
+ break;
+ case GSM_MANAGER_LOGOUT_REBOOT:
+ case GSM_MANAGER_LOGOUT_REBOOT_INTERACT:
+ mdm_set_logout_action (MDM_LOGOUT_ACTION_NONE);
+
+ consolekit = gsm_get_consolekit ();
+ g_signal_connect (consolekit,
+ "request-completed",
+ G_CALLBACK (quit_request_completed),
+ GINT_TO_POINTER (MDM_LOGOUT_ACTION_REBOOT));
+ gsm_consolekit_attempt_restart (consolekit);
+ break;
+ case GSM_MANAGER_LOGOUT_REBOOT_MDM:
+ mdm_set_logout_action (MDM_LOGOUT_ACTION_REBOOT);
+ gtk_main_quit ();
+ break;
+ case GSM_MANAGER_LOGOUT_SHUTDOWN:
+ case GSM_MANAGER_LOGOUT_SHUTDOWN_INTERACT:
+ mdm_set_logout_action (MDM_LOGOUT_ACTION_NONE);
+
+ consolekit = gsm_get_consolekit ();
+ g_signal_connect (consolekit,
+ "request-completed",
+ G_CALLBACK (quit_request_completed),
+ GINT_TO_POINTER (MDM_LOGOUT_ACTION_SHUTDOWN));
+ gsm_consolekit_attempt_stop (consolekit);
+ break;
+ case GSM_MANAGER_LOGOUT_SHUTDOWN_MDM:
+ mdm_set_logout_action (MDM_LOGOUT_ACTION_SHUTDOWN);
+ gtk_main_quit ();
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+}
+
+static void
+end_phase (GsmManager *manager)
+{
+ g_debug ("GsmManager: ending phase %s\n",
+ phase_num_to_name (manager->priv->phase));
+
+ g_slist_free (manager->priv->pending_apps);
+ manager->priv->pending_apps = NULL;
+
+ g_slist_free (manager->priv->query_clients);
+ manager->priv->query_clients = NULL;
+
+ g_slist_free (manager->priv->next_query_clients);
+ manager->priv->next_query_clients = NULL;
+
+ if (manager->priv->phase_timeout_id > 0) {
+ g_source_remove (manager->priv->phase_timeout_id);
+ manager->priv->phase_timeout_id = 0;
+ }
+
+ switch (manager->priv->phase) {
+ case GSM_MANAGER_PHASE_STARTUP:
+ case GSM_MANAGER_PHASE_INITIALIZATION:
+ case GSM_MANAGER_PHASE_WINDOW_MANAGER:
+ case GSM_MANAGER_PHASE_PANEL:
+ case GSM_MANAGER_PHASE_DESKTOP:
+ case GSM_MANAGER_PHASE_APPLICATION:
+ case GSM_MANAGER_PHASE_RUNNING:
+ case GSM_MANAGER_PHASE_QUERY_END_SESSION:
+ manager->priv->phase++;
+ start_phase (manager);
+ break;
+ case GSM_MANAGER_PHASE_END_SESSION:
+ if (auto_save_is_enabled (manager)) {
+ maybe_save_session (manager);
+ }
+ manager->priv->phase++;
+ start_phase (manager);
+ break;
+ case GSM_MANAGER_PHASE_EXIT:
+ gsm_manager_quit (manager);
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+}
+
+static void
+app_registered (GsmApp *app,
+ GsmManager *manager)
+{
+ manager->priv->pending_apps = g_slist_remove (manager->priv->pending_apps, app);
+ g_signal_handlers_disconnect_by_func (app, app_registered, manager);
+
+ if (manager->priv->pending_apps == NULL) {
+ if (manager->priv->phase_timeout_id > 0) {
+ g_source_remove (manager->priv->phase_timeout_id);
+ manager->priv->phase_timeout_id = 0;
+ }
+
+ end_phase (manager);
+ }
+}
+
+static gboolean
+_client_failed_to_stop (const char *id,
+ GsmClient *client,
+ gpointer user_data)
+{
+ g_debug ("GsmManager: client failed to stop: %s, %s", gsm_client_peek_id (client), gsm_client_peek_app_id (client));
+ return FALSE;
+}
+
+static gboolean
+on_phase_timeout (GsmManager *manager)
+{
+ GSList *a;
+
+ manager->priv->phase_timeout_id = 0;
+
+ switch (manager->priv->phase) {
+ case GSM_MANAGER_PHASE_STARTUP:
+ case GSM_MANAGER_PHASE_INITIALIZATION:
+ case GSM_MANAGER_PHASE_WINDOW_MANAGER:
+ case GSM_MANAGER_PHASE_PANEL:
+ case GSM_MANAGER_PHASE_DESKTOP:
+ case GSM_MANAGER_PHASE_APPLICATION:
+ for (a = manager->priv->pending_apps; a; a = a->next) {
+ g_warning ("Application '%s' failed to register before timeout",
+ gsm_app_peek_app_id (a->data));
+ g_signal_handlers_disconnect_by_func (a->data, app_registered, manager);
+ /* FIXME: what if the app was filling in a required slot? */
+ }
+ break;
+ case GSM_MANAGER_PHASE_RUNNING:
+ break;
+ case GSM_MANAGER_PHASE_QUERY_END_SESSION:
+ case GSM_MANAGER_PHASE_END_SESSION:
+ break;
+ case GSM_MANAGER_PHASE_EXIT:
+ gsm_store_foreach (manager->priv->clients,
+ (GsmStoreFunc)_client_failed_to_stop,
+ NULL);
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+
+ end_phase (manager);
+
+ return FALSE;
+}
+
+static gboolean
+_start_app (const char *id,
+ GsmApp *app,
+ GsmManager *manager)
+{
+ GError *error;
+ gboolean res;
+
+ if (gsm_app_peek_phase (app) != manager->priv->phase) {
+ goto out;
+ }
+
+ /* Keep track of app autostart condition in order to react
+ * accordingly in the future. */
+ g_signal_connect (app,
+ "condition-changed",
+ G_CALLBACK (app_condition_changed),
+ manager);
+
+ if (gsm_app_peek_is_disabled (app)
+ || gsm_app_peek_is_conditionally_disabled (app)) {
+ g_debug ("GsmManager: Skipping disabled app: %s", id);
+ goto out;
+ }
+
+ error = NULL;
+ res = gsm_app_start (app, &error);
+ if (!res) {
+ if (error != NULL) {
+ g_warning ("Could not launch application '%s': %s",
+ gsm_app_peek_app_id (app),
+ error->message);
+ g_error_free (error);
+ error = NULL;
+ }
+ goto out;
+ }
+
+ if (manager->priv->phase < GSM_MANAGER_PHASE_APPLICATION) {
+ g_signal_connect (app,
+ "exited",
+ G_CALLBACK (app_registered),
+ manager);
+ g_signal_connect (app,
+ "registered",
+ G_CALLBACK (app_registered),
+ manager);
+ manager->priv->pending_apps = g_slist_prepend (manager->priv->pending_apps, app);
+ }
+ out:
+ return FALSE;
+}
+
+static void
+do_phase_startup (GsmManager *manager)
+{
+ gsm_store_foreach (manager->priv->apps,
+ (GsmStoreFunc)_start_app,
+ manager);
+
+ if (manager->priv->pending_apps != NULL) {
+ if (manager->priv->phase < GSM_MANAGER_PHASE_APPLICATION) {
+ manager->priv->phase_timeout_id = g_timeout_add_seconds (GSM_MANAGER_PHASE_TIMEOUT,
+ (GSourceFunc)on_phase_timeout,
+ manager);
+ }
+ } else {
+ end_phase (manager);
+ }
+}
+
+typedef struct {
+ GsmManager *manager;
+ guint flags;
+} ClientEndSessionData;
+
+
+static gboolean
+_client_end_session (GsmClient *client,
+ ClientEndSessionData *data)
+{
+ gboolean ret;
+ GError *error;
+
+ error = NULL;
+ ret = gsm_client_end_session (client, data->flags, &error);
+ if (! ret) {
+ g_warning ("Unable to query client: %s", error->message);
+ g_error_free (error);
+ /* FIXME: what should we do if we can't communicate with client? */
+ } else {
+ g_debug ("GsmManager: adding client to end-session clients: %s", gsm_client_peek_id (client));
+ data->manager->priv->query_clients = g_slist_prepend (data->manager->priv->query_clients,
+ client);
+ }
+
+ return FALSE;
+}
+
+static gboolean
+_client_end_session_helper (const char *id,
+ GsmClient *client,
+ ClientEndSessionData *data)
+{
+ return _client_end_session (client, data);
+}
+
+static void
+do_phase_end_session (GsmManager *manager)
+{
+ ClientEndSessionData data;
+
+ data.manager = manager;
+ data.flags = 0;
+
+ if (manager->priv->forceful_logout) {
+ data.flags |= GSM_CLIENT_END_SESSION_FLAG_FORCEFUL;
+ }
+ if (auto_save_is_enabled (manager)) {
+ data.flags |= GSM_CLIENT_END_SESSION_FLAG_SAVE;
+ }
+
+ if (manager->priv->phase_timeout_id > 0) {
+ g_source_remove (manager->priv->phase_timeout_id);
+ manager->priv->phase_timeout_id = 0;
+ }
+
+ if (gsm_store_size (manager->priv->clients) > 0) {
+ manager->priv->phase_timeout_id = g_timeout_add_seconds (GSM_MANAGER_PHASE_TIMEOUT,
+ (GSourceFunc)on_phase_timeout,
+ manager);
+
+ gsm_store_foreach (manager->priv->clients,
+ (GsmStoreFunc)_client_end_session_helper,
+ &data);
+ } else {
+ end_phase (manager);
+ }
+}
+
+static void
+do_phase_end_session_part_2 (GsmManager *manager)
+{
+ ClientEndSessionData data;
+
+ data.manager = manager;
+ data.flags = 0;
+
+ if (manager->priv->forceful_logout) {
+ data.flags |= GSM_CLIENT_END_SESSION_FLAG_FORCEFUL;
+ }
+ if (auto_save_is_enabled (manager)) {
+ data.flags |= GSM_CLIENT_END_SESSION_FLAG_SAVE;
+ }
+ data.flags |= GSM_CLIENT_END_SESSION_FLAG_LAST;
+
+ /* keep the timeout that was started at the beginning of the
+ * GSM_MANAGER_PHASE_END_SESSION phase */
+
+ if (g_slist_length (manager->priv->next_query_clients) > 0) {
+ g_slist_foreach (manager->priv->next_query_clients,
+ (GFunc)_client_end_session,
+ &data);
+
+ g_slist_free (manager->priv->next_query_clients);
+ manager->priv->next_query_clients = NULL;
+ } else {
+ end_phase (manager);
+ }
+}
+
+static gboolean
+_client_stop (const char *id,
+ GsmClient *client,
+ gpointer user_data)
+{
+ gboolean ret;
+ GError *error;
+
+ error = NULL;
+ ret = gsm_client_stop (client, &error);
+ if (! ret) {
+ g_warning ("Unable to stop client: %s", error->message);
+ g_error_free (error);
+ /* FIXME: what should we do if we can't communicate with client? */
+ } else {
+ g_debug ("GsmManager: stopped client: %s", gsm_client_peek_id (client));
+ }
+
+ return FALSE;
+}
+
+static void
+do_phase_exit (GsmManager *manager)
+{
+ if (gsm_store_size (manager->priv->clients) > 0) {
+ manager->priv->phase_timeout_id = g_timeout_add_seconds (GSM_MANAGER_PHASE_TIMEOUT,
+ (GSourceFunc)on_phase_timeout,
+ manager);
+
+ gsm_store_foreach (manager->priv->clients,
+ (GsmStoreFunc)_client_stop,
+ NULL);
+ } else {
+ end_phase (manager);
+ }
+}
+
+static gboolean
+_client_query_end_session (const char *id,
+ GsmClient *client,
+ ClientEndSessionData *data)
+{
+ gboolean ret;
+ GError *error;
+
+ error = NULL;
+ ret = gsm_client_query_end_session (client, data->flags, &error);
+ if (! ret) {
+ g_warning ("Unable to query client: %s", error->message);
+ g_error_free (error);
+ /* FIXME: what should we do if we can't communicate with client? */
+ } else {
+ g_debug ("GsmManager: adding client to query clients: %s", gsm_client_peek_id (client));
+ data->manager->priv->query_clients = g_slist_prepend (data->manager->priv->query_clients,
+ client);
+ }
+
+ return FALSE;
+}
+
+static gboolean
+inhibitor_has_flag (gpointer key,
+ GsmInhibitor *inhibitor,
+ gpointer data)
+{
+ guint flag;
+ guint flags;
+
+ flag = GPOINTER_TO_UINT (data);
+
+ flags = gsm_inhibitor_peek_flags (inhibitor);
+
+ return (flags & flag);
+}
+
+static gboolean
+gsm_manager_is_logout_inhibited (GsmManager *manager)
+{
+ GsmInhibitor *inhibitor;
+
+ if (manager->priv->inhibitors == NULL) {
+ return FALSE;
+ }
+
+ inhibitor = (GsmInhibitor *)gsm_store_find (manager->priv->inhibitors,
+ (GsmStoreFunc)inhibitor_has_flag,
+ GUINT_TO_POINTER (GSM_INHIBITOR_FLAG_LOGOUT));
+ if (inhibitor == NULL) {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static gboolean
+gsm_manager_is_idle_inhibited (GsmManager *manager)
+{
+ GsmInhibitor *inhibitor;
+
+ if (manager->priv->inhibitors == NULL) {
+ return FALSE;
+ }
+
+ inhibitor = (GsmInhibitor *)gsm_store_find (manager->priv->inhibitors,
+ (GsmStoreFunc)inhibitor_has_flag,
+ GUINT_TO_POINTER (GSM_INHIBITOR_FLAG_IDLE));
+ if (inhibitor == NULL) {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static gboolean
+_client_cancel_end_session (const char *id,
+ GsmClient *client,
+ GsmManager *manager)
+{
+ gboolean res;
+ GError *error;
+
+ error = NULL;
+ res = gsm_client_cancel_end_session (client, &error);
+ if (! res) {
+ g_warning ("Unable to cancel end session: %s", error->message);
+ g_error_free (error);
+ }
+
+ return FALSE;
+}
+
+static gboolean
+inhibitor_is_jit (gpointer key,
+ GsmInhibitor *inhibitor,
+ GsmManager *manager)
+{
+ gboolean matches;
+ const char *id;
+
+ id = gsm_inhibitor_peek_client_id (inhibitor);
+
+ matches = (id != NULL && id[0] != '\0');
+
+ return matches;
+}
+
+static void
+cancel_end_session (GsmManager *manager)
+{
+ /* just ignore if received outside of shutdown */
+ if (manager->priv->phase < GSM_MANAGER_PHASE_QUERY_END_SESSION) {
+ return;
+ }
+
+ /* switch back to running phase */
+ g_debug ("GsmManager: Cancelling the end of session");
+
+ /* remove the dialog before we remove the inhibitors, else the dialog
+ * will activate itself automatically when the last inhibitor will be
+ * removed */
+ if (manager->priv->inhibit_dialog)
+ gtk_widget_destroy (GTK_WIDGET (manager->priv->inhibit_dialog));
+ manager->priv->inhibit_dialog = NULL;
+
+ /* clear all JIT inhibitors */
+ gsm_store_foreach_remove (manager->priv->inhibitors,
+ (GsmStoreFunc)inhibitor_is_jit,
+ (gpointer)manager);
+
+ gsm_store_foreach (manager->priv->clients,
+ (GsmStoreFunc)_client_cancel_end_session,
+ NULL);
+
+ gsm_manager_set_phase (manager, GSM_MANAGER_PHASE_RUNNING);
+ manager->priv->forceful_logout = FALSE;
+
+ manager->priv->logout_type = GSM_MANAGER_LOGOUT_NONE;
+ mdm_set_logout_action (MDM_LOGOUT_ACTION_NONE);
+
+ start_phase (manager);
+}
+
+
+static void
+manager_switch_user (GsmManager *manager)
+{
+ GError *error;
+ gboolean res;
+ char *command;
+
+ command = g_strdup_printf ("%s %s",
+ MDM_FLEXISERVER_COMMAND,
+ MDM_FLEXISERVER_ARGS);
+
+ error = NULL;
+ res = gdk_spawn_command_line_on_screen (gdk_screen_get_default (),
+ command,
+ &error);
+
+ g_free (command);
+
+ if (! res) {
+ g_debug ("GsmManager: Unable to start MDM greeter: %s", error->message);
+ g_error_free (error);
+ }
+}
+
+static gboolean
+sleep_lock_is_enabled (GsmManager *manager)
+{
+ GError *error;
+ gboolean enable_lock;
+
+ error = NULL;
+ enable_lock = mateconf_client_get_bool (manager->priv->mateconf_client,
+ KEY_SLEEP_LOCK, &error);
+
+ if (error) {
+ g_warning ("Error retrieving configuration key '%s': %s",
+ KEY_SLEEP_LOCK, error->message);
+ g_error_free (error);
+
+ /* If we fail to query mateconf key, just enable locking */
+ enable_lock = TRUE;
+ }
+
+ return enable_lock;
+}
+
+static void
+manager_perhaps_lock (GsmManager *manager)
+{
+ GError *error;
+ gboolean ret;
+
+ /* only lock if mate-screensaver is set to lock */
+ if (!sleep_lock_is_enabled (manager)) {
+ return;
+ }
+
+ /* do this sync to ensure it's on the screen when we start suspending */
+ error = NULL;
+ ret = g_spawn_command_line_sync ("mate-screensaver-command --lock", NULL, NULL, NULL, &error);
+ if (!ret) {
+ g_warning ("Couldn't lock screen: %s", error->message);
+ g_error_free (error);
+ }
+}
+
+static void
+manager_attempt_hibernate (GsmManager *manager)
+{
+ gboolean can_hibernate;
+ GError *error;
+ gboolean ret;
+
+ can_hibernate = up_client_get_can_hibernate (manager->priv->up_client);
+ if (can_hibernate) {
+
+ /* lock the screen before we suspend */
+ manager_perhaps_lock (manager);
+
+ error = NULL;
+ ret = up_client_hibernate_sync (manager->priv->up_client, NULL, &error);
+ if (!ret) {
+ g_warning ("Unexpected hibernate failure: %s",
+ error->message);
+ g_error_free (error);
+ }
+ }
+}
+
+static void
+manager_attempt_suspend (GsmManager *manager)
+{
+ gboolean can_suspend;
+ GError *error;
+ gboolean ret;
+
+ can_suspend = up_client_get_can_suspend (manager->priv->up_client);
+ if (can_suspend) {
+
+ /* lock the screen before we suspend */
+ manager_perhaps_lock (manager);
+
+ error = NULL;
+ ret = up_client_suspend_sync (manager->priv->up_client, NULL, &error);
+ if (!ret) {
+ g_warning ("Unexpected suspend failure: %s",
+ error->message);
+ g_error_free (error);
+ }
+ }
+}
+
+static void
+do_inhibit_dialog_action (GsmManager *manager,
+ int action)
+{
+ switch (action) {
+ case GSM_LOGOUT_ACTION_SWITCH_USER:
+ manager_switch_user (manager);
+ break;
+ case GSM_LOGOUT_ACTION_HIBERNATE:
+ manager_attempt_hibernate (manager);
+ break;
+ case GSM_LOGOUT_ACTION_SLEEP:
+ manager_attempt_suspend (manager);
+ break;
+ case GSM_LOGOUT_ACTION_SHUTDOWN:
+ case GSM_LOGOUT_ACTION_REBOOT:
+ case GSM_LOGOUT_ACTION_LOGOUT:
+ manager->priv->forceful_logout = TRUE;
+ end_phase (manager);
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+}
+
+static void
+inhibit_dialog_response (GsmInhibitDialog *dialog,
+ guint response_id,
+ GsmManager *manager)
+{
+ int action;
+
+ g_debug ("GsmManager: Inhibit dialog response: %d", response_id);
+
+ /* must destroy dialog before cancelling since we'll
+ remove JIT inhibitors and we don't want to trigger
+ action. */
+ g_object_get (dialog, "action", &action, NULL);
+ gtk_widget_destroy (GTK_WIDGET (dialog));
+ manager->priv->inhibit_dialog = NULL;
+
+ /* In case of dialog cancel, switch user, hibernate and
+ * suspend, we just perform the respective action and return,
+ * without shutting down the session. */
+ switch (response_id) {
+ case GTK_RESPONSE_CANCEL:
+ case GTK_RESPONSE_NONE:
+ case GTK_RESPONSE_DELETE_EVENT:
+ if (action == GSM_LOGOUT_ACTION_LOGOUT
+ || action == GSM_LOGOUT_ACTION_SHUTDOWN
+ || action == GSM_LOGOUT_ACTION_REBOOT) {
+ cancel_end_session (manager);
+ }
+ break;
+ case GTK_RESPONSE_ACCEPT:
+ g_debug ("GsmManager: doing action %d", action);
+ do_inhibit_dialog_action (manager, action);
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+}
+
+static void
+query_end_session_complete (GsmManager *manager)
+{
+ GsmLogoutAction action;
+
+ g_debug ("GsmManager: query end session complete");
+
+ /* Remove the timeout since this can be called from outside the timer
+ * and we don't want to have it called twice */
+ if (manager->priv->query_timeout_id > 0) {
+ g_source_remove (manager->priv->query_timeout_id);
+ manager->priv->query_timeout_id = 0;
+ }
+
+ if (! gsm_manager_is_logout_inhibited (manager)) {
+ end_phase (manager);
+ return;
+ }
+
+ if (manager->priv->inhibit_dialog != NULL) {
+ g_debug ("GsmManager: inhibit dialog already up");
+ gtk_window_present (GTK_WINDOW (manager->priv->inhibit_dialog));
+ return;
+ }
+
+ switch (manager->priv->logout_type) {
+ case GSM_MANAGER_LOGOUT_LOGOUT:
+ action = GSM_LOGOUT_ACTION_LOGOUT;
+ break;
+ case GSM_MANAGER_LOGOUT_REBOOT:
+ case GSM_MANAGER_LOGOUT_REBOOT_INTERACT:
+ case GSM_MANAGER_LOGOUT_REBOOT_MDM:
+ action = GSM_LOGOUT_ACTION_REBOOT;
+ break;
+ case GSM_MANAGER_LOGOUT_SHUTDOWN:
+ case GSM_MANAGER_LOGOUT_SHUTDOWN_INTERACT:
+ case GSM_MANAGER_LOGOUT_SHUTDOWN_MDM:
+ action = GSM_LOGOUT_ACTION_SHUTDOWN;
+ break;
+ default:
+ g_warning ("Unexpected logout type %d when creating inhibit dialog",
+ manager->priv->logout_type);
+ action = GSM_LOGOUT_ACTION_LOGOUT;
+ break;
+ }
+
+ /* Note: GSM_LOGOUT_ACTION_SHUTDOWN and GSM_LOGOUT_ACTION_REBOOT are
+ * actually handled the same way as GSM_LOGOUT_ACTION_LOGOUT in the
+ * inhibit dialog; the action, if the button is clicked, will be to
+ * simply go to the next phase. */
+ manager->priv->inhibit_dialog = gsm_inhibit_dialog_new (manager->priv->inhibitors,
+ manager->priv->clients,
+ action);
+
+ g_signal_connect (manager->priv->inhibit_dialog,
+ "response",
+ G_CALLBACK (inhibit_dialog_response),
+ manager);
+ gtk_widget_show (manager->priv->inhibit_dialog);
+
+}
+
+static guint32
+generate_cookie (void)
+{
+ guint32 cookie;
+
+ cookie = (guint32)g_random_int_range (1, G_MAXINT32);
+
+ return cookie;
+}
+
+static guint32
+_generate_unique_cookie (GsmManager *manager)
+{
+ guint32 cookie;
+
+ do {
+ cookie = generate_cookie ();
+ } while (gsm_store_find (manager->priv->inhibitors, (GsmStoreFunc)_find_by_cookie, &cookie) != NULL);
+
+ return cookie;
+}
+
+static gboolean
+_on_query_end_session_timeout (GsmManager *manager)
+{
+ GSList *l;
+
+ manager->priv->query_timeout_id = 0;
+
+ g_debug ("GsmManager: query end session timed out");
+
+ for (l = manager->priv->query_clients; l != NULL; l = l->next) {
+ guint cookie;
+ GsmInhibitor *inhibitor;
+ const char *bus_name;
+ char *app_id;
+
+ g_warning ("Client '%s' failed to reply before timeout",
+ gsm_client_peek_id (l->data));
+
+ /* Add JIT inhibit for unresponsive client */
+ if (GSM_IS_DBUS_CLIENT (l->data)) {
+ bus_name = gsm_dbus_client_get_bus_name (l->data);
+ } else {
+ bus_name = NULL;
+ }
+
+ app_id = g_strdup (gsm_client_peek_app_id (l->data));
+ if (IS_STRING_EMPTY (app_id)) {
+ /* XSMP clients don't give us an app id unless we start them */
+ g_free (app_id);
+ app_id = gsm_client_get_app_name (l->data);
+ }
+
+ cookie = _generate_unique_cookie (manager);
+ inhibitor = gsm_inhibitor_new_for_client (gsm_client_peek_id (l->data),
+ app_id,
+ GSM_INHIBITOR_FLAG_LOGOUT,
+ _("Not responding"),
+ bus_name,
+ cookie);
+ g_free (app_id);
+ gsm_store_add (manager->priv->inhibitors, gsm_inhibitor_peek_id (inhibitor), G_OBJECT (inhibitor));
+ g_object_unref (inhibitor);
+ }
+
+ g_slist_free (manager->priv->query_clients);
+ manager->priv->query_clients = NULL;
+
+ query_end_session_complete (manager);
+
+ return FALSE;
+}
+
+static void
+do_phase_query_end_session (GsmManager *manager)
+{
+ ClientEndSessionData data;
+
+ data.manager = manager;
+ data.flags = 0;
+
+ if (manager->priv->forceful_logout) {
+ data.flags |= GSM_CLIENT_END_SESSION_FLAG_FORCEFUL;
+ }
+ /* We only query if an app is ready to log out, so we don't use
+ * GSM_CLIENT_END_SESSION_FLAG_SAVE here.
+ */
+
+ debug_clients (manager);
+ g_debug ("GsmManager: sending query-end-session to clients forceful:%d", manager->priv->forceful_logout);
+ gsm_store_foreach (manager->priv->clients,
+ (GsmStoreFunc)_client_query_end_session,
+ &data);
+
+ /* This phase doesn't time out. This separate timer is only used to
+ * show UI. */
+ manager->priv->query_timeout_id = g_timeout_add_seconds (1, (GSourceFunc)_on_query_end_session_timeout, manager);
+}
+
+static void
+update_idle (GsmManager *manager)
+{
+ if (gsm_manager_is_idle_inhibited (manager)) {
+ gsm_presence_set_idle_enabled (manager->priv->presence, FALSE);
+ } else {
+ gsm_presence_set_idle_enabled (manager->priv->presence, TRUE);
+ }
+}
+
+static void
+start_phase (GsmManager *manager)
+{
+
+ g_debug ("GsmManager: starting phase %s\n",
+ phase_num_to_name (manager->priv->phase));
+
+ /* reset state */
+ g_slist_free (manager->priv->pending_apps);
+ manager->priv->pending_apps = NULL;
+ g_slist_free (manager->priv->query_clients);
+ manager->priv->query_clients = NULL;
+ g_slist_free (manager->priv->next_query_clients);
+ manager->priv->next_query_clients = NULL;
+
+ if (manager->priv->query_timeout_id > 0) {
+ g_source_remove (manager->priv->query_timeout_id);
+ manager->priv->query_timeout_id = 0;
+ }
+ if (manager->priv->phase_timeout_id > 0) {
+ g_source_remove (manager->priv->phase_timeout_id);
+ manager->priv->phase_timeout_id = 0;
+ }
+
+ switch (manager->priv->phase) {
+ case GSM_MANAGER_PHASE_STARTUP:
+ case GSM_MANAGER_PHASE_INITIALIZATION:
+ case GSM_MANAGER_PHASE_WINDOW_MANAGER:
+ case GSM_MANAGER_PHASE_PANEL:
+ case GSM_MANAGER_PHASE_DESKTOP:
+ case GSM_MANAGER_PHASE_APPLICATION:
+ do_phase_startup (manager);
+ break;
+ case GSM_MANAGER_PHASE_RUNNING:
+ g_signal_emit (manager, signals[SESSION_RUNNING], 0);
+ update_idle (manager);
+ break;
+ case GSM_MANAGER_PHASE_QUERY_END_SESSION:
+ do_phase_query_end_session (manager);
+ break;
+ case GSM_MANAGER_PHASE_END_SESSION:
+ do_phase_end_session (manager);
+ break;
+ case GSM_MANAGER_PHASE_EXIT:
+ do_phase_exit (manager);
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+}
+
+static gboolean
+_debug_app_for_phase (const char *id,
+ GsmApp *app,
+ gpointer data)
+{
+ guint phase;
+
+ phase = GPOINTER_TO_UINT (data);
+
+ if (gsm_app_peek_phase (app) != phase) {
+ return FALSE;
+ }
+
+ g_debug ("GsmManager:\tID: %s\tapp-id:%s\tis-disabled:%d\tis-conditionally-disabled:%d",
+ gsm_app_peek_id (app),
+ gsm_app_peek_app_id (app),
+ gsm_app_peek_is_disabled (app),
+ gsm_app_peek_is_conditionally_disabled (app));
+
+ return FALSE;
+}
+
+static void
+debug_app_summary (GsmManager *manager)
+{
+ guint phase;
+
+ g_debug ("GsmManager: App startup summary");
+ for (phase = GSM_MANAGER_PHASE_INITIALIZATION; phase < GSM_MANAGER_PHASE_RUNNING; phase++) {
+ g_debug ("GsmManager: Phase %s", phase_num_to_name (phase));
+ gsm_store_foreach (manager->priv->apps,
+ (GsmStoreFunc)_debug_app_for_phase,
+ GUINT_TO_POINTER (phase));
+ }
+}
+
+void
+gsm_manager_start (GsmManager *manager)
+{
+ g_debug ("GsmManager: GSM starting to manage");
+
+ g_return_if_fail (GSM_IS_MANAGER (manager));
+
+ gsm_manager_set_phase (manager, GSM_MANAGER_PHASE_INITIALIZATION);
+ debug_app_summary (manager);
+ start_phase (manager);
+}
+
+static gboolean
+_app_has_app_id (const char *id,
+ GsmApp *app,
+ const char *app_id_a)
+{
+ const char *app_id_b;
+
+ app_id_b = gsm_app_peek_app_id (app);
+ return (app_id_b != NULL && strcmp (app_id_a, app_id_b) == 0);
+}
+
+static GsmApp *
+find_app_for_app_id (GsmManager *manager,
+ const char *app_id)
+{
+ GsmApp *app;
+ app = (GsmApp *)gsm_store_find (manager->priv->apps,
+ (GsmStoreFunc)_app_has_app_id,
+ (char *)app_id);
+ return app;
+}
+
+static gboolean
+inhibitor_has_client_id (gpointer key,
+ GsmInhibitor *inhibitor,
+ const char *client_id_a)
+{
+ gboolean matches;
+ const char *client_id_b;
+
+ client_id_b = gsm_inhibitor_peek_client_id (inhibitor);
+
+ matches = FALSE;
+ if (! IS_STRING_EMPTY (client_id_a) && ! IS_STRING_EMPTY (client_id_b)) {
+ matches = (strcmp (client_id_a, client_id_b) == 0);
+ if (matches) {
+ g_debug ("GsmManager: removing JIT inhibitor for %s for reason '%s'",
+ gsm_inhibitor_peek_client_id (inhibitor),
+ gsm_inhibitor_peek_reason (inhibitor));
+ }
+ }
+
+ return matches;
+}
+
+static gboolean
+_app_has_startup_id (const char *id,
+ GsmApp *app,
+ const char *startup_id_a)
+{
+ const char *startup_id_b;
+
+ startup_id_b = gsm_app_peek_startup_id (app);
+
+ if (IS_STRING_EMPTY (startup_id_b)) {
+ return FALSE;
+ }
+
+ return (strcmp (startup_id_a, startup_id_b) == 0);
+}
+
+static GsmApp *
+find_app_for_startup_id (GsmManager *manager,
+ const char *startup_id)
+{
+ GsmApp *found_app;
+ GSList *a;
+
+ found_app = NULL;
+
+ /* If we're starting up the session, try to match the new client
+ * with one pending apps for the current phase. If not, try to match
+ * with any of the autostarted apps. */
+ if (manager->priv->phase < GSM_MANAGER_PHASE_APPLICATION) {
+ for (a = manager->priv->pending_apps; a != NULL; a = a->next) {
+ GsmApp *app = GSM_APP (a->data);
+
+ if (strcmp (startup_id, gsm_app_peek_startup_id (app)) == 0) {
+ found_app = app;
+ goto out;
+ }
+ }
+ } else {
+ GsmApp *app;
+
+ app = (GsmApp *)gsm_store_find (manager->priv->apps,
+ (GsmStoreFunc)_app_has_startup_id,
+ (char *)startup_id);
+ if (app != NULL) {
+ found_app = app;
+ goto out;
+ }
+ }
+ out:
+ return found_app;
+}
+
+static void
+_disconnect_client (GsmManager *manager,
+ GsmClient *client)
+{
+ gboolean is_condition_client;
+ GsmApp *app;
+ GError *error;
+ gboolean res;
+ const char *app_id;
+ const char *startup_id;
+ gboolean app_restart;
+ GsmClientRestartStyle client_restart_hint;
+
+ g_debug ("GsmManager: disconnect client: %s", gsm_client_peek_id (client));
+
+ /* take a ref so it doesn't get finalized */
+ g_object_ref (client);
+
+ gsm_client_set_status (client, GSM_CLIENT_FINISHED);
+
+ is_condition_client = FALSE;
+ if (g_slist_find (manager->priv->condition_clients, client)) {
+ manager->priv->condition_clients = g_slist_remove (manager->priv->condition_clients, client);
+
+ is_condition_client = TRUE;
+ }
+
+ /* remove any inhibitors for this client */
+ gsm_store_foreach_remove (manager->priv->inhibitors,
+ (GsmStoreFunc)inhibitor_has_client_id,
+ (gpointer)gsm_client_peek_id (client));
+
+ app = NULL;
+
+ /* first try to match on startup ID */
+ startup_id = gsm_client_peek_startup_id (client);
+ if (! IS_STRING_EMPTY (startup_id)) {
+ app = find_app_for_startup_id (manager, startup_id);
+
+ }
+
+ /* then try to find matching app-id */
+ if (app == NULL) {
+ app_id = gsm_client_peek_app_id (client);
+ if (! IS_STRING_EMPTY (app_id)) {
+ g_debug ("GsmManager: disconnect for app '%s'", app_id);
+ app = find_app_for_app_id (manager, app_id);
+ }
+ }
+
+ if (app == NULL) {
+ g_debug ("GsmManager: unable to find application for client - not restarting");
+ goto out;
+ }
+
+ if (manager->priv->phase >= GSM_MANAGER_PHASE_QUERY_END_SESSION) {
+ g_debug ("GsmManager: in shutdown, not restarting application");
+ goto out;
+ }
+
+ app_restart = gsm_app_peek_autorestart (app);
+ client_restart_hint = gsm_client_peek_restart_style_hint (client);
+
+ /* allow legacy clients to override the app info */
+ if (! app_restart
+ && client_restart_hint != GSM_CLIENT_RESTART_IMMEDIATELY) {
+ g_debug ("GsmManager: autorestart not set, not restarting application");
+ goto out;
+ }
+
+ if (is_condition_client) {
+ g_debug ("GsmManager: app conditionally disabled, not restarting application");
+ goto out;
+ }
+
+ g_debug ("GsmManager: restarting app");
+
+ error = NULL;
+ res = gsm_app_restart (app, &error);
+ if (error != NULL) {
+ g_warning ("Error on restarting session managed app: %s", error->message);
+ g_error_free (error);
+ }
+
+ out:
+ g_object_unref (client);
+}
+
+typedef struct {
+ const char *service_name;
+ GsmManager *manager;
+} RemoveClientData;
+
+static gboolean
+_disconnect_dbus_client (const char *id,
+ GsmClient *client,
+ RemoveClientData *data)
+{
+ const char *name;
+
+ if (! GSM_IS_DBUS_CLIENT (client)) {
+ return FALSE;
+ }
+
+ name = gsm_dbus_client_get_bus_name (GSM_DBUS_CLIENT (client));
+ if (IS_STRING_EMPTY (name)) {
+ return FALSE;
+ }
+
+ if (strcmp (data->service_name, name) == 0) {
+ _disconnect_client (data->manager, client);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static void
+remove_clients_for_connection (GsmManager *manager,
+ const char *service_name)
+{
+ RemoveClientData data;
+
+ data.service_name = service_name;
+ data.manager = manager;
+
+ /* disconnect dbus clients for name */
+ gsm_store_foreach_remove (manager->priv->clients,
+ (GsmStoreFunc)_disconnect_dbus_client,
+ &data);
+
+ if (manager->priv->phase >= GSM_MANAGER_PHASE_QUERY_END_SESSION
+ && gsm_store_size (manager->priv->clients) == 0) {
+ g_debug ("GsmManager: last client disconnected - exiting");
+ end_phase (manager);
+ }
+}
+
+static gboolean
+inhibitor_has_bus_name (gpointer key,
+ GsmInhibitor *inhibitor,
+ RemoveClientData *data)
+{
+ gboolean matches;
+ const char *bus_name_b;
+
+ bus_name_b = gsm_inhibitor_peek_bus_name (inhibitor);
+
+ matches = FALSE;
+ if (! IS_STRING_EMPTY (data->service_name) && ! IS_STRING_EMPTY (bus_name_b)) {
+ matches = (strcmp (data->service_name, bus_name_b) == 0);
+ if (matches) {
+ g_debug ("GsmManager: removing inhibitor from %s for reason '%s' on connection %s",
+ gsm_inhibitor_peek_app_id (inhibitor),
+ gsm_inhibitor_peek_reason (inhibitor),
+ gsm_inhibitor_peek_bus_name (inhibitor));
+ }
+ }
+
+ return matches;
+}
+
+static void
+remove_inhibitors_for_connection (GsmManager *manager,
+ const char *service_name)
+{
+ guint n_removed;
+ RemoveClientData data;
+
+ data.service_name = service_name;
+ data.manager = manager;
+
+ debug_inhibitors (manager);
+
+ n_removed = gsm_store_foreach_remove (manager->priv->inhibitors,
+ (GsmStoreFunc)inhibitor_has_bus_name,
+ &data);
+}
+
+static void
+bus_name_owner_changed (DBusGProxy *bus_proxy,
+ const char *service_name,
+ const char *old_service_name,
+ const char *new_service_name,
+ GsmManager *manager)
+{
+ if (strlen (new_service_name) == 0
+ && strlen (old_service_name) > 0) {
+ /* service removed */
+ remove_inhibitors_for_connection (manager, old_service_name);
+ remove_clients_for_connection (manager, old_service_name);
+ } else if (strlen (old_service_name) == 0
+ && strlen (new_service_name) > 0) {
+ /* service added */
+
+ /* use this if we support automatically registering
+ * well known bus names */
+ }
+}
+
+static gboolean
+register_manager (GsmManager *manager)
+{
+ GError *error = NULL;
+
+ error = NULL;
+ manager->priv->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+ if (manager->priv->connection == NULL) {
+ if (error != NULL) {
+ g_critical ("error getting session bus: %s", error->message);
+ g_error_free (error);
+ }
+ exit (1);
+ }
+
+ manager->priv->bus_proxy = dbus_g_proxy_new_for_name (manager->priv->connection,
+ DBUS_SERVICE_DBUS,
+ DBUS_PATH_DBUS,
+ DBUS_INTERFACE_DBUS);
+ dbus_g_proxy_add_signal (manager->priv->bus_proxy,
+ "NameOwnerChanged",
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_INVALID);
+ dbus_g_proxy_connect_signal (manager->priv->bus_proxy,
+ "NameOwnerChanged",
+ G_CALLBACK (bus_name_owner_changed),
+ manager,
+ NULL);
+
+ dbus_g_connection_register_g_object (manager->priv->connection, GSM_MANAGER_DBUS_PATH, G_OBJECT (manager));
+
+ return TRUE;
+}
+
+static void
+gsm_manager_set_failsafe (GsmManager *manager,
+ gboolean enabled)
+{
+ g_return_if_fail (GSM_IS_MANAGER (manager));
+
+ manager->priv->failsafe = enabled;
+}
+
+static gboolean
+_client_has_startup_id (const char *id,
+ GsmClient *client,
+ const char *startup_id_a)
+{
+ const char *startup_id_b;
+
+ startup_id_b = gsm_client_peek_startup_id (client);
+
+ if (IS_STRING_EMPTY (startup_id_b)) {
+ return FALSE;
+ }
+
+ return (strcmp (startup_id_a, startup_id_b) == 0);
+}
+
+static void
+on_client_disconnected (GsmClient *client,
+ GsmManager *manager)
+{
+ g_debug ("GsmManager: disconnect client");
+ _disconnect_client (manager, client);
+ gsm_store_remove (manager->priv->clients, gsm_client_peek_id (client));
+ if (manager->priv->phase >= GSM_MANAGER_PHASE_QUERY_END_SESSION
+ && gsm_store_size (manager->priv->clients) == 0) {
+ g_debug ("GsmManager: last client disconnected - exiting");
+ end_phase (manager);
+ }
+}
+
+static gboolean
+on_xsmp_client_register_request (GsmXSMPClient *client,
+ char **id,
+ GsmManager *manager)
+{
+ gboolean handled;
+ char *new_id;
+ GsmApp *app;
+
+ handled = TRUE;
+ new_id = NULL;
+
+ if (manager->priv->phase >= GSM_MANAGER_PHASE_QUERY_END_SESSION) {
+ goto out;
+ }
+
+ if (IS_STRING_EMPTY (*id)) {
+ new_id = gsm_util_generate_startup_id ();
+ } else {
+ GsmClient *client;
+
+ client = (GsmClient *)gsm_store_find (manager->priv->clients,
+ (GsmStoreFunc)_client_has_startup_id,
+ *id);
+ /* We can't have two clients with the same id. */
+ if (client != NULL) {
+ goto out;
+ }
+
+ new_id = g_strdup (*id);
+ }
+
+ g_debug ("GsmManager: Adding new client %s to session", new_id);
+
+ g_signal_connect (client,
+ "disconnected",
+ G_CALLBACK (on_client_disconnected),
+ manager);
+
+ /* If it's a brand new client id, we just accept the client*/
+ if (IS_STRING_EMPTY (*id)) {
+ goto out;
+ }
+
+ app = find_app_for_startup_id (manager, new_id);
+ if (app != NULL) {
+ gsm_client_set_app_id (GSM_CLIENT (client), gsm_app_peek_app_id (app));
+ gsm_app_registered (app);
+ goto out;
+ }
+
+ /* app not found */
+ g_free (new_id);
+ new_id = NULL;
+
+ out:
+ g_free (*id);
+ *id = new_id;
+
+ return handled;
+}
+
+static gboolean
+auto_save_is_enabled (GsmManager *manager)
+{
+ GError *error;
+ gboolean auto_save;
+
+ error = NULL;
+ auto_save = mateconf_client_get_bool (manager->priv->mateconf_client,
+ KEY_AUTOSAVE,
+ &error);
+
+ if (error) {
+ g_warning ("Error retrieving configuration key '%s': %s",
+ KEY_AUTOSAVE,
+ error->message);
+ g_error_free (error);
+
+ /* If we fail to query mateconf key, disable auto save */
+ auto_save = FALSE;
+ }
+
+ return auto_save;
+}
+
+static void
+maybe_save_session (GsmManager *manager)
+{
+ GsmConsolekit *consolekit;
+ char *session_type;
+ GError *error;
+
+ consolekit = gsm_get_consolekit ();
+ session_type = gsm_consolekit_get_current_session_type (consolekit);
+
+ if (g_strcmp0 (session_type, GSM_CONSOLEKIT_SESSION_TYPE_LOGIN_WINDOW) == 0) {
+ goto out;
+ }
+
+ /* We only allow session saving when session is running or when
+ * logging out */
+ if (manager->priv->phase != GSM_MANAGER_PHASE_RUNNING &&
+ manager->priv->phase != GSM_MANAGER_PHASE_END_SESSION) {
+ goto out;
+ }
+
+ error = NULL;
+ gsm_session_save (manager->priv->clients, &error);
+
+ if (error) {
+ g_warning ("Error saving session: %s", error->message);
+ g_error_free (error);
+ }
+
+out:
+ g_object_unref (consolekit);
+ g_free (session_type);
+}
+
+static void
+on_client_end_session_response (GsmClient *client,
+ gboolean is_ok,
+ gboolean do_last,
+ gboolean cancel,
+ const char *reason,
+ GsmManager *manager)
+{
+ /* just ignore if received outside of shutdown */
+ if (manager->priv->phase < GSM_MANAGER_PHASE_QUERY_END_SESSION) {
+ return;
+ }
+
+ g_debug ("GsmManager: Response from end session request: is-ok=%d do-last=%d cancel=%d reason=%s", is_ok, do_last, cancel, reason ? reason :"");
+
+ if (cancel) {
+ cancel_end_session (manager);
+ return;
+ }
+
+ manager->priv->query_clients = g_slist_remove (manager->priv->query_clients, client);
+
+ if (! is_ok) {
+ guint cookie;
+ GsmInhibitor *inhibitor;
+ char *app_id;
+ const char *bus_name;
+
+ /* FIXME: do we support updating the reason? */
+
+ /* Create JIT inhibit */
+ if (GSM_IS_DBUS_CLIENT (client)) {
+ bus_name = gsm_dbus_client_get_bus_name (GSM_DBUS_CLIENT (client));
+ } else {
+ bus_name = NULL;
+ }
+
+ app_id = g_strdup (gsm_client_peek_app_id (client));
+ if (IS_STRING_EMPTY (app_id)) {
+ /* XSMP clients don't give us an app id unless we start them */
+ g_free (app_id);
+ app_id = gsm_client_get_app_name (client);
+ }
+
+ cookie = _generate_unique_cookie (manager);
+ inhibitor = gsm_inhibitor_new_for_client (gsm_client_peek_id (client),
+ app_id,
+ GSM_INHIBITOR_FLAG_LOGOUT,
+ reason != NULL ? reason : _("Not responding"),
+ bus_name,
+ cookie);
+ g_free (app_id);
+ gsm_store_add (manager->priv->inhibitors, gsm_inhibitor_peek_id (inhibitor), G_OBJECT (inhibitor));
+ g_object_unref (inhibitor);
+ } else {
+ gsm_store_foreach_remove (manager->priv->inhibitors,
+ (GsmStoreFunc)inhibitor_has_client_id,
+ (gpointer)gsm_client_peek_id (client));
+ }
+
+ if (manager->priv->phase == GSM_MANAGER_PHASE_QUERY_END_SESSION) {
+ if (manager->priv->query_clients == NULL) {
+ query_end_session_complete (manager);
+ }
+ } else if (manager->priv->phase == GSM_MANAGER_PHASE_END_SESSION) {
+ if (do_last) {
+ /* This only makes sense if we're in part 1 of
+ * GSM_MANAGER_PHASE_END_SESSION. Doing this in part 2
+ * can only happen because of a buggy client that loops
+ * wanting to be last again and again. The phase
+ * timeout will take care of this issue. */
+ manager->priv->next_query_clients = g_slist_prepend (manager->priv->next_query_clients,
+ client);
+ }
+
+ /* we can continue to the next step if all clients have replied
+ * and if there's no inhibitor */
+ if (manager->priv->query_clients != NULL
+ || gsm_manager_is_logout_inhibited (manager)) {
+ return;
+ }
+
+ if (manager->priv->next_query_clients != NULL) {
+ do_phase_end_session_part_2 (manager);
+ } else {
+ end_phase (manager);
+ }
+ }
+}
+
+static void
+on_xsmp_client_logout_request (GsmXSMPClient *client,
+ gboolean show_dialog,
+ GsmManager *manager)
+{
+ GError *error;
+ int logout_mode;
+
+ if (show_dialog) {
+ logout_mode = GSM_MANAGER_LOGOUT_MODE_NORMAL;
+ } else {
+ logout_mode = GSM_MANAGER_LOGOUT_MODE_NO_CONFIRMATION;
+ }
+
+ error = NULL;
+ gsm_manager_logout (manager, logout_mode, &error);
+ if (error != NULL) {
+ g_warning ("Unable to logout: %s", error->message);
+ g_error_free (error);
+ }
+}
+
+static void
+on_store_client_added (GsmStore *store,
+ const char *id,
+ GsmManager *manager)
+{
+ GsmClient *client;
+
+ g_debug ("GsmManager: Client added: %s", id);
+
+ client = (GsmClient *)gsm_store_lookup (store, id);
+
+ /* a bit hacky */
+ if (GSM_IS_XSMP_CLIENT (client)) {
+ g_signal_connect (client,
+ "register-request",
+ G_CALLBACK (on_xsmp_client_register_request),
+ manager);
+ g_signal_connect (client,
+ "logout-request",
+ G_CALLBACK (on_xsmp_client_logout_request),
+ manager);
+ }
+
+ g_signal_connect (client,
+ "end-session-response",
+ G_CALLBACK (on_client_end_session_response),
+ manager);
+
+ g_signal_emit (manager, signals [CLIENT_ADDED], 0, id);
+ /* FIXME: disconnect signal handler */
+}
+
+static void
+on_store_client_removed (GsmStore *store,
+ const char *id,
+ GsmManager *manager)
+{
+ g_debug ("GsmManager: Client removed: %s", id);
+
+ g_signal_emit (manager, signals [CLIENT_REMOVED], 0, id);
+}
+
+static void
+gsm_manager_set_client_store (GsmManager *manager,
+ GsmStore *store)
+{
+ g_return_if_fail (GSM_IS_MANAGER (manager));
+
+ if (store != NULL) {
+ g_object_ref (store);
+ }
+
+ if (manager->priv->clients != NULL) {
+ g_signal_handlers_disconnect_by_func (manager->priv->clients,
+ on_store_client_added,
+ manager);
+ g_signal_handlers_disconnect_by_func (manager->priv->clients,
+ on_store_client_removed,
+ manager);
+
+ g_object_unref (manager->priv->clients);
+ }
+
+
+ g_debug ("GsmManager: setting client store %p", store);
+
+ manager->priv->clients = store;
+
+ if (manager->priv->clients != NULL) {
+ g_signal_connect (manager->priv->clients,
+ "added",
+ G_CALLBACK (on_store_client_added),
+ manager);
+ g_signal_connect (manager->priv->clients,
+ "removed",
+ G_CALLBACK (on_store_client_removed),
+ manager);
+ }
+}
+
+static void
+gsm_manager_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GsmManager *self;
+
+ self = GSM_MANAGER (object);
+
+ switch (prop_id) {
+ case PROP_FAILSAFE:
+ gsm_manager_set_failsafe (self, g_value_get_boolean (value));
+ break;
+ case PROP_CLIENT_STORE:
+ gsm_manager_set_client_store (self, g_value_get_object (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_manager_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GsmManager *self;
+
+ self = GSM_MANAGER (object);
+
+ switch (prop_id) {
+ case PROP_FAILSAFE:
+ g_value_set_boolean (value, self->priv->failsafe);
+ break;
+ case PROP_CLIENT_STORE:
+ g_value_set_object (value, self->priv->clients);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static gboolean
+_find_app_provides (const char *id,
+ GsmApp *app,
+ const char *service)
+{
+ return gsm_app_provides (app, service);
+}
+
+static GObject *
+gsm_manager_constructor (GType type,
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
+{
+ GsmManager *manager;
+
+ manager = GSM_MANAGER (G_OBJECT_CLASS (gsm_manager_parent_class)->constructor (type,
+ n_construct_properties,
+ construct_properties));
+ return G_OBJECT (manager);
+}
+
+static void
+on_store_inhibitor_added (GsmStore *store,
+ const char *id,
+ GsmManager *manager)
+{
+ g_debug ("GsmManager: Inhibitor added: %s", id);
+ g_signal_emit (manager, signals [INHIBITOR_ADDED], 0, id);
+ update_idle (manager);
+}
+
+static void
+on_store_inhibitor_removed (GsmStore *store,
+ const char *id,
+ GsmManager *manager)
+{
+ g_debug ("GsmManager: Inhibitor removed: %s", id);
+ g_signal_emit (manager, signals [INHIBITOR_REMOVED], 0, id);
+ update_idle (manager);
+}
+
+static void
+gsm_manager_dispose (GObject *object)
+{
+ GsmManager *manager = GSM_MANAGER (object);
+
+ g_debug ("GsmManager: disposing manager");
+
+ if (manager->priv->clients != NULL) {
+ g_signal_handlers_disconnect_by_func (manager->priv->clients,
+ on_store_client_added,
+ manager);
+ g_signal_handlers_disconnect_by_func (manager->priv->clients,
+ on_store_client_removed,
+ manager);
+ g_object_unref (manager->priv->clients);
+ manager->priv->clients = NULL;
+ }
+
+ if (manager->priv->apps != NULL) {
+ g_object_unref (manager->priv->apps);
+ manager->priv->apps = NULL;
+ }
+
+ if (manager->priv->inhibitors != NULL) {
+ g_signal_handlers_disconnect_by_func (manager->priv->inhibitors,
+ on_store_inhibitor_added,
+ manager);
+ g_signal_handlers_disconnect_by_func (manager->priv->inhibitors,
+ on_store_inhibitor_removed,
+ manager);
+
+ g_object_unref (manager->priv->inhibitors);
+ manager->priv->inhibitors = NULL;
+ }
+
+ if (manager->priv->presence != NULL) {
+ g_object_unref (manager->priv->presence);
+ manager->priv->presence = NULL;
+ }
+
+ if (manager->priv->mateconf_client) {
+ if (manager->priv->desktop_notify_id != 0) {
+ mateconf_client_remove_dir (manager->priv->mateconf_client,
+ KEY_DESKTOP_DIR,
+ NULL);
+ mateconf_client_notify_remove (manager->priv->mateconf_client,
+ manager->priv->desktop_notify_id);
+ manager->priv->desktop_notify_id = 0;
+ }
+ if (manager->priv->lockdown_notify_id != 0) {
+ mateconf_client_remove_dir (manager->priv->mateconf_client,
+ KEY_LOCKDOWN_DIR,
+ NULL);
+ mateconf_client_notify_remove (manager->priv->mateconf_client,
+ manager->priv->lockdown_notify_id);
+ manager->priv->lockdown_notify_id = 0;
+ }
+
+ g_object_unref (manager->priv->mateconf_client);
+ manager->priv->mateconf_client = NULL;
+ }
+
+ if (manager->priv->up_client != NULL) {
+ g_object_unref (manager->priv->up_client);
+ manager->priv->up_client = NULL;
+ }
+
+ G_OBJECT_CLASS (gsm_manager_parent_class)->dispose (object);
+}
+
+static void
+gsm_manager_class_init (GsmManagerClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->get_property = gsm_manager_get_property;
+ object_class->set_property = gsm_manager_set_property;
+ object_class->constructor = gsm_manager_constructor;
+ object_class->finalize = gsm_manager_finalize;
+ object_class->dispose = gsm_manager_dispose;
+
+ signals [PHASE_CHANGED] =
+ g_signal_new ("phase-changed",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmManagerClass, phase_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE,
+ 1, G_TYPE_STRING);
+
+ signals [SESSION_RUNNING] =
+ g_signal_new ("session-running",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmManagerClass, session_running),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ signals [SESSION_OVER] =
+ g_signal_new ("session-over",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmManagerClass, session_over),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+ signals [CLIENT_ADDED] =
+ g_signal_new ("client-added",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmManagerClass, client_added),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__BOXED,
+ G_TYPE_NONE,
+ 1, DBUS_TYPE_G_OBJECT_PATH);
+ signals [CLIENT_REMOVED] =
+ g_signal_new ("client-removed",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmManagerClass, client_removed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__BOXED,
+ G_TYPE_NONE,
+ 1, DBUS_TYPE_G_OBJECT_PATH);
+ signals [INHIBITOR_ADDED] =
+ g_signal_new ("inhibitor-added",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmManagerClass, inhibitor_added),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__BOXED,
+ G_TYPE_NONE,
+ 1, DBUS_TYPE_G_OBJECT_PATH);
+ signals [INHIBITOR_REMOVED] =
+ g_signal_new ("inhibitor-removed",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmManagerClass, inhibitor_removed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__BOXED,
+ G_TYPE_NONE,
+ 1, DBUS_TYPE_G_OBJECT_PATH);
+
+ g_object_class_install_property (object_class,
+ PROP_FAILSAFE,
+ g_param_spec_boolean ("failsafe",
+ NULL,
+ NULL,
+ FALSE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_CLIENT_STORE,
+ g_param_spec_object ("client-store",
+ NULL,
+ NULL,
+ GSM_TYPE_STORE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+ g_type_class_add_private (klass, sizeof (GsmManagerPrivate));
+
+ dbus_g_object_type_install_info (GSM_TYPE_MANAGER, &dbus_glib_gsm_manager_object_info);
+ dbus_g_error_domain_register (GSM_MANAGER_ERROR, NULL, GSM_MANAGER_TYPE_ERROR);
+}
+
+static void
+invalid_type_warning (const char *type)
+{
+ g_warning ("Error retrieving configuration key '%s': Invalid type",
+ type);
+}
+
+static void
+load_idle_delay_from_mateconf (GsmManager *manager)
+{
+ GError *error;
+ glong value;
+
+ error = NULL;
+ value = mateconf_client_get_int (manager->priv->mateconf_client,
+ KEY_IDLE_DELAY,
+ &error);
+ if (error == NULL) {
+ gsm_presence_set_idle_timeout (manager->priv->presence, value * 60000);
+ } else {
+ g_warning ("Error retrieving configuration key '%s': %s",
+ KEY_IDLE_DELAY,
+ error->message);
+ g_error_free (error);
+ }
+
+}
+
+static void
+on_mateconf_key_changed (MateConfClient *client,
+ guint cnxn_id,
+ MateConfEntry *entry,
+ GsmManager *manager)
+{
+ const char *key;
+ MateConfValue *value;
+
+ key = mateconf_entry_get_key (entry);
+
+ if (! g_str_has_prefix (key, KEY_DESKTOP_DIR)
+ && ! g_str_has_prefix (key, KEY_LOCKDOWN_DIR)) {
+ return;
+ }
+
+ value = mateconf_entry_get_value (entry);
+
+ if (strcmp (key, KEY_IDLE_DELAY) == 0) {
+ if (value->type == MATECONF_VALUE_INT) {
+ int delay;
+
+ delay = mateconf_value_get_int (value);
+
+ gsm_presence_set_idle_timeout (manager->priv->presence, delay * 60000);
+ } else {
+ invalid_type_warning (key);
+ }
+ } else if (strcmp (key, KEY_LOCK_DISABLE) == 0) {
+ if (value->type == MATECONF_VALUE_BOOL) {
+ gboolean disabled;
+
+ disabled = mateconf_value_get_bool (value);
+
+ /* FIXME: handle this */
+ } else {
+ invalid_type_warning (key);
+ }
+ } else if (strcmp (key, KEY_USER_SWITCH_DISABLE) == 0) {
+
+ if (value->type == MATECONF_VALUE_BOOL) {
+ gboolean disabled;
+
+ disabled = mateconf_value_get_bool (value);
+
+ /* FIXME: handle this */
+ } else {
+ invalid_type_warning (key);
+ }
+
+ } else {
+ g_debug ("Config key not handled: %s", key);
+ }
+}
+
+static void
+on_presence_status_changed (GsmPresence *presence,
+ guint status,
+ GsmManager *manager)
+{
+ GsmConsolekit *consolekit;
+
+ consolekit = gsm_get_consolekit ();
+ gsm_consolekit_set_session_idle (consolekit,
+ (status == GSM_PRESENCE_STATUS_IDLE));
+}
+
+static void
+gsm_manager_init (GsmManager *manager)
+{
+
+ manager->priv = GSM_MANAGER_GET_PRIVATE (manager);
+
+ manager->priv->mateconf_client = mateconf_client_get_default ();
+
+ manager->priv->inhibitors = gsm_store_new ();
+ g_signal_connect (manager->priv->inhibitors,
+ "added",
+ G_CALLBACK (on_store_inhibitor_added),
+ manager);
+ g_signal_connect (manager->priv->inhibitors,
+ "removed",
+ G_CALLBACK (on_store_inhibitor_removed),
+ manager);
+
+ manager->priv->apps = gsm_store_new ();
+
+ manager->priv->presence = gsm_presence_new ();
+ g_signal_connect (manager->priv->presence,
+ "status-changed",
+ G_CALLBACK (on_presence_status_changed),
+ manager);
+
+ manager->priv->up_client = up_client_new ();
+
+ /* MateConf setup */
+ mateconf_client_add_dir (manager->priv->mateconf_client,
+ KEY_DESKTOP_DIR,
+ MATECONF_CLIENT_PRELOAD_RECURSIVE, NULL);
+ mateconf_client_add_dir (manager->priv->mateconf_client,
+ KEY_LOCKDOWN_DIR,
+ MATECONF_CLIENT_PRELOAD_NONE, NULL);
+
+ manager->priv->desktop_notify_id = mateconf_client_notify_add (manager->priv->mateconf_client,
+ KEY_DESKTOP_DIR,
+ (MateConfClientNotifyFunc)on_mateconf_key_changed,
+ manager,
+ NULL, NULL);
+ manager->priv->lockdown_notify_id = mateconf_client_notify_add (manager->priv->mateconf_client,
+ KEY_LOCKDOWN_DIR,
+ (MateConfClientNotifyFunc)on_mateconf_key_changed,
+ manager,
+ NULL, NULL);
+
+ load_idle_delay_from_mateconf (manager);
+}
+
+static void
+gsm_manager_finalize (GObject *object)
+{
+ GsmManager *manager;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GSM_IS_MANAGER (object));
+
+ manager = GSM_MANAGER (object);
+
+ g_return_if_fail (manager->priv != NULL);
+
+ G_OBJECT_CLASS (gsm_manager_parent_class)->finalize (object);
+}
+
+GsmManager *
+gsm_manager_new (GsmStore *client_store,
+ gboolean failsafe)
+{
+ if (manager_object != NULL) {
+ g_object_ref (manager_object);
+ } else {
+ gboolean res;
+
+ manager_object = g_object_new (GSM_TYPE_MANAGER,
+ "client-store", client_store,
+ "failsafe", failsafe,
+ NULL);
+
+ g_object_add_weak_pointer (manager_object,
+ (gpointer *) &manager_object);
+ res = register_manager (manager_object);
+ if (! res) {
+ g_object_unref (manager_object);
+ return NULL;
+ }
+ }
+
+ return GSM_MANAGER (manager_object);
+}
+
+gboolean
+gsm_manager_setenv (GsmManager *manager,
+ const char *variable,
+ const char *value,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
+ if (manager->priv->phase > GSM_MANAGER_PHASE_INITIALIZATION) {
+ g_set_error (error,
+ GSM_MANAGER_ERROR,
+ GSM_MANAGER_ERROR_NOT_IN_INITIALIZATION,
+ "Setenv interface is only available during the Initialization phase");
+ return FALSE;
+ }
+
+ gsm_util_setenv (variable, value);
+
+ return TRUE;
+}
+
+gboolean
+gsm_manager_initialization_error (GsmManager *manager,
+ const char *message,
+ gboolean fatal,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
+ if (manager->priv->phase > GSM_MANAGER_PHASE_INITIALIZATION) {
+ g_set_error (error,
+ GSM_MANAGER_ERROR,
+ GSM_MANAGER_ERROR_NOT_IN_INITIALIZATION,
+ "InitializationError interface is only available during the Initialization phase");
+ return FALSE;
+ }
+
+ gsm_util_init_error (fatal, "%s", message);
+
+ return TRUE;
+}
+
+static gboolean
+gsm_manager_is_switch_user_inhibited (GsmManager *manager)
+{
+ GsmInhibitor *inhibitor;
+
+ if (manager->priv->inhibitors == NULL) {
+ return FALSE;
+ }
+
+ inhibitor = (GsmInhibitor *)gsm_store_find (manager->priv->inhibitors,
+ (GsmStoreFunc)inhibitor_has_flag,
+ GUINT_TO_POINTER (GSM_INHIBITOR_FLAG_SWITCH_USER));
+ if (inhibitor == NULL) {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static gboolean
+gsm_manager_is_suspend_inhibited (GsmManager *manager)
+{
+ GsmInhibitor *inhibitor;
+
+ if (manager->priv->inhibitors == NULL) {
+ return FALSE;
+ }
+
+ inhibitor = (GsmInhibitor *)gsm_store_find (manager->priv->inhibitors,
+ (GsmStoreFunc)inhibitor_has_flag,
+ GUINT_TO_POINTER (GSM_INHIBITOR_FLAG_SUSPEND));
+ if (inhibitor == NULL) {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static void
+request_reboot_privileges_completed (GsmConsolekit *consolekit,
+ gboolean success,
+ gboolean ask_later,
+ GError *error,
+ GsmManager *manager)
+{
+ /* make sure we disconnect the signal handler so that it's not called
+ * again next time the event is fired -- this can happen if the reboot
+ * is cancelled. */
+ g_signal_handlers_disconnect_by_func (consolekit,
+ request_reboot_privileges_completed,
+ manager);
+
+ g_object_unref (consolekit);
+
+ if (success) {
+ if (ask_later) {
+ manager->priv->logout_type = GSM_MANAGER_LOGOUT_REBOOT_INTERACT;
+ } else {
+ manager->priv->logout_type = GSM_MANAGER_LOGOUT_REBOOT;
+ }
+
+ end_phase (manager);
+ }
+}
+
+static void
+request_reboot (GsmManager *manager)
+{
+ GsmConsolekit *consolekit;
+ gboolean success;
+
+ g_debug ("GsmManager: requesting reboot");
+
+ /* We request the privileges before doing anything. There are a few
+ * different cases here:
+ *
+ * - no ConsoleKit: we fallback on MDM
+ * - no password required: everything is fine
+ * - password asked once: we ask for it now. If the user enters it
+ * fine, then all is great. If the user doesn't enter it fine, we
+ * don't do anything (so no logout).
+ * - password asked each time: we don't ask it for now since we don't
+ * want to ask for it twice. Instead we'll ask for it at the very
+ * end. If the user will enter it fine, then all is great again. If
+ * the user doesn't enter it fine, then we'll just fallback to MDM.
+ *
+ * The last case (password asked each time) is a bit broken, but
+ * there's really nothing we can do about it. Generally speaking,
+ * though, the password will only be asked once (unless the system is
+ * configured in paranoid mode), and most probably only if there are
+ * more than one user connected. So the general case is that it will
+ * just work fine.
+ */
+
+ consolekit = gsm_get_consolekit ();
+ g_signal_connect (consolekit,
+ "privileges-completed",
+ G_CALLBACK (request_reboot_privileges_completed),
+ manager);
+ success = gsm_consolekit_get_restart_privileges (consolekit);
+
+ if (!success) {
+ g_signal_handlers_disconnect_by_func (consolekit,
+ request_reboot_privileges_completed,
+ manager);
+ g_object_unref (consolekit);
+
+ manager->priv->logout_type = GSM_MANAGER_LOGOUT_REBOOT_MDM;
+ end_phase (manager);
+ }
+}
+
+static void
+request_shutdown_privileges_completed (GsmConsolekit *consolekit,
+ gboolean success,
+ gboolean ask_later,
+ GError *error,
+ GsmManager *manager)
+{
+ /* make sure we disconnect the signal handler so that it's not called
+ * again next time the event is fired -- this can happen if the reboot
+ * is cancelled. */
+ g_signal_handlers_disconnect_by_func (consolekit,
+ request_shutdown_privileges_completed,
+ manager);
+
+ g_object_unref (consolekit);
+
+ if (success) {
+ if (ask_later) {
+ manager->priv->logout_type = GSM_MANAGER_LOGOUT_SHUTDOWN_INTERACT;
+ } else {
+ manager->priv->logout_type = GSM_MANAGER_LOGOUT_SHUTDOWN;
+ }
+
+ end_phase (manager);
+ }
+}
+
+static void
+request_shutdown (GsmManager *manager)
+{
+ GsmConsolekit *consolekit;
+ gboolean success;
+
+ g_debug ("GsmManager: requesting shutdown");
+
+ /* See the comment in request_reboot() for some more details about how
+ * this works. */
+
+ consolekit = gsm_get_consolekit ();
+ g_signal_connect (consolekit,
+ "privileges-completed",
+ G_CALLBACK (request_shutdown_privileges_completed),
+ manager);
+ success = gsm_consolekit_get_stop_privileges (consolekit);
+
+ if (!success) {
+ g_signal_handlers_disconnect_by_func (consolekit,
+ request_shutdown_privileges_completed,
+ manager);
+ g_object_unref (consolekit);
+
+ manager->priv->logout_type = GSM_MANAGER_LOGOUT_SHUTDOWN_MDM;
+ end_phase (manager);
+ }
+}
+
+static void
+request_suspend (GsmManager *manager)
+{
+ g_debug ("GsmManager: requesting suspend");
+
+ if (! gsm_manager_is_suspend_inhibited (manager)) {
+ manager_attempt_suspend (manager);
+ return;
+ }
+
+ if (manager->priv->inhibit_dialog != NULL) {
+ g_debug ("GsmManager: inhibit dialog already up");
+ gtk_window_present (GTK_WINDOW (manager->priv->inhibit_dialog));
+ return;
+ }
+
+ manager->priv->inhibit_dialog = gsm_inhibit_dialog_new (manager->priv->inhibitors,
+ manager->priv->clients,
+ GSM_LOGOUT_ACTION_SLEEP);
+
+ g_signal_connect (manager->priv->inhibit_dialog,
+ "response",
+ G_CALLBACK (inhibit_dialog_response),
+ manager);
+ gtk_widget_show (manager->priv->inhibit_dialog);
+}
+
+static void
+request_hibernate (GsmManager *manager)
+{
+ g_debug ("GsmManager: requesting hibernate");
+
+ /* hibernate uses suspend inhibit */
+ if (! gsm_manager_is_suspend_inhibited (manager)) {
+ manager_attempt_hibernate (manager);
+ return;
+ }
+
+ if (manager->priv->inhibit_dialog != NULL) {
+ g_debug ("GsmManager: inhibit dialog already up");
+ gtk_window_present (GTK_WINDOW (manager->priv->inhibit_dialog));
+ return;
+ }
+
+ manager->priv->inhibit_dialog = gsm_inhibit_dialog_new (manager->priv->inhibitors,
+ manager->priv->clients,
+ GSM_LOGOUT_ACTION_HIBERNATE);
+
+ g_signal_connect (manager->priv->inhibit_dialog,
+ "response",
+ G_CALLBACK (inhibit_dialog_response),
+ manager);
+ gtk_widget_show (manager->priv->inhibit_dialog);
+}
+
+
+static void
+request_logout (GsmManager *manager,
+ gboolean forceful_logout)
+{
+ g_debug ("GsmManager: requesting logout");
+
+ manager->priv->forceful_logout = forceful_logout;
+ manager->priv->logout_type = GSM_MANAGER_LOGOUT_LOGOUT;
+
+ end_phase (manager);
+}
+
+static void
+request_switch_user (GsmManager *manager)
+{
+ g_debug ("GsmManager: requesting user switch");
+
+ if (! gsm_manager_is_switch_user_inhibited (manager)) {
+ manager_switch_user (manager);
+ return;
+ }
+
+ if (manager->priv->inhibit_dialog != NULL) {
+ g_debug ("GsmManager: inhibit dialog already up");
+ gtk_window_present (GTK_WINDOW (manager->priv->inhibit_dialog));
+ return;
+ }
+
+ manager->priv->inhibit_dialog = gsm_inhibit_dialog_new (manager->priv->inhibitors,
+ manager->priv->clients,
+ GSM_LOGOUT_ACTION_SWITCH_USER);
+
+ g_signal_connect (manager->priv->inhibit_dialog,
+ "response",
+ G_CALLBACK (inhibit_dialog_response),
+ manager);
+ gtk_widget_show (manager->priv->inhibit_dialog);
+}
+
+static void
+logout_dialog_response (GsmLogoutDialog *logout_dialog,
+ guint response_id,
+ GsmManager *manager)
+{
+ g_debug ("GsmManager: Logout dialog response: %d", response_id);
+
+ gtk_widget_destroy (GTK_WIDGET (logout_dialog));
+
+ /* In case of dialog cancel, switch user, hibernate and
+ * suspend, we just perform the respective action and return,
+ * without shutting down the session. */
+ switch (response_id) {
+ case GTK_RESPONSE_CANCEL:
+ case GTK_RESPONSE_NONE:
+ case GTK_RESPONSE_DELETE_EVENT:
+ break;
+ case GSM_LOGOUT_RESPONSE_SWITCH_USER:
+ request_switch_user (manager);
+ break;
+ case GSM_LOGOUT_RESPONSE_HIBERNATE:
+ request_hibernate (manager);
+ break;
+ case GSM_LOGOUT_RESPONSE_SLEEP:
+ request_suspend (manager);
+ break;
+ case GSM_LOGOUT_RESPONSE_SHUTDOWN:
+ request_shutdown (manager);
+ break;
+ case GSM_LOGOUT_RESPONSE_REBOOT:
+ request_reboot (manager);
+ break;
+ case GSM_LOGOUT_RESPONSE_LOGOUT:
+ request_logout (manager, FALSE);
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+}
+
+static void
+show_shutdown_dialog (GsmManager *manager)
+{
+ GtkWidget *dialog;
+
+ if (manager->priv->phase >= GSM_MANAGER_PHASE_QUERY_END_SESSION) {
+ /* Already shutting down, nothing more to do */
+ return;
+ }
+
+ dialog = gsm_get_shutdown_dialog (gdk_screen_get_default (),
+ gtk_get_current_event_time ());
+
+ g_signal_connect (dialog,
+ "response",
+ G_CALLBACK (logout_dialog_response),
+ manager);
+ gtk_widget_show (dialog);
+}
+
+static void
+show_logout_dialog (GsmManager *manager)
+{
+ GtkWidget *dialog;
+
+ if (manager->priv->phase >= GSM_MANAGER_PHASE_QUERY_END_SESSION) {
+ /* Already shutting down, nothing more to do */
+ return;
+ }
+
+ dialog = gsm_get_logout_dialog (gdk_screen_get_default (),
+ gtk_get_current_event_time ());
+
+ g_signal_connect (dialog,
+ "response",
+ G_CALLBACK (logout_dialog_response),
+ manager);
+ gtk_widget_show (dialog);
+}
+
+static void
+user_logout (GsmManager *manager,
+ gboolean show_confirmation,
+ gboolean forceful_logout)
+{
+ gboolean logout_prompt;
+
+ if (manager->priv->phase >= GSM_MANAGER_PHASE_QUERY_END_SESSION) {
+ /* Already shutting down, nothing more to do */
+ return;
+ }
+
+ logout_prompt =
+ mateconf_client_get_bool (manager->priv->mateconf_client,
+ "/apps/mate-session/options/logout_prompt",
+ NULL);
+
+ /* Global settings overides input parameter in order to disable confirmation
+ * dialog accordingly. If we're shutting down, we always show the confirmation
+ * dialog */
+ logout_prompt = (logout_prompt && show_confirmation);
+
+ if (logout_prompt) {
+ show_logout_dialog (manager);
+ } else {
+ request_logout (manager, forceful_logout);
+ }
+}
+
+/*
+ dbus-send --session --type=method_call --print-reply
+ --dest=org.mate.SessionManager
+ /org/mate/SessionManager
+ org.freedesktop.DBus.Introspectable.Introspect
+*/
+
+gboolean
+gsm_manager_set_phase (GsmManager *manager,
+ GsmManagerPhase phase)
+{
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+ manager->priv->phase = phase;
+ return (TRUE);
+}
+
+gboolean
+gsm_manager_shutdown (GsmManager *manager,
+ GError **error)
+{
+ g_debug ("GsmManager: Shutdown called");
+
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
+ if (manager->priv->phase != GSM_MANAGER_PHASE_RUNNING) {
+ g_set_error (error,
+ GSM_MANAGER_ERROR,
+ GSM_MANAGER_ERROR_NOT_IN_RUNNING,
+ "Shutdown interface is only available during the Running phase");
+ return FALSE;
+ }
+
+ show_shutdown_dialog (manager);
+
+ return TRUE;
+}
+
+gboolean
+gsm_manager_can_shutdown (GsmManager *manager,
+ gboolean *shutdown_available,
+ GError **error)
+{
+ GsmConsolekit *consolekit;
+ gboolean can_suspend;
+ gboolean can_hibernate;
+
+ g_object_get (manager->priv->up_client,
+ "can-suspend", &can_suspend,
+ "can-hibernate", &can_hibernate,
+ NULL);
+
+ g_debug ("GsmManager: CanShutdown called");
+
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
+ consolekit = gsm_get_consolekit ();
+ *shutdown_available = gsm_consolekit_can_stop (consolekit)
+ || gsm_consolekit_can_restart (consolekit)
+ || can_suspend
+ || can_hibernate;
+ g_object_unref (consolekit);
+
+ return TRUE;
+}
+
+gboolean
+gsm_manager_logout (GsmManager *manager,
+ guint logout_mode,
+ GError **error)
+{
+ g_debug ("GsmManager: Logout called");
+
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
+ if (manager->priv->phase != GSM_MANAGER_PHASE_RUNNING) {
+ g_set_error (error,
+ GSM_MANAGER_ERROR,
+ GSM_MANAGER_ERROR_NOT_IN_RUNNING,
+ "Shutdown interface is only available during the Running phase");
+ return FALSE;
+ }
+
+ switch (logout_mode) {
+ case GSM_MANAGER_LOGOUT_MODE_NORMAL:
+ user_logout (manager, TRUE, FALSE);
+ break;
+
+ case GSM_MANAGER_LOGOUT_MODE_NO_CONFIRMATION:
+ user_logout (manager, FALSE, FALSE);
+ break;
+
+ case GSM_MANAGER_LOGOUT_MODE_FORCE:
+ user_logout (manager, FALSE, TRUE);
+ break;
+
+ default:
+ g_debug ("Unknown logout mode option");
+
+ g_set_error (error,
+ GSM_MANAGER_ERROR,
+ GSM_MANAGER_ERROR_INVALID_OPTION,
+ "Unknown logout mode flag");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+gboolean
+gsm_manager_register_client (GsmManager *manager,
+ const char *app_id,
+ const char *startup_id,
+ DBusGMethodInvocation *context)
+{
+ char *new_startup_id;
+ char *sender;
+ GsmClient *client;
+ GsmApp *app;
+
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
+ app = NULL;
+ client = NULL;
+
+ g_debug ("GsmManager: RegisterClient %s", startup_id);
+
+ if (manager->priv->phase >= GSM_MANAGER_PHASE_QUERY_END_SESSION) {
+ GError *new_error;
+
+ g_debug ("Unable to register client: shutting down");
+
+ new_error = g_error_new (GSM_MANAGER_ERROR,
+ GSM_MANAGER_ERROR_NOT_IN_RUNNING,
+ "Unable to register client");
+ dbus_g_method_return_error (context, new_error);
+ g_error_free (new_error);
+ return FALSE;
+ }
+
+ if (IS_STRING_EMPTY (startup_id)) {
+ new_startup_id = gsm_util_generate_startup_id ();
+ } else {
+
+ client = (GsmClient *)gsm_store_find (manager->priv->clients,
+ (GsmStoreFunc)_client_has_startup_id,
+ (char *)startup_id);
+ /* We can't have two clients with the same startup id. */
+ if (client != NULL) {
+ GError *new_error;
+
+ g_debug ("Unable to register client: already registered");
+
+ new_error = g_error_new (GSM_MANAGER_ERROR,
+ GSM_MANAGER_ERROR_ALREADY_REGISTERED,
+ "Unable to register client");
+ dbus_g_method_return_error (context, new_error);
+ g_error_free (new_error);
+ return FALSE;
+ }
+
+ new_startup_id = g_strdup (startup_id);
+ }
+
+ g_debug ("GsmManager: Adding new client %s to session", new_startup_id);
+
+ if (app == NULL && !IS_STRING_EMPTY (startup_id)) {
+ app = find_app_for_startup_id (manager, startup_id);
+ }
+ if (app == NULL && !IS_STRING_EMPTY (app_id)) {
+ /* try to associate this app id with a known app */
+ app = find_app_for_app_id (manager, app_id);
+ }
+
+ sender = dbus_g_method_get_sender (context);
+ client = gsm_dbus_client_new (new_startup_id, sender);
+ g_free (sender);
+ if (client == NULL) {
+ GError *new_error;
+
+ g_debug ("Unable to create client");
+
+ new_error = g_error_new (GSM_MANAGER_ERROR,
+ GSM_MANAGER_ERROR_GENERAL,
+ "Unable to register client");
+ dbus_g_method_return_error (context, new_error);
+ g_error_free (new_error);
+ return FALSE;
+ }
+
+ gsm_store_add (manager->priv->clients, gsm_client_peek_id (client), G_OBJECT (client));
+ /* the store will own the ref */
+ g_object_unref (client);
+
+ if (app != NULL) {
+ gsm_client_set_app_id (client, gsm_app_peek_app_id (app));
+ gsm_app_registered (app);
+ } else {
+ /* if an app id is specified store it in the client
+ so we can save it later */
+ gsm_client_set_app_id (client, app_id);
+ }
+
+ gsm_client_set_status (client, GSM_CLIENT_REGISTERED);
+
+ g_assert (new_startup_id != NULL);
+ g_free (new_startup_id);
+
+ dbus_g_method_return (context, gsm_client_peek_id (client));
+
+ return TRUE;
+}
+
+gboolean
+gsm_manager_unregister_client (GsmManager *manager,
+ const char *client_id,
+ DBusGMethodInvocation *context)
+{
+ GsmClient *client;
+
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
+ g_debug ("GsmManager: UnregisterClient %s", client_id);
+
+ client = (GsmClient *)gsm_store_lookup (manager->priv->clients, client_id);
+ if (client == NULL) {
+ GError *new_error;
+
+ g_debug ("Unable to unregister client: not registered");
+
+ new_error = g_error_new (GSM_MANAGER_ERROR,
+ GSM_MANAGER_ERROR_NOT_REGISTERED,
+ "Unable to unregister client");
+ dbus_g_method_return_error (context, new_error);
+ g_error_free (new_error);
+ return FALSE;
+ }
+
+ /* don't disconnect client here, only change the status.
+ Wait until it leaves the bus before disconnecting it */
+ gsm_client_set_status (client, GSM_CLIENT_UNREGISTERED);
+
+ dbus_g_method_return (context);
+
+ return TRUE;
+}
+
+gboolean
+gsm_manager_inhibit (GsmManager *manager,
+ const char *app_id,
+ guint toplevel_xid,
+ const char *reason,
+ guint flags,
+ DBusGMethodInvocation *context)
+{
+ GsmInhibitor *inhibitor;
+ guint cookie;
+
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
+ g_debug ("GsmManager: Inhibit xid=%u app_id=%s reason=%s flags=%u",
+ toplevel_xid,
+ app_id,
+ reason,
+ flags);
+
+ if (IS_STRING_EMPTY (app_id)) {
+ GError *new_error;
+
+ new_error = g_error_new (GSM_MANAGER_ERROR,
+ GSM_MANAGER_ERROR_GENERAL,
+ "Application ID not specified");
+ g_debug ("GsmManager: Unable to inhibit: %s", new_error->message);
+ dbus_g_method_return_error (context, new_error);
+ g_error_free (new_error);
+ return FALSE;
+ }
+
+ if (IS_STRING_EMPTY (reason)) {
+ GError *new_error;
+
+ new_error = g_error_new (GSM_MANAGER_ERROR,
+ GSM_MANAGER_ERROR_GENERAL,
+ "Reason not specified");
+ g_debug ("GsmManager: Unable to inhibit: %s", new_error->message);
+ dbus_g_method_return_error (context, new_error);
+ g_error_free (new_error);
+ return FALSE;
+ }
+
+ if (flags == 0) {
+ GError *new_error;
+
+ new_error = g_error_new (GSM_MANAGER_ERROR,
+ GSM_MANAGER_ERROR_GENERAL,
+ "Invalid inhibit flags");
+ g_debug ("GsmManager: Unable to inhibit: %s", new_error->message);
+ dbus_g_method_return_error (context, new_error);
+ g_error_free (new_error);
+ return FALSE;
+ }
+
+ cookie = _generate_unique_cookie (manager);
+ inhibitor = gsm_inhibitor_new (app_id,
+ toplevel_xid,
+ flags,
+ reason,
+ dbus_g_method_get_sender (context),
+ cookie);
+ gsm_store_add (manager->priv->inhibitors, gsm_inhibitor_peek_id (inhibitor), G_OBJECT (inhibitor));
+ g_object_unref (inhibitor);
+
+ dbus_g_method_return (context, cookie);
+
+ return TRUE;
+}
+
+gboolean
+gsm_manager_uninhibit (GsmManager *manager,
+ guint cookie,
+ DBusGMethodInvocation *context)
+{
+ GsmInhibitor *inhibitor;
+
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
+ g_debug ("GsmManager: Uninhibit %u", cookie);
+
+ inhibitor = (GsmInhibitor *)gsm_store_find (manager->priv->inhibitors,
+ (GsmStoreFunc)_find_by_cookie,
+ &cookie);
+ if (inhibitor == NULL) {
+ GError *new_error;
+
+ new_error = g_error_new (GSM_MANAGER_ERROR,
+ GSM_MANAGER_ERROR_GENERAL,
+ "Unable to uninhibit: Invalid cookie");
+ dbus_g_method_return_error (context, new_error);
+ g_debug ("Unable to uninhibit: %s", new_error->message);
+ g_error_free (new_error);
+ return FALSE;
+ }
+
+ g_debug ("GsmManager: removing inhibitor %s %u reason '%s' %u connection %s",
+ gsm_inhibitor_peek_app_id (inhibitor),
+ gsm_inhibitor_peek_toplevel_xid (inhibitor),
+ gsm_inhibitor_peek_reason (inhibitor),
+ gsm_inhibitor_peek_flags (inhibitor),
+ gsm_inhibitor_peek_bus_name (inhibitor));
+
+ gsm_store_remove (manager->priv->inhibitors, gsm_inhibitor_peek_id (inhibitor));
+
+ dbus_g_method_return (context);
+
+ return TRUE;
+}
+
+gboolean
+gsm_manager_is_inhibited (GsmManager *manager,
+ guint flags,
+ gboolean *is_inhibited,
+ GError *error)
+{
+ GsmInhibitor *inhibitor;
+
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
+ if (manager->priv->inhibitors == NULL
+ || gsm_store_size (manager->priv->inhibitors) == 0) {
+ *is_inhibited = FALSE;
+ return TRUE;
+ }
+
+ inhibitor = (GsmInhibitor *) gsm_store_find (manager->priv->inhibitors,
+ (GsmStoreFunc)inhibitor_has_flag,
+ GUINT_TO_POINTER (flags));
+ if (inhibitor == NULL) {
+ *is_inhibited = FALSE;
+ } else {
+ *is_inhibited = TRUE;
+ }
+
+ return TRUE;
+
+}
+
+static gboolean
+listify_store_ids (char *id,
+ GObject *object,
+ GPtrArray **array)
+{
+ g_ptr_array_add (*array, g_strdup (id));
+ return FALSE;
+}
+
+gboolean
+gsm_manager_get_clients (GsmManager *manager,
+ GPtrArray **clients,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
+ if (clients == NULL) {
+ return FALSE;
+ }
+
+ *clients = g_ptr_array_new ();
+ gsm_store_foreach (manager->priv->clients, (GsmStoreFunc)listify_store_ids, clients);
+
+ return TRUE;
+}
+
+gboolean
+gsm_manager_get_inhibitors (GsmManager *manager,
+ GPtrArray **inhibitors,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
+ if (inhibitors == NULL) {
+ return FALSE;
+ }
+
+ *inhibitors = g_ptr_array_new ();
+ gsm_store_foreach (manager->priv->inhibitors,
+ (GsmStoreFunc) listify_store_ids,
+ inhibitors);
+
+ return TRUE;
+}
+
+
+static gboolean
+_app_has_autostart_condition (const char *id,
+ GsmApp *app,
+ const char *condition)
+{
+ gboolean has;
+ gboolean disabled;
+
+ has = gsm_app_has_autostart_condition (app, condition);
+ disabled = gsm_app_peek_is_disabled (app);
+
+ return has && !disabled;
+}
+
+gboolean
+gsm_manager_is_autostart_condition_handled (GsmManager *manager,
+ const char *condition,
+ gboolean *handled,
+ GError **error)
+{
+ GsmApp *app;
+
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
+ app = (GsmApp *) gsm_store_find (manager->priv->apps,(
+ GsmStoreFunc) _app_has_autostart_condition,
+ (char *)condition);
+
+ if (app != NULL) {
+ *handled = TRUE;
+ } else {
+ *handled = FALSE;
+ }
+
+ return TRUE;
+}
+
+static void
+append_app (GsmManager *manager,
+ GsmApp *app)
+{
+ const char *id;
+ const char *app_id;
+ GsmApp *dup;
+
+ id = gsm_app_peek_id (app);
+ if (IS_STRING_EMPTY (id)) {
+ g_debug ("GsmManager: not adding app: no id");
+ return;
+ }
+
+ dup = (GsmApp *)gsm_store_lookup (manager->priv->apps, id);
+ if (dup != NULL) {
+ g_debug ("GsmManager: not adding app: already added");
+ return;
+ }
+
+ app_id = gsm_app_peek_app_id (app);
+ if (IS_STRING_EMPTY (app_id)) {
+ g_debug ("GsmManager: not adding app: no app-id");
+ return;
+ }
+
+ dup = find_app_for_app_id (manager, app_id);
+ if (dup != NULL) {
+ g_debug ("GsmManager: not adding app: app-id already exists");
+ return;
+ }
+
+ gsm_store_add (manager->priv->apps, id, G_OBJECT (app));
+}
+
+gboolean
+gsm_manager_add_autostart_app (GsmManager *manager,
+ const char *path,
+ const char *provides)
+{
+ GsmApp *app;
+
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+ g_return_val_if_fail (path != NULL, FALSE);
+
+ /* first check to see if service is already provided */
+ if (provides != NULL) {
+ GsmApp *dup;
+
+ dup = (GsmApp *)gsm_store_find (manager->priv->apps,
+ (GsmStoreFunc)_find_app_provides,
+ (char *)provides);
+ if (dup != NULL) {
+ g_debug ("GsmManager: service '%s' is already provided", provides);
+ return FALSE;
+ }
+ }
+
+ app = gsm_autostart_app_new (path);
+ if (app == NULL) {
+ g_warning ("could not read %s", path);
+ return FALSE;
+ }
+
+ g_debug ("GsmManager: read %s", path);
+ append_app (manager, app);
+ g_object_unref (app);
+
+ return TRUE;
+}
+
+gboolean
+gsm_manager_add_autostart_apps_from_dir (GsmManager *manager,
+ const char *path)
+{
+ GDir *dir;
+ const char *name;
+
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+ g_return_val_if_fail (path != NULL, FALSE);
+
+ g_debug ("GsmManager: *** Adding autostart apps for %s", path);
+
+ dir = g_dir_open (path, 0, NULL);
+ if (dir == NULL) {
+ return FALSE;
+ }
+
+ while ((name = g_dir_read_name (dir))) {
+ char *desktop_file;
+
+ if (!g_str_has_suffix (name, ".desktop")) {
+ continue;
+ }
+
+ desktop_file = g_build_filename (path, name, NULL);
+ gsm_manager_add_autostart_app (manager, desktop_file, NULL);
+ g_free (desktop_file);
+ }
+
+ g_dir_close (dir);
+
+ return TRUE;
+}
diff --git a/mate-session/gsm-manager.h b/mate-session/gsm-manager.h
new file mode 100644
index 0000000..635590c
--- /dev/null
+++ b/mate-session/gsm-manager.h
@@ -0,0 +1,190 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+
+#ifndef __GSM_MANAGER_H
+#define __GSM_MANAGER_H
+
+#include <glib-object.h>
+#include <dbus/dbus-glib.h>
+
+#include "gsm-store.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GSM_TYPE_MANAGER (gsm_manager_get_type ())
+#define GSM_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSM_TYPE_MANAGER, GsmManager))
+#define GSM_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSM_TYPE_MANAGER, GsmManagerClass))
+#define GSM_IS_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSM_TYPE_MANAGER))
+#define GSM_IS_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSM_TYPE_MANAGER))
+#define GSM_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSM_TYPE_MANAGER, GsmManagerClass))
+
+typedef struct GsmManagerPrivate GsmManagerPrivate;
+
+typedef struct
+{
+ GObject parent;
+ GsmManagerPrivate *priv;
+} GsmManager;
+
+typedef struct
+{
+ GObjectClass parent_class;
+
+ void (* session_running) (GsmManager *manager);
+ void (* session_over) (GsmManager *manager);
+ void (* session_over_notice) (GsmManager *manager);
+
+ void (* phase_changed) (GsmManager *manager,
+ const char *phase);
+
+ void (* client_added) (GsmManager *manager,
+ const char *id);
+ void (* client_removed) (GsmManager *manager,
+ const char *id);
+ void (* inhibitor_added) (GsmManager *manager,
+ const char *id);
+ void (* inhibitor_removed) (GsmManager *manager,
+ const char *id);
+} GsmManagerClass;
+
+typedef enum {
+ /* gsm's own startup/initialization phase */
+ GSM_MANAGER_PHASE_STARTUP = 0,
+ /* xrandr setup, mate-settings-daemon, etc */
+ GSM_MANAGER_PHASE_INITIALIZATION,
+ /* window/compositing managers */
+ GSM_MANAGER_PHASE_WINDOW_MANAGER,
+ /* apps that will create _NET_WM_WINDOW_TYPE_PANEL windows */
+ GSM_MANAGER_PHASE_PANEL,
+ /* apps that will create _NET_WM_WINDOW_TYPE_DESKTOP windows */
+ GSM_MANAGER_PHASE_DESKTOP,
+ /* everything else */
+ GSM_MANAGER_PHASE_APPLICATION,
+ /* done launching */
+ GSM_MANAGER_PHASE_RUNNING,
+ /* shutting down */
+ GSM_MANAGER_PHASE_QUERY_END_SESSION,
+ GSM_MANAGER_PHASE_END_SESSION,
+ GSM_MANAGER_PHASE_EXIT
+} GsmManagerPhase;
+
+typedef enum
+{
+ GSM_MANAGER_ERROR_GENERAL = 0,
+ GSM_MANAGER_ERROR_NOT_IN_INITIALIZATION,
+ GSM_MANAGER_ERROR_NOT_IN_RUNNING,
+ GSM_MANAGER_ERROR_ALREADY_REGISTERED,
+ GSM_MANAGER_ERROR_NOT_REGISTERED,
+ GSM_MANAGER_ERROR_INVALID_OPTION,
+ GSM_MANAGER_NUM_ERRORS
+} GsmManagerError;
+
+#define GSM_MANAGER_ERROR gsm_manager_error_quark ()
+
+typedef enum {
+ GSM_MANAGER_LOGOUT_MODE_NORMAL = 0,
+ GSM_MANAGER_LOGOUT_MODE_NO_CONFIRMATION,
+ GSM_MANAGER_LOGOUT_MODE_FORCE
+} GsmManagerLogoutMode;
+
+GType gsm_manager_error_get_type (void);
+#define GSM_MANAGER_TYPE_ERROR (gsm_manager_error_get_type ())
+
+GQuark gsm_manager_error_quark (void);
+GType gsm_manager_get_type (void);
+
+GsmManager * gsm_manager_new (GsmStore *client_store,
+ gboolean failsafe);
+
+gboolean gsm_manager_add_autostart_app (GsmManager *manager,
+ const char *path,
+ const char *provides);
+gboolean gsm_manager_add_autostart_apps_from_dir (GsmManager *manager,
+ const char *path);
+gboolean gsm_manager_add_legacy_session_apps (GsmManager *manager,
+ const char *path);
+
+void gsm_manager_start (GsmManager *manager);
+
+
+/* exported methods */
+
+gboolean gsm_manager_register_client (GsmManager *manager,
+ const char *app_id,
+ const char *client_startup_id,
+ DBusGMethodInvocation *context);
+gboolean gsm_manager_unregister_client (GsmManager *manager,
+ const char *session_client_id,
+ DBusGMethodInvocation *context);
+
+gboolean gsm_manager_inhibit (GsmManager *manager,
+ const char *app_id,
+ guint toplevel_xid,
+ const char *reason,
+ guint flags,
+ DBusGMethodInvocation *context);
+gboolean gsm_manager_uninhibit (GsmManager *manager,
+ guint inhibit_cookie,
+ DBusGMethodInvocation *context);
+gboolean gsm_manager_is_inhibited (GsmManager *manager,
+ guint flags,
+ gboolean *is_inhibited,
+ GError *error);
+
+gboolean gsm_manager_shutdown (GsmManager *manager,
+ GError **error);
+
+gboolean gsm_manager_can_shutdown (GsmManager *manager,
+ gboolean *shutdown_available,
+ GError **error);
+gboolean gsm_manager_logout (GsmManager *manager,
+ guint logout_mode,
+ GError **error);
+
+gboolean gsm_manager_setenv (GsmManager *manager,
+ const char *variable,
+ const char *value,
+ GError **error);
+gboolean gsm_manager_initialization_error (GsmManager *manager,
+ const char *message,
+ gboolean fatal,
+ GError **error);
+
+gboolean gsm_manager_get_clients (GsmManager *manager,
+ GPtrArray **clients,
+ GError **error);
+gboolean gsm_manager_get_inhibitors (GsmManager *manager,
+ GPtrArray **inhibitors,
+ GError **error);
+gboolean gsm_manager_is_autostart_condition_handled (GsmManager *manager,
+ const char *condition,
+ gboolean *handled,
+ GError **error);
+gboolean gsm_manager_set_phase (GsmManager *manager,
+ GsmManagerPhase phase);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSM_MANAGER_H */
diff --git a/mate-session/gsm-marshal.list b/mate-session/gsm-marshal.list
new file mode 100644
index 0000000..f31a8b1
--- /dev/null
+++ b/mate-session/gsm-marshal.list
@@ -0,0 +1,3 @@
+BOOLEAN:POINTER
+VOID:BOOLEAN,BOOLEAN,BOOLEAN,STRING
+VOID:BOOLEAN,BOOLEAN,POINTER
diff --git a/mate-session/gsm-mateconf.c b/mate-session/gsm-mateconf.c
new file mode 100644
index 0000000..cd5adc4
--- /dev/null
+++ b/mate-session/gsm-mateconf.c
@@ -0,0 +1,143 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ * gsm-mateconf.c
+ * Copyright (C) 2007 Novell, Inc.
+ *
+ * FIXME: (C) on mateconf-sanity-check call, gsm_get_conf_client,
+ * gsm_shutdown_mateconfd
+ *
+ * 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <glib/gi18n.h>
+
+#include <sys/wait.h>
+#include <sys/types.h>
+
+#include "gsm-mateconf.h"
+#include "gsm-util.h"
+
+static pid_t gsc_pid;
+
+static void unset_display_setup (gpointer user_data);
+
+/**
+ * gsm_mateconf_init:
+ *
+ * Starts mateconfd asynchronously if it is not already running. This
+ * must be called very soon after startup. It requires no
+ * initialization beyond g_type_init().
+ **/
+void
+gsm_mateconf_init (void)
+{
+ GError *error = NULL;
+ char *argv[2];
+
+ /* Run mateconf-sanity-check. As a side effect, this will cause mateconfd
+ * to be started. (We do this asynchronously so that other GSM
+ * initialization can happen in parallel.)
+ */
+
+ argv[0] = MATECONF_SANITY_CHECK;
+ argv[1] = NULL;
+
+ g_spawn_async (NULL, argv, NULL, G_SPAWN_DO_NOT_REAP_CHILD,
+ unset_display_setup, NULL, &gsc_pid, &error);
+ if (error != NULL) {
+ g_warning ("Failed to run mateconf-sanity-check-2: %s\n",
+ error->message);
+ g_error_free (error);
+
+ /* This probably means mateconf-sanity-check wasn't found, which
+ * really shouldn't happen, but we'll just ignore it for now as
+ * long as mateconf seems to be working later on...
+ */
+
+ gsc_pid = 0;
+ }
+}
+
+static void
+unset_display_setup (gpointer user_data)
+{
+ /* Unset DISPLAY to make sure mateconf-sanity-check spews errors to
+ * stderr instead of trying to show a dialog (since it doesn't
+ * compensate for the fact that a window manager isn't running yet.)
+ */
+ g_unsetenv ("DISPLAY");
+}
+
+/**
+ * gsm_mateconf_check:
+ *
+ * Verifies that gsm_mateconf_init() succeeded. (Exits with an error
+ * dialog on failure.)
+ **/
+void
+gsm_mateconf_check (void)
+{
+ if (gsc_pid) {
+ int status;
+
+ /* Wait for mateconf-sanity-check to finish */
+ while (waitpid (gsc_pid, &status, 0) != gsc_pid) {
+ ;
+ }
+ gsc_pid = 0;
+
+ if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) {
+ /* FIXME: capture mateconf-sanity-check's stderr */
+ gsm_util_init_error (TRUE,
+ _("There is a problem with the configuration server.\n"
+ "(%s exited with status %d)"),
+ MATECONF_SANITY_CHECK, status);
+ }
+ }
+}
+
+/**
+ * gsm_mateconf_shutdown:
+ *
+ * Shuts down mateconfd before exiting.
+ *
+ * FIXME: does this need to be called even if mateconf-sanity-check fails?
+ **/
+void
+gsm_mateconf_shutdown (void)
+{
+ GError *error;
+ char *command;
+ int status;
+
+ command = g_strjoin (" ", MATECONFTOOL_CMD, "--shutdown", NULL);
+
+ status = 0;
+ error = NULL;
+ if (!g_spawn_command_line_sync (command, NULL, NULL, &status, &error)) {
+ g_warning ("Failed to execute '%s' on logout: %s\n",
+ command, error->message);
+ g_error_free (error);
+ }
+
+ if (status) {
+ g_warning ("Running '%s' at logout returned an exit status of '%d'",
+ command, status);
+ }
+
+ g_free (command);
+}
diff --git a/mate-session/gsm-mateconf.h b/mate-session/gsm-mateconf.h
new file mode 100644
index 0000000..d30d548
--- /dev/null
+++ b/mate-session/gsm-mateconf.h
@@ -0,0 +1,31 @@
+/* gsm-mateconf.h
+ * Copyright (C) 2007 Novell, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef __GSM_MATECONF_H__
+#define __GSM_MATECONF_H__
+
+#include <mateconf/mateconf-client.h>
+
+void gsm_mateconf_init (void);
+void gsm_mateconf_check (void);
+void gsm_mateconf_shutdown (void);
+
+MateConfClient *gsm_mateconf_get_client (void);
+
+#endif /* __GSM_MATECONF_H__ */
diff --git a/mate-session/gsm-presence.c b/mate-session/gsm-presence.c
new file mode 100644
index 0000000..dc179c0
--- /dev/null
+++ b/mate-session/gsm-presence.c
@@ -0,0 +1,550 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <dbus/dbus-glib.h>
+
+#include "gs-idle-monitor.h"
+
+#include "gsm-presence.h"
+#include "gsm-presence-glue.h"
+
+#define GSM_PRESENCE_DBUS_PATH "/org/mate/SessionManager/Presence"
+
+#define GS_NAME "org.mate.ScreenSaver"
+#define GS_PATH "/org/mate/ScreenSaver"
+#define GS_INTERFACE "org.mate.ScreenSaver"
+
+#define MAX_STATUS_TEXT 140
+
+#define IS_STRING_EMPTY(x) ((x)==NULL||(x)[0]=='\0')
+
+#define GSM_PRESENCE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_PRESENCE, GsmPresencePrivate))
+
+struct GsmPresencePrivate
+{
+ guint status;
+ guint saved_status;
+ char *status_text;
+ gboolean idle_enabled;
+ GSIdleMonitor *idle_monitor;
+ guint idle_watch_id;
+ guint idle_timeout;
+ gboolean screensaver_active;
+ DBusGConnection *bus_connection;
+ DBusGProxy *bus_proxy;
+ DBusGProxy *screensaver_proxy;
+};
+
+enum {
+ PROP_0,
+ PROP_STATUS,
+ PROP_STATUS_TEXT,
+ PROP_IDLE_ENABLED,
+ PROP_IDLE_TIMEOUT,
+};
+
+
+enum {
+ STATUS_CHANGED,
+ STATUS_TEXT_CHANGED,
+ LAST_SIGNAL
+};
+
+static guint signals [LAST_SIGNAL] = { 0 };
+
+G_DEFINE_TYPE (GsmPresence, gsm_presence, G_TYPE_OBJECT)
+
+GQuark
+gsm_presence_error_quark (void)
+{
+ static GQuark ret = 0;
+ if (ret == 0) {
+ ret = g_quark_from_static_string ("gsm_presence_error");
+ }
+
+ return ret;
+}
+
+#define ENUM_ENTRY(NAME, DESC) { NAME, "" #NAME "", DESC }
+
+GType
+gsm_presence_error_get_type (void)
+{
+ static GType etype = 0;
+
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ ENUM_ENTRY (GSM_PRESENCE_ERROR_GENERAL, "GeneralError"),
+ { 0, 0, 0 }
+ };
+
+ g_assert (GSM_PRESENCE_NUM_ERRORS == G_N_ELEMENTS (values) - 1);
+
+ etype = g_enum_register_static ("GsmPresenceError", values);
+ }
+
+ return etype;
+}
+
+static void
+set_session_idle (GsmPresence *presence,
+ gboolean is_idle)
+{
+ g_debug ("GsmPresence: setting idle: %d", is_idle);
+
+ if (is_idle) {
+ if (presence->priv->status == GSM_PRESENCE_STATUS_IDLE) {
+ g_debug ("GsmPresence: already idle, ignoring");
+ return;
+ }
+
+ /* save current status */
+ presence->priv->saved_status = presence->priv->status;
+ gsm_presence_set_status (presence, GSM_PRESENCE_STATUS_IDLE, NULL);
+ } else {
+ if (presence->priv->status != GSM_PRESENCE_STATUS_IDLE) {
+ g_debug ("GsmPresence: already not idle, ignoring");
+ return;
+ }
+
+ /* restore saved status */
+ gsm_presence_set_status (presence, presence->priv->saved_status, NULL);
+ presence->priv->saved_status = GSM_PRESENCE_STATUS_AVAILABLE;
+ }
+}
+
+static gboolean
+on_idle_timeout (GSIdleMonitor *monitor,
+ guint id,
+ gboolean condition,
+ GsmPresence *presence)
+{
+ gboolean handled;
+
+ handled = TRUE;
+ set_session_idle (presence, condition);
+
+ return handled;
+}
+
+static void
+reset_idle_watch (GsmPresence *presence)
+{
+ if (presence->priv->idle_monitor == NULL) {
+ return;
+ }
+
+ if (presence->priv->idle_watch_id > 0) {
+ g_debug ("GsmPresence: removing idle watch");
+ gs_idle_monitor_remove_watch (presence->priv->idle_monitor,
+ presence->priv->idle_watch_id);
+ presence->priv->idle_watch_id = 0;
+ }
+
+ if (! presence->priv->screensaver_active
+ && presence->priv->idle_enabled) {
+ g_debug ("GsmPresence: adding idle watch");
+
+ presence->priv->idle_watch_id = gs_idle_monitor_add_watch (presence->priv->idle_monitor,
+ presence->priv->idle_timeout,
+ (GSIdleMonitorWatchFunc)on_idle_timeout,
+ presence);
+ }
+}
+
+static void
+on_screensaver_active_changed (DBusGProxy *proxy,
+ gboolean is_active,
+ GsmPresence *presence)
+{
+ g_debug ("screensaver status changed: %d", is_active);
+ if (presence->priv->screensaver_active != is_active) {
+ presence->priv->screensaver_active = is_active;
+ reset_idle_watch (presence);
+ set_session_idle (presence, is_active);
+ }
+}
+
+static void
+on_screensaver_proxy_destroy (GObject *proxy,
+ GsmPresence *presence)
+{
+ g_warning ("Detected that screensaver has left the bus");
+
+ presence->priv->screensaver_proxy = NULL;
+ presence->priv->screensaver_active = FALSE;
+ set_session_idle (presence, FALSE);
+ reset_idle_watch (presence);
+}
+
+static void
+on_bus_name_owner_changed (DBusGProxy *bus_proxy,
+ const char *service_name,
+ const char *old_service_name,
+ const char *new_service_name,
+ GsmPresence *presence)
+{
+ GError *error;
+
+ if (service_name == NULL
+ || strcmp (service_name, GS_NAME) != 0) {
+ /* ignore */
+ return;
+ }
+
+ if (strlen (new_service_name) == 0
+ && strlen (old_service_name) > 0) {
+ /* service removed */
+ /* let destroy signal handle this? */
+ } else if (strlen (old_service_name) == 0
+ && strlen (new_service_name) > 0) {
+ /* service added */
+ error = NULL;
+ presence->priv->screensaver_proxy = dbus_g_proxy_new_for_name_owner (presence->priv->bus_connection,
+ GS_NAME,
+ GS_PATH,
+ GS_INTERFACE,
+ &error);
+ if (presence->priv->screensaver_proxy != NULL) {
+ g_signal_connect (presence->priv->screensaver_proxy,
+ "destroy",
+ G_CALLBACK (on_screensaver_proxy_destroy),
+ presence);
+ dbus_g_proxy_add_signal (presence->priv->screensaver_proxy,
+ "ActiveChanged",
+ G_TYPE_BOOLEAN,
+ G_TYPE_INVALID);
+ dbus_g_proxy_connect_signal (presence->priv->screensaver_proxy,
+ "ActiveChanged",
+ G_CALLBACK (on_screensaver_active_changed),
+ presence,
+ NULL);
+ } else {
+ g_warning ("Unable to get screensaver proxy: %s", error->message);
+ g_error_free (error);
+ }
+ }
+}
+
+static gboolean
+register_presence (GsmPresence *presence)
+{
+ GError *error;
+
+ error = NULL;
+ presence->priv->bus_connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+ if (presence->priv->bus_connection == NULL) {
+ if (error != NULL) {
+ g_critical ("error getting session bus: %s", error->message);
+ g_error_free (error);
+ }
+ return FALSE;
+ }
+
+ dbus_g_connection_register_g_object (presence->priv->bus_connection, GSM_PRESENCE_DBUS_PATH, G_OBJECT (presence));
+
+ return TRUE;
+}
+
+static GObject *
+gsm_presence_constructor (GType type,
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
+{
+ GsmPresence *presence;
+ gboolean res;
+
+ presence = GSM_PRESENCE (G_OBJECT_CLASS (gsm_presence_parent_class)->constructor (type,
+ n_construct_properties,
+ construct_properties));
+
+ res = register_presence (presence);
+ if (! res) {
+ g_warning ("Unable to register presence with session bus");
+ }
+
+ presence->priv->bus_proxy = dbus_g_proxy_new_for_name (presence->priv->bus_connection,
+ DBUS_SERVICE_DBUS,
+ DBUS_PATH_DBUS,
+ DBUS_INTERFACE_DBUS);
+ if (presence->priv->bus_proxy != NULL) {
+ dbus_g_proxy_add_signal (presence->priv->bus_proxy,
+ "NameOwnerChanged",
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_INVALID);
+ dbus_g_proxy_connect_signal (presence->priv->bus_proxy,
+ "NameOwnerChanged",
+ G_CALLBACK (on_bus_name_owner_changed),
+ presence,
+ NULL);
+ }
+
+ return G_OBJECT (presence);
+}
+
+static void
+gsm_presence_init (GsmPresence *presence)
+{
+ presence->priv = GSM_PRESENCE_GET_PRIVATE (presence);
+
+ presence->priv->idle_monitor = gs_idle_monitor_new ();
+}
+
+void
+gsm_presence_set_idle_enabled (GsmPresence *presence,
+ gboolean enabled)
+{
+ g_return_if_fail (GSM_IS_PRESENCE (presence));
+
+ if (presence->priv->idle_enabled != enabled) {
+ presence->priv->idle_enabled = enabled;
+ reset_idle_watch (presence);
+ g_object_notify (G_OBJECT (presence), "idle-enabled");
+
+ }
+}
+
+gboolean
+gsm_presence_set_status_text (GsmPresence *presence,
+ const char *status_text,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_PRESENCE (presence), FALSE);
+
+ g_free (presence->priv->status_text);
+
+ /* check length */
+ if (status_text != NULL && strlen (status_text) > MAX_STATUS_TEXT) {
+ g_set_error (error,
+ GSM_PRESENCE_ERROR,
+ GSM_PRESENCE_ERROR_GENERAL,
+ "Status text too long");
+ return FALSE;
+ }
+
+ if (status_text != NULL) {
+ presence->priv->status_text = g_strdup (status_text);
+ } else {
+ presence->priv->status_text = g_strdup ("");
+ }
+ g_object_notify (G_OBJECT (presence), "status-text");
+ g_signal_emit (presence, signals[STATUS_TEXT_CHANGED], 0, presence->priv->status_text);
+ return TRUE;
+}
+
+gboolean
+gsm_presence_set_status (GsmPresence *presence,
+ guint status,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_PRESENCE (presence), FALSE);
+
+ if (status != presence->priv->status) {
+ presence->priv->status = status;
+ g_object_notify (G_OBJECT (presence), "status");
+ g_signal_emit (presence, signals[STATUS_CHANGED], 0, presence->priv->status);
+ }
+ return TRUE;
+}
+
+void
+gsm_presence_set_idle_timeout (GsmPresence *presence,
+ guint timeout)
+{
+ g_return_if_fail (GSM_IS_PRESENCE (presence));
+
+ if (timeout != presence->priv->idle_timeout) {
+ presence->priv->idle_timeout = timeout;
+ reset_idle_watch (presence);
+ g_object_notify (G_OBJECT (presence), "idle-timeout");
+ }
+}
+
+static void
+gsm_presence_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GsmPresence *self;
+
+ self = GSM_PRESENCE (object);
+
+ switch (prop_id) {
+ case PROP_STATUS:
+ gsm_presence_set_status (self, g_value_get_uint (value), NULL);
+ break;
+ case PROP_STATUS_TEXT:
+ gsm_presence_set_status_text (self, g_value_get_string (value), NULL);
+ break;
+ case PROP_IDLE_ENABLED:
+ gsm_presence_set_idle_enabled (self, g_value_get_boolean (value));
+ break;
+ case PROP_IDLE_TIMEOUT:
+ gsm_presence_set_idle_timeout (self, g_value_get_uint (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_presence_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GsmPresence *self;
+
+ self = GSM_PRESENCE (object);
+
+ switch (prop_id) {
+ case PROP_STATUS:
+ g_value_set_uint (value, self->priv->status);
+ break;
+ case PROP_STATUS_TEXT:
+ g_value_set_string (value, self->priv->status_text);
+ break;
+ case PROP_IDLE_ENABLED:
+ g_value_set_boolean (value, self->priv->idle_enabled);
+ break;
+ case PROP_IDLE_TIMEOUT:
+ g_value_set_uint (value, self->priv->idle_timeout);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_presence_finalize (GObject *object)
+{
+ GsmPresence *presence = (GsmPresence *) object;
+
+ if (presence->priv->idle_watch_id > 0) {
+ gs_idle_monitor_remove_watch (presence->priv->idle_monitor,
+ presence->priv->idle_watch_id);
+ presence->priv->idle_watch_id = 0;
+ }
+
+ if (presence->priv->status_text != NULL) {
+ g_free (presence->priv->status_text);
+ presence->priv->status_text = NULL;
+ }
+
+ if (presence->priv->idle_monitor != NULL) {
+ g_object_unref (presence->priv->idle_monitor);
+ presence->priv->idle_monitor = NULL;
+ }
+
+ G_OBJECT_CLASS (gsm_presence_parent_class)->finalize (object);
+}
+
+static void
+gsm_presence_class_init (GsmPresenceClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->finalize = gsm_presence_finalize;
+ object_class->constructor = gsm_presence_constructor;
+ object_class->get_property = gsm_presence_get_property;
+ object_class->set_property = gsm_presence_set_property;
+
+ signals [STATUS_CHANGED] =
+ g_signal_new ("status-changed",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmPresenceClass, status_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__UINT,
+ G_TYPE_NONE,
+ 1, G_TYPE_UINT);
+ signals [STATUS_TEXT_CHANGED] =
+ g_signal_new ("status-text-changed",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmPresenceClass, status_text_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE,
+ 1, G_TYPE_STRING);
+
+ g_object_class_install_property (object_class,
+ PROP_STATUS,
+ g_param_spec_uint ("status",
+ "status",
+ "status",
+ 0,
+ G_MAXINT,
+ 0,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_STATUS_TEXT,
+ g_param_spec_string ("status-text",
+ "status text",
+ "status text",
+ "",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_IDLE_ENABLED,
+ g_param_spec_boolean ("idle-enabled",
+ NULL,
+ NULL,
+ FALSE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_IDLE_TIMEOUT,
+ g_param_spec_uint ("idle-timeout",
+ "idle timeout",
+ "idle timeout",
+ 0,
+ G_MAXINT,
+ 300000,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+ dbus_g_object_type_install_info (GSM_TYPE_PRESENCE, &dbus_glib_gsm_presence_object_info);
+ dbus_g_error_domain_register (GSM_PRESENCE_ERROR, NULL, GSM_PRESENCE_TYPE_ERROR);
+ g_type_class_add_private (klass, sizeof (GsmPresencePrivate));
+}
+
+GsmPresence *
+gsm_presence_new (void)
+{
+ GsmPresence *presence;
+
+ presence = g_object_new (GSM_TYPE_PRESENCE,
+ NULL);
+
+ return presence;
+}
diff --git a/mate-session/gsm-presence.h b/mate-session/gsm-presence.h
new file mode 100644
index 0000000..8762569
--- /dev/null
+++ b/mate-session/gsm-presence.h
@@ -0,0 +1,100 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef __GSM_PRESENCE_H__
+#define __GSM_PRESENCE_H__
+
+#include <glib-object.h>
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GSM_TYPE_PRESENCE (gsm_presence_get_type ())
+#define GSM_PRESENCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSM_TYPE_PRESENCE, GsmPresence))
+#define GSM_PRESENCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSM_TYPE_PRESENCE, GsmPresenceClass))
+#define GSM_IS_PRESENCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSM_TYPE_PRESENCE))
+#define GSM_IS_PRESENCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSM_TYPE_PRESENCE))
+#define GSM_PRESENCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSM_TYPE_PRESENCE, GsmPresenceClass))
+
+typedef struct _GsmPresence GsmPresence;
+typedef struct _GsmPresenceClass GsmPresenceClass;
+
+typedef struct GsmPresencePrivate GsmPresencePrivate;
+
+struct _GsmPresence
+{
+ GObject parent;
+ GsmPresencePrivate *priv;
+};
+
+struct _GsmPresenceClass
+{
+ GObjectClass parent_class;
+
+ void (* status_changed) (GsmPresence *presence,
+ guint status);
+ void (* status_text_changed) (GsmPresence *presence,
+ const char *status_text);
+
+};
+
+typedef enum {
+ GSM_PRESENCE_STATUS_AVAILABLE = 0,
+ GSM_PRESENCE_STATUS_INVISIBLE,
+ GSM_PRESENCE_STATUS_BUSY,
+ GSM_PRESENCE_STATUS_IDLE,
+} GsmPresenceStatus;
+
+typedef enum
+{
+ GSM_PRESENCE_ERROR_GENERAL = 0,
+ GSM_PRESENCE_NUM_ERRORS
+} GsmPresenceError;
+
+#define GSM_PRESENCE_ERROR gsm_presence_error_quark ()
+GType gsm_presence_error_get_type (void);
+#define GSM_PRESENCE_TYPE_ERROR (gsm_presence_error_get_type ())
+
+GQuark gsm_presence_error_quark (void);
+
+GType gsm_presence_get_type (void) G_GNUC_CONST;
+
+GsmPresence * gsm_presence_new (void);
+
+void gsm_presence_set_idle_enabled (GsmPresence *presence,
+ gboolean enabled);
+void gsm_presence_set_idle_timeout (GsmPresence *presence,
+ guint n_seconds);
+
+/* exported to bus */
+gboolean gsm_presence_set_status (GsmPresence *presence,
+ guint status,
+ GError **error);
+gboolean gsm_presence_set_status_text (GsmPresence *presence,
+ const char *status_text,
+ GError **error);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSM_PRESENCE_H__ */
diff --git a/mate-session/gsm-session-save.c b/mate-session/gsm-session-save.c
new file mode 100644
index 0000000..b31d9fa
--- /dev/null
+++ b/mate-session/gsm-session-save.c
@@ -0,0 +1,254 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ * gsm-session-save.c
+ * Copyright (C) 2008 Lucas Rocha.
+ *
+ * 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <config.h>
+
+#include <glib.h>
+#include <glib/gstdio.h>
+
+#include "gsm-util.h"
+#include "gsm-autostart-app.h"
+#include "gsm-client.h"
+
+#include "gsm-session-save.h"
+
+static gboolean gsm_session_clear_saved_session (const char *directory,
+ GHashTable *discard_hash);
+
+typedef struct {
+ char *dir;
+ GHashTable *discard_hash;
+ GError **error;
+} SessionSaveData;
+
+static gboolean
+save_one_client (char *id,
+ GObject *object,
+ SessionSaveData *data)
+{
+ GsmClient *client;
+ GKeyFile *keyfile;
+ char *path = NULL;
+ char *filename = NULL;
+ char *contents = NULL;
+ gsize length = 0;
+ char *discard_exec;
+ GError *local_error;
+
+ client = GSM_CLIENT (object);
+
+ local_error = NULL;
+
+ keyfile = gsm_client_save (client, &local_error);
+
+ if (keyfile == NULL || local_error) {
+ goto out;
+ }
+
+ contents = g_key_file_to_data (keyfile, &length, &local_error);
+
+ if (local_error) {
+ goto out;
+ }
+
+ filename = g_strdup_printf ("%s.desktop",
+ gsm_client_peek_startup_id (client));
+
+ path = g_build_filename (data->dir, filename, NULL);
+
+ g_file_set_contents (path,
+ contents,
+ length,
+ &local_error);
+
+ if (local_error) {
+ goto out;
+ }
+
+ discard_exec = g_key_file_get_string (keyfile,
+ G_KEY_FILE_DESKTOP_GROUP,
+ GSM_AUTOSTART_APP_DISCARD_KEY,
+ NULL);
+ if (discard_exec) {
+ g_hash_table_insert (data->discard_hash,
+ discard_exec, discard_exec);
+ }
+
+ g_debug ("GsmSessionSave: saved client %s to %s", id, filename);
+
+out:
+ if (keyfile != NULL) {
+ g_key_file_free (keyfile);
+ }
+
+ g_free (contents);
+ g_free (filename);
+ g_free (path);
+
+ /* in case of any error, stop saving session */
+ if (local_error) {
+ g_propagate_error (data->error, local_error);
+ g_error_free (local_error);
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+void
+gsm_session_save (GsmStore *client_store,
+ GError **error)
+{
+ const char *save_dir;
+ char *tmp_dir;
+ SessionSaveData data;
+
+ g_debug ("GsmSessionSave: Saving session");
+
+ save_dir = gsm_util_get_saved_session_dir ();
+ if (save_dir == NULL) {
+ g_warning ("GsmSessionSave: cannot create saved session directory");
+ return;
+ }
+
+ tmp_dir = gsm_util_get_empty_tmp_session_dir ();
+ if (tmp_dir == NULL) {
+ g_warning ("GsmSessionSave: cannot create new saved session directory");
+ return;
+ }
+
+ /* save the session in a temp directory, and remember the discard
+ * commands */
+ data.dir = tmp_dir;
+ data.discard_hash = g_hash_table_new_full (g_str_hash, g_str_equal,
+ g_free, NULL);
+ data.error = error;
+
+ gsm_store_foreach (client_store,
+ (GsmStoreFunc) save_one_client,
+ &data);
+
+ if (!*error) {
+ /* remove the old saved session */
+ gsm_session_clear_saved_session (save_dir, data.discard_hash);
+
+ /* rename the temp session dir */
+ if (g_file_test (save_dir, G_FILE_TEST_IS_DIR))
+ g_rmdir (save_dir);
+ g_rename (tmp_dir, save_dir);
+ } else {
+ g_warning ("GsmSessionSave: error saving session: %s", (*error)->message);
+ /* FIXME: we should create a hash table filled with the discard
+ * commands that are in desktop files from save_dir. */
+ gsm_session_clear_saved_session (tmp_dir, NULL);
+ g_rmdir (tmp_dir);
+ }
+
+ g_hash_table_destroy (data.discard_hash);
+ g_free (tmp_dir);
+}
+
+static gboolean
+gsm_session_clear_one_client (const char *filename,
+ GHashTable *discard_hash)
+{
+ gboolean result = TRUE;
+ GKeyFile *key_file = NULL;
+ char *discard_exec = NULL;
+
+ g_debug ("GsmSessionSave: removing '%s' from saved session", filename);
+
+ key_file = g_key_file_new ();
+ if (g_key_file_load_from_file (key_file, filename,
+ G_KEY_FILE_NONE, NULL)) {
+ char **argv;
+ int argc;
+
+ discard_exec = g_key_file_get_string (key_file,
+ G_KEY_FILE_DESKTOP_GROUP,
+ GSM_AUTOSTART_APP_DISCARD_KEY,
+ NULL);
+ if (!discard_exec)
+ goto out;
+
+ if (g_hash_table_lookup (discard_hash, discard_exec))
+ goto out;
+
+ if (!g_shell_parse_argv (discard_exec, &argc, &argv, NULL))
+ goto out;
+
+ result = g_spawn_async (NULL, argv, NULL, G_SPAWN_SEARCH_PATH,
+ NULL, NULL, NULL, NULL) && result;
+
+ g_strfreev (argv);
+ } else {
+ result = FALSE;
+ }
+
+out:
+ if (key_file)
+ g_key_file_free (key_file);
+ if (discard_exec)
+ g_free (discard_exec);
+
+ result = (g_unlink (filename) == 0) && result;
+
+ return result;
+}
+
+static gboolean
+gsm_session_clear_saved_session (const char *directory,
+ GHashTable *discard_hash)
+{
+ GDir *dir;
+ const char *filename;
+ gboolean result = TRUE;
+ GError *error;
+
+ g_debug ("GsmSessionSave: clearing currently saved session at %s",
+ directory);
+
+ if (directory == NULL) {
+ return FALSE;
+ }
+
+ error = NULL;
+ dir = g_dir_open (directory, 0, &error);
+ if (error) {
+ g_warning ("GsmSessionSave: error loading saved session directory: %s", error->message);
+ g_error_free (error);
+ return FALSE;
+ }
+
+ while ((filename = g_dir_read_name (dir))) {
+ char *path = g_build_filename (directory,
+ filename, NULL);
+
+ result = gsm_session_clear_one_client (path, discard_hash)
+ && result;
+
+ g_free (path);
+ }
+
+ g_dir_close (dir);
+
+ return result;
+}
diff --git a/mate-session/gsm-session-save.h b/mate-session/gsm-session-save.h
new file mode 100644
index 0000000..2939bd9
--- /dev/null
+++ b/mate-session/gsm-session-save.h
@@ -0,0 +1,38 @@
+/* gsm-session-save.h
+ * Copyright (C) 2008 Lucas Rocha.
+ *
+ * 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef __GSM_SESSION_SAVE_H__
+#define __GSM_SESSION_SAVE_H__
+
+#include <glib.h>
+
+#include "gsm-store.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void gsm_session_save (GsmStore *client_store,
+ GError **error);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSM_SESSION_SAVE_H__ */
diff --git a/mate-session/gsm-store.c b/mate-session/gsm-store.c
new file mode 100644
index 0000000..e250d8d
--- /dev/null
+++ b/mate-session/gsm-store.c
@@ -0,0 +1,413 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007-2008 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <string.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <glib-object.h>
+
+#include "gsm-store.h"
+
+#define GSM_STORE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_STORE, GsmStorePrivate))
+
+struct GsmStorePrivate
+{
+ GHashTable *objects;
+ gboolean locked;
+};
+
+enum {
+ ADDED,
+ REMOVED,
+ LAST_SIGNAL
+};
+
+enum {
+ PROP_0,
+ PROP_LOCKED
+};
+
+static guint signals [LAST_SIGNAL] = { 0 };
+
+static void gsm_store_class_init (GsmStoreClass *klass);
+static void gsm_store_init (GsmStore *store);
+static void gsm_store_finalize (GObject *object);
+
+G_DEFINE_TYPE (GsmStore, gsm_store, G_TYPE_OBJECT)
+
+GQuark
+gsm_store_error_quark (void)
+{
+ static GQuark ret = 0;
+ if (ret == 0) {
+ ret = g_quark_from_static_string ("gsm_store_error");
+ }
+
+ return ret;
+}
+
+guint
+gsm_store_size (GsmStore *store)
+{
+ return g_hash_table_size (store->priv->objects);
+}
+
+gboolean
+gsm_store_remove (GsmStore *store,
+ const char *id)
+{
+ GObject *found;
+ gboolean removed;
+ char *id_copy;
+
+ g_return_val_if_fail (store != NULL, FALSE);
+
+ found = g_hash_table_lookup (store->priv->objects, id);
+ if (found == NULL) {
+ return FALSE;
+ }
+
+ id_copy = g_strdup (id);
+
+ g_object_ref (found);
+
+ removed = g_hash_table_remove (store->priv->objects, id_copy);
+ g_assert (removed);
+
+ g_signal_emit (store, signals [REMOVED], 0, id_copy);
+
+ g_object_unref (found);
+ g_free (id_copy);
+
+ return TRUE;
+}
+
+void
+gsm_store_foreach (GsmStore *store,
+ GsmStoreFunc func,
+ gpointer user_data)
+{
+ g_return_if_fail (store != NULL);
+ g_return_if_fail (func != NULL);
+
+ g_hash_table_find (store->priv->objects,
+ (GHRFunc)func,
+ user_data);
+}
+
+GObject *
+gsm_store_find (GsmStore *store,
+ GsmStoreFunc predicate,
+ gpointer user_data)
+{
+ GObject *object;
+
+ g_return_val_if_fail (store != NULL, NULL);
+ g_return_val_if_fail (predicate != NULL, NULL);
+
+ object = g_hash_table_find (store->priv->objects,
+ (GHRFunc)predicate,
+ user_data);
+ return object;
+}
+
+GObject *
+gsm_store_lookup (GsmStore *store,
+ const char *id)
+{
+ GObject *object;
+
+ g_return_val_if_fail (store != NULL, NULL);
+ g_return_val_if_fail (id != NULL, NULL);
+
+ object = g_hash_table_lookup (store->priv->objects, id);
+
+ return object;
+}
+
+
+typedef struct
+{
+ GsmStoreFunc func;
+ gpointer user_data;
+ GsmStore *store;
+ GList *removed;
+} WrapperData;
+
+static gboolean
+foreach_remove_wrapper (const char *id,
+ GObject *object,
+ WrapperData *data)
+{
+ gboolean res;
+
+ res = (data->func) (id, object, data->user_data);
+ if (res) {
+ data->removed = g_list_prepend (data->removed, g_strdup (id));
+ }
+
+ return res;
+}
+
+guint
+gsm_store_foreach_remove (GsmStore *store,
+ GsmStoreFunc func,
+ gpointer user_data)
+{
+ guint ret;
+ WrapperData data;
+
+ g_return_val_if_fail (store != NULL, 0);
+ g_return_val_if_fail (func != NULL, 0);
+
+ data.store = store;
+ data.user_data = user_data;
+ data.func = func;
+ data.removed = NULL;
+
+ ret = g_hash_table_foreach_remove (store->priv->objects,
+ (GHRFunc)foreach_remove_wrapper,
+ &data);
+
+ while (data.removed != NULL) {
+ char *id;
+ id = data.removed->data;
+ g_debug ("GsmStore: emitting removed for %s", id);
+ g_signal_emit (store, signals [REMOVED], 0, id);
+ g_free (data.removed->data);
+ data.removed->data = NULL;
+ data.removed = g_list_delete_link (data.removed, data.removed);
+ }
+
+ return ret;
+}
+
+static gboolean
+_remove_all (const char *id,
+ GObject *object,
+ gpointer data)
+{
+ return TRUE;
+}
+
+void
+gsm_store_clear (GsmStore *store)
+{
+ g_return_if_fail (store != NULL);
+
+ g_debug ("GsmStore: Clearing object store");
+
+ gsm_store_foreach_remove (store,
+ _remove_all,
+ NULL);
+}
+
+gboolean
+gsm_store_add (GsmStore *store,
+ const char *id,
+ GObject *object)
+{
+ g_return_val_if_fail (store != NULL, FALSE);
+ g_return_val_if_fail (id != NULL, FALSE);
+ g_return_val_if_fail (object != NULL, FALSE);
+
+ /* If we're locked, we don't accept any new session
+ objects. */
+ if (store->priv->locked) {
+ return FALSE;
+ }
+
+ g_debug ("GsmStore: Adding object id %s to store", id);
+
+ g_hash_table_insert (store->priv->objects,
+ g_strdup (id),
+ g_object_ref (object));
+
+ g_signal_emit (store, signals [ADDED], 0, id);
+
+ return TRUE;
+}
+
+void
+gsm_store_set_locked (GsmStore *store,
+ gboolean locked)
+{
+ g_return_if_fail (GSM_IS_STORE (store));
+
+ store->priv->locked = locked;
+}
+
+gboolean
+gsm_store_get_locked (GsmStore *store)
+{
+ g_return_val_if_fail (GSM_IS_STORE (store), FALSE);
+
+ return store->priv->locked;
+}
+
+static void
+gsm_store_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GsmStore *self;
+
+ self = GSM_STORE (object);
+
+ switch (prop_id) {
+ case PROP_LOCKED:
+ gsm_store_set_locked (self, g_value_get_boolean (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_store_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GsmStore *self;
+
+ self = GSM_STORE (object);
+
+ switch (prop_id) {
+ case PROP_LOCKED:
+ g_value_set_boolean (value, self->priv->locked);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_store_dispose (GObject *object)
+{
+ GsmStore *store;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GSM_IS_STORE (object));
+
+ store = GSM_STORE (object);
+
+ gsm_store_clear (store);
+
+ G_OBJECT_CLASS (gsm_store_parent_class)->dispose (object);
+}
+
+static void
+gsm_store_class_init (GsmStoreClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->get_property = gsm_store_get_property;
+ object_class->set_property = gsm_store_set_property;
+ object_class->finalize = gsm_store_finalize;
+ object_class->dispose = gsm_store_dispose;
+
+ signals [ADDED] =
+ g_signal_new ("added",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmStoreClass, added),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE,
+ 1, G_TYPE_STRING);
+ signals [REMOVED] =
+ g_signal_new ("removed",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmStoreClass, removed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE,
+ 1, G_TYPE_STRING);
+ g_object_class_install_property (object_class,
+ PROP_LOCKED,
+ g_param_spec_boolean ("locked",
+ NULL,
+ NULL,
+ FALSE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+ g_type_class_add_private (klass, sizeof (GsmStorePrivate));
+}
+
+static void
+_destroy_object (GObject *object)
+{
+ g_debug ("GsmStore: Unreffing object: %p", object);
+ g_object_unref (object);
+}
+
+static void
+gsm_store_init (GsmStore *store)
+{
+
+ store->priv = GSM_STORE_GET_PRIVATE (store);
+
+ store->priv->objects = g_hash_table_new_full (g_str_hash,
+ g_str_equal,
+ g_free,
+ (GDestroyNotify) _destroy_object);
+}
+
+static void
+gsm_store_finalize (GObject *object)
+{
+ GsmStore *store;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GSM_IS_STORE (object));
+
+ store = GSM_STORE (object);
+
+ g_return_if_fail (store->priv != NULL);
+
+ g_hash_table_destroy (store->priv->objects);
+
+ G_OBJECT_CLASS (gsm_store_parent_class)->finalize (object);
+}
+
+GsmStore *
+gsm_store_new (void)
+{
+ GObject *object;
+
+ object = g_object_new (GSM_TYPE_STORE,
+ NULL);
+
+ return GSM_STORE (object);
+}
diff --git a/mate-session/gsm-store.h b/mate-session/gsm-store.h
new file mode 100644
index 0000000..ee7be10
--- /dev/null
+++ b/mate-session/gsm-store.h
@@ -0,0 +1,101 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007-2008 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+
+#ifndef __GSM_STORE_H
+#define __GSM_STORE_H
+
+#include <glib-object.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GSM_TYPE_STORE (gsm_store_get_type ())
+#define GSM_STORE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSM_TYPE_STORE, GsmStore))
+#define GSM_STORE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSM_TYPE_STORE, GsmStoreClass))
+#define GSM_IS_STORE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSM_TYPE_STORE))
+#define GSM_IS_STORE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSM_TYPE_STORE))
+#define GSM_STORE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSM_TYPE_STORE, GsmStoreClass))
+
+typedef struct GsmStorePrivate GsmStorePrivate;
+
+typedef struct
+{
+ GObject parent;
+ GsmStorePrivate *priv;
+} GsmStore;
+
+typedef struct
+{
+ GObjectClass parent_class;
+
+ void (* added) (GsmStore *store,
+ const char *id);
+ void (* removed) (GsmStore *store,
+ const char *id);
+} GsmStoreClass;
+
+typedef enum
+{
+ GSM_STORE_ERROR_GENERAL
+} GsmStoreError;
+
+#define GSM_STORE_ERROR gsm_store_error_quark ()
+
+typedef gboolean (*GsmStoreFunc) (const char *id,
+ GObject *object,
+ gpointer user_data);
+
+GQuark gsm_store_error_quark (void);
+GType gsm_store_get_type (void);
+
+GsmStore * gsm_store_new (void);
+
+gboolean gsm_store_get_locked (GsmStore *store);
+void gsm_store_set_locked (GsmStore *store,
+ gboolean locked);
+
+guint gsm_store_size (GsmStore *store);
+gboolean gsm_store_add (GsmStore *store,
+ const char *id,
+ GObject *object);
+void gsm_store_clear (GsmStore *store);
+gboolean gsm_store_remove (GsmStore *store,
+ const char *id);
+
+void gsm_store_foreach (GsmStore *store,
+ GsmStoreFunc func,
+ gpointer user_data);
+guint gsm_store_foreach_remove (GsmStore *store,
+ GsmStoreFunc func,
+ gpointer user_data);
+GObject * gsm_store_find (GsmStore *store,
+ GsmStoreFunc predicate,
+ gpointer user_data);
+GObject * gsm_store_lookup (GsmStore *store,
+ const char *id);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSM_STORE_H */
diff --git a/mate-session/gsm-util.c b/mate-session/gsm-util.c
new file mode 100644
index 0000000..5d2983e
--- /dev/null
+++ b/mate-session/gsm-util.c
@@ -0,0 +1,505 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ * gsm-util.c
+ * Copyright (C) 2008 Lucas Rocha.
+ *
+ * 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <config.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <sys/time.h>
+#include <errno.h>
+#include <string.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <glib/gstdio.h>
+#include <gtk/gtk.h>
+
+#include <dbus/dbus-glib.h>
+
+#include "gsm-util.h"
+
+static gchar *_saved_session_dir = NULL;
+
+char *
+gsm_util_find_desktop_file_for_app_name (const char *name,
+ char **autostart_dirs)
+{
+ char *app_path;
+ char **app_dirs;
+ GKeyFile *key_file;
+ char *desktop_file;
+ int i;
+
+ app_path = NULL;
+
+ app_dirs = gsm_util_get_app_dirs ();
+
+ key_file = g_key_file_new ();
+
+ desktop_file = g_strdup_printf ("%s.desktop", name);
+
+ g_debug ("GsmUtil: Looking for file '%s'", desktop_file);
+
+ for (i = 0; app_dirs[i] != NULL; i++) {
+ g_debug ("GsmUtil: Looking in '%s'", app_dirs[i]);
+ }
+
+ g_key_file_load_from_dirs (key_file,
+ desktop_file,
+ (const char **) app_dirs,
+ &app_path,
+ G_KEY_FILE_NONE,
+ NULL);
+
+ if (app_path != NULL) {
+ g_debug ("GsmUtil: found in XDG app dirs: '%s'", app_path);
+ }
+
+ if (app_path == NULL && autostart_dirs != NULL) {
+ g_key_file_load_from_dirs (key_file,
+ desktop_file,
+ (const char **) autostart_dirs,
+ &app_path,
+ G_KEY_FILE_NONE,
+ NULL);
+ if (app_path != NULL) {
+ g_debug ("GsmUtil: found in autostart dirs: '%s'", app_path);
+ }
+
+ }
+
+ /* look for mate vender prefix */
+ if (app_path == NULL) {
+ g_free (desktop_file);
+ desktop_file = g_strdup_printf ("mate-%s.desktop", name);
+
+ g_key_file_load_from_dirs (key_file,
+ desktop_file,
+ (const char **) app_dirs,
+ &app_path,
+ G_KEY_FILE_NONE,
+ NULL);
+ if (app_path != NULL) {
+ g_debug ("GsmUtil: found in XDG app dirs: '%s'", app_path);
+ }
+ }
+
+ if (app_path == NULL && autostart_dirs != NULL) {
+ g_key_file_load_from_dirs (key_file,
+ desktop_file,
+ (const char **) autostart_dirs,
+ &app_path,
+ G_KEY_FILE_NONE,
+ NULL);
+ if (app_path != NULL) {
+ g_debug ("GsmUtil: found in autostart dirs: '%s'", app_path);
+ }
+ }
+
+ g_free (desktop_file);
+ g_key_file_free (key_file);
+
+ g_strfreev (app_dirs);
+
+ return app_path;
+}
+
+static gboolean
+ensure_dir_exists (const char *dir)
+{
+ if (g_file_test (dir, G_FILE_TEST_IS_DIR))
+ return TRUE;
+
+ if (g_mkdir_with_parents (dir, 0755) == 0)
+ return TRUE;
+
+ if (errno == EEXIST)
+ return g_file_test (dir, G_FILE_TEST_IS_DIR);
+
+ g_warning ("GsmSessionSave: Failed to create directory %s: %s", dir, strerror (errno));
+
+ return FALSE;
+}
+
+gchar *
+gsm_util_get_empty_tmp_session_dir (void)
+{
+ char *tmp;
+ gboolean exists;
+
+ tmp = g_build_filename (g_get_user_config_dir (),
+ "mate-session",
+ "saved-session.new",
+ NULL);
+
+ exists = ensure_dir_exists (tmp);
+
+ if (G_UNLIKELY (!exists)) {
+ g_warning ("GsmSessionSave: could not create directory for saved session: %s", tmp);
+ g_free (tmp);
+ return NULL;
+ } else {
+ /* make sure it's empty */
+ GDir *dir;
+ const char *filename;
+
+ dir = g_dir_open (tmp, 0, NULL);
+ if (dir) {
+ while ((filename = g_dir_read_name (dir))) {
+ char *path = g_build_filename (tmp, filename,
+ NULL);
+ g_unlink (path);
+ }
+ g_dir_close (dir);
+ }
+ }
+
+ return tmp;
+}
+
+const gchar *
+gsm_util_get_saved_session_dir (void)
+{
+ if (_saved_session_dir == NULL) {
+ gboolean exists;
+
+ _saved_session_dir =
+ g_build_filename (g_get_user_config_dir (),
+ "mate-session",
+ "saved-session",
+ NULL);
+
+ exists = ensure_dir_exists (_saved_session_dir);
+
+ if (G_UNLIKELY (!exists)) {
+ static gboolean printed_warning = FALSE;
+
+ if (!printed_warning) {
+ g_warning ("GsmSessionSave: could not create directory for saved session: %s", _saved_session_dir);
+ printed_warning = TRUE;
+ }
+
+ _saved_session_dir = NULL;
+
+ return NULL;
+ }
+ }
+
+ return _saved_session_dir;
+}
+
+
+char **
+gsm_util_get_autostart_dirs ()
+{
+ GPtrArray *dirs;
+ const char * const *system_config_dirs;
+ const char * const *system_data_dirs;
+ int i;
+
+ dirs = g_ptr_array_new ();
+
+ g_ptr_array_add (dirs,
+ g_build_filename (g_get_user_config_dir (),
+ "autostart", NULL));
+
+ system_data_dirs = g_get_system_data_dirs ();
+ for (i = 0; system_data_dirs[i]; i++) {
+ g_ptr_array_add (dirs,
+ g_build_filename (system_data_dirs[i],
+ "mate", "autostart", NULL));
+ }
+
+ system_config_dirs = g_get_system_config_dirs ();
+ for (i = 0; system_config_dirs[i]; i++) {
+ g_ptr_array_add (dirs,
+ g_build_filename (system_config_dirs[i],
+ "autostart", NULL));
+ }
+
+ g_ptr_array_add (dirs, NULL);
+
+ return (char **) g_ptr_array_free (dirs, FALSE);
+}
+
+char **
+gsm_util_get_app_dirs ()
+{
+ GPtrArray *dirs;
+ const char * const *system_data_dirs;
+ int i;
+
+ dirs = g_ptr_array_new ();
+
+ g_ptr_array_add (dirs,
+ g_build_filename (g_get_user_data_dir (),
+ "applications",
+ NULL));
+
+ system_data_dirs = g_get_system_data_dirs ();
+ for (i = 0; system_data_dirs[i]; i++) {
+ g_ptr_array_add (dirs,
+ g_build_filename (system_data_dirs[i],
+ "applications",
+ NULL));
+ }
+
+ g_ptr_array_add (dirs, NULL);
+
+ return (char **) g_ptr_array_free (dirs, FALSE);
+}
+
+char **
+gsm_util_get_desktop_dirs ()
+{
+ char **apps;
+ char **autostart;
+ char **result;
+ int size;
+ int i;
+
+ apps = gsm_util_get_app_dirs ();
+ autostart = gsm_util_get_autostart_dirs ();
+
+ size = 0;
+ for (i = 0; apps[i] != NULL; i++) { size++; }
+ for (i = 0; autostart[i] != NULL; i++) { size++; }
+ size += 2; /* saved session + last NULL */
+
+ result = g_new (char *, size + 1);
+
+ for (i = 0; apps[i] != NULL; i++) {
+ result[i] = apps[i];
+ }
+ g_free (apps);
+ size = i;
+
+ for (i = 0; autostart[i] != NULL; i++) {
+ result[size + i] = autostart[i];
+ }
+ g_free (autostart);
+ size = size + i;
+
+ result[size] = g_strdup (gsm_util_get_saved_session_dir ());
+ result[size + 1] = NULL;
+
+ return result;
+}
+
+gboolean
+gsm_util_text_is_blank (const char *str)
+{
+ if (str == NULL) {
+ return TRUE;
+ }
+
+ while (*str) {
+ if (!isspace(*str)) {
+ return FALSE;
+ }
+
+ str++;
+ }
+
+ return TRUE;
+}
+
+/**
+ * gsm_util_init_error:
+ * @fatal: whether or not the error is fatal to the login session
+ * @format: printf-style error message format
+ * @...: error message args
+ *
+ * Displays the error message to the user. If @fatal is %TRUE, gsm
+ * will exit after displaying the message.
+ *
+ * This should be called for major errors that occur before the
+ * session is up and running. (Notably, it positions the dialog box
+ * itself, since no window manager will be running yet.)
+ **/
+void
+gsm_util_init_error (gboolean fatal,
+ const char *format, ...)
+{
+ GtkWidget *dialog;
+ char *msg;
+ va_list args;
+
+ va_start (args, format);
+ msg = g_strdup_vprintf (format, args);
+ va_end (args);
+
+ /* If option parsing failed, Gtk won't have been initialized... */
+ if (!gdk_display_get_default ()) {
+ if (!gtk_init_check (NULL, NULL)) {
+ /* Oh well, no X for you! */
+ g_printerr (_("Unable to start login session (and unable to connect to the X server)"));
+ g_printerr ("%s", msg);
+ exit (1);
+ }
+ }
+
+ dialog = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_CLOSE, "%s", msg);
+
+ g_free (msg);
+
+ gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER);
+ gtk_dialog_run (GTK_DIALOG (dialog));
+
+ gtk_widget_destroy (dialog);
+
+ if (fatal) {
+ gtk_main_quit ();
+ }
+}
+
+/**
+ * gsm_util_generate_startup_id:
+ *
+ * Generates a new SM client ID.
+ *
+ * Return value: an SM client ID.
+ **/
+char *
+gsm_util_generate_startup_id (void)
+{
+ static int sequence = -1;
+ static guint rand1 = 0;
+ static guint rand2 = 0;
+ static pid_t pid = 0;
+ struct timeval tv;
+
+ /* The XSMP spec defines the ID as:
+ *
+ * Version: "1"
+ * Address type and address:
+ * "1" + an IPv4 address as 8 hex digits
+ * "2" + a DECNET address as 12 hex digits
+ * "6" + an IPv6 address as 32 hex digits
+ * Time stamp: milliseconds since UNIX epoch as 13 decimal digits
+ * Process-ID type and process-ID:
+ * "1" + POSIX PID as 10 decimal digits
+ * Sequence number as 4 decimal digits
+ *
+ * XSMP client IDs are supposed to be globally unique: if
+ * SmsGenerateClientID() is unable to determine a network
+ * address for the machine, it gives up and returns %NULL.
+ * MATE and KDE have traditionally used a fourth address
+ * format in this case:
+ * "0" + 16 random hex digits
+ *
+ * We don't even bother trying SmsGenerateClientID(), since the
+ * user's IP address is probably "192.168.1.*" anyway, so a random
+ * number is actually more likely to be globally unique.
+ */
+
+ if (!rand1) {
+ rand1 = g_random_int ();
+ rand2 = g_random_int ();
+ pid = getpid ();
+ }
+
+ sequence = (sequence + 1) % 10000;
+ gettimeofday (&tv, NULL);
+ return g_strdup_printf ("10%.04x%.04x%.10lu%.3u%.10lu%.4d",
+ rand1,
+ rand2,
+ (unsigned long) tv.tv_sec,
+ (unsigned) tv.tv_usec,
+ (unsigned long) pid,
+ sequence);
+}
+
+static gboolean
+gsm_util_update_activation_environment (const char *variable,
+ const char *value,
+ GError **error)
+{
+ DBusGConnection *dbus_connection;
+ DBusGProxy *bus_proxy;
+ GHashTable *environment;
+ gboolean environment_updated;
+
+ environment_updated = FALSE;
+ bus_proxy = NULL;
+ environment = NULL;
+
+ dbus_connection = dbus_g_bus_get (DBUS_BUS_SESSION, error);
+
+ if (dbus_connection == NULL) {
+ return FALSE;
+ }
+
+ bus_proxy = dbus_g_proxy_new_for_name_owner (dbus_connection,
+ DBUS_SERVICE_DBUS,
+ DBUS_PATH_DBUS,
+ DBUS_INTERFACE_DBUS,
+ error);
+
+ if (bus_proxy == NULL) {
+ goto out;
+ }
+
+ environment = g_hash_table_new (g_str_hash, g_str_equal);
+
+ g_hash_table_insert (environment, (void *) variable, (void *) value);
+
+ if (!dbus_g_proxy_call (bus_proxy,
+ "UpdateActivationEnvironment", error,
+ DBUS_TYPE_G_STRING_STRING_HASHTABLE,
+ environment, G_TYPE_INVALID,
+ G_TYPE_INVALID))
+ goto out;
+
+ environment_updated = TRUE;
+
+ out:
+
+ if (bus_proxy != NULL) {
+ g_object_unref (bus_proxy);
+ }
+
+ if (environment != NULL) {
+ g_hash_table_destroy (environment);
+ }
+
+ return environment_updated;
+}
+
+void
+gsm_util_setenv (const char *variable,
+ const char *value)
+{
+ GError *bus_error;
+
+ g_setenv (variable, value, TRUE);
+
+ bus_error = NULL;
+
+ /* If this fails it isn't fatal, it means some things like session
+ * management and keyring won't work in activated clients.
+ */
+ if (!gsm_util_update_activation_environment (variable, value, &bus_error)) {
+ g_warning ("Could not make bus activated clients aware of %s=%s environment variable: %s", variable, value, bus_error->message);
+ g_error_free (bus_error);
+ }
+}
diff --git a/mate-session/gsm-util.h b/mate-session/gsm-util.h
new file mode 100644
index 0000000..2521f9d
--- /dev/null
+++ b/mate-session/gsm-util.h
@@ -0,0 +1,56 @@
+/* gsm-util.h
+ * Copyright (C) 2008 Lucas Rocha.
+ *
+ * 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef __GSM_UTIL_H__
+#define __GSM_UTIL_H__
+
+#include <glib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+char * gsm_util_find_desktop_file_for_app_name (const char *app_name,
+ char **dirs);
+
+gchar *gsm_util_get_empty_tmp_session_dir (void);
+
+const char *gsm_util_get_saved_session_dir (void);
+
+gchar** gsm_util_get_app_dirs (void);
+
+gchar** gsm_util_get_autostart_dirs (void);
+
+gchar ** gsm_util_get_desktop_dirs (void);
+
+gboolean gsm_util_text_is_blank (const char *str);
+
+void gsm_util_init_error (gboolean fatal,
+ const char *format, ...);
+
+char * gsm_util_generate_startup_id (void);
+
+void gsm_util_setenv (const char *variable,
+ const char *value);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSM_UTIL_H__ */
diff --git a/mate-session/gsm-xsmp-client.c b/mate-session/gsm-xsmp-client.c
new file mode 100644
index 0000000..ce0c92f
--- /dev/null
+++ b/mate-session/gsm-xsmp-client.c
@@ -0,0 +1,1332 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007 Novell, Inc.
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include <gio/gio.h>
+#include <glib/gi18n.h>
+
+#include "gsm-xsmp-client.h"
+#include "gsm-marshal.h"
+
+#include "gsm-util.h"
+#include "gsm-autostart-app.h"
+#include "gsm-manager.h"
+
+#define GsmDesktopFile "_GSM_DesktopFile"
+
+#define IS_STRING_EMPTY(x) ((x)==NULL||(x)[0]=='\0')
+
+#define GSM_XSMP_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_XSMP_CLIENT, GsmXSMPClientPrivate))
+
+struct GsmXSMPClientPrivate
+{
+
+ SmsConn conn;
+ IceConn ice_connection;
+
+ guint watch_id;
+
+ char *description;
+ GPtrArray *props;
+
+ /* SaveYourself state */
+ int current_save_yourself;
+ int next_save_yourself;
+ guint next_save_yourself_allow_interact : 1;
+};
+
+enum {
+ PROP_0,
+ PROP_ICE_CONNECTION
+};
+
+enum {
+ REGISTER_REQUEST,
+ LOGOUT_REQUEST,
+ LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
+
+G_DEFINE_TYPE (GsmXSMPClient, gsm_xsmp_client, GSM_TYPE_CLIENT)
+
+static gboolean
+client_iochannel_watch (GIOChannel *channel,
+ GIOCondition condition,
+ GsmXSMPClient *client)
+{
+ gboolean keep_going;
+
+ g_object_ref (client);
+ switch (IceProcessMessages (client->priv->ice_connection, NULL, NULL)) {
+ case IceProcessMessagesSuccess:
+ keep_going = TRUE;
+ break;
+
+ case IceProcessMessagesIOError:
+ g_debug ("GsmXSMPClient: IceProcessMessagesIOError on '%s'", client->priv->description);
+ gsm_client_set_status (GSM_CLIENT (client), GSM_CLIENT_FAILED);
+ /* Emitting "disconnected" will eventually cause
+ * IceCloseConnection() to be called.
+ */
+ gsm_client_disconnected (GSM_CLIENT (client));
+ keep_going = FALSE;
+ break;
+
+ case IceProcessMessagesConnectionClosed:
+ g_debug ("GsmXSMPClient: IceProcessMessagesConnectionClosed on '%s'",
+ client->priv->description);
+ client->priv->ice_connection = NULL;
+ keep_going = FALSE;
+ break;
+
+ default:
+ g_assert_not_reached ();
+ }
+ g_object_unref (client);
+
+ return keep_going;
+}
+
+static SmProp *
+find_property (GsmXSMPClient *client,
+ const char *name,
+ int *index)
+{
+ SmProp *prop;
+ int i;
+
+ for (i = 0; i < client->priv->props->len; i++) {
+ prop = client->priv->props->pdata[i];
+
+ if (!strcmp (prop->name, name)) {
+ if (index) {
+ *index = i;
+ }
+ return prop;
+ }
+ }
+
+ return NULL;
+}
+
+static void
+set_description (GsmXSMPClient *client)
+{
+ SmProp *prop;
+ const char *id;
+
+ prop = find_property (client, SmProgram, NULL);
+ id = gsm_client_peek_startup_id (GSM_CLIENT (client));
+
+ g_free (client->priv->description);
+ if (prop) {
+ client->priv->description = g_strdup_printf ("%p [%.*s %s]",
+ client,
+ prop->vals[0].length,
+ (char *)prop->vals[0].value,
+ id);
+ } else if (id != NULL) {
+ client->priv->description = g_strdup_printf ("%p [%s]", client, id);
+ } else {
+ client->priv->description = g_strdup_printf ("%p", client);
+ }
+}
+
+static void
+setup_connection (GsmXSMPClient *client)
+{
+ GIOChannel *channel;
+ int fd;
+
+ g_debug ("GsmXSMPClient: Setting up new connection");
+
+ fd = IceConnectionNumber (client->priv->ice_connection);
+ fcntl (fd, F_SETFD, fcntl (fd, F_GETFD, 0) | FD_CLOEXEC);
+ channel = g_io_channel_unix_new (fd);
+ client->priv->watch_id = g_io_add_watch (channel,
+ G_IO_IN | G_IO_ERR,
+ (GIOFunc)client_iochannel_watch,
+ client);
+ g_io_channel_unref (channel);
+
+ set_description (client);
+
+ g_debug ("GsmXSMPClient: New client '%s'", client->priv->description);
+}
+
+static GObject *
+gsm_xsmp_client_constructor (GType type,
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
+{
+ GsmXSMPClient *client;
+
+ client = GSM_XSMP_CLIENT (G_OBJECT_CLASS (gsm_xsmp_client_parent_class)->constructor (type,
+ n_construct_properties,
+ construct_properties));
+ setup_connection (client);
+
+ return G_OBJECT (client);
+}
+
+static void
+gsm_xsmp_client_init (GsmXSMPClient *client)
+{
+ client->priv = GSM_XSMP_CLIENT_GET_PRIVATE (client);
+
+ client->priv->props = g_ptr_array_new ();
+ client->priv->current_save_yourself = -1;
+ client->priv->next_save_yourself = -1;
+ client->priv->next_save_yourself_allow_interact = FALSE;
+}
+
+
+static void
+delete_property (GsmXSMPClient *client,
+ const char *name)
+{
+ int index;
+ SmProp *prop;
+
+ prop = find_property (client, name, &index);
+ if (!prop) {
+ return;
+ }
+
+#if 0
+ /* This is wrong anyway; we can't unconditionally run the current
+ * discard command; if this client corresponds to a GsmAppResumed,
+ * and the current discard command is identical to the app's
+ * discard_command, then we don't run the discard command now,
+ * because that would delete a saved state we may want to resume
+ * again later.
+ */
+ if (!strcmp (name, SmDiscardCommand)) {
+ gsm_client_run_discard (GSM_CLIENT (client));
+ }
+#endif
+
+ g_ptr_array_remove_index_fast (client->priv->props, index);
+ SmFreeProperty (prop);
+}
+
+
+static void
+debug_print_property (SmProp *prop)
+{
+ GString *tmp;
+ int i;
+
+ switch (prop->type[0]) {
+ case 'C': /* CARD8 */
+ g_debug ("GsmXSMPClient: %s = %d", prop->name, *(unsigned char *)prop->vals[0].value);
+ break;
+
+ case 'A': /* ARRAY8 */
+ g_debug ("GsmXSMPClient: %s = '%s'", prop->name, (char *)prop->vals[0].value);
+ break;
+
+ case 'L': /* LISTofARRAY8 */
+ tmp = g_string_new (NULL);
+ for (i = 0; i < prop->num_vals; i++) {
+ g_string_append_printf (tmp, "'%.*s' ", prop->vals[i].length,
+ (char *)prop->vals[i].value);
+ }
+ g_debug ("GsmXSMPClient: %s = %s", prop->name, tmp->str);
+ g_string_free (tmp, TRUE);
+ break;
+
+ default:
+ g_debug ("GsmXSMPClient: %s = ??? (%s)", prop->name, prop->type);
+ break;
+ }
+}
+
+
+static void
+set_properties_callback (SmsConn conn,
+ SmPointer manager_data,
+ int num_props,
+ SmProp **props)
+{
+ GsmXSMPClient *client = manager_data;
+ int i;
+
+ g_debug ("GsmXSMPClient: Set properties from client '%s'", client->priv->description);
+
+ for (i = 0; i < num_props; i++) {
+ delete_property (client, props[i]->name);
+ g_ptr_array_add (client->priv->props, props[i]);
+
+ debug_print_property (props[i]);
+
+ if (!strcmp (props[i]->name, SmProgram))
+ set_description (client);
+ }
+
+ free (props);
+
+}
+
+static void
+delete_properties_callback (SmsConn conn,
+ SmPointer manager_data,
+ int num_props,
+ char **prop_names)
+{
+ GsmXSMPClient *client = manager_data;
+ int i;
+
+ g_debug ("GsmXSMPClient: Delete properties from '%s'", client->priv->description);
+
+ for (i = 0; i < num_props; i++) {
+ delete_property (client, prop_names[i]);
+
+ g_debug (" %s", prop_names[i]);
+ }
+
+ free (prop_names);
+}
+
+static void
+get_properties_callback (SmsConn conn,
+ SmPointer manager_data)
+{
+ GsmXSMPClient *client = manager_data;
+
+ g_debug ("GsmXSMPClient: Get properties request from '%s'", client->priv->description);
+
+ SmsReturnProperties (conn,
+ client->priv->props->len,
+ (SmProp **)client->priv->props->pdata);
+}
+
+static char *
+prop_to_command (SmProp *prop)
+{
+ GString *str;
+ int i, j;
+ gboolean need_quotes;
+
+ str = g_string_new (NULL);
+ for (i = 0; i < prop->num_vals; i++) {
+ char *val = prop->vals[i].value;
+
+ need_quotes = FALSE;
+ for (j = 0; j < prop->vals[i].length; j++) {
+ if (!g_ascii_isalnum (val[j]) && !strchr ("-_=:./", val[j])) {
+ need_quotes = TRUE;
+ break;
+ }
+ }
+
+ if (i > 0) {
+ g_string_append_c (str, ' ');
+ }
+
+ if (!need_quotes) {
+ g_string_append_printf (str,
+ "%.*s",
+ prop->vals[i].length,
+ (char *)prop->vals[i].value);
+ } else {
+ g_string_append_c (str, '\'');
+ while (val < (char *)prop->vals[i].value + prop->vals[i].length) {
+ if (*val == '\'') {
+ g_string_append (str, "'\''");
+ } else {
+ g_string_append_c (str, *val);
+ }
+ val++;
+ }
+ g_string_append_c (str, '\'');
+ }
+ }
+
+ return g_string_free (str, FALSE);
+}
+
+static char *
+xsmp_get_restart_command (GsmClient *client)
+{
+ SmProp *prop;
+
+ prop = find_property (GSM_XSMP_CLIENT (client), SmRestartCommand, NULL);
+
+ if (!prop || strcmp (prop->type, SmLISTofARRAY8) != 0) {
+ return NULL;
+ }
+
+ return prop_to_command (prop);
+}
+
+static char *
+xsmp_get_discard_command (GsmClient *client)
+{
+ SmProp *prop;
+
+ prop = find_property (GSM_XSMP_CLIENT (client), SmDiscardCommand, NULL);
+
+ if (!prop || strcmp (prop->type, SmLISTofARRAY8) != 0) {
+ return NULL;
+ }
+
+ return prop_to_command (prop);
+}
+
+static void
+do_save_yourself (GsmXSMPClient *client,
+ int save_type,
+ gboolean allow_interact)
+{
+ g_assert (client->priv->conn != NULL);
+
+ if (client->priv->next_save_yourself != -1) {
+ /* Either we're currently doing a shutdown and there's a checkpoint
+ * queued after it, or vice versa. Either way, the new SaveYourself
+ * is redundant.
+ */
+ g_debug ("GsmXSMPClient: skipping redundant SaveYourself for '%s'",
+ client->priv->description);
+ } else if (client->priv->current_save_yourself != -1) {
+ g_debug ("GsmXSMPClient: queuing new SaveYourself for '%s'",
+ client->priv->description);
+ client->priv->next_save_yourself = save_type;
+ client->priv->next_save_yourself_allow_interact = allow_interact;
+ } else {
+ client->priv->current_save_yourself = save_type;
+ /* make sure we don't have anything queued */
+ client->priv->next_save_yourself = -1;
+ client->priv->next_save_yourself_allow_interact = FALSE;
+
+ switch (save_type) {
+ case SmSaveLocal:
+ /* Save state */
+ SmsSaveYourself (client->priv->conn,
+ SmSaveLocal,
+ FALSE,
+ SmInteractStyleNone,
+ FALSE);
+ break;
+
+ default:
+ /* Logout */
+ if (!allow_interact) {
+ SmsSaveYourself (client->priv->conn,
+ save_type, /* save type */
+ TRUE, /* shutdown */
+ SmInteractStyleNone, /* interact style */
+ TRUE); /* fast */
+ } else {
+ SmsSaveYourself (client->priv->conn,
+ save_type, /* save type */
+ TRUE, /* shutdown */
+ SmInteractStyleAny, /* interact style */
+ FALSE /* fast */);
+ }
+ break;
+ }
+ }
+}
+
+static void
+xsmp_save_yourself_phase2 (GsmClient *client)
+{
+ GsmXSMPClient *xsmp = (GsmXSMPClient *) client;
+
+ g_debug ("GsmXSMPClient: xsmp_save_yourself_phase2 ('%s')", xsmp->priv->description);
+
+ SmsSaveYourselfPhase2 (xsmp->priv->conn);
+}
+
+static void
+xsmp_interact (GsmClient *client)
+{
+ GsmXSMPClient *xsmp = (GsmXSMPClient *) client;
+
+ g_debug ("GsmXSMPClient: xsmp_interact ('%s')", xsmp->priv->description);
+
+ SmsInteract (xsmp->priv->conn);
+}
+
+static gboolean
+xsmp_cancel_end_session (GsmClient *client,
+ GError **error)
+{
+ GsmXSMPClient *xsmp = (GsmXSMPClient *) client;
+
+ g_debug ("GsmXSMPClient: xsmp_cancel_end_session ('%s')", xsmp->priv->description);
+
+ if (xsmp->priv->conn == NULL) {
+ g_set_error (error,
+ GSM_CLIENT_ERROR,
+ GSM_CLIENT_ERROR_NOT_REGISTERED,
+ "Client is not registered");
+ return FALSE;
+ }
+
+ SmsShutdownCancelled (xsmp->priv->conn);
+
+ /* reset the state */
+ xsmp->priv->current_save_yourself = -1;
+ xsmp->priv->next_save_yourself = -1;
+ xsmp->priv->next_save_yourself_allow_interact = FALSE;
+
+ return TRUE;
+}
+
+static char *
+get_desktop_file_path (GsmXSMPClient *client)
+{
+ SmProp *prop;
+ char *desktop_file_path = NULL;
+ char **dirs;
+ const char *program_name;
+
+ /* XSMP clients using eggsmclient defines a special property
+ * pointing to their respective desktop entry file */
+ prop = find_property (client, GsmDesktopFile, NULL);
+
+ if (prop) {
+ GFile *file = g_file_new_for_uri (prop->vals[0].value);
+ desktop_file_path = g_file_get_path (file);
+ g_object_unref (file);
+ goto out;
+ }
+
+ /* If we can't get desktop file from GsmDesktopFile then we
+ * try to find the desktop file from its program name */
+ prop = find_property (client, SmProgram, NULL);
+ program_name = prop->vals[0].value;
+
+ dirs = gsm_util_get_autostart_dirs ();
+
+ desktop_file_path =
+ gsm_util_find_desktop_file_for_app_name (program_name,
+ dirs);
+
+ g_strfreev (dirs);
+
+out:
+ g_debug ("GsmXSMPClient: desktop file for client %s is %s",
+ gsm_client_peek_id (GSM_CLIENT (client)),
+ desktop_file_path ? desktop_file_path : "(null)");
+
+ return desktop_file_path;
+}
+
+static void
+set_desktop_file_keys_from_client (GsmClient *client,
+ GKeyFile *keyfile)
+{
+ SmProp *prop;
+ char *name;
+ char *comment;
+
+ prop = find_property (GSM_XSMP_CLIENT (client), SmProgram, NULL);
+ name = g_strdup (prop->vals[0].value);
+
+ comment = g_strdup_printf ("Client %s which was automatically saved",
+ gsm_client_peek_startup_id (client));
+
+ g_key_file_set_string (keyfile,
+ G_KEY_FILE_DESKTOP_GROUP,
+ G_KEY_FILE_DESKTOP_KEY_NAME,
+ name);
+
+ g_key_file_set_string (keyfile,
+ G_KEY_FILE_DESKTOP_GROUP,
+ G_KEY_FILE_DESKTOP_KEY_COMMENT,
+ comment);
+
+ g_key_file_set_string (keyfile,
+ G_KEY_FILE_DESKTOP_GROUP,
+ G_KEY_FILE_DESKTOP_KEY_ICON,
+ "system-run");
+
+ g_key_file_set_string (keyfile,
+ G_KEY_FILE_DESKTOP_GROUP,
+ G_KEY_FILE_DESKTOP_KEY_TYPE,
+ "Application");
+
+ g_key_file_set_boolean (keyfile,
+ G_KEY_FILE_DESKTOP_GROUP,
+ G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY,
+ TRUE);
+
+ g_free (name);
+ g_free (comment);
+}
+
+static GKeyFile *
+create_client_key_file (GsmClient *client,
+ const char *desktop_file_path,
+ GError **error) {
+ GKeyFile *keyfile;
+
+ keyfile = g_key_file_new ();
+
+ if (desktop_file_path != NULL) {
+ g_key_file_load_from_file (keyfile,
+ desktop_file_path,
+ G_KEY_FILE_KEEP_COMMENTS |
+ G_KEY_FILE_KEEP_TRANSLATIONS,
+ error);
+ } else {
+ set_desktop_file_keys_from_client (client, keyfile);
+ }
+
+ return keyfile;
+}
+
+static GsmClientRestartStyle
+xsmp_get_restart_style_hint (GsmClient *client);
+
+static GKeyFile *
+xsmp_save (GsmClient *client,
+ GError **error)
+{
+ GsmClientRestartStyle restart_style;
+
+ GKeyFile *keyfile = NULL;
+ char *desktop_file_path = NULL;
+ char *exec_program = NULL;
+ char *exec_discard = NULL;
+ char *startup_id = NULL;
+ GError *local_error;
+
+ g_debug ("GsmXSMPClient: saving client with id %s",
+ gsm_client_peek_id (client));
+
+ local_error = NULL;
+
+ restart_style = xsmp_get_restart_style_hint (client);
+ if (restart_style == GSM_CLIENT_RESTART_NEVER) {
+ goto out;
+ }
+
+ exec_program = xsmp_get_restart_command (client);
+ if (!exec_program) {
+ goto out;
+ }
+
+ desktop_file_path = get_desktop_file_path (GSM_XSMP_CLIENT (client));
+
+ keyfile = create_client_key_file (client,
+ desktop_file_path,
+ &local_error);
+
+ if (local_error) {
+ goto out;
+ }
+
+ g_object_get (client,
+ "startup-id", &startup_id,
+ NULL);
+
+ g_key_file_set_string (keyfile,
+ G_KEY_FILE_DESKTOP_GROUP,
+ GSM_AUTOSTART_APP_STARTUP_ID_KEY,
+ startup_id);
+
+ g_key_file_set_string (keyfile,
+ G_KEY_FILE_DESKTOP_GROUP,
+ G_KEY_FILE_DESKTOP_KEY_EXEC,
+ exec_program);
+
+ exec_discard = xsmp_get_discard_command (client);
+ if (exec_discard)
+ g_key_file_set_string (keyfile,
+ G_KEY_FILE_DESKTOP_GROUP,
+ GSM_AUTOSTART_APP_DISCARD_KEY,
+ exec_discard);
+
+out:
+ g_free (desktop_file_path);
+ g_free (exec_program);
+ g_free (exec_discard);
+ g_free (startup_id);
+
+ if (local_error != NULL) {
+ g_propagate_error (error, local_error);
+ g_key_file_free (keyfile);
+
+ return NULL;
+ }
+
+ return keyfile;
+}
+
+static gboolean
+xsmp_stop (GsmClient *client,
+ GError **error)
+{
+ GsmXSMPClient *xsmp = (GsmXSMPClient *) client;
+
+ g_debug ("GsmXSMPClient: xsmp_stop ('%s')", xsmp->priv->description);
+
+ if (xsmp->priv->conn == NULL) {
+ g_set_error (error,
+ GSM_CLIENT_ERROR,
+ GSM_CLIENT_ERROR_NOT_REGISTERED,
+ "Client is not registered");
+ return FALSE;
+ }
+
+ SmsDie (xsmp->priv->conn);
+
+ return TRUE;
+}
+
+static gboolean
+xsmp_query_end_session (GsmClient *client,
+ guint flags,
+ GError **error)
+{
+ gboolean allow_interact;
+ int save_type;
+
+ if (GSM_XSMP_CLIENT (client)->priv->conn == NULL) {
+ g_set_error (error,
+ GSM_CLIENT_ERROR,
+ GSM_CLIENT_ERROR_NOT_REGISTERED,
+ "Client is not registered");
+ return FALSE;
+ }
+
+ allow_interact = !(flags & GSM_CLIENT_END_SESSION_FLAG_FORCEFUL);
+
+ /* we don't want to save the session state, but we just want to know if
+ * there's user data the client has to save and we want to give the
+ * client a chance to tell the user about it. This is consistent with
+ * the manager not setting GSM_CLIENT_END_SESSION_FLAG_SAVE for this
+ * phase. */
+ save_type = SmSaveGlobal;
+
+ do_save_yourself (GSM_XSMP_CLIENT (client), save_type, allow_interact);
+ return TRUE;
+}
+
+static gboolean
+xsmp_end_session (GsmClient *client,
+ guint flags,
+ GError **error)
+{
+ gboolean phase2;
+
+ if (GSM_XSMP_CLIENT (client)->priv->conn == NULL) {
+ g_set_error (error,
+ GSM_CLIENT_ERROR,
+ GSM_CLIENT_ERROR_NOT_REGISTERED,
+ "Client is not registered");
+ return FALSE;
+ }
+
+ phase2 = (flags & GSM_CLIENT_END_SESSION_FLAG_LAST);
+
+ if (phase2) {
+ xsmp_save_yourself_phase2 (client);
+ } else {
+ gboolean allow_interact;
+ int save_type;
+
+ /* we gave a chance to interact to the app during
+ * xsmp_query_end_session(), now it's too late to interact */
+ allow_interact = FALSE;
+
+ if (flags & GSM_CLIENT_END_SESSION_FLAG_SAVE) {
+ save_type = SmSaveBoth;
+ } else {
+ save_type = SmSaveGlobal;
+ }
+
+ do_save_yourself (GSM_XSMP_CLIENT (client),
+ save_type, allow_interact);
+ }
+
+ return TRUE;
+}
+
+static char *
+xsmp_get_app_name (GsmClient *client)
+{
+ SmProp *prop;
+ char *name;
+
+ prop = find_property (GSM_XSMP_CLIENT (client), SmProgram, NULL);
+ name = prop_to_command (prop);
+
+ return name;
+}
+
+static void
+gsm_client_set_ice_connection (GsmXSMPClient *client,
+ gpointer conn)
+{
+ client->priv->ice_connection = conn;
+}
+
+static void
+gsm_xsmp_client_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GsmXSMPClient *self;
+
+ self = GSM_XSMP_CLIENT (object);
+
+ switch (prop_id) {
+ case PROP_ICE_CONNECTION:
+ gsm_client_set_ice_connection (self, g_value_get_pointer (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_xsmp_client_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GsmXSMPClient *self;
+
+ self = GSM_XSMP_CLIENT (object);
+
+ switch (prop_id) {
+ case PROP_ICE_CONNECTION:
+ g_value_set_pointer (value, self->priv->ice_connection);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_xsmp_client_disconnect (GsmXSMPClient *client)
+{
+ if (client->priv->watch_id > 0) {
+ g_source_remove (client->priv->watch_id);
+ }
+
+ if (client->priv->conn != NULL) {
+ SmsCleanUp (client->priv->conn);
+ }
+
+ if (client->priv->ice_connection != NULL) {
+ IceSetShutdownNegotiation (client->priv->ice_connection, FALSE);
+ IceCloseConnection (client->priv->ice_connection);
+ }
+}
+
+static void
+gsm_xsmp_client_finalize (GObject *object)
+{
+ GsmXSMPClient *client = (GsmXSMPClient *) object;
+
+ g_debug ("GsmXSMPClient: xsmp_finalize (%s)", client->priv->description);
+ gsm_xsmp_client_disconnect (client);
+
+ g_free (client->priv->description);
+ g_ptr_array_foreach (client->priv->props, (GFunc)SmFreeProperty, NULL);
+ g_ptr_array_free (client->priv->props, TRUE);
+
+ G_OBJECT_CLASS (gsm_xsmp_client_parent_class)->finalize (object);
+}
+
+static gboolean
+_boolean_handled_accumulator (GSignalInvocationHint *ihint,
+ GValue *return_accu,
+ const GValue *handler_return,
+ gpointer dummy)
+{
+ gboolean continue_emission;
+ gboolean signal_handled;
+
+ signal_handled = g_value_get_boolean (handler_return);
+ g_value_set_boolean (return_accu, signal_handled);
+ continue_emission = !signal_handled;
+
+ return continue_emission;
+}
+
+static GsmClientRestartStyle
+xsmp_get_restart_style_hint (GsmClient *client)
+{
+ SmProp *prop;
+ GsmClientRestartStyle hint;
+
+ g_debug ("GsmXSMPClient: getting restart style");
+ hint = GSM_CLIENT_RESTART_IF_RUNNING;
+
+ prop = find_property (GSM_XSMP_CLIENT (client), SmRestartStyleHint, NULL);
+
+ if (!prop || strcmp (prop->type, SmCARD8) != 0) {
+ return GSM_CLIENT_RESTART_IF_RUNNING;
+ }
+
+ switch (((unsigned char *)prop->vals[0].value)[0]) {
+ case SmRestartIfRunning:
+ hint = GSM_CLIENT_RESTART_IF_RUNNING;
+ break;
+ case SmRestartAnyway:
+ hint = GSM_CLIENT_RESTART_ANYWAY;
+ break;
+ case SmRestartImmediately:
+ hint = GSM_CLIENT_RESTART_IMMEDIATELY;
+ break;
+ case SmRestartNever:
+ hint = GSM_CLIENT_RESTART_NEVER;
+ break;
+ default:
+ break;
+ }
+
+ return hint;
+}
+
+static gboolean
+_parse_value_as_uint (const char *value,
+ guint *uintval)
+{
+ char *end_of_valid_uint;
+ gulong ulong_value;
+ guint uint_value;
+
+ errno = 0;
+ ulong_value = strtoul (value, &end_of_valid_uint, 10);
+
+ if (*value == '\0' || *end_of_valid_uint != '\0') {
+ return FALSE;
+ }
+
+ uint_value = ulong_value;
+ if (uint_value != ulong_value || errno == ERANGE) {
+ return FALSE;
+ }
+
+ *uintval = uint_value;
+
+ return TRUE;
+}
+
+static guint
+xsmp_get_unix_process_id (GsmClient *client)
+{
+ SmProp *prop;
+ guint pid;
+ gboolean res;
+
+ g_debug ("GsmXSMPClient: getting pid");
+
+ prop = find_property (GSM_XSMP_CLIENT (client), SmProcessID, NULL);
+
+ if (!prop || strcmp (prop->type, SmARRAY8) != 0) {
+ return 0;
+ }
+
+ pid = 0;
+ res = _parse_value_as_uint ((char *)prop->vals[0].value, &pid);
+ if (! res) {
+ pid = 0;
+ }
+
+ return pid;
+}
+
+static void
+gsm_xsmp_client_class_init (GsmXSMPClientClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GsmClientClass *client_class = GSM_CLIENT_CLASS (klass);
+
+ object_class->finalize = gsm_xsmp_client_finalize;
+ object_class->constructor = gsm_xsmp_client_constructor;
+ object_class->get_property = gsm_xsmp_client_get_property;
+ object_class->set_property = gsm_xsmp_client_set_property;
+
+ client_class->impl_save = xsmp_save;
+ client_class->impl_stop = xsmp_stop;
+ client_class->impl_query_end_session = xsmp_query_end_session;
+ client_class->impl_end_session = xsmp_end_session;
+ client_class->impl_cancel_end_session = xsmp_cancel_end_session;
+ client_class->impl_get_app_name = xsmp_get_app_name;
+ client_class->impl_get_restart_style_hint = xsmp_get_restart_style_hint;
+ client_class->impl_get_unix_process_id = xsmp_get_unix_process_id;
+
+ signals[REGISTER_REQUEST] =
+ g_signal_new ("register-request",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmXSMPClientClass, register_request),
+ _boolean_handled_accumulator,
+ NULL,
+ gsm_marshal_BOOLEAN__POINTER,
+ G_TYPE_BOOLEAN,
+ 1, G_TYPE_POINTER);
+ signals[LOGOUT_REQUEST] =
+ g_signal_new ("logout-request",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GsmXSMPClientClass, logout_request),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__BOOLEAN,
+ G_TYPE_NONE,
+ 1, G_TYPE_BOOLEAN);
+
+ g_object_class_install_property (object_class,
+ PROP_ICE_CONNECTION,
+ g_param_spec_pointer ("ice-connection",
+ "ice-connection",
+ "ice-connection",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+ g_type_class_add_private (klass, sizeof (GsmXSMPClientPrivate));
+}
+
+GsmClient *
+gsm_xsmp_client_new (IceConn ice_conn)
+{
+ GsmXSMPClient *xsmp;
+
+ xsmp = g_object_new (GSM_TYPE_XSMP_CLIENT,
+ "ice-connection", ice_conn,
+ NULL);
+
+ return GSM_CLIENT (xsmp);
+}
+
+static Status
+register_client_callback (SmsConn conn,
+ SmPointer manager_data,
+ char *previous_id)
+{
+ GsmXSMPClient *client = manager_data;
+ gboolean handled;
+ char *id;
+
+ g_debug ("GsmXSMPClient: Client '%s' received RegisterClient(%s)",
+ client->priv->description,
+ previous_id ? previous_id : "NULL");
+
+
+ /* There are three cases:
+ * 1. id is NULL - we'll use a new one
+ * 2. id is known - we'll use known one
+ * 3. id is unknown - this is an error
+ */
+ id = g_strdup (previous_id);
+
+ handled = FALSE;
+ g_signal_emit (client, signals[REGISTER_REQUEST], 0, &id, &handled);
+ if (! handled) {
+ g_debug ("GsmXSMPClient: RegisterClient not handled!");
+ g_free (id);
+ free (previous_id);
+ g_assert_not_reached ();
+ return FALSE;
+ }
+
+ if (IS_STRING_EMPTY (id)) {
+ g_debug ("GsmXSMPClient: rejected: invalid previous_id");
+ free (previous_id);
+ return FALSE;
+ }
+
+ g_object_set (client, "startup-id", id, NULL);
+
+ set_description (client);
+
+ g_debug ("GsmXSMPClient: Sending RegisterClientReply to '%s'", client->priv->description);
+
+ SmsRegisterClientReply (conn, id);
+
+ if (IS_STRING_EMPTY (previous_id)) {
+ /* Send the initial SaveYourself. */
+ g_debug ("GsmXSMPClient: Sending initial SaveYourself");
+ SmsSaveYourself (conn, SmSaveLocal, False, SmInteractStyleNone, False);
+ client->priv->current_save_yourself = SmSaveLocal;
+ }
+
+ gsm_client_set_status (GSM_CLIENT (client), GSM_CLIENT_REGISTERED);
+
+ g_free (id);
+ free (previous_id);
+
+ return TRUE;
+}
+
+
+static void
+save_yourself_request_callback (SmsConn conn,
+ SmPointer manager_data,
+ int save_type,
+ Bool shutdown,
+ int interact_style,
+ Bool fast,
+ Bool global)
+{
+ GsmXSMPClient *client = manager_data;
+
+ g_debug ("GsmXSMPClient: Client '%s' received SaveYourselfRequest(%s, %s, %s, %s, %s)",
+ client->priv->description,
+ save_type == SmSaveLocal ? "SmSaveLocal" :
+ save_type == SmSaveGlobal ? "SmSaveGlobal" : "SmSaveBoth",
+ shutdown ? "Shutdown" : "!Shutdown",
+ interact_style == SmInteractStyleAny ? "SmInteractStyleAny" :
+ interact_style == SmInteractStyleErrors ? "SmInteractStyleErrors" :
+ "SmInteractStyleNone", fast ? "Fast" : "!Fast",
+ global ? "Global" : "!Global");
+
+ /* Examining the g_debug above, you can see that there are a total
+ * of 72 different combinations of options that this could have been
+ * called with. However, most of them are stupid.
+ *
+ * If @shutdown and @global are both TRUE, that means the caller is
+ * requesting that a logout message be sent to all clients, so we do
+ * that. We use @fast to decide whether or not to show a
+ * confirmation dialog. (This isn't really what @fast is for, but
+ * the old mate-session and ksmserver both interpret it that way,
+ * so we do too.) We ignore @save_type because we pick the correct
+ * save_type ourselves later based on user prefs, dialog choices,
+ * etc, and we ignore @interact_style, because clients have not used
+ * it correctly consistently enough to make it worth honoring.
+ *
+ * If @shutdown is TRUE and @global is FALSE, the caller is
+ * confused, so we ignore the request.
+ *
+ * If @shutdown is FALSE and @save_type is SmSaveGlobal or
+ * SmSaveBoth, then the client wants us to ask some or all open
+ * applications to save open files to disk, but NOT quit. This is
+ * silly and so we ignore the request.
+ *
+ * If @shutdown is FALSE and @save_type is SmSaveLocal, then the
+ * client wants us to ask some or all open applications to update
+ * their current saved state, but not log out. At the moment, the
+ * code only supports this for the !global case (ie, a client
+ * requesting that it be allowed to update *its own* saved state,
+ * but not having everyone else update their saved state).
+ */
+
+ if (shutdown && global) {
+ g_debug ("GsmXSMPClient: initiating shutdown");
+ g_signal_emit (client, signals[LOGOUT_REQUEST], 0, !fast);
+ } else if (!shutdown && !global) {
+ g_debug ("GsmXSMPClient: initiating checkpoint");
+ do_save_yourself (client, SmSaveLocal, TRUE);
+ } else {
+ g_debug ("GsmXSMPClient: ignoring");
+ }
+}
+
+static void
+save_yourself_phase2_request_callback (SmsConn conn,
+ SmPointer manager_data)
+{
+ GsmXSMPClient *client = manager_data;
+
+ g_debug ("GsmXSMPClient: Client '%s' received SaveYourselfPhase2Request",
+ client->priv->description);
+
+ client->priv->current_save_yourself = -1;
+
+ /* this is a valid response to SaveYourself and therefore
+ may be a response to a QES or ES */
+ gsm_client_end_session_response (GSM_CLIENT (client),
+ TRUE, TRUE, FALSE,
+ NULL);
+}
+
+static void
+interact_request_callback (SmsConn conn,
+ SmPointer manager_data,
+ int dialog_type)
+{
+ GsmXSMPClient *client = manager_data;
+#if 0
+ gboolean res;
+ GError *error;
+#endif
+
+ g_debug ("GsmXSMPClient: Client '%s' received InteractRequest(%s)",
+ client->priv->description,
+ dialog_type == SmDialogNormal ? "Dialog" : "Errors");
+
+ gsm_client_end_session_response (GSM_CLIENT (client),
+ FALSE, FALSE, FALSE,
+ _("This program is blocking logout."));
+
+#if 0
+ /* Can't just call back with Interact because session client
+ grabs the keyboard! So, we try to get it to release
+ grabs by telling it we've cancelled the shutdown.
+ This grabbing is clearly bullshit and is not supported by
+ the client spec or protocol spec.
+ */
+ res = xsmp_cancel_end_session (GSM_CLIENT (client), &error);
+ if (! res) {
+ g_warning ("Unable to cancel end session: %s", error->message);
+ g_error_free (error);
+ }
+#endif
+ xsmp_interact (GSM_CLIENT (client));
+}
+
+static void
+interact_done_callback (SmsConn conn,
+ SmPointer manager_data,
+ Bool cancel_shutdown)
+{
+ GsmXSMPClient *client = manager_data;
+
+ g_debug ("GsmXSMPClient: Client '%s' received InteractDone(cancel_shutdown = %s)",
+ client->priv->description,
+ cancel_shutdown ? "True" : "False");
+
+ gsm_client_end_session_response (GSM_CLIENT (client),
+ TRUE, FALSE, cancel_shutdown,
+ NULL);
+}
+
+static void
+save_yourself_done_callback (SmsConn conn,
+ SmPointer manager_data,
+ Bool success)
+{
+ GsmXSMPClient *client = manager_data;
+
+ g_debug ("GsmXSMPClient: Client '%s' received SaveYourselfDone(success = %s)",
+ client->priv->description,
+ success ? "True" : "False");
+
+ if (client->priv->current_save_yourself != -1) {
+ SmsSaveComplete (client->priv->conn);
+ client->priv->current_save_yourself = -1;
+ }
+
+ /* If success is false then the application couldn't save data. Nothing
+ * the session manager can do about, though. FIXME: we could display a
+ * dialog about this, I guess. */
+ gsm_client_end_session_response (GSM_CLIENT (client),
+ TRUE, FALSE, FALSE,
+ NULL);
+
+ if (client->priv->next_save_yourself) {
+ int save_type = client->priv->next_save_yourself;
+ gboolean allow_interact = client->priv->next_save_yourself_allow_interact;
+
+ client->priv->next_save_yourself = -1;
+ client->priv->next_save_yourself_allow_interact = -1;
+ do_save_yourself (client, save_type, allow_interact);
+ }
+}
+
+static void
+close_connection_callback (SmsConn conn,
+ SmPointer manager_data,
+ int count,
+ char **reason_msgs)
+{
+ GsmXSMPClient *client = manager_data;
+ int i;
+
+ g_debug ("GsmXSMPClient: Client '%s' received CloseConnection", client->priv->description);
+ for (i = 0; i < count; i++) {
+ g_debug ("GsmXSMPClient: close reason: '%s'", reason_msgs[i]);
+ }
+ SmFreeReasons (count, reason_msgs);
+
+ gsm_client_set_status (GSM_CLIENT (client), GSM_CLIENT_FINISHED);
+ gsm_client_disconnected (GSM_CLIENT (client));
+}
+
+void
+gsm_xsmp_client_connect (GsmXSMPClient *client,
+ SmsConn conn,
+ unsigned long *mask_ret,
+ SmsCallbacks *callbacks_ret)
+{
+ client->priv->conn = conn;
+
+ g_debug ("GsmXSMPClient: Initializing client %s", client->priv->description);
+
+ *mask_ret = 0;
+
+ *mask_ret |= SmsRegisterClientProcMask;
+ callbacks_ret->register_client.callback = register_client_callback;
+ callbacks_ret->register_client.manager_data = client;
+
+ *mask_ret |= SmsInteractRequestProcMask;
+ callbacks_ret->interact_request.callback = interact_request_callback;
+ callbacks_ret->interact_request.manager_data = client;
+
+ *mask_ret |= SmsInteractDoneProcMask;
+ callbacks_ret->interact_done.callback = interact_done_callback;
+ callbacks_ret->interact_done.manager_data = client;
+
+ *mask_ret |= SmsSaveYourselfRequestProcMask;
+ callbacks_ret->save_yourself_request.callback = save_yourself_request_callback;
+ callbacks_ret->save_yourself_request.manager_data = client;
+
+ *mask_ret |= SmsSaveYourselfP2RequestProcMask;
+ callbacks_ret->save_yourself_phase2_request.callback = save_yourself_phase2_request_callback;
+ callbacks_ret->save_yourself_phase2_request.manager_data = client;
+
+ *mask_ret |= SmsSaveYourselfDoneProcMask;
+ callbacks_ret->save_yourself_done.callback = save_yourself_done_callback;
+ callbacks_ret->save_yourself_done.manager_data = client;
+
+ *mask_ret |= SmsCloseConnectionProcMask;
+ callbacks_ret->close_connection.callback = close_connection_callback;
+ callbacks_ret->close_connection.manager_data = client;
+
+ *mask_ret |= SmsSetPropertiesProcMask;
+ callbacks_ret->set_properties.callback = set_properties_callback;
+ callbacks_ret->set_properties.manager_data = client;
+
+ *mask_ret |= SmsDeletePropertiesProcMask;
+ callbacks_ret->delete_properties.callback = delete_properties_callback;
+ callbacks_ret->delete_properties.manager_data = client;
+
+ *mask_ret |= SmsGetPropertiesProcMask;
+ callbacks_ret->get_properties.callback = get_properties_callback;
+ callbacks_ret->get_properties.manager_data = client;
+}
+
+void
+gsm_xsmp_client_save_state (GsmXSMPClient *client)
+{
+ g_return_if_fail (GSM_IS_XSMP_CLIENT (client));
+}
diff --git a/mate-session/gsm-xsmp-client.h b/mate-session/gsm-xsmp-client.h
new file mode 100644
index 0000000..20ef3df
--- /dev/null
+++ b/mate-session/gsm-xsmp-client.h
@@ -0,0 +1,93 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007 Novell, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef __GSM_XSMP_CLIENT_H__
+#define __GSM_XSMP_CLIENT_H__
+
+#include "gsm-client.h"
+
+#include <X11/SM/SMlib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GSM_TYPE_XSMP_CLIENT (gsm_xsmp_client_get_type ())
+#define GSM_XSMP_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSM_TYPE_XSMP_CLIENT, GsmXSMPClient))
+#define GSM_XSMP_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSM_TYPE_XSMP_CLIENT, GsmXSMPClientClass))
+#define GSM_IS_XSMP_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSM_TYPE_XSMP_CLIENT))
+#define GSM_IS_XSMP_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSM_TYPE_XSMP_CLIENT))
+#define GSM_XSMP_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSM_TYPE_XSMP_CLIENT, GsmXSMPClientClass))
+
+typedef struct _GsmXSMPClient GsmXSMPClient;
+typedef struct _GsmXSMPClientClass GsmXSMPClientClass;
+
+typedef struct GsmXSMPClientPrivate GsmXSMPClientPrivate;
+
+struct _GsmXSMPClient
+{
+ GsmClient parent;
+ GsmXSMPClientPrivate *priv;
+};
+
+struct _GsmXSMPClientClass
+{
+ GsmClientClass parent_class;
+
+ /* signals */
+ gboolean (*register_request) (GsmXSMPClient *client,
+ char **client_id);
+ gboolean (*logout_request) (GsmXSMPClient *client,
+ gboolean prompt);
+
+
+ void (*saved_state) (GsmXSMPClient *client);
+
+ void (*request_phase2) (GsmXSMPClient *client);
+
+ void (*request_interaction) (GsmXSMPClient *client);
+ void (*interaction_done) (GsmXSMPClient *client,
+ gboolean cancel_shutdown);
+
+ void (*save_yourself_done) (GsmXSMPClient *client);
+
+};
+
+GType gsm_xsmp_client_get_type (void) G_GNUC_CONST;
+
+GsmClient *gsm_xsmp_client_new (IceConn ice_conn);
+
+void gsm_xsmp_client_connect (GsmXSMPClient *client,
+ SmsConn conn,
+ unsigned long *mask_ret,
+ SmsCallbacks *callbacks_ret);
+
+void gsm_xsmp_client_save_state (GsmXSMPClient *client);
+void gsm_xsmp_client_save_yourself (GsmXSMPClient *client,
+ gboolean save_state);
+void gsm_xsmp_client_save_yourself_phase2 (GsmXSMPClient *client);
+void gsm_xsmp_client_interact (GsmXSMPClient *client);
+void gsm_xsmp_client_shutdown_cancelled (GsmXSMPClient *client);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSM_XSMP_CLIENT_H__ */
diff --git a/mate-session/gsm-xsmp-server.c b/mate-session/gsm-xsmp-server.c
new file mode 100644
index 0000000..1f0e045
--- /dev/null
+++ b/mate-session/gsm-xsmp-server.c
@@ -0,0 +1,732 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007 Novell, Inc.
+ * Copyright (C) 2008 Red Hat, Inc.
+ * Copyright (C) 2008 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <string.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <glib-object.h>
+
+#include <X11/ICE/ICElib.h>
+#include <X11/ICE/ICEutil.h>
+#include <X11/ICE/ICEconn.h>
+#include <X11/SM/SMlib.h>
+
+#ifdef HAVE_X11_XTRANS_XTRANS_H
+/* Get the proto for _IceTransNoListen */
+#define ICE_t
+#define TRANS_SERVER
+#include <X11/Xtrans/Xtrans.h>
+#undef ICE_t
+#undef TRANS_SERVER
+#endif /* HAVE_X11_XTRANS_XTRANS_H */
+
+#include "gsm-xsmp-server.h"
+#include "gsm-xsmp-client.h"
+#include "gsm-util.h"
+
+/* ICEauthority stuff */
+/* Various magic numbers stolen from iceauth.c */
+#define GSM_ICE_AUTH_RETRIES 10
+#define GSM_ICE_AUTH_INTERVAL 2 /* 2 seconds */
+#define GSM_ICE_AUTH_LOCK_TIMEOUT 600 /* 10 minutes */
+
+#define GSM_ICE_MAGIC_COOKIE_AUTH_NAME "MIT-MAGIC-COOKIE-1"
+#define GSM_ICE_MAGIC_COOKIE_LEN 16
+
+#define GSM_XSMP_SERVER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_XSMP_SERVER, GsmXsmpServerPrivate))
+
+struct GsmXsmpServerPrivate
+{
+ GsmStore *client_store;
+
+ IceListenObj *xsmp_sockets;
+ int num_xsmp_sockets;
+ int num_local_xsmp_sockets;
+
+};
+
+enum {
+ PROP_0,
+ PROP_CLIENT_STORE
+};
+
+static void gsm_xsmp_server_class_init (GsmXsmpServerClass *klass);
+static void gsm_xsmp_server_init (GsmXsmpServer *xsmp_server);
+static void gsm_xsmp_server_finalize (GObject *object);
+
+static gpointer xsmp_server_object = NULL;
+
+G_DEFINE_TYPE (GsmXsmpServer, gsm_xsmp_server, G_TYPE_OBJECT)
+
+typedef struct {
+ GsmXsmpServer *server;
+ IceListenObj listener;
+} GsmIceConnectionData;
+
+typedef struct {
+ guint watch_id;
+ guint protocol_timeout;
+} GsmIceConnectionWatch;
+
+static void
+disconnect_ice_connection (IceConn ice_conn)
+{
+ IceSetShutdownNegotiation (ice_conn, FALSE);
+ IceCloseConnection (ice_conn);
+}
+
+static void
+free_ice_connection_watch (GsmIceConnectionWatch *data)
+{
+ if (data->watch_id) {
+ g_source_remove (data->watch_id);
+ data->watch_id = 0;
+ }
+
+ if (data->protocol_timeout) {
+ g_source_remove (data->protocol_timeout);
+ data->protocol_timeout = 0;
+ }
+
+ g_free (data);
+}
+
+static gboolean
+ice_protocol_timeout (IceConn ice_conn)
+{
+ GsmIceConnectionWatch *data;
+
+ g_debug ("GsmXsmpServer: ice_protocol_timeout for IceConn %p with status %d",
+ ice_conn, IceConnectionStatus (ice_conn));
+
+ data = ice_conn->context;
+
+ free_ice_connection_watch (data);
+ disconnect_ice_connection (ice_conn);
+
+ return FALSE;
+}
+
+static gboolean
+auth_iochannel_watch (GIOChannel *source,
+ GIOCondition condition,
+ IceConn ice_conn)
+{
+
+ GsmIceConnectionWatch *data;
+ gboolean keep_going;
+
+ data = ice_conn->context;
+
+ switch (IceProcessMessages (ice_conn, NULL, NULL)) {
+ case IceProcessMessagesSuccess:
+ keep_going = TRUE;
+ break;
+ case IceProcessMessagesIOError:
+ g_debug ("GsmXsmpServer: IceProcessMessages returned IceProcessMessagesIOError");
+ free_ice_connection_watch (data);
+ disconnect_ice_connection (ice_conn);
+ keep_going = FALSE;
+ break;
+ case IceProcessMessagesConnectionClosed:
+ g_debug ("GsmXsmpServer: IceProcessMessages returned IceProcessMessagesConnectionClosed");
+ free_ice_connection_watch (data);
+ keep_going = FALSE;
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+
+ return keep_going;
+}
+
+/* IceAcceptConnection returns a new ICE connection that is in a "pending" state,
+ * this is because authentification may be necessary.
+ * So we've to authenticate it, before accept_xsmp_connection() is called.
+ * Then each GsmXSMPClient will have its own IceConn watcher
+ */
+static void
+auth_ice_connection (IceConn ice_conn)
+{
+ GIOChannel *channel;
+ GsmIceConnectionWatch *data;
+ int fd;
+
+ g_debug ("GsmXsmpServer: auth_ice_connection()");
+
+ fd = IceConnectionNumber (ice_conn);
+ fcntl (fd, F_SETFD, fcntl (fd, F_GETFD, 0) | FD_CLOEXEC);
+ channel = g_io_channel_unix_new (fd);
+
+ data = g_new0 (GsmIceConnectionWatch, 1);
+ ice_conn->context = data;
+
+ data->protocol_timeout = g_timeout_add_seconds (5,
+ (GSourceFunc)ice_protocol_timeout,
+ ice_conn);
+ data->watch_id = g_io_add_watch (channel,
+ G_IO_IN | G_IO_ERR,
+ (GIOFunc)auth_iochannel_watch,
+ ice_conn);
+ g_io_channel_unref (channel);
+}
+
+/* This is called (by glib via xsmp->ice_connection_watch) when a
+ * connection is first received on the ICE listening socket.
+ */
+static gboolean
+accept_ice_connection (GIOChannel *source,
+ GIOCondition condition,
+ GsmIceConnectionData *data)
+{
+ IceConn ice_conn;
+ IceAcceptStatus status;
+
+ g_debug ("GsmXsmpServer: accept_ice_connection()");
+
+ ice_conn = IceAcceptConnection (data->listener, &status);
+ if (status != IceAcceptSuccess) {
+ g_debug ("GsmXsmpServer: IceAcceptConnection returned %d", status);
+ return TRUE;
+ }
+
+ auth_ice_connection (ice_conn);
+
+ return TRUE;
+}
+
+void
+gsm_xsmp_server_start (GsmXsmpServer *server)
+{
+ GIOChannel *channel;
+ int i;
+
+ for (i = 0; i < server->priv->num_local_xsmp_sockets; i++) {
+ GsmIceConnectionData *data;
+
+ data = g_new0 (GsmIceConnectionData, 1);
+ data->server = server;
+ data->listener = server->priv->xsmp_sockets[i];
+
+ channel = g_io_channel_unix_new (IceGetListenConnectionNumber (server->priv->xsmp_sockets[i]));
+ g_io_add_watch_full (channel,
+ G_PRIORITY_DEFAULT,
+ G_IO_IN | G_IO_HUP | G_IO_ERR,
+ (GIOFunc)accept_ice_connection,
+ data,
+ (GDestroyNotify)g_free);
+ g_io_channel_unref (channel);
+ }
+}
+
+static void
+gsm_xsmp_server_set_client_store (GsmXsmpServer *xsmp_server,
+ GsmStore *store)
+{
+ g_return_if_fail (GSM_IS_XSMP_SERVER (xsmp_server));
+
+ if (store != NULL) {
+ g_object_ref (store);
+ }
+
+ if (xsmp_server->priv->client_store != NULL) {
+ g_object_unref (xsmp_server->priv->client_store);
+ }
+
+ xsmp_server->priv->client_store = store;
+}
+
+static void
+gsm_xsmp_server_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GsmXsmpServer *self;
+
+ self = GSM_XSMP_SERVER (object);
+
+ switch (prop_id) {
+ case PROP_CLIENT_STORE:
+ gsm_xsmp_server_set_client_store (self, g_value_get_object (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gsm_xsmp_server_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GsmXsmpServer *self;
+
+ self = GSM_XSMP_SERVER (object);
+
+ switch (prop_id) {
+ case PROP_CLIENT_STORE:
+ g_value_set_object (value, self->priv->client_store);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/* This is called (by libSM) when XSMP is initiated on an ICE
+ * connection that was already accepted by accept_ice_connection.
+ */
+static Status
+accept_xsmp_connection (SmsConn sms_conn,
+ GsmXsmpServer *server,
+ unsigned long *mask_ret,
+ SmsCallbacks *callbacks_ret,
+ char **failure_reason_ret)
+{
+ IceConn ice_conn;
+ GsmClient *client;
+ GsmIceConnectionWatch *data;
+
+ /* FIXME: what about during shutdown but before gsm_xsmp_shutdown? */
+ if (server->priv->xsmp_sockets == NULL) {
+ g_debug ("GsmXsmpServer: In shutdown, rejecting new client");
+
+ *failure_reason_ret = strdup (_("Refusing new client connection because the session is currently being shut down\n"));
+ return FALSE;
+ }
+
+ ice_conn = SmsGetIceConnection (sms_conn);
+ data = ice_conn->context;
+
+ /* Each GsmXSMPClient has its own IceConn watcher */
+ free_ice_connection_watch (data);
+
+ client = gsm_xsmp_client_new (ice_conn);
+
+ gsm_store_add (server->priv->client_store, gsm_client_peek_id (client), G_OBJECT (client));
+ /* the store will own the ref */
+ g_object_unref (client);
+
+ gsm_xsmp_client_connect (GSM_XSMP_CLIENT (client), sms_conn, mask_ret, callbacks_ret);
+
+ return TRUE;
+}
+
+static void
+ice_error_handler (IceConn conn,
+ Bool swap,
+ int offending_minor_opcode,
+ unsigned long offending_sequence,
+ int error_class,
+ int severity,
+ IcePointer values)
+{
+ g_debug ("GsmXsmpServer: ice_error_handler (%p, %s, %d, %lx, %d, %d)",
+ conn, swap ? "TRUE" : "FALSE", offending_minor_opcode,
+ offending_sequence, error_class, severity);
+
+ if (severity == IceCanContinue) {
+ return;
+ }
+
+ /* FIXME: the ICElib docs are completely vague about what we're
+ * supposed to do in this case. Need to verify that calling
+ * IceCloseConnection() here is guaranteed to cause neither
+ * free-memory-reads nor leaks.
+ */
+ IceCloseConnection (conn);
+}
+
+static void
+ice_io_error_handler (IceConn conn)
+{
+ g_debug ("GsmXsmpServer: ice_io_error_handler (%p)", conn);
+
+ /* We don't need to do anything here; the next call to
+ * IceProcessMessages() for this connection will receive
+ * IceProcessMessagesIOError and we can handle the error there.
+ */
+}
+
+static void
+sms_error_handler (SmsConn conn,
+ Bool swap,
+ int offending_minor_opcode,
+ unsigned long offending_sequence_num,
+ int error_class,
+ int severity,
+ IcePointer values)
+{
+ g_debug ("GsmXsmpServer: sms_error_handler (%p, %s, %d, %lx, %d, %d)",
+ conn, swap ? "TRUE" : "FALSE", offending_minor_opcode,
+ offending_sequence_num, error_class, severity);
+
+ /* We don't need to do anything here; if the connection needs to be
+ * closed, libSM will do that itself.
+ */
+}
+
+static IceAuthFileEntry *
+auth_entry_new (const char *protocol,
+ const char *network_id)
+{
+ IceAuthFileEntry *file_entry;
+ IceAuthDataEntry data_entry;
+
+ file_entry = malloc (sizeof (IceAuthFileEntry));
+
+ file_entry->protocol_name = strdup (protocol);
+ file_entry->protocol_data = NULL;
+ file_entry->protocol_data_length = 0;
+ file_entry->network_id = strdup (network_id);
+ file_entry->auth_name = strdup (GSM_ICE_MAGIC_COOKIE_AUTH_NAME);
+ file_entry->auth_data = IceGenerateMagicCookie (GSM_ICE_MAGIC_COOKIE_LEN);
+ file_entry->auth_data_length = GSM_ICE_MAGIC_COOKIE_LEN;
+
+ /* Also create an in-memory copy, which is what the server will
+ * actually use for checking client auth.
+ */
+ data_entry.protocol_name = file_entry->protocol_name;
+ data_entry.network_id = file_entry->network_id;
+ data_entry.auth_name = file_entry->auth_name;
+ data_entry.auth_data = file_entry->auth_data;
+ data_entry.auth_data_length = file_entry->auth_data_length;
+ IceSetPaAuthData (1, &data_entry);
+
+ return file_entry;
+}
+
+static gboolean
+update_iceauthority (GsmXsmpServer *server,
+ gboolean adding)
+{
+ char *filename;
+ char **our_network_ids;
+ FILE *fp;
+ IceAuthFileEntry *auth_entry;
+ GSList *entries;
+ GSList *e;
+ int i;
+ gboolean ok = FALSE;
+
+ filename = IceAuthFileName ();
+ if (IceLockAuthFile (filename,
+ GSM_ICE_AUTH_RETRIES,
+ GSM_ICE_AUTH_INTERVAL,
+ GSM_ICE_AUTH_LOCK_TIMEOUT) != IceAuthLockSuccess) {
+ return FALSE;
+ }
+
+ our_network_ids = g_malloc (server->priv->num_local_xsmp_sockets * sizeof (char *));
+ for (i = 0; i < server->priv->num_local_xsmp_sockets; i++) {
+ our_network_ids[i] = IceGetListenConnectionString (server->priv->xsmp_sockets[i]);
+ }
+
+ entries = NULL;
+
+ fp = fopen (filename, "r+");
+ if (fp != NULL) {
+ while ((auth_entry = IceReadAuthFileEntry (fp)) != NULL) {
+ /* Skip/delete entries with no network ID (invalid), or with
+ * our network ID; if we're starting up, an entry with our
+ * ID must be a stale entry left behind by an old process,
+ * and if we're shutting down, it won't be valid in the
+ * future, so either way we want to remove it from the list.
+ */
+ if (!auth_entry->network_id) {
+ IceFreeAuthFileEntry (auth_entry);
+ continue;
+ }
+
+ for (i = 0; i < server->priv->num_local_xsmp_sockets; i++) {
+ if (!strcmp (auth_entry->network_id, our_network_ids[i])) {
+ IceFreeAuthFileEntry (auth_entry);
+ break;
+ }
+ }
+ if (i != server->priv->num_local_xsmp_sockets) {
+ continue;
+ }
+
+ entries = g_slist_prepend (entries, auth_entry);
+ }
+
+ rewind (fp);
+ } else {
+ int fd;
+
+ if (g_file_test (filename, G_FILE_TEST_EXISTS)) {
+ g_warning ("Unable to read ICE authority file: %s", filename);
+ goto cleanup;
+ }
+
+ fd = open (filename, O_CREAT | O_WRONLY, 0600);
+ fp = fdopen (fd, "w");
+ if (!fp) {
+ g_warning ("Unable to write to ICE authority file: %s", filename);
+ if (fd != -1) {
+ close (fd);
+ }
+ goto cleanup;
+ }
+ }
+
+ if (adding) {
+ for (i = 0; i < server->priv->num_local_xsmp_sockets; i++) {
+ entries = g_slist_append (entries,
+ auth_entry_new ("ICE", our_network_ids[i]));
+ entries = g_slist_prepend (entries,
+ auth_entry_new ("XSMP", our_network_ids[i]));
+ }
+ }
+
+ for (e = entries; e; e = e->next) {
+ IceAuthFileEntry *auth_entry = e->data;
+ IceWriteAuthFileEntry (fp, auth_entry);
+ IceFreeAuthFileEntry (auth_entry);
+ }
+ g_slist_free (entries);
+
+ fclose (fp);
+ ok = TRUE;
+
+ cleanup:
+ IceUnlockAuthFile (filename);
+ for (i = 0; i < server->priv->num_local_xsmp_sockets; i++) {
+ free (our_network_ids[i]);
+ }
+ g_free (our_network_ids);
+
+ return ok;
+}
+
+
+static void
+setup_listener (GsmXsmpServer *server)
+{
+ char error[256];
+ mode_t saved_umask;
+ char *network_id_list;
+ int i;
+ int res;
+
+ /* Set up sane error handlers */
+ IceSetErrorHandler (ice_error_handler);
+ IceSetIOErrorHandler (ice_io_error_handler);
+ SmsSetErrorHandler (sms_error_handler);
+
+ /* Initialize libSM; we pass NULL for hostBasedAuthProc to disable
+ * host-based authentication.
+ */
+ res = SmsInitialize (PACKAGE,
+ VERSION,
+ (SmsNewClientProc)accept_xsmp_connection,
+ server,
+ NULL,
+ sizeof (error),
+ error);
+ if (! res) {
+ gsm_util_init_error (TRUE, "Could not initialize libSM: %s", error);
+ }
+
+#ifdef HAVE_X11_XTRANS_XTRANS_H
+ /* By default, IceListenForConnections will open one socket for each
+ * transport type known to X. We don't want connections from remote
+ * hosts, so for security reasons it would be best if ICE didn't
+ * even open any non-local sockets. So we use an internal ICElib
+ * method to disable them here. Unfortunately, there is no way to
+ * ask X what transport types it knows about, so we're forced to
+ * guess.
+ */
+ _IceTransNoListen ("tcp");
+#endif
+
+ /* Create the XSMP socket. Older versions of IceListenForConnections
+ * have a bug which causes the umask to be set to 0 on certain types
+ * of failures. Probably not an issue on any modern systems, but
+ * we'll play it safe.
+ */
+ saved_umask = umask (0);
+ umask (saved_umask);
+ res = IceListenForConnections (&server->priv->num_xsmp_sockets,
+ &server->priv->xsmp_sockets,
+ sizeof (error),
+ error);
+ if (! res) {
+ gsm_util_init_error (TRUE, _("Could not create ICE listening socket: %s"), error);
+ }
+
+ umask (saved_umask);
+
+ /* Find the local sockets in the returned socket list and move them
+ * to the start of the list.
+ */
+ for (i = server->priv->num_local_xsmp_sockets = 0; i < server->priv->num_xsmp_sockets; i++) {
+ char *id = IceGetListenConnectionString (server->priv->xsmp_sockets[i]);
+
+ if (!strncmp (id, "local/", sizeof ("local/") - 1) ||
+ !strncmp (id, "unix/", sizeof ("unix/") - 1)) {
+ if (i > server->priv->num_local_xsmp_sockets) {
+ IceListenObj tmp;
+ tmp = server->priv->xsmp_sockets[i];
+ server->priv->xsmp_sockets[i] = server->priv->xsmp_sockets[server->priv->num_local_xsmp_sockets];
+ server->priv->xsmp_sockets[server->priv->num_local_xsmp_sockets] = tmp;
+ }
+ server->priv->num_local_xsmp_sockets++;
+ }
+ free (id);
+ }
+
+ if (server->priv->num_local_xsmp_sockets == 0) {
+ gsm_util_init_error (TRUE, "IceListenForConnections did not return a local listener!");
+ }
+
+#ifdef HAVE_X11_XTRANS_XTRANS_H
+ if (server->priv->num_local_xsmp_sockets != server->priv->num_xsmp_sockets) {
+ /* Xtrans was apparently compiled with support for some
+ * non-local transport besides TCP (which we disabled above); we
+ * won't create IO watches on those extra sockets, so
+ * connections to them will never be noticed, but they're still
+ * there, which is inelegant.
+ *
+ * If the g_warning below is triggering for you and you want to
+ * stop it, the fix is to add additional _IceTransNoListen()
+ * calls above.
+ */
+ network_id_list = IceComposeNetworkIdList (server->priv->num_xsmp_sockets - server->priv->num_local_xsmp_sockets,
+ server->priv->xsmp_sockets + server->priv->num_local_xsmp_sockets);
+ g_warning ("IceListenForConnections returned %d non-local listeners: %s",
+ server->priv->num_xsmp_sockets - server->priv->num_local_xsmp_sockets,
+ network_id_list);
+ free (network_id_list);
+ }
+#endif
+
+ /* Update .ICEauthority with new auth entries for our socket */
+ if (!update_iceauthority (server, TRUE)) {
+ /* FIXME: is this really fatal? Hm... */
+ gsm_util_init_error (TRUE,
+ "Could not update ICEauthority file %s",
+ IceAuthFileName ());
+ }
+
+ network_id_list = IceComposeNetworkIdList (server->priv->num_local_xsmp_sockets,
+ server->priv->xsmp_sockets);
+
+ gsm_util_setenv ("SESSION_MANAGER", network_id_list);
+ g_debug ("GsmXsmpServer: SESSION_MANAGER=%s\n", network_id_list);
+ free (network_id_list);
+}
+
+static GObject *
+gsm_xsmp_server_constructor (GType type,
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
+{
+ GsmXsmpServer *xsmp_server;
+
+ xsmp_server = GSM_XSMP_SERVER (G_OBJECT_CLASS (gsm_xsmp_server_parent_class)->constructor (type,
+ n_construct_properties,
+ construct_properties));
+ setup_listener (xsmp_server);
+
+ return G_OBJECT (xsmp_server);
+}
+
+static void
+gsm_xsmp_server_class_init (GsmXsmpServerClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->get_property = gsm_xsmp_server_get_property;
+ object_class->set_property = gsm_xsmp_server_set_property;
+ object_class->constructor = gsm_xsmp_server_constructor;
+ object_class->finalize = gsm_xsmp_server_finalize;
+
+ g_object_class_install_property (object_class,
+ PROP_CLIENT_STORE,
+ g_param_spec_object ("client-store",
+ NULL,
+ NULL,
+ GSM_TYPE_STORE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+ g_type_class_add_private (klass, sizeof (GsmXsmpServerPrivate));
+}
+
+static void
+gsm_xsmp_server_init (GsmXsmpServer *xsmp_server)
+{
+ xsmp_server->priv = GSM_XSMP_SERVER_GET_PRIVATE (xsmp_server);
+
+}
+
+static void
+gsm_xsmp_server_finalize (GObject *object)
+{
+ GsmXsmpServer *xsmp_server;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GSM_IS_XSMP_SERVER (object));
+
+ xsmp_server = GSM_XSMP_SERVER (object);
+
+ g_return_if_fail (xsmp_server->priv != NULL);
+
+ IceFreeListenObjs (xsmp_server->priv->num_xsmp_sockets,
+ xsmp_server->priv->xsmp_sockets);
+
+ if (xsmp_server->priv->client_store != NULL) {
+ g_object_unref (xsmp_server->priv->client_store);
+ }
+
+ G_OBJECT_CLASS (gsm_xsmp_server_parent_class)->finalize (object);
+}
+
+GsmXsmpServer *
+gsm_xsmp_server_new (GsmStore *client_store)
+{
+ if (xsmp_server_object != NULL) {
+ g_object_ref (xsmp_server_object);
+ } else {
+ xsmp_server_object = g_object_new (GSM_TYPE_XSMP_SERVER,
+ "client-store", client_store,
+ NULL);
+
+ g_object_add_weak_pointer (xsmp_server_object,
+ (gpointer *) &xsmp_server_object);
+ }
+
+ return GSM_XSMP_SERVER (xsmp_server_object);
+}
diff --git a/mate-session/gsm-xsmp-server.h b/mate-session/gsm-xsmp-server.h
new file mode 100644
index 0000000..afefa4e
--- /dev/null
+++ b/mate-session/gsm-xsmp-server.h
@@ -0,0 +1,62 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+
+#ifndef __GSM_XSMP_SERVER_H
+#define __GSM_XSMP_SERVER_H
+
+#include <glib-object.h>
+
+#include "gsm-store.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GSM_TYPE_XSMP_SERVER (gsm_xsmp_server_get_type ())
+#define GSM_XSMP_SERVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSM_TYPE_XSMP_SERVER, GsmXsmpServer))
+#define GSM_XSMP_SERVER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSM_TYPE_XSMP_SERVER, GsmXsmpServerClass))
+#define GSM_IS_XSMP_SERVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSM_TYPE_XSMP_SERVER))
+#define GSM_IS_XSMP_SERVER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSM_TYPE_XSMP_SERVER))
+#define GSM_XSMP_SERVER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSM_TYPE_XSMP_SERVER, GsmXsmpServerClass))
+
+typedef struct GsmXsmpServerPrivate GsmXsmpServerPrivate;
+
+typedef struct
+{
+ GObject parent;
+ GsmXsmpServerPrivate *priv;
+} GsmXsmpServer;
+
+typedef struct
+{
+ GObjectClass parent_class;
+} GsmXsmpServerClass;
+
+GType gsm_xsmp_server_get_type (void);
+
+GsmXsmpServer * gsm_xsmp_server_new (GsmStore *client_store);
+void gsm_xsmp_server_start (GsmXsmpServer *server);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GSM_XSMP_SERVER_H */
diff --git a/mate-session/main.c b/mate-session/main.c
new file mode 100644
index 0000000..2d7dd64
--- /dev/null
+++ b/mate-session/main.c
@@ -0,0 +1,543 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2006 Novell, Inc.
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <config.h>
+
+#include <libintl.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include <glib/gi18n.h>
+#include <glib.h>
+#include <gtk/gtk.h>
+
+#include <dbus/dbus.h>
+#include <dbus/dbus-glib.h>
+#include <dbus/dbus-glib-bindings.h>
+#include <dbus/dbus-glib-lowlevel.h>
+
+#include "mdm-signal-handler.h"
+#include "mdm-log.h"
+
+#include "gsm-consolekit.h"
+#include "gsm-mateconf.h"
+#include "gsm-util.h"
+#include "gsm-manager.h"
+#include "gsm-xsmp-server.h"
+#include "gsm-store.h"
+
+#define GSM_MATECONF_DEFAULT_SESSION_KEY "/desktop/mate/session/default_session"
+#define GSM_MATECONF_REQUIRED_COMPONENTS_DIRECTORY "/desktop/mate/session/required_components"
+#define GSM_MATECONF_REQUIRED_COMPONENTS_LIST_KEY "/desktop/mate/session/required_components_list"
+
+#define GSM_DBUS_NAME "org.mate.SessionManager"
+
+#define IS_STRING_EMPTY(x) \
+ ((x) == NULL || (x)[0] == '\0')
+
+static gboolean failsafe = FALSE;
+static gboolean show_version = FALSE;
+static gboolean debug = FALSE;
+
+static void on_bus_name_lost(DBusGProxy* bus_proxy, const char* name, gpointer data)
+{
+ g_warning("Lost name on bus: %s, exiting", name);
+ exit(1);
+}
+
+static gboolean acquire_name_on_proxy(DBusGProxy* bus_proxy, const char* name)
+{
+ GError* error;
+ guint result;
+ gboolean res;
+ gboolean ret;
+
+ ret = FALSE;
+
+ if (bus_proxy == NULL)
+ {
+ goto out;
+ }
+
+ error = NULL;
+ res = dbus_g_proxy_call(bus_proxy, "RequestName", &error, G_TYPE_STRING, name, G_TYPE_UINT, 0, G_TYPE_INVALID, G_TYPE_UINT, &result, G_TYPE_INVALID);
+
+ if (! res)
+ {
+ if (error != NULL)
+ {
+ g_warning("Failed to acquire %s: %s", name, error->message);
+ g_error_free(error);
+ }
+ else
+ {
+ g_warning ("Failed to acquire %s", name);
+ }
+
+ goto out;
+ }
+
+ if (result != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER)
+ {
+ if (error != NULL)
+ {
+ g_warning("Failed to acquire %s: %s", name, error->message);
+ g_error_free(error);
+ }
+ else
+ {
+ g_warning("Failed to acquire %s", name);
+ }
+
+ goto out;
+ }
+
+ /* register for name lost */
+ dbus_g_proxy_add_signal(bus_proxy, "NameLost", G_TYPE_STRING, G_TYPE_INVALID);
+ dbus_g_proxy_connect_signal(bus_proxy, "NameLost", G_CALLBACK(on_bus_name_lost), NULL, NULL);
+
+ ret = TRUE;
+
+ out:
+
+ return ret;
+}
+
+static gboolean acquire_name(void)
+{
+ DBusGProxy* bus_proxy;
+ GError* error;
+ DBusGConnection* connection;
+
+ error = NULL;
+ connection = dbus_g_bus_get(DBUS_BUS_SESSION, &error);
+
+ if (connection == NULL)
+ {
+ gsm_util_init_error(TRUE, "Could not connect to session bus: %s", error->message);
+ /* not reached */
+ }
+
+ bus_proxy = dbus_g_proxy_new_for_name(connection, DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS);
+
+ if (!acquire_name_on_proxy(bus_proxy, GSM_DBUS_NAME))
+ {
+ gsm_util_init_error(TRUE, "%s", "Could not acquire name on session bus");
+ /* not reached */
+ }
+
+ g_object_unref(bus_proxy);
+
+ return TRUE;
+}
+
+/* This doesn't contain the required components, so we need to always
+ * call append_required_apps() after a call to append_default_apps(). */
+static void append_default_apps(GsmManager* manager, const char* default_session_key, char** autostart_dirs)
+{
+ GSList* default_apps;
+ GSList* a;
+ MateConfClient* client;
+
+ g_debug("main: *** Adding default apps");
+
+ g_assert(default_session_key != NULL);
+ g_assert(autostart_dirs != NULL);
+
+ client = mateconf_client_get_default();
+ default_apps = mateconf_client_get_list(client, default_session_key, MATECONF_VALUE_STRING, NULL);
+ g_object_unref(client);
+
+ for (a = default_apps; a; a = a->next)
+ {
+ char* app_path;
+
+ if (IS_STRING_EMPTY((char*) a->data))
+ {
+ continue;
+ }
+
+ app_path = gsm_util_find_desktop_file_for_app_name(a->data, autostart_dirs);
+
+ if (app_path != NULL)
+ {
+ gsm_manager_add_autostart_app(manager, app_path, NULL);
+ g_free(app_path);
+ }
+ }
+
+ g_slist_foreach(default_apps, (GFunc) g_free, NULL);
+ g_slist_free(default_apps);
+}
+
+static void append_required_apps(GsmManager* manager)
+{
+ GSList* required_components;
+ GSList* r;
+ MateConfClient* client;
+
+ g_debug("main: *** Adding required apps");
+
+ client = mateconf_client_get_default();
+ required_components = mateconf_client_get_list(client, GSM_MATECONF_REQUIRED_COMPONENTS_LIST_KEY, MATECONF_VALUE_STRING, NULL);
+
+ if (required_components == NULL)
+ {
+ g_warning("No required applications specified");
+ }
+
+ for (r = required_components; r != NULL; r = r->next)
+ {
+ char* path;
+ char* default_provider;
+ const char* component;
+
+ if (IS_STRING_EMPTY((char*) r->data))
+ {
+ continue;
+ }
+
+ component = r->data;
+
+ path = g_strdup_printf("%s/%s", GSM_MATECONF_REQUIRED_COMPONENTS_DIRECTORY, component);
+
+ default_provider = mateconf_client_get_string(client, path, NULL);
+
+ g_debug ("main: %s looking for component: '%s'", path, default_provider);
+
+ if (default_provider != NULL)
+ {
+ char* app_path;
+
+ app_path = gsm_util_find_desktop_file_for_app_name(default_provider, NULL);
+
+ if (app_path != NULL)
+ {
+ gsm_manager_add_autostart_app(manager, app_path, component);
+ }
+ else
+ {
+ g_warning("Unable to find provider '%s' of required component '%s'", default_provider, component);
+ }
+
+ g_free(app_path);
+ }
+
+ g_free(default_provider);
+ g_free(path);
+ }
+
+ g_debug("main: *** Done adding required apps");
+
+ g_slist_foreach(required_components, (GFunc) g_free, NULL);
+ g_slist_free(required_components);
+
+ g_object_unref(client);
+}
+
+static void maybe_load_saved_session_apps(GsmManager* manager)
+{
+ GsmConsolekit* consolekit;
+ char* session_type;
+
+ consolekit = gsm_get_consolekit();
+ session_type = gsm_consolekit_get_current_session_type(consolekit);
+
+ if (g_strcmp0 (session_type, GSM_CONSOLEKIT_SESSION_TYPE_LOGIN_WINDOW) != 0)
+ {
+ gsm_manager_add_autostart_apps_from_dir(manager, gsm_util_get_saved_session_dir());
+ }
+
+ g_object_unref(consolekit);
+ g_free(session_type);
+}
+
+static void load_standard_apps (GsmManager* manager, const char* default_session_key)
+{
+ char** autostart_dirs;
+ int i;
+
+ autostart_dirs = gsm_util_get_autostart_dirs();
+
+ if (!failsafe)
+ {
+ maybe_load_saved_session_apps(manager);
+
+ for (i = 0; autostart_dirs[i]; i++)
+ {
+ gsm_manager_add_autostart_apps_from_dir(manager, autostart_dirs[i]);
+ }
+ }
+
+ /* We do this at the end in case a saved session contains an
+ * application that already provides one of the components. */
+ append_default_apps(manager, default_session_key, autostart_dirs);
+ append_required_apps(manager);
+
+ g_strfreev(autostart_dirs);
+}
+
+static void load_override_apps(GsmManager* manager, char** override_autostart_dirs)
+{
+ int i;
+
+ for (i = 0; override_autostart_dirs[i]; i++)
+ {
+ gsm_manager_add_autostart_apps_from_dir(manager, override_autostart_dirs[i]);
+ }
+}
+
+static gboolean signal_cb(int signo, gpointer data)
+{
+ int ret;
+ GsmManager* manager;
+
+ g_debug("Got callback for signal %d", signo);
+
+ ret = TRUE;
+
+ switch (signo)
+ {
+ case SIGFPE:
+ case SIGPIPE:
+ /* let the fatal signals interrupt us */
+ g_debug ("Caught signal %d, shutting down abnormally.", signo);
+ ret = FALSE;
+ break;
+ case SIGINT:
+ case SIGTERM:
+ manager = (GsmManager*) data;
+ gsm_manager_logout(manager, GSM_MANAGER_LOGOUT_MODE_FORCE, NULL);
+
+ /* let the fatal signals interrupt us */
+ g_debug("Caught signal %d, shutting down normally.", signo);
+ ret = TRUE;
+ break;
+ case SIGHUP:
+ g_debug("Got HUP signal");
+ ret = TRUE;
+ break;
+ case SIGUSR1:
+ g_debug("Got USR1 signal");
+ ret = TRUE;
+ mdm_log_toggle_debug();
+ break;
+ default:
+ g_debug("Caught unhandled signal %d", signo);
+ ret = TRUE;
+
+ break;
+ }
+
+ return ret;
+}
+
+static void shutdown_cb(gpointer data)
+{
+ GsmManager* manager = (GsmManager*) data;
+ g_debug("Calling shutdown callback function");
+
+ /*
+ * When the signal handler gets a shutdown signal, it calls
+ * this function to inform GsmManager to not restart
+ * applications in the off chance a handler is already queued
+ * to dispatch following the below call to gtk_main_quit.
+ */
+ gsm_manager_set_phase(manager, GSM_MANAGER_PHASE_EXIT);
+
+ gtk_main_quit();
+}
+
+static gboolean require_dbus_session(int argc, char** argv, GError** error)
+{
+ char** new_argv;
+ int i;
+
+ if (g_getenv("DBUS_SESSION_BUS_ADDRESS"))
+ {
+ return TRUE;
+ }
+
+ /* Just a sanity check to prevent infinite recursion if
+ * dbus-launch fails to set DBUS_SESSION_BUS_ADDRESS
+ */
+ g_return_val_if_fail(!g_str_has_prefix(argv[0], "dbus-launch"), TRUE);
+
+ /* +2 for our new arguments, +1 for NULL */
+ new_argv = g_malloc(argc + 3 * sizeof (*argv));
+
+ new_argv[0] = "dbus-launch";
+ new_argv[1] = "--exit-with-session";
+
+ for (i = 0; i < argc; i++)
+ {
+ new_argv[i + 2] = argv[i];
+ }
+
+ new_argv[i + 2] = NULL;
+
+ if (!execvp("dbus-launch", new_argv))
+ {
+ g_set_error(error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED, "No session bus and could not exec dbus-launch: %s", g_strerror(errno));
+ return FALSE;
+ }
+
+ /* Should not be reached */
+ return TRUE;
+}
+
+int main(int argc, char** argv)
+{
+ struct sigaction sa;
+ GError* error;
+ char* display_str;
+ GsmManager* manager;
+ GsmStore* client_store;
+ GsmXsmpServer* xsmp_server;
+ MdmSignalHandler* signal_handler;
+ static char** override_autostart_dirs = NULL;
+ static char* default_session_key = NULL;
+
+ static GOptionEntry entries[] = {
+ {"autostart", 'a', 0, G_OPTION_ARG_STRING_ARRAY, &override_autostart_dirs, N_("Override standard autostart directories"), NULL},
+ {"default-session-key", 0, 0, G_OPTION_ARG_STRING, &default_session_key, N_("MateConf key used to look up default session"), NULL},
+ {"debug", 0, 0, G_OPTION_ARG_NONE, &debug, N_("Enable debugging code"), NULL},
+ {"failsafe", 'f', 0, G_OPTION_ARG_NONE, &failsafe, N_("Do not load user-specified applications"), NULL},
+ {"version", 0, 0, G_OPTION_ARG_NONE, &show_version, N_("Version of this application"), NULL},
+ {NULL, 0, 0, 0, NULL, NULL, NULL }
+ };
+
+ /* Make sure that we have a session bus */
+ if (!require_dbus_session(argc, argv, &error))
+ {
+ gsm_util_init_error(TRUE, "%s", error->message);
+ }
+
+ bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR);
+ bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
+ textdomain(GETTEXT_PACKAGE);
+
+ sa.sa_handler = SIG_IGN;
+ sa.sa_flags = 0;
+ sigemptyset(&sa.sa_mask);
+ sigaction(SIGPIPE, &sa, 0);
+
+ error = NULL;
+ gtk_init_with_args(&argc, &argv, (char*) _(" - the MATE session manager"), entries, GETTEXT_PACKAGE, &error);
+
+ if (error != NULL)
+ {
+ g_warning("%s", error->message);
+ exit(1);
+ }
+
+ if (show_version)
+ {
+ g_print("%s %s\n", argv [0], VERSION);
+ exit(1);
+ }
+
+ mdm_log_init();
+ mdm_log_set_debug(debug);
+
+ /* Set DISPLAY explicitly for all our children, in case --display
+ * was specified on the command line.
+ */
+ display_str = gdk_get_display();
+ gsm_util_setenv("DISPLAY", display_str);
+ g_free(display_str);
+
+ /* Some third-party programs rely on MATE_DESKTOP_SESSION_ID to
+ * detect if MATE is running. We keep this for compatibility reasons.
+ */
+ gsm_util_setenv("MATE_DESKTOP_SESSION_ID", "this-is-deprecated");
+
+ client_store = gsm_store_new();
+
+
+ /* Start up mateconfd if not already running. */
+ gsm_mateconf_init();
+
+ xsmp_server = gsm_xsmp_server_new(client_store);
+
+ /* Now make sure they succeeded. (They'll call
+ * gsm_util_init_error() if they failed.)
+ */
+ gsm_mateconf_check();
+ acquire_name();
+
+ manager = gsm_manager_new(client_store, failsafe);
+
+ signal_handler = mdm_signal_handler_new();
+ mdm_signal_handler_add_fatal(signal_handler);
+ mdm_signal_handler_add(signal_handler, SIGFPE, signal_cb, NULL);
+ mdm_signal_handler_add(signal_handler, SIGHUP, signal_cb, NULL);
+ mdm_signal_handler_add(signal_handler, SIGUSR1, signal_cb, NULL);
+ mdm_signal_handler_add(signal_handler, SIGTERM, signal_cb, manager);
+ mdm_signal_handler_add(signal_handler, SIGINT, signal_cb, manager);
+ mdm_signal_handler_set_fatal_func(signal_handler, shutdown_cb, manager);
+
+ if (override_autostart_dirs != NULL)
+ {
+ load_override_apps(manager, override_autostart_dirs);
+ }
+ else
+ {
+ if (!IS_STRING_EMPTY(default_session_key))
+ {
+ load_standard_apps(manager, default_session_key);
+ }
+ else
+ {
+ load_standard_apps(manager, GSM_MATECONF_DEFAULT_SESSION_KEY);
+ }
+ }
+
+ gsm_xsmp_server_start(xsmp_server);
+ gsm_manager_start(manager);
+
+ gtk_main();
+
+ if (xsmp_server != NULL)
+ {
+ g_object_unref(xsmp_server);
+ }
+
+ if (manager != NULL)
+ {
+ g_debug("Unreffing manager");
+ g_object_unref(manager);
+ }
+
+ if (client_store != NULL)
+ {
+ g_object_unref(client_store);
+ }
+
+ gsm_mateconf_shutdown();
+
+ mdm_log_shutdown();
+
+ return 0;
+}
diff --git a/mate-session/mdm-log.c b/mate-session/mdm-log.c
new file mode 100644
index 0000000..ba384bb
--- /dev/null
+++ b/mate-session/mdm-log.c
@@ -0,0 +1,206 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Authors: William Jon McCann <[email protected]>
+ *
+ */
+
+#include "config.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+#include <signal.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <syslog.h>
+
+#include <glib.h>
+#include <glib/gstdio.h>
+
+#include "mdm-log.h"
+
+static gboolean initialized = FALSE;
+static int syslog_levels = (G_LOG_LEVEL_ERROR | G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING);
+
+static void
+log_level_to_priority_and_prefix (GLogLevelFlags log_level,
+ int *priorityp,
+ const char **prefixp)
+{
+ int priority;
+ const char *prefix;
+
+ /* Process the message prefix and priority */
+ switch (log_level & G_LOG_LEVEL_MASK) {
+ case G_LOG_FLAG_FATAL:
+ priority = LOG_EMERG;
+ prefix = "FATAL";
+ break;
+ case G_LOG_LEVEL_ERROR:
+ priority = LOG_ERR;
+ prefix = "ERROR";
+ break;
+ case G_LOG_LEVEL_CRITICAL:
+ priority = LOG_CRIT;
+ prefix = "CRITICAL";
+ break;
+ case G_LOG_LEVEL_WARNING:
+ priority = LOG_WARNING;
+ prefix = "WARNING";
+ break;
+ case G_LOG_LEVEL_MESSAGE:
+ priority = LOG_NOTICE;
+ prefix = "MESSAGE";
+ break;
+ case G_LOG_LEVEL_INFO:
+ priority = LOG_INFO;
+ prefix = "INFO";
+ break;
+ case G_LOG_LEVEL_DEBUG:
+ /* if debug was requested then bump this up to ERROR
+ * to ensure it is seen in a log */
+ if (syslog_levels & G_LOG_LEVEL_DEBUG) {
+ priority = LOG_WARNING;
+ prefix = "DEBUG(+)";
+ } else {
+ priority = LOG_DEBUG;
+ prefix = "DEBUG";
+ }
+ break;
+ default:
+ priority = LOG_DEBUG;
+ prefix = "UNKNOWN";
+ break;
+ }
+
+ if (priorityp != NULL) {
+ *priorityp = priority;
+ }
+ if (prefixp != NULL) {
+ *prefixp = prefix;
+ }
+}
+
+void
+mdm_log_default_handler (const gchar *log_domain,
+ GLogLevelFlags log_level,
+ const gchar *message,
+ gpointer unused_data)
+{
+ GString *gstring;
+ int priority;
+ const char *level_prefix;
+ char *string;
+ gboolean do_log;
+ gboolean is_fatal;
+
+ is_fatal = (log_level & G_LOG_FLAG_FATAL) != 0;
+
+ do_log = (log_level & syslog_levels);
+ if (! do_log) {
+ return;
+ }
+
+ if (! initialized) {
+ mdm_log_init ();
+ }
+
+ log_level_to_priority_and_prefix (log_level,
+ &priority,
+ &level_prefix);
+
+ gstring = g_string_new (NULL);
+
+ if (log_domain != NULL) {
+ g_string_append (gstring, log_domain);
+ g_string_append_c (gstring, '-');
+ }
+ g_string_append (gstring, level_prefix);
+
+ g_string_append (gstring, ": ");
+ if (message == NULL) {
+ g_string_append (gstring, "(NULL) message");
+ } else {
+ g_string_append (gstring, message);
+ }
+ if (is_fatal) {
+ g_string_append (gstring, "\naborting...\n");
+ } else {
+ g_string_append (gstring, "\n");
+ }
+
+ string = g_string_free (gstring, FALSE);
+
+ syslog (priority, "%s", string);
+
+ g_free (string);
+}
+
+void
+mdm_log_toggle_debug (void)
+{
+ if (syslog_levels & G_LOG_LEVEL_DEBUG) {
+ g_debug ("Debugging disabled");
+ syslog_levels &= ~G_LOG_LEVEL_DEBUG;
+ } else {
+ syslog_levels |= G_LOG_LEVEL_DEBUG;
+ g_debug ("Debugging enabled");
+ }
+}
+
+void
+mdm_log_set_debug (gboolean debug)
+{
+ if (debug) {
+ syslog_levels |= G_LOG_LEVEL_DEBUG;
+ g_debug ("Enabling debugging");
+ } else {
+ g_debug ("Disabling debugging");
+ syslog_levels &= ~G_LOG_LEVEL_DEBUG;
+ }
+}
+
+void
+mdm_log_init (void)
+{
+ const char *prg_name;
+ int options;
+
+ g_log_set_default_handler (mdm_log_default_handler, NULL);
+
+ prg_name = g_get_prgname ();
+
+ options = LOG_PID;
+#ifdef LOG_PERROR
+ options |= LOG_PERROR;
+#endif
+
+ openlog (prg_name, options, LOG_DAEMON);
+
+ initialized = TRUE;
+}
+
+void
+mdm_log_shutdown (void)
+{
+ closelog ();
+ initialized = FALSE;
+}
+
diff --git a/mate-session/mdm-log.h b/mate-session/mdm-log.h
new file mode 100644
index 0000000..589f058
--- /dev/null
+++ b/mate-session/mdm-log.h
@@ -0,0 +1,55 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Authors: William Jon McCann <[email protected]>
+ *
+ */
+
+#ifndef __MDM_LOG_H
+#define __MDM_LOG_H
+
+#include <stdarg.h>
+#include <glib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void mdm_log_default_handler (const gchar *log_domain,
+ GLogLevelFlags log_level,
+ const gchar *message,
+ gpointer unused_data);
+void mdm_log_set_debug (gboolean debug);
+void mdm_log_toggle_debug (void);
+void mdm_log_init (void);
+void mdm_log_shutdown (void);
+
+/* compatibility */
+#define mdm_fail g_critical
+#define mdm_error g_warning
+#define mdm_info g_message
+#define mdm_debug g_debug
+
+#define mdm_assert g_assert
+#define mdm_assert_not_reached g_assert_not_reached
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MDM_LOG_H */
diff --git a/mate-session/mdm-signal-handler.c b/mate-session/mdm-signal-handler.c
new file mode 100644
index 0000000..46a835b
--- /dev/null
+++ b/mate-session/mdm-signal-handler.c
@@ -0,0 +1,553 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2006 Red Hat, Inc.
+ * Copyright (C) 2007 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <string.h>
+#include <signal.h>
+#if HAVE_EXECINFO_H
+ #include <execinfo.h>
+#endif
+#include <syslog.h>
+#include <sys/wait.h>
+#include <sys/stat.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <glib/gstdio.h>
+#include <glib-object.h>
+
+#include "mdm-signal-handler.h"
+
+#define MDM_SIGNAL_HANDLER_GET_PRIVATE(o) \
+ (G_TYPE_INSTANCE_GET_PRIVATE((o), MDM_TYPE_SIGNAL_HANDLER, MdmSignalHandlerPrivate))
+
+typedef struct {
+ int signal_number;
+ MdmSignalHandlerFunc func;
+ gpointer data;
+ guint id;
+} CallbackData;
+
+struct MdmSignalHandlerPrivate {
+ GHashTable* lookup;
+ GHashTable* id_lookup;
+ GHashTable* action_lookup;
+ guint next_id;
+ GDestroyNotify fatal_func;
+ gpointer fatal_data;
+};
+
+static void mdm_signal_handler_class_init(MdmSignalHandlerClass* klass);
+static void mdm_signal_handler_init(MdmSignalHandler* signal_handler);
+static void mdm_signal_handler_finalize(GObject* object);
+
+static gpointer signal_handler_object = NULL;
+static int signal_pipes[2];
+static int signals_blocked = 0;
+static sigset_t signals_block_mask;
+static sigset_t signals_oldmask;
+
+G_DEFINE_TYPE(MdmSignalHandler, mdm_signal_handler, G_TYPE_OBJECT)
+
+static void block_signals_push(void)
+{
+ signals_blocked++;
+
+ if (signals_blocked == 1)
+ {
+ /* Set signal mask */
+ sigemptyset(&signals_block_mask);
+ sigfillset(&signals_block_mask);
+ sigprocmask(SIG_BLOCK, &signals_block_mask, &signals_oldmask);
+ }
+}
+
+static void block_signals_pop(void)
+{
+ signals_blocked--;
+
+ if (signals_blocked == 0)
+ {
+ /* Set signal mask */
+ sigprocmask(SIG_SETMASK, &signals_oldmask, NULL);
+ }
+}
+
+static gboolean signal_io_watch(GIOChannel* ioc, GIOCondition condition, MdmSignalHandler* handler)
+{
+ char buf[256];
+ gboolean is_fatal;
+ gsize bytes_read;
+ int i;
+
+ block_signals_push();
+
+ g_io_channel_read_chars(ioc, buf, sizeof(buf), &bytes_read, NULL);
+
+ is_fatal = FALSE;
+
+ for (i = 0; i < bytes_read; i++)
+ {
+ int signum;
+ GSList* handlers;
+ GSList* l;
+
+ signum = (gint32) buf[i];
+
+ g_debug("MdmSignalHandler: handling signal %d", signum);
+ handlers = g_hash_table_lookup(handler->priv->lookup, GINT_TO_POINTER(signum));
+
+ g_debug("MdmSignalHandler: Found %u callbacks", g_slist_length(handlers));
+
+ for (l = handlers; l != NULL; l = l->next)
+ {
+ gboolean res;
+ CallbackData* data;
+
+ data = g_hash_table_lookup(handler->priv->id_lookup, l->data);
+
+ if (data != NULL)
+ {
+ if (data->func != NULL)
+ {
+ g_debug("MdmSignalHandler: running %d handler: %p", signum, data->func);
+
+ res = data->func(signum, data->data);
+
+ if (!res)
+ {
+ is_fatal = TRUE;
+ }
+ }
+ }
+ }
+ }
+
+ block_signals_pop();
+
+ if (is_fatal)
+ {
+ if (handler->priv->fatal_func != NULL)
+ {
+ g_debug("MdmSignalHandler: Caught termination signal - calling fatal func");
+ handler->priv->fatal_func(handler->priv->fatal_data);
+ }
+ else
+ {
+ g_debug("MdmSignalHandler: Caught termination signal - exiting");
+ exit (1);
+ }
+
+ return FALSE;
+ }
+
+ g_debug("MdmSignalHandler: Done handling signals");
+
+ return TRUE;
+}
+
+static void fallback_get_backtrace(void)
+{
+ #if HAVE_EXECINFO_H
+ void* frames[64];
+ size_t size;
+ char** strings;
+ size_t i;
+
+ size = backtrace(frames, G_N_ELEMENTS(frames));
+
+ if ((strings = backtrace_symbols(frames, size)))
+ {
+ syslog(LOG_CRIT, "******************* START ********************************");
+
+ for (i = 0; i < size; i++)
+ {
+ syslog(LOG_CRIT, "Frame %zd: %s", i, strings[i]);
+ }
+
+ free(strings);
+ syslog(LOG_CRIT, "******************* END **********************************");
+ }
+ else
+ {
+ #endif
+ g_warning ("MDM crashed, but symbols couldn't be retrieved.");
+ #if HAVE_EXECINFO_H
+ }
+ #endif
+}
+
+static gboolean crashlogger_get_backtrace(void)
+{
+ gboolean success = FALSE;
+ int pid;
+
+ pid = fork();
+
+ if (pid > 0)
+ {
+ /* Wait for the child to finish */
+ int estatus;
+
+ if (waitpid(pid, &estatus, 0) != -1)
+ {
+ /* Only succeed if the crashlogger succeeded */
+ if (WIFEXITED(estatus) && (WEXITSTATUS(estatus) == 0))
+ {
+ success = TRUE;
+ }
+ }
+ }
+ else if (pid == 0)
+ {
+ /* Child process */
+ execl(LIBEXECDIR "/mdm-crash-logger", LIBEXECDIR "/mdm-crash-logger", NULL);
+ }
+
+ return success;
+}
+
+
+static void mdm_signal_handler_backtrace(void)
+{
+ struct stat s;
+ gboolean fallback = TRUE;
+
+ /* Try to use gdb via mdm-crash-logger if it exists, since
+ * we get much better information out of it. Otherwise
+ * fall back to execinfo.
+ */
+ if (g_stat(LIBEXECDIR "/mdm-crash-logger", &s) == 0)
+ {
+ fallback = crashlogger_get_backtrace() ? FALSE : TRUE;
+ }
+
+ if (fallback)
+ {
+ fallback_get_backtrace();
+ }
+}
+
+static void signal_handler(int signo)
+{
+ static int in_fatal = 0;
+ int ignore;
+ guchar signo_byte = signo;
+
+ /* avoid loops */
+ if (in_fatal > 0)
+ {
+ return;
+ }
+
+ ++in_fatal;
+
+ switch (signo)
+ {
+ case SIGSEGV:
+ case SIGBUS:
+ case SIGILL:
+ case SIGABRT:
+ case SIGTRAP:
+ mdm_signal_handler_backtrace();
+ exit(1);
+ break;
+ case SIGFPE:
+ case SIGPIPE:
+ /* let the fatal signals interrupt us */
+ --in_fatal;
+ mdm_signal_handler_backtrace();
+ ignore = write(signal_pipes [1], &signo_byte, 1);
+ break;
+ default:
+ --in_fatal;
+ ignore = write(signal_pipes [1], &signo_byte, 1);
+ break;
+ }
+}
+
+static void catch_signal(MdmSignalHandler *handler, int signal_number)
+{
+ struct sigaction action;
+ struct sigaction* old_action;
+
+ g_debug("MdmSignalHandler: Registering for %d signals", signal_number);
+
+ action.sa_handler = signal_handler;
+ sigemptyset(&action.sa_mask);
+ action.sa_flags = 0;
+
+ old_action = g_new0(struct sigaction, 1);
+
+ sigaction(signal_number, &action, old_action);
+
+ g_hash_table_insert(handler->priv->action_lookup, GINT_TO_POINTER(signal_number), old_action);
+}
+
+static void uncatch_signal(MdmSignalHandler* handler, int signal_number)
+{
+ struct sigaction* old_action;
+
+ g_debug("MdmSignalHandler: Unregistering for %d signals", signal_number);
+
+ old_action = g_hash_table_lookup(handler->priv->action_lookup, GINT_TO_POINTER(signal_number));
+ g_hash_table_remove(handler->priv->action_lookup, GINT_TO_POINTER(signal_number));
+
+ sigaction(signal_number, old_action, NULL);
+
+ g_free(old_action);
+}
+
+guint mdm_signal_handler_add(MdmSignalHandler* handler, int signal_number, MdmSignalHandlerFunc callback, gpointer data)
+{
+ CallbackData* cdata;
+ GSList* list;
+
+ g_return_val_if_fail(MDM_IS_SIGNAL_HANDLER(handler), 0);
+
+ cdata = g_new0(CallbackData, 1);
+ cdata->signal_number = signal_number;
+ cdata->func = callback;
+ cdata->data = data;
+ cdata->id = handler->priv->next_id++;
+
+ g_debug("MdmSignalHandler: Adding handler %u: signum=%d %p", cdata->id, cdata->signal_number, cdata->func);
+
+ if (g_hash_table_lookup(handler->priv->action_lookup, GINT_TO_POINTER(signal_number)) == NULL)
+ {
+ catch_signal(handler, signal_number);
+ }
+
+ /* ID lookup owns the CallbackData */
+ g_hash_table_insert(handler->priv->id_lookup, GUINT_TO_POINTER(cdata->id), cdata);
+
+ list = g_hash_table_lookup(handler->priv->lookup, GINT_TO_POINTER(signal_number));
+ list = g_slist_prepend(list, GUINT_TO_POINTER (cdata->id));
+
+ g_hash_table_insert(handler->priv->lookup, GINT_TO_POINTER(signal_number), list);
+
+ return cdata->id;
+}
+
+void mdm_signal_handler_add_fatal(MdmSignalHandler* handler)
+{
+ g_return_if_fail(MDM_IS_SIGNAL_HANDLER(handler));
+
+ mdm_signal_handler_add(handler, SIGILL, NULL, NULL);
+ mdm_signal_handler_add(handler, SIGBUS, NULL, NULL);
+ mdm_signal_handler_add(handler, SIGSEGV, NULL, NULL);
+ mdm_signal_handler_add(handler, SIGABRT, NULL, NULL);
+ mdm_signal_handler_add(handler, SIGTRAP, NULL, NULL);
+}
+
+static void callback_data_free(CallbackData* d)
+{
+ g_free(d);
+}
+
+static void mdm_signal_handler_remove_and_free_data(MdmSignalHandler* handler, CallbackData* cdata)
+{
+ GSList* list;
+
+ g_return_if_fail(MDM_IS_SIGNAL_HANDLER(handler));
+
+ list = g_hash_table_lookup(handler->priv->lookup, GINT_TO_POINTER(cdata->signal_number));
+ list = g_slist_remove_all(list, GUINT_TO_POINTER(cdata->id));
+
+ if (list == NULL)
+ {
+ uncatch_signal(handler, cdata->signal_number);
+ }
+
+ g_debug("MdmSignalHandler: Removing handler %u: signum=%d %p", cdata->signal_number, cdata->id, cdata->func);
+ /* put changed list back in */
+ g_hash_table_insert(handler->priv->lookup, GINT_TO_POINTER(cdata->signal_number), list);
+
+ g_hash_table_remove(handler->priv->id_lookup, GUINT_TO_POINTER(cdata->id));
+}
+
+void mdm_signal_handler_remove(MdmSignalHandler* handler, guint id)
+{
+ CallbackData* found;
+
+ g_return_if_fail(MDM_IS_SIGNAL_HANDLER(handler));
+
+ found = g_hash_table_lookup(handler->priv->id_lookup, GUINT_TO_POINTER(id));
+
+ if (found != NULL)
+ {
+ mdm_signal_handler_remove_and_free_data(handler, found);
+ found = NULL;
+ }
+}
+
+static CallbackData* find_callback_data_by_func(MdmSignalHandler* handler, guint signal_number, MdmSignalHandlerFunc callback, gpointer data)
+{
+ GSList* list;
+ GSList* l;
+ CallbackData* found;
+
+ found = NULL;
+
+ list = g_hash_table_lookup(handler->priv->lookup, GINT_TO_POINTER(signal_number));
+
+ for (l = list; l != NULL; l = l->next)
+ {
+ guint id;
+ CallbackData* d;
+
+ id = GPOINTER_TO_UINT(l->data);
+
+ d = g_hash_table_lookup(handler->priv->id_lookup, GUINT_TO_POINTER (id));
+
+ if (d != NULL && d->func == callback && d->data == data)
+ {
+ found = d;
+ break;
+ }
+ }
+
+ return found;
+}
+
+void mdm_signal_handler_remove_func(MdmSignalHandler* handler, guint signal_number, MdmSignalHandlerFunc callback, gpointer data)
+{
+ CallbackData* found;
+
+ g_return_if_fail(MDM_IS_SIGNAL_HANDLER(handler));
+
+ found = find_callback_data_by_func(handler, signal_number, callback, data);
+
+ if (found != NULL)
+ {
+ mdm_signal_handler_remove_and_free_data(handler, found);
+ found = NULL;
+ }
+
+ /* FIXME: once all handlers are removed deregister signum handler */
+}
+
+static void mdm_signal_handler_class_init(MdmSignalHandlerClass* klass)
+{
+ GObjectClass* object_class = G_OBJECT_CLASS(klass);
+
+ object_class->finalize = mdm_signal_handler_finalize;
+
+ g_type_class_add_private(klass, sizeof(MdmSignalHandlerPrivate));
+}
+
+static void signal_list_free(GSList *list)
+{
+ g_slist_free(list);
+}
+
+void mdm_signal_handler_set_fatal_func(MdmSignalHandler* handler, MdmShutdownHandlerFunc func, gpointer user_data)
+{
+ g_return_if_fail(MDM_IS_SIGNAL_HANDLER(handler));
+
+ handler->priv->fatal_func = func;
+ handler->priv->fatal_data = user_data;
+}
+
+static void mdm_signal_handler_init(MdmSignalHandler* handler)
+{
+ GIOChannel* ioc;
+
+ handler->priv = MDM_SIGNAL_HANDLER_GET_PRIVATE(handler);
+
+ handler->priv->next_id = 1;
+
+ handler->priv->lookup = g_hash_table_new(NULL, NULL);
+ handler->priv->id_lookup = g_hash_table_new(NULL, NULL);
+ handler->priv->action_lookup = g_hash_table_new(NULL, NULL);
+
+ if (pipe(signal_pipes) == -1)
+ {
+ g_error ("Could not create pipe() for signal handling");
+ }
+
+ ioc = g_io_channel_unix_new(signal_pipes[0]);
+ g_io_channel_set_flags(ioc, G_IO_FLAG_NONBLOCK, NULL);
+ g_io_add_watch_full(ioc, G_PRIORITY_HIGH, G_IO_IN, (GIOFunc) signal_io_watch, handler, NULL);
+ g_io_channel_set_close_on_unref(ioc, TRUE);
+ g_io_channel_unref(ioc);
+}
+
+static void mdm_signal_handler_finalize(GObject* object)
+{
+ MdmSignalHandler* handler;
+ GList* l;
+
+ g_return_if_fail(object != NULL);
+ g_return_if_fail(MDM_IS_SIGNAL_HANDLER(object));
+
+ handler = MDM_SIGNAL_HANDLER(object);
+
+ g_debug("MdmSignalHandler: Finalizing signal handler");
+
+ g_return_if_fail(handler->priv != NULL);
+
+ for (l = g_hash_table_get_values(handler->priv->lookup); l != NULL; l = l->next)
+ {
+ signal_list_free((GSList*) l->data);
+ }
+
+ g_hash_table_destroy(handler->priv->lookup);
+
+ for (l = g_hash_table_get_values(handler->priv->id_lookup); l != NULL; l = l->next)
+ {
+ callback_data_free((CallbackData*) l->data);
+ }
+
+ g_hash_table_destroy(handler->priv->id_lookup);
+
+ for (l = g_hash_table_get_values(handler->priv->action_lookup); l != NULL; l = l->next)
+ {
+ g_free(l->data);
+ }
+
+ g_hash_table_destroy(handler->priv->action_lookup);
+
+ close(signal_pipes[0]);
+ close(signal_pipes[1]);
+
+ G_OBJECT_CLASS(mdm_signal_handler_parent_class)->finalize(object);
+}
+
+MdmSignalHandler* mdm_signal_handler_new(void)
+{
+ if (signal_handler_object != NULL)
+ {
+ g_object_ref(signal_handler_object);
+ }
+ else
+ {
+ signal_handler_object = g_object_new(MDM_TYPE_SIGNAL_HANDLER, NULL);
+ g_object_add_weak_pointer(signal_handler_object, (gpointer*) &signal_handler_object);
+ }
+
+ return MDM_SIGNAL_HANDLER(signal_handler_object);
+}
diff --git a/mate-session/mdm-signal-handler.h b/mate-session/mdm-signal-handler.h
new file mode 100644
index 0000000..8ca6e74
--- /dev/null
+++ b/mate-session/mdm-signal-handler.h
@@ -0,0 +1,78 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007 William Jon McCann <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#ifndef __MDM_SIGNAL_HANDLER_H
+#define __MDM_SIGNAL_HANDLER_H
+
+#include <glib-object.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define MDM_TYPE_SIGNAL_HANDLER \
+ (mdm_signal_handler_get_type())
+
+#define MDM_SIGNAL_HANDLER(o) \
+ (G_TYPE_CHECK_INSTANCE_CAST((o), MDM_TYPE_SIGNAL_HANDLER, MdmSignalHandler))
+
+#define MDM_SIGNAL_HANDLER_CLASS(k) \
+ (G_TYPE_CHECK_CLASS_CAST((k), MDM_TYPE_SIGNAL_HANDLER, MdmSignalHandlerClass))
+
+#define MDM_IS_SIGNAL_HANDLER(o) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((o), MDM_TYPE_SIGNAL_HANDLER))
+
+#define MDM_IS_SIGNAL_HANDLER_CLASS(k) \
+ (G_TYPE_CHECK_CLASS_TYPE((k), MDM_TYPE_SIGNAL_HANDLER))
+
+#define MDM_SIGNAL_HANDLER_GET_CLASS(o) \
+ (G_TYPE_INSTANCE_GET_CLASS((o), MDM_TYPE_SIGNAL_HANDLER, MdmSignalHandlerClass))
+
+
+typedef gboolean (*MdmSignalHandlerFunc)(int signal, gpointer data);
+
+typedef void (*MdmShutdownHandlerFunc)(gpointer data);
+
+typedef struct MdmSignalHandlerPrivate MdmSignalHandlerPrivate;
+
+typedef struct {
+ GObject parent;
+ MdmSignalHandlerPrivate* priv;
+} MdmSignalHandler;
+
+typedef struct {
+ GObjectClass parent_class;
+} MdmSignalHandlerClass;
+
+GType mdm_signal_handler_get_type(void);
+
+MdmSignalHandler* mdm_signal_handler_new(void);
+void mdm_signal_handler_set_fatal_func(MdmSignalHandler* handler, MdmShutdownHandlerFunc func, gpointer user_data);
+
+void mdm_signal_handler_add_fatal(MdmSignalHandler* handler);
+guint mdm_signal_handler_add(MdmSignalHandler* handler, int signal_number, MdmSignalHandlerFunc callback, gpointer data);
+void mdm_signal_handler_remove(MdmSignalHandler* handler, guint id);
+void mdm_signal_handler_remove_func(MdmSignalHandler* handler, guint signal_number, MdmSignalHandlerFunc callback, gpointer data);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MDM_SIGNAL_HANDLER_H */
diff --git a/mate-session/mdm.c b/mate-session/mdm.c
new file mode 100644
index 0000000..e6e2eac
--- /dev/null
+++ b/mate-session/mdm.c
@@ -0,0 +1,496 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2005 Raffaele Sandrini
+ * Copyright (C) 2005 Red Hat, Inc.
+ * Copyright (C) 2002, 2003 George Lebl
+ * Copyright (C) 2001 Queen of England,
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * Authors:
+ * Raffaele Sandrini <[email protected]>
+ * George Lebl <[email protected]>
+ * Mark McLoughlin <[email protected]>
+ */
+
+#ifdef HAVE_CONFIG_H
+ #include <config.h>
+#endif
+
+#include <string.h>
+#include <errno.h>
+#include <unistd.h>
+#include <time.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+
+#include <X11/Xauth.h>
+#include <gdk/gdk.h>
+
+#include "mdm.h"
+
+#define MDM_PROTOCOL_UPDATE_INTERVAL 1 /* seconds */
+
+#define MDM_PROTOCOL_SOCKET_PATH "/var/run/mdm_socket"
+
+#define MDM_PROTOCOL_MSG_CLOSE "CLOSE"
+#define MDM_PROTOCOL_MSG_VERSION "VERSION"
+#define MDM_PROTOCOL_MSG_AUTHENTICATE "AUTH_LOCAL"
+#define MDM_PROTOCOL_MSG_QUERY_ACTION "QUERY_LOGOUT_ACTION"
+#define MDM_PROTOCOL_MSG_SET_ACTION "SET_SAFE_LOGOUT_ACTION"
+#define MDM_PROTOCOL_MSG_FLEXI_XSERVER "FLEXI_XSERVER"
+
+#define MDM_ACTION_STR_NONE "NONE"
+#define MDM_ACTION_STR_SHUTDOWN "HALT"
+#define MDM_ACTION_STR_REBOOT "REBOOT"
+#define MDM_ACTION_STR_SUSPEND "SUSPEND"
+
+typedef struct {
+ int fd;
+ char* auth_cookie;
+
+ MdmLogoutAction available_actions;
+ MdmLogoutAction current_actions;
+
+ time_t last_update;
+} MdmProtocolData;
+
+static MdmProtocolData mdm_protocol_data = {
+ 0,
+ NULL,
+ MDM_LOGOUT_ACTION_NONE,
+ MDM_LOGOUT_ACTION_NONE,
+ 0
+};
+
+static char* mdm_send_protocol_msg(MdmProtocolData* data, const char* msg)
+{
+ GString* retval;
+ char buf[256];
+ char* p;
+ int len;
+
+ p = g_strconcat(msg, "\n", NULL);
+
+ if (write(data->fd, p, strlen(p)) < 0)
+ {
+ g_free(p);
+
+ g_warning("Failed to send message to MDM: %s", g_strerror(errno));
+
+ return NULL;
+ }
+
+ g_free(p);
+
+ p = NULL;
+ retval = NULL;
+
+ while ((len = read(data->fd, buf, sizeof(buf) - 1)) > 0)
+ {
+ buf[len] = '\0';
+
+ if (!retval)
+ {
+ retval = g_string_new(buf);
+ }
+ else
+ {
+ retval = g_string_append(retval, buf);
+ }
+
+ if ((p = strchr(retval->str, '\n')))
+ {
+ break;
+ }
+ }
+
+ if (p)
+ {
+ *p = '\0';
+ }
+
+ return retval ? g_string_free(retval, FALSE) : NULL;
+}
+
+static char* get_display_number(void)
+{
+ const char* display_name;
+ char* retval;
+ char* p;
+
+ display_name = gdk_display_get_name(gdk_display_get_default());
+
+ p = strchr(display_name, ':');
+
+ if (!p)
+ {
+ return g_strdup("0");
+ }
+
+ while (*p == ':')
+ {
+ p++;
+ }
+
+ retval = g_strdup(p);
+
+ p = strchr(retval, '.');
+
+ if (p != NULL)
+ {
+ *p = '\0';
+ }
+
+ return retval;
+}
+
+static gboolean mdm_authenticate_connection(MdmProtocolData* data)
+{
+ #define MDM_MIT_MAGIC_COOKIE_LEN 16
+
+ const char* xau_path;
+ FILE* f;
+ Xauth* xau;
+ char* display_number;
+ gboolean retval;
+
+ if (data->auth_cookie)
+ {
+ char* msg;
+ char* response;
+
+ msg = g_strdup_printf(MDM_PROTOCOL_MSG_AUTHENTICATE " %s", data->auth_cookie);
+ response = mdm_send_protocol_msg(data, msg);
+ g_free(msg);
+
+ if (response && !strcmp(response, "OK"))
+ {
+ g_free(response);
+ return TRUE;
+ }
+ else
+ {
+ g_free(response);
+ g_free(data->auth_cookie);
+ data->auth_cookie = NULL;
+ }
+ }
+
+ if (!(xau_path = XauFileName()))
+ {
+ return FALSE;
+ }
+
+ if (!(f = fopen(xau_path, "r")))
+ {
+ return FALSE;
+ }
+
+ retval = FALSE;
+ display_number = get_display_number();
+
+ while ((xau = XauReadAuth(f)))
+ {
+ char buffer[40]; /* 2*16 == 32, so 40 is enough */
+ char* msg;
+ char* response;
+ int i;
+
+ if (xau->family != FamilyLocal || strncmp(xau->number, display_number, xau->number_length) || strncmp(xau->name, "MIT-MAGIC-COOKIE-1", xau->name_length) || xau->data_length != MDM_MIT_MAGIC_COOKIE_LEN)
+ {
+ XauDisposeAuth(xau);
+ continue;
+ }
+
+ for (i = 0; i < MDM_MIT_MAGIC_COOKIE_LEN; i++)
+ {
+ g_snprintf(buffer + 2 * i, 3, "%02x", (guint)(guchar) xau->data[i]);
+ }
+
+ XauDisposeAuth(xau);
+
+ msg = g_strdup_printf(MDM_PROTOCOL_MSG_AUTHENTICATE " %s", buffer);
+ response = mdm_send_protocol_msg(data, msg);
+ g_free(msg);
+
+ if (response && !strcmp(response, "OK"))
+ {
+ data->auth_cookie = g_strdup(buffer);
+ g_free(response);
+ retval = TRUE;
+ break;
+ }
+
+ g_free(response);
+ }
+
+ g_free(display_number);
+
+ fclose(f);
+
+ return retval;
+
+ #undef MDM_MIT_MAGIC_COOKIE_LEN
+}
+
+static void mdm_shutdown_protocol_connection(MdmProtocolData *data)
+{
+ if (data->fd)
+ {
+ close(data->fd);
+ }
+
+ data->fd = 0;
+}
+
+static gboolean mdm_init_protocol_connection(MdmProtocolData* data)
+{
+ struct sockaddr_un addr;
+ char* response;
+
+ g_assert(data->fd <= 0);
+
+ if (g_file_test(MDM_PROTOCOL_SOCKET_PATH, G_FILE_TEST_EXISTS))
+ {
+ strcpy(addr.sun_path, MDM_PROTOCOL_SOCKET_PATH);
+ }
+ else if (g_file_test("/tmp/.mdm_socket", G_FILE_TEST_EXISTS))
+ {
+ strcpy(addr.sun_path, "/tmp/.mdm_socket");
+ }
+ else
+ {
+ return FALSE;
+ }
+
+ data->fd = socket(AF_UNIX, SOCK_STREAM, 0);
+
+ if (data->fd < 0)
+ {
+ g_warning("Failed to create MDM socket: %s", g_strerror(errno));
+
+ mdm_shutdown_protocol_connection(data);
+
+ return FALSE;
+ }
+
+ addr.sun_family = AF_UNIX;
+
+ if (connect(data->fd, (struct sockaddr*) &addr, sizeof(addr)) < 0)
+ {
+ g_warning("Failed to establish a connection with MDM: %s", g_strerror(errno));
+
+ mdm_shutdown_protocol_connection(data);
+
+ return FALSE;
+ }
+
+ response = mdm_send_protocol_msg(data, MDM_PROTOCOL_MSG_VERSION);
+
+ if (!response || strncmp(response, "MDM ", strlen("MDM ") != 0))
+ {
+ g_free(response);
+
+ g_warning("Failed to get protocol version from MDM");
+ mdm_shutdown_protocol_connection(data);
+
+ return FALSE;
+ }
+
+ g_free(response);
+
+ if (!mdm_authenticate_connection(data))
+ {
+ g_warning("Failed to authenticate with MDM");
+ mdm_shutdown_protocol_connection(data);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void mdm_parse_query_response(MdmProtocolData* data, const char* response)
+{
+ char** actions;
+ int i;
+
+ data->available_actions = MDM_LOGOUT_ACTION_NONE;
+ data->current_actions = MDM_LOGOUT_ACTION_NONE;
+
+ if (strncmp(response, "OK ", 3) != 0)
+ {
+ return;
+ }
+
+ response += 3;
+
+ actions = g_strsplit(response, ";", -1);
+
+ for (i = 0; actions[i]; i++)
+ {
+ MdmLogoutAction action = MDM_LOGOUT_ACTION_NONE;
+ gboolean selected = FALSE;
+ char* str = actions [i];
+ int len;
+
+ len = strlen(str);
+
+ if (!len)
+ {
+ continue;
+ }
+
+ if (str[len - 1] == '!')
+ {
+ selected = TRUE;
+ str[len - 1] = '\0';
+ }
+
+ if (!strcmp(str, MDM_ACTION_STR_SHUTDOWN))
+ {
+ action = MDM_LOGOUT_ACTION_SHUTDOWN;
+ }
+ else if (!strcmp(str, MDM_ACTION_STR_REBOOT))
+ {
+ action = MDM_LOGOUT_ACTION_REBOOT;
+ }
+ else if (!strcmp(str, MDM_ACTION_STR_SUSPEND))
+ {
+ action = MDM_LOGOUT_ACTION_SUSPEND;
+ }
+
+ data->available_actions |= action;
+
+ if (selected)
+ {
+ data->current_actions |= action;
+ }
+ }
+
+ g_strfreev(actions);
+}
+
+static void mdm_update_logout_actions(MdmProtocolData* data)
+{
+ time_t current_time;
+ char* response;
+
+ current_time = time(NULL);
+
+ if (current_time <= (data->last_update + MDM_PROTOCOL_UPDATE_INTERVAL))
+ {
+ return;
+ }
+
+ data->last_update = current_time;
+
+ if (!mdm_init_protocol_connection(data))
+ {
+ return;
+ }
+
+ if ((response = mdm_send_protocol_msg(data, MDM_PROTOCOL_MSG_QUERY_ACTION)))
+ {
+ mdm_parse_query_response(data, response);
+ g_free(response);
+ }
+
+ mdm_shutdown_protocol_connection(data);
+}
+
+gboolean mdm_is_available(void)
+{
+ if (!mdm_init_protocol_connection(&mdm_protocol_data))
+ {
+ return FALSE;
+ }
+
+ mdm_shutdown_protocol_connection(&mdm_protocol_data);
+
+ return TRUE;
+}
+
+gboolean mdm_supports_logout_action(MdmLogoutAction action)
+{
+ mdm_update_logout_actions(&mdm_protocol_data);
+
+ return (mdm_protocol_data.available_actions & action) != 0;
+}
+
+MdmLogoutAction mdm_get_logout_action(void)
+{
+ mdm_update_logout_actions(&mdm_protocol_data);
+
+ return mdm_protocol_data.current_actions;
+}
+
+void mdm_set_logout_action(MdmLogoutAction action)
+{
+ char* action_str = NULL;
+ char* msg;
+ char* response;
+
+ if (!mdm_init_protocol_connection(&mdm_protocol_data))
+ {
+ return;
+ }
+
+ switch (action)
+ {
+ case MDM_LOGOUT_ACTION_NONE:
+ action_str = MDM_ACTION_STR_NONE;
+ break;
+ case MDM_LOGOUT_ACTION_SHUTDOWN:
+ action_str = MDM_ACTION_STR_SHUTDOWN;
+ break;
+ case MDM_LOGOUT_ACTION_REBOOT:
+ action_str = MDM_ACTION_STR_REBOOT;
+ break;
+ case MDM_LOGOUT_ACTION_SUSPEND:
+ action_str = MDM_ACTION_STR_SUSPEND;
+ break;
+ }
+
+ msg = g_strdup_printf(MDM_PROTOCOL_MSG_SET_ACTION " %s", action_str);
+
+ response = mdm_send_protocol_msg(&mdm_protocol_data, msg);
+
+ g_free(msg);
+ g_free(response);
+
+ mdm_protocol_data.last_update = 0;
+
+ mdm_shutdown_protocol_connection(&mdm_protocol_data);
+}
+
+void mdm_new_login(void)
+{
+ char* response;
+
+ if (!mdm_init_protocol_connection(&mdm_protocol_data))
+ {
+ return;
+ }
+
+ response = mdm_send_protocol_msg(&mdm_protocol_data, MDM_PROTOCOL_MSG_FLEXI_XSERVER);
+
+ g_free(response);
+
+ mdm_protocol_data.last_update = 0;
+
+ mdm_shutdown_protocol_connection(&mdm_protocol_data);
+}
diff --git a/mate-session/mdm.h b/mate-session/mdm.h
new file mode 100644
index 0000000..124598b
--- /dev/null
+++ b/mate-session/mdm.h
@@ -0,0 +1,58 @@
+/* mdm.h
+ * Copyright (C) 2005 Raffaele Sandrini
+ * Copyright (C) 2005 Red Hat, Inc.
+ * Copyright (C) 2002, 2003 George Lebl
+ * Copyright (C) 2001 Queen of England,
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * Authors:
+ * Raffaele Sandrini <[email protected]>
+ * George Lebl <[email protected]>
+ * Mark McLoughlin <[email protected]>
+ */
+
+#ifndef __MDM_LOGOUT_ACTION_H__
+#define __MDM_LOGOUT_ACTION_H__
+
+#include <glib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+ MDM_LOGOUT_ACTION_NONE = 0,
+ MDM_LOGOUT_ACTION_SHUTDOWN = 1 << 0,
+ MDM_LOGOUT_ACTION_REBOOT = 1 << 1,
+ MDM_LOGOUT_ACTION_SUSPEND = 1 << 2
+} MdmLogoutAction;
+
+gboolean mdm_is_available(void);
+
+void mdm_new_login(void);
+
+void mdm_set_logout_action(MdmLogoutAction action);
+
+MdmLogoutAction mdm_get_logout_action(void);
+
+gboolean mdm_supports_logout_action(MdmLogoutAction action);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MDM_LOGOUT_ACTION_H__ */
diff --git a/mate-session/org.mate.SessionManager.App.xml b/mate-session/org.mate.SessionManager.App.xml
new file mode 100644
index 0000000..971eb7e
--- /dev/null
+++ b/mate-session/org.mate.SessionManager.App.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
+ <interface name="org.mate.SessionManager.App">
+ <method name="GetAppId">
+ <arg type="s" name="app_id" direction="out">
+ <doc:doc>
+ <doc:summary>The identifier for the application</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Return the application ID.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+ <method name="GetStartupId">
+ <arg type="s" name="startup_id" direction="out">
+ <doc:doc>
+ <doc:summary>The startup identifier</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Return the startup ID associated with this application.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+ <method name="GetPhase">
+ <arg type="u" name="phase" direction="out">
+ <doc:doc>
+ <doc:summary>The application startup phase</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Return the startup phase of this application.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ </interface>
+</node>
diff --git a/mate-session/org.mate.SessionManager.Client.xml b/mate-session/org.mate.SessionManager.Client.xml
new file mode 100644
index 0000000..0d51986
--- /dev/null
+++ b/mate-session/org.mate.SessionManager.Client.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
+ <interface name="org.mate.SessionManager.Client">
+ <method name="GetAppId">
+ <arg type="s" name="app_id" direction="out">
+ <doc:doc>
+ <doc:summary>The identifier for the associated application</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Return the application ID associated with this client.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+ <method name="GetStartupId">
+ <arg type="s" name="startup_id" direction="out">
+ <doc:doc>
+ <doc:summary>The startup identifier</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Return the startup ID associated with this client.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+ <method name="GetRestartStyleHint">
+ <arg type="u" name="hint" direction="out">
+ <doc:doc>
+ <doc:summary>The restart style hint</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Return the restart style hint for this client.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+ <method name="GetUnixProcessId">
+ <arg type="u" name="pid" direction="out">
+ <doc:doc>
+ <doc:summary>The Unix process identifier</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Return the Unix process identifier for this client.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+ <method name="GetStatus">
+ <arg type="u" name="status" direction="out">
+ <doc:doc>
+ <doc:summary>The client status</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Return the status of this client.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+ <method name="Stop">
+ <doc:doc>
+ <doc:description>
+ <doc:para>Inititate a request to terminate this application via XSMP.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+ </interface>
+</node>
diff --git a/mate-session/org.mate.SessionManager.ClientPrivate.xml b/mate-session/org.mate.SessionManager.ClientPrivate.xml
new file mode 100644
index 0000000..6adedba
--- /dev/null
+++ b/mate-session/org.mate.SessionManager.ClientPrivate.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
+ <interface name="org.mate.SessionManager.ClientPrivate">
+ <method name="EndSessionResponse">
+ <arg name="is_ok" type="b" direction="in">
+ <doc:doc>
+ <doc:summary>Whether or not it is OK to preceed</doc:summary>
+ </doc:doc>
+ </arg>
+ <arg name="reason" type="s" direction="in">
+ <doc:doc>
+ <doc:summary>The reason string</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>This method should be used by the client in response to
+ the <doc:ref type="signal" to="org.mate.SessionManager.ClientPrivate::QueryEndSession">QueryEndSession</doc:ref>
+ and <doc:ref type="signal" to="org.mate.SessionManager.ClientPrivate::EndSession">EndSession</doc:ref> signals.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <signal name="Stop">
+ <doc:doc>
+ <doc:summary>Stop client</doc:summary>
+ <doc:description>
+ <doc:para>
+ The client should stop and remove itself from the session in
+ response to this signal.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </signal>
+
+ <signal name="QueryEndSession">
+ <arg name="flags" type="u">
+ <doc:doc>
+ <doc:summary>Flags</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>This signal is used to inform the client that the
+ session is about to end. The client must respond by
+ calling
+ <doc:ref type="method" to="org.mate.SessionManager.ClientPrivate.EndSessionResponse">EndSessionResponse</doc:ref>
+ within one second of the signal emission.
+ </doc:para>
+ <doc:para>
+ The flags may include:
+ <doc:list>
+ <doc:item>
+ <doc:term>1</doc:term>
+ <doc:definition>Logout is forced.
+ <doc:ref type="method" to="org.mate.SessionManager.ClientPrivate.EndSessionResponse">EndSessionResponse</doc:ref>
+ reason and any inhibit from client will be
+ ignored.</doc:definition>
+ </doc:item>
+ </doc:list>
+ </doc:para>
+ <doc:para>
+ If the client responds with an EndSessionResponse is-ok
+ argument equal to FALSE and a reason then this reason may
+ be displayed to the user.
+ </doc:para>
+ <doc:para>
+ The client must not attempt to perform any actions or
+ interact with the user in response to this signal. Any
+ actions required for a clean shutdown should take place in
+ response to the
+ <doc:ref type="signal" to="org.mate.SessionManager.ClientPrivate::EndSession">EndSession</doc:ref> signal.
+ </doc:para>
+ <doc:para>
+ The client should limit operations until either a
+ <doc:ref type="signal" to="org.mate.SessionManager.ClientPrivate::EndSession">EndSession</doc:ref>
+ <doc:ref type="signal" to="org.mate.SessionManager.ClientPrivate::CancelEndSession">CancelEndSession</doc:ref>
+ signal is received.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </signal>
+
+ <signal name="EndSession">
+ <arg name="flags" type="u">
+ <doc:doc>
+ <doc:summary>Flags</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>This signal is used to inform the client that the
+ session is about to end. The client must respond by
+ calling
+ <doc:ref type="method" to="org.mate.SessionManager.ClientPrivate.EndSessionResponse">EndSessionResponse</doc:ref>
+ within ten seconds of the signal emission.
+ </doc:para>
+ <doc:para>
+ The client must not attempt to interact with the user in
+ response to this signal. The application will be given a
+ maxium of ten seconds to perform any actions required for
+ a clean shutdown.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </signal>
+
+ <signal name="CancelEndSession">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ This signal indicates to the client that a previous emission of
+ <doc:ref type="signal" to="org.mate.SessionManager.ClientPrivate::QueryEndSession">QueryEndSession</doc:ref>
+ has been cancelled. The client should resume normal operations.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </signal>
+
+ </interface>
+</node>
diff --git a/mate-session/org.mate.SessionManager.Inhibitor.xml b/mate-session/org.mate.SessionManager.Inhibitor.xml
new file mode 100644
index 0000000..4d1f128
--- /dev/null
+++ b/mate-session/org.mate.SessionManager.Inhibitor.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
+ <interface name="org.mate.SessionManager.Inhibitor">
+ <method name="GetAppId">
+ <arg type="s" name="app_id" direction="out">
+ <doc:doc>
+ <doc:summary>The identifier for the associated application</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Return the application ID associated with this inhibit.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+ <method name="GetClientId">
+ <arg type="o" name="client_id" direction="out">
+ <doc:doc>
+ <doc:summary>The object path of the associated client</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Return the client object path associated with this inhibit.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+ <method name="GetReason">
+ <arg type="s" name="reason" direction="out">
+ <doc:doc>
+ <doc:summary>The reason for the inhibit</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Return the reason for the inhibit</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+ <method name="GetFlags">
+ <arg type="u" name="flags" direction="out">
+ <doc:doc>
+ <doc:summary>The flags that determine the scope of the inhibit</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Return the flags that determine the scope of the inhibit</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+ <method name="GetToplevelXid">
+ <arg type="u" name="xid" direction="out">
+ <doc:doc>
+ <doc:summary>X11 toplevel window identifier associated with this inhibit. Zero if not set.</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Return the X11 toplevel window identifier associated with this inhibit. Zero if not set.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+ </interface>
+</node>
diff --git a/mate-session/org.mate.SessionManager.Presence.xml b/mate-session/org.mate.SessionManager.Presence.xml
new file mode 100644
index 0000000..49f0620
--- /dev/null
+++ b/mate-session/org.mate.SessionManager.Presence.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
+ <interface name="org.mate.SessionManager.Presence">
+
+ <property name="status" type="u" access="readwrite">
+ <doc:doc>
+ <doc:description>
+ <doc:para>
+ The status of the session.
+ </doc:para>
+ <doc:para>
+ The status parameter must be one of the following:
+ <doc:list>
+ <doc:item>
+ <doc:term>0</doc:term>
+ <doc:definition>Available</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>1</doc:term>
+ <doc:definition>Invisible</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>2</doc:term>
+ <doc:definition>Busy</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>3</doc:term>
+ <doc:definition>Idle</doc:definition>
+ </doc:item>
+ </doc:list>
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+ <property name="status-text" type="s" access="readwrite">
+ <doc:doc>
+ <doc:description>
+ <doc:para>The descriptive status for the session.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </property>
+ <method name="SetStatus">
+ <arg type="u" name="status" direction="in">
+ <doc:doc>
+ <doc:summary>The status value</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Set the status value of the session.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+ <method name="SetStatusText">
+ <arg type="s" name="status_text" direction="in">
+ <doc:doc>
+ <doc:summary>The descriptive status for the session.</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Set the descriptive status text for the session.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <signal name="StatusChanged">
+ <arg name="status" type="u">
+ <doc:doc>
+ <doc:summary>The new status value</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Indicates that the session status value has changed.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </signal>
+ <signal name="StatusTextChanged">
+ <arg name="status_text" type="s">
+ <doc:doc>
+ <doc:summary>The new status text</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Indicates that the descriptive session status text has changed.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </signal>
+
+ </interface>
+</node>
diff --git a/mate-session/org.mate.SessionManager.xml b/mate-session/org.mate.SessionManager.xml
new file mode 100644
index 0000000..9d693e6
--- /dev/null
+++ b/mate-session/org.mate.SessionManager.xml
@@ -0,0 +1,377 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
+ <interface name="org.mate.SessionManager">
+
+ <!-- Initialization phase interfaces -->
+
+ <method name="Setenv">
+ <arg name="variable" type="s" direction="in">
+ <doc:doc>
+ <doc:summary>The variable name</doc:summary>
+ </doc:doc>
+ </arg>
+ <arg name="value" type="s" direction="in">
+ <doc:doc>
+ <doc:summary>The value</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Adds the variable name to the application launch environment with the specified value. May only be used during the Session Manager initialization phase.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <method name="InitializationError">
+ <arg name="message" type="s" direction="in">
+ <doc:doc>
+ <doc:summary>The error message</doc:summary>
+ </doc:doc>
+ </arg>
+ <arg name="fatal" type="b" direction="in">
+ <doc:doc>
+ <doc:summary>Whether the error should be treated as fatal</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>May be used by applications launched during the Session Manager initialization phase to indicate there was a problem.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <!-- Running phase interfaces -->
+
+ <method name="RegisterClient">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <arg type="s" name="app_id" direction="in">
+ <doc:doc>
+ <doc:summary>The application identifier</doc:summary>
+ </doc:doc>
+ </arg>
+ <arg type="s" name="client_startup_id" direction="in">
+ <doc:doc>
+ <doc:summary>Client startup identifier</doc:summary>
+ </doc:doc>
+ </arg>
+ <arg type="o" name="client_id" direction="out">
+ <doc:doc>
+ <doc:summary>The object path of the newly registered client</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Register the caller as a Session Management client.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <method name="UnregisterClient">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <arg type="o" name="client_id" direction="in">
+ <doc:doc>
+ <doc:summary>The object path of the client</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Unregister the specified client from Session Management.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <method name="Inhibit">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <arg type="s" name="app_id" direction="in">
+ <doc:doc>
+ <doc:summary>The application identifier</doc:summary>
+ </doc:doc>
+ </arg>
+ <arg type="u" name="toplevel_xid" direction="in">
+ <doc:doc>
+ <doc:summary>The toplevel X window identifier</doc:summary>
+ </doc:doc>
+ </arg>
+ <arg type="s" name="reason" direction="in">
+ <doc:doc>
+ <doc:summary>The reason for the inhibit</doc:summary>
+ </doc:doc>
+ </arg>
+ <arg type="u" name="flags" direction="in">
+ <doc:doc>
+ <doc:summary>Flags that spefify what should be inhibited</doc:summary>
+ </doc:doc>
+ </arg>
+ <arg type="u" name="inhibit_cookie" direction="out">
+ <doc:doc>
+ <doc:summary>The cookie</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:summary>
+ Proactively indicates that the calling application is performing an action that should not be interrupted and sets a reason to be displayed to the user when an interruption is about to take placea.
+ </doc:summary>
+ <doc:description>
+ <doc:para>Applications should invoke this method when they begin an operation that
+ should not be interrupted, such as creating a CD or DVD. The types of actions
+ that may be blocked are specified by the flags parameter. When the application
+ completes the operation it should call <doc:ref type="method" to="org.mate.SessionManager.Uninhibit">Uninhibit()</doc:ref>
+ or disconnect from the session bus.
+ </doc:para>
+ <doc:para>
+ Applications should not expect that they will always be able to block the
+ action. In most cases, users will be given the option to force the action
+ to take place.
+ </doc:para>
+ <doc:para>
+ Reasons should be short and to the point.
+ </doc:para>
+ <doc:para>
+ The flags parameter must include at least one of the following:
+ <doc:list>
+ <doc:item>
+ <doc:term>1</doc:term>
+ <doc:definition>Inhibit logging out</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>2</doc:term>
+ <doc:definition>Inhibit user switching</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>4</doc:term>
+ <doc:definition>Inhibit suspending the session or computer</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>8</doc:term>
+ <doc:definition>Inhibit the session being marked as idle</doc:definition>
+ </doc:item>
+ </doc:list>
+ Values for flags may be bitwise or'ed together.
+ </doc:para>
+ <doc:para>
+ The returned cookie is used to uniquely identify this request. It should be used
+ as an argument to <doc:ref type="method" to="org.mate.SessionManager.Uninhibit">Uninhibit()</doc:ref> in
+ order to remove the request.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <method name="Uninhibit">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <arg type="u" name="inhibit_cookie" direction="in">
+ <doc:doc>
+ <doc:summary>The cookie</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Cancel a previous call to <doc:ref type="method" to="org.mate.SessionManager.Inhibit">Inhibit()</doc:ref> identified by the cookie.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <method name="IsInhibited">
+ <arg type="u" name="flags" direction="in">
+ <doc:doc>
+ <doc:summary>Flags that spefify what should be inhibited</doc:summary>
+ </doc:doc>
+ </arg>
+ <arg type="b" name="is_inhibited" direction="out">
+ <doc:doc>
+ <doc:summary>Returns TRUE if any of the operations in the bitfield flags are inhibited</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Determine if operation(s) specified by the flags
+ are currently inhibited. Flags are same as those accepted
+ by the
+ <doc:ref type="method" to="org.mate.SessionManager.Inhibit">Inhibit()</doc:ref>
+ method.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <method name="GetClients">
+ <arg name="clients" direction="out" type="ao">
+ <doc:doc>
+ <doc:summary>an array of client IDs</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>This gets a list of all the <doc:ref type="interface" to="org.mate.SessionManager.Client">Clients</doc:ref>
+ that are currently known to the session manager.</doc:para>
+ <doc:para>Each Client ID is an D-Bus object path for the object that implements the
+ <doc:ref type="interface" to="org.mate.SessionManager.Client">Client</doc:ref> interface.</doc:para>
+ </doc:description>
+ <doc:seealso><doc:ref type="interface" to="org.mate.SessionManager.Client">org.mate.SessionManager.Client</doc:ref></doc:seealso>
+ </doc:doc>
+ </method>
+
+ <method name="GetInhibitors">
+ <arg name="inhibitors" direction="out" type="ao">
+ <doc:doc>
+ <doc:summary>an array of inhibitor IDs</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>This gets a list of all the <doc:ref type="interface" to="org.mate.SessionManager.Inhibitor">Inhibitors</doc:ref>
+ that are currently known to the session manager.</doc:para>
+ <doc:para>Each Inhibitor ID is an D-Bus object path for the object that implements the
+ <doc:ref type="interface" to="org.mate.SessionManager.Inhibitor">Inhibitor</doc:ref> interface.</doc:para>
+ </doc:description>
+ <doc:seealso><doc:ref type="interface" to="org.mate.SessionManager.Inhibitor">org.mate.SessionManager.Inhibitor</doc:ref></doc:seealso>
+ </doc:doc>
+ </method>
+
+
+ <method name="IsAutostartConditionHandled">
+ <arg name="condition" direction="in" type="s">
+ <doc:doc>
+ <doc:summary>The autostart condition string</doc:summary>
+ </doc:doc>
+ </arg>
+ <arg name="handled" direction="out" type="b">
+ <doc:doc>
+ <doc:summary>True if condition is handled, false otherwise</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Allows the caller to determine whether the session manager is
+ handling changes to the specified autostart condition.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <method name="Shutdown">
+ <doc:doc>
+ <doc:description>
+ <doc:para>Request a shutdown dialog</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <method name="CanShutdown">
+ <arg name="is_available" direction="out" type="b">
+ <doc:doc>
+ <doc:summary>True if shutdown is available to the user, false otherwise</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Allows the caller to determine whether or not it's okay to show
+ a shutdown option in the UI</doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <method name="Logout">
+ <arg name="mode" type="u" direction="in">
+ <doc:doc>
+ <doc:summary>The type of logout that is being requested</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Request a logout dialog</doc:para>
+ <doc:para>
+ Allowed values for the mode parameter are:
+ <doc:list>
+ <doc:item>
+ <doc:term>0</doc:term>
+ <doc:definition>Normal.</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>1</doc:term>
+ <doc:definition>No confirmation inferface should be shown.</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>2</doc:term>
+ <doc:definition>Forcefully logout. No confirmation will be shown and any inhibitors will be ignored.</doc:definition>
+ </doc:item>
+ </doc:list>
+ Values for flags may be bitwise or'ed together.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </method>
+
+ <!-- Signals -->
+
+ <signal name="ClientAdded">
+ <arg name="id" type="o">
+ <doc:doc>
+ <doc:summary>The object path for the added client</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Emitted when a client has been added to the session manager.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </signal>
+ <signal name="ClientRemoved">
+ <arg name="id" type="o">
+ <doc:doc>
+ <doc:summary>The object path for the removed client</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Emitted when a client has been removed from the session manager.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </signal>
+
+ <signal name="InhibitorAdded">
+ <arg name="id" type="o">
+ <doc:doc>
+ <doc:summary>The object path for the added inhibitor</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Emitted when an inhibitor has been added to the session manager.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </signal>
+ <signal name="InhibitorRemoved">
+ <arg name="id" type="o">
+ <doc:doc>
+ <doc:summary>The object path for the removed inhibitor</doc:summary>
+ </doc:doc>
+ </arg>
+ <doc:doc>
+ <doc:description>
+ <doc:para>Emitted when an inhibitor has been removed from the session manager.
+ </doc:para>
+ </doc:description>
+ </doc:doc>
+ </signal>
+
+ <signal name="SessionRunning">
+ <doc:doc>
+ <doc:description>
+ <doc:para>Indicates the session has entered the Running phase.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </signal>
+
+ <signal name="SessionOver">
+ <doc:doc>
+ <doc:description>
+ <doc:para>Indicates the session is about to end.</doc:para>
+ </doc:description>
+ </doc:doc>
+ </signal>
+
+ </interface>
+</node>
diff --git a/mate-session/test-client-dbus.c b/mate-session/test-client-dbus.c
new file mode 100644
index 0000000..2d6981f
--- /dev/null
+++ b/mate-session/test-client-dbus.c
@@ -0,0 +1,261 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <glib.h>
+#include <dbus/dbus-glib.h>
+
+#define SM_DBUS_NAME "org.mate.SessionManager"
+#define SM_DBUS_PATH "/org/mate/SessionManager"
+#define SM_DBUS_INTERFACE "org.mate.SessionManager"
+
+#define SM_CLIENT_DBUS_INTERFACE "org.mate.SessionManager.ClientPrivate"
+
+static DBusGConnection *bus_connection = NULL;
+static DBusGProxy *sm_proxy = NULL;
+static char *client_id = NULL;
+static DBusGProxy *client_proxy = NULL;
+static GMainLoop *main_loop = NULL;
+
+static gboolean
+session_manager_connect (void)
+{
+
+ if (bus_connection == NULL) {
+ GError *error;
+
+ error = NULL;
+ bus_connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+ if (bus_connection == NULL) {
+ g_message ("Failed to connect to the session bus: %s",
+ error->message);
+ g_error_free (error);
+ exit (1);
+ }
+ }
+
+ sm_proxy = dbus_g_proxy_new_for_name (bus_connection,
+ SM_DBUS_NAME,
+ SM_DBUS_PATH,
+ SM_DBUS_INTERFACE);
+ return (sm_proxy != NULL);
+}
+
+static void
+on_client_query_end_session (DBusGProxy *proxy,
+ guint flags,
+ gpointer data)
+{
+ GError *error;
+ gboolean is_ok;
+ gboolean res;
+ const char *reason;
+
+ is_ok = FALSE;
+ reason = "Unsaved files";
+
+ g_debug ("Got query end session signal flags=%u", flags);
+
+ error = NULL;
+ res = dbus_g_proxy_call (proxy,
+ "EndSessionResponse",
+ &error,
+ G_TYPE_BOOLEAN, is_ok,
+ G_TYPE_STRING, reason,
+ G_TYPE_INVALID,
+ G_TYPE_INVALID);
+}
+
+static void
+on_client_end_session (DBusGProxy *proxy,
+ guint flags,
+ gpointer data)
+{
+ g_debug ("Got end session signal flags=%u", flags);
+}
+
+static void
+on_client_cancel_end_session (DBusGProxy *proxy,
+ gpointer data)
+{
+ g_debug ("Got end session cancelled signal");
+}
+
+static void
+on_client_stop (DBusGProxy *proxy,
+ gpointer data)
+{
+ g_debug ("Got client stop signal");
+ g_main_loop_quit (main_loop);
+}
+
+static gboolean
+register_client (void)
+{
+ GError *error;
+ gboolean res;
+ const char *startup_id;
+ const char *app_id;
+
+ startup_id = g_getenv ("DESKTOP_AUTOSTART_ID");
+ app_id = "gedit";
+
+ error = NULL;
+ res = dbus_g_proxy_call (sm_proxy,
+ "RegisterClient",
+ &error,
+ G_TYPE_STRING, app_id,
+ G_TYPE_STRING, startup_id,
+ G_TYPE_INVALID,
+ DBUS_TYPE_G_OBJECT_PATH, &client_id,
+ G_TYPE_INVALID);
+ if (! res) {
+ g_warning ("Failed to register client: %s", error->message);
+ g_error_free (error);
+ return FALSE;
+ }
+
+ g_debug ("Client registered with session manager: %s", client_id);
+ client_proxy = dbus_g_proxy_new_for_name (bus_connection,
+ SM_DBUS_NAME,
+ client_id,
+ SM_CLIENT_DBUS_INTERFACE);
+ dbus_g_proxy_add_signal (client_proxy,
+ "QueryEndSession",
+ G_TYPE_UINT,
+ G_TYPE_INVALID);
+ dbus_g_proxy_add_signal (client_proxy,
+ "EndSession",
+ G_TYPE_UINT,
+ G_TYPE_INVALID);
+ dbus_g_proxy_add_signal (client_proxy,
+ "CancelEndSession",
+ G_TYPE_UINT,
+ G_TYPE_INVALID);
+ dbus_g_proxy_add_signal (client_proxy,
+ "Stop",
+ G_TYPE_INVALID);
+ dbus_g_proxy_connect_signal (client_proxy,
+ "QueryEndSession",
+ G_CALLBACK (on_client_query_end_session),
+ NULL,
+ NULL);
+ dbus_g_proxy_connect_signal (client_proxy,
+ "EndSession",
+ G_CALLBACK (on_client_end_session),
+ NULL,
+ NULL);
+ dbus_g_proxy_connect_signal (client_proxy,
+ "CancelEndSession",
+ G_CALLBACK (on_client_cancel_end_session),
+ NULL,
+ NULL);
+ dbus_g_proxy_connect_signal (client_proxy,
+ "Stop",
+ G_CALLBACK (on_client_stop),
+ NULL,
+ NULL);
+
+ return TRUE;
+}
+
+static gboolean
+session_manager_disconnect (void)
+{
+ if (sm_proxy != NULL) {
+ g_object_unref (sm_proxy);
+ sm_proxy = NULL;
+ }
+
+ return TRUE;
+}
+
+static gboolean
+unregister_client (void)
+{
+ GError *error;
+ gboolean res;
+
+ error = NULL;
+ res = dbus_g_proxy_call (sm_proxy,
+ "UnregisterClient",
+ &error,
+ DBUS_TYPE_G_OBJECT_PATH, client_id,
+ G_TYPE_INVALID,
+ G_TYPE_INVALID);
+ if (! res) {
+ g_warning ("Failed to unregister client: %s", error->message);
+ g_error_free (error);
+ return FALSE;
+ }
+
+ g_free (client_id);
+ client_id = NULL;
+
+ return TRUE;
+}
+
+static gboolean
+quit_test (gpointer data)
+{
+ g_main_loop_quit (main_loop);
+ return FALSE;
+}
+
+int
+main (int argc,
+ char *argv[])
+{
+ gboolean res;
+
+ g_log_set_always_fatal (G_LOG_LEVEL_ERROR | G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING);
+
+ g_type_init ();
+
+ res = session_manager_connect ();
+ if (! res) {
+ g_warning ("Unable to connect to session manager");
+ exit (1);
+ }
+
+ res = register_client ();
+ if (! res) {
+ g_warning ("Unable to register client with session manager");
+ }
+
+ main_loop = g_main_loop_new (NULL, FALSE);
+
+ g_timeout_add_seconds (30, quit_test, NULL);
+
+ g_main_loop_run (main_loop);
+ g_main_loop_unref (main_loop);
+
+ unregister_client ();
+ session_manager_disconnect ();
+
+ return 0;
+}
diff --git a/mate-session/test-inhibit.c b/mate-session/test-inhibit.c
new file mode 100644
index 0000000..afd860c
--- /dev/null
+++ b/mate-session/test-inhibit.c
@@ -0,0 +1,198 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <gtk/gtk.h>
+#include <gdk/gdkx.h>
+#include <dbus/dbus-glib.h>
+
+#define SM_DBUS_NAME "org.mate.SessionManager"
+#define SM_DBUS_PATH "/org/mate/SessionManager"
+#define SM_DBUS_INTERFACE "org.mate.SessionManager"
+
+static DBusGConnection *bus_connection = NULL;
+static DBusGProxy *sm_proxy = NULL;
+static guint cookie = 0;
+
+static gboolean
+session_manager_connect (void)
+{
+
+ if (bus_connection == NULL) {
+ GError *error;
+
+ error = NULL;
+ bus_connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+ if (bus_connection == NULL) {
+ g_message ("Failed to connect to the session bus: %s",
+ error->message);
+ g_error_free (error);
+ exit (1);
+ }
+ }
+
+ sm_proxy = dbus_g_proxy_new_for_name (bus_connection,
+ SM_DBUS_NAME,
+ SM_DBUS_PATH,
+ SM_DBUS_INTERFACE);
+ return (sm_proxy != NULL);
+}
+
+typedef enum {
+ GSM_INHIBITOR_FLAG_LOGOUT = 1 << 0,
+ GSM_INHIBITOR_FLAG_SWITCH_USER = 1 << 1,
+ GSM_INHIBITOR_FLAG_SUSPEND = 1 << 2
+} GsmInhibitFlag;
+
+static gboolean
+do_inhibit_for_window (GdkWindow *window)
+{
+ GError *error;
+ gboolean res;
+ const char *startup_id;
+ const char *app_id;
+ const char *reason;
+ guint toplevel_xid;
+ guint flags;
+
+ startup_id = g_getenv ("DESKTOP_AUTOSTART_ID");
+#if 1
+ app_id = "caja-cd-burner";
+ reason = "A CD burn is in progress.";
+#else
+ app_id = "caja";
+ reason = "A file transfer is in progress.";
+#endif
+ toplevel_xid = GDK_DRAWABLE_XID (window);
+ flags = GSM_INHIBITOR_FLAG_LOGOUT
+ | GSM_INHIBITOR_FLAG_SWITCH_USER
+ | GSM_INHIBITOR_FLAG_SUSPEND;
+
+ error = NULL;
+ res = dbus_g_proxy_call (sm_proxy,
+ "Inhibit",
+ &error,
+ G_TYPE_STRING, app_id,
+ G_TYPE_UINT, toplevel_xid,
+ G_TYPE_STRING, reason,
+ G_TYPE_UINT, flags,
+ G_TYPE_INVALID,
+ G_TYPE_UINT, &cookie,
+ G_TYPE_INVALID);
+ if (! res) {
+ g_warning ("Failed to inhibit: %s", error->message);
+ g_error_free (error);
+ return FALSE;
+ }
+
+ g_debug ("Inhibiting session manager: %u", cookie);
+
+ return TRUE;
+}
+static gboolean
+session_manager_disconnect (void)
+{
+ if (sm_proxy != NULL) {
+ g_object_unref (sm_proxy);
+ sm_proxy = NULL;
+ }
+
+ return TRUE;
+}
+
+static gboolean
+do_uninhibit (void)
+{
+ GError *error;
+ gboolean res;
+
+ error = NULL;
+ res = dbus_g_proxy_call (sm_proxy,
+ "Uninhibit",
+ &error,
+ G_TYPE_UINT, cookie,
+ G_TYPE_INVALID,
+ G_TYPE_INVALID);
+ if (! res) {
+ g_warning ("Failed to uninhibit: %s", error->message);
+ g_error_free (error);
+ return FALSE;
+ }
+
+ cookie = 0;
+
+ return TRUE;
+}
+
+static void
+on_widget_show (GtkWidget *dialog,
+ gpointer data)
+{
+ gboolean res;
+
+ res = do_inhibit_for_window (gtk_widget_get_window (dialog));
+ if (! res) {
+ g_warning ("Unable to register client with session manager");
+ }
+}
+
+int
+main (int argc,
+ char *argv[])
+{
+ gboolean res;
+ GtkWidget *dialog;
+
+ g_log_set_always_fatal (G_LOG_LEVEL_ERROR | G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING);
+
+ gtk_init (&argc, &argv);
+
+ res = session_manager_connect ();
+ if (! res) {
+ g_warning ("Unable to connect to session manager");
+ exit (1);
+ }
+
+ g_timeout_add_seconds (30, (GSourceFunc)gtk_main_quit, NULL);
+
+ dialog = gtk_message_dialog_new (NULL,
+ 0,
+ GTK_MESSAGE_INFO,
+ GTK_BUTTONS_CANCEL,
+ "Inhibiting logout, switch user, and suspend.");
+
+ g_signal_connect (dialog, "response", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (dialog, "show", G_CALLBACK (on_widget_show), NULL);
+ gtk_widget_show (dialog);
+
+ gtk_main ();
+
+ do_uninhibit ();
+ session_manager_disconnect ();
+
+ return 0;
+}
diff --git a/missing b/missing
new file mode 100755
index 0000000..28055d2
--- /dev/null
+++ b/missing
@@ -0,0 +1,376 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+
+scriptversion=2009-04-28.21; # UTC
+
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
+# 2008, 2009 Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <[email protected]>, 1996.
+
+# 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.
+
+# 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, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+fi
+
+run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
+
+# In the cases where this matters, `missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+ configure_ac=configure.ac
+else
+ configure_ac=configure.in
+fi
+
+msg="missing on your system"
+
+case $1 in
+--run)
+ # Try to run requested program, and just exit if it succeeds.
+ run=
+ shift
+ "$@" && exit 0
+ # Exit code 63 means version mismatch. This often happens
+ # when the user try to use an ancient version of a tool on
+ # a file that requires a minimum version. In this case we
+ # we should proceed has if the program had been absent, or
+ # if --run hadn't been passed.
+ if test $? = 63; then
+ run=:
+ msg="probably too old"
+ fi
+ ;;
+
+ -h|--h|--he|--hel|--help)
+ echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+ -h, --help display this help and exit
+ -v, --version output version information and exit
+ --run try to run the given command, and emulate it if it fails
+
+Supported PROGRAM values:
+ aclocal touch file \`aclocal.m4'
+ autoconf touch file \`configure'
+ autoheader touch file \`config.h.in'
+ autom4te touch the output file, or create a stub one
+ automake touch all \`Makefile.in' files
+ bison create \`y.tab.[ch]', if possible, from existing .[ch]
+ flex create \`lex.yy.c', if possible, from existing .c
+ help2man touch the output file
+ lex create \`lex.yy.c', if possible, from existing .c
+ makeinfo touch the output file
+ tar try tar, gnutar, gtar, then tar without non-portable flags
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]
+
+Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
+\`g' are ignored when checking the name.
+
+Send bug reports to <[email protected]>."
+ exit $?
+ ;;
+
+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+ echo "missing $scriptversion (GNU Automake)"
+ exit $?
+ ;;
+
+ -*)
+ echo 1>&2 "$0: Unknown \`$1' option"
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+ ;;
+
+esac
+
+# normalize program name to check for.
+program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+# Now exit if we have it, but it failed. Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program). This is about non-GNU programs, so use $1 not
+# $program.
+case $1 in
+ lex*|yacc*)
+ # Not GNU programs, they don't have --version.
+ ;;
+
+ tar*)
+ if test -n "$run"; then
+ echo 1>&2 "ERROR: \`tar' requires --run"
+ exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ exit 1
+ fi
+ ;;
+
+ *)
+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+ # We have it, but it failed.
+ exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ # Could not run --version or --help. This is probably someone
+ # running `$TOOL --version' or `$TOOL --help' to check whether
+ # $TOOL exists and not knowing $TOOL uses missing.
+ exit 1
+ fi
+ ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case $program in
+ aclocal*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`acinclude.m4' or \`${configure_ac}'. You might want
+ to install the \`Automake' and \`Perl' packages. Grab them from
+ any GNU archive site."
+ touch aclocal.m4
+ ;;
+
+ autoconf*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`${configure_ac}'. You might want to install the
+ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
+ archive site."
+ touch configure
+ ;;
+
+ autoheader*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`acconfig.h' or \`${configure_ac}'. You might want
+ to install the \`Autoconf' and \`GNU m4' packages. Grab them
+ from any GNU archive site."
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+ test -z "$files" && files="config.h"
+ touch_files=
+ for f in $files; do
+ case $f in
+ *:*) touch_files="$touch_files "`echo "$f" |
+ sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+ *) touch_files="$touch_files $f.in";;
+ esac
+ done
+ touch $touch_files
+ ;;
+
+ automake*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+ You might want to install the \`Automake' and \`Perl' packages.
+ Grab them from any GNU archive site."
+ find . -type f -name Makefile.am -print |
+ sed 's/\.am$/.in/' |
+ while read f; do touch "$f"; done
+ ;;
+
+ autom4te*)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, but is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them.
+ You can get \`$1' as part of \`Autoconf' from any GNU
+ archive site."
+
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -f "$file"; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo "#! /bin/sh"
+ echo "# Created by GNU Automake missing as a replacement of"
+ echo "# $ $@"
+ echo "exit 0"
+ chmod +x $file
+ exit 1
+ fi
+ ;;
+
+ bison*|yacc*)
+ echo 1>&2 "\
+WARNING: \`$1' $msg. You should only need it if
+ you modified a \`.y' file. You may need the \`Bison' package
+ in order for those modifications to take effect. You can get
+ \`Bison' from any GNU archive site."
+ rm -f y.tab.c y.tab.h
+ if test $# -ne 1; then
+ eval LASTARG="\${$#}"
+ case $LASTARG in
+ *.y)
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" y.tab.c
+ fi
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" y.tab.h
+ fi
+ ;;
+ esac
+ fi
+ if test ! -f y.tab.h; then
+ echo >y.tab.h
+ fi
+ if test ! -f y.tab.c; then
+ echo 'main() { return 0; }' >y.tab.c
+ fi
+ ;;
+
+ lex*|flex*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a \`.l' file. You may need the \`Flex' package
+ in order for those modifications to take effect. You can get
+ \`Flex' from any GNU archive site."
+ rm -f lex.yy.c
+ if test $# -ne 1; then
+ eval LASTARG="\${$#}"
+ case $LASTARG in
+ *.l)
+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" lex.yy.c
+ fi
+ ;;
+ esac
+ fi
+ if test ! -f lex.yy.c; then
+ echo 'main() { return 0; }' >lex.yy.c
+ fi
+ ;;
+
+ help2man*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a dependency of a manual page. You may need the
+ \`Help2man' package in order for those modifications to take
+ effect. You can get \`Help2man' from any GNU archive site."
+
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -f "$file"; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo ".ab help2man is required to generate this page"
+ exit $?
+ fi
+ ;;
+
+ makeinfo*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a \`.texi' or \`.texinfo' file, or any other file
+ indirectly affecting the aspect of the manual. The spurious
+ call might also be the consequence of using a buggy \`make' (AIX,
+ DU, IRIX). You might want to install the \`Texinfo' package or
+ the \`GNU make' package. Grab either from any GNU archive site."
+ # The file to touch is that specified with -o ...
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -z "$file"; then
+ # ... or it is the one specified with @setfilename ...
+ infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '
+ /^@setfilename/{
+ s/.* \([^ ]*\) *$/\1/
+ p
+ q
+ }' $infile`
+ # ... or it is derived from the source name (dir/f.texi becomes f.info)
+ test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
+ fi
+ # If the file does not exist, the user really needs makeinfo;
+ # let's fail without touching anything.
+ test -f $file || exit 1
+ touch $file
+ ;;
+
+ tar*)
+ shift
+
+ # We have already tried tar in the generic part.
+ # Look for gnutar/gtar before invocation to avoid ugly error
+ # messages.
+ if (gnutar --version > /dev/null 2>&1); then
+ gnutar "$@" && exit 0
+ fi
+ if (gtar --version > /dev/null 2>&1); then
+ gtar "$@" && exit 0
+ fi
+ firstarg="$1"
+ if shift; then
+ case $firstarg in
+ *o*)
+ firstarg=`echo "$firstarg" | sed s/o//`
+ tar "$firstarg" "$@" && exit 0
+ ;;
+ esac
+ case $firstarg in
+ *h*)
+ firstarg=`echo "$firstarg" | sed s/h//`
+ tar "$firstarg" "$@" && exit 0
+ ;;
+ esac
+ fi
+
+ echo 1>&2 "\
+WARNING: I can't seem to be able to run \`tar' with the given arguments.
+ You may want to install GNU tar or Free paxutils, or check the
+ command line arguments."
+ exit 1
+ ;;
+
+ *)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, and is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them. Check the \`README' file,
+ it often tells you about the needed prerequisites for installing
+ this package. You may also peek at any GNU archive site, in case
+ some other package would contain this missing \`$1' program."
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/mkinstalldirs b/mkinstalldirs
new file mode 100755
index 0000000..4191a45
--- /dev/null
+++ b/mkinstalldirs
@@ -0,0 +1,162 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+
+scriptversion=2009-04-28.21; # UTC
+
+# Original author: Noah Friedman <[email protected]>
+# Created: 1993-05-16
+# Public domain.
+#
+# This file is maintained in Automake, please report
+# bugs to <[email protected]> or send patches to
+
+nl='
+'
+IFS=" "" $nl"
+errstatus=0
+dirmode=
+
+usage="\
+Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
+
+Create each directory DIR (with mode MODE, if specified), including all
+leading file name components.
+
+Report bugs to <[email protected]>."
+
+# process command line arguments
+while test $# -gt 0 ; do
+ case $1 in
+ -h | --help | --h*) # -h for help
+ echo "$usage"
+ exit $?
+ ;;
+ -m) # -m PERM arg
+ shift
+ test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
+ dirmode=$1
+ shift
+ ;;
+ --version)
+ echo "$0 $scriptversion"
+ exit $?
+ ;;
+ --) # stop option processing
+ shift
+ break
+ ;;
+ -*) # unknown option
+ echo "$usage" 1>&2
+ exit 1
+ ;;
+ *) # first non-opt arg
+ break
+ ;;
+ esac
+done
+
+for file
+do
+ if test -d "$file"; then
+ shift
+ else
+ break
+ fi
+done
+
+case $# in
+ 0) exit 0 ;;
+esac
+
+# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
+# mkdir -p a/c at the same time, both will detect that a is missing,
+# one will create a, then the other will try to create a and die with
+# a "File exists" error. This is a problem when calling mkinstalldirs
+# from a parallel make. We use --version in the probe to restrict
+# ourselves to GNU mkdir, which is thread-safe.
+case $dirmode in
+ '')
+ if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+ echo "mkdir -p -- $*"
+ exec mkdir -p -- "$@"
+ else
+ # On NextStep and OpenStep, the `mkdir' command does not
+ # recognize any option. It will interpret all options as
+ # directories to create, and then abort because `.' already
+ # exists.
+ test -d ./-p && rmdir ./-p
+ test -d ./--version && rmdir ./--version
+ fi
+ ;;
+ *)
+ if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
+ test ! -d ./--version; then
+ echo "mkdir -m $dirmode -p -- $*"
+ exec mkdir -m "$dirmode" -p -- "$@"
+ else
+ # Clean up after NextStep and OpenStep mkdir.
+ for d in ./-m ./-p ./--version "./$dirmode";
+ do
+ test -d $d && rmdir $d
+ done
+ fi
+ ;;
+esac
+
+for file
+do
+ case $file in
+ /*) pathcomp=/ ;;
+ *) pathcomp= ;;
+ esac
+ oIFS=$IFS
+ IFS=/
+ set fnord $file
+ shift
+ IFS=$oIFS
+
+ for d
+ do
+ test "x$d" = x && continue
+
+ pathcomp=$pathcomp$d
+ case $pathcomp in
+ -*) pathcomp=./$pathcomp ;;
+ esac
+
+ if test ! -d "$pathcomp"; then
+ echo "mkdir $pathcomp"
+
+ mkdir "$pathcomp" || lasterr=$?
+
+ if test ! -d "$pathcomp"; then
+ errstatus=$lasterr
+ else
+ if test ! -z "$dirmode"; then
+ echo "chmod $dirmode $pathcomp"
+ lasterr=
+ chmod "$dirmode" "$pathcomp" || lasterr=$?
+
+ if test ! -z "$lasterr"; then
+ errstatus=$lasterr
+ fi
+ fi
+ fi
+ fi
+
+ pathcomp=$pathcomp/
+ done
+done
+
+exit $errstatus
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/po/LINGUAS b/po/LINGUAS
new file mode 100644
index 0000000..88f1d10
--- /dev/null
+++ b/po/LINGUAS
@@ -0,0 +1,104 @@
+# please keep this list sorted alphabetically
+#
+af
+am
+ar
+as
+ast
+az
+be
+be@latin
+bg
+bn
+bn_IN
+br
+bs
+ca
+ca@valencia
+crh
+cs
+cy
+da
+de
+dz
+el
+en_CA
+en_GB
+en@shaw
+eo
+es
+et
+eu
+fa
+fi
+fr
+fur
+fy
+ga
+gl
+gu
+ha
+he
+hi
+hr
+hu
+hy
+id
+ig
+is
+it
+ja
+ka
+kn
+ko
+ku
+lt
+lv
+mai
+mg
+mi
+mk
+ml
+mn
+mr
+ms
+nb
+nds
+ne
+nl
+nn
+nso
+oc
+or
+pa
+pl
+ps
+pt
+pt_BR
+ro
+ru
+rw
+si
+sk
+sl
+sq
+sr
+sr@latin
+sv
+ta
+te
+th
+tk
+tr
+ug
+uk
+uz
+uz@cyrillic
+vi
+wa
+xh
+yo
+zh_CN
+zh_HK
+zh_TW
+zu
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
new file mode 100644
index 0000000..cc8a222
--- /dev/null
+++ b/po/Makefile.in.in
@@ -0,0 +1,217 @@
+# Makefile for program source directory in GNU NLS utilities package.
+# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <[email protected]>
+# Copyright (C) 2004-2008 Rodney Dawes <[email protected]>
+#
+# This file may be copied and used freely without restrictions. It may
+# be used in projects which are not available under a GNU Public License,
+# but which still want to provide support for the GNU gettext functionality.
+#
+# - Modified by Owen Taylor <[email protected]> to use GETTEXT_PACKAGE
+# instead of PACKAGE and to look for po2tbl in ./ not in intl/
+#
+# - Modified by jacob berkman <[email protected]> to install
+# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
+#
+# - Modified by Rodney Dawes <[email protected]> for use with intltool
+#
+# We have the following line for use by intltoolize:
+# INTLTOOL_MAKEFILE
+
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = @top_builddir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datadir = @datadir@
+datarootdir = @datarootdir@
+libdir = @libdir@
+DATADIRNAME = @DATADIRNAME@
+itlocaledir = $(prefix)/$(DATADIRNAME)/locale
+subdir = po
+install_sh = @install_sh@
+# Automake >= 1.8 provides @mkdir_p@.
+# Until it can be supposed, use the safe fallback:
+mkdir_p = $(install_sh) -d
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+
+GMSGFMT = @GMSGFMT@
+MSGFMT = @MSGFMT@
+XGETTEXT = @XGETTEXT@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
+GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
+
+ALL_LINGUAS = @ALL_LINGUAS@
+
+PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi)
+
+USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi)
+
+USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
+
+POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
+
+DISTFILES = Makefile.in.in POTFILES.in $(POFILES)
+EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS
+
+POTFILES = \
+# This comment gets stripped out
+
+CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
+
+.SUFFIXES:
+.SUFFIXES: .po .pox .gmo .mo .msg .cat
+
+.po.pox:
+ $(MAKE) $(GETTEXT_PACKAGE).pot
+ $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
+
+.po.mo:
+ $(MSGFMT) -o $@ $<
+
+.po.gmo:
+ file=`echo $* | sed 's,.*/,,'`.gmo \
+ && rm -f $$file && $(GMSGFMT) -o $$file $<
+
+.po.cat:
+ sed -f ../intl/po2msg.sed < $< > $*.msg \
+ && rm -f $@ && gencat $@ $*.msg
+
+
+all: all-@USE_NLS@
+
+all-yes: $(CATALOGS)
+all-no:
+
+$(GETTEXT_PACKAGE).pot: $(POTFILES)
+ $(GENPOT)
+
+install: install-data
+install-data: install-data-@USE_NLS@
+install-data-no: all
+install-data-yes: all
+ linguas="$(USE_LINGUAS)"; \
+ for lang in $$linguas; do \
+ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
+ $(mkdir_p) $$dir; \
+ if test -r $$lang.gmo; then \
+ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
+ else \
+ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+ echo "installing $(srcdir)/$$lang.gmo as" \
+ "$$dir/$(GETTEXT_PACKAGE).mo"; \
+ fi; \
+ if test -r $$lang.gmo.m; then \
+ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
+ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
+ else \
+ if test -r $(srcdir)/$$lang.gmo.m ; then \
+ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
+ $$dir/$(GETTEXT_PACKAGE).mo.m; \
+ echo "installing $(srcdir)/$$lang.gmo.m as" \
+ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \
+ else \
+ true; \
+ fi; \
+ fi; \
+ done
+
+# Empty stubs to satisfy archaic automake needs
+dvi info ctags tags CTAGS TAGS ID:
+
+# Define this as empty until I found a useful application.
+install-exec installcheck:
+
+uninstall:
+ linguas="$(USE_LINGUAS)"; \
+ for lang in $$linguas; do \
+ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
+ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
+ done
+
+check: all $(GETTEXT_PACKAGE).pot
+ rm -f missing notexist
+ srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
+ if [ -r missing -o -r notexist ]; then \
+ exit 1; \
+ fi
+
+mostlyclean:
+ rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
+ rm -f .intltool-merge-cache
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile Makefile.in POTFILES stamp-it
+ rm -f *.mo *.msg *.cat *.cat.m *.gmo
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f Makefile.in.in
+
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ extra_dists="$(EXTRA_DISTFILES)"; \
+ for file in $$extra_dists; do \
+ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
+ done; \
+ for file in $$dists; do \
+ test -f $$file || file="$(srcdir)/$$file"; \
+ ln $$file $(distdir) 2> /dev/null \
+ || cp -p $$file $(distdir); \
+ done
+
+update-po: Makefile
+ $(MAKE) $(GETTEXT_PACKAGE).pot
+ tmpdir=`pwd`; \
+ linguas="$(USE_LINGUAS)"; \
+ for lang in $$linguas; do \
+ echo "$$lang:"; \
+ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
+ if $$result; then \
+ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ rm -f $$tmpdir/$$lang.new.po; \
+ else \
+ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ :; \
+ else \
+ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ exit 1; \
+ fi; \
+ fi; \
+ else \
+ echo "msgmerge for $$lang.gmo failed!"; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ fi; \
+ done
+
+Makefile POTFILES: stamp-it
+ @if test ! -f $@; then \
+ rm -f stamp-it; \
+ $(MAKE) stamp-it; \
+ fi
+
+stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
+ $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/po/POTFILES.in b/po/POTFILES.in
new file mode 100644
index 0000000..083da93
--- /dev/null
+++ b/po/POTFILES.in
@@ -0,0 +1,23 @@
+# List of source files containing translatable strings.
+# Please keep this file sorted alphabetically.
+capplet/gsm-app-dialog.c
+capplet/gsm-properties-dialog.c
+capplet/gsp-app.c
+capplet/main.c
+data/mate.desktop.in
+data/mate-session.schemas.in.in
+data/mate-wm.desktop.in.in
+[type: gettext/glade]data/gsm-inhibit-dialog.ui
+data/session-properties.desktop.in.in
+[type: gettext/glade]data/session-properties.ui
+egg/eggdesktopfile.c
+egg/eggsmclient.c
+mate-session/gsm-mateconf.c
+mate-session/gsm-inhibit-dialog.c
+mate-session/gsm-logout-dialog.c
+mate-session/gsm-manager.c
+mate-session/gsm-xsmp-client.c
+mate-session/gsm-xsmp-server.c
+mate-session/gsm-util.c
+mate-session/main.c
+tools/mate-session-save.c
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
new file mode 100644
index 0000000..e1a9071
--- /dev/null
+++ b/po/POTFILES.skip
@@ -0,0 +1,6 @@
+# List of source files containing translatable strings that should not be
+# translated.
+# Please keep this file sorted alphabetically.
+data/mate-session.schemas.in
+data/mate-wm.desktop.in
+data/session-properties.desktop.in
diff --git a/po/af.po b/po/af.po
new file mode 100644
index 0000000..7e94a3d
--- /dev/null
+++ b/po/af.po
@@ -0,0 +1,487 @@
+# Afrikaans translation of mate-session.
+# Copyright (C) 2004 Zuza Software Foundation
+# This file is distributed under the same license as the mate-session package.
+#
+# Zuza Software Foundation <[email protected]>, 2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session 2.6-branch\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-01-11 08:59+0000\n"
+"PO-Revision-Date: 2004-03-30 17:02+0200\n"
+"Last-Translator: Zuza Software Foundation <[email protected]>\n"
+"Language-Team: Afrikaans <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: mate-session/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "Laat TCP-konneksies toe"
+
+#: mate-session/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"Om sekuriteitsredes luister mate-session nie uit na konneksies op TCP-"
+"poorte op platforms met _IceTcpTransNoListen() (XFree86 systems) nie. "
+"Hierdie opsie laat konneksies van (gemagtide) afgeleë gashere toe.Mate-"
+"session moet oorbegin word vir die instelling om toegepas te word."
+
+#: mate-session/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Indien geaktiveer, sal mate-session die gebruiker waarsku voordat 'n sessie "
+"beëindig word."
+
+#: mate-session/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Indien geaktiveer, sal mate-session die sessie outomaties stoor. Andersins "
+"sal daar op die afmeldingsdialoog 'n opsie wees om die sessie te stoor."
+
+#: mate-session/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "Afmeldingspor"
+
+#: mate-session/mate-session.schemas.in.h:6
+msgid ""
+"Preferred Image to use for the splash screen when logging in to the MATE "
+"Desktop"
+msgstr ""
+"Voorkeurbeeld wat gebruik moet word vir die spatskerm wanneer daar by MATE "
+"Desktop aangemeld word"
+
+#: mate-session/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "Stoor sessies"
+
+#: mate-session/mate-session.schemas.in.h:8
+msgid "Show the splash screen"
+msgstr "Vertoon die spatskerm"
+
+#: mate-session/mate-session.schemas.in.h:9
+msgid "Show the splash screen when the session starts up"
+msgstr "Vertoon die spatskerm wanneer die sessie begin"
+
+#: mate-session/mate-session.schemas.in.h:10
+msgid "Splash Screen Image"
+msgstr "Spatskermbeeld"
+
+#: mate-session/gsm-client-editor.c:97 mate-session/startup-programs.c:314
+msgid "_Order:"
+msgstr "_Volgorde:"
+
+#: mate-session/gsm-client-editor.c:99
+msgid "The order in which applications are started in the session."
+msgstr "Die volgorde waarin toepassings in die sessie begin word."
+
+#: mate-session/gsm-client-editor.c:106
+msgid "What happens to the application when it exits."
+msgstr "Wat gebeur met die toepassing wanneer dit afsluit."
+
+#: mate-session/gsm-client-editor.c:109
+msgid "_Style:"
+msgstr "_Styl:"
+
+#: mate-session/gsm-client-list.c:150
+#: mate-session/session-properties-capplet.c:412
+msgid "Order"
+msgstr "Volgorde"
+
+#: mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr "Styl"
+
+#: mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr "Staat"
+
+#: mate-session/gsm-client-list.c:165
+msgid "Program"
+msgstr "Program"
+
+#: mate-session/gsm-client-row.c:31
+msgid "Inactive"
+msgstr "Onaktief"
+
+#: mate-session/gsm-client-row.c:32
+msgid "Waiting to start or already finished."
+msgstr "Wag om te begin of reeds klaar."
+
+#: mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr "Het begin"
+
+#: mate-session/gsm-client-row.c:35
+msgid "Started but has not yet reported state."
+msgstr "Het begin maar nog nie die status gerapporteer nie."
+
+#: mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr "Besig om te loop"
+
+#: mate-session/gsm-client-row.c:38
+msgid "A normal member of the session."
+msgstr "'n Gewone lid van die sessie."
+
+#: mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr "Besig om te stoor"
+
+#: mate-session/gsm-client-row.c:41
+msgid "Saving session details."
+msgstr "Stoor sessie-besonderhede."
+
+#: mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr "Onbekend"
+
+#: mate-session/gsm-client-row.c:44
+msgid "State not reported within timeout."
+msgstr "Status nie binne uitteltyd gerapporteer nie."
+
+#: mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr "Normaal"
+
+#: mate-session/gsm-client-row.c:51
+msgid "Unaffected by logouts but can die."
+msgstr "Nie deur afmeldings geraak nie, maar kan sterf."
+
+#: mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr "Oorbegin"
+
+#: mate-session/gsm-client-row.c:54
+msgid "Never allowed to die."
+msgstr "Mag nooit sterf nie."
+
+#: mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr "Asblik"
+
+#: mate-session/gsm-client-row.c:57
+msgid "Discarded on logout and can die."
+msgstr "Weggegooi tydens afmelding en kan sterf."
+
+#: mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr "Instellings"
+
+#: mate-session/gsm-client-row.c:60
+msgid "Always started on every login."
+msgstr "Altyd begin vir elke aanmelding."
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: mate-session/gsm-gsd.c:41
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"n Fout is ondervind met die laai van die MATE-Instellingsdaemoon.\n"
+"\n"
+"Sommige funksies, soos temas, klanke of agtergrondinstellings mag dalk nie "
+"korrek werk nie."
+
+#: mate-session/gsm-gsd.c:53
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Die laaste foutboodskap was:\n"
+"\n"
+
+#: mate-session/gsm-gsd.c:58
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"MATE sal probeer om die Instellingsdaemoon oor te begin wanneer jy weer "
+"aanmeld."
+
+#: mate-session/gsm-gsd.c:115
+msgid "There was an unknown activation error."
+msgstr "Daar was 'n onbekende aktiveringsfout."
+
+#: mate-session/gsm-gsd.c:157
+msgid "The Settings Daemon restarted too many times."
+msgstr "Die Instellingsdaemoon het te veel kere oorbegin."
+
+#: mate-session/logout.c:355
+msgid "Are you sure you want to log out?"
+msgstr "Is jy seker jy wil afmeld?"
+
+#: mate-session/logout.c:372
+msgid "_Save current setup"
+msgstr "_Stoor huidige opstelling"
+
+#: mate-session/logout.c:393
+msgid "Action"
+msgstr "Aksie"
+
+#: mate-session/logout.c:410
+msgid "_Log out"
+msgstr "_Meld af"
+
+#: mate-session/logout.c:416
+msgid "Sh_ut down"
+msgstr "Sl_uit af"
+
+#: mate-session/logout.c:423
+msgid "_Restart the computer"
+msgstr "_Herbegin die rekenaar"
+
+#: mate-session/main.c:81
+msgid "Specify a session name to load"
+msgstr "Spesifieer 'n sessie-naam om te laai"
+
+#: mate-session/main.c:82
+msgid "Only read saved sessions from the default.session file"
+msgstr "Lees slegs gestoorde sessiesuit die verstek.sessie-lêer"
+
+#: mate-session/main.c:83
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr "Millisekonde gewag vir kliënte om te registreer (0=vir altyd)"
+
+#: mate-session/main.c:84
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr "Millisekonde gewag vir kliënte om te reageer (0=vir altyd)"
+
+#: mate-session/main.c:85
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr "Millisekonde gewag vir kliënte om te sterf (0=vir altyd)"
+
+#: mate-session/main.c:265
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"Kon nie internetadres vir %s opsoek nie.\n"
+"Die sal verhoed dat MATE behoorlik funksioneer.\n"
+"Die probleem mag moontlik opgelos word deur \n"
+"%s by die lêer /etc/gashere te voeg."
+
+#: mate-session/main.c:272
+msgid "Log in Anyway"
+msgstr "Meld in elk geval aan"
+
+#: mate-session/main.c:273
+msgid "Try Again"
+msgstr "Probeer weer"
+
+#: mate-session/manager.c:223
+msgid "Your session has been saved"
+msgstr "Jou sessie is gestoor"
+
+#: mate-session/manager.c:527
+msgid "Wait abandoned due to conflict."
+msgstr "Die program het opgehou wag as gevolg van 'n konflik."
+
+#: mate-session/manager.c:1035
+#, c-format
+msgid "No response to the %s command."
+msgstr "Geen reaksie op die %s-bevel nie."
+
+#: mate-session/manager.c:1036
+msgid "The program may be slow, stopped or broken."
+msgstr "Die program is dalk stadig, stukkend of dit het gestop."
+
+#: mate-session/manager.c:1037
+msgid "You may wait for it to respond or remove it."
+msgstr "Jy mag wag totdat dit reageer, of dit verwyder."
+
+#: mate-session/manager.c:1760
+msgid "Restart abandoned due to failures."
+msgstr "Herbegin gestaak as gevolg van falings."
+
+#: mate-session/manager.c:1956
+msgid "A session shutdown is in progress."
+msgstr "'n Sessie-afsluiting neem tans plaas."
+
+#: mate-session/save-session.c:46
+msgid "Set the current session"
+msgstr "Stel die huidige sessie"
+
+#: mate-session/save-session.c:47
+msgid "Kill session"
+msgstr "Stop sessie"
+
+#: mate-session/save-session.c:48
+msgid "Use dialog boxes"
+msgstr "Gebruik dialoogkassies"
+
+#: mate-session/save-session.c:146 mate-session/save-session.c:179
+msgid "Could not connect to the session manager"
+msgstr "Kon nie met sessiebestuurder koppel nie"
+
+#: mate-session/session-names.c:143
+msgid "The session name cannot be empty"
+msgstr "Die sessienaam kan nie leeg wees nie"
+
+#: mate-session/session-names.c:154
+msgid "The session name already exists"
+msgstr "Die sessienaam bestaan reeds"
+
+#: mate-session/session-names.c:188
+msgid "Add a new session"
+msgstr "Voeg 'n nuwe sessie by"
+
+#: mate-session/session-names.c:218
+msgid "Edit session name"
+msgstr "Redigeer sessienaam"
+
+#: mate-session/session-properties-capplet.c:122
+msgid "_Edit"
+msgstr "_Redigeer"
+
+#: mate-session/session-properties-capplet.c:190
+msgid ""
+"Some changes are not saved.\n"
+"Is it still OK to exit?"
+msgstr ""
+"Sommige veranderings is nie gestoor nie.\n"
+"Is dit nog steeds OK om af te sluit?"
+
+#: mate-session/session-properties-capplet.c:240
+#: mate-session/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Sessies"
+
+#: mate-session/session-properties-capplet.c:273
+msgid "Show splash screen on _login"
+msgstr "Vertoon spatskerm by _aanmelding"
+
+#: mate-session/session-properties-capplet.c:284
+#, fuzzy
+msgid "As_k on logout"
+msgstr "_Waarsku by afmelding"
+
+#: mate-session/session-properties-capplet.c:295
+msgid "Automatically save chan_ges to session"
+msgstr "Stoor outomaties veran_deringe aan sessie"
+
+#: mate-session/session-properties-capplet.c:306
+msgid "_Sessions:"
+msgstr "_Sessies:"
+
+#: mate-session/session-properties-capplet.c:324
+msgid "Session Name"
+msgstr "Sessienaam"
+
+#: mate-session/session-properties-capplet.c:375
+msgid "Session Options"
+msgstr "Sessie-opsies"
+
+#: mate-session/session-properties-capplet.c:384
+msgid "Current Session"
+msgstr "Huidige sessie"
+
+#: mate-session/session-properties-capplet.c:393
+msgid "Additional startup _programs:"
+msgstr "Bykomende selflaai _programme:"
+
+#: mate-session/session-properties-capplet.c:414
+msgid "Command"
+msgstr "Bevel"
+
+#: mate-session/session-properties-capplet.c:446
+msgid "Startup Programs"
+msgstr "Selflaaiprogramme"
+
+#: mate-session/session-properties.c:49
+msgid "Remove the currently selected client from the session."
+msgstr "Verwyder die huidige geselekteerde kliënt van die sessie."
+
+#: mate-session/session-properties.c:55
+msgid "Apply changes to the current session"
+msgstr "Pas veranderinge op huidige sessie toe"
+
+#: mate-session/session-properties.c:61
+msgid "The list of programs in the session."
+msgstr "Die lys van programme in die sessie."
+
+#: mate-session/session-properties.c:88
+msgid "Currently running _programs:"
+msgstr "_Programme wat tans loop:"
+
+#: mate-session/session-properties.c:104
+msgid "Initialize session settings"
+msgstr "Inisialiseer sessie-instellings"
+
+#: mate-session/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Stel jou sessies op"
+
+#: mate-session/splash-widget.c:43
+msgid "Sawfish Window Manager"
+msgstr "Sawfish-vensterbestuurder"
+
+#: mate-session/splash-widget.c:44
+msgid "Marco Window Manager"
+msgstr "Marco-vensterbestuurder"
+
+#: mate-session/splash-widget.c:45
+msgid "Window Manager"
+msgstr "Vensterbestuurder"
+
+#: mate-session/splash-widget.c:46
+msgid "The Panel"
+msgstr "Die Paneel"
+
+#: mate-session/splash-widget.c:47
+msgid "Session Manager Proxy"
+msgstr "Sessiebestuurder-instaanbediener"
+
+#: mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "Caja"
+
+#: mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr "Werkarea-instellings"
+
+#: mate-session/startup-programs.c:292
+msgid "_Startup Command:"
+msgstr "_Selflaaibevel:"
+
+#: mate-session/startup-programs.c:298
+msgid "Startup Command"
+msgstr "Selflaaibevel"
+
+#: mate-session/startup-programs.c:347
+msgid "The startup command cannot be empty"
+msgstr "Die selflaaibevel kan nie leeg wees nie"
+
+#: mate-session/startup-programs.c:384
+msgid "Add Startup Program"
+msgstr "Voeg Selflaaiprogram by"
+
+#: mate-session/startup-programs.c:405
+msgid "Edit Startup Program"
+msgstr "Redigeer Selflaaiprogram"
diff --git a/po/am.po b/po/am.po
new file mode 100644
index 0000000..8c0f75f
--- /dev/null
+++ b/po/am.po
@@ -0,0 +1,485 @@
+# Translations into the Amharic Language.
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# This file is distributed under the same license as the mate-session package.
+# Ge'ez Frontier Foundation <[email protected]>, 2002.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-01-11 08:59+0000\n"
+"PO-Revision-Date: 2003-01-24 09:30+EDT\n"
+"Last-Translator: Ge'ez Frontier Foundation <[email protected]>\n"
+"Language-Team: Amharic <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: mate-session/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:6
+msgid ""
+"Preferred Image to use for the splash screen when logging in to the MATE "
+"Desktop"
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "ክፍለ ጊዜዎችን አስቀምጥ"
+
+#: mate-session/mate-session.schemas.in.h:8
+msgid "Show the splash screen"
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:9
+msgid "Show the splash screen when the session starts up"
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:10
+msgid "Splash Screen Image"
+msgstr ""
+
+#: mate-session/gsm-client-editor.c:97 mate-session/startup-programs.c:314
+msgid "_Order:"
+msgstr "ቅደም _ተከተል፦"
+
+#: mate-session/gsm-client-editor.c:99
+msgid "The order in which applications are started in the session."
+msgstr "በክፍለ ጊዜ ውስጥ ፕሮግራሞቹ የሚነሱበት ቅድመ ተከተል።"
+
+#: mate-session/gsm-client-editor.c:106
+msgid "What happens to the application when it exits."
+msgstr "ፕሮግራሙ በሚወጣበት ጊዜ ምን ተፈጠረ።"
+
+#: mate-session/gsm-client-editor.c:109
+msgid "_Style:"
+msgstr "_ዘይቤ፦"
+
+#: mate-session/gsm-client-list.c:150
+#: mate-session/session-properties-capplet.c:412
+msgid "Order"
+msgstr "ቅደም ተከተል"
+
+#: mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr "ዘይቤ"
+
+#: mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr "ሁኔታ"
+
+#: mate-session/gsm-client-list.c:165
+msgid "Program"
+msgstr "ፕሮግራም"
+
+#: mate-session/gsm-client-row.c:31
+msgid "Inactive"
+msgstr "የማይንቀሳቀስ"
+
+#: mate-session/gsm-client-row.c:32
+msgid "Waiting to start or already finished."
+msgstr "ለመጀመር በመጠበቅ ላይ ወይም ጨርሷል።"
+
+#: mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr "እየጀመረ ነው"
+
+#: mate-session/gsm-client-row.c:35
+msgid "Started but has not yet reported state."
+msgstr "ጀምሯል ግን ሁኔታውን የመዘገብ ሁኔታ የለውም።"
+
+#: mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr "በሥራ ላይ"
+
+#: mate-session/gsm-client-row.c:38
+msgid "A normal member of the session."
+msgstr "የተለመደ የክፍለ ጊዘው አባል"
+
+#: mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr "በማስቀመጥ ላይ"
+
+#: mate-session/gsm-client-row.c:41
+msgid "Saving session details."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr "ያልታወቀ"
+
+#: mate-session/gsm-client-row.c:44
+msgid "State not reported within timeout."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr "የተለመደ"
+
+#: mate-session/gsm-client-row.c:51
+msgid "Unaffected by logouts but can die."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr "እንደገና አስጀምሩ"
+
+#: mate-session/gsm-client-row.c:54
+msgid "Never allowed to die."
+msgstr "ለመሞት በፍጹም አልተፈቀደም።"
+
+#: mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr "የማይፈለግ"
+
+#: mate-session/gsm-client-row.c:57
+msgid "Discarded on logout and can die."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr "ምርጫዎች"
+
+#: mate-session/gsm-client-row.c:60
+msgid "Always started on every login."
+msgstr ""
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: mate-session/gsm-gsd.c:41
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+
+#: mate-session/gsm-gsd.c:53
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+
+#: mate-session/gsm-gsd.c:58
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+
+#: mate-session/gsm-gsd.c:115
+msgid "There was an unknown activation error."
+msgstr ""
+
+#: mate-session/gsm-gsd.c:157
+msgid "The Settings Daemon restarted too many times."
+msgstr ""
+
+#: mate-session/logout.c:355
+msgid "Are you sure you want to log out?"
+msgstr "ዘግቶ ለመውጣት እርግጠኛ ነዎት?"
+
+#: mate-session/logout.c:372
+msgid "_Save current setup"
+msgstr "አሁኑ የተቋቋመውን _አስቀምጡ"
+
+#: mate-session/logout.c:393
+msgid "Action"
+msgstr "ትግባር"
+
+#: mate-session/logout.c:410
+#, fuzzy
+msgid "_Log out"
+msgstr "_ዘግተው ይውጡ"
+
+#: mate-session/logout.c:416
+#, fuzzy
+msgid "Sh_ut down"
+msgstr "_አጥፉ"
+
+#: mate-session/logout.c:423
+msgid "_Restart the computer"
+msgstr "ኮምፒውተሩን _እንደገና አስጀምሩ"
+
+#: mate-session/main.c:81
+msgid "Specify a session name to load"
+msgstr ""
+
+#: mate-session/main.c:82
+msgid "Only read saved sessions from the default.session file"
+msgstr ""
+
+#: mate-session/main.c:83
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr ""
+
+#: mate-session/main.c:84
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr ""
+
+#: mate-session/main.c:85
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr ""
+
+#: mate-session/main.c:265
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+
+#: mate-session/main.c:272
+msgid "Log in Anyway"
+msgstr "ለማንኛውም ዝምብሎ ይግባ"
+
+#: mate-session/main.c:273
+msgid "Try Again"
+msgstr "እንደገና ይሞክሩ"
+
+#: mate-session/manager.c:223
+msgid "Your session has been saved"
+msgstr ""
+
+#: mate-session/manager.c:527
+msgid "Wait abandoned due to conflict."
+msgstr ""
+
+#: mate-session/manager.c:1035
+#, c-format
+msgid "No response to the %s command."
+msgstr ""
+
+#: mate-session/manager.c:1036
+msgid "The program may be slow, stopped or broken."
+msgstr ""
+
+#: mate-session/manager.c:1037
+msgid "You may wait for it to respond or remove it."
+msgstr ""
+
+#: mate-session/manager.c:1760
+msgid "Restart abandoned due to failures."
+msgstr ""
+
+#: mate-session/manager.c:1956
+msgid "A session shutdown is in progress."
+msgstr ""
+
+#: mate-session/save-session.c:46
+#, fuzzy
+msgid "Set the current session"
+msgstr "የአሁኑን ክፍለ ጊዜ አስቀምጡ"
+
+#: mate-session/save-session.c:47
+msgid "Kill session"
+msgstr "ክፍለ ጊዜውን አቋርጥ"
+
+#: mate-session/save-session.c:48
+msgid "Use dialog boxes"
+msgstr ""
+
+#: mate-session/save-session.c:146 mate-session/save-session.c:179
+msgid "Could not connect to the session manager"
+msgstr ""
+
+#: mate-session/session-names.c:143
+msgid "The session name cannot be empty"
+msgstr ""
+
+#: mate-session/session-names.c:154
+msgid "The session name already exists"
+msgstr ""
+
+#: mate-session/session-names.c:188
+msgid "Add a new session"
+msgstr "አዲስ የክፍለ ጊዜው ጨምር"
+
+#: mate-session/session-names.c:218
+msgid "Edit session name"
+msgstr "የክፍለ ጊዜው ስም ያስተካክሉ"
+
+#: mate-session/session-properties-capplet.c:122
+msgid "_Edit"
+msgstr "_አስተካክል"
+
+#: mate-session/session-properties-capplet.c:190
+msgid ""
+"Some changes are not saved.\n"
+"Is it still OK to exit?"
+msgstr ""
+"አንዳንድ ለውጦች አልተቀመጡም።\n"
+"አሁንም ቢሆን ቢወጣ ምንም አይደለም?"
+
+#: mate-session/session-properties-capplet.c:240
+#: mate-session/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "ክፍለ ጊዜዎች"
+
+#: mate-session/session-properties-capplet.c:273
+msgid "Show splash screen on _login"
+msgstr "የሚፈነጠቅ መመልከቻ ሲጀምር _አሳይ"
+
+#: mate-session/session-properties-capplet.c:284
+#, fuzzy
+msgid "As_k on logout"
+msgstr "ሲወጣ _አስታውቅ"
+
+#: mate-session/session-properties-capplet.c:295
+msgid "Automatically save chan_ges to session"
+msgstr "ለክፍለ ጊዜው ለውጦችን አውቶማቲካሊ አስቀምጥ"
+
+#: mate-session/session-properties-capplet.c:306
+msgid "_Sessions:"
+msgstr "_ክፍለ ጊዜዎች፦"
+
+#: mate-session/session-properties-capplet.c:324
+msgid "Session Name"
+msgstr "የክፍለ ጊዜው ስም"
+
+#: mate-session/session-properties-capplet.c:375
+msgid "Session Options"
+msgstr "የአሁኑን ክፍለ ይዞታዎች"
+
+#: mate-session/session-properties-capplet.c:384
+msgid "Current Session"
+msgstr "የአሁኑን ክፍለ ጊዜው"
+
+#: mate-session/session-properties-capplet.c:393
+msgid "Additional startup _programs:"
+msgstr "ተጨማሪ ፕሮግራሞቹን አስጀምር"
+
+#: mate-session/session-properties-capplet.c:414
+msgid "Command"
+msgstr "ትእዛዝ"
+
+#: mate-session/session-properties-capplet.c:446
+msgid "Startup Programs"
+msgstr "ፕሮግራሞቹን አስጀምር"
+
+#: mate-session/session-properties.c:49
+msgid "Remove the currently selected client from the session."
+msgstr ""
+
+#: mate-session/session-properties.c:55
+msgid "Apply changes to the current session"
+msgstr ""
+
+#: mate-session/session-properties.c:61
+msgid "The list of programs in the session."
+msgstr ""
+
+#: mate-session/session-properties.c:88
+msgid "Currently running _programs:"
+msgstr "አሁን በመስራት ላይ ያለው _ፕሮግራሞች፦"
+
+#: mate-session/session-properties.c:104
+msgid "Initialize session settings"
+msgstr "ለክፍለ ጊዜው ይዞታ ምልክት አድርጉ"
+
+#: mate-session/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "ክፍለ ጊዜዎትን ያስተካክሉ"
+
+#: mate-session/splash-widget.c:43
+msgid "Sawfish Window Manager"
+msgstr "Sawfish መስኮቱን መቆጣጠሪያ"
+
+#: mate-session/splash-widget.c:44
+msgid "Marco Window Manager"
+msgstr "Marco መስኮቱን መቆጣጠሪያ"
+
+#: mate-session/splash-widget.c:45
+msgid "Window Manager"
+msgstr "መስኮቱን መቆጣጠሪያ"
+
+#: mate-session/splash-widget.c:46
+msgid "The Panel"
+msgstr "ፓነሉ"
+
+#: mate-session/splash-widget.c:47
+msgid "Session Manager Proxy"
+msgstr ""
+
+#: mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "Caja"
+
+#: mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr "የሠሌዳ ምርጫዎች"
+
+#: mate-session/startup-programs.c:292
+msgid "_Startup Command:"
+msgstr ""
+
+#: mate-session/startup-programs.c:298
+msgid "Startup Command"
+msgstr ""
+
+#: mate-session/startup-programs.c:347
+msgid "The startup command cannot be empty"
+msgstr ""
+
+#: mate-session/startup-programs.c:384
+msgid "Add Startup Program"
+msgstr ""
+
+#: mate-session/startup-programs.c:405
+msgid "Edit Startup Program"
+msgstr ""
+
+#~ msgid "Save Current Session"
+#~ msgstr "የአሁኑን ክፍለ ጊዜ አስቀምጡ"
+
+#~ msgid "Priority"
+#~ msgstr "ቅድሚያ"
+
+#~ msgid "Audio Settings"
+#~ msgstr "የድምጽ ይዞታዎች"
+
+#~ msgid "Screensaver"
+#~ msgstr "የመመልከቻው አዳኝ"
+
+#~ msgid "Background Settings"
+#~ msgstr "የመደቡ ይዞታዎች"
+
+#~ msgid "Mouse Settings"
+#~ msgstr "የመክፈቻና የመፈለጊያው ይዞታዎች"
+
+#~ msgid "_Priority:"
+#~ msgstr "_ቅድሚያ፦"
diff --git a/po/ar.po b/po/ar.po
new file mode 100644
index 0000000..05bc033
--- /dev/null
+++ b/po/ar.po
@@ -0,0 +1,596 @@
+# translation of mate-session.HEAD.po to Arabic
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) 2004 THE PACKAGE'S COPYRIGHT HOLDER
+# Sayed Jaffer Al-Mosawi <[email protected]>, 2002.
+# Djihed Afifi <[email protected]>, 2006.
+# Anas Husseini <[email protected]>, 2007.
+# Anas Afif Emad <[email protected]>, 2008.
+# Khaled Hosny <[email protected]>, 2006, 2007, 2008, 2009, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-23 14:35+0300\n"
+"PO-Revision-Date: 2010-09-23 14:35+0300\n"
+"Last-Translator: Khaled Hosny <[email protected]>\n"
+"Language-Team: Arabic <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ar\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
+"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
+"X-Generator: Virtaal 0.6.1\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "اختر أمرا"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "أضِف برنامجا لبداية التشغيل"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "حرّر برنامج بدء التشغيل"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "لا يمكن أن يكون أمر بدء التشغيل فارغًا"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "أمر بدء التشغيل غير سليم"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "مُفعّل"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "أيقونة"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "البرنامج"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "تفضيلات برمجيات بدء التشغيل"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "بلا اسم"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "بلا وصف"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "إصدارة هذا التطبيق"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "تعذّر عرض مستند المساعدة"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "جنوم"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "تولجك هذه الجلسة في جنوم"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "الجلسة المبدئية"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "مدير الملفات"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "إذا فُعِّل فستسأل mate-session المستخدم قبل إنهاء جلسة."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "إذا فُعِّل فستحفظ mate-session الجلسة تلقائيا."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "قائمة بالتطبيقات الموجودة في الجلسة المبدئية"
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"قائمة بالمكونات المطلوبة كجزء من الجلسة. (كل عنصر يسمي مفتاحا تحت \"/desktop/"
+"mate/session/required-components\".) عادة لن يسمح عنصر التحكم في الجلسات "
+"بحذف مكون مطلوب من الجلسة، وسيعيد مدير الجلسات أي عناصر مطلوبة تحذف."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "محث الخروج"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "الشريط"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "مكونات الجلسة المطلوبة"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "احفظ الجلسات"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"يوفر مدير الملفات أيقونات سطح المكتب ويمكنك من التفاعل مع الملفات المحفوظة."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "عدد الدقائق من السكون قبل اعتبار الجلسة ساكنة."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"توفر اللوحة شريطا في قمة وقاع الشاشة تحتوي القوائم و قائمة التوافذ وأيقونات "
+"الحالة والساعة إلخ."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"مدير النوافذ هو لالبرنامج الذي يرسم شريط عنوان وحدود النوافذ، ويمكنك من نقل "
+"وتحجيم النوافذ."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "مدة الانتظار قبل اعتبار الجلسة خاملة"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "مدير النوافذ"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>ما زالت بعض البرامج تعمل:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr "بانتظار انتهاء البرامج. مقاطعة هذه البرامج قد يتسبب في فقدان العمل."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "اختر التطبيقات التي تريد تشغيلها عند ولوجك"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "تطبيقات بدء التشغيل"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "برامج بدء الت_شغيل الإضافية:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "تصفّح…"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "الأ_مر:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "ال_تعليق:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "الخيارات"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "برامج بدء التشغيل"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "ت_ذكّر تلقائيا التطبيقات المشغلة عند تسجيل الخروج"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "الا_سم:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_تذكّر التطبيقات المشغلة حاليًا"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "ليس هذا ملف .desktop سليم"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "إصدارة ملف سطح مكتب غير معروفة: '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "يجري بدء %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "لا يقبل التطبيق مستندات في سطر الأوامر"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "خيار إطلاق غير معروف: %Id"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "تعذّر تمرير مسارات الملفات إلى مدخلة سطح مكتب 'Type=Link'"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "ليس عنصرا يمكن إطلاقه"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "عطّل الاتصال بمدير الجلسات"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "حدد ملفا يحتوي الاعدادات المحفوظة"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "ملف"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "حدد رقم معرّف إدارة الجلسات"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "معرّف"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "خيارات إدارة الجلسات:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "اعرض خيارات إدارة الجلسات"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"هناك مشكلة مع خادوم الإعدادات.\n"
+"(%s خرج بالحالة %Id)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "الأيقونة '%s' غير موجودة"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "مجهول"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "ما زال أحد البرامج يعمل:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "ما زالت بعض البرامج تعمل:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr "بانتظار انتهاء البرامج. مقاطعة هذه البرامج قد يتسبب في فقد بيانات."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "بدّل المستخدم بالرغم من هذا"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "اخرج بالرغم من هذا"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "علّق بالرغم من هذا"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "أسبِت بالرغم من هذا"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "أغلق بالرغم من هذا"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "أعد التشغيل بالرغم من هذا"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "أوصد الشاشة"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "ألغ"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "سيتم إخراجك حالا."
+msgstr[1] "سيتم إخراجك خلال ثانية واحدة."
+msgstr[2] "سيتم إخراجك خلال ثانيتين."
+msgstr[3] "سيتم إخراجك خلال %Id ثوان."
+msgstr[4] "سيتم إخراجك خلال %Id ثانية."
+msgstr[5] "سيتم إخراجك خلال %Id ثانية."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "سيتم إطفاء النظام حالا."
+msgstr[1] "سيتم إطفاء النظام خلال ثانية واحدة."
+msgstr[2] "سيتم إطفاء النظام خلال ثانيتين."
+msgstr[3] "سيتم إطفاء النظام خلال %Id ثوان."
+msgstr[4] "سيتم إطفاء النظام خلال %Id ثانية."
+msgstr[5] "سيتم إطفاء النظام خلال %Id ثوان."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "حاليا أنت والج باسم \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "أأخرج من هذا النظام الآن؟"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "ب_دّل المستخدم"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "ا_خرج"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "أأطفئ هذا النظام الآن؟"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "_علّق"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "أ_سبِت"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "أعِد الت_شغيل"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "أ_طفئ"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "لا يستجيب"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "يعيق هذا البرنامج الخروج."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "يرفض العملاء الجدد لأن الجلسة يتم إطفاؤها حاليا\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "تعذّر إنشاء مقبس استماع ICE: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "تعذّر بدء جلسة الولوج (وتعذّر الاتصال بالخادوم الرسومي)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "تخطى مجلدات بدء التشغيل القياسية"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "مفتاح MateConf المستخدم للبحث عن الجلسة المبدئية"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "فعّل كود تتبع الأخطاء"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "لا تُحمّل التطبيقات التي حددها المستخدم"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - مدير جلسات جنوم"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "اخرج"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "اخرج، متجاهلاً أية معيقات موجودة"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "أعرض حوار تسجيل الخروج"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "أعرض حوار إيقاف التشغيل"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "استخدم صناديق الحوار للأخطاء"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "اضبط اسم الجلسة الحالية"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "الاسم"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "اقتل الجلسة"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "لا تطلب تأكيدا"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "تعذّر الاتصال بمدير الجلسات"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "تم استدعاء البرنامج بخيارات متضاربة"
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr ""
+#~ "بانتظار انتهاء البرنامج. مقاطعة هذا البرنامج قد يتسبب في فقد بيانات."
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "طُلِب دعم التقنية المُعِينَة لهذه الجلسة، لكن سجل الإعانة غير موجود. تأكد من "
+#~ "أن حزمة AT-SPI مثبّتة من فضلك. بُدِأت جلستك بدون دعم التقنية المُعِينة."
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "غلاف تسجيل AT SPI"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "مساعد عفريت MATE Settings"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "إذا فـُعّل فستحفظ mate-session الجلسة آليا. في بقية الحالات سيكون لحوار "
+#~ "تسجيل الخروج خيارا لحفظ الجلسة."
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr ""
+#~ "الصورة المحبذة التي ستستخدم في شاشة الترحيب عند تسجيل الدخول في مكتب جنوم"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "أظهر شاشة البدأ"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "أظهر شاشة البدأ عند بدأ الجلسة"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+#~ msgstr ""
+#~ "هذه قيمة مسار نسبية بناءً على الدليل $datadir/pixmaps/. الدلائل التحتية "
+#~ "وأسماء الصور هي قيم صالحة. تغيير هذه القيمة سيؤثر على الجلسة التالية."
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr " - شاشة بداية جنوم"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "شاشة بداية جنوم"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "لا يمكن أن يكون اسم برنامج بدء التشغيل فارغًا"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "تفضيلات الجلسة"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "الخيار المنتقى في حوار تسجيل الخروج"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "هذا الخيار يتم تحديده في حوار تسجيل الخروج، القيم الممكنة هي \"تسجيل "
+#~ "الخروج\" للخروج، \"إطفاء\" لإيقاف النظام و \"أعد التّشغيل\" لإعادة التّشغيل "
+#~ "النظام."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "اضبط جلساتك"
+
+#~ msgid "Sessions"
+#~ msgstr "الجلسات"
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "غلاف عفريت MATE Keyring"
+
+#~ msgid "Session management"
+#~ msgstr "إدارة الجلسات"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "مكتبة واجهة جنوم + EggSMClient"
+
+#~ msgid ""
+#~ "The Window manager that mate-session will start. Valid values are "
+#~ "\"marco\" and \"compiz\"."
+#~ msgstr ""
+#~ "مدير النوافذ الذي ستشغله جلسة جنوم. القيم الممكنة هي \"marco\" و "
+#~ "\"compiz\"."
+
+#~ msgid "Window Manager to start"
+#~ msgstr "مدير النوافذ سيُشغّل"
+
+#~ msgid "gtk-cancel"
+#~ msgstr "gtk-cancel"
diff --git a/po/as.po b/po/as.po
new file mode 100644
index 0000000..a5f1ea5
--- /dev/null
+++ b/po/as.po
@@ -0,0 +1,579 @@
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Amitakhya Phukan <[email protected]>, 2009, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: as\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug."
+"cgi?product=mate-session&component=general\n"
+"POT-Creation-Date: 2009-12-14 20:30+0000\n"
+"PO-Revision-Date: 2010-01-08 17:34+0530\n"
+"Last-Translator: Amitakhya Phukan <[email protected]>\n"
+"Language-Team: Assamese <>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Lokalize 0.2\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "আদেশ নিৰ্ব্বাচন কৰক"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "প্ৰাৰম্ভিক কাৰ্য্যক্ৰম যোগ কৰক"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "প্ৰাৰম্ভিক কাৰ্য্যক্ৰম সম্পাদন কৰক"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "প্ৰাৰম্ভিক আদেশ ৰিক্ত ৰখা নাযাব"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "প্ৰাৰম্ভিক আদেশ অবৈধ"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "সক্ৰিয়"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "আইকন"
+
+#
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "কাৰ্য্যক্ৰম"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "প্ৰাৰম্ভিক অনুপ্ৰয়োগ সংক্ৰান্ত পছন্দ"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "নাম নোহোৱা"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "বিৱৰণ অনুপস্থিত"
+
+#
+#: ../capplet/main.c:37 ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "অনুপ্ৰয়োগৰ সংস্কৰণ"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "সহায়ক নথিপত্ৰ প্ৰদৰ্শন কৰিবলৈ ব্যৰ্থ"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "MATE Settings ডেমন সহায়ক"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "এই অধিবেশনে আপোনাক MATE ত প্ৰৱেশ কৰাই"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "অবিকল্পিত অধিবেশন"
+
+#
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "নথিপত্ৰ পৰিচালক"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"সক্ৰিয় থাকিলে, অধিবেশন সমাপ্ত কৰাৰ আগতে mate-session এ ব্যৱহাৰকৰ্তাক প্ৰমপ্ট কৰিব ।"
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"সক্ৰিয় থাকিলে, mate-session দ্বাৰা স্বয়ংক্ৰিয়ৰূপে অধিবেশন সংৰক্ষণ কৰা হ'ব । অন্যথা, "
+"প্ৰস্থান সম্বাদ বক্সত অধিবেশন সংৰক্ষণৰ বিকল্প উপস্থিত কৰা হ'ব ।"
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "অবিকল্পিত অধিবেশনৰ বাবে অনুপ্ৰয়োগৰ তালিকা ।"
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"অধিবেশনৰ বাবে আৱশ্যক সমাগ্ৰীৰ তালিকা । (প্ৰতি বস্তুৱে "
+"\"/desktop/mate/
session/required-components\" ত এটা চাবি চিহ্নিত কৰে) । প্ৰাৰম্ভিক "
+"
অনুপ্ৰয়োগৰ পছন্দ নিৰ্ধাৰণৰ বৈশিষ্ট্যৰ ফলত ব্যৱহাৰকৰ্তাই অধিবেশনৰ কোনো আৱশ্যক "
+"সামগ্ৰী আঁতৰাব নোৱাৰে, আৰু কোনো সমাগ্ৰী আঁতৰুৱা হ'লে, অধিবেশন পৰিচালন ব্যৱস্থা "
+"দ্বাৰা তাক পুনঃ যোগ কৰা হ'ব ।"
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "প্ৰস্থান প্ৰম্পট"
+
+#
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "পেনেল"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "প্ৰৱেশৰ প্ৰাথমিক পৰ্দাত প্ৰদৰ্শনৰ উদ্দেশ্যে চিহ্নিত পছন্দৰ ছবি"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "অধিবেশনৰ আৱশ্যক সামগ্ৰী"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "অধিবেশন সংৰক্ষণ কৰক"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "প্ৰাথমিক পৰ্দা প্ৰদৰ্শন কৰা হ'ব"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "অধিবেশনৰ আৰম্ভণিত প্ৰাথমিক পৰ্দা প্ৰদৰ্শন কৰা হ'ব"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"নথিপত্ৰ পৰিচালন ব্যৱস্থা দ্বাৰা ডেস্কট'প আইকন উপলব্ধ কৰা হয় আৰু সংৰক্ষিত "
+"নথিপত্ৰসমূহৰ সৈতে "
+"ইন্টাৰেক্ট কৰাৰ সুবিধা উপস্থিত কৰা হয় ।"
+
+#
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "The number of minutes of inactivity before the session is considered idle."
+msgstr "মিনিটত ধাৰ্য অধিবেশনক কাম নোহোৱা চিহ্নিত কৰাৰ আগতে কাম নোহোৱা অৱস্থাৰ সময় ।"
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"পেনেলৰ সহায়ত পৰ্দাৰ ওপৰত অথবা তলৰ অংশত তালিকা, সংযোগক্ষেত্ৰ তালিকা, অৱস্থাসূচক আইকন, "
+"ঘড়ি প্ৰভৃতি বাৰ উপলব্ধ কৰা হয় ।"
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"সংযোগক্ষেত্ৰ পৰিচালক সেই কাৰ্য্যক্ৰ যাৰ সহায়ত সংযোগক্ষেত্ৰৰ শিৰোনামৰ বাৰ আৰু "
+"প্ৰান্তৰেখা আঁকা হয় আৰু সংযোগক্ষেত্ৰৰ অৱস্থান আৰু মাপ পৰিবৰ্তন কৰা সম্ভৱ হয় ।"
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"$datadir/pixmaps/ পঞ্জিকা অনুযায়ী এইটো আপেক্ষিক পাথ ৰূপে নিৰ্ধাৰিত হৈছে । উপ-"
+"পঞ্জিকা আৰু ছবিৰ নাম বৈধ । এই মান পৰিবৰ্ত্তন কৰিলে পিছৰ অধিবেশন প্ৰভাবিত হ'ব ।"
+
+#
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "অধিবেশনক কাম নোহোৱা নিৰ্ধাৰণৰ আগতে ৰখা সময়"
+
+#
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "সংযোগক্ষেত্ৰ পৰিচালক"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>কিছুমান কাৰ্য্যক্ৰম এতিয়াও চলি আছে:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"কাৰ্য্যক্ৰম সমাপ্তিৰ অপেক্ষা কৰা হৈছে । কাৰ্য্যক্ৰম বিঘ্নিত হ'লে সঞ্চালিত কামৰ ফলাফল "
+"হেৰাব পাৰে ।"
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "প্ৰৱেশ কৰাৰ সময়ত আৰম্ভ কৰাৰ উদ্দেশ্যে চিহ্নিত অনুপ্ৰয়োগ"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "প্ৰাৰম্ভিক অনুপ্ৰয়োগ"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "অতিৰিক্ত প্ৰাৰম্ভিক অনুপ্ৰয়োগ (_p):"
+
+#
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "চৰণ কৰক..."
+
+#
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "আদেশ (_m):"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "মন্তব্য (_e):"
+
+#
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "বিকল্প"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "প্ৰাৰম্ভিক অনুপ্ৰয়োগ"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "প্ৰস্থান কৰাৰ সময়ত চলমান অনুপ্ৰয়োগসমূহৰ তালিকা স্বয়ংক্ৰিয়ৰূপে মনত ৰখা হ'ব (_A)"
+
+#
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "নাম (_N):"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "বৰ্তমানে চলমান অনুপ্ৰয়োগৰ তালিকা মনত ৰখা হ'ব (_R)"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "এইটো বৈধ .desktop নথিপত্ৰ নহয়"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "ডেস্কট'প নথিপত্ৰৰ অজ্ঞাত সংস্কৰণ '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "%s আৰম্ভ কৰা হৈছে"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "এই অনুপ্ৰয়োগে আদেশ-শাৰীৰ মাধ্যমে নথিপত্ৰ গ্ৰহণ কৰা নহয়"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "প্ৰাৰম্ভকালীন বিকল্প পৰিচিত নহয় : %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "'Type=Link' ডেস্কট'প নিবেশৰ ক্ষেত্ৰত আলেখ্যনৰ URI উল্লেখ কৰা নাযাব"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "প্ৰাৰম্ভ কৰাৰ যোগ্য বস্তু নহয় "
+
+#
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "অধিবেশন পৰিচালন ব্যৱস্থাৰ সৈতে সংযোগ বিচ্ছিন্ন কৰা হ'ব"
+
+#
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "সংৰক্ষিত বিন্যাস সহ নথিপত্ৰ চিহ্নিত কৰক"
+
+#
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FILE"
+
+#
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "অধিবেশন পৰিচালনাৰ ID উল্লেখ কৰক"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "অধিবেশন পৰিচালনা সংক্ৰান্ত বিকল্প:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "অধিবেশন পৰিচালনা সংক্ৰান্ত বিকল্প প্ৰদৰ্শন কৰা হ'ব"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"বিন্যাস সেৱকত কিছু সমস্যা আছে ।\n"
+"(%s প্ৰস্থানসময়ত %d অৱস্থা উৎপন্ন হৈছে)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "'%s' নামক আইকন পোৱা নাযায়"
+
+#
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "অজ্ঞাত"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "এটা অনুপ্ৰয়োগ বৰ্তমানে চলি আছে:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "কিছুমান অনুপ্ৰয়োগ চলি আছে:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"অনুপ্ৰয়োগ সমাপ্তিৰ অপেক্ষা কৰা হৈছে । অনুপ্ৰয়োগ বিঘ্নিত হ'লে সঞ্চালিত কামৰ ফল "
+"আঁতৰুৱাৰ সম্ভাৱনা আছে ।"
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "তথাপিও ব্যৱহাৰকৰ্তা হিচাপ পৰিবৰ্তন কৰা হ'ব"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "তথাপিও প্ৰস্থান কৰা হ'ব"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "তথাপিও স্থগিত কৰা হ'ব"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "তথাপিও নিদ্ৰিত কৰা হ'ব"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "তথাপিও বন্ধ কৰা হ'ব"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "তথাপিও পুনৰাৰম্ভ কৰা হ'ব"
+
+#
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "পৰ্দা লক কৰক"
+
+#
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "বাতিল কৰক"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "%d ছেকেণ্ডৰ পিছত স্বয়ংক্ৰিয়ৰূপে আপোনাক প্ৰস্থান কৰা হ'ব ।"
+msgstr[1] "%d ছেকেণ্ডৰ পিছত স্বয়ংক্ৰিয়ৰূপে আপোনাক প্ৰস্থান কৰা হ'ব ।"
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "%d ছেকেণ্ডৰ পিছত স্বয়ংক্ৰিয়ৰূপে প্ৰণালী বন্ধ কৰা হ'ব ।"
+msgstr[1] "%d ছেকেণ্ডৰ পিছত স্বয়ংক্ৰিয়ৰূপে প্ৰণালী বন্ধ কৰা হ'ব ।"
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "বৰ্তমানে আপুনি \"%s\" পৰিচয়ে প্ৰৱেশ কৰিছে ।"
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "এতিয়াই প্ৰণালীৰ পৰা প্ৰস্থান কৰা হ'ব ?"
+
+#
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "ব্যৱহাৰকৰ্তা সলনি কৰক (_S)"
+
+#
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "প্ৰস্থান (_L)"
+
+#
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "এই মুহূৰ্তে প্ৰণালী বন্ধ কৰা হ'ব ?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "স্থগিত কৰা হ'ব (_u)"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "নিদ্ৰিত অৱস্থা (_H)"
+
+#
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "পুনৰাৰম্ভ (_R)"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "বন্ধ কৰক (_S)"
+
+#: ../mate-session/gsm-manager.c:1220 ../mate-session/gsm-manager.c:1912
+msgid "Not responding"
+msgstr "কোনো প্ৰতিক্ৰিয়া নাই"
+
+#: ../mate-session/gsm-xsmp-client.c:1206
+msgid "This program is blocking log out."
+msgstr "এই অনুপ্ৰয়োগৰ দ্বাৰা প্ৰস্থান কৰিবলৈ প্ৰতিৰোধ কৰা হৈছে ।"
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"প্ৰণালী বৰ্তমানে বন্ধ কৰাৰ প্ৰচেষ্টা কৰা হৈছে আৰু এই কাৰণে নতুন গ্ৰাহকৰ সৈতে সংযোগ "
+"স্থাপনৰ অনুৰোধ প্ৰত্যাখ্যান কৰা হৈছে ।\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ICE অপেক্ষাৰ ছ'কেট নিৰ্মাণ কৰিবলৈ ব্যৰ্থ: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "প্ৰৱেশ অধিবেশন আৰম্ভ কৰিবলৈ ব্যৰ্থ (X সেৱকৰ সৈতে সংযোগ স্থাপন কৰিবলৈ ব্যৰ্থ)"
+
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr "প্ৰমিত autostart পঞ্জিকাৰ মান উপেক্ষা কৰা হ'ব"
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr "অবিকল্পিত অধিবেশন অনুসন্ধানৰ বাবে ব্যৱহৃত MateConf চাবি"
+
+#
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr "কোড ডিবাগ ব্যৱস্থা সক্ৰিয় কৰা হ'ব"
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr "ব্যৱহাৰকৰ্তা দ্বাৰা নিৰ্ধাৰিত অনুপ্ৰয়োগ লোড কৰা ন'হ'ব"
+
+#: ../mate-session/main.c:457
+msgid " - the MATE session manager"
+msgstr "- MATE অধিবেশন পৰিচালনা ব্যৱস্থা"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- MATE ৰ স্প্লেশ্ব্ব পৰ্দা"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "MATE ৰ স্প্লেশ্ব পৰ্দা"
+
+#
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "প্ৰস্থান"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "কোনো উপস্থিত প্ৰতিৰোধ অগ্ৰাহ্য কৰি, প্ৰস্থান কৰা হ'ব"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "প্ৰস্থানৰ সম্বাদ বক্স প্ৰদৰ্শন কৰা হ'ব"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "বন্ধ কৰাৰ সম্বাদ বক্স প্ৰদৰ্শন কৰা হ'ব"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "ত্ৰুটিৰ ক্ষেত্ৰত সম্বাদ বক্স ব্যৱহাৰ কৰক"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "বৰ্তমান অধিবেশনৰ নাম নিৰ্ধাৰণ কৰক"
+
+#
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAME"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "অধিবেশন অন্ত কৰক"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "নিশ্চিত কৰাৰ প্ৰয়োজন নাই"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "অধিবেশন পৰিচালনব্যৱস্থাৰ সৈতে সংযোগ স্থাপন কৰিবলৈ ব্যৰ্থ"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "দ্বন্দ্বযুক্ত বিকল্প সহ অনুপ্ৰয়োগক কল কৰা হৈছে"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "প্ৰাৰম্ভিক প্ৰোগ্ৰামেৰ নাম উল্লেখ কৰা আবশ্যক"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "এই সেশানৰ বাবে ব্যবহাৰেৰ বিশেষ সহায়ক প্ৰযুক্তিৰ অনুৰোধ কৰা হৈছে, কিন্তু বিশেষ "
+#~ "সহায়ক প্ৰযুক্তি ৰেজিস্ট্ৰি সনাক্ত কৰা নাযায় । অনুগ্ৰহ কৰে পৰীক্ষা কৰক AT-SPI "
+#~ "প্যাকেজ ইনস্টল কৰা হৈছে নে নাই । বিশেষ সহায়ক প্ৰযুক্তি নোহোৱাকে, বৰ্তমান সেশান "
+#~ "আৰম্ভ কৰা হৈছে ।"
+
+#
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "AT SPI Registry Wrapper"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "সেশান সংক্ৰান্ত পৰিবৰ্তন"
+
diff --git a/po/ast.po b/po/ast.po
new file mode 100644
index 0000000..15b2c93
--- /dev/null
+++ b/po/ast.po
@@ -0,0 +1,631 @@
+# translation of mate-session-2.0.po to Asturian
+# Asturian translation for mate-session
+# Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007
+# This file is distributed under the same license as the mate-session package.
+#
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2007.
+# Xose S. Puente <[email protected]>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session-2.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-10 09:41+0100\n"
+"PO-Revision-Date: 2009-02-10 01:53+0100\n"
+"Last-Translator: Mikel González <[email protected]>\n"
+"Language-Team: Asturian <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2009-02-10 00:28+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../capplet/gsm-app-dialog.c:126
+msgid "Select Command"
+msgstr "Comandu Selección"
+
+#: ../capplet/gsm-app-dialog.c:187
+msgid "Add Startup Program"
+msgstr "Amestar Programa d'Arranque"
+
+#: ../capplet/gsm-app-dialog.c:191
+msgid "Edit Startup Program"
+msgstr "Remanar Programa d'Arranque"
+
+#: ../capplet/gsm-properties-dialog.c:132
+msgid "No description"
+msgstr "Ensin descrición"
+
+#: ../capplet/gsm-properties-dialog.c:952
+msgid "The name of the startup program cannot be empty"
+msgstr "El nome del comandu d'arranque nun pue tar vacíu"
+
+#: ../capplet/gsm-properties-dialog.c:956
+msgid "The startup command cannot be empty"
+msgstr "El comandu d'arranque nun puede tar vacíu"
+
+#: ../capplet/gsm-properties-dialog.c:962
+msgid "The startup command is not valid"
+msgstr "El comandu d'arranque nun ye válidu"
+
+#: ../capplet/gsm-properties-dialog.c:1279
+msgid "Enabled"
+msgstr "Activáu"
+
+#: ../capplet/gsm-properties-dialog.c:1292
+msgid "Icon"
+msgstr "Iconu"
+
+#: ../capplet/gsm-properties-dialog.c:1303
+msgid "Program"
+msgstr "Programa"
+
+#: ../capplet/gsm-properties-dialog.c:1453
+#: ../data/session-properties.glade.h:6
+msgid "Sessions Preferences"
+msgstr "Preferencies de Sesión"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:508
+msgid "Version of this application"
+msgstr "Versión d'esta aplicación"
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+"Tiense solicitao sofitu de teunoloxíes d'asistencia pa esta sesión, pero nun "
+"s'alcontró el rexistru p'accesibilidá. Asegúrese de que'l paquete AT-SPI ta "
+"instaláu. La so sesión anicióse ensin sofitu de teunoloxíes d'asistencia."
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr "Endolcu de rexistru AT SPI"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "Aidante del demoñu de les preferencies de MATE"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Esta sesión conéuta-y a MATE"
+
+#: ../data/mate-session.schemas.in.h:1
+msgid "Default session"
+msgstr "Sesión por defeutu"
+
+#: ../data/mate-session.schemas.in.h:2
+msgid "File Manager"
+msgstr "Remanador de ficheros"
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Si ta habilitao, mate-session entrugará al usuariu antes de terminar una "
+"sesión."
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Si ta habilitao, mate-session guardará la sesión automáticamente. D'otra "
+"miente, el diálogu de salida tendrá una opción pa guardar la sesión."
+
+#: ../data/mate-session.schemas.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Llista d'aplicaciones que formen parte de la sesión por defeutu."
+
+#: ../data/mate-session.schemas.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required-components\".) The "
+"Session Preferences will not normally allow users to remove a required "
+"component from the session, and the session manager will automatically add "
+"the required components back to the session if they do get removed."
+msgstr ""
+"Llista de componentes necesarios como parte de la sesión (cada elementu noma "
+"una clave baxo \"/desktop/mate/session/required-components\"). Les "
+"preferencies de la sesión normalmente nun van permitir a los usuarios "
+"eliminar un componente necesariu de la sesión, y el remanador de sesiones "
+"volverá a añader automáticamente los componentes necesarios pa la sesión si "
+"fueron eliminaos."
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Logout prompt"
+msgstr "Diálogu de salida"
+
+#: ../data/mate-session.schemas.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Imaxe preferida pa usar na pantalla d'entrada"
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Required session components"
+msgstr "componentes de sesión requeríos"
+
+#: ../data/mate-session.schemas.in.h:11
+msgid "Save sessions"
+msgstr "Guardar sesiones"
+
+#: ../data/mate-session.schemas.in.h:12
+msgid "Selected option in the log out dialog"
+msgstr "Opción seleicionada nel diálogu de pieslle de sesión"
+
+#: ../data/mate-session.schemas.in.h:13
+msgid "Show the splash screen"
+msgstr "Amosar la pantalla d'entamu"
+
+#: ../data/mate-session.schemas.in.h:14
+msgid "Show the splash screen when the session starts up"
+msgstr "Amosar la pantalla d'entamu si arranca la sesión"
+
+#: ../data/mate-session.schemas.in.h:15
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"El remanador de ficheros proporciona los iconos del escritoriu y permítete "
+"interaccionar colos tos ficheros guardaos."
+
+#: ../data/mate-session.schemas.in.h:16
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"El númberu de minutos d'inactividá antes de considerar la sesión inactiva."
+
+#: ../data/mate-session.schemas.in.h:17
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"El panel proporciona la barra de la parte superior o inferior de la pantalla "
+"y que contién menús, la llista de ventanes, los iconos d'estáu, el reló, etc."
+
+#: ../data/mate-session.schemas.in.h:18
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"El remanador de ventanes ye'l programa que dibuxa la barra de títulu y les "
+"llendes d'al rodiu les ventanes, y permítete mover y camudar el tamañu de "
+"les ventanes."
+
+#: ../data/mate-session.schemas.in.h:19
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Esta ye una ruta rellativa sofitada nel directoriu $datadir/pixmaps/. Los "
+"subdirectorios y los nomes d'imáxenes son valores válidos. Los cambeos "
+"d'esti valor surtirán efeutu a partir del siguiente entamu de sesión."
+
+#: ../data/mate-session.schemas.in.h:20
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+"Esta ye la opción que tara seleicionado nel diálogu de pieslle de sesión, "
+"los valores válidos son \"logout\" pa zarrar la sesión, \"shutdown\" "
+"p'apagar el sistema y \"restart\" pa reaniciar el sistema."
+
+#: ../data/mate-session.schemas.in.h:21
+msgid "Time before session is considered idle"
+msgstr "Tiempu enantes de considerar la sesión como inactiva"
+
+#: ../data/mate-session.schemas.in.h:22 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Alministrador de Ventanes"
+
+#: ../data/gsm-inhibit-dialog.glade.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Tovía tán executándose dalgunos programes:</b>"
+
+#: ../data/gsm-inhibit-dialog.glade.h:2
+#: ../mate-session/gsm-inhibit-dialog.c:633
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"Esperando que fine'l programa. Interrumpir el programa pue facer que pierdas "
+"datos."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Configurar les sos sesiones"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Sesiones"
+
+#: ../data/session-properties.glade.h:1
+msgid "Additional startup _programs:"
+msgstr "_Programes d'entamu adicionales:"
+
+#: ../data/session-properties.glade.h:2
+msgid "Browse..."
+msgstr "Ñavegar..."
+
+#: ../data/session-properties.glade.h:3
+msgid "Co_mmand:"
+msgstr "Co_mandu:"
+
+#: ../data/session-properties.glade.h:4
+msgid "Comm_ent:"
+msgstr "Com_entariu"
+
+#: ../data/session-properties.glade.h:5
+msgid "Options"
+msgstr "Opciones"
+
+#: ../data/session-properties.glade.h:7
+msgid "Startup Programs"
+msgstr "Programes d'Entamu"
+
+#: ../data/session-properties.glade.h:8
+msgid "_Automatically remember running applications when logging out"
+msgstr ""
+"Remembrar _automáticamente les aplicaciones n'execución al salir de la sesión"
+
+#: ../data/session-properties.glade.h:9
+msgid "_Name:"
+msgstr "_Nome:"
+
+#: ../data/session-properties.glade.h:10
+msgid "_Remember Currently Running Application"
+msgstr "_Remembrar les aplicaciones actualmente n'execución"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "El ficheru nun ye un ficheru .desktop válidu"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Versión '%s' del ficheru desktop non reconocida"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Entamando %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "L'aplicación nun aceuta documentos na llinia de comandos"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Opción de llanzamientu non reconocida: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"Nun se puen pasar los URIs de documentos a entraes d'escritoriu 'Type=Link'"
+
+#: ../egg/eggdesktopfile.c:1392
+#, c-format
+msgid "Not a launchable item"
+msgstr "Nun ye un elementu llanciable"
+
+#: ../egg/eggsmclient.c:185
+msgid "Disable connection to session manager"
+msgstr "Desactivar la conexón al remanador de sesiones"
+
+#: ../egg/eggsmclient.c:188
+msgid "Specify file containing saved configuration"
+msgstr "Especificar el ficheru que contién la configuración guardada"
+
+#: ../egg/eggsmclient.c:188
+msgid "FILE"
+msgstr "FICHERU"
+
+#: ../egg/eggsmclient.c:191
+msgid "Specify session management ID"
+msgstr "Especificar la ID del remanamientu de sesión"
+
+#: ../egg/eggsmclient.c:191
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:245
+msgid "Session Management Options"
+msgstr "Opciones del remanamientu de sesiones"
+
+#: ../egg/eggsmclient.c:246
+msgid "Show Session Management options"
+msgstr "Amosar les opciones del remanamientu de sesiones"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Hai un problema col servidor de configuración.\n"
+"(%s salió col estáu %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:256
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Nun s'atopó l'iconu '%s'"
+
+#: ../mate-session/gsm-inhibit-dialog.c:581
+msgid "Unknown"
+msgstr "Desconocíu"
+
+#: ../mate-session/gsm-inhibit-dialog.c:632
+msgid "A program is still running:"
+msgstr "Tovía hai un programa executándose:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:636
+msgid "Some programs are still running:"
+msgstr "Tovía hai dalgunos programes executándose:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:637
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Esperando a que finen los programes. Interrumpir estos programes pue facer "
+"que pierdas datos."
+
+#: ../mate-session/gsm-inhibit-dialog.c:865
+msgid "Switch User Anyway"
+msgstr "Trocar usuariu de toes maneres"
+
+#: ../mate-session/gsm-inhibit-dialog.c:868
+msgid "Logout Anyway"
+msgstr "Zarrar sesión de toes maneres"
+
+#: ../mate-session/gsm-inhibit-dialog.c:871
+msgid "Suspend Anyway"
+msgstr "Suspender de toes maneres"
+
+#: ../mate-session/gsm-inhibit-dialog.c:874
+msgid "Hibernate Anyway"
+msgstr "Hibernar de toes maneres"
+
+#: ../mate-session/gsm-inhibit-dialog.c:877
+msgid "Shutdown Anyway"
+msgstr "Apagar de toes maneres"
+
+#: ../mate-session/gsm-inhibit-dialog.c:880
+msgid "Reboot Anyway"
+msgstr "Reaniciar de toes maneres"
+
+#: ../mate-session/gsm-inhibit-dialog.c:888
+msgid "Lock Screen"
+msgstr "Candar pantalla"
+
+#: ../mate-session/gsm-inhibit-dialog.c:891
+msgid "Cancel"
+msgstr "Encaboxar"
+
+#: ../mate-session/gsm-logout-dialog.c:283
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d seconds."
+msgstr[0] ""
+"Anguaño tas rexistráu como «%s».\n"
+"Vas salir automáticamente de la sesión en %d segundu."
+msgstr[1] ""
+"Anguaño tas rexistráu como «%s».\n"
+"Vas salir automáticamente de la sesión en %d segundos."
+
+#: ../mate-session/gsm-logout-dialog.c:295
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d seconds."
+msgstr[0] ""
+"Anguaño tas rexistráu como «%s».\n"
+"El sistema va apagase automáticamente en %d segundu."
+msgstr[1] ""
+"Anguaño tas rexistráu como «%s».\n"
+"El sistema va apagase automáticamente en %d segundos."
+
+#: ../mate-session/gsm-logout-dialog.c:377
+#, fuzzy
+msgid "Log out of this system now?"
+msgstr "Zarrar la sesión"
+
+#: ../mate-session/gsm-logout-dialog.c:383
+msgid "_Switch User"
+msgstr "_Trocar usuariu"
+
+#: ../mate-session/gsm-logout-dialog.c:392
+msgid "_Log Out"
+msgstr "_Zarrar Sesión"
+
+#: ../mate-session/gsm-logout-dialog.c:398
+msgid "Shut down this system now?"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:404
+msgid "S_uspend"
+msgstr "S_uspender"
+
+#: ../mate-session/gsm-logout-dialog.c:410
+msgid "_Hibernate"
+msgstr "I_vernar"
+
+#: ../mate-session/gsm-logout-dialog.c:416
+msgid "_Restart"
+msgstr "_Reaniciar"
+
+#: ../mate-session/gsm-logout-dialog.c:426
+msgid "_Shut Down"
+msgstr "_Apagar"
+
+#: ../mate-session/gsm-manager.c:943 ../mate-session/gsm-manager.c:1571
+msgid "Not responding"
+msgstr "Nun respuende"
+
+#: ../mate-session/gsm-xsmp-client.c:989
+msgid "This program is blocking log out."
+msgstr "Esti programa ta bloquiando la salida de la sesión."
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Refugando la conexón d'un cliente nuevu porque la sesión ta siendo zarrada\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Nun se pudo crear el socket d'escucha ICE: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:143
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Nun ye posible entamar la sesión (y nun ye posible coneutar al sirvidor X)"
+
+#: ../mate-session/main.c:504
+msgid "Override standard autostart directories"
+msgstr "Sobreescribir los direutorios d'aniciu automáticu estándar"
+
+#: ../mate-session/main.c:505
+msgid "MateConf key used to lookup default session"
+msgstr "Clave MateConf usada pa guetar la sesión por defeutu"
+
+#: ../mate-session/main.c:506
+msgid "Enable debugging code"
+msgstr "Activar códigu de depuración"
+
+#: ../mate-session/main.c:507
+msgid "Do not load user-specified applications"
+msgstr "Nun cargar les aplicaciones especificaes pol usuariu"
+
+#: ../mate-session/main.c:528
+msgid " - the MATE session manager"
+msgstr " - el remanador de sesiones de MATE"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- Pantalla de presentación de MATE"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "Pantalla de presentación de MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Set the current session name"
+msgstr "Establecer el nome de sesión actual"
+
+#: ../tools/mate-session-save.c:65
+msgid "NAME"
+msgstr "NOME"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out"
+msgstr "Finar la sesión"
+
+#: ../tools/mate-session-save.c:67
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Finar la sesión, inorando cualesquier inhibidor esistente"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show logout dialog"
+msgstr "Amosar el diálogu de finalización de sesión"
+
+#: ../tools/mate-session-save.c:69
+msgid "Show shutdown dialog"
+msgstr "Amosar el diálogu d'apagáu"
+
+#: ../tools/mate-session-save.c:70
+msgid "Kill session"
+msgstr "Matar sesión"
+
+#: ../tools/mate-session-save.c:71
+msgid "Use dialog boxes for errors"
+msgstr "Emplegar cuadros de diálogu pa los errores"
+
+#: ../tools/mate-session-save.c:72
+msgid "Do not require confirmation"
+msgstr "Nun requerir confirmación"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Nun pudo coneutase al alministrador de sesiones"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Programa llamáu con opciones conflictives"
+
+#~ msgid "You are currently logged in as \"%s\".\n"
+#~ msgstr "Anguaño tas rexistrá como \"%s\"\n"
+
+#~ msgid "Ends your session and logs you out."
+#~ msgstr "Fina la to sesión y sácate d'ella."
+
+#~ msgid ""
+#~ "Suspends your session, allowing another user to log in and use the "
+#~ "computer."
+#~ msgstr ""
+#~ "Suspende la to sesión, permitiendo a otru usuariu aniciar la de so y usar "
+#~ "l'ordenador."
+
+#~ msgid "Shut Down the Computer"
+#~ msgstr "Apagar l'ordenador"
+
+#~ msgid "Ends your session and turns off the computer."
+#~ msgstr "Fina la to sesión y apaga l'ordenador."
+
+#~ msgid "Ends your session and restarts the computer."
+#~ msgstr "Fina la to sesión y reanicia l'ordenador."
+
+#~ msgid ""
+#~ "Suspends your session quickly, using minimal power while the computer "
+#~ "stands by."
+#~ msgstr ""
+#~ "Suspende la to sesión rápidamente, usando la mínima enerxía mentes "
+#~ "l'ordenador ta esperando."
+
+#~ msgid ""
+#~ "Suspends your session, using no power until the computer is restarted."
+#~ msgstr ""
+#~ "Suspende la to sesión, nun usando enerxía hasta que se reanicie "
+#~ "l'ordenador."
+
+#~ msgid "Cannot find help."
+#~ msgstr "Nun se pue atopar aida."
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "Endolcu del demoñu de depósitu de claves de MATE"
+
+#~ msgid "Session management"
+#~ msgstr "Remanamientu de sesiones"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "Biblioteca MATE GUI + EggSMClient"
+
+#~ msgid "Unable to start login session (and unable connect to the X server)"
+#~ msgstr ""
+#~ "Nun se pudo emprimar l'aniciu de sesión (y foi imposible coneutase col "
+#~ "servidor X)"
diff --git a/po/az.po b/po/az.po
new file mode 100644
index 0000000..c992d01
--- /dev/null
+++ b/po/az.po
@@ -0,0 +1,483 @@
+# Translation of mate-session.HEAD.az.po file to Azerbaijani Turkish
+# Copyright (C) 200 Free Software Foundation, Inc.
+# Vasif Ismailoglu MD <[email protected]>, 2000, 2001, 2002.
+# Mətin Əmirov <[email protected]>, 2002, 2003, 2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-core 1.2.99\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-01-11 08:59+0000\n"
+"PO-Revision-Date: 2003-07-10 20:39+0200\n"
+"Last-Translator: Mətin Əmirov <[email protected]>\n"
+"Language-Team: Azerbaijani <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: mate-session/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "TCP bağlantılarına icazə ver"
+
+#: mate-session/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"Təhlükəsizlik səbəbiylə _IceTcpTransNoListen() (XFree86 sistemləri)-ə malik "
+"olan platformlarda, mate-iclası TCP qapısına gələn bağlantıları dinləmir. "
+"Bu seçim uzaq (icazəli) qovşaqdan bağlantılara icazə verəcəkdir. Bunun "
+"fəallaşması üçün mate-iclası yenidən başladılmalıdır."
+
+#: mate-session/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Bu fəallaşdırılıbsa, MATE iclası sonlandırmadan öncə təsdiq istəyəcəkdir."
+
+#: mate-session/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Bu fəallaşdırılıbsa, MATE iclası avtomatik olaraq qeyd edəcək. Əks halda "
+"çıxış təsdiqi dialoqunda iclası qeyd etmə seçimi olacaq."
+
+#: mate-session/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "Çıxış təstiqi"
+
+#: mate-session/mate-session.schemas.in.h:6
+msgid ""
+"Preferred Image to use for the splash screen when logging in to the MATE "
+"Desktop"
+msgstr "MATE Masa Üstünə girərkən sıçrayan ekranda göstərilməsi istənən rəsm."
+
+#: mate-session/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "İclasları qeyd et"
+
+#: mate-session/mate-session.schemas.in.h:8
+msgid "Show the splash screen"
+msgstr "Sıçrayan ekranı göstər"
+
+#: mate-session/mate-session.schemas.in.h:9
+msgid "Show the splash screen when the session starts up"
+msgstr "İclas başlarkən sıçrayan ekranı göstər"
+
+#: mate-session/mate-session.schemas.in.h:10
+msgid "Splash Screen Image"
+msgstr "Sıçrayan Ekran Rəsmi"
+
+#: mate-session/gsm-client-editor.c:97 mate-session/startup-programs.c:314
+msgid "_Order:"
+msgstr "_Ardıcıllıq:"
+
+#: mate-session/gsm-client-editor.c:99
+msgid "The order in which applications are started in the session."
+msgstr "Proqramların iclasda başladılma ardıcıllığı."
+
+#: mate-session/gsm-client-editor.c:106
+msgid "What happens to the application when it exits."
+msgstr "Proqramdan çıxıldığında ona nə olacağı."
+
+#: mate-session/gsm-client-editor.c:109
+msgid "_Style:"
+msgstr "_Tərz:"
+
+#: mate-session/gsm-client-list.c:150
+#: mate-session/session-properties-capplet.c:412
+msgid "Order"
+msgstr "Sifariş ver"
+
+#: mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr "Tərz"
+
+#: mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr "Vəziyyət"
+
+#: mate-session/gsm-client-list.c:165
+msgid "Program"
+msgstr "Proqram"
+
+#: mate-session/gsm-client-row.c:31
+msgid "Inactive"
+msgstr "Qeyri-fəal"
+
+#: mate-session/gsm-client-row.c:32
+msgid "Waiting to start or already finished."
+msgstr "Başlatmaq üçün gözlənilir ya da artıq bitirilib."
+
+#: mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr "Başladılır"
+
+#: mate-session/gsm-client-row.c:35
+msgid "Started but has not yet reported state."
+msgstr "Başladıldı, amma hələ vəziyyət bildirilmədi."
+
+#: mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr "İşləyir"
+
+#: mate-session/gsm-client-row.c:38
+msgid "A normal member of the session."
+msgstr "İclasın normal üzvü."
+
+#: mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr "Qeyd edilir"
+
+#: mate-session/gsm-client-row.c:41
+msgid "Saving session details."
+msgstr "İclas təfərruatları qeyd edilir."
+
+#: mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr "Namə'lum"
+
+#: mate-session/gsm-client-row.c:44
+msgid "State not reported within timeout."
+msgstr "Bitiş müddəti ərzində vəziyyət xəbər bildirilmədi."
+
+#: mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr "Normal"
+
+#: mate-session/gsm-client-row.c:51
+msgid "Unaffected by logouts but can die."
+msgstr "Çıxışlar tərəfindən tə'sirlənməz ancaq sonlana bilən."
+
+#: mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr "Yenidən başlat"
+
+#: mate-session/gsm-client-row.c:54
+msgid "Never allowed to die."
+msgstr "Sonlandırılmasına imkan vermə."
+
+#: mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr "Zibil qutusu"
+
+#: mate-session/gsm-client-row.c:57
+msgid "Discarded on logout and can die."
+msgstr "Çıxışda bitirilmiş və sonlandırıla bilən."
+
+#: mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr "Qurğular"
+
+#: mate-session/gsm-client-row.c:60
+msgid "Always started on every login."
+msgstr "Hər girişdə başlat"
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: mate-session/gsm-gsd.c:41
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"MATE Qurğular Demonu başlarkən xəta yarandı.\n"
+"\n"
+"Örtü,lər səslər vəya arxa planlar kimi bəzi şeylər düzgün işləməyə bilər."
+
+#: mate-session/gsm-gsd.c:53
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Son xəta ismarışı:\n"
+"\n"
+
+#: mate-session/gsm-gsd.c:58
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"Bir sonrakı girişinizdə MATE hələ də Qurğular Demonunu yenidən başladmaya "
+"çalışacaq."
+
+#: mate-session/gsm-gsd.c:115
+msgid "There was an unknown activation error."
+msgstr "Bilinməyən işə salma xətası yarandı."
+
+#: mate-session/gsm-gsd.c:157
+msgid "The Settings Daemon restarted too many times."
+msgstr "Qurğular demonu bir neçə dəfə yenidən başladı."
+
+#: mate-session/logout.c:355
+msgid "Are you sure you want to log out?"
+msgstr "Həqiqətən çıxmaq istəyirsiniz?"
+
+#: mate-session/logout.c:372
+msgid "_Save current setup"
+msgstr "Hazırkı qurğuları _qeyd et"
+
+#: mate-session/logout.c:393
+msgid "Action"
+msgstr "Gedişat"
+
+#: mate-session/logout.c:410
+msgid "_Log out"
+msgstr "İclası _Sonlandır"
+
+#: mate-session/logout.c:416
+msgid "Sh_ut down"
+msgstr "Sön_dür"
+
+#: mate-session/logout.c:423
+msgid "_Restart the computer"
+msgstr "Kompüteri _yenidən başlat"
+
+#: mate-session/main.c:81
+msgid "Specify a session name to load"
+msgstr "Yüklənəcək iclas adını bildirin"
+
+#: mate-session/main.c:82
+msgid "Only read saved sessions from the default.session file"
+msgstr "Qeyd edilmiş iclasları ancaq default.session faylından oxu"
+
+#: mate-session/main.c:83
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr "Alıcıların qeydiyyatı üçün xərclənən millisaniyə (0=həmişə)"
+
+#: mate-session/main.c:84
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr "Alıcıların cavabı üçün xərclənən millisaniyə (0=həmişə)"
+
+#: mate-session/main.c:85
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr "Alıcıların bitişi üçün xərclənən millisaniyə (0=həmişə)"
+
+#: mate-session/main.c:265
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"%s üçün internet ünvanı tapıla bilmir.\n"
+"Bu MATE-un düzgün işləməməsinə səbəb olacaq.\n"
+"Problemi bəlkə /etc/hosts faylına %s alavə\n"
+"edərək həll edə bilərsiniz."
+
+#: mate-session/main.c:272
+msgid "Log in Anyway"
+msgstr "Hər Cürdə Gir"
+
+#: mate-session/main.c:273
+msgid "Try Again"
+msgstr "Yenidən Sınayın"
+
+#: mate-session/manager.c:223
+msgid "Your session has been saved"
+msgstr "İclasınız qeyd edildi"
+
+#: mate-session/manager.c:527
+msgid "Wait abandoned due to conflict."
+msgstr "Münaqişə olduğu üçün gözləmə bitdi."
+
+#: mate-session/manager.c:1035
+#, c-format
+msgid "No response to the %s command."
+msgstr "%s əmrinə cavab yoxdur."
+
+#: mate-session/manager.c:1036
+msgid "The program may be slow, stopped or broken."
+msgstr "Proqram ya yavaşdır, ya dayandırılıb ya da xəsərlidir."
+
+#: mate-session/manager.c:1037
+msgid "You may wait for it to respond or remove it."
+msgstr ""
+"Onun cavab verişini gözləyə bilər ya da sadəcə olaraq onu silə bilərsiniz."
+
+#: mate-session/manager.c:1760
+msgid "Restart abandoned due to failures."
+msgstr "Yenidən başlama iflaslara görə imtina oldu."
+
+#: mate-session/manager.c:1956
+msgid "A session shutdown is in progress."
+msgstr "İclas bitirilməsi fəaliyyətdədir."
+
+#: mate-session/save-session.c:46
+msgid "Set the current session"
+msgstr "Hazırkı iclası seç"
+
+#: mate-session/save-session.c:47
+msgid "Kill session"
+msgstr "İclası öldür"
+
+#: mate-session/save-session.c:48
+msgid "Use dialog boxes"
+msgstr "Dialog qutularını işlət"
+
+#: mate-session/save-session.c:146 mate-session/save-session.c:179
+msgid "Could not connect to the session manager"
+msgstr "İclas idarəçisinə bağlana bilmədi"
+
+#: mate-session/session-names.c:143
+msgid "The session name cannot be empty"
+msgstr "İclas adı boş ola bilməz"
+
+#: mate-session/session-names.c:154
+msgid "The session name already exists"
+msgstr "Belə iclas adı onsuz da mövcuddur"
+
+#: mate-session/session-names.c:188
+msgid "Add a new session"
+msgstr "Yeni iclas əlavə et"
+
+#: mate-session/session-names.c:218
+msgid "Edit session name"
+msgstr "İclas adını təkmilləşdir"
+
+#: mate-session/session-properties-capplet.c:122
+msgid "_Edit"
+msgstr "_Düzəlt"
+
+#: mate-session/session-properties-capplet.c:190
+msgid ""
+"Some changes are not saved.\n"
+"Is it still OK to exit?"
+msgstr ""
+"Bə'zi dəyişikliklər qeyd edilməyib.\n"
+"Həqiqətən də çıxmaq istəyirsiniz?"
+
+#: mate-session/session-properties-capplet.c:240
+#: mate-session/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "İclaslar"
+
+#: mate-session/session-properties-capplet.c:273
+msgid "Show splash screen on _login"
+msgstr "Girişdə sıçrayan _ekran göstər"
+
+#: mate-session/session-properties-capplet.c:284
+#, fuzzy
+msgid "As_k on logout"
+msgstr "Çıxışda _təstiq istə"
+
+#: mate-session/session-properties-capplet.c:295
+msgid "Automatically save chan_ges to session"
+msgstr "İclasa edilən dəyişiklikləri _avtomatik qeyd et"
+
+#: mate-session/session-properties-capplet.c:306
+msgid "_Sessions:"
+msgstr "İcla_slar:"
+
+#: mate-session/session-properties-capplet.c:324
+msgid "Session Name"
+msgstr "İclas Adı"
+
+#: mate-session/session-properties-capplet.c:375
+msgid "Session Options"
+msgstr "İclas Seçimləri"
+
+#: mate-session/session-properties-capplet.c:384
+msgid "Current Session"
+msgstr "Hazırkı İclas"
+
+#: mate-session/session-properties-capplet.c:393
+msgid "Additional startup _programs:"
+msgstr "Əlavə başlanğıc _proqramları:"
+
+#: mate-session/session-properties-capplet.c:414
+msgid "Command"
+msgstr "Əmr"
+
+#: mate-session/session-properties-capplet.c:446
+msgid "Startup Programs"
+msgstr "Başlanğıc Proqramları"
+
+#: mate-session/session-properties.c:49
+msgid "Remove the currently selected client from the session."
+msgstr "Hazırda seçili olan alıcını iclasdan sil."
+
+#: mate-session/session-properties.c:55
+msgid "Apply changes to the current session"
+msgstr "Hazırkı iclasa edilən dəyişiklikləri qeyd et"
+
+#: mate-session/session-properties.c:61
+msgid "The list of programs in the session."
+msgstr "İclasdakı proqramların siyahısı."
+
+#: mate-session/session-properties.c:88
+msgid "Currently running _programs:"
+msgstr "Hazırda fəal olan _proqramlar:"
+
+#: mate-session/session-properties.c:104
+msgid "Initialize session settings"
+msgstr "İclas qurğularını başlat"
+
+#: mate-session/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "İclaslarınızı quraşdırın"
+
+#: mate-session/splash-widget.c:43
+msgid "Sawfish Window Manager"
+msgstr "Sawfish Pəncərə İdarəçisi"
+
+#: mate-session/splash-widget.c:44
+msgid "Marco Window Manager"
+msgstr "Marco Pəncərə İdarəçisi"
+
+#: mate-session/splash-widget.c:45
+msgid "Window Manager"
+msgstr "Pəncərə İdarəçisi"
+
+#: mate-session/splash-widget.c:46
+msgid "The Panel"
+msgstr "Panel"
+
+#: mate-session/splash-widget.c:47
+msgid "Session Manager Proxy"
+msgstr "İclas İdarəçisi Proksisi"
+
+#: mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "Caja"
+
+#: mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr "Masa Üstü Qurğuları"
+
+#: mate-session/startup-programs.c:292
+msgid "_Startup Command:"
+msgstr "_Başlanğıc Əmri:"
+
+#: mate-session/startup-programs.c:298
+msgid "Startup Command"
+msgstr "Başlanğıc Əmri"
+
+#: mate-session/startup-programs.c:347
+msgid "The startup command cannot be empty"
+msgstr "Başlanğıc əmri boş ola bilməz"
+
+#: mate-session/startup-programs.c:384
+msgid "Add Startup Program"
+msgstr "Başlanğıc Proqramı Əlavə Et"
+
+#: mate-session/startup-programs.c:405
+msgid "Edit Startup Program"
+msgstr "Başlanğıc Proqramını Təkmilləşdir"
diff --git a/po/be.po b/po/be.po
new file mode 100644
index 0000000..3d0533d
--- /dev/null
+++ b/po/be.po
@@ -0,0 +1,958 @@
+# translation of mate-session.mate-2-2.be.po to belarusian
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# Vital Khilko <[email protected]>, 2003.
+# Ihar Hrachyshka <[email protected]>, 2006.
+# Alexander Nyakhaychyk <[email protected]>, 2006, 2008, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session trunk\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2009-07-15 15:11+0000\n"
+"PO-Revision-Date: 2009-09-02 16:04+0300\n"
+"Last-Translator: Alexander Nyakhaychyk <[email protected]>\n"
+"Language-Team: Belarusian <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Вылучыце загад"
+
+#: ../capplet/gsm-app-dialog.c:192
+msgid "Add Startup Program"
+msgstr "Дадаць праграму"
+
+#: ../capplet/gsm-app-dialog.c:196
+msgid "Edit Startup Program"
+msgstr "Рэдагаваць праграму"
+
+#: ../capplet/gsm-app-dialog.c:484
+msgid "The startup command cannot be empty"
+msgstr "Загад стартаваньня ня можа быць пустой"
+
+#: ../capplet/gsm-app-dialog.c:490
+msgid "The startup command is not valid"
+msgstr "Загад няправільны"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Уключана"
+
+#: ../capplet/gsm-properties-dialog.c:567
+#| msgid "Action"
+msgid "Icon"
+msgstr "Значка"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Праграма"
+
+#: ../capplet/gsm-properties-dialog.c:790
+#| msgid "Sessions Preferences"
+msgid "Startup Applications Preferences"
+msgstr "Перавагі дастасаваньняў запуску"
+
+#: ../capplet/gsp-app.c:269
+#| msgid "No Name"
+msgid "No name"
+msgstr "Бяз назвы"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Апісаньне адсутнічае"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "Вэрсія гэтага дастасаваньня"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Немагчыма адклюстраваць даведку"
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+"Тэхналёгія даступнасьці патрабуецца гэтым сэансам, але рэгістар даступнасьці "
+"ня знойдзены. Праверце, ці ўсталяваны пакунак AT-SPI. Сэанс запушчаны без "
+"падтрымкі даступнасьці."
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr "AT SPI Registry Wrapper"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "MATE Settings Daemon Helper"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Сэанс MATE"
+
+#: ../data/mate-session.schemas.in.h:1
+#| msgid "Kill session"
+msgid "Default session"
+msgstr "Прадвызначаны сэанс"
+
+#: ../data/mate-session.schemas.in.h:2
+#| msgid "Window Manager"
+msgid "File Manager"
+msgstr "Кіраўнік файлаў"
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Калі ўключана, mate-session запытае пацьверджаньня завяршэньня сэанса."
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Калі ўключана, mate-session аўтаматычна захавае сэанс. Інакш дыялёг выхаду "
+"дасьць магчымасьць захаваньня сэанса."
+
+#: ../data/mate-session.schemas.in.h:5
+#| msgid "The order in which applications are started in the session."
+msgid "List of applications that are part of the default session."
+msgstr "Сьпіс дастасаваньняў, якія з'яўляюцца часткай прадвызначанага сэансу."
+
+#: ../data/mate-session.schemas.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Сьпіс кампанэнтаў, якія з'яўляюцца неабходнай частках сэанса. (Назва кожнага "
+"элемэнта - ключ у \"/desktop/mate/session/required_components\"). "
+"Інструмэнт настаўленьня пераваг Дастасаваньняў аўтазапуску, звычайна, не "
+"дазваляе карыстальнікам выдаляць гэтыя кампанэнты з сэансу. Кіраўнік сэансаў "
+"аўтаматычна дадае абавязковыя кампанэнты ў сэанс у час уваходы тады, калі "
+"яны былі выдаленыя."
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Logout prompt"
+msgstr "Запыт выхаду"
+
+#: ../data/mate-session.schemas.in.h:8
+#| msgid "The Panel"
+msgid "Panel"
+msgstr "Панэль"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Малюнак запрашэньня на ўваход"
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Required session components"
+msgstr "Абавязковыя кампанэнты сэанса"
+
+#: ../data/mate-session.schemas.in.h:11
+msgid "Save sessions"
+msgstr "Захоўваць сэансы"
+
+#: ../data/mate-session.schemas.in.h:12
+msgid "Show the splash screen"
+msgstr "Паказваць застаўку"
+
+#: ../data/mate-session.schemas.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "Паказваць застаўку ў часе ўваходу"
+
+#: ../data/mate-session.schemas.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Кіраўнік файлаў прадастаўлае значкі на працоўным стале і дазваляе Вам "
+"ўзаемадзейнічаць з вашымі файламі."
+
+#: ../data/mate-session.schemas.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "Колькасьць хвілін, пасьля якой сэанс будзе прастой сэансу"
+
+#: ../data/mate-session.schemas.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Панэль прадастаўляе поласы зьверху й зьнізу экрана, якія ўтрымліваюць мэню, "
+"сьпіс вокнаў, знчкі станаў, гадзіньнік і інш."
+
+#: ../data/mate-session.schemas.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Кіраўнік вокнаў - праграма, якая малюе радок загалоўка й межы вакол вокнаў, "
+"дазваляе Вам перамяшчаць і зьмяняць памеры вокнаў."
+
+#: ../data/mate-session.schemas.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Гэта шлях адносна тэчкі $datadir/pixmaps/. Падтэчкі і назвы малюнкаў - "
+"рэальныя значэньні. Зьмена гэтага ключа будзе ўплываць на ўсе наступныя "
+"сэансы."
+
+#: ../data/mate-session.schemas.in.h:19
+msgid "Time before session is considered idle"
+msgstr "Адрэзак часу, пасьля якога сэанс будзе прастой сэансу"
+
+#: ../data/mate-session.schemas.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Кіраўнік вокнаў"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Некаторыя праграмы ўсё яшчэ выконваюцца:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"Чаканьне завяршэньня праграм. Калі забіць гэтыя праграма, можна згубіць "
+"частку працы."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Вылучыце дастасаваньні, якія будуць запушчаны ў час вашага ўваходу"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Дастасаваньні аўтазапуску"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Дадатковыя _праграмы аўтастарту:"
+
+#: ../data/session-properties.ui.h:2
+#| msgid "_Browse..."
+msgid "Browse..."
+msgstr "Агляд..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Загад:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Ка_мэнтар:"
+
+#: ../data/session-properties.ui.h:5
+#| msgid "Session Options"
+msgid "Options"
+msgstr "Опцыі"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Праграмы аўтастарту"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Аўтаматычна запамінаць бягучыя дастасаваньні ў час завяршэньня сэанса"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Назва:"
+
+#: ../data/session-properties.ui.h:9
+#| msgid "_Remember Currently Running Applications"
+msgid "_Remember Currently Running Application"
+msgstr "Зап_омніць бягучыя дастасаваньні"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Файл не з'яўляецца дзейсным .desktop"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Нераспазнаная вэрсія .desktop файла \"%s\""
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+#| msgid "Starting"
+msgid "Starting %s"
+msgstr "Запуск %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Дастасаваньне не прыймае дакумэнты праз загадны радок"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Нераспазнаная опцыя запуску: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Немагчыма перадаць URI дакумэнта \"Type=Link\" desktop элемэнты"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Незапускны элемэнт"
+
+#: ../egg/eggsmclient.c:225
+#| msgid "Could not connect to the session manager"
+msgid "Disable connection to session manager"
+msgstr "АДключыць далучэньне да кіраўніка сэансаў"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Задаць файл з захаванымі наладкамі"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FILE"
+
+#: ../egg/eggsmclient.c:231
+#| msgid "Specify a session name to load"
+msgid "Specify session management ID"
+msgstr "Задаць ID кіраўніка сэанса"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+#| msgid "Session Options"
+msgid "Session management options:"
+msgstr "Опцыі кіраўніка сэанса:"
+
+#: ../egg/eggsmclient.c:253
+#| msgid "Session Options"
+msgid "Show session management options"
+msgstr "Паказаць опцыі кіраўніка сэанса"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Існуе праблема з сэрвэрам наладак.\n"
+"(%s завяршыў працу з кодам %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Значка \"%s\" ня знойдзена"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Невядома"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Праграма ўсё яшчэ выконваецца:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Некатрыя праграмы ўсё яшчэ выконваюцца:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Чаканьне завяршэньня праграм. Калі забіць гэтыя праграма, можна згубіць "
+"частку працы."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Прымусовае пераключэньне"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+#| msgid "Log in Anyway"
+msgid "Logout Anyway"
+msgstr "Прымусовы выхад"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Прымусовае прыпыненьне"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+#| msgid "Log in Anyway"
+msgid "Hibernate Anyway"
+msgstr "Прымусовы сон"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+#| msgid "Log in Anyway"
+msgid "Shutdown Anyway"
+msgstr "Прымусовае выключэньне"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+#| msgid "Log in Anyway"
+msgid "Reboot Anyway"
+msgstr "Прымусовая перазагрузка"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Замкнуць экран"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Скасаваць"
+
+#: ../mate-session/gsm-logout-dialog.c:269
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Вы будзеце аўтаматычна зарэгістраваныя праз %d сэкунду."
+msgstr[1] "Вы будзеце аўтаматычна зарэгістраваныя праз %d сэкунды."
+msgstr[2] "Вы будзеце аўтаматычна зарэгістраваныя праз %d сэкундаў."
+
+#: ../mate-session/gsm-logout-dialog.c:277
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Гэтая сыстэма будзе аўтаматычна адключана праз %d сэкунду."
+msgstr[1] "Гэтая сыстэма будзе аўтаматычна адключана праз %d сэкунды."
+msgstr[2] "Гэтая сыстэма будзе аўтаматычна адключана праз %d сэкундаў."
+
+#: ../mate-session/gsm-logout-dialog.c:309
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Зараз вы ўвайшлі як \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:374
+msgid "Log out of this system now?"
+msgstr "Завяршыць сэанс?"
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "_Switch User"
+msgstr "Пераключыць _карыстальніка"
+
+#: ../mate-session/gsm-logout-dialog.c:389
+#| msgid "_Log out"
+msgid "_Log Out"
+msgstr "Вы_йсьці"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "Shut down this system now?"
+msgstr "Выключыць сыстэму?"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "S_uspend"
+msgstr "Пры_пыніць"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "_Hibernate"
+msgstr "У_сыпіць"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+#| msgid "Restart"
+msgid "_Restart"
+msgstr "Пераза_грузіць"
+
+#: ../mate-session/gsm-logout-dialog.c:423
+#| msgid "Sh_ut down"
+msgid "_Shut Down"
+msgstr "В_ыключыць"
+
+#: ../mate-session/gsm-manager.c:1136 ../mate-session/gsm-manager.c:1828
+msgid "Not responding"
+msgstr "Не адказвае"
+
+#: ../mate-session/gsm-xsmp-client.c:1206
+msgid "This program is blocking log out."
+msgstr "Гэтая праграма перашкаджае выхаду."
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Адмоўлена ў далучэньне новым кліентам з-за дзеяньня працэдуры завяршэньня "
+"сэанса\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Немагчыма стварыць ICE-сокет: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "Немагчыма запусьціць сэанс уваходу (немагчыма далучыцца да X-сэрвэра)"
+
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr "Перавызначыць стандартныя дырэкторыі аўтазапуску"
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr "Ключ MateConf, для пошуку прадвызначанага сэансу"
+
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr "Уключыць код пошуку памылак"
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr "Не загружаць дастасаваньні карыстальніка"
+
+#: ../mate-session/main.c:457
+#| msgid "- Manage the MATE session"
+msgid " - the MATE session manager"
+msgstr " - Кіраўнік сэансаў MATE"
+
+#: ../splash/mate-session-splash.c:315
+#| msgid "Show the splash screen"
+msgid "- MATE Splash Screen"
+msgstr "- Застаўка MATE"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "Застаўка MATE"
+
+#: ../tools/mate-session-save.c:65
+#| msgid "_Log out"
+msgid "Log out"
+msgstr "Выйсьці"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Выйсьці, не зьвяртаючы ўвагу на забароны"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Паказаць дыялёг выхаду"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Паказаць дыялёг выключэньня"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Ужыць дыялёгавыя вокны для паказу памылак"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Вызначыць назву актыўнага сэанса"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "Назва"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Забіць сэанс"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Не пытацца пацьверджаньня"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Немагчыма злучыцца з кіраўніком сэансаў"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Выклік праграмы з канфліктнымі опцыямі"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "Дазволіць злучэньні праз TCP"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "З пункту гледжаньня забесьпячэньня дастатковага ўзроўню бясьпекі, на "
+#~ "плятформах, дзе ёсьць _IceTcpTransNoListen() (сыстэмы XFree86), mate-"
+#~ "session не праслухоўвае парты TCP для злучэньня. Гэты парамэтар дазваляе "
+#~ "злучэньні з (аўтарызаванымі) аддаленымі вузламі. Каб зьмены пачалі "
+#~ "працаваць, трэба перастартаваць mate-session."
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Выбраная опцыя ў дыялёгу выхаду"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "Гэта опцыя, выбраная ў дыялёгу выйсьця. Магчымыя значэньні: \"logout\" "
+#~ "для выйсьця, \"shutdown\" для адключэньня і \"restart\" для перазагрузкі "
+#~ "сыстэмы."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "Наладка сэансаў"
+
+#~ msgid "Sessions"
+#~ msgstr "Сэансы"
+
+#~ msgid "_Order:"
+#~ msgstr "_Парадак:"
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "Што адбываецца з праграмаю пры выйсьці."
+
+#~ msgid "_Style:"
+#~ msgstr "_Стыль:"
+
+#~ msgid "Inactive"
+#~ msgstr "Неактыўная"
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "Чакае старту ці ўжо скончыла работу."
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "Запушчаная, але яшчэ не паведаміла пра свой стан."
+
+#~ msgid "Running"
+#~ msgstr "Выконваецца"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "Звычайны ўдзельнік сэанса."
+
+#~ msgid "Saving"
+#~ msgstr "Захоўваньне"
+
+#~ msgid "Saving session details."
+#~ msgstr "Захоўваньне падрабязнасьцяў пра сэанс."
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "За вызначаны тэрмін стан не паведамлены."
+
+#~ msgid "Normal"
+#~ msgstr "Звычайны"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "На яго не ўплывае выйсьце, але ён можа памерці."
+
+#~ msgid "Never allowed to die."
+#~ msgstr "Сьмерць забаронена."
+
+#~ msgid "Trash"
+#~ msgstr "Сьметніца"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "Ігнаруецца пры выйсьці і можа памерці."
+
+#~ msgid "Settings"
+#~ msgstr "Настаўленьні"
+
+#~ msgid "Always started on every login."
+#~ msgstr "Запускаецца ў пачатку кожнага сэанса."
+
+#~ msgid "Order"
+#~ msgstr "Парадак"
+
+#~ msgid "Style"
+#~ msgstr "Стыль"
+
+#~ msgid "State"
+#~ msgstr "Стан"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "Адбылася памылка стартаваньня дэмана настаўленьняў MATE.\n"
+#~ "\n"
+#~ "Некаторыя аспэкты, напр., тэмы, гукі, фонавы малюнак стальца могуць не "
+#~ "працаваць."
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Апошняя памылка:\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "MATE паспрабуе перазапусьціць дэмана настаўленьняў пры наступным "
+#~ "уваходзе."
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "Дэман настаўленьняў перазапушчаны надта шмат разоў."
+
+#~ msgid "List registered clients, then exit"
+#~ msgstr "Паказаць зарэгістраваных кліентаў, пасьля выйсьці"
+
+#~ msgid "PROGRAM..."
+#~ msgstr "Праграма..."
+
+#~ msgid ""
+#~ "You must specify at least one program to remove. You can list the "
+#~ "programs with --list.\n"
+#~ msgstr ""
+#~ "Вы павінны вызначыць хаця б адну праграму для выдаленьня. Вы можаце "
+#~ "праглядзець сьпіс праграмаў з опцыяй --list.\n"
+
+#~ msgid "Error: could not connect to the session manager\n"
+#~ msgstr "Памылка: немагчыма злучыцца з кіраўніком сэансаў\n"
+
+#~ msgid "Currently registered clients:\n"
+#~ msgstr "Зарэгістраваня кліенты:\n"
+
+#~ msgid "Couldn't find program %s in session\n"
+#~ msgstr "Немагчыма знайсьці праграму %s для сэанса\n"
+
+#~ msgid ""
+#~ "The MATE session manager cannot start properly. Please report this as a "
+#~ "MATE bug. Please include this ICE failure message in the bug report: '%"
+#~ "s'. Meanwhile you could try logging in using the failsafe session."
+#~ msgstr ""
+#~ "Немагчыма запусьціць кіраўніка сэансаў MATE. Калі ласка, паведамце пра "
+#~ "гэта распрацоўнікам. Калі ласка, зьмясьціце гэтае паведамленьне аб "
+#~ "памылцы ICE у справаздачу: '%s'. Паспрабуйце ўвайсьці ў бясьпечны сэанс."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to lock the file '%s'. Please "
+#~ "report this as a MATE bug. Sometimes this error may occur if the file's "
+#~ "directory is unwritable, you could try logging in via the failsafe "
+#~ "session and ensuring that it is."
+#~ msgstr ""
+#~ "Кіраўнік сэансаў MATE ня змог заблякаваць файл '%s'. Калі ласка, "
+#~ "паведамце пра гэта распрацоўнікам. Гэтая памылка магла здарыцца з-за "
+#~ "нечытэльнасьці тэчкі файла, таму паспрабуйце ўвайсьці праз ў бясьпечны "
+#~ "сэанс і праверыць гэта."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to read the file: '%s'. If this "
+#~ "file exists it must be readable by you for MATE to work properly. Try "
+#~ "logging in with the failsafe session and removing this file."
+#~ msgstr ""
+#~ "Кіраўнік сэансаў MATE ня змог прачытаць файл: '%s'. Калі гэты файл "
+#~ "існуе, то вы павінны магчы прачытаць яго для нармальнай работы MATE. "
+#~ "Паспрабуйце ўвайсьці ў бясьпечны сэанс і выдаліць гэты файл."
+
+#~ msgid ""
+#~ "Could not write to file '%s'. This file must be writable in order for "
+#~ "MATE to function properly. Try logging in with the failsafe session and "
+#~ "removing this file. Also make sure that the file's directory is writable."
+#~ msgstr ""
+#~ "Немагчыма запісаць у '%s'. Вы павінны мець правы на запіс гэтага файла "
+#~ "для нармальнай работы MATE. Паспрабуйце ўвайсьці праз сэсію зь "
+#~ "бясьпечнымі наладкамі і выдаліць гэты файл. Таксама праверце, ці маеце "
+#~ "вы правы на запіс у тэчку гэтага файла."
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "Вы сапраўды хочаце выйсьці?"
+
+#~ msgid "Remember running applications"
+#~ msgstr "Запомніць бягучыя дастасаваньні"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "Пера_загрузіць кампутар"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "Толькі прачытаць захаваныя сэансы з файла default.session"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr "Тэрмін чаканьня рэгістрацыі кліентаў, у мілісэкундах (0=заўсёды)"
+
+#~ msgid "DELAY"
+#~ msgstr "Затрымка"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr "Тэрмін чаканьня адказу кліентаў, у мілісэкундах (0=заўсёды)"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr "Тэрмін чаканьня сьмерці кліентаў, у мілісэкундах (0=заўсёды)"
+
+#~ msgid "This session is running as a privileged user"
+#~ msgstr "Гэты сэанс выконваецца з адміністратыўнымі прывілеямі"
+
+#~ msgid ""
+#~ "Running a session as a privileged user should be avoided for security "
+#~ "reasons. If possible, you should log in as a normal user."
+#~ msgstr ""
+#~ "З пункту гледжаньня бясьпекі неабходна пазьбягаць працы ў прывілеяваным "
+#~ "рэжыме. Калі гэта магчыма, вы мусіце ўвайсьці як звычайны карыстальнік."
+
+#~ msgid "_Continue"
+#~ msgstr "Пра_цяг"
+
+#~ msgid ""
+#~ "The session might encounter issues if the computer clock is not properly "
+#~ "configured. Please consider adjusting it.\n"
+#~ "\n"
+#~ "Current date is <b>%s</b>."
+#~ msgstr ""
+#~ "Гэты сэанс можа сутыкнуцца з праблемамі, калі гадзіньнік не "
+#~ "сынхранізаваны. Калі ласка, сынхранізуйце яго.\n"
+#~ "\n"
+#~ "Бягучы час: <b>%s</b>."
+
+#~ msgid "Failed to launch time configuration tool: %s"
+#~ msgstr "Немагчыма запусьціць інструмэнт наладкі часу: %s"
+
+#~ msgid "The computer clock appears to be wrong"
+#~ msgstr "Здаецца, кампутарны гадзіньнік адлюстроўвае памылковы час"
+
+#~ msgid "_Ignore"
+#~ msgstr "_Ігнараваць"
+
+#~ msgid "_Adjust the Clock"
+#~ msgstr "Сын_хранізаваць гадзіньнік"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "Немагчыма знайсьці Інтэрнэт-адрас для %s.\n"
+#~ "Гэта будзе замінаць карэктнай працы Mate.\n"
+#~ "Вы можаце выправіць хібу, дадаўшы\n"
+#~ "%s у файл /etc/hosts."
+
+#~ msgid "Try Again"
+#~ msgstr "Паспрабаваць яшчэ"
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "Чаканьне перарванае праз канфлікт."
+
+#~ msgid "No response to the %s command."
+#~ msgstr "Няма адказу на загад %s."
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "Магчыма, праграма замарудзілася, спыніла працу альбо зламалася."
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "Вы можаце пачакаць адказу ад гэтай праграмы альбо прыбраць яе."
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "Перазапуск перарваны праз памылку."
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "Адбываецца завяршэньне сэанса."
+
+#~ msgid "- Save the current session"
+#~ msgstr "- Захаваць актыўны сэанс"
+
+#~ msgid "Save changes to the current session before closing?"
+#~ msgstr "Захаваць зьмены актыўнага сэанса перад закрыцьцём?"
+
+#~ msgid "If you don't save, changes will be discarded."
+#~ msgstr "Калі вы не захаваеце наладкі, зьмены згубяцца."
+
+#~ msgid "_Close without Saving"
+#~ msgstr "_Закрыць, не захаваўшы"
+
+#~ msgid "Current Session"
+#~ msgstr "Актыўны сэанс"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "Сэсія пасьпяхова захаваная."
+
+#~ msgid "could not connect to the session manager\n"
+#~ msgstr "немагчыма злучыцца з кіраўніком сэансаў\n"
+
+#~ msgid "session manager does not support MATE extensions\n"
+#~ msgstr "кіраўнік сэсіяў не падтрымлівае пашырэньняў MATE\n"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "Прыбраць выбраны кліент з сэанса."
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "Ужыць зьмены для актыўнага сэанса"
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "Сьпіс праграмаў сэанса."
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "_Праграмы, якія зараз працуюць:"
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "Кіраўнік вокнаў Sawfish"
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "Кіраўнік вокнаў Marco"
+
+#~ msgid "Caja"
+#~ msgstr "Наўтылюс"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "Настаўленьні стальца"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "Назва праграмы ня можа быць пустой"
+
+#~ msgid "_Save current setup"
+#~ msgstr "За_хаваць бягучы стан"
+
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "_Аўтаматычна захоўваць зьмены сэанса"
+
+#~ msgid "Save the current session"
+#~ msgstr "Захаваць актыўны сэанс"
+
+#~ msgid "New Startup Program"
+#~ msgstr "Новая праграма аўтастарту"
+
+#~ msgid "The session name cannot be empty"
+#~ msgstr "Назва сэанса ня можа быць пустой"
+
+#~ msgid "The session name already exists"
+#~ msgstr "Такі сэанс ужо існуе"
+
+#~ msgid "Add a new session"
+#~ msgstr "Дадаць новы сэанс"
+
+#~ msgid "Edit session name"
+#~ msgstr "Зьмяніць назву сэанса"
+
+#~ msgid "Disable"
+#~ msgstr "Адключыць"
+
+#~ msgid "_Edit"
+#~ msgstr "_Рэдагаваць"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "Некаторыя зьмены не захаваліся.\n"
+#~ "Вы сапраўды хочаце выйсьці?"
+
+#~ msgid "Show splash screen on _login"
+#~ msgstr "Паказваць застаўку ўваходу"
+
+#~ msgid "As_k on logout"
+#~ msgstr "С_пытаць перад выйсьцем"
+
+#~ msgid "_Sessions:"
+#~ msgstr "_Сэансы:"
diff --git a/po/[email protected] b/po/[email protected]
new file mode 100644
index 0000000..ad8db7e
--- /dev/null
+++ b/po/[email protected]
@@ -0,0 +1,557 @@
+# Biełaruski pierakład mate-session
+# Vital Khilko <[email protected]>, 2003.
+# Ales Nyakhaichyk <[email protected]>, 2006.
+# Ihar Hrachyshka <[email protected]>, 2006, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-10-11 12:36+0300\n"
+"PO-Revision-Date: 2008-02-17 00:32+0200\n"
+"Last-Translator: Ihar Hrachyshka <[email protected]>\n"
+"Language-Team: Belarusian Latin <be-latin.open-tran.eu>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../capplet/gsm-app-dialog.c:126
+msgid "Select Command"
+msgstr "Abiary zahad"
+
+#: ../capplet/gsm-app-dialog.c:187
+msgid "Add Startup Program"
+msgstr "Dadaj prahramu dla ŭruchamleńnia"
+
+#: ../capplet/gsm-app-dialog.c:191
+msgid "Edit Startup Program"
+msgstr "Redahuj prahramu dla ŭruchamleńnia"
+
+#: ../capplet/gsm-properties-dialog.c:132
+msgid "No description"
+msgstr "Niama apisańnia"
+
+#: ../capplet/gsm-properties-dialog.c:977
+msgid "The name of the startup program cannot be empty"
+msgstr "Nazva prahramy dla ŭruchamleńnia nia moža być pustoj"
+
+#: ../capplet/gsm-properties-dialog.c:981
+msgid "The startup command cannot be empty"
+msgstr "Zahad dla ŭruchamleńnia nia moža być pustym"
+
+#: ../capplet/gsm-properties-dialog.c:987
+msgid "The startup command is not valid"
+msgstr "Zahad dla ŭruchamleńnia niapravilny"
+
+#: ../capplet/gsm-properties-dialog.c:1291
+msgid "Enabled"
+msgstr "Uklučanaja"
+
+#: ../capplet/gsm-properties-dialog.c:1304
+msgid "Icon"
+msgstr "Ikonka"
+
+#: ../capplet/gsm-properties-dialog.c:1315
+msgid "Program"
+msgstr "Prahrama"
+
+#: ../capplet/gsm-properties-dialog.c:1465
+#: ../data/session-properties.glade.h:6
+msgid "Sessions Preferences"
+msgstr "Nałady sesijaŭ"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:508
+msgid "Version of this application"
+msgstr "Versija hetaj aplikacyi"
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+"Hetaja sesija vymahaje padtrymki technalohij dastupnaści, ale rehistar "
+"dastupnaści nia byŭ znojdzieny. Upeŭnisia, što pakunak AT-SPI zainstalavany. "
+"Tvaja sesija ŭruchomlenaja biez padtrymki technalohij dastupnaści."
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr "Dapamožnaja prahrama dla schovišča AT SPI"
+
+#: ../compat/mate-keyring-daemon-wrapper.desktop.in.in.in.h:1
+msgid "MATE Keyring Daemon Wrapper"
+msgstr "Dapamožnaja prahrama dla słužby klučnika MATE"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "Dapamožnaja prahrama dla słužby naładaŭ MATE"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Hetaja sesija ŭruchamlaje MATE"
+
+#: ../data/mate-session.schemas.in.h:1
+msgid "Default session"
+msgstr "Zmoŭčanaja sesija"
+
+#: ../data/mate-session.schemas.in.h:2
+msgid "File Manager"
+msgstr "Kiraŭnik fajłaŭ"
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Kali ŭklučana, mate-session spytaje ŭ karystalnika paćvierdžańnia pierad "
+"zakančeńniem sesii."
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Kali ŭklučana, mate-session aŭtamatyčna zachavaje sesiju. Inakš, akno "
+"vychadu budzie mieć opcyju zachavańnia sesii."
+
+#: ../data/mate-session.schemas.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Śpis aplikacyjaŭ zmoŭčanaj sesii."
+
+#: ../data/mate-session.schemas.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required-components\".) The "
+"Session Preferences will not normally allow users to remove a required "
+"component from the session, and the session manager will automatically add "
+"the required components back to the session if they do get removed."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Logout prompt"
+msgstr "Paćvierdžańnie vychadu"
+
+#: ../data/mate-session.schemas.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Ulubionaja vyjava dla zastaŭki ŭvachodu"
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Required session components"
+msgstr "Vymahanyja kampanenty sesii"
+
+#: ../data/mate-session.schemas.in.h:11
+msgid "Save sessions"
+msgstr "Zachoŭvaj sesii"
+
+#: ../data/mate-session.schemas.in.h:12
+msgid "Selected option in the log out dialog"
+msgstr "Abranaja opcyja ŭ vaknie vychadu"
+
+#: ../data/mate-session.schemas.in.h:13
+msgid "Show the splash screen"
+msgstr "Pakazvaj zastaŭku"
+
+#: ../data/mate-session.schemas.in.h:14
+msgid "Show the splash screen when the session starts up"
+msgstr "Pakazvaj zastaŭku padčas uruchamleńnia sesii"
+
+#: ../data/mate-session.schemas.in.h:15
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Heta ściežka, adnosna katalohu $datadir/pixmaps/. Padkatalohi j nazvy "
+"vyjavaŭ źjaŭlajucca sapraŭdnymi vartaściami. Źmiena hetaj vartaści "
+"paŭpłyvaje na nastupny ŭvachod u sesiju."
+
+#: ../data/mate-session.schemas.in.h:19
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+"Heta opcyja, jakaja budzie abranaja ŭ vaknie vychadu. Mahčymyja vartaści: "
+"\"logout\" dla vychadu, \"shutdown\" dla vyklučeńnia j \"restart\" dla "
+"pieraŭruchamleńnia systemy."
+
+#: ../data/mate-session.schemas.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Kiraŭnik voknaŭ"
+
+#: ../data/gsm-inhibit-dialog.glade.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Dasiul uklučanyja nastupnyja prahramy:</b>"
+
+#: ../data/gsm-inhibit-dialog.glade.h:2
+#: ../mate-session/gsm-inhibit-dialog.c:632
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"Čakajem vychadu z prahramy. Kali ty pierapyniš hetuju prahramu, možaš "
+"stracić karysnyja źviestki."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Kanfihuruj svaje sesii"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Sesii"
+
+#: ../data/session-properties.glade.h:1
+msgid "Additional startup _programs:"
+msgstr "Dadatkovyja _prahramy aŭtaŭruchamleńnia:"
+
+#: ../data/session-properties.glade.h:2
+msgid "Browse..."
+msgstr "Ahladaj..."
+
+#: ../data/session-properties.glade.h:3
+msgid "Co_mmand:"
+msgstr "_Zahad:"
+
+#: ../data/session-properties.glade.h:4
+msgid "Comm_ent:"
+msgstr "_Kamentar:"
+
+#: ../data/session-properties.glade.h:5
+msgid "Options"
+msgstr "Opcyi"
+
+#: ../data/session-properties.glade.h:7
+msgid "Startup Programs"
+msgstr "Prahramy aŭtaŭruchamleńnia"
+
+#: ../data/session-properties.glade.h:8
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Aŭtamatyčna zapaminaj uruchomlenyja aplikacyi pry vychadzie"
+
+#: ../data/session-properties.glade.h:9
+msgid "_Name:"
+msgstr "_Nazva:"
+
+#: ../data/session-properties.glade.h:10
+msgid "_Remember Currently Running Application"
+msgstr "_Zapomni dziejna ŭruchomlenuju aplikacyju"
+
+#: ../egg/eggdesktopfile.c:165
+msgid "File is not a valid .desktop file"
+msgstr "Fajł nie źjaŭlajecca pravilnym fajłam .desktop"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Niezrazumieły fajł stała versii \"%s\""
+
+#: ../egg/eggdesktopfile.c:962
+#, c-format
+msgid "Starting %s"
+msgstr "Uklučeńnie %s"
+
+#: ../egg/eggdesktopfile.c:1096
+msgid "Application does not accept documents on command line"
+msgstr "Aplikacyja nie pryjmaje dakumentaŭ z zahadnaha radka"
+
+#: ../egg/eggdesktopfile.c:1164
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Niezrazumiełaja opcyja ŭklučeńnia: %d"
+
+#: ../egg/eggdesktopfile.c:1372
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Nielha pieradavać adrasy dakumentaŭ elementam stała \"Type=Link\""
+
+#: ../egg/eggdesktopfile.c:1391
+msgid "Not a launchable item"
+msgstr "Element nia dziela uklučeńnia"
+
+#: ../egg/eggsmclient-libmateui.c:102
+msgid "Session management"
+msgstr "Kiravańnie sesijami"
+
+#: ../egg/eggsmclient-libmateui.c:136
+msgid "MATE GUI Library + EggSMClient"
+msgstr "Biblijateka GUI dla MATE + EggSMClient"
+
+#: ../egg/eggsmclient.c:185
+msgid "Disable connection to session manager"
+msgstr "Nie spałučaj z kiraŭnikom sesijaŭ"
+
+#: ../egg/eggsmclient.c:188
+msgid "Specify file containing saved configuration"
+msgstr "Akreśli fajł, dzie zachoŭvajecca kanfihuracyja"
+
+#: ../egg/eggsmclient.c:188
+msgid "FILE"
+msgstr "FAJŁ"
+
+#: ../egg/eggsmclient.c:191
+msgid "Specify session management ID"
+msgstr "Akreśli ID kiravańnia sesijami"
+
+#: ../egg/eggsmclient.c:191
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:241
+msgid "Session Management Options"
+msgstr "Opcyi kiravańnia sesijami"
+
+#: ../egg/eggsmclient.c:242
+msgid "Show Session Management options"
+msgstr "Pakažy opcyi kiravańnia sesijami"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Kanfihuracyjny server sustreŭ prablemu.\n"
+"(%s vyjšła sa statusam %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:256
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Nie ŭdałosia znajści ikonu „%s”"
+
+#: ../mate-session/gsm-inhibit-dialog.c:580
+msgid "Unknown"
+msgstr "Nieviadoma"
+
+#: ../mate-session/gsm-inhibit-dialog.c:631
+msgid "A program is still running:"
+msgstr "Dasiul pracuje prahrama:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:635
+msgid "Some programs are still running:"
+msgstr "Dasiul pracujuć prahramy:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:636
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Čakajem vychadu z prahramaŭ. Kali ty pierapyniš hetyja prahramy, možaš "
+"stracić karysnyja źviestki."
+
+#: ../mate-session/gsm-inhibit-dialog.c:864
+msgid "Switch User Anyway"
+msgstr "Usio roŭna źmiani karystalnika"
+
+#: ../mate-session/gsm-inhibit-dialog.c:867
+msgid "Logout Anyway"
+msgstr "Usio roŭna vyjdzi"
+
+#: ../mate-session/gsm-inhibit-dialog.c:870
+msgid "Suspend Anyway"
+msgstr "Usio roŭna zaśni"
+
+#: ../mate-session/gsm-inhibit-dialog.c:873
+msgid "Hibernate Anyway"
+msgstr "Usio roŭna zhibernuj"
+
+#: ../mate-session/gsm-inhibit-dialog.c:876
+msgid "Shutdown Anyway"
+msgstr "Usio adno vyklučy"
+
+#: ../mate-session/gsm-inhibit-dialog.c:879
+msgid "Reboot Anyway"
+msgstr "Usio adno pieraŭruchom"
+
+#: ../mate-session/gsm-inhibit-dialog.c:887
+msgid "Lock Screen"
+msgstr "Zablakuj ekran"
+
+#: ../mate-session/gsm-inhibit-dialog.c:890
+msgid "Cancel"
+msgstr "Anuluj"
+
+#: ../mate-session/gsm-logout-dialog.c:283
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d seconds."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../mate-session/gsm-logout-dialog.c:295
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d seconds."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../mate-session/gsm-logout-dialog.c:377
+msgid "Log out of this system now?"
+msgstr "Zaraz ža vyjści z systemy?"
+
+#: ../mate-session/gsm-logout-dialog.c:383
+msgid "_Switch User"
+msgstr "Ź_miani karystalnika"
+
+#: ../mate-session/gsm-logout-dialog.c:392
+msgid "_Log Out"
+msgstr "_Vyjdzi"
+
+#: ../mate-session/gsm-logout-dialog.c:398
+msgid "Shut down this system now?"
+msgstr "Zaraz ža vyklučyć systemu?"
+
+#: ../mate-session/gsm-logout-dialog.c:404
+msgid "S_uspend"
+msgstr "Z_aśni"
+
+#: ../mate-session/gsm-logout-dialog.c:410
+msgid "_Hibernate"
+msgstr "Z_hibernuj"
+
+#: ../mate-session/gsm-logout-dialog.c:416
+msgid "_Restart"
+msgstr "_Pierazahruzi"
+
+#: ../mate-session/gsm-logout-dialog.c:426
+msgid "_Shut Down"
+msgstr "_Vyklučy"
+
+#: ../mate-session/gsm-manager.c:924 ../mate-session/gsm-manager.c:1541
+msgid "Not responding"
+msgstr "Nie adkazvaje"
+
+#: ../mate-session/gsm-xsmp-client.c:988
+msgid "This program is blocking log out."
+msgstr "Hetaja prahrama strymvaje vychad."
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "Admoŭlena ŭ novym spałučeńni, bo sesija ŭžo zakončvajecca\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Nie ŭdałosia stvaryć sokiet ICE dziela prasłuchoŭvańnia: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:139
+msgid "Unable to start login session (and unable connect to the X server)"
+msgstr "Nie ŭdałosia ŭklučyć sesiju ŭvachodu (i spałučycca z serveram X)"
+
+#: ../mate-session/main.c:504
+msgid "Override standard autostart directories"
+msgstr "Ułasnyja katalohi aŭtamatyčnaha ŭklučeńnia"
+
+#: ../mate-session/main.c:505
+msgid "MateConf key used to lookup default session"
+msgstr "Kluč „MateConf” dla zmoŭčanaj sesii"
+
+#: ../mate-session/main.c:506
+msgid "Enable debugging code"
+msgstr "Uklučy debugavy kod"
+
+#: ../mate-session/main.c:507
+msgid "Do not load user-specified applications"
+msgstr "Nie ŭklučaj aplikacyjaŭ, akreślenych karystalnikam"
+
+#: ../mate-session/main.c:528
+msgid " - the MATE session manager"
+msgstr "- kiraŭnik sesijaŭ dla MATE"
+
+#: ../splash/mate-session-splash.c:291
+msgid "- MATE Splash Screen"
+msgstr "- Zastaŭka MATE"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "Zastaŭka MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Set the current session name"
+msgstr "Akreśl nazvu dziejnaj sesii"
+
+#: ../tools/mate-session-save.c:65
+msgid "NAME"
+msgstr "NAZVA"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out"
+msgstr "Vyjdzi"
+
+#: ../tools/mate-session-save.c:67
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Vyjdzi, nie zvažajučy na najaŭnych zatrymnikaŭ"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show logout dialog"
+msgstr "Pakažy akno vychadu"
+
+#: ../tools/mate-session-save.c:69
+msgid "Show shutdown dialog"
+msgstr "Pakažy akno vyklučeńnia"
+
+#: ../tools/mate-session-save.c:70
+msgid "Kill session"
+msgstr "Zabi sesiju"
+
+#: ../tools/mate-session-save.c:71
+msgid "Use dialog boxes for errors"
+msgstr "Užyj dyjalohavyja vokny dla pamyłak"
+
+#: ../tools/mate-session-save.c:72
+msgid "Do not require confirmation"
+msgstr "Nie pytajsia paćvierdžańnia"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Niemahčyma spałučycca z kiraŭnikom sesij"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Prahrama ŭklučanaja ź niaŭzhodnienymi opcyjami"
+
+#~ msgid "Could not connect to the session manager\n"
+#~ msgstr "Nie ŭdałosia spałučycca z kiraŭnikom sesijaŭ\n"
+
+#~ msgid " - Save the current session"
+#~ msgstr "- Zachoŭvaje dziejnuju sesiju"
+
+#~ msgid "Play logout sound instead of login"
+#~ msgstr "Hraj huk vychadu zamiest huku ŭvachodu"
+
+#~ msgid "- MATE login/logout sound"
+#~ msgstr "- Huk uvachodu/vychadu MATE"
diff --git a/po/bg.po b/po/bg.po
new file mode 100644
index 0000000..35cde81
--- /dev/null
+++ b/po/bg.po
@@ -0,0 +1,505 @@
+# Bulgarian translation of mate-session po-file.
+# Copyright (C) 2001, 2002, 2004, 2005, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Pavel Cholakov <[email protected]>, 2001.
+# Yanko Kaneti <[email protected]>, 2002.
+# Alexander Shopov <[email protected]>, 2002, 2005, 2006, 2007, 2009, 2010.
+# Vladimir "Kaladan" Petkov <[email protected]>, 2004, 2005.
+# Peter Slavov <[email protected]>, 2004
+# Yavor Doganov <[email protected]>, 2008.
+# Damyan Ivanov <[email protected]>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session mate-2-32\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-26 17:51+0300\n"
+"PO-Revision-Date: 2010-09-26 17:51+0300\n"
+"Last-Translator: Damyan Ivanov <[email protected]>\n"
+"Language-Team: Bulgarian <[email protected]>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Избор на команда"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Добавяне на програма стартираща при влизане"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Редактиране на програмите стартиращи при влизане"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Командата за програма стартираща при влизане не може да е празна"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Командата за програма стартираща при влизане е неправилна"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Включена"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Икона"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Програма"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Настройки за автоматично стартиране на програми"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Без име"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Без описание"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Версията на тази програма"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Документът от помощта не може да бъде показан"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Влизане в MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Стандартна сесия"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Файлов мениджър"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "Ако е включено, mate-session ще предупреди преди да приключи сесия."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Ако е включено, mate-session автоматично ще запазва сесията."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Списък с програми, които са част от стандартната сесия."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Списък с компоненти, които са необходими като част от сесията. (Всеки "
+"елемент е ключ от дървото „/desktop/mate/session/required_components“.) "
+"Обикновено програмата за настройване на сесиите не позволява потребител да "
+"премахва необходими компоненти от сесията — управлението на сесии "
+"автоматично ще добави липсващите компоненти, ако те бъдат премахнати."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Питане при изход"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Панел"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Необходими компоненти на сесията"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Запазване на сесиите"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Файловият мениджър осигурява иконите на работната среда и позволява да "
+"взаимодействате със запазените файлове."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"Време на бездействие в минути, след което цялата сесията се счита за "
+"бездействаща."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Панелът осигурява лентите горе и долу на екрана, които съдържат менюта, "
+"списък с прозорци, икони за състояние, часовник и т.н."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Мениджърът на прозорци е програмата, която рисува заглавната лента и рамките "
+"около прозорците и ви позволява да ги местите и оразмерявате."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Време за обявяване на сесия за бездействаща"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Мениджър на прозорци"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Някои програми все още работят:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"Изчакване на програмата да завърши. Прекъсването ѝ може да доведе до загуба "
+"на информация."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr ""
+"Изберете програмите, които да се стартират при влизането ви в системата"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Автоматично стартирани програми"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "_Допълнителни програми стартиращи при влизане:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "Избор…"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Команда:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Ко_ментар:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Опции"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Програми стартиращи при влизане"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Автоматично запомняне на стартираните програми при изход от системата"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Име:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Запомняне на стартираните програми при изход от системата"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Файлът не е във формат .desktop"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Непозната версия на файла: %s"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Стартиране на %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Програмата не приема документи през командния ред"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Непозната опция при стартиране „%d“"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "В обекти от вида „Type=Link“ не може да се подават адреси на документи"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Не е обект за стартиране"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Изключване на връзката с управлението на сесиите"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Указване на файла със запазените настройки"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "ФАЙЛ"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Указване на идентификатор за управлението на сесиите"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ИДЕНТИФИКАТОР"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Настройки на управлението на сесии:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Показване на настройките за управлението на сесиите"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Възникна проблем със сървъра за настройки.\n"
+"(%s спря със състояние %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Иконата „%s“ не е открита"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Непозната"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Все още работи програмата:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Все още работят програмите:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Изчакване на програмите да завършат. Прекъсването им може да доведе до "
+"загуба на информация."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Смяна на потребител"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "Изход въпреки всичко"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Приспиване"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Дълбоко приспиване"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "Спиране въпреки всичко"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Рестартиране на компютъра"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Заключване на екрана"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Отказ"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Ще излезете от системата автоматично след %d секунда."
+msgstr[1] "Ще излезете от системата автоматично след %d секунди."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Компютърът ще се изключи автоматично след %d секунда."
+msgstr[1] "Компютърът ще се изключи автоматично след %d секунди."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "В момента сте влезли като „%s“."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Излизане от системата?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "_Смяна на потребител"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Изход"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Изключване на системата?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "_Приспиване"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Дълбоко приспиване"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "_Рестартиране"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "Изключване на _компютъра"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Не отговаря"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "Тази програма блокира излизането."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Отхвърляне на свързванията с нови клиенти, защото тази сесия в момента се "
+"затваря\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Неуспех при създаването на гнездо на ICE за слушане: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Неуспех при стартирането на входната сесия (и неуспех при свързването с X "
+"сървъра)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Използване на различни от стандартните папки за стартиране при влизане"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "Ключ на MateConf за стандартната сесия"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Включване на изчистването на грешки"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Да не се зареждат програми, зададени от потребителя"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "— управление на сесиите на MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Изход"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Изход въпреки блокиращите програми"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Показване на диалога за изход"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Показване на диалога за изключване"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Да се ползват диалогови кутии за грешките"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Задаване на име на текущата сесия"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "ИМЕ"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Убиване на сесия"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Без потвърждаване"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Не може да се изгради връзка към управлението на сесии"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Програмата е стартирана с противоречащи си опции"
diff --git a/po/bn.po b/po/bn.po
new file mode 100644
index 0000000..f861901
--- /dev/null
+++ b/po/bn.po
@@ -0,0 +1,552 @@
+# Bengali translation of mate-session.
+# Copyright (C) 2003, 2006, 2008, 2009 Free Software Foundation, Inc.
+# This file is distributed under the same license as the mate-session package.
+#
+# Taneem Ahmed <[email protected]>, 2003.
+# Khandakar Mujahidul Islam <[email protected]>, 2003-2005.
+# Runa Bhattacharjee <[email protected]>, 2008.
+# Runa Bhattacharjee <[email protected]>, 2008, 2009.
+# Loba Yeasmeen <[email protected]>, 2009.
+# Israt Jahan <[email protected]>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: bn\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2009-12-14 20:30+0000\n"
+"PO-Revision-Date: 2010-03-24 17:40+0600\n"
+"Last-Translator: Israt Jahan <[email protected]>\n"
+"Language-Team: Bengali <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "কমান্ড নির্বাচন করুন"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "স্টার্টআপ প্রোগ্রাম যোগ করুন"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "স্টার্টআপ কমান্ড সম্পাদন করুন"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "স্টার্টআপ কমান্ড ফাঁকা থাকবে না"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "স্টার্টআপ কমান্ডটি কার্যকর নয়"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "সক্রিয়"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "আইকন"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "প্রোগ্রাম"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "স্টার্টআপ অ্যাপ্লিকেশনের পছন্দসমূহ"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "নাম নেই"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "কোন বর্ণনা নেই"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "এই অ্যাপ্লিকেশনের সংস্করণ"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "সহায়তা নথি প্রদর্শন করতে ব্যর্থ"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "MATE সেটিং ডেমন সহায়তাকারী"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "এই সেশনের মাধ্যমে MATE-এ লগ-ইন করা যাবে"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "ডিফল্ট সেশন"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "ফাইল ম্যানেজার"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "সক্রিয় থাকলে, সেশন সমাপ্ত করার পূর্বে mate-সেশন ব্যবহারকারী প্রম্পট করবে"
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"সক্রিয় থাকলে, mate-সেশন দ্বারা স্বয়ংক্রিয়ভাবে সেশন সংরক্ষণ করা হবে। অন্যথায়, সেশন "
+"সংরক্ষণের জন্য লগ-আউট ডায়ালগটির একটি অপশন থাকবে।"
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "অ্যাপ্লিকেশনের তালিকা যা ডিফল্ট সেশনের একটি অংশ।"
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"সেশনের একটি অংশ হিসেবে আবশ্যক উপাদানের তালিকা। (প্রতিটি এলিমেন্ট \"/desktop/"
+"mate/session/required-components\"-র অধীন একটি কী এর নাম প্রদান করা হবে)। "
+"স্টার্টআপ অ্যাপ্লিকেশনের পছন্দসমূহের টুল ব্যবহারকারীকে সাধারণত সেশন থেকে একটি "
+"প্রয়োজনীয় উপাদান অপসারণ অনুমোদন করবে এবং কোনো উপাদান অপসারিত হলে, সেশন "
+"ম্যানেজার দ্বারা তা স্বয়ংক্রিয়ভাবে পুনরায় যোগ করা হবে।"
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "লগ-আউট প্রম্পট"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "প্যানেল"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "লগ-ইন স্প্ল্যাশ স্ক্রিনের জন্য ব্যবহার করতে পছন্দসই ছবি"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "প্রয়োজনীয় সেশন কম্পোনেন্ট"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "সেশন সংরক্ষণ করা হবে"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "স্প্ল্যাশ স্ক্রিন প্রদর্শন করা হবে"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "সেশনের শুরুতে স্প্ল্যাশ স্ক্রিন প্রদর্শন করা হবে"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"ফাইল ম্যানেজারের মাধ্যমে ডেক্সটপ আইকন সরবরাহ করা হয় এবং আপনার সংরক্ষিত ফাইলগুলির "
+"মধ্যে যোগাযোগ অনুমোদন করে।"
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "সেশনকে নিষ্ক্রিয় হিসেবে নির্ধারণ করার পূর্বে নিষ্ক্রিয়তার সময়ের পরিমান।"
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"পর্দার উপর অথবা নীচের অংশে মেনু, উইন্ডো তালিকা, অবস্থাসূচক আইকন, ঘড়ি প্রভৃতি "
+"প্যানেলের বারে বিদ্যমান থাকে।"
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"উইন্ডো ম্যানেজারের সাহায্যে শিরোনাম বার ও উইন্ডোর চারপাশে সীমানা নির্ধারণ করা হয় "
+"এবং উইন্ডোর অবস্থান ও মাপ পরিবর্তন করা সম্ভব হয়।"
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"$datadir/pixmaps/ ডিরেক্টরি অনুযায়ী এটি আপেক্ষিক পাথ। সাব-ডিরেক্টরি ও ছবির নাম "
+"হলো বৈধ মান। এই মান পরিবর্তন করা হলে পরবর্তী সেশনের উপর তার প্রভাব পরবে।"
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "সেশন নিষ্ক্রিয় হিসেবে নির্ধারন করার পূর্বের সময়"
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "উইন্ডো ম্যানেজার"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>কিছু প্রোগ্রাম এখনো চলছে:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"প্রোগ্রাম সমাপ্তির অপেক্ষা করা হচ্ছে। প্রোগ্রাম বিঘ্নিত হলে আপনার কাজের ক্ষতি হতে "
+"পারে।"
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "লগ-ইন করার সময় কোন অ্যাপ্লিকেশনটি শুরু করা হবে তা নির্বাচন করুন"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "স্টার্টআপ অ্যাপ্লিকেশন"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "অতিরিক্ত startup _programs:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "ব্রাউজ করুন..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "কমান্ড: (_m)"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "মন্তব্য: (_e)"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "অপশন"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "স্টার্টআপ প্রোগ্রাম"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr ""
+"লগ-আউট করার সময়, চলমান অ্যাপ্লিকেশনগুলির তালিকা স্বয়ংক্রিয়ভাবে মনে রাখা হবে (_A)"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "নাম: (_N)"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "বর্তমানে চলমান অ্যাপ্লিকেশনের তালিকা মনে রাখা হবে (_R)"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "ফাইলটি একটি বৈধ .desktop ফাইল নয়"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "অপরিচিত ডেস্কটপ ফাইলের সংস্করণ '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "শুরু করা হচ্ছে %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "কমান্ড লাইনে এই অ্যাপ্লিকেশন দ্বারা কোনো নথিপত্র গৃহীত হয় না"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "চালুকরণের অপরিচিত অপশন: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "'Type=Link' ডেস্কটপ এন্ট্রির জন্য নথির URI উল্লেখ করা যায় নয়"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "চালু করার অযোগ্য আইটেম"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "সেশন ম্যানেজারের সাথে সংযোগ বিচ্ছিন্ন করা হয়"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "সংরক্ষিত কনফিগারেশন সহ ফাইল উল্লেখ করুন"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FILE"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "সেশন পরিচালনা ID উল্লেখ করুন"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "সেশন পরিচালনা অপশন:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "সেশন পরিচালনা অপশন প্রদর্শন করা হবে"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"সার্ভার কনফিগারেশন সংক্রান্ত কিছু সমস্যা রয়েছে।\n"
+"(%s প্রস্থানকালে %d অবস্থায় থাকে)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "'%s' আইকন খুঁজে পাওয়া যায়নি"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "অজানা"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "একটি প্রোগ্রাম এখনও চলছে:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "কয়েকটি প্রোগ্রাম এখনও চলছে:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"প্রোগ্রাম সমাপ্তির জন্য অপেক্ষা করা হচ্ছে। প্রোগ্রাম বিঘ্নিত হলে আপনার কাজের ব্যাঘাত "
+"ঘটতে পারে।"
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "তথাপি ব্যবহারকারী পরিবর্তন করা হবে"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "তথাপি লগ-আউট করা হবে"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "তথাপি স্থগিত করা হবে"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "তথাপি হাইবারনেট করা হবে"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "তথাপি বন্ধ করা হবে"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "তথাপি পুনরায় বুট করা হবে"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "পর্দা লক করুন"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "বাতিল"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "%d সেকেন্ড অতিক্রান্ত হলে স্বয়ংক্রিয়ভাবে আপনাকে লগ-আউট করা হবে।"
+msgstr[1] "%d সেকেন্ড অতিক্রান্ত হলে স্বয়ংক্রিয়ভাবে আপনাকে লগ-আউট করা হবে।"
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "%d সেকেন্ড অতিক্রান্ত হলে স্বয়ংক্রিয়ভাবে সিস্টেম বন্ধ করা হবে।"
+msgstr[1] "%d সেকেন্ড অতিক্রান্ত হলে স্বয়ংক্রিয়ভাবে সিস্টেম বন্ধ করা হবে।"
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "বর্তমানে আপনি \"%s\" নামে লগ-ইন করে আছেন।"
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "এখনই সিস্টেম থেকে লগ-আউট করা হবে কি?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "ব্যবহারকারী পরিবর্তন করুন (_S)"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "লগ আউট (_L)"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "এখনই সিস্টেম বন্ধ করা হবে কি?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "স্থগিত করা (_u)"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "সুপ্ত করা (_H)"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "পুনরায় চালু করা (_R)"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "বন্ধ করা (_S)"
+
+#: ../mate-session/gsm-manager.c:1220 ../mate-session/gsm-manager.c:1912
+msgid "Not responding"
+msgstr "সাড়া দিচ্ছে না"
+
+#: ../mate-session/gsm-xsmp-client.c:1206
+msgid "This program is blocking log out."
+msgstr "এই প্রোগ্রাম দ্বারা লগ-আউট ব্লক করা হচ্ছে।"
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"সেশনটি বর্তমানে বন্ধ করা হচ্ছে এবং এ কারনে নতুন ক্লায়েন্ট সংযোগ প্রত্যাখ্যান করা "
+"হচ্ছে।\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ICE লিসেন সকেট তৈরি করতে ব্যর্থ: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "লগ-ইন সেশন শুরু করতে ব্যর্থ (X সার্ভারের সাথে সংযোগ স্থাপনে ব্যর্থ)"
+
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr "আদর্শ স্বয়ংক্রিয়ভাবে শুরু ডিরেক্টরি উপেক্ষা করা হবে"
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr "ডিফল্ট সেশন অনুসন্ধানের জন্য ব্যবহৃত MateConf কী"
+
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr "কোড ডিবাগ ব্যবস্থা সক্রিয় করুন"
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr "ব্যবহারকারী দ্বারা নির্ধারিত অ্যাপ্লিকেশন লোড করা হবে না"
+
+#: ../mate-session/main.c:457
+msgid " - the MATE session manager"
+msgstr "- MATE সেশন ম্যানেজার"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- MATE-র স্প্ল্যাশ স্ক্রিন"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "MATE-র স্প্ল্যাশ স্ক্রিন"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "লগ-আউট"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "কোনো উপস্থিত নিবৃত্তকারক অগ্রাহ্য করে লগ-আউট করা হবে"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "লগ-আউট ডায়ালগ বাক্স প্রদর্শন করা হবে"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "বন্ধ করার ডায়ালগ বাক্স প্রদর্শন করা হবে"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "ত্রুটির ডায়ালগ বাক্স ব্যবহার করুন"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "বর্তমান সেশনের নাম নির্ধারণ করুন"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAME"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "সেশন কিল করুন"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "নিশ্চিতকরণ প্রয়োজন নেই"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "সেশন ম্যানেজারের সাথে সংযোগ স্থাপনে ব্যর্থ"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "দ্বন্দ্বযুক্ত অপশন সহ প্রোগ্রাম কল করা হয়েছে"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "এই সেশনের জন্য সহায়ক প্রযুক্তি সমর্থনের জন্য অনুরোধ করা হয়েছে, কিন্তু প্রয়োগের "
+#~ "রেজিস্ট্রি পাওয়া যায়নি। অনুগ্রহ করে AT-SPI প্যাকেজ ইনস্টল করা হয়েছে কি না তা "
+#~ "নিশ্চিত করুন। সহায়ক প্রযুক্তি সমর্থন ছাড়াই আপনার সেশন শুরু হয়েছে।"
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "AT SPI রেজিস্ট্রি র‍্যাপার"
diff --git a/po/bn_IN.po b/po/bn_IN.po
new file mode 100644
index 0000000..212a5f7
--- /dev/null
+++ b/po/bn_IN.po
@@ -0,0 +1,502 @@
+# translation of bn_IN.po to Bengali INDIA
+# Taneem Ahmed <[email protected]>, 2003.
+# Khandakar Mujahidul Islam <[email protected]>, 2003-2005.
+# Runa Bhattacharjee <[email protected]>, 2008.
+# Runa Bhattacharjee <[email protected]>, 2008, 2009, 2010.
+# Bengali India translation of mate-session.
+# Copyright (C) 2003, 2006, 2008, 2009, 2010 Free Software Foundation, Inc.
+# This file is distributed under the same license as the mate-session package.
+msgid ""
+msgstr ""
+"Project-Id-Version: bn_IN\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-session&component=general\n"
+"POT-Creation-Date: 2010-07-24 18:21+0000\n"
+"PO-Revision-Date: 2010-07-30 16:30+0530\n"
+"Last-Translator: Runa Bhattacharjee <[email protected]>\n"
+"Language-Team: Bengali INDIA <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "কমান্ড নির্বাচন করুন"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "প্রারম্ভিক প্রোগ্রাম যোগ করুন"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "প্রারম্ভিক কমান্ড সম্পাদন করুন"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "প্রারম্ভিক কমান্ড ফাঁকা রাখা যাবে না"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "প্রারম্ভিক কমান্ডের নাম উল্লেখ করা আবশ্যক"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "সক্রিয়"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "আইকন"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "প্রোগ্রাম"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "প্রারম্ভিক অ্যাপ্লিকেশন সংক্রান্ত পছন্দ"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "নামবিহীন"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "বিবরণ অনুপস্থিত"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "অ্যাপ্লিকেশনের সংস্করণ"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "সহায়ক নথিপত্র প্রদর্শন করতে ব্যর্থ"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "এই সেশানের মাধ্যমে MATE-এ লগ-ইন করা যাবে"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "ডিফল্ট সেশান"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "ফাইল পরিচালন ব্যবস্থা"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"সক্রিয় থাকলে, সেশান সমাপ্ত করার পূর্বে mate-session দ্বারা ব্যবহারকারীকে সতর্ক করা "
+"হবে"
+
+#: ../data/mate-session.schemas.in.in.h:4
+#| msgid ""
+#| "If enabled, mate-session will prompt the user before ending a session."
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "সক্রিয় থাকলে, mate-session দ্বারা স্বয়ংক্রিয়ভাবে সেশান সংরক্ষণ করা হবে।"
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "ডিফল্ট সেশানের জন্য অ্যাপ্লিকেশনের তালিকা।"
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"সেশানের জন্য আবশ্যক সমাগ্রীর তালিকা। (প্রতিটি বস্তুর জন্য \"/desktop/mate/session/"
+"required-components\"-র অধীন একটি কি চিহ্নিত করা হয়েছে।) প্রারম্ভিক "
+"অ্যাপ্লিকেশনের পছন্দ নির্ধারণের বৈশিষ্ট্যের ফলে ব্যবহারকারীরা সেশানের কোনো আবশ্যক "
+"সামগ্রী সরাতে পারবেন না। কোনো সমাগ্রী মুছে ফেলা হলে, সেশান পরিচালন ব্যবস্থা দ্বারা "
+"তা পুনরায় যোগ করা হবে।"
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "লগ-আউট প্রম্পট"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "প্যানেল"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "সেশানের আবশ্যক সামগ্রী"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "সেশন সংরক্ষণ করা হবে"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"ফাইল পরিচালন ব্যবস্থা দ্বারা ডেস্কটপ আইকন উপলব্ধ করা হয় ও সংরক্ষিত ফাইলগুলির সাথে "
+"ইন্টারেক্ট করার সুবিধা উপস্থিত করা হয়।"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "The number of minutes of inactivity before the session is considered idle."
+msgstr "সেশানকে কর্মবিহীন ধার্য করার পূর্বে চিহ্নিত মিনিট অবধি অপেক্ষা করা হবে।"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"প্যানেলের সাহায্যে পর্দার উপর অথবা নীচের অংশে মেনু, উইন্ডো তালিকা, অবস্থাসূচক আইকন, "
+"ঘড়ি প্রভৃতি বার উপলব্ধ করা হয়।"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"উইন্ডো পরিচালন ব্যবস্থার সাহায্যে উইন্ডোর শিরোনামের বার ও প্রান্তরেখা আঁকা হয় ও "
+"উইন্ডোর অবস্থান ও মাপ পরিবর্তন করা সম্ভব হবে।"
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "সেশান কর্মবিহীন ধার্য করার পূর্বে কত সময় অপেক্ষা করা হবে"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "উইন্ডো পরিচালন ব্যবস্থা"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>কয়েকটি প্রোগ্রাম এখনো চলছে:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"প্রোগ্রাম সমাপ্তির অপেক্ষা করা হচ্ছে। প্রোগ্রাম বিঘ্নিত হলে সঞ্চালিত কর্মের ফলাফল মুছে "
+"যাওয়ার সম্ভাবনা রয়েছে।"
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "লগ-ইন করার সময় আরম্ভ করার উদ্দেশ্যে চিহ্নিত অ্যাপ্লিকেশন"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "প্রারম্ভিক অ্যাপ্লিকেশন"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "অতিরিক্ত প্রারম্ভিক প্রোগ্রাম :(_p)"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "ব্রাউজ করুন..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "কমান্ড: (_m)"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "মন্তব্য: (_e)"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "বিকল্প"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "প্রারম্ভিক প্রোগ্রাম"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "লগ-আউট করার সময়, চলমান অ্যাপ্লিকেশনগুলির তালিকা স্বয়ংক্রিয়রূপে মনে রাখা হবে (_A)"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "নাম: (_N)"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "বর্তমানে চলমান অ্যাপ্লিকেশনের তালিকা মনে রাখা হবে (_R)"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "বৈধ .desktop ফাইল নয়"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "অপরিচিত ডেস্কটপ ফাইলের সংস্করণ '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "আরম্ভ করা হচ্ছে %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "কমান্ড-লাইনের মাধ্যমে এই অ্যাপ্লিকেশন দ্বারা কোনো নথিপত্র গ্রহণ করা হয় না"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "আরম্ভ সংক্রান্ত অপরিচিত বিকল্প: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "'Type=Link' ডেস্কটপ এনট্রির জন্য নথিপত্রের URI উল্লেখ করা সম্ভব নয়"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "চিহ্নিত বস্তু আরম্ভ করা সম্ভব নয়"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "সেশান পরিচালনব্যবস্থার সাথে সংযোগ বিচ্ছিন্ন করা হবে"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "সংরক্ষিত কনফিগারেশন সহ ফাইল চিহ্নিত করুন"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FILE"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "সেশান পরিচালনার ID উল্লেখ করুন"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "সেশন পরিচালনা সংক্রান্ত বিকল্প:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "সেশন পরিচালনা সংক্রান্ত বিকল্প প্রদর্শন করা হবে"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"কনফিগারেশন সার্ভারে কিছু সমস্যা উপস্থিত রয়েছে।\n"
+"(%s প্রস্থানকালে %d অবস্থা উৎপন্ন হয়েছে)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "'%s' আইকন পাওয়া যায়নি"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "অজানা"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "একটি প্রোগ্রাম বর্তমানে চলছে:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "কয়েকটি প্রোগ্রাম চলছে:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"প্রোগ্রাম সমাপ্তির অপেক্ষা করা হচ্ছে। প্রোগ্রাম বিঘ্নিত হলে সঞ্চালিত কর্মের ফলে মুছে "
+"যাওয়ার সম্ভাবনা রয়েছে।"
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "তথাপি ব্যবহারকারী অ্যাকাউন্ট পরিবর্তন করা হবে"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "তথাপি লগ-আউট করা হবে"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "তথাপি স্থগিত করা হবে"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "তথাপি নিদ্রিত করা হবে"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "তথাপি বন্ধ করা হবে"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "তথাপি পুনরারম্ভ করা হবে"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "পর্দা লক করুন"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "বাতিল"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "%d সেকেন্ড অতিক্রান্ত হলে স্বয়ংক্রিয়রূপে আপনাকে লগ-আউট করা হবে।"
+msgstr[1] "%d সেকেন্ড অতিক্রান্ত হলে স্বয়ংক্রিয়রূপে আপনাকে লগ-আউট করা হবে।"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "%d সেকেন্ড অতিক্রান্ত হলে স্বয়ংক্রিয়রূপে সিস্টেম বন্ধ করা হবে।"
+msgstr[1] "%d সেকেন্ড অতিক্রান্ত হলে স্বয়ংক্রিয়রূপে সিস্টেম বন্ধ করা হবে।"
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "বর্তমানে \"%s\" পরিচয়ে লগ-ইন করা হয়েছে।"
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "এই মুহূর্তে সিস্টেম থেকে লগ-আউট করা হবে কি?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "ব্যবহারকারী পরিবর্তন করুন (_S)"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "লগ-আউট করুন (_L)"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "এই মুহূর্তে সিস্টেম বন্ধ করা হবে কি?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "স্থগিত করা হবে (_u)"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "নিদ্রিত অবস্থা (_H)"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "পুনরারম্ভ (_R)"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "বন্ধ করুন (_S)"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "কোনো প্রতিক্রিয়া হয়নি"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking log out."
+msgstr "এই প্রোগ্রাম দ্বারা লগ-আউট করতে প্রতিরোধ করা হচ্ছে।"
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"সিস্টেম বর্তমানে বন্ধ করার প্রচেষ্টা করা হচ্ছে ও এই কারণে নতুন ক্লায়েন্টের সাথে সংযোগ "
+"স্থাপনের অনুরোধ প্রত্যাখ্যান করা হচ্ছে।\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ICE অপেক্ষার সকেট নির্মাণ করতে ব্যর্থ: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "লগ-ইন সেশান আরম্ভ করতে ব্যর্থ (X সার্ভারের সাথে সংযোগ স্থাপন করতে ব্যর্থ)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "প্রমিত autostart ডিরেক্টরির মান উপেক্ষা করা হবে"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to lookup default session"
+msgstr "ডিফল্ট সেশান অনুসন্ধানের জন্য ব্যবহৃত MateConf-কি"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "কোড ডিবাগ ব্যবস্থা সক্রিয় করুন"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "ব্যবহারকারী দ্বারা নির্ধারিত অ্যাপ্লিকেশন লোড করা হবে না"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "- MATE সেশান পরিচালনা ব্যবস্থা"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "লগ-আউট"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "কোনো উপস্থিত প্রতিরোধ অগ্রাহ্য করে লগ-আউট করা হবে"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "লগ-আউটের ডায়লগ বক্স প্রদর্শন করা হবে"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "বন্ধ করার ডায়লগ বক্স প্রদর্শন করা হবে"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "ত্রুটির ক্ষেত্রে ডায়লগ বক্স ব্যবহার করুন"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "বর্তমান সেশনের নাম নির্ধারণ করুন"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAME"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "সেশান kill করুন"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "নিশ্চিত করা হবে না"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "সেশান পরিচালনব্যবস্থার সাথে সংযোগ স্থাপন করতে ব্যর্থ"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "দ্বন্দ্বযুক্ত বিকল্প সহ প্রোগ্রাম আরম্ভের প্রচেষ্টা করা হয়েছে"
+
diff --git a/po/br.po b/po/br.po
new file mode 100644
index 0000000..325305d
--- /dev/null
+++ b/po/br.po
@@ -0,0 +1,504 @@
+# Breton translation for mate-session
+# Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006
+# This file is distributed under the same license as the mate-session package.
+# Giulia <EMAIL@ADDRESS>, 2006.
+# Jeremy <EMAIL@ADDRESS>, 2006
+# Jamy <[email protected]>, 2009
+#
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-session&component=general\n"
+"POT-Creation-Date: 2009-08-26 10:49+0000\n"
+"PO-Revision-Date: 2009-09-16 05:04+0100\n"
+"Last-Translator: Denis\n"
+"Language-Team: Brenux <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Dibabit un arc'had"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Ouzhpennañ ur goulev-loc'hañ"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Kemmañ ar goulev-loc'hañ"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "N'hell ket an arc'had-loc'hañ bezañ goullo"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "N'eo ket talvoudek an arc'had loc'hañ"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Gweredekaet"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Arlun"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Goulev"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Gwellvezioù an arloadoù loc'hañ"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Anv ebet"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Deskrivadur ebet"
+
+#: ../capplet/main.c:37
+#: ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "Handelv an arload-mañ"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "N'haller ket skrammañ an teul skoazell"
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid "Assistive technology support has been requested for this session, but the accessibility registry was not found. Please ensure that the AT-SPI package is installed. Your session has been started without assistive technology support."
+msgstr "Goulennet eo bet kemer e garg sikour teknikel evit an estez-mañ, Met n'eo ket bet kavet ar marilh haeziadek. Gwirit a zo staliet ar pakad AT-SPI. N'eo ket bet lañset an estez hep kemer e garg sikour teknikel."
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr "Skoazeller marilh AT SPI"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "Skoazeller sikour arventennoù MATE"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "An estez-mañ a lug ac'hanoc'h davet MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Estez dre ziouer"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Ardoer restroù"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "Ma vez enaouet, e kelaouo mate-sessions an arveriad-ez a-raok echuiñ gant an estez."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically. Otherwise, the logout dialog will have an option to save the session."
+msgstr "Ma 'z eo dewerekaet, mate-estez a waredi emgefreek an estez. War an tu kontrol, un dibarzh a zo evit gwarediñ an estez er voest kendiviz digevreadenn."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Listennad an arloadoù liammet en estez dre ziouer."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid "List of components that are required as part of the session. (Each element names a key under \"/desktop/mate/session/required_components\"). The Startup Applications preferences tool will not normally allow users to remove a required component from the session, and the session manager will automatically add the required components back to the session at login time if they do get removed."
+msgstr "Roll ar parzhioù a ret bezañ e-barzh an estez. (Pep elfenn en deus un alc'hwez anvet dindan \"/desktop/mate/session/required_components\"). Da gustum n'eo ket aotret prenestr dibarzhioù arloadoù loc'hañ an arveriaded da zilemel ur parzh ret evit an estez ha war an tu ur parzh e vefe dilemel, ouzhpenne anezhañ an ardoer estezioù emgefreek e-lec'h ma vo digennasket."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Pedadenn dilugañ"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Skeudenn a blij ganeoc'h da implij evit ar skramm degemer"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "Parzhoù ret evit an estez"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "Gwareziñ an estezioù"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "Diskouez ar skramm-degemer"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "Diskouez ar skramm-degemer pa loc'h an estez"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid "The file manager provides the desktop icons and allows you to interact with your saved files."
+msgstr "Merañ a ra merour restroù an arluniù burev ha gallout a rit etreoberiañ gant ho restroù."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "The number of minutes of inactivity before the session is considered idle."
+msgstr "An niver munutoù a wenedek a-raok eo bezañ an estez e-giz gwenedek."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid "The panel provides the bar at the top or bottom of the screen containing menus, the window list, status icons, the clock, etc."
+msgstr "Ur barrenn ez eus gant an daolenn stur, uhel ouzh izel ar skramm, gant lañseroù, listennad prenestroù, arlunioù diwall, an eurier, hag all."
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid "The window manager is the program that draws the title bar and borders around windows, and allows you to move and resize windows."
+msgstr "Gant an ardoer prenestroù e c'hellit tresañ barrennad titl ha riblennoù war dro prenestroù hag e c'hellit diblasañ ha mentiñ prenestroù."
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid "This is a relative path value based off the $datadir/pixmaps/ directory. Sub-directories and image names are valid values. Changing this value will effect the next session login."
+msgstr "Treug eo war ar c'havlec'h $datadir/pixmaps/. Talvadoù mat eo an isgavlec'hioù hag anvioù skeudenn. An daskemmadur talvoud a cheñcho o tigoriñ un estez nevez."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "Amzer a chom a-raok an estez e vo e-giz dioberiant"
+
+#: ../data/mate-session.schemas.in.in.h:20
+#: ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "ardoer prenestroù"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Arloadoù a lobour c'hoazh:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2
+#: ../mate-session/gsm-inhibit-dialog.c:667
+msgid "Waiting for program to finish. Interrupting program may cause you to lose work."
+msgstr "Gortoz arload echu. Un arsav a riskle da goll roadennoù bennak."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Diuziñ arloadoù da lañsañ er gevreadur"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Arloadoù loc'hañ"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "_Goulevioù loc'hañ ouzhpenn :"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "Furchal..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "A_rc'had :"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "As_kelenn :"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Dibarzhioù"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Meziantoù loc'hañ"
+
+#: ../data/session-properties.ui.h:7
+#, fuzzy
+msgid "_Automatically remember running applications when logging out"
+msgstr "_En em soñjañ emgefreek arloadoù e-pad an dilogadur"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "A_nv :"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "E_n em soñjañ arloadoù o labourat"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "N'eo ket ur restr mod .desktop talvoudek"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Handelv '%s' restr ar burev n'eo ket bet anavezet"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "O kregiñ gant %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "An arload ne zedegemer ket an teulioù dre arroudennoù arc'had"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Dibarzh lañsañ dianavezet : %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "N'haller lakaat URIoù an teul da dremen d'un enankad war ar burev evel 'Type=Link'"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "N'eo ket un dra a c'haller lañsañ"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Lazhañ kennask ouzh ardoer an estez"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Erspizit ar restr gant ar c'hefluniadur enrollet enni"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "RESTR"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Dibab ID ardoadur an estez"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Dibarzhioù ardeiñ an estez :"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Diskouez dibarzhioù ardeiñ an estez"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Ur gudenn zo gant an dafariad kefluniadur.\n"
+"(Kuitaet en deus %s gant ar stad %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "N'eo ket bet kavet an arlun '%s'"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Dianav"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Ur goulev a labour c'hoazh:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Gouleviù a labour c'hoazh:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid "Waiting for programs to finish. Interrupting these programs may cause you to lose work."
+msgstr "Gortoz arload echu. Un arsav a riskle da goll roadennoù bennak."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Kemmañ an arveriad memes tra"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Dilugañ memes tra"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Lakaat da gousket memes tra"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Goañviñ memes tra"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "Lazhañ memes tra"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Adloc'hañ memes tra"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Prennañ ar skramm"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Nullañ"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "C'hwi a vo diweredekaet emgefre en %d eilenn."
+msgstr[1] "C'hwi a vo diweredekaet emgefre en %d eilenn."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "An urzhiataer a lazho emgefre en %d eilenn."
+msgstr[1] "An urzhiataer a lazho emgefre en %d eilenn."
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Kennasket oc'h emgefre a-vremañ e-giz \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "En em dilugañ eus ar reizhiad bremañ ?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "_Kemmañ an arveriad"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "Di_lugañ"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "Lazhañ ar reizhiad bremañ ?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "L_akaat da gousket"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "_Goañviñ"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "_Adloc'hañ"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "_Lazhañ"
+
+#: ../mate-session/gsm-manager.c:1158
+#: ../mate-session/gsm-manager.c:1850
+msgid "Not responding"
+msgstr "Respont ebet"
+
+#: ../mate-session/gsm-xsmp-client.c:1206
+msgid "This program is blocking log out."
+msgstr "Bloket eo an digevreadur gant ar goulev-se."
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid "Refusing new client connection because the session is currently being shut down\n"
+msgstr "N'eo ket aotret ar c'hennask nevez arval rak eo an estez a-vremañ o serriñ\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "N'eus ket tu da grouiñ ur soked selaou ICE : %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "N'eus ket tu da lañsañ an estez (ha kennaskañ ouzh an dafariad X)"
+
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr "Erlec'hiañ kavlec'hioù autostart skoueriek"
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr "An alc'hwez MateConf arveret evit teurle ur sell war an estez dre ziouer"
+
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr "Gweredekaat ar boneg diveugañ"
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr "Ne garg ket an arloadoù goulennet gant an arveriad"
+
+#: ../mate-session/main.c:457
+msgid " - the MATE session manager"
+msgstr " - ardoer estezioù MATE"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- Skramm degemer MATE"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "Skramm degemer MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Dilugañ"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Digennaskañ, o tisoñjañ inibourad a chom"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Diskouez ar voestad emziviz Dilugañ"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Diskouez ar voestad emziviz Lazhañ"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Arverañ ar voestad emziviz evit ar fazioù"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Despizañ an anv estez a-vremañ"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "ANV"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Lazhañ an estez"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Chom hep goulenn ma vo kadarnaet"
+
+#: ../tools/mate-session-save.c:120
+#: ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "N'haller ket en em gennaskañ ouzh an ardoer estezioù"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Goulev galvet gant dibarzhioù tabutek"
+
diff --git a/po/bs.po b/po/bs.po
new file mode 100644
index 0000000..e7e9a95
--- /dev/null
+++ b/po/bs.po
@@ -0,0 +1,490 @@
+# translation of mate-session.HEAD.bs.po to Bosnian
+# Bosnian translation of mate-session.
+# Copyright (C) 2002
+# This file is distributed under the same license as the mate-session package.
+# Samir Marić <[email protected]>, 2002.
+# Kemal Sanjta <[email protected]>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.HEAD.bs\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-01-11 08:59+0000\n"
+"PO-Revision-Date: 2004-07-28 02:50+0200\n"
+"Last-Translator: Kemal Sanjta <[email protected]>\n"
+"Language-Team: Bosnian <+>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.3.1\n"
+
+#: mate-session/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "Dozvoli TCP konekcije"
+
+#: mate-session/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"Iz sigurnosnih razloga na platformama koje imaju _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session neće slušati konekcije na TCP portovima. "
+"Ova opcija će dozvoliti konekcije sa (autorizovane) udaljenih hostova. mate-"
+"session mora biti ponovo pokrenut da bi ovo imalo efekta."
+
+#: mate-session/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Ukoliko je omogućeno, mate-session će potstaći korisnika prije završavanja "
+"sesije."
+
+#: mate-session/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Ukoliko je omogućeno, mate-session će sačuvati sesiju automatski. U "
+"suprotnom, odjavni dijalog će imati opciju za spašavanje sesije."
+
+#: mate-session/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "Odjavni prompt"
+
+#: mate-session/mate-session.schemas.in.h:6
+msgid ""
+"Preferred Image to use for the splash screen when logging in to the MATE "
+"Desktop"
+msgstr ""
+"Preporučena pozdravna slika za korištenje prilikom prijave na MATE Desktop"
+
+#: mate-session/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "Sačuvaj sesije"
+
+#: mate-session/mate-session.schemas.in.h:8
+msgid "Show the splash screen"
+msgstr "Pokaži pozdravni ekran pri prijavi"
+
+#: mate-session/mate-session.schemas.in.h:9
+msgid "Show the splash screen when the session starts up"
+msgstr "Pokaži splash ekran kada se sesija pokreće"
+
+#: mate-session/mate-session.schemas.in.h:10
+msgid "Splash Screen Image"
+msgstr "Splash Ekran Slika"
+
+#: mate-session/gsm-client-editor.c:97 mate-session/startup-programs.c:314
+msgid "_Order:"
+msgstr "_Poredak:"
+
+#: mate-session/gsm-client-editor.c:99
+msgid "The order in which applications are started in the session."
+msgstr "Poredak u kojem su aplikacije pokrenute u sesiji."
+
+#: mate-session/gsm-client-editor.c:106
+msgid "What happens to the application when it exits."
+msgstr "Šta se dešava sa aplikacijom kada izlazi."
+
+#: mate-session/gsm-client-editor.c:109
+msgid "_Style:"
+msgstr "_Stil: "
+
+#: mate-session/gsm-client-list.c:150
+#: mate-session/session-properties-capplet.c:412
+msgid "Order"
+msgstr "Poredak"
+
+#: mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr "Stil"
+
+#: mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr "Stanje"
+
+#: mate-session/gsm-client-list.c:165
+msgid "Program"
+msgstr "Program"
+
+#: mate-session/gsm-client-row.c:31
+msgid "Inactive"
+msgstr "Neaktivan"
+
+#: mate-session/gsm-client-row.c:32
+msgid "Waiting to start or already finished."
+msgstr "Čeka da počne, ili već završio."
+
+#: mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr "Počinje"
+
+#: mate-session/gsm-client-row.c:35
+msgid "Started but has not yet reported state."
+msgstr "Pokrenut, ali nije još prijavio stanje."
+
+#: mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr "Pokrenut"
+
+#: mate-session/gsm-client-row.c:38
+msgid "A normal member of the session."
+msgstr "Normalan član sesije."
+
+#: mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr "Snima"
+
+#: mate-session/gsm-client-row.c:41
+msgid "Saving session details."
+msgstr "Snima detalje sesije."
+
+#: mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr "Nepoznat"
+
+#: mate-session/gsm-client-row.c:44
+msgid "State not reported within timeout."
+msgstr "Stanje nije prijavljeno u periodu timeout-a."
+
+#: mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr "Normalan"
+
+#: mate-session/gsm-client-row.c:51
+msgid "Unaffected by logouts but can die."
+msgstr "Odjave nemaju uticaja, ali može umrijeti."
+
+#: mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr "Ponovo pokreni"
+
+#: mate-session/gsm-client-row.c:54
+msgid "Never allowed to die."
+msgstr "Nikada ne smije umrijeti (nestati)."
+
+#: mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr "Smeće"
+
+#: mate-session/gsm-client-row.c:57
+msgid "Discarded on logout and can die."
+msgstr "Zanemaren pri odjavi i može umrijeti."
+
+#: mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr "Podešavanja"
+
+#: mate-session/gsm-client-row.c:60
+msgid "Always started on every login."
+msgstr "Uvijek pokrenut pri svakoj prijavi (login)."
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: mate-session/gsm-gsd.c:41
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"Postoji greška pri pokretanju MATE Osobina.\n"
+"\n"
+"Neke stvari, kao što su teme, zvukovi, ili osobine pozadine bi mogle raditi "
+"neispravno."
+
+#: mate-session/gsm-gsd.c:53
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Zadnja poruka greške je bila:\n"
+"\n"
+
+#: mate-session/gsm-gsd.c:58
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"MATE će i dalje pokušavati ponovo pokrenuti dio za podešavanje osobina "
+"sljedeći put kada se prijavite."
+
+#: mate-session/gsm-gsd.c:115
+msgid "There was an unknown activation error."
+msgstr "Postoji nepoznata aktivacijska greška."
+
+#: mate-session/gsm-gsd.c:157
+msgid "The Settings Daemon restarted too many times."
+msgstr "Dio sa Osobinama se ponovo pokrenuo previše puta."
+
+#: mate-session/logout.c:355
+msgid "Are you sure you want to log out?"
+msgstr "Da li ste sigurni da se želite odjaviti?"
+
+#: mate-session/logout.c:372
+msgid "_Save current setup"
+msgstr "_Snimi trenutne postavke"
+
+#: mate-session/logout.c:393
+msgid "Action"
+msgstr "Akcija"
+
+#: mate-session/logout.c:410
+msgid "_Log out"
+msgstr "_Odjava"
+
+#: mate-session/logout.c:416
+msgid "Sh_ut down"
+msgstr "Uga_si"
+
+#: mate-session/logout.c:423
+msgid "_Restart the computer"
+msgstr "_Ponovo pokreni računar"
+
+#: mate-session/main.c:81
+msgid "Specify a session name to load"
+msgstr "Navedi ime sesije za učitavanje"
+
+#: mate-session/main.c:82
+msgid "Only read saved sessions from the default.session file"
+msgstr "Čitaj snimljene sesije samo iz default.session datoteke"
+
+#: mate-session/main.c:83
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr "Period čekanja na registraciju klijenata u milisekundama (0=zauvijek)"
+
+#: mate-session/main.c:84
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr "Period čekanja na odgovor klijenata u milisekundama (0=zauvijek)"
+
+#: mate-session/main.c:85
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr "Period čekanja na smrt klijenata u milisekundama (0=zauvijek)"
+
+#: mate-session/main.c:265
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"Ne mogu pronaći internet adresu za %s.\n"
+"To će spriječiti normalno funkcionisanje MATE-a.\n"
+"Ovaj problem se može riješiti dodavanjem\n"
+"%s u datoteku /etc/hosts."
+
+#: mate-session/main.c:272
+msgid "Log in Anyway"
+msgstr "Prijavi se u svakom slučaju"
+
+#: mate-session/main.c:273
+#, fuzzy
+msgid "Try Again"
+msgstr "Pokušaj ponovo"
+
+#: mate-session/manager.c:223
+msgid "Your session has been saved"
+msgstr "Vaša sesija je snimljena"
+
+#: mate-session/manager.c:527
+msgid "Wait abandoned due to conflict."
+msgstr "Čekaj na napuštene zbog konflikta."
+
+#: mate-session/manager.c:1035
+#, c-format
+msgid "No response to the %s command."
+msgstr "Nema odgovora na %s komandu."
+
+#: mate-session/manager.c:1036
+msgid "The program may be slow, stopped or broken."
+msgstr "Program je možda spor, zaustavljen ili polomljen."
+
+#: mate-session/manager.c:1037
+msgid "You may wait for it to respond or remove it."
+msgstr "Možete čekati na odgovor ili ga ukloniti."
+
+#: mate-session/manager.c:1760
+#, fuzzy
+msgid "Restart abandoned due to failures."
+msgstr "Ponovo pokreni napuštene zbog grešaka."
+
+#: mate-session/manager.c:1956
+msgid "A session shutdown is in progress."
+msgstr "Zatvaranje sesije je u toku."
+
+#: mate-session/save-session.c:46
+msgid "Set the current session"
+msgstr "Podesi trenutnu sesiju"
+
+#: mate-session/save-session.c:47
+msgid "Kill session"
+msgstr "Ubij sesiju"
+
+#: mate-session/save-session.c:48
+msgid "Use dialog boxes"
+msgstr "Koristi dijalog boksove"
+
+#: mate-session/save-session.c:146 mate-session/save-session.c:179
+msgid "Could not connect to the session manager"
+msgstr "Ne mogu se priključiti na menadžera sesije"
+
+#: mate-session/session-names.c:143
+msgid "The session name cannot be empty"
+msgstr "Ime sesije ne može biti prazno"
+
+#: mate-session/session-names.c:154
+msgid "The session name already exists"
+msgstr "Ime sesije već postoji"
+
+#: mate-session/session-names.c:188
+msgid "Add a new session"
+msgstr "Dodaj novu sesiju"
+
+#: mate-session/session-names.c:218
+msgid "Edit session name"
+msgstr "Promijeni ime sesije"
+
+#: mate-session/session-properties-capplet.c:122
+msgid "_Edit"
+msgstr "_Izmjeni..."
+
+#: mate-session/session-properties-capplet.c:190
+msgid ""
+"Some changes are not saved.\n"
+"Is it still OK to exit?"
+msgstr ""
+"Neke promjene nisu snimljene.\n"
+"Je li još uvijek u redu da zatvorim?"
+
+#: mate-session/session-properties-capplet.c:240
+#: mate-session/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Sesije"
+
+#: mate-session/session-properties-capplet.c:273
+msgid "Show splash screen on _login"
+msgstr "Pokaži pozdravnu scenu pri _prijavi"
+
+#: mate-session/session-properties-capplet.c:284
+#, fuzzy
+msgid "As_k on logout"
+msgstr "_Upitaj pri odjavi"
+
+#: mate-session/session-properties-capplet.c:295
+msgid "Automatically save chan_ges to session"
+msgstr "Automatski snimi promj_ene u sesiji"
+
+#: mate-session/session-properties-capplet.c:306
+msgid "_Sessions:"
+msgstr "_Sesije:"
+
+#: mate-session/session-properties-capplet.c:324
+msgid "Session Name"
+msgstr "Ime sesije"
+
+#: mate-session/session-properties-capplet.c:375
+msgid "Session Options"
+msgstr "Opcije za sesiju"
+
+#: mate-session/session-properties-capplet.c:384
+msgid "Current Session"
+msgstr "Trenutna sesija"
+
+#: mate-session/session-properties-capplet.c:393
+msgid "Additional startup _programs:"
+msgstr "Dodaj startup _program"
+
+#: mate-session/session-properties-capplet.c:414
+msgid "Command"
+msgstr "Komanda"
+
+#: mate-session/session-properties-capplet.c:446
+msgid "Startup Programs"
+msgstr "Startup programi"
+
+#: mate-session/session-properties.c:49
+msgid "Remove the currently selected client from the session."
+msgstr "Skloni trenutno označeni klijent iz sesije."
+
+#: mate-session/session-properties.c:55
+msgid "Apply changes to the current session"
+msgstr "Izvrši promjene u sesiji"
+
+#: mate-session/session-properties.c:61
+msgid "The list of programs in the session."
+msgstr "Lista programa u sesiji."
+
+#: mate-session/session-properties.c:88
+msgid "Currently running _programs:"
+msgstr "Pregledaj trenutno pokrenute _programe..."
+
+#: mate-session/session-properties.c:104
+msgid "Initialize session settings"
+msgstr "Inicijaliziraj podešavanja sesije"
+
+#: mate-session/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Konfogiriši svoje sesije"
+
+#: mate-session/splash-widget.c:43
+msgid "Sawfish Window Manager"
+msgstr "Sawfish menadžer prozora"
+
+#: mate-session/splash-widget.c:44
+msgid "Marco Window Manager"
+msgstr "Marco Menadžer prozora"
+
+#: mate-session/splash-widget.c:45
+msgid "Window Manager"
+msgstr "Menadžer prozora"
+
+#: mate-session/splash-widget.c:46
+msgid "The Panel"
+msgstr "Panel"
+
+#: mate-session/splash-widget.c:47
+msgid "Session Manager Proxy"
+msgstr "Proxy menadžera sesije"
+
+#: mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "Caja"
+
+#: mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr "Podešavanja Desktopa"
+
+#: mate-session/startup-programs.c:292
+msgid "_Startup Command:"
+msgstr "_Startup komanda"
+
+#: mate-session/startup-programs.c:298
+msgid "Startup Command"
+msgstr "Startup komanda"
+
+#: mate-session/startup-programs.c:347
+msgid "The startup command cannot be empty"
+msgstr "Startup komanda ne može biti prazna"
+
+#: mate-session/startup-programs.c:384
+msgid "Add Startup Program"
+msgstr "Dodaj startup program"
+
+#: mate-session/startup-programs.c:405
+msgid "Edit Startup Program"
+msgstr "Izmjeni startup program"
diff --git a/po/ca.po b/po/ca.po
new file mode 100644
index 0000000..add8a87
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,1090 @@
+# mate-session translation to Catalan.
+# Copyright © 2000, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# Ivan Vilata i Balaguer <[email protected]>, 2000.
+# Softcatalà <[email protected]>, 2000.
+# Jordi Mallach <[email protected]>, 2002, 2003, 2004, 2005, 2006, 2007.
+# Josep Puigdemont <[email protected]>, 2007.
+# David Planella <[email protected]>, 2008, 2009, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session 2.3.7\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-08-14 00:35+0200\n"
+"PO-Revision-Date: 2010-07-25 09:27+0200\n"
+"Last-Translator: David Planella <[email protected]>\n"
+"Language-Team: Catalan <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n!=1;\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Selecciona una ordre"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Afegeix un programa d'inici"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Edita el programa d'inici"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "L'ordre d'inici no pot ser buida"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "L'ordre d'inici no és vàlida"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Habilitat"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Icona"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Programa"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Preferències de les aplicacions d'inici"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Sense nom"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Sense descripció"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Versió d'aquesta aplicació"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "No s'ha pogut mostrar el document de l'ajuda"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Aquesta sessió us entra al MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Sessió predeterminada"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Gestor de fitxers"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Si s'habilita, el mate-session preguntarà a l'usuari abans de finalitzar "
+"una sessió."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Si s'habilita, el mate-session desarà la sessió automàticament."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Llista d'aplicacions que formen part de la sessió."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Llista dels components que són necessaris com a part de la sessió, a "
+"cadascun dels quals li correspon una clau del MateConf a «/desktop/mate/session/"
+"required_components». Normalment l'eina de les preferències de les "
+"aplicacions d'inici no permet que els usuaris suprimeixin un d'aquests "
+"elements necessaris de la sessió. El gestor de la sessió els hi tornarà a "
+"afegir automàticament en entrar en cas que s'hagin suprimit."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Indicador de sortida"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Quadre"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Components necessaris de la sessió"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Desa les sessions"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"El gestor de fitxers proporciona les icones de l'escriptori i us permet "
+"interaccionar amb els fitxers desats."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"El nombre de minuts d'inactivitat abans de considerar la sessió com a "
+"inactiva."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"El quadre proporciona la barra de la part superior o inferior de la "
+"pantalla, la qual conté els menús, la llista de finestra, les icones "
+"d'estat, el rellotge, etc."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"El gestor de finestres és el programa que dibuixa la barra de títol i els "
+"costats de les finestres, i també us permet moure-les i canviar-ne la mida."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Temps abans de considerar la sessió com a inactiva"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Gestor de finestres"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Hi ha alguns programes encara en execució:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"S'està esperant que finalitzi el programa. Si l'interrompeu és possible que "
+"perdeu les dades no desades."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Trieu quines aplicacions voleu que s'iniciïn en entrar"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Aplicacions d'inici"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "_Programes d'inici addicionals:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "Navega..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Ordre:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Co_mentari:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Opcions"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Programes d'inici"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr ""
+"Recorda _automàticament les aplicacions que s'estan executant en sortir"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Nom:"
+
+# FIXME [l10n-bug] (dpm)
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Recorda les aplicacions que s'estan executant actualment"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Aquest no és un fitxer .desktop vàlid"
+
+# FIXME: potser es refereixen a .desktop (dpm)
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "No es reconeix la versió «%s» del fitxer d'escriptori"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "S'està iniciant %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "L'aplicació no accepta documents des de la línia d'ordres"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "No és reconeix l'opció de llançament: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"No es poden passar URI de document a una entrada d'escriptori de tipus "
+"«Type=Link»"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "No és un element executable"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Inhabilita la connexió amb el gestor de sessions"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Especifiqueu el fitxer que conté la configuració desada"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FITXER"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Especifiqueu l'identificador de gestió de la sessió"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "IDENTIFICADOR"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Opcions de gestió de la sessió:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Mostra les opcions de gestió de la sessió"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Hi ha un problema amb el servidor de la configuració.\n"
+"(%s ha sortit amb l'estat %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "No s'ha trobat la icona «%s»"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Desconegut"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Hi ha un programa que encara s'està executant:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Hi ha alguns programes que encara s'estan executant:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"S'està esperant que finalitzin alguns programes. Si els interrompeu és "
+"possible que perdeu les dades no desades."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Canvia d'usuari de totes maneres"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Surt de totes maneres"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Atura temporalment de totes maneres"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Hiberna de totes maneres"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "Atura de totes maneres"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Reinicia de totes maneres"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Bloca la pantalla"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Cancel·la"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Sortireu automàticament d'aquí a %d segon."
+msgstr[1] "Sortireu automàticament d'aquí a %d segons."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Aquest sistema s'aturarà automàticament d'aquí a %d segon."
+msgstr[1] "Aquest sistema s'aturarà automàticament d'aquí a %d segons."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Heu entrat com a «%s»."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Voleu sortir d'aquest sistema?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "Canvia d'_usuari"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Surt"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Voleu aturar aquest sistema?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "A_tura temporalment"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Hiberna"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "_Reinicia"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "_Atura l'ordinador"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "No està responent"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking log out."
+msgstr "Aquest programa està blocant la sortida."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Es refusarà la connexió de client nova perquè la sessió s'està aturant\n"
+
+# Nota: ICE -> Inter-Client Exchange (http://en.wikipedia.org/wiki/X_Window_System_protocols_and_architecture#Inter-client_communication)
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "No s'ha pogut crear el sòcol ICE d'escolta: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"No s'ha pogut iniciar la sessió d'entrada (ni connectar amb el servidor X)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Ignora els directoris estàndard d'inici automàtic"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to lookup default session"
+msgstr "Clau del MateConf utilitzada per a cercar la sessió predeterminada"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Habilita el codi de depuració"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "No carreguis les aplicacions especificades per l'usuari"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "- el gestor de sessions del MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Surt"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Surt, ignorant qualsevol inhibidor existent"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Mostra el diàleg de sortida"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Mostra el diàleg d'aturada"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Empra quadres de diàleg per als errors"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Estableix el nom de la sessió actual"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NOM"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Mata la sessió"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "No requereixis confirmació"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "No s'ha pogut connectar al gestor de sessions"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr ""
+"El programa s'ha invocat amb opcions que entren en conflicte entre elles"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "Auxiliar del dimoni dels paràmetres del MATE"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "Si s'habilita, el mate-session desarà la sessió automàticament. D'altra "
+#~ "manera, el diàleg de sortida tindrà una opció per a desar la sessió."
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "Imatge preferida per a emprar a la pantalla de presentació"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "Mostra la pantalla de presentació"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "Mostra la pantalla de presentació quan s'iniciï la sessió"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+#~ msgstr ""
+#~ "Aquest és un valor de camí relatiu basat al directori $datadir/pixmaps/. "
+#~ "Els subdirectoris i noms d'imatges són valors vàlids. El canvi d'aquest "
+#~ "valor tindrà efecte a la següent entrada a la sessió."
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- pantalla de presentació del MATE"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "Pantalla de presentació del MATE"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "El nom del programa d'inici no pot ser buit"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "S'ha indicat que es requereix tecnologia assistiva per a aquesta sessió, "
+#~ "però no s'ha pogut trobar el registre d'accessibilitat. Assegureu-vos que "
+#~ "el paquet AT-SPI estigui instal·lat. S'ha iniciat la sessió sense la "
+#~ "tecnologia assistiva."
+
+# Ho he escurçat una mica -> Accessibility Technologies Service Provider
+# Interface (dpm)
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "Embolcall del servei de registre de l'accessibilitat (AT SPI)"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "Preferències de les sessions"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Opció seleccionada al quadre de diàleg de sortida"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "Aquesta és l'opció que estarà seleccionada al quadre de diàleg de "
+#~ "sortida, els valors vàlids són «logout» per a sortir, «shutdown» per a "
+#~ "aturar el sistema, i «restart» per a reiniciar-lo."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "Configureu les vostres sessions"
+
+#~ msgid "Sessions"
+#~ msgstr "Sessions"
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "Embolcall del dimoni de l'anell de claus del MATE"
+
+#~ msgid "Session management"
+#~ msgstr "Gestió de sessions"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr ""
+#~ "Biblioteca de la interfìcie gràfica d'usuari del MATE amb l'EggSMClient"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "Permet connexions TCP"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "Per raons de seguretat, en les plataformes que tenen _IceTcpTransNoListen"
+#~ "() (sistemes XFree86), el mate-session no escolta connexions en ports "
+#~ "TCP. Aquesta opció permetrà connexions des de màquines remotes "
+#~ "(autoritzades). S'ha de reiniciar el mate-session perquè tingui efecte."
+
+#~ msgid "_Order:"
+#~ msgstr "_Ordre:"
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "El que passa amb l'aplicació quan surt."
+
+#~ msgid "_Style:"
+#~ msgstr "_Estil:"
+
+#~ msgid "Inactive"
+#~ msgstr "Inactiu"
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "S'està esperant per a iniciar o ja ha finalitzat."
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "S'ha iniciat però encara no ha informat del seu estat."
+
+#~ msgid "Running"
+#~ msgstr "S'està executant"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "Un membre normal de la sessió."
+
+#~ msgid "Saving"
+#~ msgstr "S'està desant"
+
+#~ msgid "Saving session details."
+#~ msgstr "S'estan desant els detalls de la sessió."
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "No ha informat de l'estat dins el temps establert."
+
+#~ msgid "Normal"
+#~ msgstr "Normal"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "No l'afecten les sortides però pot morir."
+
+#~ msgid "Never allowed to die."
+#~ msgstr "No es permet que mori mai."
+
+#~ msgid "Trash"
+#~ msgstr "Paperera"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "Descartat en la sortida i pot morir."
+
+#~ msgid "Settings"
+#~ msgstr "Propietats"
+
+#~ msgid "Always started on every login."
+#~ msgstr "S'inicia sempre a cada entrada."
+
+#~ msgid "Order"
+#~ msgstr "Ordre"
+
+#~ msgid "Style"
+#~ msgstr "Estil"
+
+#~ msgid "State"
+#~ msgstr "Estat"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "S'ha produït un error en arrencar el MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Algunes coses, com els temes, sons o la configuració del fons podrien no "
+#~ "funcionar correctament."
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "L'últim missatge d'error va ser:\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "El MATE intentarà reiniciar el dimoni de configuracions la propera "
+#~ "vegada que entreu."
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "El dimoni de configuracions s'ha reiniciat massa vegades."
+
+#~ msgid "List registered clients, then exit"
+#~ msgstr "Llista els clients registrats i després surt."
+
+#~ msgid "PROGRAM..."
+#~ msgstr "PROGRAMA..."
+
+#~ msgid ""
+#~ "You must specify at least one program to remove. You can list the "
+#~ "programs with --list.\n"
+#~ msgstr ""
+#~ "Heu d'especificar almenys un programa per a suprimir. Podeu llistar els "
+#~ "programes amb --list.\n"
+
+#~ msgid "Error: could not connect to the session manager\n"
+#~ msgstr "Error: no s'ha pogut connectar al gestor de sessions\n"
+
+#~ msgid "Currently registered clients:\n"
+#~ msgstr "Clients registrats actualment:\n"
+
+#~ msgid "Couldn't find program %s in session\n"
+#~ msgstr "No s'ha pogut trobar el programa %s a la sessió\n"
+
+#~ msgid ""
+#~ "The MATE session manager cannot start properly. Please report this as a "
+#~ "MATE bug. Please include this ICE failure message in the bug report: '%"
+#~ "s'. Meanwhile you could try logging in using the failsafe session."
+#~ msgstr ""
+#~ "No s'ha pogut iniciar correctament el gestor de sessions del MATE. "
+#~ "Informeu-ne com una errada del MATE. Indiqueu aquest missatge d'error "
+#~ "ICE en l'informe d'errada: «%s». De moment podeu mirar d'entrar amb la "
+#~ "sessió a prova de fallades."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to lock the file '%s'. Please "
+#~ "report this as a MATE bug. Sometimes this error may occur if the file's "
+#~ "directory is unwritable, you could try logging in via the failsafe "
+#~ "session and ensuring that it is."
+#~ msgstr ""
+#~ "El gestor de sessions del MATE no ha pogut blocar el fitxer «%s». "
+#~ "Informeu-ne com una errada del MATE. A vegades aquest error es produeix "
+#~ "si no es pot escriure al directori on és el fitxer. Podeu mirar d'entrar "
+#~ "mitjançant la sessió a prova de fallades i assegurar-vos-en."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to read the file: '%s'. If this "
+#~ "file exists it must be readable by you for MATE to work properly. Try "
+#~ "logging in with the failsafe session and removing this file."
+#~ msgstr ""
+#~ "El gestor de sessions del MATE no ha pogut llegir el fitxer: «%s». Aquest "
+#~ "fitxer ha d'existir i s'ha de poder llegir perquè el MATE funcioni "
+#~ "correctament. Mireu d'entrar mitjançant la sessió a prova de fallades i "
+#~ "suprimir aquest fitxer."
+
+#~ msgid ""
+#~ "Could not write to file '%s'. This file must be writable in order for "
+#~ "MATE to function properly. Try logging in with the failsafe session and "
+#~ "removing this file. Also make sure that the file's directory is writable."
+#~ msgstr ""
+#~ "No s'ha pogut escriure al fitxer «%s». S'ha de poder escriure en aquest "
+#~ "fitxer perquè el MATE funcioni correctament. Mireu d'entrar mitjançant "
+#~ "la sessió a prova de fallades, i també assegureu-vos que es pugui "
+#~ "escriure al directori."
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "Esteu segur que voleu sortir?"
+
+#~ msgid "Remember running applications"
+#~ msgstr "Recorda les aplicacions que s'estan executant"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "_Reinicia l'ordinador"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "Llegeix només les sessions desades del fitxer default.session"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr ""
+#~ "Temps d'espera, en mil·lisegons, perquè els clients es registrin "
+#~ "(0=indefinidament)"
+
+#~ msgid "DELAY"
+#~ msgstr "RETARD"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr ""
+#~ "Temps d'espera, en mil·lisegons, perquè els clients responguin "
+#~ "(0=indefinidament)"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr ""
+#~ "Temps d'espera, en mil·lisegons, perquè els clients morin "
+#~ "(0=indefinidament)"
+
+#~ msgid "This session is running as a privileged user"
+#~ msgstr "Aquesta sessió s'executa com a usuari privilegiat"
+
+#~ msgid ""
+#~ "Running a session as a privileged user should be avoided for security "
+#~ "reasons. If possible, you should log in as a normal user."
+#~ msgstr ""
+#~ "S'hauria d'evitar executar una sessió com a usuari privilegiat per raons "
+#~ "de seguretat. Si és possible, hauríeu d'entrar com a usuari normal."
+
+#~ msgid "_Continue"
+#~ msgstr "_Continua"
+
+#~ msgid ""
+#~ "The session might encounter issues if the computer clock is not properly "
+#~ "configured. Please consider adjusting it.\n"
+#~ "\n"
+#~ "Current date is <b>%s</b>."
+#~ msgstr ""
+#~ "Si no funciona correctament el rellotge del sistema podríeu tenir "
+#~ "problemes amb la sessió. Hauríeu d'ajustar-lo.\n"
+#~ "\n"
+#~ "La data actual és <b>%s</b>."
+
+#~ msgid "Failed to launch time configuration tool: %s"
+#~ msgstr "No s'ha pogut llançar l'eina de configuració del temps: %s"
+
+#~ msgid "The computer clock appears to be wrong"
+#~ msgstr "Sembla que el rellotge de l'ordinador està malament"
+
+#~ msgid "_Ignore"
+#~ msgstr "_Ignora"
+
+#~ msgid "_Adjust the Clock"
+#~ msgstr "_Ajusta el rellotge"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "No s'ha pogut cercar l'adreça d'Internet de %s.\n"
+#~ "Això provocarà que el MATE no funcioni correctament.\n"
+#~ "Segurament es podria corregir aquest problema afegint\n"
+#~ "%s al fitxer /etc/hosts."
+
+#~ msgid "Try Again"
+#~ msgstr "Torna-ho a provar"
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "S'ha abandonat l'espera a causa d'un conflicte."
+
+#~ msgid "No response to the %s command."
+#~ msgstr "Cap resposta a l'ordre %s."
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "El programa podria ser lent, estar parat o trencat."
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "Podeu esperar que respongui o eliminar-lo."
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "No s'ha reiniciat atès que s'han produït errades."
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "Hi ha un tancament de sessió en progrés."
+
+#~ msgid "- Save the current session"
+#~ msgstr "- Desa la sessió actual"
+
+#~ msgid "Save changes to the current session before closing?"
+#~ msgstr "Voleu desar els canvis fets a la sessió actual abans de tancar?"
+
+#~ msgid "If you don't save, changes will be discarded."
+#~ msgstr "Si no els deseu, es descartaran tots els canvis."
+
+#~ msgid "_Close without Saving"
+#~ msgstr "_Tanca sense desar"
+
+#~ msgid "Current Session"
+#~ msgstr "Sessió actual"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "S'ha desat la sessió."
+
+#~ msgid "could not connect to the session manager\n"
+#~ msgstr "no s'ha pogut connectar al gestor de sessions\n"
+
+#~ msgid "session manager does not support MATE extensions\n"
+#~ msgstr "el gestor de sessions no permet l'ús d'extensions del MATE\n"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "Suprimeix el client seleccionat de la sessió."
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "Aplica els canvis a la sessió actual"
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "La llista dels programes de la sessió."
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "_Programes actualment en execució:"
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "Gestor de finestres Sawfish"
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "Gestor de finestres Marco"
+
+#~ msgid "Caja"
+#~ msgstr "Caja"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "Paràmetres de l'escriptori"
+
+#~ msgid "New Startup Program"
+#~ msgstr "Programa d'inici nou"
+
+#~ msgid "_Save current setup"
+#~ msgstr "_Desa la configuració actual"
+
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "_Desa automàticament els canvis a la sessió"
+
+#~ msgid "Save the current session"
+#~ msgstr "Desa la sessió actual"
+
+#~ msgid "The session name cannot be empty"
+#~ msgstr "El nom de la sessió no pot estar buit"
+
+#~ msgid "The session name already exists"
+#~ msgstr "El nom de la sessió ja existeix"
+
+#~ msgid "Add a new session"
+#~ msgstr "Afegeix una nova sessió"
+
+#~ msgid "Edit session name"
+#~ msgstr "Edita el nom de la sessió"
+
+#~ msgid "Disable"
+#~ msgstr "Inhabilita"
+
+#~ msgid "_Edit"
+#~ msgstr "_Edita"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "Alguns canvis no estan desats.\n"
+#~ "Voleu sortir igualment?"
+
+#~ msgid "Show splash screen on _login"
+#~ msgstr "Mostra la pantalla de presentació en en_trar"
+
+#~ msgid "As_k on logout"
+#~ msgstr "_Pregunta abans de sortir"
+
+#~ msgid "_Sessions:"
+#~ msgstr "_Sessions:"
+
+#~ msgid "_Startup Command:"
+#~ msgstr "Ordre d'_inici:"
+
+#~ msgid "There was an unknown activation error."
+#~ msgstr "S'ha produït un error d'activació desconegut."
+
+#~ msgid "Initialize session settings"
+#~ msgstr "Inicialitza els paràmetres de la sessió"
+
+#~ msgid "Save Current Session"
+#~ msgstr "Desa la sessió actual"
+
+#~ msgid "Save current state of desktop"
+#~ msgstr "Desa l'estat actual de l'escriptori"
+
+#~ msgid "Priority"
+#~ msgstr "Prioritat"
+
+#~ msgid "Audio Settings"
+#~ msgstr "Configuració del so"
+
+#~ msgid "Screensaver"
+#~ msgstr "Protector de pantalla"
+
+#~ msgid "Background Settings"
+#~ msgstr "Propietats del fons"
+
+#~ msgid "Mouse Settings"
+#~ msgstr "Propietats del ratolí"
+
+#~ msgid "Keyboard Settings"
+#~ msgstr "Propietats del teclat"
+
+#~ msgid "_Priority:"
+#~ msgstr "_Prioritat:"
+
+#~ msgid "Starting MATE: %s"
+#~ msgstr "or something like that :)\n"
+
+#~ msgid "Starting MATE: done"
+#~ msgstr "S'està iniciant el MATE: fet"
+
+#~ msgid "Starting MATE"
+#~ msgstr "S'està iniciant el MATE"
+
+#~ msgid "Respawn"
+#~ msgstr "Tornar-lo a crear"
+
+#~ msgid "<i>These changes take effect immediately</i>"
+#~ msgstr "<i>Aquests canvis tenen efecte immediatament</i>"
+
+#~ msgid "Choose Current Session"
+#~ msgstr "Selecciona la sessió actual"
+
+#~ msgid "Add..."
+#~ msgstr "Afegeix..."
+
+#~ msgid "Delete"
+#~ msgstr "Suprimeix"
+
+#~ msgid "Non-session-managed Startup Programs"
+#~ msgstr "Programes d'inici no controlats per la sessió"
+
+#~ msgid ""
+#~ "Programs with smaller values are started before programs with higher "
+#~ "values. The default value should be OK"
+#~ msgstr ""
+#~ "Els programes amb valors més baixos s'executen abans que els programes "
+#~ "amb valors més alts. El valor per defecte hauria de valdre."
+
+#~ msgid "Session Properties & Startup Programs"
+#~ msgstr "Propietats de la sessió i programes d'inici"
+
+#~ msgid "MATE Login"
+#~ msgstr "Entrada de MATE"
+
+#~ msgid "Log In"
+#~ msgstr "Entra"
+
+#~ msgid "Start with default programs"
+#~ msgstr "Inicia amb els programes per defecte"
+
+#~ msgid "Reset all user settings"
+#~ msgstr "Reinicialitza tots els paràmetres d'usuari"
+
+#~ msgid "Really reset all MATE user settings for %s?"
+#~ msgstr "Voleu reinicialitzar realment tots els paràmetres d'usuari per %s?"
+
+#~ msgid "No"
+#~ msgstr "No"
+
+#~ msgid ""
+#~ "The directory /tmp/matecorba-%s is not owned\n"
+#~ "by the current user, %s.\n"
+#~ "Please correct the ownership of this directory."
+#~ msgstr ""
+#~ "El directori /tmp/matecorba-%s no pertany\n"
+#~ "a l'usuari actual, %s.\n"
+#~ "Si us plau, corregiu la propietat d'aquest directori."
+
+#~ msgid "Really log out?"
+#~ msgstr "Realment voleu sortir?"
+
+#~ msgid ""
+#~ "Your version of libICE has a bug which causes mate-session\n"
+#~ "to not function correctly.\n"
+#~ "\n"
+#~ "If you are on Solaris, you should either upgrade to Solaris patch\n"
+#~ "#108376-16 or use the libICE.so.6 from the original Solaris 7.\n"
+#~ "Copy the file into /usr/openwin/lib. (Thanks go to Andy Reitz\n"
+#~ "for information on this bug).\n"
+#~ "\n"
+#~ "Your MATE session will terminate after closing this dialog."
+#~ msgstr ""
+#~ "La vostra versió de libICE té un error que fa que mate-session\n"
+#~ "no funcione correctament.\n"
+#~ "\n"
+#~ "Si esteu en Solaris, haurieu de actualitzar al pedaç de Solaris\n"
+#~ "#108376-16 o utilitzar la libICE.so.6 del Solaris 7 original.\n"
+#~ "Copieu el fitxer en /usr/openwin/lib. (Gràcies a Andy Reitz per la\n"
+#~ "informació sobre aquest bug).\n"
+#~ "\n"
+#~ "La vostra sessió del MATE terminarà després de tancar aquest diàleg."
+
+#~ msgid "Session Chooser"
+#~ msgstr "Selector de sessions"
+
+#~ msgid "Start Session"
+#~ msgstr "Inicia la sessió"
diff --git a/po/[email protected] b/po/[email protected]
new file mode 100644
index 0000000..2aa2545
--- /dev/null
+++ b/po/[email protected]
@@ -0,0 +1,1093 @@
+# mate-session translation to Catalan.
+# Copyright © 2000, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# Ivan Vilata i Balaguer <[email protected]>, 2000.
+# Softcatalà <[email protected]>, 2000.
+# Jordi Mallach <[email protected]>, 2002, 2003, 2004, 2005, 2006, 2007.
+# Josep Puigdemont <[email protected]>, 2007.
+# David Planella <[email protected]>, 2008, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session 2.3.7\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-04-21 23:23+0200\n"
+"PO-Revision-Date: 2009-09-19 20:02+0200\n"
+"Last-Translator: David Planella <[email protected]>\n"
+"Language-Team: Catalan <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n!=1;\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Selecciona una orde"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Afig un programa d'inici"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Edita el programa d'inici"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "L'orde d'inici no pot ser buida"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "L'orde d'inici no és vàlida"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Habilitat"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Icona"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Programa"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Preferències de les aplicacions d'inici"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Sense nom"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Sense descripció"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Versió d'esta aplicació"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "No s'ha pogut mostrar el document de l'ajuda"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "Auxiliar del dimoni dels paràmetres del MATE"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Esta sessió vos entra al MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Sessió predeterminada"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Gestor de fitxers"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Si s'habilita, el mate-session preguntarà a l'usuari abans de finalitzar "
+"una sessió."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Si s'habilita, el mate-session desarà la sessió automàticament. D'altra "
+"manera, el diàleg d'eixida tindrà una opció per a alçar la sessió."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Llista d'aplicacions que formen part de la sessió."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Llista dels components que són necessaris com a part de la sessió, a "
+"cadascun dels quals li correspon una clau del MateConf a «/desktop/mate/session/"
+"required_components». Normalment l'eina de les preferències de les "
+"aplicacions d'inici no permet que els usuaris suprimisquen un d'estos "
+"elements necessaris de la sessió. El gestor de la sessió els hi tornarà a "
+"afegir automàticament en entrar en cas que s'hagen suprimit."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Indicador d'eixida"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Quadre"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Imatge preferida per a emprar a la pantalla de presentació"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "Components necessaris de la sessió"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "Alça les sessions"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "Mostra la pantalla de presentació"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "Mostra la pantalla de presentació quan s'inicie la sessió"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"El gestor de fitxers proporciona les icones de l'escriptori i vos permet "
+"interaccionar amb els fitxers alçats."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"El nombre de minuts d'inactivitat abans de considerar la sessió com a "
+"inactiva."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"El quadre proporciona la barra de la part superior o inferior de la "
+"pantalla, la qual conté els menús, la llista de finestra, les icones "
+"d'estat, el rellotge, etc."
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"El gestor de finestres és el programa que dibuixa la barra de títol i els "
+"costats de les finestres, i també vos permet moure-les i canviar-ne la mida."
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Este és un valor de camí relatiu basat al directori $datadir/pixmaps/. Els "
+"subdirectoris i noms d'imatges són valors vàlids. El canvi d'este valor "
+"tindrà efecte a la següent entrada a la sessió."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "Temps abans de considerar la sessió com a inactiva"
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Gestor de finestres"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Hi ha alguns programes encara en execució:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"S'està esperant que finalitzi el programa. Si l'interrompeu és possible que "
+"perdeu les dades no alçades."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Trieu quines aplicacions voleu que s'inicien en entrar"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Aplicacions d'inici"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "_Programes d'inici addicionals:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "Navega..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Orde:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Co_mentari:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Opcions"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Programes d'inici"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "Recorda _automàticament les aplicacions que s'estan executant en eixir"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Nom:"
+
+# FIXME [l10n-bug] (dpm)
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Recorda les aplicacions que s'estan executant actualment"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Este no és un fitxer .desktop vàlid"
+
+# FIXME: potser es refereixen a .desktop (dpm)
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "No es reconeix la versió «%s» del fitxer d'escriptori"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "S'està iniciant %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "L'aplicació no accepta documents des de la línia d'ordes"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "No és reconeix l'opció de llançament: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"No es poden passar URI de document a una entrada d'escriptori de tipus "
+"«Type=Link»"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "No és un element executable"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Inhabilita la connexió amb el gestor de sessions"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Especifiqueu el fitxer que conté la configuració alçada"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FITXER"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Especifiqueu l'identificador de gestió de la sessió"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "IDENTIFICADOR"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Opcions de gestió de la sessió:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Mostra les opcions de gestió de la sessió"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Hi ha un problema amb el servidor de la configuració.\n"
+"(%s ha eixit amb l'estat %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "No s'ha trobat la icona «%s»"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Desconegut"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Hi ha un programa que encara s'està executant:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Hi ha alguns programes que encara s'estan executant:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"S'està esperant que finalitzin alguns programes. Si els interrompeu és "
+"possible que perdeu les dades no alçades."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Canvia d'usuari de totes maneres"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Ix de totes maneres"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Atura temporalment de totes maneres"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Hiberna de totes maneres"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "Atura de totes maneres"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Reinicia de totes maneres"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Bloca la pantalla"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Cancel·la"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Eixireu automàticament d'ací a %d segon."
+msgstr[1] "Eixireu automàticament d'ací a %d segons."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Este sistema s'aturarà automàticament d'ací a %d segon."
+msgstr[1] "Este sistema s'aturarà automàticament d'ací a %d segons."
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Heu entrat com a «%s»."
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "Voleu eixir d'este sistema?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "Canvia d'_usuari"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "I_x"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "Voleu aturar este sistema?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "A_tura temporalment"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "_Hiberna"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "_Reinicia"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "_Atura l'ordinador"
+
+#: ../mate-session/gsm-manager.c:1220 ../mate-session/gsm-manager.c:1912
+msgid "Not responding"
+msgstr "No està responent"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking log out."
+msgstr "Este programa està blocant l'eixida."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Es refusarà la connexió de client nova perquè la sessió s'està aturant\n"
+
+# Nota: ICE -> Inter-Client Exchange (http://en.wikipedia.org/wiki/X_Window_System_protocols_and_architecture#Inter-client_communication)
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "No s'ha pogut crear el sòcol ICE d'escolta: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"No s'ha pogut iniciar la sessió d'entrada (ni connectar amb el servidor X)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Ignora els directoris estàndard d'inici automàtic"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to lookup default session"
+msgstr "Clau del MateConf utilitzada per a cercar la sessió predeterminada"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Habilita el codi de depuració"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "No carreguis les aplicacions especificades per l'usuari"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "- el gestor de sessions del MATE"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- pantalla de presentació del MATE"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "Pantalla de presentació del MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Ix"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Ix, ignorant qualsevol inhibidor existent"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Mostra el diàleg d'eixida"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Mostra el diàleg d'aturada"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Empra quadres de diàleg per als errors"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Estableix el nom de la sessió actual"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NOM"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Mata la sessió"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "No requerisques confirmació"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "No s'ha pogut connectar al gestor de sessions"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr ""
+"El programa s'ha invocat amb opcions que entren en conflicte entre elles"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "El nom del programa d'inici no pot ser buit"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "S'ha indicat que es requereix tecnologia assistiva per a aquesta sessió, "
+#~ "però no s'ha pogut trobar el registre d'accessibilitat. Assegureu-vos que "
+#~ "el paquet AT-SPI estigui instal·lat. S'ha iniciat la sessió sense la "
+#~ "tecnologia assistiva."
+
+# Ho he escurçat una mica -> Accessibility Technologies Service Provider
+# Interface (dpm)
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "Embolcall del servei de registre de l'accessibilitat (AT SPI)"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "Preferències de les sessions"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Opció seleccionada al quadre de diàleg de sortida"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "Aquesta és l'opció que estarà seleccionada al quadre de diàleg de "
+#~ "sortida, els valors vàlids són «logout» per a sortir, «shutdown» per a "
+#~ "aturar el sistema, i «restart» per a reiniciar-lo."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "Configureu les vostres sessions"
+
+#~ msgid "Sessions"
+#~ msgstr "Sessions"
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "Embolcall del dimoni de l'anell de claus del MATE"
+
+#~ msgid "Session management"
+#~ msgstr "Gestió de sessions"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr ""
+#~ "Biblioteca de la interfìcie gràfica d'usuari del MATE amb l'EggSMClient"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "Permet connexions TCP"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "Per raons de seguretat, en les plataformes que tenen _IceTcpTransNoListen"
+#~ "() (sistemes XFree86), el mate-session no escolta connexions en ports "
+#~ "TCP. Aquesta opció permetrà connexions des de màquines remotes "
+#~ "(autoritzades). S'ha de reiniciar el mate-session perquè tingui efecte."
+
+#~ msgid "_Order:"
+#~ msgstr "_Ordre:"
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "El que passa amb l'aplicació quan surt."
+
+#~ msgid "_Style:"
+#~ msgstr "_Estil:"
+
+#~ msgid "Inactive"
+#~ msgstr "Inactiu"
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "S'està esperant per a iniciar o ja ha finalitzat."
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "S'ha iniciat però encara no ha informat del seu estat."
+
+#~ msgid "Running"
+#~ msgstr "S'està executant"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "Un membre normal de la sessió."
+
+#~ msgid "Saving"
+#~ msgstr "S'està desant"
+
+#~ msgid "Saving session details."
+#~ msgstr "S'estan desant els detalls de la sessió."
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "No ha informat de l'estat dins el temps establert."
+
+#~ msgid "Normal"
+#~ msgstr "Normal"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "No l'afecten les sortides però pot morir."
+
+#~ msgid "Never allowed to die."
+#~ msgstr "No es permet que mori mai."
+
+#~ msgid "Trash"
+#~ msgstr "Paperera"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "Descartat en la sortida i pot morir."
+
+#~ msgid "Settings"
+#~ msgstr "Propietats"
+
+#~ msgid "Always started on every login."
+#~ msgstr "S'inicia sempre a cada entrada."
+
+#~ msgid "Order"
+#~ msgstr "Ordre"
+
+#~ msgid "Style"
+#~ msgstr "Estil"
+
+#~ msgid "State"
+#~ msgstr "Estat"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "S'ha produït un error en arrencar el MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Algunes coses, com els temes, sons o la configuració del fons podrien no "
+#~ "funcionar correctament."
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "L'últim missatge d'error va ser:\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "El MATE intentarà reiniciar el dimoni de configuracions la propera "
+#~ "vegada que entreu."
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "El dimoni de configuracions s'ha reiniciat massa vegades."
+
+#~ msgid "List registered clients, then exit"
+#~ msgstr "Llista els clients registrats i després surt."
+
+#~ msgid "PROGRAM..."
+#~ msgstr "PROGRAMA..."
+
+#~ msgid ""
+#~ "You must specify at least one program to remove. You can list the "
+#~ "programs with --list.\n"
+#~ msgstr ""
+#~ "Heu d'especificar almenys un programa per a suprimir. Podeu llistar els "
+#~ "programes amb --list.\n"
+
+#~ msgid "Error: could not connect to the session manager\n"
+#~ msgstr "Error: no s'ha pogut connectar al gestor de sessions\n"
+
+#~ msgid "Currently registered clients:\n"
+#~ msgstr "Clients registrats actualment:\n"
+
+#~ msgid "Couldn't find program %s in session\n"
+#~ msgstr "No s'ha pogut trobar el programa %s a la sessió\n"
+
+#~ msgid ""
+#~ "The MATE session manager cannot start properly. Please report this as a "
+#~ "MATE bug. Please include this ICE failure message in the bug report: '%"
+#~ "s'. Meanwhile you could try logging in using the failsafe session."
+#~ msgstr ""
+#~ "No s'ha pogut iniciar correctament el gestor de sessions del MATE. "
+#~ "Informeu-ne com una errada del MATE. Indiqueu aquest missatge d'error "
+#~ "ICE en l'informe d'errada: «%s». De moment podeu mirar d'entrar amb la "
+#~ "sessió a prova de fallades."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to lock the file '%s'. Please "
+#~ "report this as a MATE bug. Sometimes this error may occur if the file's "
+#~ "directory is unwritable, you could try logging in via the failsafe "
+#~ "session and ensuring that it is."
+#~ msgstr ""
+#~ "El gestor de sessions del MATE no ha pogut blocar el fitxer «%s». "
+#~ "Informeu-ne com una errada del MATE. A vegades aquest error es produeix "
+#~ "si no es pot escriure al directori on és el fitxer. Podeu mirar d'entrar "
+#~ "mitjançant la sessió a prova de fallades i assegurar-vos-en."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to read the file: '%s'. If this "
+#~ "file exists it must be readable by you for MATE to work properly. Try "
+#~ "logging in with the failsafe session and removing this file."
+#~ msgstr ""
+#~ "El gestor de sessions del MATE no ha pogut llegir el fitxer: «%s». Aquest "
+#~ "fitxer ha d'existir i s'ha de poder llegir perquè el MATE funcioni "
+#~ "correctament. Mireu d'entrar mitjançant la sessió a prova de fallades i "
+#~ "suprimir aquest fitxer."
+
+#~ msgid ""
+#~ "Could not write to file '%s'. This file must be writable in order for "
+#~ "MATE to function properly. Try logging in with the failsafe session and "
+#~ "removing this file. Also make sure that the file's directory is writable."
+#~ msgstr ""
+#~ "No s'ha pogut escriure al fitxer «%s». S'ha de poder escriure en aquest "
+#~ "fitxer perquè el MATE funcioni correctament. Mireu d'entrar mitjançant "
+#~ "la sessió a prova de fallades, i també assegureu-vos que es pugui "
+#~ "escriure al directori."
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "Esteu segur que voleu sortir?"
+
+#~ msgid "Remember running applications"
+#~ msgstr "Recorda les aplicacions que s'estan executant"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "_Reinicia l'ordinador"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "Llegeix només les sessions desades del fitxer default.session"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr ""
+#~ "Temps d'espera, en mil·lisegons, perquè els clients es registrin "
+#~ "(0=indefinidament)"
+
+#~ msgid "DELAY"
+#~ msgstr "RETARD"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr ""
+#~ "Temps d'espera, en mil·lisegons, perquè els clients responguin "
+#~ "(0=indefinidament)"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr ""
+#~ "Temps d'espera, en mil·lisegons, perquè els clients morin "
+#~ "(0=indefinidament)"
+
+#~ msgid "This session is running as a privileged user"
+#~ msgstr "Aquesta sessió s'executa com a usuari privilegiat"
+
+#~ msgid ""
+#~ "Running a session as a privileged user should be avoided for security "
+#~ "reasons. If possible, you should log in as a normal user."
+#~ msgstr ""
+#~ "S'hauria d'evitar executar una sessió com a usuari privilegiat per raons "
+#~ "de seguretat. Si és possible, hauríeu d'entrar com a usuari normal."
+
+#~ msgid "_Continue"
+#~ msgstr "_Continua"
+
+#~ msgid ""
+#~ "The session might encounter issues if the computer clock is not properly "
+#~ "configured. Please consider adjusting it.\n"
+#~ "\n"
+#~ "Current date is <b>%s</b>."
+#~ msgstr ""
+#~ "Si no funciona correctament el rellotge del sistema podríeu tenir "
+#~ "problemes amb la sessió. Hauríeu d'ajustar-lo.\n"
+#~ "\n"
+#~ "La data actual és <b>%s</b>."
+
+#~ msgid "Failed to launch time configuration tool: %s"
+#~ msgstr "No s'ha pogut llançar l'eina de configuració del temps: %s"
+
+#~ msgid "The computer clock appears to be wrong"
+#~ msgstr "Sembla que el rellotge de l'ordinador està malament"
+
+#~ msgid "_Ignore"
+#~ msgstr "_Ignora"
+
+#~ msgid "_Adjust the Clock"
+#~ msgstr "_Ajusta el rellotge"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "No s'ha pogut cercar l'adreça d'Internet de %s.\n"
+#~ "Això provocarà que el MATE no funcioni correctament.\n"
+#~ "Segurament es podria corregir aquest problema afegint\n"
+#~ "%s al fitxer /etc/hosts."
+
+#~ msgid "Try Again"
+#~ msgstr "Torna-ho a provar"
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "S'ha abandonat l'espera a causa d'un conflicte."
+
+#~ msgid "No response to the %s command."
+#~ msgstr "Cap resposta a l'ordre %s."
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "El programa podria ser lent, estar parat o trencat."
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "Podeu esperar que respongui o eliminar-lo."
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "No s'ha reiniciat atès que s'han produït errades."
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "Hi ha un tancament de sessió en progrés."
+
+#~ msgid "- Save the current session"
+#~ msgstr "- Desa la sessió actual"
+
+#~ msgid "Save changes to the current session before closing?"
+#~ msgstr "Voleu desar els canvis fets a la sessió actual abans de tancar?"
+
+#~ msgid "If you don't save, changes will be discarded."
+#~ msgstr "Si no els deseu, es descartaran tots els canvis."
+
+#~ msgid "_Close without Saving"
+#~ msgstr "_Tanca sense desar"
+
+#~ msgid "Current Session"
+#~ msgstr "Sessió actual"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "S'ha desat la sessió."
+
+#~ msgid "could not connect to the session manager\n"
+#~ msgstr "no s'ha pogut connectar al gestor de sessions\n"
+
+#~ msgid "session manager does not support MATE extensions\n"
+#~ msgstr "el gestor de sessions no permet l'ús d'extensions del MATE\n"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "Suprimeix el client seleccionat de la sessió."
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "Aplica els canvis a la sessió actual"
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "La llista dels programes de la sessió."
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "_Programes actualment en execució:"
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "Gestor de finestres Sawfish"
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "Gestor de finestres Marco"
+
+#~ msgid "Caja"
+#~ msgstr "Caja"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "Paràmetres de l'escriptori"
+
+#~ msgid "New Startup Program"
+#~ msgstr "Programa d'inici nou"
+
+#~ msgid "_Save current setup"
+#~ msgstr "_Desa la configuració actual"
+
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "_Desa automàticament els canvis a la sessió"
+
+#~ msgid "Save the current session"
+#~ msgstr "Desa la sessió actual"
+
+#~ msgid "The session name cannot be empty"
+#~ msgstr "El nom de la sessió no pot estar buit"
+
+#~ msgid "The session name already exists"
+#~ msgstr "El nom de la sessió ja existeix"
+
+#~ msgid "Add a new session"
+#~ msgstr "Afegeix una nova sessió"
+
+#~ msgid "Edit session name"
+#~ msgstr "Edita el nom de la sessió"
+
+#~ msgid "Disable"
+#~ msgstr "Inhabilita"
+
+#~ msgid "_Edit"
+#~ msgstr "_Edita"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "Alguns canvis no estan desats.\n"
+#~ "Voleu sortir igualment?"
+
+#~ msgid "Show splash screen on _login"
+#~ msgstr "Mostra la pantalla de presentació en en_trar"
+
+#~ msgid "As_k on logout"
+#~ msgstr "_Pregunta abans de sortir"
+
+#~ msgid "_Sessions:"
+#~ msgstr "_Sessions:"
+
+#~ msgid "_Startup Command:"
+#~ msgstr "Ordre d'_inici:"
+
+#~ msgid "There was an unknown activation error."
+#~ msgstr "S'ha produït un error d'activació desconegut."
+
+#~ msgid "Initialize session settings"
+#~ msgstr "Inicialitza els paràmetres de la sessió"
+
+#~ msgid "Save Current Session"
+#~ msgstr "Desa la sessió actual"
+
+#~ msgid "Save current state of desktop"
+#~ msgstr "Desa l'estat actual de l'escriptori"
+
+#~ msgid "Priority"
+#~ msgstr "Prioritat"
+
+#~ msgid "Audio Settings"
+#~ msgstr "Configuració del so"
+
+#~ msgid "Screensaver"
+#~ msgstr "Protector de pantalla"
+
+#~ msgid "Background Settings"
+#~ msgstr "Propietats del fons"
+
+#~ msgid "Mouse Settings"
+#~ msgstr "Propietats del ratolí"
+
+#~ msgid "Keyboard Settings"
+#~ msgstr "Propietats del teclat"
+
+#~ msgid "_Priority:"
+#~ msgstr "_Prioritat:"
+
+#~ msgid "Starting MATE: %s"
+#~ msgstr "or something like that :)\n"
+
+#~ msgid "Starting MATE: done"
+#~ msgstr "S'està iniciant el MATE: fet"
+
+#~ msgid "Starting MATE"
+#~ msgstr "S'està iniciant el MATE"
+
+#~ msgid "Respawn"
+#~ msgstr "Tornar-lo a crear"
+
+#~ msgid "<i>These changes take effect immediately</i>"
+#~ msgstr "<i>Aquests canvis tenen efecte immediatament</i>"
+
+#~ msgid "Choose Current Session"
+#~ msgstr "Selecciona la sessió actual"
+
+#~ msgid "Add..."
+#~ msgstr "Afegeix..."
+
+#~ msgid "Delete"
+#~ msgstr "Suprimeix"
+
+#~ msgid "Non-session-managed Startup Programs"
+#~ msgstr "Programes d'inici no controlats per la sessió"
+
+#~ msgid ""
+#~ "Programs with smaller values are started before programs with higher "
+#~ "values. The default value should be OK"
+#~ msgstr ""
+#~ "Els programes amb valors més baixos s'executen abans que els programes "
+#~ "amb valors més alts. El valor per defecte hauria de valdre."
+
+#~ msgid "Session Properties & Startup Programs"
+#~ msgstr "Propietats de la sessió i programes d'inici"
+
+#~ msgid "MATE Login"
+#~ msgstr "Entrada de MATE"
+
+#~ msgid "Log In"
+#~ msgstr "Entra"
+
+#~ msgid "Start with default programs"
+#~ msgstr "Inicia amb els programes per defecte"
+
+#~ msgid "Reset all user settings"
+#~ msgstr "Reinicialitza tots els paràmetres d'usuari"
+
+#~ msgid "Really reset all MATE user settings for %s?"
+#~ msgstr "Voleu reinicialitzar realment tots els paràmetres d'usuari per %s?"
+
+#~ msgid "No"
+#~ msgstr "No"
+
+#~ msgid ""
+#~ "The directory /tmp/matecorba-%s is not owned\n"
+#~ "by the current user, %s.\n"
+#~ "Please correct the ownership of this directory."
+#~ msgstr ""
+#~ "El directori /tmp/matecorba-%s no pertany\n"
+#~ "a l'usuari actual, %s.\n"
+#~ "Si us plau, corregiu la propietat d'aquest directori."
+
+#~ msgid "Really log out?"
+#~ msgstr "Realment voleu sortir?"
+
+#~ msgid ""
+#~ "Your version of libICE has a bug which causes mate-session\n"
+#~ "to not function correctly.\n"
+#~ "\n"
+#~ "If you are on Solaris, you should either upgrade to Solaris patch\n"
+#~ "#108376-16 or use the libICE.so.6 from the original Solaris 7.\n"
+#~ "Copy the file into /usr/openwin/lib. (Thanks go to Andy Reitz\n"
+#~ "for information on this bug).\n"
+#~ "\n"
+#~ "Your MATE session will terminate after closing this dialog."
+#~ msgstr ""
+#~ "La vostra versió de libICE te un error que fa que mate-session\n"
+#~ "no funcione correctament.\n"
+#~ "\n"
+#~ "Si esteu en Solaris, haurieu de actualitzar al pedaç de Solaris\n"
+#~ "#108376-16 o utilitzar la libICE.so.6 del Solaris 7 original.\n"
+#~ "Copieu el fitxer en /usr/openwin/lib. (Gràcies a Andy Reitz per la\n"
+#~ "informació sobre aquest bug).\n"
+#~ "\n"
+#~ "La vostra sessió del MATE terminarà després de tancar aquest diàleg."
+
+#~ msgid "Session Chooser"
+#~ msgstr "Selector de sessions"
+
+#~ msgid "Start Session"
+#~ msgstr "Inicia la sessió"
diff --git a/po/crh.po b/po/crh.po
new file mode 100644
index 0000000..43b73e0
--- /dev/null
+++ b/po/crh.po
@@ -0,0 +1,570 @@
+# Qırımtatarca translation of mate-session.
+# This file is distributed under the same license as the mate-session package.
+#
+# Reşat SABIQ <[email protected]>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2009-10-19 03:28-0500\n"
+"PO-Revision-Date: 2009-10-19 03:45-0500\n"
+"Last-Translator: Reşat SABIQ <[email protected]>\n"
+"Language-Team: Qırımtatarca (Qırım Türkçesi) <tilde-birlik-tercime@lists."
+"sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Emir Sayla"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Başlanğıç Programı Ekle"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Başlanğıç Programı Tarir Et"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Başlanğıç emri boş olamaz"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Başlanğıç emri keçerli degil"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Qabilleştirilgen"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "İşaretçik"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Program"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Başlanğıç Uyğulamaları Tercihleri"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "İsim yoq"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Tasvirsiz"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "Bu uyğulamanıñ sürümi"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Yardım vesiqası kösterilamadı"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "MATE Tesbitleri Cın Yardımcısı"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+# tüklü
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Bu oturım sizni MATE'ğa içeri imzalandırır"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Ög-belgilengen oturım"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Dosye İdarecisi"
+
+# tüklü
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Eger qabilleştirilgen ise, mate-session bir oturımnı qapatmadan evel "
+"qullanıcığa sorar."
+
+# tüklü
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Eger qabilleştirilgen ise, mate-session oturımnı öz-özünden saqlar. Aksi "
+"taqdirde, tışarı imzalanuv dialogında oturımnı saqlav ihtiyariyatı bulunır."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Ög-belgilengen oturımnıñ parçası olğan uyğulamalarnıñ cedveli."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Oturımnıñ parçası olaraq şart olğan komponentlerniñ cedveli. (Er unsur \"/"
+"desktop/mate/session/required_components\" altındaki bir anahtarnı "
+"isimlendirir.) Başlanğıç Uyğulamaları tercihleri aleti normal olaraq "
+"qullanıcılarnıñ oturımdan şart olğan bir komponentni çetleştirüvine izin "
+"bermez ve şart olğan komponentler çetleştirilgen olsa da oturım idarecisi "
+"içeri imzalanuv vaqtında olarnı öz-özünden oturımğa keri ekler."
+
+# tüklü
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Tışarı imzalanuv daveti"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+# tüklü
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "İçeri imzalanuv saçrama ekranı içün qullanılacaq tercih etilgen suret"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "Talap etilgen oturım komponentleri"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "Oturımlarnı saqla"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "Saçrama ekranını köster"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "Oturım başlağanda saçrama ekranını köster"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Dosye idarecisi, masaüstü işaretçiklerini ve saqlanğan dosyeleriñiz ile "
+"tesirleşim imkânını temin eter."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "Oturım aylaq mulâaza etilmeden evel faaliyetsiz daqqa sayısı."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Panel, ekrannıñ üstünde ya da tübünde menüler, pencere cedveli, durum "
+"işaretçikleri, saat vs. ihtiva etken çubuq temin eter."
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Pencere idarecisi, pencerelerniñ serlevalarını ve etrafındaki sıñırlarnı "
+"sızğan ve pencerelerni avuştırmağa ve kene ölçülendirmege imkân temin etken "
+"programdır."
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Bu $datadir/pixmaps/ fihristine esaslı nisbiy bir yolçıqtır. Alt-fihristler "
+"ve suret isimleri keçerli degerlerdir. Bu qıymetniñ deñiştirilüvi soñraki "
+"oturımğa tesir etecek."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "Oturım aylaq mulâaza etilmeden evelki vaqıt."
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Pencere İdarecisi"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Bazı programlar ale çapmaqta:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"Programnıñ tamamlanuvı içün beklene. Programnıñ kestirilüvi yapqan "
+"olğanıñız işlerni coyuvıñızğa sebep ola bilir."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "İçeri imzalanğan soñ başlatılacaq uyğulamalarnı saylañız"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Başlanğıç Uyğulamaları"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Ek başlanğıç _programları:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "Kezin..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Emir:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "_Şerh:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "İhtiyariyat"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Başlanğıç Uyğulamaları"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "Tışarı imzalanğanda çapmaqta olğan uyğulamalarnı _öz-özünden hatırla"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_İsim:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Al-azırda Çapmaqta Olğan Uyğulamanı Hatırla"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Dosye keçerli bir .desktop dosyesi degil"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Tanılmağan masaüstü dosyesi Sürümi '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "%s Başlatıla"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Uyğulama emir satrında vesiqalarnı qabul etmey"
+
+# tüklü
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Tanılmağan fırlatma ihtiyariyatı: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Bir 'Tür=İlişim' masaüstü kirildisine vesiqa URI'leri keçirilamaz"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Fırlatılabilir bir unsur degil"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Oturım idarecisine bağlantını ğayrı qabilleştir"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Saqlanğan ayarlamanı ihtiva etken dosyeni belirtiñiz"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "DOSYE"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Oturım idaresi kimligini belirtiñiz"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "Kimlik"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Oturım idaresi ihtiyariyatı:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Oturım idaresi ihtiyariyatını köster"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Ayarlama sunucısı ile bir mesele bar.\n"
+"(%s, %d durumı ile çıqtı)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "'%s' işaretçigi tapılamadı"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Bilinmey"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Bir program ale çapmaqta:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Bazı programlar ale çapmaqta:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Programlarnıñ tamamlanuvı içün beklene. Bu programlarnıñ kestirilüvi yapqan "
+"olğanıñız işlerni ğayıp etüviñizge sebep ola bilir."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Kene de Qullanıcını Deñiştir"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Kene de Tışarı İmzalan"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Kene de Sarqıt"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Kene de Yuqlat"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "Kene de Qapat"
+
+# tüklü
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Kene de Yañıdan Başlat"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Ekrannı Kilitle"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Vazgeç"
+
+# tüklü
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "%d saniyeden soñ avtomatik olaraq tışarı imzalandırılacaqsıñız. "
+msgstr[1] "%d saniyeden soñ avtomatik olaraq tışarı imzalandırılacaqsıñız."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Bu sistem %d saniyeden soñ avtomatik olaraq qapatılacaq."
+msgstr[1] "Bu sistem %d saniyeden soñ avtomatik olaraq qapatılacaq."
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Al-azırda \"%s\" olaraq içeri imzalanğansıñız."
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "Bu sistemden şimdi çıqılsınmı?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "_Qullanıcı Almaştır"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "_Tışarı İmzalan"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "Bu sistem şimdi qapatılsınmı?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "_Sarqıt"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "_Yuqlat"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "_Kene Başlat"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "_Qapat"
+
+#: ../mate-session/gsm-manager.c:1220 ../mate-session/gsm-manager.c:1912
+msgid "Not responding"
+msgstr "Cevap bermey"
+
+#: ../mate-session/gsm-xsmp-client.c:1206
+msgid "This program is blocking log out."
+msgstr "Bu program tışarı imzalanuvnı bloklay."
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Oturım şu ande qapatılmaqta olğandan dolayı yañı müşteri bağlantısı red "
+"etile\n"
+
+# tüklü
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ICE diñlev oyuğı (soketi) icat etilamadı: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "İçeri imzalanuv oturımı başlatılamay (ve X sunucısına bağlanılamay)"
+
+# tüklü
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr "Standart avto-başlanğıç fihristleriniñ üstünden ayda"
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr "Ög-belgilengen oturımnı baqıp almaq içün qullanılğan MateConf anahtarı"
+
+# tüklü
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr "Arızasızlandıruv kodunı qabilleştir"
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr "Qullanıcı tarafından belirtilgen programlarnı yükleme"
+
+#: ../mate-session/main.c:457
+msgid " - the MATE session manager"
+msgstr " - MATE oturım idarecisi"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- MATE Saçrama Ekranı"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "MATE Saçrama Ekranı"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Tışarı imzalan"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Tışarı imzalan, mevcut er türlü sedlerni ihmal eterek"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Tışarı imzalanuv dialogını köster"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Qapatuv dialogını köster"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Hatalar içün dialog qutularını qullan"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Ağımdaki oturım ismini tesbit et"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "İSİM"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Oturımnı öldür"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Tasdiq talap etme"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Oturım idarecisine bağlanılamadı"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Program çatışqan ihtiyariyat ile çağırıldı"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "Başlanğıç programınıñ ismi boş olamaz"
+
+# tüklü
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "Bu oturım içün yardımçan tehnologiya destegi istendi, ancaq "
+#~ "irişilebilirlik sicili tapılamadı. Lütfen AT-SPİ paketiniñ qurulğan "
+#~ "olğanından emin oluñız. Oturımıñız yardımçan tehnologiya destegi olmadan "
+#~ "başlatıldı."
+
+# tüklü
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "AT SPİ Sicili Sarıcısı"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "Oturım Tercihleri"
diff --git a/po/cs.po b/po/cs.po
new file mode 100644
index 0000000..31116a1
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,505 @@
+# Translation of mate-session to Czech.
+# Copyright (C) 1999, 2003, 2007, 2008, 2009, 2010 the author(s) of mate-session.
+# Copyright (C) 2004, 2005, 2006 Miloslav Trmac <[email protected]>.
+# This file is distributed under the same license as the mate-session package.
+# GIS <[email protected]>, 1999.
+# David Šauer <[email protected]>, 1999.
+# George Lebl <[email protected]>, 2000, 2001.
+# Stanislav Brabec <[email protected]>, 2000, 2001.
+# Michal Bukovjan <[email protected]>, 2002, 2003.
+# Miloslav Trmac <[email protected]>, 2004, 2005, 2006.
+# Petr Tomeš <[email protected]>, 2006.
+# Petr Kovar <[email protected]>, 2007, 2008, 2009, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-23 00:17+0200\n"
+"PO-Revision-Date: 2010-09-23 00:16+0200\n"
+"Last-Translator: Petr Kovar <[email protected]>\n"
+"Language-Team: Czech <[email protected]>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Lokalize 1.0\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Vybrat příkaz"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Přidat program při přihlášení"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Upravit program při přihlášení"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Příkaz při přihlášení nesmí být prázdný"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Příkaz při přihlášení není platný"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Povoleno"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Ikona"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Program"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Předvolby aplikací spouštěných při přihlášení"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Bez názvu"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Bez popisu"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Verze této aplikace"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Nelze zobrazit dokument nápovědy"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Toto sezení vás přihlásí do MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Výchozí sezení"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Správce souborů"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Pokud je povoleno, mate-session se před ukončením sezení dotáže uživatele."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Pokud je povoleno, mate-session automaticky uloží sezení."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Seznam aplikací, které jsou součástí výchozího sezení."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Seznam součástí, které jsou vyžadovány jako součást sezení. (Každý prvek "
+"určuje název klíče v \"/desktop/mate/session/required_components\".) "
+"Nástroj předvoleb aplikací spouštěných při přihlášení běžně neumožňuje "
+"uživatelům odebírat vyžadovanou součást ze sezení a správce sezení v případě "
+"odstranění vyžadovaných součástí tyto automaticky přidá zpět do sezení."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Dotaz na odhlášení"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Vyžadované součásti sezení"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Ukládat sezení"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Správce souborů poskytuje ikony pracovní plochy a umožňuje zprostředkování "
+"činnosti s uloženými soubory."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"Doba nečinnosti v minutách, po které se má sezení považovat za nečinné."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Panel poskytuje lištu v horní a dolní části obrazovky, včetně nabídek, "
+"seznamu oken, stavových ikon, hodin atd."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Správce oken je program vykreslující záhlaví a okraje oken, umožňuje "
+"přesunovat a měnit velikost oken."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Doba, po které se sezení považuje za nečinné"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Správce oken"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Některé programy stále běží:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"Čeká se na ukončení programu. Přerušení běhu programu může způsobit ztrátu "
+"rozdělané práce."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Vybere aplikace, které se mají spouštět při přihlášení"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Aplikace spouštěné při přihlášení"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "_Další programy při přihlášení:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "Procházet..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Příkaz:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "_Komentář:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Možnosti"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Programy při přihlášení"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "Při odhlašování si _automaticky pamatovat běžící aplikace"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Název:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "Zapa_matovat si aktuálně běžící aplikaci"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Soubor není platným souborem .desktop"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Nerozpoznaná verze \"%s\" souboru pracovní plochy"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Spouští se %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Aplikace neumožňuje přijmout dokumenty v příkazovém řádku"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Nerozpoznaná spouštěcí volba: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "URI dokumentu nelze postoupit položce pracovní plochy \"Type=Link\""
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Není spustitelnou položkou"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Vypnout spojení se správcem sezení"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Určit soubor obsahující uložené nastavení"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "SOUBOR"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Určit ID správce sezení"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Volby správy sezení:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Zobrazit volby správy sezení"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Se serverem nastavení nastal problém.\n"
+"(%s se ukončil se stavem %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Ikona \"%s\" nenalezena"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Neznámé"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Program stále běží:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Některé programy stále běží:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Čeká se na ukončení běhu programů. Přerušení běhu těchto programů může "
+"způsobit ztrátu dat."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Přesto přepnout uživatele"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "Přesto se odhlásit"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Přesto uspat do paměti"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Přesto uspat na disk"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "Přesto vypnout"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Přesto restartovat"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Uzamknout obrazovku"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Zrušit"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Budete automaticky odhlášeni za %d sekundu."
+msgstr[1] "Budete automaticky odhlášeni za %d sekundy."
+msgstr[2] "Budete automaticky odhlášeni za %d sekund."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Systém bude automaticky vypnut za %d sekundu."
+msgstr[1] "Systém bude automaticky vypnut za %d sekundy."
+msgstr[2] "Systém bude automaticky vypnut za %d sekund."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Aktuálně jste přihlášeni jako \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Odhlásit se nyní z tohoto systému?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "_Přepnout uživatele"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Odhlásit se"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Vypnout nyní tento systém?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "_Uspat do paměti"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "Uspat na _disk"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "_Restartovat"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "_Vypnout"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Neodpovídá"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "Tento program brání odhlášení."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Odmítnutí spojení nového klienta, jelikož právě probíhá vypnutí sezení\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Nelze vytvořit socket naslouchání ICE: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "Nepodařilo se spustit sezení s přihlášením (a spojit se se serverem X)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Přepsat standardní adresáře automatického spuštění"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "Klíč MateConf použitý k vyhledání výchozího sezení"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Zapnout ladicí kód"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Nenahrávat uživatelem zadané aplikace"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - správce sezení MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Odhlásit se"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Odhlásit se, ignorovat jakékoliv existující inhibitory"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Zobrazit dialog odhlášení"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Zobrazit dialog vypnutí"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "U chyb použije dialogová okna"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Nastaví název aktuálního sezení"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NÁZEV"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Ukončí sezení"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Nebude vyžadovat potvrzení"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Nelze se spojit se správcem sezení"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Program volán s kolidujícími volbami"
diff --git a/po/cy.po b/po/cy.po
new file mode 100644
index 0000000..4afb116
--- /dev/null
+++ b/po/cy.po
@@ -0,0 +1,521 @@
+# mate-session yn Gymraeg.
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# www.gyfieithu.co.uk <[email protected]>, 2003.
+# and contributors
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-03-02 17:48+0000\n"
+"PO-Revision-Date: 2006-03-02 12:20-0000\n"
+"Last-Translator: Rhys Jones <[email protected]>\n"
+"Language-Team: Cymraeg <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../mate-session/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "Caniatáu cysylltiadau TCP"
+
+#: ../mate-session/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"Am resymau diogelwch, nid yw mate-session yn caniatáu cysylltiadau TCP ar "
+"systemau sy'n darparu _IceTcpTransNoListen() (systemau XFree86). Mae'r "
+"opsiwn hwn yn caniatáu cysylltiadau o westeion pell (awdurdodedig). Mae'n "
+"rhaid ailgychwyn mate-session cyn bo hyn yn cael effaith."
+
+#: ../mate-session/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Os galluogir hyn, fe fydd mate-session yn gofyn am gadarnhad cyn diweddu "
+"sesiwn."
+
+#: ../mate-session/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Os galluogir hyn, fe fydd mate-session yn cadw'r sesiwn yn awtomatig. Fel "
+"arall, fe fydd gan y deialog allgofnodi opsiwn i gadw'r sesiwn."
+
+#: ../mate-session/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "Annog allgofnodi"
+
+#: ../mate-session/mate-session.schemas.in.h:6
+msgid "Preferred Image to use for login splash screen"
+msgstr ""
+"Y ddelwedd hoffech gael ei ddefnyddio yn y sgrin gychwyn wrth fewngofnodi"
+
+#: ../mate-session/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "Cadw sesiynau"
+
+#: ../mate-session/mate-session.schemas.in.h:8
+msgid "Selected option in the log out dialog"
+msgstr "Opsiwn dewisedig yn y deialog allgofnodi"
+
+#: ../mate-session/mate-session.schemas.in.h:9
+msgid "Show the splash screen"
+msgstr "Dangos y sgrin gychwyn"
+
+#: ../mate-session/mate-session.schemas.in.h:10
+msgid "Show the splash screen when the session starts up"
+msgstr "Dangos y sgrin gychwyn wrth gychwyn sesiwn"
+
+#: ../mate-session/mate-session.schemas.in.h:11
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Mae hwn yn werth perthynol wedi ei seilio oddi ar y plygell $datadir/"
+"pixmaps/. Bydd is ffolderi ac enwau delweddau yn werthoedd dilys. Bydd newid "
+"y gwerthoedd yma yn dod i rym yn y sesiwn mewngofnodi nesaf."
+
+#: ../mate-session/mate-session.schemas.in.h:12
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+"Hon fydd yr opsiwn a dewisir yn y deialog allgofnodi, gwerthoedd dilys yw "
+"\"logout\" ar gyfer allgofnodi, \"shutdown\" ar gyfer atal system ac "
+"\"restart\" i ail gychwyn y system."
+
+#: ../mate-session/gsm-client-editor.c:97
+msgid "_Order:"
+msgstr "_Trefn:"
+
+#: ../mate-session/gsm-client-editor.c:99
+msgid "The order in which applications are started in the session."
+msgstr "Y drefn mae rhaglenni yn cael eu dechrau ynddi yn y sesiwn."
+
+#: ../mate-session/gsm-client-editor.c:106
+msgid "What happens to the application when it exits."
+msgstr "Beth sy'n digwydd i'r rhaglen pan mae'n terfynu."
+
+#: ../mate-session/gsm-client-editor.c:109
+msgid "_Style:"
+msgstr "_Arddull:"
+
+#: ../mate-session/gsm-client-list.c:150
+msgid "Order"
+msgstr "Trefn"
+
+#: ../mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr "Arddull"
+
+#: ../mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr "Cyflwr"
+
+#: ../mate-session/gsm-client-list.c:165
+msgid "Program"
+msgstr "Rhaglen"
+
+#: ../mate-session/gsm-client-row.c:31
+msgid "Inactive"
+msgstr "Anweithredol"
+
+#: ../mate-session/gsm-client-row.c:32
+msgid "Waiting to start or already finished."
+msgstr "Aros i gychwyn neu wedi gorffen."
+
+#: ../mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr "Wedi dechrau"
+
+#: ../mate-session/gsm-client-row.c:35
+msgid "Started but has not yet reported state."
+msgstr "Wedi dechrau ond heb adroddi ei gyflwr eto."
+
+#: ../mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr "Gweithredu"
+
+#: ../mate-session/gsm-client-row.c:38
+msgid "A normal member of the session."
+msgstr "Aelod arferol o'r sesiwn."
+
+#: ../mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr "Wrthi'n Cadw"
+
+#: ../mate-session/gsm-client-row.c:41
+msgid "Saving session details."
+msgstr "Wrthi'n cadw manylion y sesiwn."
+
+#: ../mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr "Anhysbys"
+
+#: ../mate-session/gsm-client-row.c:44
+msgid "State not reported within timeout."
+msgstr "Ni adroddwyd y cyflwr o fewn y terfyn amser."
+
+#: ../mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr "Arferol"
+
+#: ../mate-session/gsm-client-row.c:51
+msgid "Unaffected by logouts but can die."
+msgstr "Heb ei effeithio gan allgofnodi ond caiff derfynu."
+
+#: ../mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr "Ailgychwyn"
+
+#: ../mate-session/gsm-client-row.c:54
+msgid "Never allowed to die."
+msgstr "Ni chaiff derfynu."
+
+#: ../mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr "Sbwriel"
+
+#: ../mate-session/gsm-client-row.c:57
+msgid "Discarded on logout and can die."
+msgstr "Gwaredir wrth allgofnodi a chaiff derfynu."
+
+#: ../mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr "Gosodiadau"
+
+#: ../mate-session/gsm-client-row.c:60
+msgid "Always started on every login."
+msgstr "Caiff ei gychwyn ar bob mewngofnodiad."
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: ../mate-session/gsm-gsd.c:41
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"Roedd gwall wrth gychwyn Ellyll Gosodiadau MATE.\n"
+"\n"
+"Efallai na fydd rhai pethau (megis themâu, seiniau a chefndir) yn gweithio'n "
+"gywir."
+
+#: ../mate-session/gsm-gsd.c:53
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Y neges gwall diwethaf oedd:\n"
+"\n"
+"\n"
+
+#: ../mate-session/gsm-gsd.c:58
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"Bydd MATE o hyd yn ceisio ailgychwyn y Daemon Gosodiadau y tro nesaf i chi "
+"fewngofnodi."
+
+#: ../mate-session/gsm-gsd.c:115
+msgid "There was an unknown activation error."
+msgstr "Roedd gwall cychwyn anhysbys."
+
+#: ../mate-session/gsm-gsd.c:157
+msgid "The Settings Daemon restarted too many times."
+msgstr "Fe ailgychwynnodd Daemon Gosodiadau MATE gormod o weithiau."
+
+#: ../mate-session/logout.c:408
+msgid "Are you sure you want to log out?"
+msgstr "Ydych chi'n sicr eich bod eisiau allgofnodi?"
+
+#: ../mate-session/logout.c:425
+msgid "_Save current setup"
+msgstr "_Cadw'r cyflwr cyfredol"
+
+#: ../mate-session/logout.c:448
+msgid "Action"
+msgstr "Gweithred"
+
+#: ../mate-session/logout.c:465
+msgid "_Log out"
+msgstr "_Allgofnodi"
+
+#: ../mate-session/logout.c:472
+msgid "Sh_ut down"
+msgstr "_Troi'r cyfrifiadur i ffwrdd"
+
+#: ../mate-session/logout.c:480
+msgid "_Restart the computer"
+msgstr "A_il-gychwyn y cyfrifiadur"
+
+#: ../mate-session/main.c:82
+msgid "Specify a session name to load"
+msgstr "Penodwch enw sesiwn i'w lwytho"
+
+#: ../mate-session/main.c:83
+msgid "Only read saved sessions from the default.session file"
+msgstr "Darllen sesiynau wedi'u cadw o'r ffeil default.session yn unig"
+
+#: ../mate-session/main.c:84
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr ""
+"Y milfedau o eiliadau dylid aros am gleientiaid i gofrestru (0 = am byth)"
+
+#: ../mate-session/main.c:85
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr "Y milfedau o eiliadau dylid aros am gleientiaid i ateb (0 = am byth)"
+
+#: ../mate-session/main.c:86
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr ""
+"Y milfedau o eiliadau dylid aros am gleientiaid i derfynu (0 = am byth)"
+
+#: ../mate-session/main.c:266
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"Methu canfod y cyfeiriad rhyngrwyd ar gyfer %s.\n"
+"Fe fydd hyn yn rhwystro MATE rhag gweithredu'n gywir.\n"
+"Fe all fod yn bosib cywiro'r broblem gan ychwanegu\n"
+"%s y ffeil /etc/hosts."
+
+#: ../mate-session/main.c:273
+msgid "Log in Anyway"
+msgstr "Mewngofnodi Fodd Bynnag"
+
+#: ../mate-session/main.c:274
+msgid "Try Again"
+msgstr "Ceisio Eto"
+
+#: ../mate-session/manager.c:223
+msgid "Your session has been saved"
+msgstr "Mae eich sesiwn wedi ei gadw"
+
+#: ../mate-session/manager.c:527
+msgid "Wait abandoned due to conflict."
+msgstr "Peidiwyd aros oherwydd gwrthdrawiad"
+
+#: ../mate-session/manager.c:1035
+#, c-format
+msgid "No response to the %s command."
+msgstr "Dim ateb i'r gorchymyn %s."
+
+#: ../mate-session/manager.c:1036
+msgid "The program may be slow, stopped or broken."
+msgstr "Fe all fod y rhaglen yn araf, yn seibio, neu wedi torri."
+
+#: ../mate-session/manager.c:1037
+msgid "You may wait for it to respond or remove it."
+msgstr "Fe allwch aros iddo ymateb neu ei dynnu."
+
+#: ../mate-session/manager.c:1760
+msgid "Restart abandoned due to failures."
+msgstr "Peidiwyd yr ailgychwyniad oherwydd methiannau."
+
+#: ../mate-session/manager.c:1956
+msgid "A session shutdown is in progress."
+msgstr "Mae terfyniad sesiwn yn digwydd."
+
+#: ../mate-session/save-session.c:46
+msgid "Set the current session"
+msgstr "Gosod y sesiwn gyfredol"
+
+#: ../mate-session/save-session.c:47
+msgid "Kill session"
+msgstr "Terfynu'r sesiwn"
+
+#: ../mate-session/save-session.c:48
+msgid "Use dialog boxes"
+msgstr "Defnyddio blychau deialog"
+
+#: ../mate-session/save-session.c:146 ../mate-session/save-session.c:179
+msgid "Could not connect to the session manager"
+msgstr "Methu cysylltu â'r rheolwr sesiwn"
+
+#: ../mate-session/session-names.c:143
+msgid "The session name cannot be empty"
+msgstr "Ni all enw'r sesiwn fod yn wag"
+
+#: ../mate-session/session-names.c:154
+msgid "The session name already exists"
+msgstr "Mae sesiwn gyda'r enw hwn yn bodoli"
+
+#: ../mate-session/session-names.c:188
+msgid "Add a new session"
+msgstr "Ychwanegu sesiwn newydd"
+
+#: ../mate-session/session-names.c:218
+msgid "Edit session name"
+msgstr "Golygu enw'r sesiwn"
+
+#: ../mate-session/session-properties-capplet.c:117
+msgid "Enable"
+msgstr "Galluogi"
+
+#: ../mate-session/session-properties-capplet.c:123
+#: ../mate-session/session-properties-capplet.c:464
+msgid "Disable"
+msgstr "Analluogi"
+
+#: ../mate-session/session-properties-capplet.c:145
+msgid "_Edit"
+msgstr "_Golygu"
+
+#: ../mate-session/session-properties-capplet.c:213
+msgid ""
+"Some changes are not saved.\n"
+"Is it still OK to exit?"
+msgstr ""
+"Mae rhai newidiadau heb eu cadw.\n"
+"Ydy hi'n iawn i derfynu fodd bynnag?"
+
+#: ../mate-session/session-properties-capplet.c:263
+#: ../mate-session/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Sesiynau"
+
+#: ../mate-session/session-properties-capplet.c:296
+msgid "Show splash screen on _login"
+msgstr "Dangos sgrin gychwyn wrth _fewngofnodi"
+
+#: ../mate-session/session-properties-capplet.c:307
+msgid "As_k on logout"
+msgstr "_Cadarnhau wrth allgofnodi"
+
+#: ../mate-session/session-properties-capplet.c:318
+msgid "Automatically save chan_ges to session"
+msgstr "Cadw newidiadau i'r sesiwn yn _awtomatig"
+
+#: ../mate-session/session-properties-capplet.c:329
+msgid "_Sessions:"
+msgstr "_Sesiynau:"
+
+#: ../mate-session/session-properties-capplet.c:347
+msgid "Session Name"
+msgstr "Enw'r Sesiwn"
+
+#: ../mate-session/session-properties-capplet.c:398
+msgid "Session Options"
+msgstr "Dewisiadau'r Sesiwn"
+
+#: ../mate-session/session-properties-capplet.c:407
+msgid "Current Session"
+msgstr "Y Sesiwn Gyfredol"
+
+#: ../mate-session/session-properties-capplet.c:416
+msgid "Additional startup _programs:"
+msgstr "Rhaglenni wrth _gychwyn eraill:"
+
+#: ../mate-session/session-properties-capplet.c:435
+msgid "Command"
+msgstr "Gorchymyn"
+
+#: ../mate-session/session-properties-capplet.c:475
+msgid "Startup Programs"
+msgstr "Rhaglenni Wrth Gychwyn"
+
+#: ../mate-session/session-properties.c:49
+msgid "Remove the currently selected client from the session."
+msgstr "Tynnu'r cleient dewisedig o'r sesiwn"
+
+#: ../mate-session/session-properties.c:55
+msgid "Apply changes to the current session"
+msgstr "Gosod y newidiadau i'r sesiwn gyfredol"
+
+#: ../mate-session/session-properties.c:61
+msgid "The list of programs in the session."
+msgstr "Rhestr y rhaglenni yn y sesiwn."
+
+#: ../mate-session/session-properties.c:88
+msgid "Currently running _programs:"
+msgstr "_Rhaglenni sy'n rhedeg ar hyn o bryd:"
+
+#: ../mate-session/session-properties.c:104
+msgid "Initialize session settings"
+msgstr "Cychwyn gosodiadau'r sesiwn"
+
+#: ../mate-session/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Ffurfweddu eich sesiynau"
+
+#: ../mate-session/splash-widget.c:43
+msgid "Sawfish Window Manager"
+msgstr "Y Rheolwr Ffenestri Sawfish"
+
+#: ../mate-session/splash-widget.c:44
+msgid "Marco Window Manager"
+msgstr "Y Rheolwr Ffenestri Marco"
+
+#: ../mate-session/splash-widget.c:45
+msgid "Window Manager"
+msgstr "Rheolwr Ffenestri"
+
+#: ../mate-session/splash-widget.c:46
+msgid "The Panel"
+msgstr "Y Panel"
+
+#: ../mate-session/splash-widget.c:47
+msgid "Caja"
+msgstr "Caja"
+
+#: ../mate-session/splash-widget.c:48
+msgid "Desktop Settings"
+msgstr "Gosodiadau Penbwrdd"
+
+#: ../mate-session/startup-programs.c:425
+msgid "_Startup Command:"
+msgstr "_Gorchymyn Wrth Gychwyn:"
+
+#: ../mate-session/startup-programs.c:431
+msgid "Startup Command"
+msgstr "Gorchymyn Wrth Gychwyn"
+
+#: ../mate-session/startup-programs.c:460
+msgid "The startup command cannot be empty"
+msgstr "Ni chaiff y gorchymyn wrth gychwyn fod yn wag"
+
+#: ../mate-session/startup-programs.c:497
+msgid "Add Startup Program"
+msgstr "Ychwanegu Rhaglen Wrth Gychwyn"
+
+#: ../mate-session/startup-programs.c:535
+msgid "Edit Startup Program"
+msgstr "Golygu Rhaglen Wrth Gychwyn"
+
+#~ msgid "Splash Screen Image"
+#~ msgstr "Delwedd y Sgrin Gychwyn"
+
+#~ msgid "Session Manager Proxy"
+#~ msgstr "Dirprwy Rheolwr Sesiynau"
+
+#~ msgid "Save Current Session"
+#~ msgstr "Cadw'r Sesiwn Gyfredol"
+
+#~ msgid "Save current state of desktop"
+#~ msgstr "Cadw cyflwr cyfredol y penbwrdd"
diff --git a/po/da.po b/po/da.po
new file mode 100644
index 0000000..fc6378b
--- /dev/null
+++ b/po/da.po
@@ -0,0 +1,605 @@
+# translation of mate-session.HEAD.po to Dansk
+# Danish translation of mate-session.
+# Copyright (C) 1998-2009 Free Software Foundation, Inc.
+# This file is distributed under the same license as the mate-session package.
+#
+# Konventioner:
+#
+# dialog -> vindue
+# hints -> tip
+# splash screen -> velkomstvindue
+# start up -> starter
+# tasklist -> procesliste
+# URL -> adresse
+#
+# Kenneth Christiansen <[email protected]>, 1998-2000.
+# Birger Langkjer <[email protected]>, 1999.
+# Keld Simonsen <[email protected]>, 2000-2001.
+# Ole Laursen <[email protected]>, 2001, 02, 03.
+# Martin Willemoes Hansen <[email protected]>, 2004, 05.
+# Lasse Bang Mikkelsen <[email protected]>, 2007.
+# Peter Bach <[email protected]>, 2007.
+# Ask Hjorth Larsen <[email protected]>, 2007.
+# Kenneth Nielsen <[email protected]>, 2008-2009.
+# M.P. Rommedahl <[email protected]>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-15 21:40+0200\n"
+"PO-Revision-Date: 2010-09-14 22:58+0200\n"
+"Last-Translator: Kenneth Nielsen <[email protected]>\n"
+"Language-Team: Dansk <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Vælg kommando"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Tilføj opstartsprogram"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Redigér opstartsprogram"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Startkommandoen kan ikke være tom"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Startkommandoen er ugyldig"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Aktiveret"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Ikon"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Program"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Indstillinger for opstartsprogrammer"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Intet navn"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Ingen beskrivelse"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Version af dette program"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Kunne ikke vise hjælpedokument"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Denne session logger dig ind i MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Standardsession"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Filhåndtering"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Hvis aktiveret vil mate-session spørge brugeren før en session afsluttes."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Hvis aktiveret vil mate-session automatisk gemme sessionen."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Programmer som er en del af standardsessionen."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Liste over komponenter der er nødvendige som en del af sessionen. (Hvert "
+"element navngiver en nøgle under \"/desktop/mate/session/required-components"
+"\".) Værktøjer \"Indstillinger for opstartprogrammer\" vil normalt ikke "
+"tillade brugere at fjerne en nødvendig komponent fra sessionen, og "
+"sessionshåndteringen vil automatisk tilføje nødvendige komponenter tilbage "
+"til sessionen, hvis de bliver fjernet."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Log ud-prompt"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Nødvendige sessionskomponenter"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Gem sessioner"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Filhåndteringen sørger for skrivebordsikoner og lader dig bruge dine gemte "
+"filer."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"Antallet af minutter med inaktivitet før systemet betragtes som i tomgang."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Panelet sørger for bjælken i toppen eller bunden af skærmen, som indeholder "
+"menuer, vindueslisten, statusikoner, uret, osv."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Vindueshåndteringen er det program, som optegner titelbjælken og grænserne "
+"rundt om vinduer, samt lader dig flytte og ændre størrelse på vinduer."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Tid før sessionen betragtes som værende i tomgang"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Vindueshåndtering"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Nogle programmer kører stadigvæk:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"Venter på at programmet afslutter. At afbryde dette program kan føre til at "
+"du mister data."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Vælg hvilke programmer som skal startes når du logger ind"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Opstartsprogrammer"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Yderligere opstarts_programmer:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "Gennemse…"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "Ko_mmando:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Komm_entar:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Indstillinger"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Opstartsprogrammer"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "Husk _automatisk kørende programmer når der logges ud"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Navn:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Husk program, der kører nu"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Filen er ikke en gyldig .desktop-fil"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Ukendt desktop-filversion \"%s\""
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Starter %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Programmet accepterer ikke dokumenter på kommandolinje"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Ukendt køreindstilling: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Kan ikke sende dokumentets URI til en \"Type=Link\"-skrivebordsentitet"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Ikke et kørbart element"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Deaktivér forbindelse til sessionshåndteringen"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Angiv fil som indeholder den gemte konfiguration"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FILE"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Angiv sessionshåndterings-id"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Sessionshåndtering-indstillinger:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Vis tilvalg for sessionshåndtering"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Der er et problem med konfigurationsserveren.\n"
+"(%s afsluttede med status %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Ikon \"%s\" kunne ikke findes"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Ukendt"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Et program kører stadigvæk:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Nogle programmer kører stadigvæk:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Venter på at programmer afslutter. At afbryde disse programmer kan føre til "
+"at du mister data."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Skift bruger alligevel"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "Log ud alligevel"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Gå i standby alligevel"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Gå i dvale alligevel"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "Sluk alligevel"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Genstart alligevel"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Lås skærmen"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Annullér"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Du vil automatisk blive logget ud om %d sekund."
+msgstr[1] "Du vil automatisk blive logget ud om %d sekunder."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Dette system vil automatisk lukke ned om %d sekund."
+msgstr[1] "Dette system vil automatisk lukke ned om %d sekunder."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Du er på nuværende tidspunkt logget ind som \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Log ud af dette system nu?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "_Skift bruger"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Log ud"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Sluk dette system nu?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "S_tandby"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Dvale"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "_Genstart"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "_Sluk"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Svarer ikke"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "Dette program blokerer log ud."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Nægter ny klientforbindelse fordi sessionen er ved at blive lukket ned\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Kunne ikke oprette ICE-lyttesoklen: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Kunne ikke starte logind-session (og kunne ikke forbinde til X-serveren)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Tilsidesæt standard-autostartmapper"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "MateConf-nøgle brugt til at finde standardsession"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Aktivér fejlfindingskode"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Hent ikke brugerangivne programmer"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - MATE-sessionshåndteringen"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Log ud"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Log ud, og ignorér eventuelle eksisterende blokeringer"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Vis log ud-dialog"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Vis sluk-dialog"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Benyt vinduesbokse til fejl"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Sæt det nuværende sessionsnavn"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAVN"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Afslut session"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Opkræv ikke beskæftigelse"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Kunne ikke tilkoble til sessionshåndteringen"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Program blev kaldt med selvmodsigende tilvalg"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "MATE-indstillinger dæmonhjælper"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "Hvis aktiveret vil mate-session gemme sessionen automatisk. Ellers vil "
+#~ "log ud-vinduet indeholde en valgmulighed for at gemme sessionen."
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "Foretrukket billede til brug for velkomstvinduet"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "Vis velkomstvinduet"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "Vis velkomstvinduet når sessionen starter"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+#~ msgstr ""
+#~ "Dette er en relativ stiværdi baseret på $datadir/pixmaps/-kataloget. "
+#~ "Under-kataloger og billednavne er gyldige værdier. Ændring af denne værdi "
+#~ "vil påvirke det næste sessionslogind."
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr ""
+#~ "Venter på at programmer afslutter. At forstyrre disse programmer kan føre "
+#~ "til at du mister data."
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- MATE-velkomstvindue"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "MATE-velkomstvindue"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "Startkommandoen kan ikke være tom"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "Assisterende teknologi understøttelse er blevet anmodet i denne session, "
+#~ "men blev ikke fundet. Vær sikker på at AT-SPI-pakken er installeret. Din "
+#~ "session er blevet startet uden brug af assisterende teknologi "
+#~ "understøttelse."
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "AT SPI registreringsomslag"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "Sessionsindstillinger"
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "MATE-nøglering dæmonomslag"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Forvalgt valgmulighed i \"Log ud\"-vinduet"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "Dette er den forvalgte valgmulighed i \"Log ud\"-vinduet. Gyldige værdier "
+#~ "er \"logout\" for at logge ud, \"shutdown\" for at stoppe systemet og "
+#~ "\"restart\" for at genstarte systemet."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "Konfigurér dine sessioner"
+
+#~ msgid "Sessions"
+#~ msgstr "Sessioner"
+
+#~ msgid "Session management"
+#~ msgstr "Sessionshåndtering"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "MATE GUI-bibliotek + EggSMClient"
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 0000000..8d31cd6
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,986 @@
+# German translation file for mate-session.
+# Copyright (C) 1998-2002, 2007 Free Software Foundation, Inc.
+# Carsten Schaar <[email protected]>, 1998.
+# Matthias Warkus <[email protected]>, 1999-2001.
+# Karl Eichwalder <[email protected]>, 2000, 2001.
+# Christian Meyer <[email protected]>, 2000, 2001.
+# Benedikt Roth <[email protected]>, 2000, 2001.
+# Jörgen Scheibengruber <[email protected]>, 2002.
+# Christian Neumair <[email protected]>, 2002, 2003, 2004.
+# Hendrik Richter <[email protected]>, 2005, 2006, 2007, 2008.
+# Jochen Skulj <[email protected]>, 2006.
+# Andre Klapper <[email protected]>, 2007.
+# Mario Blättermann <[email protected]>, 2008, 2010.
+# Wolfgang Stöggl <[email protected]>, 2009.
+# Christian Kirbach <[email protected]>, 2009, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session master\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2010-09-12 13:10+0000\n"
+"PO-Revision-Date: 2010-09-12 15:44+0200\n"
+"Last-Translator: Christian Kirbach <[email protected]>\n"
+"Language-Team: Deutsch <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Startbefehl auswählen"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Startprogramm hinzufügen"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Startprogramm bearbeiten"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Der Startbefehl darf nicht leer sein"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Der Startbefehl ist ungültig"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Aktiviert"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Symbol"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Programm"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Startprogrammeinstellungen"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Namenlos"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Keine Beschreibung"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Version dieser Anwendung"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Die Hilfeseite konnte nicht angezeigt werden"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Diese Sitzung meldet Sie bei MATE an"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Standardsitzung"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Dateimanager"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "Soll mate-session den Benutzer vor dem Beenden einer Sitzung fragen?"
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Falls aktiviert, speichert mate-session die Sitzung automatisch."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Liste der Anwendungen, die Teil der Standardsitzung sind."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Liste der Komponenten, die als Teil der Sitzung erforderlich sind. (Jedes "
+"Element bezeichnet einen Schlüssel unter »/desktop/mate/session/"
+"required_components«). Das Programm zur Verwaltung der "
+"Startprogrammeinstellungen erlaubt gewöhnlichen Benutzern nicht, benötigte "
+"Komponenten aus der Sitzung zu entfernen. Diese werden bei Anmeldung wieder "
+"automatisch zur Sitzung hinzugefügt, falls sie entfernt wurden."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Abmeldedialog"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Das Panel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Benötigte Sitzungskomponenten"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Sitzungen speichern"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Der Dateimanager stellt die Desktop-Symbole bereit und erlaubt Ihnen, "
+"gespeicherte Dateien zu verwalten."
+
+# Übersetzung wie in mate-screensaver
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "Die Anzahl inaktiver Minuten bis der Benutzer als untätig gilt."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Das Panel stellt die Leisten am oberen und unteren Bildschirmrand bereit, "
+"welche die Menüs, die Fensterliste, Statussymbole, die Uhr usw. beinhalten."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Der Fenstermanager ist das Programm, welches die Titelleiste und die Ränder "
+"der Fenster zeichnet, sowie das Bewegen und die Änderung der Größe der "
+"Fenster erlaubt."
+
+# Übersetzung wie in mate-screensaver
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Zeitdauer ab der die Sitzung als untätig gilt"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Fenstermanager"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Einige Anwendungen laufen noch:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"Warten auf Beenden der Anwendung. Durch Abbruch der Anwendung könnten "
+"Änderungen verloren gehen."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr ""
+"Wählen Sie, welche Anwendungen gestartet werden, wenn Sie sich anmelden"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Startprogramme"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "_Zusätzliche Startprogramme:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "Durchsuchen …"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Befehl:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Ko_mmentar:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Optionen"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Startprogramme"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Automatisch die laufenden Programme beim Abmelden merken"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Name:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "Momentan laufendes Programm _merken"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Diese Datei ist keine gültige .desktop-Datei"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Version der Desktop-Datei '%s' wurde nicht erkannt"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Startet %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Anwendung akzeptiert keine Befehlszeilenargumente"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Nicht erkannte Startoption: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "URI konnte auf Desktop-Datei 'Type=Link' nicht angewendet werden"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Kein ausführbares Objekt"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Sitzungsmanager konnte nicht kontaktiert werden"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Datei zum Speichern der Konfiguration auswählen"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "DATEI"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Geben Sie die zu ladende Sitzungskennung an"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "Kennung"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Sitzungsoptionen:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Sitzungsoptionen anzeigen"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Es gibt ein Problem mit dem Konfigurationsserver.\n"
+"(%s beendet mit Status %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Symbol »%s« konnte nicht gefunden werden"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Unbekannt"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Eine Anwendung läuft noch:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Einige Anwendungen laufen noch:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Warten auf das Beenden der Anwendungen. Durch Abbruch der Anwendungen "
+"könnten Änderungen verlorengehen."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Trotzdem Benutzer wechseln"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "Trotzdem abmelden"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Trotzdem in Bereitschaftsmodus gehen"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Trotzdem in Ruhezustand gehen"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "Trotzdem ausschalten"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Trotzdem neu starten"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Bildschirm sperren"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Sie werden in %d Sekunde automatisch abgemeldet."
+msgstr[1] "Sie werden in %d Sekunden automatisch abgemeldet."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Der Rechner wird in %d Sekunde automatisch ausgeschaltet."
+msgstr[1] "Der Rechner wird in %d Sekunden automatisch ausgeschaltet."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Sie sind zurzeit als \"%s\" angemeldet."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Jetzt vom System abmelden?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "Benutzer _wechseln"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "Benutzer ab_melden"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Möchten Sie den Rechner jetzt ausschalten?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "_Bereitschaft"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Ruhezustand"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "_Neu starten"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "Rechner a_usschalten"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Keine Antwort"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "Dieses Programm blockiert die Abmeldung."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Neue Client-Verbindung wurde abgelehnt, weil die aktuelle Sitzung "
+"gegenwärtig beendet wird\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ICE-Listening-Socket konnte nicht erzeugt werden: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Anmeldesitzung konnte nicht gestartet werden (keine Verbindung zum X-Server)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Überschreiben vorgegebener Autostart-Ordner"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "MateConf-Schlüssel zum Erfragen der Standardsitzung"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Debugging-Code aktivieren"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Keine benutzerspezifischen Anwendungen laden"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - Die MATE-Sitzung verwalten"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Abmelden"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Abmelden und Unterdrückungen ignorieren"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Abmelden-Dialog anzeigen"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Ausschalten-Dialog anzeigen"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Dialogfenster bei Fehlern anzeigen"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Den Namen der momentan geöffneten Sitzung festlegen"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAME"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Sitzung zwangsweise beenden"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Keine Bestätigung erwarten"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Sitzungsmanager konnte nicht kontaktiert werden"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Programm wurde mit Optionen aufgerufen, die zu einem Konflikt führen"
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "Bevorzugtes Bild für das Begrüßungsfenster nach dem Anmelden"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "Den Begrüßungsbildschirm anzeigen"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "Beim Sitzungsstart den Begrüßungsbildschirm anzeigen"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will affect the next session login."
+#~ msgstr ""
+#~ "Dies ist ein relativer Pfad basierend auf dem Ordner »$datadir/pixmaps/«. "
+#~ "Unterordner und Bildnamen sind gültige Werte. Die Änderung dieses Werts "
+#~ "wird bei der nächsten Sitzungsanmeldung wirksam."
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr ""
+#~ "Warten auf das Beenden der Anwendung. Durch Abbruch der Anwendung könnten "
+#~ "Änderungen verlorengehen."
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- Den Begrüßungsbildschirm anzeigen"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "MATE-Begrüßungsbildschirm"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "MATE-Einstellungen-Dienst-Helfer"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "Soll mate-session die Sitzung automatisch speichern? Andernfalls wird "
+#~ "dem Abmeldedialog eine Option hinzugefügt, mit dem die Sitzung manuell "
+#~ "gespeichert werden kann."
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "Der Name des Startbefehls darf nicht leer sein"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "Für diese Sitzung wurde Unterstützung für Hilfstechnologien erbeten, die "
+#~ "Registrierung für Barrierefreiheit wurde jedoch nicht gefunden. Bitte "
+#~ "stellen Sie sicher, dass das Paket AT-SPI installiert ist. Diese Sitzung "
+#~ "wurde ohne Unterstützung für Hilfstechnologien gestartet."
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "AT-SPI-Registrierungseinbindung"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "Sitzungseinstellungen"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Ausgewählte Option im Abmeldedialog"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "Dies ist die Option die automatisch im Abmeldedialog ausgewählt wird. "
+#~ "Gültige Werte sind »logout« (Benutzer abmelden), »shutdown« (Rechner "
+#~ "ausschalten) und »restart« (System neu starten)."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "Ihre Sitzungen konfigurieren"
+
+#~ msgid "Sessions"
+#~ msgstr "Sitzungen"
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "MATE-Schlüsselbund-Dienst-Einbindung"
+
+#~ msgid "Session management"
+#~ msgstr "Sitzungsverwaltung"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "MATE-GUI-Bibliothek + EggSMClient"
+
+#~ msgid "Could not connect to the session manager\n"
+#~ msgstr "Sitzungsmanager konnte nicht kontaktiert werden\n"
+
+#~ msgid " - Save the current session"
+#~ msgstr " - Die momentan geöffnete Sitzung speichern"
+
+#~ msgid "Play logout sound instead of login"
+#~ msgstr "Abmeldeklang abspielen anstelle des Logins"
+
+#~ msgid "- MATE login/logout sound"
+#~ msgstr "- MATE-Anmelde/Abmeldeklang"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "TCP-Verbindungen zulassen"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "Aus Sicherheitsgründen horcht mate-session auf Plattformen, die "
+#~ "»_IceTcpTransNoListen()« unterstützen (XFree86-Systeme) an TCP-Ports nicht "
+#~ "nach Verbindungen. Dieser Schlüssel legt fest, ob (legitimierten) "
+#~ "Rechnern dennoch der Verbindungsaufbau gestattet werden soll. mate-"
+#~ "session muss neu gestartet werden, damit eine Änderung an diesem "
+#~ "Schlüssel wirksam wird."
+
+#~ msgid "_Order:"
+#~ msgstr "_Reihenfolge: "
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "Was mit der Anwendung geschieht, wenn diese beendet wird."
+
+#~ msgid "_Style:"
+#~ msgstr "_Stil: "
+
+#~ msgid "Inactive"
+#~ msgstr "Inaktiv"
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "Wartet auf den Start oder ist bereits abgeschlossen."
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "Gestartet, hat aber noch keinen Zustandsbericht abgegeben."
+
+#~ msgid "Running"
+#~ msgstr "Läuft"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "Ein normales Mitglied der Sitzung."
+
+#~ msgid "Saving"
+#~ msgstr "Speichervorgang"
+
+#~ msgid "Saving session details."
+#~ msgstr "Sitzungsdetails werden gespeichert."
+
+#~ msgid "State not reported within timeout."
+#~ msgstr ""
+#~ "Hat den Zustand vor der Zeitüberschreitung nicht mehr bekanntgegeben."
+
+#~ msgid "Normal"
+#~ msgstr "Normal"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "Vom Abmelden nicht betroffen, kann aber sterben."
+
+#~ msgid "Never allowed to die."
+#~ msgstr "Darf nie sterben."
+
+#~ msgid "Trash"
+#~ msgstr "Verwerfen"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "Wird beim Abmelden verworfen und kann sterben."
+
+#~ msgid "Settings"
+#~ msgstr "Einstellungen"
+
+#~ msgid "Always started on every login."
+#~ msgstr "Wird bei jedem Anmelden gestartet."
+
+#~ msgid "Order"
+#~ msgstr "Reihenfolge"
+
+#~ msgid "Style"
+#~ msgstr "Stil"
+
+#~ msgid "State"
+#~ msgstr "Status"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "Beim Starten des MATE-Einstellungsdämons ist ein Fehler aufgetreten.\n"
+#~ "\n"
+#~ "Möglicherweise funktionieren einige Dinge, wie z.B. Themen, Klänge oder "
+#~ "Hintergrundeinstellungen nicht korrekt."
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Die letzte Fehlermeldung war:\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Beim nächsten Anmelden wird MATE weiterhin versuchen, den "
+#~ "Einstellungsdämon neu zu starten."
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "Der Einstellungsdämon wurde zu oft neu gestartet."
+
+#~ msgid "List registered clients, then exit"
+#~ msgstr "Registrierte Clients anzeigen, dann beenden"
+
+#~ msgid "PROGRAM..."
+#~ msgstr "PROGRAMM …"
+
+#~ msgid ""
+#~ "You must specify at least one program to remove. You can list the "
+#~ "programs with --list.\n"
+#~ msgstr ""
+#~ "Sie müssen mindestens ein Programm angeben dass entfernt werden soll. Sie "
+#~ "können die Programme mit --list auflisten.\n"
+
+#~ msgid "Error: could not connect to the session manager\n"
+#~ msgstr "Fehler: Sitzungsmanager konnte nicht kontaktiert werden\n"
+
+#~ msgid "Currently registered clients:\n"
+#~ msgstr "Momentan registrierte Clients:\n"
+
+#~ msgid "Couldn't find program %s in session\n"
+#~ msgstr "Das Programm »%s« konnte nicht in der Sitzung gefunden werden\n"
+
+#~ msgid ""
+#~ "The MATE session manager cannot start properly. Please report this as a "
+#~ "MATE bug. Please include this ICE failure message in the bug report: '%"
+#~ "s'. Meanwhile you could try logging in using the failsafe session."
+#~ msgstr ""
+#~ "Die Sitzungsverwaltung von MATE konnte nicht richtig gestartet werden. "
+#~ "Bitte melden Sie diesen MATE-Fehler und schließen Sie die folgenden ICE-"
+#~ "Fehlermeldung in Ihren Fehlerbericht ein: »%s«. Bis auf weiteres können "
+#~ "Sie versuchen sich über die abgesicherte Sitzung anzumelden."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to lock the file '%s'. Please "
+#~ "report this as a MATE bug. Sometimes this error may occur if the file's "
+#~ "directory is unwritable, you could try logging in via the failsafe "
+#~ "session and ensuring that it is."
+#~ msgstr ""
+#~ "Die·Sitzungsverwaltung·von·MATE·konnte·die Datei »%s« nicht sperren."
+#~ "·Bitte·melden·Sie·diesen·MATE-Fehler. Manchmal tritt dieser Fehler auf, "
+#~ "wenn das entsprechende Dateiverzeichnis nicht schreibbar ist. Sie "
+#~ "können·versuchen·sich·über·die·abgesicherte·Sitzung·anzumelden und zu "
+#~ "überprüfen ob das Verzeichnis schreibbar ist."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to read the file: '%s'. If this "
+#~ "file exists it must be readable by you for MATE to work properly. Try "
+#~ "logging in with the failsafe session and removing this file."
+#~ msgstr ""
+#~ "Die·Sitzungsverwaltung·von·MATE·konnte die Datei »%s« nicht lesen. Falls "
+#~ "diese Datei existiert muss sie von Ihnen lesbar sein, damit MATE "
+#~ "ordnungsgemäß funktioniert. Versuchen Sie sich über die abgesicherte "
+#~ "Sitzung anzumelden und die Datei zu löschen."
+
+#~ msgid ""
+#~ "Could not write to file '%s'. This file must be writable in order for "
+#~ "MATE to function properly. Try logging in with the failsafe session and "
+#~ "removing this file. Also make sure that the file's directory is writable."
+#~ msgstr ""
+#~ "Die Datei »%s« konnte nicht geschrieben werden. Diese Datei muss "
+#~ "schreibbar sein, damit MATE ordnungsgemäß funktioniert. Versuchen Sie "
+#~ "sich über die abgesicherte Sitzung anzumelden und die Datei zu löschen. "
+#~ "Stellen Sie außerdem sicher, dass der Dateiordner schreibbar ist."
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "Sind Sie sicher, dass Sie sich abmelden wollen?"
+
+#~ msgid "Remember running applications"
+#~ msgstr "Benutzte Anwendungen merken"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "System _neu starten"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "Gespeicherte Sitzungen nur aus der Datei »default.session« einlesen"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr ""
+#~ "Wie viele Millisekunden auf Registrieren der Clients warten (0=unbegrenzt)"
+
+#~ msgid "DELAY"
+#~ msgstr "VERZÖGERUNG"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr ""
+#~ "Wie viele Millisekunden auf Antwort der Clients warten (0=unbegrenzt)"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr "Wie viele Millisekunden auf Tod der Clients warten (0=unbegrenzt)"
+
+#~ msgid "This session is running as a privileged user"
+#~ msgstr "Diese Sitzung wird als privilegierter Benutzer ausgeführt"
+
+#~ msgid ""
+#~ "Running a session as a privileged user should be avoided for security "
+#~ "reasons. If possible, you should log in as a normal user."
+#~ msgstr ""
+#~ "Es sollte aus Sicherheitsgründen vermieden werden, eine Sitzung als "
+#~ "privilegierter Benutzer auszuführen. Falls möglich sollten Sie sich als "
+#~ "normaler Benutzer anmelden."
+
+#~ msgid "_Continue"
+#~ msgstr "_Fortfahren"
+
+#~ msgid ""
+#~ "The session might encounter issues if the computer clock is not properly "
+#~ "configured. Please consider adjusting it.\n"
+#~ "\n"
+#~ "Current date is <b>%s</b>."
+#~ msgstr ""
+#~ "Es können Probleme auftreten falls die Uhr des Computers nicht korrekt "
+#~ "eingestellt ist. Bitte erwägen Sie, die Uhr korrekt einzustellen.\n"
+#~ "\n"
+#~ "Momentanes Datum: <b>%s</b>"
+
+#~ msgid "Failed to launch time configuration tool: %s"
+#~ msgstr ""
+#~ "Werkzeug zum Konfigurieren der Uhr konnte nicht gestartet werden: %s"
+
+#~ msgid "The computer clock appears to be wrong"
+#~ msgstr "Die Uhr des Computers scheint falsch eingestellt zu sein"
+
+#~ msgid "_Ignore"
+#~ msgstr "_Ignorieren"
+
+#~ msgid "_Adjust the Clock"
+#~ msgstr "_Uhr einstellen"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "Die Netzwerkadresse von %s konnte nicht ermittelt werden.\n"
+#~ "Aus diesem Grund kann MATE nicht korrekt arbeiten.\n"
+#~ "Möglicherweise kann dieser Fehler durch das Hinzufügen\n"
+#~ "von %s zur Datei »/etc/hosts« zu korrigieren."
+
+#~ msgid "Try Again"
+#~ msgstr "Erneut versuchen"
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "Das Warten wurde wegen eines Konfliktes abgebrochen."
+
+#~ msgid "No response to the %s command."
+#~ msgstr "Keine Antwort auf den Befehl %s."
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "Das Programm ist möglicherweise langsam, angehalten oder defekt."
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr ""
+#~ "Sie müssen evtl. darauf warten, dass es antwortet, oder es entfernen."
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "Neustart auf Grund von Fehlern abgebrochen."
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "Die Sitzung wird gerade heruntergefahren."
+
+#~ msgid "Save changes to the current session before closing?"
+#~ msgstr ""
+#~ "Sollen Änderungen auf die momentan geöffnete Sitzung angewandt werden?"
+
+#~ msgid "If you don't save, changes will be discarded."
+#~ msgstr "Wenn Sie nicht speichern gehen gemachte Änderungen verloren."
+
+#~ msgid "_Close without Saving"
+#~ msgstr "_Nicht speichern"
+
+#~ msgid "Current Session"
+#~ msgstr "Aktuelle Sitzung"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "Ihre Sitzung wurde abgespeichert."
+
+#~ msgid "could not connect to the session manager\n"
+#~ msgstr "Sitzungsmanager konnte nicht kontaktiert werden\n"
+
+#~ msgid "session manager does not support MATE extensions\n"
+#~ msgstr "Sitzungsmanager unterstützt keine MATE-Erweiterungen\n"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "Den momentan gewählten Client aus der Sitzung entfernen."
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "Änderungen auf die momentan geöffnete Sitzung anwenden"
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "Die Liste der Programme in der Sitzung."
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "_Momentan laufende Programme:"
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "Fenstermanager Sawfish"
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "Fenstermanager Marco"
+
+#~ msgid "Caja"
+#~ msgstr "Caja"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "Desktop-Einstellungen"
+
+#~ msgid "New Startup Program"
+#~ msgstr "Neues Startprogramm"
+
+#~ msgid "_Save current setup"
+#~ msgstr "Aktuelle Einstellungen _speichern"
+
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "Ä_nderungen an der Sitzung automatisch speichern"
+
+#~ msgid "Save the current session"
+#~ msgstr "Die momentan geöffnete Sitzung speichern"
+
+#~ msgid "The session name cannot be empty"
+#~ msgstr "Sie müssen einen Sitzungsnamen eingeben"
+
+#~ msgid "The session name already exists"
+#~ msgstr "Der Sitzungsname existiert bereits"
+
+#~ msgid "Add a new session"
+#~ msgstr "Eine neue Sitzung hinzufügen"
+
+#~ msgid "Disable"
+#~ msgstr "Deaktivieren"
+
+#~ msgid "_Edit"
+#~ msgstr "_Bearbeiten"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "Einige Änderungen wurden nicht gespeichert.\n"
+#~ "Dennoch beenden?"
+
+#~ msgid "Show splash screen on _login"
+#~ msgstr "Beim _Anmelden Begrüßungsbildschirm anzeigen"
+
+#~ msgid "As_k on logout"
+#~ msgstr "Beim Abmelden _nachfragen"
+
+#~ msgid "_Sessions:"
+#~ msgstr "_Sitzungen:"
+
+#~ msgid "_Startup Command:"
+#~ msgstr "_Startbefehl:"
+
+#~ msgid "There was an unknown activation error."
+#~ msgstr "Es ist ein unbekannter Aktivierungsfehler aufgetreten."
+
+#~ msgid "Initialize session settings"
+#~ msgstr "Sitzungseinstellungen initialisieren"
diff --git a/po/dz.po b/po/dz.po
new file mode 100644
index 0000000..9226a31
--- /dev/null
+++ b/po/dz.po
@@ -0,0 +1,648 @@
+# Dzongkha translation of mate-session
+# Copyright @ 2006 Free Software Foundation, Inc.
+# Mindu Dorji
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session 2-14 dz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-25 04:22+0000\n"
+"PO-Revision-Date: 2008-09-25 12:24+0530\n"
+"Last-Translator: Dawa pemo <[email protected]>\n"
+"Language-Team: DZONGKHA <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2;plural=(n!=1);\n"
+"X-Poedit-Language: Dzongkha\n"
+"X-Poedit-Country: BHUTAN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: ../data/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "ཊི་སི་པི་ མཐུད་ལམ་འབད་བཅུག།"
+
+#: ../data/mate-session.schemas.in.h:2
+msgid "For security reasons, on platforms which have _IceTcpTransNoListen() (XFree86 systems), mate-session does not listen for connections on TCP ports. This option will allow connections from (authorized) remote hosts. mate-session must be restarted for this to take effect."
+msgstr "སྲུང་སྐྱོབ་ཀྱི་རྒྱུ་མཚན་ལུ་བརྟེན་ཏེ་ _IceTcpTransNoListen() (XFree86 systems) ཡོད་པའི་ས་སྒོ་ཚུ་ནང་ ཇི་ནོམ་-ལཱ་ཐུན་གྱིས་ ཊི་སི་པི་འདྲེན་ལམ་གུ་ མཐུད་ནི་ལུ་ཉན་མི་བཏུབ། གདམ་ཁ་འདི་གིས་ ཐག་རིང་གི་ཧོསིཊི་ (གནང་བ་མེདཔ) ཚུ་ལས་ མཐུད་བཅུགཔ་ཨིན། འདི་ལུ་ནུས་པ་འཐོབ་བཅུག་ནི་ལུ་ ཇི་ནོམ་-ལཱ་ཡུན་དེ་ ལོག་འགོ་བཙུགས་དགོ།"
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "ལྕོགས་ཅན་བཟོ་བ་ཅིན་ ཇི་ནོམ་ལཱ་ཡུན་གྱིས་ ལཱ་ཡུན་ཅིག་མཇུག་མ་བསྡུ་བའི་ཧེ་མར་ ལག་ལེན་པ་ལུ་ ནུས་སྤེལ་བྱིནམ་ཨིན།"
+
+#: ../data/mate-session.schemas.in.h:4
+msgid "If enabled, mate-session will save the session automatically. Otherwise, the logout dialog will have an option to save the session."
+msgstr "ལྕོགས་ཅན་བཟོ་བ་ཅིན་ ཇི་ནོམ་ལཱ་ཡུན་གྱིས་ ལཱ་ཡུན་དེ་རང་བཞིན་གྱིས་ སྲུངམ་ཨིན། དེ་མིན་པ་ཅིན་ ཕྱིར་བསྐྱོད་ཌའི་ལོག་དེ་ལུ་ ལཱ་ཡུན་འདི་ བསྲུང་ནིའི་་གདམ་ཁ་ཡོད།"
+
+#: ../data/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "ཕྱིར་བསྐྱོད་ཀྱི་ནུས་སྤེལ།"
+
+#: ../data/mate-session.schemas.in.h:6
+msgid "Preferred Image to use for login splash screen"
+msgstr "ནང་བསྐྱོད་ཀྱི་ སི་པེལེཤ་གསལ་གཞིའི་དོན་ལུ་ ལག་ལེན་འཐབ་ནིའི་ དགའ་གདམ་ཅན་གྱི་གཟུགས་བརྙན།"
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "ལཱ་ཡུན་ཚུ་སྲུངས།"
+
+#: ../data/mate-session.schemas.in.h:8
+msgid "Selected option in the log out dialog"
+msgstr "ཕྱིར་བསྐྱོད་ཌའི་ལོག་ནང་ སེལ་འཐུ་འབད་མི་གདམ་ཁ།"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Show the splash screen"
+msgstr "སི་པེལེཤ་གསལ་གཞི་སྟོན།"
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Show the splash screen when the session starts up"
+msgstr "ལཱ་ཡུན་དེ་འགོ་བཙུགས་སྐབས་ སི་པེལེཤ་གསལ་གཞི་དེ་སྟོན།"
+
+#: ../data/mate-session.schemas.in.h:11
+msgid "This is a relative path value based off the $datadir/pixmaps/ directory. Sub-directories and image names are valid values. Changing this value will effect the next session login."
+msgstr "འདི་$datadir/pixmaps/ སྣོད་ཐོ་ལུ་མ་བརྟེན་པའི་ འབྲེལ་ཡོད་འགྲུལ་ལམ་གྱི་བེ་ལུ་ཅིག་ཨིན། བེ་ལུ་འདི་བསྒྱུར་བཅོས་འབད་བ་ཅིན་ ལཱ་ཡུན་ཤུལ་མམ་ ནང་བསྐྱོད་འབད་ནི་ལུ་ ནུས་པ་འཐོབ་ཨིན།"
+
+#: ../data/mate-session.schemas.in.h:12
+msgid "This is the option that will be selected in the logout dialog, valid values are \"logout\" for logging out, \"shutdown\" for halting the system and \"restart\" for restarting the system."
+msgstr "འདི་ཕྱིར་བསྐྱོད་ཌའི་ལོག་ནང་ སེལ་འཐུ་འབད་ནིའི་ གདམ་ཁ་ཨིན། ནུས་ཅན་བེ་ལུསི་ཚུ་ ཕྱིར་བསྐྱོད་དོན་ལུ་ \"logout\" དང་ མཚམས་འཇོག་དོན་ལུ་\"shutdown\" དེ་ལས་ རིམ་ལུགས་ལོག་འགོ་བཙུགས་ནིའི་དོན་ལུ་\"shutdown\" ཨིན།"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "ཇི་ནོམ་ "
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "ལཱ་ཡུན་འདི་གིས་ ཁྱོད་ ཇི་ནོམ་ནང་ལུ་ ནང་བསྐྱོད་འབདཝ་ཨིན་ "
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "ཁྱོན་རའི་ལཱ་ཡུན་ རིམ་སྒྲིག་འབད།"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "ལཱ་ཡུན་ཚུ།"
+
+#: ../mate-session/gsm-at-startup.c:39
+msgid "Assistive technology support has been requested for this session, but the accessibility registry was not found. Please ensure that the AT-SPI package is installed. Your session has been started without assistive technology support."
+msgstr "ཕན་ཐབས་ཅན་འཕྲུལ་རིག་རྒྱབ་སྐྱོར་འདི་ འ་ནི་ལཱ་ཡུན་གྱི་དོན་ལུ་ ཞུ་བ་འབད་ཡོད་ དེ་འབདཝ་ད་ འཛུལ་སྤྱོད་ཐོ་འགོད་འདི་ འཚོལ་མ་འཐོབ། ཨེ་ཊི་-ཨེསི་པི་ཨའི་ཐུམ་སྒྲིལ་འདི་ གཞི་བཙུགས་མ་འབདཝ་ཨིནམ་སྦེ་ ངེས་གཏན་བཟོ་གནང་། ཁྱོད་ཀྱི་ལཱ་ཡུན་འདི་ ཕན་ཐབས་ཅན་འཕྲུལ་རིག་རྒྱབསྐྱོར་མེད་པར་ འགོ་བཙུགས་ཡོད།"
+
+#: ../mate-session/gsm-client-editor.c:123
+msgid "_Order:"
+msgstr "གོ་རིམ་:(_O)"
+
+#: ../mate-session/gsm-client-editor.c:125
+msgid "The order in which applications are started in the session."
+msgstr "ལཱ་ཡུན་དེ་ནང་ གློག་རིམ་ཚུ་འགོ་བཙུགས་ཡོད་པའི་གོ་རིམ།"
+
+#: ../mate-session/gsm-client-editor.c:133
+msgid "What happens to the application when it exits."
+msgstr "གློག་རིམ་ཕྱིར་ཐོན་འགྱོཝ་ད་ ག་ཅི་འབདཝ་འོང་།"
+
+#: ../mate-session/gsm-client-editor.c:134
+msgid "_Style:"
+msgstr "བཟོ་རྣམ་:(_S)"
+
+#: ../mate-session/gsm-client-list.c:44
+msgid "Inactive"
+msgstr "ཤུགས་མེད།"
+
+#: ../mate-session/gsm-client-list.c:44
+msgid "Waiting to start or already finished."
+msgstr "འགོ་བཙུགས་ནི་ལུ་བསྒུག་བཞིན་པ་ ཡང་ན་ ཧེ་མ་ལས་རྫོགས་པ།།"
+
+#: ../mate-session/gsm-client-list.c:46
+msgid "Starting"
+msgstr "འགོ་བཙུགས་པའི་བསྒང་།"
+
+#: ../mate-session/gsm-client-list.c:46
+msgid "Started but has not yet reported state."
+msgstr "འགོ་བཙུགས་ནུག དེ་འབདཝ་ད་ ད་ཚུན་གནས་ལུགས་སྙན་ཞུ་མ་འབད་བས།"
+
+#: ../mate-session/gsm-client-list.c:48
+msgid "Running"
+msgstr "གཡོག་བཀོལ་དོ།"
+
+#: ../mate-session/gsm-client-list.c:48
+msgid "A normal member of the session."
+msgstr "ལཱ་ཡུན་གྱི་སྤྱིར་བཏང་འཐུས་མི།"
+
+#: ../mate-session/gsm-client-list.c:50
+msgid "Saving"
+msgstr "སྲུང་དོ།"
+
+#: ../mate-session/gsm-client-list.c:50
+msgid "Saving session details."
+msgstr "ལཱ་ཡུན་གྱི་རྒྱས་བཤད་ཚུ་སྲུང་དོ།"
+
+#. FIXME find better icon
+#: ../mate-session/gsm-client-list.c:53
+msgid "Unknown"
+msgstr "མ་ཤེསཔ།"
+
+#: ../mate-session/gsm-client-list.c:53
+msgid "State not reported within timeout."
+msgstr "ངལ་མཚམས་ནང་འཁོད་ གནས་ལུགས་སྙན་ཞུ་མ་འབདཝ།"
+
+#. FIXME find icon
+#: ../mate-session/gsm-client-list.c:60
+msgid "Normal"
+msgstr "སྤྱིར་བཏང་།"
+
+#: ../mate-session/gsm-client-list.c:60
+msgid "Unaffected by logouts but can die."
+msgstr "ཕྱིར་བསྐྱོད་ཀྱིས་གནོད་སྐྱོན་མ་བྱུང་། དེ་འབདཝ་ད་ ཤི་ནིའི་ཉེན་ཁ་ཡོད།"
+
+#: ../mate-session/gsm-client-list.c:62
+msgid "Restart"
+msgstr "ལོག་འགོ་བཙུགས།"
+
+#: ../mate-session/gsm-client-list.c:62
+msgid "Never allowed to die."
+msgstr "ནམ་ཡང་ཤི་མ་བཅུག"
+
+#: ../mate-session/gsm-client-list.c:64
+msgid "Trash"
+msgstr "ཕྱགས་ཧོད།"
+
+#: ../mate-session/gsm-client-list.c:64
+msgid "Discarded on logout and can die."
+msgstr "ཕྱིར་བསྐྱོད་སྐབས་ བཏོན་བཀོག་བ་ཅིན་ཤི་འོང་།"
+
+#: ../mate-session/gsm-client-list.c:66
+msgid "Settings"
+msgstr "གཞི་སྒྲིག་ཚུ།"
+
+#: ../mate-session/gsm-client-list.c:66
+msgid "Always started on every login."
+msgstr "ནང་བསྐྱོད་འབད་རེ་འབད་ཚེ་ ཨ་རྟག་རང་འགོ་བཙུགས།"
+
+#: ../mate-session/gsm-client-list.c:190
+msgid "Order"
+msgstr "གོ་རིམ།"
+
+#: ../mate-session/gsm-client-list.c:197
+msgid "Style"
+msgstr "བཟོ་རྣམ།"
+
+#: ../mate-session/gsm-client-list.c:204
+msgid "State"
+msgstr "གནས་ལུགས།"
+
+#: ../mate-session/gsm-client-list.c:211
+#: ../mate-session/session-properties-capplet.c:284
+msgid "Program"
+msgstr "ལས་རིམ།"
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: ../mate-session/gsm-gsd.c:47
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work correctly."
+msgstr ""
+"ཇི་ནོམ་གཞི་སྒྲིག་ཌེ་མཱོན་ འགོ་བཙུགསཔ་ད་ འཛོལ་བ་ཅིག་བྱུང་ནུག \n"
+"\n"
+"བརྗོད་དོན་དང་ སྒྲ་སྐད་ ཡང་ན་ རྒྱབ་གཞིའི་གཞི་སྒྲིག་ཚུ་བཟུམ་ ལ་ལོ་ཅིག་ ངེས་བདེན་སྦེ་ ལཱ་འབད་མི་བཏུབ་འོང་།"
+
+#: ../mate-session/gsm-gsd.c:59
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"འཛོལ་བ་མཐའ་མའི་འཕྲིན་དོན་དེ་ཨིན་པས: \n"
+"\n"
+
+#: ../mate-session/gsm-gsd.c:64
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"ཇི་ནོམ་གྱིས་ ཤུལ་ལས་ཁྱོད་ཀྱིས་ ནང་བསྐྱོད་འབདཝ་ད་ ད་རུང་ཡང་ གཞི་སྒྲིག་ཌེ་མཱོན་དེ་ ལོག་འགོ་བཙུགས་ནི་ལུ་ འབད་རྩོལ་བསྐྱེད་འོང་།"
+
+#: ../mate-session/gsm-gsd.c:162
+msgid "The Settings Daemon restarted too many times."
+msgstr "གཞི་སྒྲིག་ཌེ་མཱོན་དེ་ ལན་ཐེངས་མང་རབས་ཅིག་ ལོག་འགོ་བཙུགས་ནུག"
+
+#. Name is mandatory and might not be set by the caller
+#: ../mate-session/gsm-keyfile.c:43
+msgid "No Name"
+msgstr "མིང་མིན་འདུག།"
+
+#: ../mate-session/mate-session-remove.c:50
+msgid "List registered clients, then exit"
+msgstr "ཐོ་བཀོད་འབད་ཡོད་མི་ཞབས་ཏོག་སྤྱོད་མི་ཚུ་ ཐོ་བཀོད་འབད་ དེ་ལས་ཕྱིར་ཐོན་འབད་"
+
+#: ../mate-session/mate-session-remove.c:52
+msgid "PROGRAM..."
+msgstr "ལས་རིམ་..."
+
+#: ../mate-session/mate-session-remove.c:176
+#, c-format
+msgid "You must specify at least one program to remove. You can list the programs with --list.\n"
+msgstr "ཁྱོད་ཀྱིས་རྩ་བསྐྲད་གཏང་ནིའི་དོན་ལས་ ཉུང་མཐའ་ལས་རིམ་གཅིག་ གསལ་བཀོད་འབད་དགོ ཁྱོད་ཀྱིས་ལས་རིམ་ཚུ་ --ཐོ་ཡིག་དང་གཅིག་ཁར་ཐོ་བཀོད་འབད་ཚུགས།\n"
+
+#: ../mate-session/mate-session-remove.c:183
+#, c-format
+msgid "Error: could not connect to the session manager\n"
+msgstr "འཛོལ་བ་:ལཱ་ཡུན་འཛིན་སྐྱོང་པ་འདི་ལུ་མཐུད་མ་ཚུགས་\n"
+
+#: ../mate-session/mate-session-remove.c:197
+#, c-format
+msgid "Currently registered clients:\n"
+msgstr "ད་ལྟོ་ཐོ་བཀོད་འབད་ཡོད་མི་ཞབས་ཏོག་སྤྱོད་མི་ཚུ་:\n"
+
+#: ../mate-session/mate-session-remove.c:207
+#, c-format
+msgid "Couldn't find program %s in session\n"
+msgstr "ལཱ་ཡུན་ནང་ ལས་རིམ་ %s འཚོལ་མ་འཐོབ་\n"
+
+#. At least try to tell the user something.
+#: ../mate-session/ice.c:355
+#, c-format
+msgid "The MATE session manager cannot start properly. Please report this as a MATE bug. Please include this ICE failure message in the bug report: '%s'. Meanwhile you could try logging in using the failsafe session."
+msgstr "ཇི་ནོམ་ལཱ་ཡུན་འཛིན་སྐྱོང་པ་འདི་ ཚུལ་ལྡན་སྦེ་འགོ་བཙུགས་མི་ཚུགས། འ་ནི་འདི་ ཇི་ནོམ་རྐྱེན་ཅིག་སྦེ་སྙན་ཞུ་འབད་གནང་། '%s' : རྐྱེན་གྱི་སྙན་ཞུ་འདི་ནང་ འ་ནི་ཨའི་སི་ཨི་འཐུས་ཤོར་འཕྲིན་དོན་འདི་ གྲངས་སུ་བཙུགས་གནང། དེ་སྐབས་ ཁྱོད་ཀྱིས་འཐུས་ཤོར་ཉེན་སྲུང་ལག་ལེན་འཐབ་ཐོག་ ནང་བསྐྱོད་འབད་ནི་འབད་རྩོར་བསྐྱེད།"
+
+#: ../mate-session/ice.c:514
+#, c-format
+msgid "The MATE session manager was unable to lock the file '%s'. Please report this as a MATE bug. Sometimes this error may occur if the file's directory is unwritable, you could try logging in via the failsafe session and ensuring that it is."
+msgstr "ཇི་ནོམ་ལཱ་ཡུན་འཛིན་སྐྱོང་པ་འདི་གིས་ ཡིག་སྣོད་ '%s' ལྡེ་མིག་རྐྱབས་མ་ཚུགས། འ་ནི་འདི་ཇི་ནོམ་རྐྱེན་སྦེ་སྙན་ཞུ་འབད་གནང་། རེ་ཅིག་སྐབས་འ་ནི་འཛོལ་བ་འདི་ ཡིག་སྣོད་ཀྱི་སྣོད་ཐོ་འདི་འབྲི་མ་བཏུབ་ཨིན་པའི་སྐབས་ འབྱུང་འོང་ ཁྱོད་ཀྱིས་ངེས་གཏན་བཟོ་ཞིནམ་དང་ འཐུས་ཤོར་ཉེན་སྲུང་ལཱ་ཡུན་འདི་བརྒྱུད་དེ་ ནང་བསྐྱོད་འབད་ནི་འབད་རྩོལ་བསྐྱེད་བཏུབ།"
+
+#: ../mate-session/ice.c:541
+#, c-format
+msgid "The MATE session manager was unable to read the file: '%s'. If this file exists it must be readable by you for MATE to work properly. Try logging in with the failsafe session and removing this file."
+msgstr "ཇི་ནོམ་ལཱ་ཡུན་འཛིན་སྐྱོང་པ་འདི་གིས་ ཡིག་སྣོད་ལྷག་མ་ཚུགས་: '%s' འ་ནི་ཡིག་སྣོད་འདི་ཡོདཔ་ཨིན་པ་ཅིན་ ཚུལ་ལྡན་སྦེ་ལཱ་འབད་ནིའི་དོན་ལས་ ཇི་ནོམ་གྱི་དོན་ལུ་ ཁྱོད་ཀྱིས་ལྷག་བཏུབ་དགོ འ་ནི་ཡིག་སྣོད་རྩ་བསྐྲད་གཏང་ཐོག་དང་ འཐུས་ཤོར་ཉེན་སྲུང་གིས་སྦེ་ ནང་བསྐྱོད་འབད་ནི་འབད་རྩོལ་བསྐྱེད།"
+
+#: ../mate-session/ice.c:586
+#, c-format
+msgid "Could not write to file '%s'. This file must be writable in order for MATE to function properly. Try logging in with the failsafe session and removing this file. Also make sure that the file's directory is writable."
+msgstr "ཡིག་སྣོད་ '%s' ལུ་འབྲི་མ་ཚུགས། འ་ནི་ཡིག་སྣོད་འདི་ ཇི་ནོམ་གྱི་དོན་ལུ་ཚུལ་ལྡན་ལཱ་འབད་ནིའི་དོན་ལས་ འབྲི་བཏུབ་དགོ འ་ནི་ཡིག་སྣོད་རྩ་བསྐྲད་གཏང་ཐོག་དང་ འཐུས་ཤོར་ཉེན་སྲུང་ལཱ་ཡུན་གྱིས་སྦེ་ ནང་བསྐྱོད་འབད་ནི་འབད་རྩོལ་བསྐྱོད། ཡིག་སྣོད་ཀྱི་སྣོད་ཐོ་འདི་ འབྲི་བཏུབ་ཨིནམ་ཡང་ངེས་གཏན་བཟོ།"
+
+#: ../mate-session/logout.c:392
+msgid "Are you sure you want to log out?"
+msgstr "ཁྱོད་ཀྱིས་ངེས་པར་དུ་ ཕྱིར་བསྐྱོད་འབད་ནི་ཨིན་ན།"
+
+#: ../mate-session/logout.c:409
+msgid "Remember running applications"
+msgstr "གཡོག་བཀོལ་བའི་བསྒང་གི་འཇུག་སྤྱོད་ཚུ་སེམས་ཁར་བཞག"
+
+#: ../mate-session/logout.c:432
+msgid "Action"
+msgstr "བྱ་བ།"
+
+#: ../mate-session/logout.c:449
+msgid "_Log out"
+msgstr "ཕྱིར་བསྐྱོད།(_L)"
+
+#: ../mate-session/logout.c:456
+msgid "Sh_ut down"
+msgstr "སྒོ་བསྡམས།(_u)"
+
+#: ../mate-session/logout.c:464
+msgid "_Restart the computer"
+msgstr "གློག་རིག་ལོག་འགོ་བཙུགས།(_R)"
+
+#: ../mate-session/main.c:86
+msgid "Specify a session name to load"
+msgstr "མངོན་གསལ་འབད་ནིའི་ ལཱ་ཡུན་གྱི་མིང་ཅིག་ གསལ་བཀོད་འབད།"
+
+#: ../mate-session/main.c:86
+#: ../mate-session/mate-session-save.c:48
+msgid "NAME"
+msgstr "མིང་།"
+
+#: ../mate-session/main.c:87
+msgid "Only read saved sessions from the default.session file"
+msgstr "སྔོན་སྒྲིག་ལཱ་ཡུན་ཡིག་སྣོད་ནང་ལས་ སྲུང་བཞག་འབད་མི་ ལཱ་ཡུན་རྐྱངམ་གཅིག་ལྷག"
+
+#: ../mate-session/main.c:88
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr "ཡོངས་འབྲེལ་ཡན་ལག་ཚུ་གིས་ ཐོ་བཀོད་འབད་ནིའི་དོན་ལུ་ རྫོགས་ཡོད་པའི་དུས་ཡུན་ མི་ལི་སྐར་ཆ། (༠=རྟག་པར)"
+
+#: ../mate-session/main.c:88
+#: ../mate-session/main.c:89
+#: ../mate-session/main.c:90
+msgid "DELAY"
+msgstr "ཕྱིར་འགྱངས།"
+
+#: ../mate-session/main.c:89
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr "ཡོངས་འབྲེལ་ཡན་ལག་ཚུ་གིས་ ངོས་ལན་བྱིན་ནིའི་དོན་ལུ་ རྫོགས་ཡོད་པའི་དུས་ཡུན་ མི་ལི་སྐར་ཆ། (༠=རྟག་པར)"
+
+#: ../mate-session/main.c:90
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr "ཡོངས་འབྲེལ་ཡན་ལག་ཚུ་ ཤི་བཅུག་ནིའི་དོན་ལུ་ རྫོགས་ཡོད་པའི་དུས་ཡུན་ མི་ལི་སྐར་ཆ། (༠=རྟག་པར)"
+
+#: ../mate-session/main.c:166
+msgid "This session is running as a privileged user"
+msgstr "ལཱ་ཡུན་འདི་ཁེ་དབང་ལག་ལེན་པ་སྦེ་འཇུག་སྤྱོད་འབད་དོ"
+
+#: ../mate-session/main.c:168
+msgid "Running a session as a privileged user should be avoided for security reasons. If possible, you should log in as a normal user."
+msgstr "ལཱ་ཡུན་ཁེ་དབང་ལག་ལེན་པ་སྦེ་འཇུག་སྤྱོད་སྲུང་སྐྱོབ་ཀྱི་རྒྱུ་མཚན་གི་དོན་ལུ་ཟུར་། གལ་སྲིད་ཚགས་པ་ཅིན་ ཁྱོད་སྤྱིར་གཏང་ལག་ལེན་སྦེ་ནང་བསྐྱོད་འབད།"
+
+#: ../mate-session/main.c:172
+msgid "_Continue"
+msgstr "འཕྲོ་མཐུད(_C)"
+
+#: ../mate-session/main.c:256
+#, c-format
+msgid ""
+"The session might encounter issues if the computer clock is not properly configured. Please consider adjusting it.\n"
+"\n"
+"Current date is <b>%s</b>."
+msgstr ""
+"ལཱ་ཡུན་དེ་གནད་དོན་ངོ་ཕྲད་འོང་གལ་སྲིད་གློག་རིག་ཆེ་འཁོར་འདི་ལེགས་ཤོམ་སྦེ་རིམ་སྒྲིག་མ་འབད་བ་ཅིན འདི་བདེ་སྒྲིག་ཆ་འཇོག་འབད་གནང\n"
+"\n"
+"ད་ལྟོའི་ཚེས་གྲངས་འདི <b>%s</b>."
+
+#: ../mate-session/main.c:375
+#, c-format
+msgid "Failed to launch time configuration tool: %s"
+msgstr "ལག་ཆས་རིམ་སྒྲིག་ གསར་བཙུགས་འབད་བའི་སྐབས་འཐུས་ཤོར་བྱུང་ཡོདཔ: %s"
+
+#: ../mate-session/main.c:406
+msgid "The computer clock appears to be wrong"
+msgstr "གློག་རིག་ཆེ་འཁོར་འཛོལ་བ་འབྱུང་ནི་བཟུམ་འདུག།"
+
+#: ../mate-session/main.c:413
+msgid "_Ignore"
+msgstr "སྣང་མེད་སྦེ་བཞག(_I)"
+
+#: ../mate-session/main.c:414
+msgid "_Adjust the Clock"
+msgstr "ཆེ་འཁོར་བདེ་སྒྲིག་འབད(_A)"
+
+#: ../mate-session/main.c:551
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"%sགི་དོན་ལུ་ ཨིན་ཊར་ནེཊི་ཁ་བྱང་ བལྟ་མ་ཚུགས། \n"
+"འདི་གིས་ཇི་ནོམ་ ངེས་བདེན་སྦེ་ ལཱ་འབད་ནི་ལུ་ བཀག་ཐབས་འབདཝ་ཨིན། \n"
+"ཡིག་སྣོད་དང་ ཧོསིཊི་ལ་སོགས་པ་ལུ་%sཁ་སྐོང་བརྐྱབས་པའི་ཐོག་ལས་ \n"
+" དཀའ་ངལ་འདི་སེལ་ཚུགསཔ་འོང་།"
+
+#: ../mate-session/main.c:558
+msgid "Log in Anyway"
+msgstr "གང་རུང་སྦེ་ ནང་བསྐྱོད་འབད།"
+
+#: ../mate-session/main.c:559
+msgid "Try Again"
+msgstr "ལོག་སྟེ་འབད་རྩོལ་བསྐྱེད།"
+
+#: ../mate-session/main.c:693
+msgid "- Manage the MATE session"
+msgstr "- ཇི་ནོམ་ལཱ་ཡུན་ འཛིན་སྐྱོང་འཐབ།"
+
+#: ../mate-session/manager.c:513
+msgid "Wait abandoned due to conflict."
+msgstr "འཐབ་འཁྲུག་ལུ་བརྟེན་ཏེ་ བསྒུག་སྡོད་ནི་ འདོར་བཞག་ནུག"
+
+#: ../mate-session/manager.c:1021
+#, c-format
+msgid "No response to the %s command."
+msgstr "བརྡ་བཀོད་%s ལུ་ ལན་གསལ་མིན་འདུག"
+
+#: ../mate-session/manager.c:1022
+msgid "The program may be slow, stopped or broken."
+msgstr "ལས་རིམ་དེ་ ལྷོད་ཆ་ཞུགས་པའམ་ མཚམས་འཇོག་སོང་བ་ ཡང་ན་ རྒྱུན་ཆད་སོངཔ་འོང་ནི་མས།"
+
+#: ../mate-session/manager.c:1023
+msgid "You may wait for it to respond or remove it."
+msgstr "ཁྱོད་ཀྱིས་དེ་གི་ལན་གསལ་གྱི་དོན་ལུ་ བསྒུག་དགོཔ་འོང་། ཡང་ན་ རྩ་བསྐྲད་གཏང་།"
+
+#: ../mate-session/manager.c:1749
+msgid "Restart abandoned due to failures."
+msgstr "འཐུས་ཤོར་ལུ་བརྟེན་ཏེ་ ལོག་འགོ་བཙུགས་ནི་ འདོར་བཞག་ནུག"
+
+#: ../mate-session/manager.c:1945
+msgid "A session shutdown is in progress."
+msgstr "ལཱ་ཡུན་ཅིག་ སྒོ་བསྡམ་པའི་བསྒང་ཡོད།"
+
+#: ../mate-session/mate-session-save.c:48
+msgid "Set the current session name"
+msgstr "ད་ལྟོའི་ལཱ་ཡུན་དེ་གི་མིང་ གཞི་སྒྲིག་འབད།"
+
+#: ../mate-session/mate-session-save.c:49
+msgid "Kill session"
+msgstr "ལཱ་ཡུན་བསད།"
+
+#: ../mate-session/mate-session-save.c:50
+msgid "Use dialog boxes for errors"
+msgstr "འཛོལ་བ་ཚུ་གི་དོན་ལུ་ ཌའི་ལོག་སྒྲོམ་ཚུ་ ལག་ལེན་འཐབ་"
+
+#: ../mate-session/mate-session-save.c:51
+msgid "Do not require confirmation"
+msgstr "ངེས་དཔྱད་དགོས་མཁོ་མེད་"
+
+#: ../mate-session/mate-session-save.c:149
+#: ../mate-session/mate-session-save.c:187
+msgid "Could not connect to the session manager"
+msgstr "ལཱ་ཡུན་འཛིན་སྐྱོང་པ་དང་གཅིག་ཁར་ མཐུད་མ་ཚུགས།"
+
+#: ../mate-session/mate-session-save.c:172
+msgid "- Save the current session"
+msgstr "- ད་ལྟོའི་ལཱ་ཡུན་དེ་སྲུངས།"
+
+#: ../mate-session/session-properties-capplet.c:154
+msgid "Save changes to the current session before closing?"
+msgstr "ཁ་མ་བསྡམ་པའི་ཧེ་མ་ ད་ལྟོའི་ལཱ་ཡུན་དེ་ལུ་ བསྒྱུར་བཅོས་ཚུ་ སྲུང་བཞག་འབད?"
+
+#: ../mate-session/session-properties-capplet.c:156
+msgid "If you don't save, changes will be discarded."
+msgstr "ཁྱོད་ཀྱིས་སྲུང་བཞག་མ་འབད་བ་ཅིན་ བསྒྱུར་བཅོས་ཚུ་བཏོན་བཀོག་འོང་།"
+
+#: ../mate-session/session-properties-capplet.c:159
+msgid "_Close without Saving"
+msgstr "སྲུང་བཞག་མ་འབད་བར་ཁ་བསྡམ་(_C)"
+
+#: ../mate-session/session-properties-capplet.c:224
+msgid "Sessions Preferences"
+msgstr "ལཱ་ཡུན་གྱི་ དགའ་གདམ་ཚུ་ "
+
+#. non-session managed startup programs
+#: ../mate-session/session-properties-capplet.c:250
+msgid "Additional startup _programs:"
+msgstr "འགོ་བཙུགས་སྐབས་ཀྱི་ལས་རིམ་ཁ་སྐོང་།(_p)"
+
+#: ../mate-session/session-properties-capplet.c:275
+msgid "Enabled"
+msgstr "ལྕོགས་ཅན་བཟོ་ཡོདཔ་"
+
+#: ../mate-session/session-properties-capplet.c:319
+msgid "Startup Programs"
+msgstr "འགོ་བཙུགས་སྐབས་ཀྱི་ལས་རིམ་ཚུ།"
+
+#: ../mate-session/session-properties-capplet.c:326
+msgid "Current Session"
+msgstr "ད་ལྟོའི་ལཱ་ཡུན།"
+
+#. Autosave
+#: ../mate-session/session-properties-capplet.c:337
+msgid "_Automatically remember running applications when logging out"
+msgstr "ཕྱིར་བསྐྱོད་འབད་བའི་སྐབས་ རང་བཞིན་གྱི་གཡོག་བཀོལ་བའི་སྒང་གི་འཇུག་སྤྱོད་སེམ་ཁར་བཞག(_A)"
+
+#: ../mate-session/session-properties-capplet.c:353
+msgid "_Remember Currently Running Applications"
+msgstr "ད་ལྟོ་ གཡོག་བཀོལ་བའི་བསྒང་ཡོད་པའི་ འཇུག་སྤྱོད་ཚུ་སེམས་ཁར་བཞག་ "
+
+#: ../mate-session/session-properties-capplet.c:361
+msgid "Session Options"
+msgstr "ལཱ་ཡུན་གྱི་གདམ་ཁ་ཚུ།"
+
+#: ../mate-session/session-properties-capplet.c:457
+msgid "Your session has been saved."
+msgstr "ཁྱོད་ཀྱི་ལཱ་ཡུན་དེ་ སྲུང་བཞག་འབད་ཡོད།"
+
+#: ../mate-session/session-properties-capplet.c:500
+#, c-format
+msgid "could not connect to the session manager\n"
+msgstr "ལཱ་ཡུན་འཛིན་སྐྱོང་པ་འདི་ལུ་ མཐུད་མ་ཚུགས་\n"
+
+#: ../mate-session/session-properties-capplet.c:506
+#, c-format
+msgid "session manager does not support MATE extensions\n"
+msgstr "ལཱ་ཡུན་འཛིན་སྐྱོང་པ་གིས་ ཇི་ནོམ་རྒྱ་བསྐྱེད་རྒྱབ་སྐྱོར་མི་འབད་\n"
+
+#: ../mate-session/session-properties.c:51
+msgid "Remove the currently selected client from the session."
+msgstr "ད་ལྟོ་སེལ་འཐུ་འབད་ཡོད་མི་ ཡོངས་འབྲེལ་ཡན་ལག་དེ་ ལཱ་ཡུན་ནང་ལས་ རྩ་བསྐྲད་གཏང་།"
+
+#: ../mate-session/session-properties.c:57
+msgid "Apply changes to the current session"
+msgstr "ད་ལྟོའི་ལཱ་ཡུན་དེ་ལུ་ བསྒྱུར་བཅོས་ཚུ་ ལག་ལེན་འཐབ།"
+
+#: ../mate-session/session-properties.c:63
+msgid "The list of programs in the session."
+msgstr "ལཱ་ཡུན་ནང་གི་ ལས་རིམ་ཚུ་གི་ཐོ་ཡིག"
+
+#: ../mate-session/session-properties.c:89
+msgid "Currently running _programs:"
+msgstr "ད་ལྟོ་གཡོག་བཀོལ་བའི་བསྒང་ཡོད་མི་ ལས་རིམ་ཚུ་:(_p)"
+
+#: ../mate-session/splash-widget.c:44
+msgid "Sawfish Window Manager"
+msgstr "སཱ་ཕིཤ་ སྒོ་སྒྲིག་འཛིན་སྐྱོང་པ།"
+
+#: ../mate-session/splash-widget.c:45
+msgid "Marco Window Manager"
+msgstr "མེ་ཊ་སི་ཊི་ སྒོ་སྒྲིག་འཛིན་སྐྱོང་པ།"
+
+#: ../mate-session/splash-widget.c:46
+msgid "Window Manager"
+msgstr "སྒོ་སྒྲིག་འཛིན་སྐྱོང་པ།"
+
+#: ../mate-session/splash-widget.c:47
+msgid "The Panel"
+msgstr "པེ་ནཱལ།"
+
+#: ../mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "ནའུ་ཊི་ལཱསི།"
+
+#: ../mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr "ཌེཀསི་ཊོཔ་གི་གཞི་སྒྲིག་ཚུ།"
+
+#: ../mate-session/startup-programs.c:348
+msgid "No description"
+msgstr "འགྲེལ་བཤད་མེད"
+
+#: ../mate-session/startup-programs.c:409
+msgid "Select Command"
+msgstr "བརྡ་བཀོད་ སེལ་འཐུ་འབད་ "
+
+#: ../mate-session/startup-programs.c:471
+msgid "_Name:"
+msgstr "མིང་:(_N)"
+
+#: ../mate-session/startup-programs.c:486
+msgid "Co_mmand:"
+msgstr "བརྡ་བཀོད་:(_M)"
+
+#: ../mate-session/startup-programs.c:498
+msgid "_Browse..."
+msgstr "བརྡ་འཚོལ(_B)"
+
+#: ../mate-session/startup-programs.c:510
+msgid "Comm_ent:"
+msgstr "བས་བཀོད་:(_E)"
+
+#: ../mate-session/startup-programs.c:538
+msgid "The name of the startup program cannot be empty"
+msgstr "འགོ་བཙུགས་ལས་རིམ་འདི་གི་མིང་ སྟོངམ་སྦེ་མི་བཏུབ་"
+
+#: ../mate-session/startup-programs.c:540
+msgid "The startup command cannot be empty"
+msgstr "འགོ་བཙུགས་སྐབས་ཀྱི་བརྡ་བཀོད་དེ་ སྟོངམ་བཏོན་མི་ཚུགས་པས།"
+
+#: ../mate-session/startup-programs.c:546
+msgid "The startup command is not valid"
+msgstr "འགོ་བཙུགས་བརྡ་བཀོད་དེ་ ནུས་ལྡན་མེན་པས་"
+
+#: ../mate-session/startup-programs.c:603
+msgid "Add Startup Program"
+msgstr "འགོ་བཙུགས་སྐབས་ཀྱི་ལས་རིམ་ ཁ་སྐོང་རྐྱབས།"
+
+#: ../mate-session/startup-programs.c:647
+msgid "Edit Startup Program"
+msgstr "འགོ་བཙུགས་སྐབས་ཀྱི་ལས་རིམ་ ཞུན་དག་རྐྱབས།"
+
+#~ msgid "New Startup Program"
+#~ msgstr "འགོ་བཙུགས་ལས་རིམ་གསརཔ་"
+#~ msgid "_Save current setup"
+#~ msgstr "ད་ལྟོའི་གཞི་སྒྲིག་ཚུ་སྲུངས།(_S)"
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "ལཱ་ཡུན་ནང་གི་བསྒྱུར་བཅོས་ཙུ་ རང་བཞིན་གྱིས་ སྲུང་བཞག་འབད།(_g)"
+#~ msgid "Save the current session"
+#~ msgstr "ད་ལྟོའི་ལཱ་ཡུན་དེ་སྲུངས་"
+#~ msgid "The session name cannot be empty"
+#~ msgstr "ལཱ་ཡུན་མིང་དེ་ སྟོངམ་བཏོན་མི་ཚུགས།"
+#~ msgid "The session name already exists"
+#~ msgstr "ལཱ་ཡུན་མིང་དེ་ ཧེ་མ་ལས་རང་འདུག"
+#~ msgid "Add a new session"
+#~ msgstr "ལཱ་ཡུན་གསརཔ་ཅིག་ ཁ་སྐོང་རྐྱབས།"
+#~ msgid "Edit session name"
+#~ msgstr "ལཱ་ཡུན་མིང་ ཞུན་དག་རྐྱབས།"
+#~ msgid "Disable"
+#~ msgstr "ལྕོགས་མིན་བཟོ།"
+#~ msgid "_Edit"
+#~ msgstr "ཞུན་དག(_E)"
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "བསྒྱུར་བཅོས་ལ་ལོ་ཅིག་ སྲུང་བཞག་མ་འབད་བས།\n"
+#~ "ཕྱིར་འཐོན་འབད་རུང་བཏུབ་ག?"
+#~ msgid "Show splash screen on _login"
+#~ msgstr "ནང་བསྐྱོད་སྐབས་ལུ་ སི་པེལེཤ་གསལ་གཞི་སྟོན།(_l)"
+#~ msgid "As_k on logout"
+#~ msgstr "ཕྱིར་བསྐྱོད་སྐབས་ལུ་དྲིས།(_k)"
+#~ msgid "_Sessions:"
+#~ msgstr "ལཱ་ཡུན་ཚུ་:(_S)"
+#~ msgid "_Startup Command:"
+#~ msgstr "འགོ་བཙུགས་སྐབས་ཀྱི་བརྡ་བཀོད།(_S)"
+#~ msgid "There was an unknown activation error."
+#~ msgstr "ཤུགས་ལྡན་བཟོ་ནི་ལུ་ མ་ཤེས་པའི་འཛོལ་བ་ཅིག་བྱུང་ནུག"
+#~ msgid "Initialize session settings"
+#~ msgstr "ལཱ་ཡུན་གྱི་གཞི་སྒྲིག་ཚུ་ འགོ་འབྱེད་འབད།"
+#~ msgid "Session Manager Proxy"
+#~ msgstr "ལཱ་ཡུན་འཛིན་སྐྱོང་པའི་ པོརོག་སི།"
+
diff --git a/po/el.po b/po/el.po
new file mode 100644
index 0000000..50546e1
--- /dev/null
+++ b/po/el.po
@@ -0,0 +1,579 @@
+# Greek translation of mate-session
+# Copyright (C) 1999 ~ 2009 Free Software Foundation, Inc.
+#
+# Comment: Most of the work done by Spiros (around 600 messages).
+# Comment: Simos/Sarantis did 12%.
+# Comment: Simos/Sarantis did review.
+# Comment: Simos did 10 new/unfuzzy 30.
+# Comment: Simos did 3 new/unfuzzy 1.
+# Comment: Simos did 2 new/unfuzzy 8.
+# Comment: Simos did 6 new/unfuzzy 8.
+# Comment: Simos did 2 new/unfuzzy 5.
+# Split from mate-core as mate-session.
+# kostas: 10Dec2002, updated translation for Mate 2.1x
+# kostas: 26Jan2003, one more update.
+# kostas:03Aug2003, updated translation for Mate2.4
+# nikos: 06Sep2003, review
+# kostas:12Nov2003.fixes
+#
+# simos: 874 messages, 18Feb2001, (sgpbea).
+# simos: 897 messages, 01Mar2001, (regmtsgpbea).
+# simos: 959 messages, 04Jun2001, (micumple).
+# simos: 959 messages, 06Jun2001, (fixed minor typo).
+# simos: 897 messages, 28Nov2001, (feeling good to translate HEAD).
+# simos: 112 messages, 20Apr2002, complete translation.
+# simos: 96 messages, 19Aug2992, compelte translation.
+# Spiros Papadimitriou <[email protected]>, 1999.
+# Simos Xenitellis <[email protected]>, 1999, 2000, 2001, 2002,.
+# Sarantis Paskalis <[email protected]>, 2000.
+# Kostas Papadimas <[email protected]>, 2003.
+# Nikos Charonitakis <[email protected]>, 2003.
+# Kostas Papadimas <[email protected]>, 2003, 2005, 2006, 2008.
+# Jennie Petoumenou <[email protected]>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: el\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-04 18:41+0300\n"
+"PO-Revision-Date: 2010-09-04 18:42+0200\n"
+"Last-Translator: Kostas Papadimas <[email protected]>\n"
+"Language-Team: Greek <[email protected]>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Επιλογή εντολής"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Προσθήκη προγραμμάτων εκκίνησης"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Επεξεργασία προγραμμάτων εκκίνησης"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Η εντολή εκκίνησης δε μπορεί να είναι κενή"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Η εντολή εκκίνησης δεν είναι έγκυρη"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Ενεργό"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Εικονίδιο"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Πρόγραμμα"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Προτιμήσεις προγραμμάτων εκκίνησης "
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Χωρίς όνομα"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Χωρίς περιγραφή"
+
+#: ../capplet/main.c:37
+#: ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Η έκδοση αυτής της εφαρμογής"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Δεν είναι δυνατή η προβολή του αρχείου βοήθειας"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Αυτή η συνεδρία σας συνδέει στο MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Προεπιλεγμένη συνεδρία"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Διαχειριστής αρχείων"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "Αν ενεργοποιηθεί, η συνεδρία του mate θα ειδοποιεί το χρήστη πριν το τέλος της συνεδρίας."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Αν ενεργοποιηθεί, το mate-session θα αποθηκεύει αυτόματα τη συνεδρία."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Λίστα με εφαρμογές που είναι μέρος της προεπιλεγμένης συνεδρίας."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid "List of components that are required as part of the session. (Each element names a key under \"/desktop/mate/session/required_components\"). The Startup Applications preferences tool will not normally allow users to remove a required component from the session, and the session manager will automatically add the required components back to the session at login time if they do get removed."
+msgstr "Μια λίστα με στοιχεία που είναι απαραίτητα μέρη της συνεδρίας. (Κάθε στοιχείο ονομάζει ένα κλειδί στο \"/desktop/mate/session/required_components\"). Οι Προτιμήσεις προγραμμάτων εκκίνησης κανονικά δεν επιτρέπουν στους χρήστες να αφαιρέσουν αυτά τα στοιχεία. Αν κάποια απαραίτητα στοιχεία αφαιρεθούν, ο διαχειριστής συνεδρίας θα τα προσθέσει ξανά κατά την επόμενη είσοδο."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Ειδοποίηση αποσύνδεσης"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Πίνακας εφαρμογών"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Απαιτούμενα στοιχεία συνεδρίας"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Αποθήκευση συνεδριών"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "The file manager provides the desktop icons and allows you to interact with your saved files."
+msgstr "Ο διαχειριστής αρχείων παρέχει τα εικονίδια της επιφάνειας εργασίας σας και σας επιτρέπει να διαχειρίζεστε τα αποθηκευμένα σας αρχεία."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "The number of minutes of inactivity before the session is considered idle."
+msgstr "Ο αριθμός των λεπτών αδράνειας μέχρι να θεωρηθεί η συνεδρία αδρανής."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "The panel provides the bar at the top or bottom of the screen containing menus, the window list, status icons, the clock, etc."
+msgstr "Ο πίνακας εφαρμογών παρέχει την μπάρα στο πάνω ή το κάτω μέρος της οθόνης που περιέχει τα μενού, τη λίστα παραθύρων, τα εικονίδια κατάστασης, το ρολόι, κτλ."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid "The window manager is the program that draws the title bar and borders around windows, and allows you to move and resize windows."
+msgstr "Ο διαχειριστής παραθύρων είναι το πρόγραμμα εκείνο που σχεδιάζει την γραμμή τίτλων και τα περιγράμματα γύρω από τα παράθυρα, και σας επιτρέπει να μετακινείτε και να αλλάζετε το μέγεθος των παραθύρων."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Χρόνος μέχρι να θεωρηθεί η συνεδρία αδρανής"
+
+#: ../data/mate-session.schemas.in.in.h:16
+#: ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Διαχειριστής παραθύρων"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Μερικά προγράμματα εκτελούνται ακόμα:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2
+#: ../mate-session/gsm-inhibit-dialog.c:667
+msgid "Waiting for the program to finish. Interrupting the program may cause you to lose work."
+msgstr "Αναμονή τερματισμού του προγράμματος. Η διακοπή του προγράμματος μπορεί να προκαλέσει απώλεια δεδομένων."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Επιλέξτε τα προγράμματα που θα εκκινούνται όταν συνδέεστε στο σύστημα"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Προγράμματα εκκίνησης"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Πρόσθετα _προγράμματα εκκίνησης:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "Περιήγηση…"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Εντολή:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "_Σχόλιο:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Επιλογές"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Εκκίνηση προγραμμάτων"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Αυτόματη απομνημόνευση εκτελούμενων εφαρμογών κατά την αποσύνδεση"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Όνομα:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "Α_πομνημόνευση εφαρμογών που εκτελούνται "
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Το αρχείο δεν είναι ένα έγκυρο αρχείο .desktop"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Μη αναγνωρίσιμη έκδοση αρχείου desktop '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Εκκινείται %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Η εφαρμογή δεν δέχεται έγγραφα από την γραμμή εντολών"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Μη αναγνωρίσιμη επιλογή εκκίνησης: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Δεν είναι δυνατό το πέρασμα URIs σε μια εγγραφή επιφάνειας εργασίας 'Type=Link'"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Δεν είναι ένα εκκινήσιμο αντικείμενο"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Απενεργοποίηση σύνδεσης με το διαχειριστή συνεδρίας"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Καθορισμός αρχείου που περιέχει αποθηκευμένες ρυθμίσεις"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FILE"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Καθορίζει ένα όνομα συνεδρίας προς φόρτωση"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Επιλογές διαχείρισης συνεδρίας:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Προβολή επιλογών διαχείρισης συνεδρίας"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Υπάρχει πρόβλημα με τον εξυπηρετητή ρυθμίσεων.\n"
+"(%s τερματίστηκε με κατάσταση %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Το εικονίδιο '%s' δεν βρέθηκε "
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Άγνωστο"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Ένα πρόγραμμα εκτελείται ήδη:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Μερικά προγράμματα εκτελούνται ακόμη:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid "Waiting for programs to finish. Interrupting these programs may cause you to lose work."
+msgstr "Αναμονή για το κλείσιμο των προγραμμάτων. Η διακοπή αυτών των προγραμμάτων μπορεί να προκαλέσει απώλεια δεδομένων."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Αλλαγή χρήστη ούτως ή άλλως"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "Αποσύνδεση ούτως ή άλλως"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Αναστολή ούτως ή άλλως"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Αδρανοποίηση ούτως ή άλλως"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "Κλείσιμο ούτως ή άλλως"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Επανεκκίνηση ούτως ή άλλως"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Κλείδωμα οθόνης"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Ακύρωση"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Θα αποσυνδεθείτε αυτόματα σε %d δευτερόλεπτο."
+msgstr[1] "Θα αποσυνδεθείτε αυτόματα σε %d δευτερόλεπτα."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Το σύστημα θα κλείσει αυτόματα σε %d δευτερόλεπτο."
+msgstr[1] "Το σύστημα θα κλείσει αυτόματα σε %d δευτερόλεπτα."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Είστε συνδεδεμένος ως \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Να γίνει αποσύνδεση από το σύστημα τώρα;"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "Α_λλαγή χρήστη"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "Απο_σύνδεση"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Να κλείσει το σύστημα τώρα;"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "Α_ναστολή"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "Α_δρανοποίηση"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "Επα_νεκκίνηση"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "Κ_λείσιμο συστήματος"
+
+#: ../mate-session/gsm-manager.c:1214
+#: ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Δεν ανταποκρίνεται"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "Αυτό το πρόγραμμα εμποδίζει την αποσύνδεση."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid "Refusing new client connection because the session is currently being shut down\n"
+msgstr "Άρνηση σύνδεσης νέου πελάτη επειδή το σύστημα τερματίζεται αυτή τη στιγμή\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Αδυναμία δημιουργίας ICE listening socket: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "Αδυναμία εκκίνησης συνεδρίας με σύνδεση ( και αδυναμία σύνδεσης με εξυπηρετητή X)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Παράκαμψη τυπικών καταλόγων αυτόματης εκκίνησης"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "Κλειδί MateConf που χρησιμοποιείται για την αναζήτηση προεπιλεγμένης συνεδρίας"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Ενεργοποίηση κώδικα εκσφαλμάτωσης"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Να μην φορτώνονται εφαρμογές καθορισμένες από τον χρήστη"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "- Διαχείριση της συνεδρίας του MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Αποσύνδεση"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Αποσύνδεση, αγνοώντας όποιες παραμένουσες διεργασίες"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Προβολή διαλόγου αποσύνδεσης"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Προβολή διαλόγου κλεισίματος"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Χρήση κουτιών διαλόγων για σφάλματα"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Ορισμός του ονόματος της τρέχουσας συνεδρίας"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "ΟΝΟΜΑ"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Τερματισμός συνεδρίας"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Να μην απαιτείται επιβεβαίωση"
+
+#: ../tools/mate-session-save.c:120
+#: ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Αδύνατη η σύνδεση με το διαχειριστή συνεδρίας"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Το πρόγραμμα κλήθηκε με συγκρουόμενες επιλογές"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "MATE Settings Daemon Helper"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "Αν ενεργοποιηθεί, η συνεδρία του mate θα αποθηκεύει τη συνεδρία "
+#~ "αυτόματα. Αλλιώς, ο διάλογος αποσύνδεσης θα εμφανίζει μια επιλογή για την "
+#~ "αποθήκευση της συνεδρίας."
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr ""
+#~ "Προτιμώμενη εικόνα που θα χρησιμοποιείται για την οθόνη έναρξης σύνδεσης"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "Εμφάνιση της οθόνης έναρξης"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "Προβολή της οθόνης έναρξης κατά την εκκίνηση της συνεδρίας"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+#~ msgstr ""
+#~ "Αυτή είναι μια σχετική τιμή διαδρομής βασισμένη στον κατάλογο $datadir/"
+#~ "pixmaps/. Οι υποκατάλογοι είναι ονόματα εικόνων και έγκυρες τιμές. Οι "
+#~ "αλλαγές σε αυτήν την τιμή θα πραγματοποιηθούν στην επόμενη είσοδο."
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr ""
+#~ "Αναμονή για το κλείσιμο του προγράμματος. Η διακοπή του προγράμματος "
+#~ "μπορεί να προκαλέσει απώλεια δεδομένων."
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- Οθόνη έναρξης του MATE"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "Οθόνη έναρξης του MATE"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "Το όνομα του προγράμματος εκκίνησης δε μπορεί να είναι κενό"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "Έχει ζητηθεί υποστήριξη για βοηθητικές τεχνολογίες για αυτή την "
+#~ "συνεδρία, αλλά το μητρώο προσιτότητας δεν βρέθηκε. Βεβαιωθείτε ότι το "
+#~ "πακέτο AT-SPI είναι εγκατεστημένο. Η συνεδρία έχει ξεκινήσει χωρίς "
+#~ "υποστήριξη για βοηθητικές τεχνολογίες."
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "AT SPI Registry Wrapper"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "Προτιμήσεις συνεδριών "
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "MATE Keyring Daemon Wrapper"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Επιθυμητή επιλογή στο διάλογο αποσύνδεσης"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "Αυτή είναι η επιλογή που θα επιλέγεται στο διάλογο αποσύνδεσης. Έγκυρες "
+#~ "τιμές είναι\"αποσύνδεση\" , \"τερματισμός\" και \"επανεκκίνηση\"."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "Ρύθμιση των συνεδριών σας"
+
+#~ msgid "Sessions"
+#~ msgstr "Συνεδρίες"
+
+#~ msgid "Session management"
+#~ msgstr "Διαχείριση συνεδρίας"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "MATE GUI Library + EggSMClient"
diff --git a/po/[email protected] b/po/[email protected]
new file mode 100644
index 0000000..ddcd8a3
--- /dev/null
+++ b/po/[email protected]
@@ -0,0 +1,531 @@
+# Shavian translation for mate-session.
+# Copyright (C) 2009 The Mate Foundation.
+# Thomas Thurman <[email protected]>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: marco\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-session&component=general\n"
+"POT-Creation-Date: 2010-05-12 07:26+0000\n"
+"PO-Revision-Date: 2010-05-12 18:36 -0400\n"
+"Last-Translator: Thomas Thurman <[email protected]>\n"
+"Language-Team: Shavian <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n!=1;\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "𐑕𐑩𐑤𐑧𐑒𐑑 𐑒𐑩𐑥𐑭𐑯𐑛"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "𐑨𐑛 𐑕𐑑𐑸𐑑𐑳𐑐 𐑐𐑮𐑴𐑜𐑮𐑨𐑥"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "𐑧𐑛𐑦𐑑 𐑕𐑑𐑸𐑑𐑳𐑐 𐑐𐑮𐑴𐑜𐑮𐑨𐑥"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "𐑞 𐑕𐑑𐑸𐑑𐑳𐑐 𐑒𐑩𐑥𐑭𐑯𐑛 𐑒𐑨𐑯𐑪𐑑 𐑚𐑰 𐑧𐑥𐑐𐑑𐑦"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "𐑞 𐑕𐑑𐑸𐑑𐑳𐑐 𐑒𐑩𐑥𐑭𐑯𐑛 𐑦𐑟 𐑯𐑪𐑑 𐑝𐑨𐑤𐑦𐑛"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "𐑦𐑯𐑱𐑚𐑩𐑤𐑛"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "𐑲𐑒𐑪𐑯"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "𐑐𐑮𐑴𐑜𐑮𐑨𐑥"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "𐑕𐑑𐑸𐑑𐑳𐑐 𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯𐑟 𐑐𐑮𐑧𐑓𐑼𐑩𐑯𐑕𐑩𐑟"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "𐑯𐑴 𐑯𐑱𐑥"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "𐑯𐑴 𐑛𐑦𐑕𐑒𐑮𐑦𐑐𐑖𐑩𐑯"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "𐑝𐑻𐑠𐑩𐑯 𐑝 𐑞𐑦𐑕 𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "𐑒𐑫𐑛 𐑯𐑪𐑑 𐑛𐑩𐑕𐑐𐑤𐑱 𐑣𐑧𐑤𐑐 𐑛𐑪𐑒𐑿𐑥𐑩𐑯𐑑"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "·𐑜𐑯𐑴𐑥 𐑕𐑧𐑑𐑦𐑙𐑟 𐑛𐑰𐑥𐑩𐑯 𐑣𐑧𐑤𐑐𐑼"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "·𐑜𐑯𐑴𐑥"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "𐑞𐑦𐑕 𐑕𐑧𐑖𐑩𐑯 𐑤𐑪𐑜𐑟 𐑿 𐑦𐑯𐑑𐑫 ·𐑜𐑯𐑴𐑥"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "𐑛𐑦𐑓𐑷𐑤𐑑 𐑕𐑧𐑖𐑩𐑯"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "𐑓𐑲𐑤 𐑥𐑨𐑯𐑩𐑡𐑼"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid ""
+"If enabled, mate-session will prompt the user before ending a session."
+msgstr "𐑦𐑓 𐑦𐑯𐑱𐑚𐑩𐑤𐑛, 𐑯𐑴𐑥-𐑕𐑧𐑖𐑩𐑯 𐑢𐑦𐑤 𐑐𐑮𐑪𐑥𐑐𐑑 𐑞 𐑿𐑟𐑼 𐑚𐑦𐑓𐑹 𐑧𐑯𐑛𐑦𐑙 𐑩 𐑕𐑧𐑖𐑩𐑯."
+
+#, fuzzy
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, the "
+"logout dialog will have an option to save the session."
+msgstr ""
+"𐑦𐑓 𐑦𐑯𐑱𐑚𐑩𐑤𐑛, 𐑯𐑴𐑥-𐑕𐑧𐑖𐑩𐑯 𐑢𐑦𐑤 𐑕𐑱𐑝 𐑞 𐑕𐑧𐑖𐑩𐑯 𐑷𐑑𐑩𐑥𐑨𐑑𐑦𐑒𐑤𐑦. 𐑳𐑞𐑼𐑢𐑲𐑟, 𐑞 logout 𐑛𐑲𐑩𐑤𐑪𐑜 𐑢𐑦𐑤 "
+"𐑣𐑨𐑝 𐑩𐑯 𐑪𐑐𐑖𐑩𐑯 𐑑 𐑕𐑱𐑝 𐑞 𐑕𐑧𐑖𐑩𐑯."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "𐑤𐑦𐑕𐑑 𐑝 𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯𐑟 𐑞𐑨𐑑 𐑸 𐑐𐑸𐑑 𐑝 𐑞 𐑛𐑦𐑓𐑷𐑤𐑑 𐑕𐑧𐑖𐑩𐑯."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to remove "
+"a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"𐑤𐑦𐑕𐑑 𐑝 𐑒𐑩𐑥𐑐𐑴𐑯𐑩𐑯𐑑𐑕 𐑞𐑨𐑑 𐑸 𐑮𐑦𐑒𐑢𐑲𐑼𐑛 𐑨𐑟 𐑐𐑸𐑑 𐑝 𐑞 𐑕𐑧𐑖𐑩𐑯. (𐑰𐑗 𐑧𐑤𐑩𐑥𐑩𐑯𐑑 𐑯𐑱𐑥𐑟 𐑩 𐑒𐑰 𐑳𐑯𐑛𐑼 "
+"\"/desktop/mate/session/required_components\"). 𐑞 𐑕𐑑𐑸𐑑𐑳𐑐 𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯𐑟 "
+"𐑐𐑮𐑧𐑓𐑼𐑩𐑯𐑕𐑩𐑟 𐑑𐑵𐑤 𐑢𐑦𐑤 𐑯𐑪𐑑 𐑯𐑹𐑥𐑩𐑤𐑦 𐑩𐑤𐑬 𐑿𐑟𐑼𐑟 𐑑 𐑮𐑦𐑥𐑵𐑝 𐑩 𐑮𐑦𐑒𐑢𐑲𐑼𐑛 𐑒𐑩𐑥𐑐𐑴𐑯𐑩𐑯𐑑 𐑓𐑮𐑪𐑥 𐑞 "
+"𐑕𐑧𐑖𐑩𐑯, 𐑯 𐑞 𐑕𐑧𐑖𐑩𐑯 𐑥𐑨𐑯𐑩𐑡𐑼 𐑢𐑦𐑤 𐑷𐑑𐑩𐑥𐑨𐑑𐑦𐑒𐑤𐑦 𐑨𐑛 𐑞 𐑮𐑦𐑒𐑢𐑲𐑼𐑛 𐑒𐑩𐑥𐑐𐑴𐑯𐑩𐑯𐑑𐑕 𐑚𐑨𐑒 𐑑 𐑞 𐑕𐑧𐑖𐑩𐑯 "
+"𐑨𐑑 𐑤𐑪𐑜𐑦𐑯 𐑑𐑲𐑥 𐑦𐑓 𐑞𐑱 𐑛𐑵 𐑜𐑧𐑑 𐑮𐑦𐑥𐑵𐑝𐑛."
+
+#, fuzzy
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Logout 𐑐𐑮𐑪𐑥𐑐𐑑"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "𐑐𐑨𐑯𐑩𐑤"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "𐑐𐑮𐑦𐑓𐑻𐑛 𐑦𐑥𐑦𐑡 𐑑 𐑿𐑕 𐑓𐑹 𐑤𐑪𐑜𐑦𐑯 𐑕𐑐𐑤𐑨𐑖 𐑕𐑒𐑮𐑰𐑯"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "𐑮𐑦𐑒𐑢𐑲𐑼𐑛 𐑕𐑧𐑖𐑩𐑯 𐑒𐑩𐑥𐑐𐑴𐑯𐑩𐑯𐑑𐑕"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "𐑕𐑱𐑝 𐑕𐑧𐑖𐑩𐑯𐑟"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "𐑖𐑴 𐑞 𐑕𐑐𐑤𐑨𐑖 𐑕𐑒𐑮𐑰𐑯"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "𐑖𐑴 𐑞 𐑕𐑐𐑤𐑨𐑖 𐑕𐑒𐑮𐑰𐑯 𐑢𐑧𐑯 𐑞 𐑕𐑧𐑖𐑩𐑯 𐑕𐑑𐑸𐑑𐑕 𐑳𐑐"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"𐑞 𐑓𐑲𐑤 𐑥𐑨𐑯𐑩𐑡𐑼 𐑐𐑮𐑩𐑝𐑲𐑛𐑟 𐑞 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑲𐑒𐑪𐑯𐑟 𐑯 𐑩𐑤𐑬𐑟 𐑿 𐑑 𐑦𐑯𐑑𐑻𐑨𐑒𐑑 𐑢𐑦𐑞 𐑿𐑼 𐑕𐑱𐑝𐑛 𐑓𐑲𐑤𐑟."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "𐑞 𐑯𐑳𐑥𐑚𐑼 𐑝 𐑥𐑦𐑯𐑦𐑑𐑕 𐑝 𐑦𐑯𐑨𐑒𐑑𐑦𐑝𐑦𐑑𐑰 𐑚𐑦𐑓𐑹 𐑞 𐑕𐑧𐑖𐑩𐑯 𐑦𐑟 𐑒𐑩𐑯𐑕𐑦𐑛𐑼𐑛 𐑲𐑛𐑩𐑤."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"𐑞 𐑐𐑨𐑯𐑩𐑤 𐑐𐑮𐑩𐑝𐑲𐑛𐑟 𐑞 𐑚𐑸 𐑨𐑑 𐑞 𐑑𐑪𐑐 𐑹 𐑚𐑪𐑑𐑫𐑥 𐑝 𐑞 𐑕𐑒𐑮𐑰𐑯 𐑒𐑩𐑯𐑑𐑱𐑯𐑦𐑙 𐑥𐑧𐑯𐑿𐑟, 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑤𐑦𐑕𐑑, "
+"𐑕𐑑𐑱𐑑𐑫𐑕 𐑲𐑒𐑪𐑯𐑟, 𐑞 𐑒𐑤𐑪𐑒, 𐑧𐑑𐑕."
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders around "
+"windows, and allows you to move and resize windows."
+msgstr ""
+"𐑞 𐑢𐑦𐑯𐑛𐑴 𐑥𐑨𐑯𐑩𐑡𐑼 𐑦𐑟 𐑞 𐑐𐑮𐑴𐑜𐑮𐑨𐑥 𐑞𐑨𐑑 𐑛𐑮𐑷𐑟 𐑞 𐑑𐑲𐑑𐑩𐑤 𐑚𐑸 𐑯 𐑚𐑹𐑛𐑼𐑟 𐑼𐑬𐑯𐑛 𐑢𐑦𐑯𐑛𐑴𐑟, 𐑯 𐑩𐑤𐑬𐑟 𐑿 "
+"𐑑 𐑥𐑵𐑝 𐑯 𐑮𐑰𐑕𐑲𐑟 𐑢𐑦𐑯𐑛𐑴𐑟."
+
+#, fuzzy
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. "
+"Sub-directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"𐑞𐑦𐑕 𐑦𐑟 𐑩 𐑮𐑧𐑤𐑩𐑑𐑦𐑝 𐑐𐑭𐑔 𐑝𐑨𐑤𐑿 𐑚𐑱𐑕𐑑 𐑪𐑓 𐑞 $datadir/pixmaps/ 𐑛𐑲𐑮𐑧𐑒𐑑𐑼𐑦. 𐑕𐑳𐑚-𐑛𐑲𐑮𐑧𐑒𐑑𐑼𐑦𐑟 "
+"𐑯 𐑦𐑥𐑦𐑡 𐑯𐑱𐑥𐑟 𐑸 𐑝𐑨𐑤𐑦𐑛 𐑝𐑨𐑤𐑿𐑟. 𐑗𐑱𐑯𐑡𐑦𐑙 𐑞𐑦𐑕 𐑝𐑨𐑤𐑿 𐑢𐑦𐑤 𐑦𐑓𐑧𐑒𐑑 𐑞 𐑯𐑧𐑒𐑕𐑑 𐑕𐑧𐑖𐑩𐑯 𐑤𐑪𐑜𐑦𐑯."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "𐑑𐑲𐑥 𐑚𐑦𐑓𐑹 𐑕𐑧𐑖𐑩𐑯 𐑦𐑟 𐑒𐑩𐑯𐑕𐑦𐑛𐑼𐑛 𐑲𐑛𐑩𐑤"
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "𐑢𐑦𐑯𐑛𐑴 𐑥𐑨𐑯𐑩𐑡𐑼"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>𐑕𐑳𐑥 𐑐𐑮𐑴𐑜𐑮𐑨𐑥𐑟 𐑸 𐑕𐑑𐑦𐑤 𐑮𐑳𐑯𐑦𐑙:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr "𐑢𐑱𐑑𐑦𐑙 𐑓𐑹 𐑐𐑮𐑴𐑜𐑮𐑨𐑥 𐑑 𐑓𐑦𐑯𐑦𐑖. 𐑦𐑯𐑑𐑻𐑳𐑐𐑑𐑦𐑙 𐑐𐑮𐑴𐑜𐑮𐑨𐑥 𐑥𐑱 𐑒𐑷𐑟 𐑿 𐑑 𐑤𐑵𐑟 𐑢𐑻𐑒."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "𐑗𐑵𐑟 𐑢𐑪𐑑 𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯𐑟 𐑑 𐑕𐑑𐑸𐑑 𐑢𐑧𐑯 𐑿 𐑤𐑪𐑜 𐑦𐑯"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "𐑕𐑑𐑸𐑑𐑳𐑐 𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯𐑟"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "𐑩𐑛𐑦𐑖𐑩𐑯𐑩𐑤 𐑕𐑑𐑸𐑑𐑳𐑐 _𐑐𐑮𐑴𐑜𐑮𐑨𐑥𐑟:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "𐑚𐑮𐑬𐑟..."
+
+#, fuzzy
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "Co_mmand:"
+
+#, fuzzy
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Comm_ent:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "𐑪𐑐𐑖𐑩𐑯𐑟"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "𐑕𐑑𐑸𐑑𐑳𐑐 𐑐𐑮𐑴𐑜𐑮𐑨𐑥𐑟"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "_𐑷𐑑𐑩𐑥𐑨𐑑𐑦𐑒𐑤𐑦 𐑮𐑦𐑥𐑧𐑥𐑚𐑼 𐑮𐑳𐑯𐑦𐑙 𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯𐑟 𐑢𐑧𐑯 𐑤𐑪𐑜𐑦𐑙 𐑬𐑑"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_𐑯𐑱𐑥:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_𐑮𐑦𐑥𐑧𐑥𐑚𐑼 𐑒𐑳𐑮𐑩𐑯𐑑𐑤𐑦 𐑮𐑳𐑯𐑦𐑙 𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯"
+
+#, c-format
+#: ../egg/eggdesktopfile.c:165
+msgid "File is not a valid .desktop file"
+msgstr "𐑓𐑲𐑤 𐑦𐑟 𐑯𐑪𐑑 𐑩 𐑝𐑨𐑤𐑦𐑛 .desktop 𐑓𐑲𐑤"
+
+#, c-format
+#: ../egg/eggdesktopfile.c:188
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "𐑩𐑯𐑮𐑧𐑒𐑩𐑜𐑯𐑲𐑟𐑛 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑓𐑲𐑤 𐑝𐑻𐑠𐑩𐑯 '%s'"
+
+#, c-format
+#: ../egg/eggdesktopfile.c:958
+msgid "Starting %s"
+msgstr "𐑕𐑑𐑸𐑑𐑦𐑙 %s"
+
+#, c-format
+#: ../egg/eggdesktopfile.c:1100
+msgid "Application does not accept documents on command line"
+msgstr "𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯 𐑛𐑳𐑟 𐑯𐑪𐑑 𐑨𐑒𐑕𐑧𐑐𐑑 𐑛𐑪𐑒𐑿𐑥𐑩𐑯𐑑𐑕 𐑪𐑯 𐑒𐑩𐑥𐑭𐑯𐑛 𐑤𐑲𐑯"
+
+#, c-format
+#: ../egg/eggdesktopfile.c:1168
+msgid "Unrecognized launch option: %d"
+msgstr "𐑩𐑯𐑮𐑧𐑒𐑩𐑜𐑯𐑲𐑟𐑛 𐑤𐑷𐑯𐑗 𐑪𐑐𐑖𐑩𐑯: %d"
+
+#, fuzzy, c-format
+#: ../egg/eggdesktopfile.c:1373
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "𐑒𐑭𐑯𐑑 𐑐𐑭𐑕 𐑛𐑪𐑒𐑿𐑥𐑩𐑯𐑑 URIs 𐑑 𐑩 '𐑑𐑲𐑐=𐑤𐑦𐑙𐑒' 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑧𐑯𐑑𐑮𐑦"
+
+#, fuzzy, c-format
+#: ../egg/eggdesktopfile.c:1394
+msgid "Not a launchable item"
+msgstr "𐑯𐑪𐑑 𐑩 launchable 𐑲𐑑𐑩𐑥"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "𐑛𐑦𐑕𐑱𐑚𐑩𐑤 𐑒𐑩𐑯𐑧𐑒𐑖𐑩𐑯 𐑑 𐑕𐑧𐑖𐑩𐑯 𐑥𐑨𐑯𐑩𐑡𐑼"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "𐑕𐑐𐑧𐑕𐑦𐑓𐑲 𐑓𐑲𐑤 𐑒𐑩𐑯𐑑𐑱𐑯𐑦𐑙 𐑕𐑱𐑝𐑛 𐑒𐑩𐑯𐑓𐑦𐑜𐑘𐑼𐑱𐑖𐑩𐑯"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "𐑓𐑲𐑤"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "𐑕𐑐𐑧𐑕𐑦𐑓𐑲 𐑕𐑧𐑖𐑩𐑯 𐑥𐑨𐑯𐑩𐑡𐑥𐑩𐑯𐑑 ID"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "𐑕𐑧𐑖𐑩𐑯 𐑥𐑨𐑯𐑩𐑡𐑥𐑩𐑯𐑑 𐑪𐑐𐑖𐑩𐑯𐑟:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "𐑖𐑴 𐑕𐑧𐑖𐑩𐑯 𐑥𐑨𐑯𐑩𐑡𐑥𐑩𐑯𐑑 𐑪𐑐𐑖𐑩𐑯𐑟"
+
+#, c-format
+#: ../mate-session/gsm-mateconf.c:106
+msgid ""
+"There is a problem with the configuration server.\n(%s exited with status %d)"
+msgstr "𐑞𐑺 𐑦𐑟 𐑩 𐑐𐑮𐑪𐑚𐑤𐑩𐑥 𐑢𐑦𐑞 𐑞 𐑒𐑩𐑯𐑓𐑦𐑜𐑘𐑼𐑱𐑖𐑩𐑯 𐑕𐑻𐑝𐑼.\n(%s 𐑧𐑜𐑟𐑦𐑑𐑩𐑛 𐑢𐑦𐑞 𐑕𐑑𐑱𐑑𐑫𐑕 %d)"
+
+#, c-format
+#: ../mate-session/gsm-inhibit-dialog.c:255
+msgid "Icon '%s' not found"
+msgstr "𐑲𐑒𐑪𐑯 '%s' 𐑯𐑪𐑑 𐑓𐑬𐑯𐑛"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "𐑳𐑯𐑴𐑯"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "𐑩 𐑐𐑮𐑴𐑜𐑮𐑨𐑥 𐑦𐑟 𐑕𐑑𐑦𐑤 𐑮𐑳𐑯𐑦𐑙:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "𐑕𐑳𐑥 𐑐𐑮𐑴𐑜𐑮𐑨𐑥𐑟 𐑸 𐑕𐑑𐑦𐑤 𐑮𐑳𐑯𐑦𐑙:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you to "
+"lose work."
+msgstr ""
+"𐑢𐑱𐑑𐑦𐑙 𐑓𐑹 𐑐𐑮𐑴𐑜𐑮𐑨𐑥𐑟 𐑑 𐑓𐑦𐑯𐑦𐑖. 𐑦𐑯𐑑𐑻𐑳𐑐𐑑𐑦𐑙 𐑞𐑰𐑟 𐑐𐑮𐑴𐑜𐑮𐑨𐑥𐑟 𐑥𐑱 𐑒𐑷𐑟 𐑿 𐑑 𐑤𐑵𐑟 𐑢𐑻𐑒."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "𐑕𐑢𐑦𐑗 𐑿𐑟𐑼 𐑧𐑯𐑦𐑢𐑱"
+
+#, fuzzy
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Logout 𐑧𐑯𐑦𐑢𐑱"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "𐑕𐑩𐑕𐑐𐑧𐑯𐑛 𐑧𐑯𐑦𐑢𐑱"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "𐑣𐑲𐑚𐑼𐑯𐑱𐑑 𐑧𐑯𐑦𐑢𐑱"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "𐑖𐑩𐑑𐑛𐑶𐑯 𐑧𐑯𐑦𐑢𐑱"
+
+#, fuzzy
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Reboot 𐑧𐑯𐑦𐑢𐑱"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "𐑤𐑪𐑒 𐑕𐑒𐑮𐑰𐑯"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "𐑒𐑨𐑯𐑕𐑩𐑤"
+
+#, c-format
+#: ../mate-session/gsm-logout-dialog.c:274
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "𐑿 𐑢𐑦𐑤 𐑚𐑰 𐑷𐑑𐑩𐑥𐑨𐑑𐑦𐑒𐑤𐑦 𐑤𐑪𐑜𐑛 𐑬𐑑 𐑦𐑯 %d 𐑕𐑧𐑒𐑩𐑯𐑛."
+msgstr[1] "𐑿 𐑢𐑦𐑤 𐑚𐑰 𐑷𐑑𐑩𐑥𐑨𐑑𐑦𐑒𐑤𐑦 𐑤𐑪𐑜𐑛 𐑬𐑑 𐑦𐑯 %d 𐑕𐑧𐑒𐑩𐑯𐑛𐑟."
+
+#, c-format
+#: ../mate-session/gsm-logout-dialog.c:282
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "𐑞𐑦𐑕 𐑕𐑦𐑕𐑑𐑩𐑥 𐑢𐑦𐑤 𐑚𐑰 𐑷𐑑𐑩𐑥𐑨𐑑𐑦𐑒𐑤𐑦 𐑖𐑳𐑑 𐑛𐑬𐑯 𐑦𐑯 %d 𐑕𐑧𐑒𐑩𐑯𐑛."
+msgstr[1] "𐑞𐑦𐑕 𐑕𐑦𐑕𐑑𐑩𐑥 𐑢𐑦𐑤 𐑚𐑰 𐑷𐑑𐑩𐑥𐑨𐑑𐑦𐑒𐑤𐑦 𐑖𐑳𐑑 𐑛𐑬𐑯 𐑦𐑯 %d 𐑕𐑧𐑒𐑩𐑯𐑛𐑟."
+
+#, c-format
+#: ../mate-session/gsm-logout-dialog.c:314
+msgid "You are currently logged in as \"%s\"."
+msgstr "𐑿 𐑸 𐑒𐑳𐑮𐑩𐑯𐑑𐑤𐑦 𐑤𐑪𐑜𐑛 𐑦𐑯 𐑨𐑟 \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "𐑤𐑪𐑜 𐑬𐑑 𐑝 𐑞𐑦𐑕 𐑕𐑦𐑕𐑑𐑩𐑥 𐑯𐑬?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "_𐑕𐑢𐑦𐑗 𐑿𐑟𐑼"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "_𐑤𐑪𐑜 𐑬𐑑"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "𐑖𐑳𐑑 𐑛𐑬𐑯 𐑞𐑦𐑕 𐑕𐑦𐑕𐑑𐑩𐑥 𐑯𐑬?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "𐑕_𐑳𐑕𐑐𐑧𐑯𐑛"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "_𐑣𐑲𐑚𐑼𐑯𐑱𐑑"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "_𐑮𐑰𐑕𐑑𐑸𐑑"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "_𐑖𐑳𐑑 𐑛𐑬𐑯"
+
+#: ../mate-session/gsm-manager.c:1220 ../mate-session/gsm-manager.c:1912
+msgid "Not responding"
+msgstr "𐑯𐑪𐑑 𐑮𐑰𐑕𐑐𐑪𐑯𐑛𐑦𐑙"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking log out."
+msgstr "𐑞𐑦𐑕 𐑐𐑮𐑴𐑜𐑮𐑨𐑥 𐑦𐑟 𐑚𐑤𐑪𐑒𐑦𐑙 𐑤𐑪𐑜 𐑬𐑑."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "𐑮𐑩𐑓𐑘𐑵𐑟𐑦𐑙 𐑯𐑿 𐑒𐑤𐑲𐑩𐑯𐑑 𐑒𐑩𐑯𐑧𐑒𐑖𐑩𐑯 𐑚𐑦𐑒𐑪𐑟 𐑞 𐑕𐑧𐑖𐑩𐑯 𐑦𐑟 𐑒𐑳𐑮𐑩𐑯𐑑𐑤𐑦 𐑚𐑰𐑦𐑙 𐑖𐑳𐑑 𐑛𐑬𐑯\n"
+
+#, c-format
+#: ../mate-session/gsm-xsmp-server.c:587
+msgid "Could not create ICE listening socket: %s"
+msgstr "𐑒𐑫𐑛 𐑯𐑪𐑑 𐑒𐑮𐑦𐑱𐑑 ICE 𐑤𐑦𐑕𐑩𐑯𐑦𐑙 𐑕𐑪𐑒𐑩𐑑: %s"
+
+#. Oh well, no X for you!
+#, c-format
+#: ../mate-session/gsm-util.c:354
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "𐑳𐑯𐑱𐑚𐑩𐑤 𐑑 𐑕𐑑𐑸𐑑 𐑤𐑪𐑜𐑦𐑯 𐑕𐑧𐑖𐑩𐑯 (𐑯 𐑳𐑯𐑱𐑚𐑩𐑤 𐑑 𐑒𐑩𐑯𐑧𐑒𐑑 𐑑 𐑞 X 𐑕𐑻𐑝𐑼)"
+
+#, fuzzy
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "𐑴𐑝𐑼𐑮𐑲𐑛 𐑕𐑑𐑨𐑯𐑛𐑼𐑛 autostart 𐑛𐑲𐑮𐑧𐑒𐑑𐑼𐑦𐑟"
+
+#, fuzzy
+#: ../mate-session/main.c:438
+msgid "MateConf key used to lookup default session"
+msgstr "MateConf 𐑒𐑰 𐑿𐑕𐑑 𐑑 𐑤𐑫𐑒𐑩𐑐 𐑛𐑦𐑓𐑷𐑤𐑑 𐑕𐑧𐑖𐑩𐑯"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "𐑦𐑯𐑱𐑚𐑩𐑤 𐑛𐑰𐑚𐑳𐑜𐑦𐑙 𐑒𐑴𐑛"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "𐑛𐑵 𐑯𐑪𐑑 𐑤𐑴𐑛 𐑿𐑟𐑼-𐑕𐑐𐑧𐑕𐑦𐑓𐑲𐑛 𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯𐑟"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - 𐑞 ·𐑜𐑯𐑴𐑥 𐑕𐑧𐑖𐑩𐑯 𐑥𐑨𐑯𐑩𐑡𐑼"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- ·𐑜𐑯𐑴𐑥 𐑕𐑐𐑤𐑨𐑖 𐑕𐑒𐑮𐑰𐑯"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "·𐑜𐑯𐑴𐑥 𐑕𐑐𐑤𐑨𐑖 𐑕𐑒𐑮𐑰𐑯"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "𐑤𐑪𐑜 𐑬𐑑"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "𐑤𐑪𐑜 𐑬𐑑, 𐑦𐑜𐑯𐑹𐑦𐑙 𐑧𐑯𐑦 𐑧𐑒𐑟𐑦𐑕𐑑𐑦𐑙 𐑦𐑯𐑣𐑦𐑚𐑩𐑑𐑻𐑟"
+
+#, fuzzy
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "𐑖𐑴 logout 𐑛𐑲𐑩𐑤𐑪𐑜"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "𐑖𐑴 𐑖𐑩𐑑𐑛𐑶𐑯 𐑛𐑲𐑩𐑤𐑪𐑜"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "𐑿𐑟 𐑛𐑲𐑩𐑤𐑪𐑜 𐑚𐑪𐑒𐑕𐑩𐑟 𐑓𐑹 𐑻𐑼𐑟"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "𐑕𐑧𐑑 𐑞 𐑒𐑳𐑮𐑩𐑯𐑑 𐑕𐑧𐑖𐑩𐑯 𐑯𐑱𐑥"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "𐑯𐑱𐑥"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "𐑒𐑦𐑤 𐑕𐑧𐑖𐑩𐑯"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "𐑛𐑵 𐑯𐑪𐑑 𐑮𐑦𐑒𐑢𐑲𐑼 𐑒𐑪𐑯𐑓𐑼𐑥𐑱𐑖𐑩𐑯"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "𐑒𐑫𐑛 𐑯𐑪𐑑 𐑒𐑩𐑯𐑧𐑒𐑑 𐑑 𐑞 𐑕𐑧𐑖𐑩𐑯 𐑥𐑨𐑯𐑩𐑡𐑼"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "𐑐𐑮𐑴𐑜𐑮𐑨𐑥 𐑒𐑷𐑤𐑛 𐑢𐑦𐑞 𐑒𐑩𐑯𐑓𐑤𐑦𐑒𐑑𐑦𐑙 𐑪𐑐𐑖𐑩𐑯𐑟"
+
diff --git a/po/en_CA.po b/po/en_CA.po
new file mode 100644
index 0000000..c118a71
--- /dev/null
+++ b/po/en_CA.po
@@ -0,0 +1,656 @@
+# Canadian English translation of mate-session
+# Copyright (C) 2004-2006 Adam Weinberger and the MATE Foundation
+# This file is distributed under the same licence as the mate-session package.
+# Adam Weinberger <[email protected]>, 2004, 2005, 2006.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-08-15 15:25-0400\n"
+"PO-Revision-Date: 2005-04-27 11:54-0500\n"
+"Last-Translator: Adam Weinberger <[email protected]>\n"
+"Language-Team: Canadian English <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../data/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "Allow TCP connections"
+
+#: ../data/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"If enabled, mate-session will prompt the user before ending a session."
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialogue will have an option to save the session."
+
+#: ../data/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "Logout prompt"
+
+#: ../data/mate-session.schemas.in.h:6
+msgid "Preferred Image to use for login splash screen"
+msgstr "Preferred Image to use for login splash screen"
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "Save sessions"
+
+#: ../data/mate-session.schemas.in.h:8
+msgid "Selected option in the log out dialog"
+msgstr "Selected option in the log-out dialogue"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Show the splash screen"
+msgstr "Show the splash screen"
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Show the splash screen when the session starts up"
+msgstr "Show the splash screen when the session starts up"
+
+#: ../data/mate-session.schemas.in.h:11
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"affect the next session login."
+
+#: ../data/mate-session.schemas.in.h:12
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+"This is the option that will be selected in the logout dialogue. Valid "
+"values are \"logout\" for logging out, \"shutdown\" for halting the system "
+"and \"restart\" for restarting the system."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Configure your sessions"
+
+#: ../data/session-properties.desktop.in.in.h:2
+#: ../mate-session/session-properties-capplet.c:224
+msgid "Sessions"
+msgstr "Sessions"
+
+#: ../mate-session/gsm-at-startup.c:39
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+
+#: ../mate-session/gsm-client-editor.c:123
+msgid "_Order:"
+msgstr "_Order:"
+
+#: ../mate-session/gsm-client-editor.c:125
+msgid "The order in which applications are started in the session."
+msgstr "The order in which applications are started in the session."
+
+#: ../mate-session/gsm-client-editor.c:133
+msgid "What happens to the application when it exits."
+msgstr "What happens to the application when it exits."
+
+#: ../mate-session/gsm-client-editor.c:134
+msgid "_Style:"
+msgstr "_Style:"
+
+#: ../mate-session/gsm-client-list.c:44
+msgid "Inactive"
+msgstr "Inactive"
+
+#: ../mate-session/gsm-client-list.c:44
+msgid "Waiting to start or already finished."
+msgstr "Waiting to start or already finished."
+
+#: ../mate-session/gsm-client-list.c:46
+msgid "Starting"
+msgstr "Starting"
+
+#: ../mate-session/gsm-client-list.c:46
+msgid "Started but has not yet reported state."
+msgstr "Started but has not yet reported state."
+
+#: ../mate-session/gsm-client-list.c:48
+msgid "Running"
+msgstr "Running"
+
+#: ../mate-session/gsm-client-list.c:48
+msgid "A normal member of the session."
+msgstr "A normal member of the session."
+
+#: ../mate-session/gsm-client-list.c:50
+msgid "Saving"
+msgstr "Saving"
+
+#: ../mate-session/gsm-client-list.c:50
+msgid "Saving session details."
+msgstr "Saving session details."
+
+#. FIXME find better icon
+#: ../mate-session/gsm-client-list.c:53
+msgid "Unknown"
+msgstr "Unknown"
+
+#: ../mate-session/gsm-client-list.c:53
+msgid "State not reported within timeout."
+msgstr "State not reported within timeout."
+
+#. FIXME find icon
+#: ../mate-session/gsm-client-list.c:60
+msgid "Normal"
+msgstr "Normal"
+
+#: ../mate-session/gsm-client-list.c:60
+msgid "Unaffected by logouts but can die."
+msgstr "Unaffected by logouts but can die."
+
+#: ../mate-session/gsm-client-list.c:62
+msgid "Restart"
+msgstr "Restart"
+
+#: ../mate-session/gsm-client-list.c:62
+msgid "Never allowed to die."
+msgstr "Never allowed to die."
+
+#: ../mate-session/gsm-client-list.c:64
+msgid "Trash"
+msgstr "Trash"
+
+#: ../mate-session/gsm-client-list.c:64
+msgid "Discarded on logout and can die."
+msgstr "Discarded on logout and can die."
+
+#: ../mate-session/gsm-client-list.c:66
+msgid "Settings"
+msgstr "Settings"
+
+#: ../mate-session/gsm-client-list.c:66
+msgid "Always started on every login."
+msgstr "Always started on every login."
+
+#: ../mate-session/gsm-client-list.c:190
+msgid "Order"
+msgstr "Order"
+
+#: ../mate-session/gsm-client-list.c:197
+msgid "Style"
+msgstr "Style"
+
+#: ../mate-session/gsm-client-list.c:204
+msgid "State"
+msgstr "State"
+
+#: ../mate-session/gsm-client-list.c:211
+#: ../mate-session/session-properties-capplet.c:283
+msgid "Program"
+msgstr "Program"
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: ../mate-session/gsm-gsd.c:45
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+
+#: ../mate-session/gsm-gsd.c:57
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+
+#: ../mate-session/gsm-gsd.c:62
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+
+#: ../mate-session/gsm-gsd.c:145
+msgid "The Settings Daemon restarted too many times."
+msgstr "The Settings Daemon restarted too many times."
+
+#. Name is mandatory and might not be set by the caller
+#: ../mate-session/gsm-keyfile.c:43
+msgid "No Name"
+msgstr "No Name"
+
+#: ../mate-session/mate-session-remove.c:50
+msgid "List registered clients, then exit"
+msgstr "List registered clients, then exit"
+
+#: ../mate-session/mate-session-remove.c:52
+msgid "PROGRAM..."
+msgstr "PROGRAM..."
+
+#: ../mate-session/mate-session-remove.c:176
+#, c-format
+msgid ""
+"You must specify at least one program to remove. You can list the programs "
+"with --list.\n"
+msgstr ""
+"You must specify at least one program to remove. You can list the programs "
+"with --list.\n"
+
+#: ../mate-session/mate-session-remove.c:183
+#, c-format
+msgid "Error: could not connect to the session manager\n"
+msgstr "Error: could not connect to the session manager\n"
+
+#: ../mate-session/mate-session-remove.c:197
+#, c-format
+msgid "Currently registered clients:\n"
+msgstr "Currently registered clients:\n"
+
+#: ../mate-session/mate-session-remove.c:207
+#, c-format
+msgid "Couldn't find program %s in session\n"
+msgstr "Could not find program %s in session\n"
+
+#. At least try to tell the user something.
+#: ../mate-session/ice.c:355
+#, c-format
+msgid ""
+"The MATE session manager cannot start properly. Please report this as a "
+"MATE bug. Please include this ICE failure message in the bug report: '%"
+"s'. Meanwhile you could try logging in using the failsafe session."
+msgstr ""
+"The MATE session manager cannot start properly. Please report this as a "
+"MATE bug. Please include this ICE failure message in the bug report: '%"
+"s'. Meanwhile you could try logging in using the failsafe session."
+
+#: ../mate-session/ice.c:511
+#, c-format
+msgid ""
+"The MATE session manager was unable to lock the file '%s'. Please report "
+"this as a MATE bug. Sometimes this error may occur if the file's directory "
+"is unwritable, you could try logging in via the failsafe session and "
+"ensuring that it is."
+msgstr ""
+"The MATE session manager was unable to lock the file '%s'. Please report "
+"this as a MATE bug. Sometimes this error may occur if the file's directory "
+"is unwritable. You could try logging in via the failsafe session and "
+"checking the directory."
+
+#: ../mate-session/ice.c:538
+#, c-format
+msgid ""
+"The MATE session manager was unable to read the file: '%s'. If this file "
+"exists it must be readable by you for MATE to work properly. Try logging "
+"in with the failsafe session and removing this file."
+msgstr ""
+"The MATE session manager was unable to read the file '%s'. If this file "
+"exists it must be readable by you for MATE to work properly. Try logging "
+"in with the failsafe session and removing this file."
+
+#: ../mate-session/ice.c:583
+#, c-format
+msgid ""
+"Could not write to file '%s'. This file must be writable in order for MATE "
+"to function properly. Try logging in with the failsafe session and removing "
+"this file. Also make sure that the file's directory is writable."
+msgstr ""
+"Could not write to file '%s'. This file must be writable in order for MATE "
+"to function properly. Try logging in with the failsafe session and removing "
+"this file. Also make sure that the file's directory is writable."
+
+#: ../mate-session/logout.c:392
+msgid "Are you sure you want to log out?"
+msgstr "Are you sure you want to log out?"
+
+#: ../mate-session/logout.c:409
+msgid "Remember running applications"
+msgstr "Remember running applications"
+
+#: ../mate-session/logout.c:432
+msgid "Action"
+msgstr "Action"
+
+#: ../mate-session/logout.c:449
+msgid "_Log out"
+msgstr "_Log out"
+
+#: ../mate-session/logout.c:456
+msgid "Sh_ut down"
+msgstr "Sh_ut down"
+
+#: ../mate-session/logout.c:464
+msgid "_Restart the computer"
+msgstr "_Restart the computer"
+
+#: ../mate-session/main.c:87
+msgid "Specify a session name to load"
+msgstr "Specify a session name to load"
+
+#: ../mate-session/main.c:87 ../mate-session/mate-session-save.c:48
+msgid "NAME"
+msgstr "NAME"
+
+#: ../mate-session/main.c:88
+msgid "Only read saved sessions from the default.session file"
+msgstr "Only read saved sessions from the default.session file"
+
+#: ../mate-session/main.c:89
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr "Millisecond period spent waiting for clients to register (0=forever)"
+
+#: ../mate-session/main.c:89 ../mate-session/main.c:90
+#: ../mate-session/main.c:91
+msgid "DELAY"
+msgstr "DELAY"
+
+#: ../mate-session/main.c:90
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr "Millisecond period spent waiting for clients to respond (0=forever)"
+
+#: ../mate-session/main.c:91
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr "Millisecond period spent waiting for clients to die (0=forever)"
+
+#: ../mate-session/main.c:167
+msgid "This session is running as a privileged user"
+msgstr "This session is running as a privileged user"
+
+#: ../mate-session/main.c:169
+msgid ""
+"Running a session as a privileged user should be avoided for security "
+"reasons. If possible, you should log in as a normal user."
+msgstr ""
+"Running a session as a privileged user should be avoided for security "
+"reasons. If possible, you should log in as a normal user."
+
+#: ../mate-session/main.c:173
+msgid "_Continue"
+msgstr "_Continue"
+
+#: ../mate-session/main.c:257
+#, c-format
+msgid ""
+"The session might encounter issues if the computer clock is not properly "
+"configured. Please consider adjusting it.\n"
+"\n"
+"Current date is <b>%s</b>."
+msgstr ""
+"The session might encounter issues if the computer's clock is not properly "
+"configured. Please consider adjusting it.\n"
+"\n"
+"Current date is <b>%s</b>."
+
+#: ../mate-session/main.c:376
+#, c-format
+msgid "Failed to launch time configuration tool: %s"
+msgstr "Failed to launch time configuration tool: %s"
+
+#: ../mate-session/main.c:407
+msgid "The computer clock appears to be wrong"
+msgstr "The computer's clock appears to be wrong"
+
+#: ../mate-session/main.c:414
+msgid "_Ignore"
+msgstr "_Ignore"
+
+#: ../mate-session/main.c:415
+msgid "_Adjust the Clock"
+msgstr "_Adjust the Clock"
+
+#: ../mate-session/main.c:552
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+
+#: ../mate-session/main.c:559
+msgid "Log in Anyway"
+msgstr "Log in Anyway"
+
+#: ../mate-session/main.c:560
+msgid "Try Again"
+msgstr "Try Again"
+
+#: ../mate-session/main.c:696
+msgid "- Manage the MATE session"
+msgstr "- Manage the MATE session"
+
+#: ../mate-session/manager.c:513
+msgid "Wait abandoned due to conflict."
+msgstr "Wait abandoned due to conflict."
+
+#: ../mate-session/manager.c:1021
+#, c-format
+msgid "No response to the %s command."
+msgstr "No response to the %s command."
+
+#: ../mate-session/manager.c:1022
+msgid "The program may be slow, stopped or broken."
+msgstr "The program may be slow, stopped or broken."
+
+#: ../mate-session/manager.c:1023
+msgid "You may wait for it to respond or remove it."
+msgstr "You may wait for it to respond or remove it."
+
+#: ../mate-session/manager.c:1749
+msgid "Restart abandoned due to failures."
+msgstr "Restart abandoned due to failures."
+
+#: ../mate-session/manager.c:1945
+msgid "A session shutdown is in progress."
+msgstr "A session shutdown is in progress."
+
+#: ../mate-session/mate-session-save.c:48
+msgid "Set the current session name"
+msgstr "Set the current session name"
+
+#: ../mate-session/mate-session-save.c:49
+msgid "Kill session"
+msgstr "Kill session"
+
+#: ../mate-session/mate-session-save.c:50
+msgid "Use dialog boxes for errors"
+msgstr "Use dialogue boxes for errors"
+
+#: ../mate-session/mate-session-save.c:51
+msgid "Do not require confirmation"
+msgstr "Do not require confirmation"
+
+#: ../mate-session/mate-session-save.c:149
+#: ../mate-session/mate-session-save.c:187
+msgid "Could not connect to the session manager"
+msgstr "Could not connect to the session manager"
+
+#: ../mate-session/mate-session-save.c:172
+msgid "- Save the current session"
+msgstr "- Save the current session"
+
+#: ../mate-session/session-properties-capplet.c:154
+msgid "Save changes to the current session before closing?"
+msgstr "Save changes to the current session before closing?"
+
+#: ../mate-session/session-properties-capplet.c:156
+msgid "If you don't save, changes will be discarded."
+msgstr "If you don't save, changes will be discarded."
+
+#: ../mate-session/session-properties-capplet.c:159
+msgid "_Close without Saving"
+msgstr "_Close without Saving"
+
+#: ../mate-session/session-properties-capplet.c:250
+msgid "Additional startup _programs:"
+msgstr "Additional startup _programs:"
+
+#: ../mate-session/session-properties-capplet.c:274
+msgid "Enabled"
+msgstr "Enabled"
+
+#: ../mate-session/session-properties-capplet.c:322
+msgid "Startup Programs"
+msgstr "Startup Programs"
+
+#: ../mate-session/session-properties-capplet.c:328
+msgid "Current Session"
+msgstr "Current Session"
+
+#: ../mate-session/session-properties-capplet.c:341
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Automatically remember running applications when logging out"
+
+#: ../mate-session/session-properties-capplet.c:356
+msgid "_Remember currently running applications"
+msgstr "_Remember currently running applications"
+
+#: ../mate-session/session-properties-capplet.c:364
+msgid "Session Options"
+msgstr "Session Options"
+
+#: ../mate-session/session-properties-capplet.c:460
+msgid "Your session has been saved."
+msgstr "Your session has been saved."
+
+#: ../mate-session/session-properties-capplet.c:503
+#, c-format
+msgid "could not connect to the session manager\n"
+msgstr "could not connect to the session manager\n"
+
+#: ../mate-session/session-properties-capplet.c:509
+#, c-format
+msgid "session manager does not support MATE extensions\n"
+msgstr "session manager does not support MATE extensions\n"
+
+#: ../mate-session/session-properties.c:51
+msgid "Remove the currently selected client from the session."
+msgstr "Remove the currently selected client from the session."
+
+#: ../mate-session/session-properties.c:57
+msgid "Apply changes to the current session"
+msgstr "Apply changes to the current session"
+
+#: ../mate-session/session-properties.c:63
+msgid "The list of programs in the session."
+msgstr "The list of programs in the session."
+
+#: ../mate-session/session-properties.c:90
+msgid "Currently running _programs:"
+msgstr "Currently running _programs:"
+
+#: ../mate-session/splash-widget.c:44
+msgid "Sawfish Window Manager"
+msgstr "Sawfish Window Manager"
+
+#: ../mate-session/splash-widget.c:45
+msgid "Marco Window Manager"
+msgstr "Marco Window Manager"
+
+#: ../mate-session/splash-widget.c:46
+msgid "Window Manager"
+msgstr "Window Manager"
+
+#: ../mate-session/splash-widget.c:47
+msgid "The Panel"
+msgstr "The Panel"
+
+#: ../mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "Caja"
+
+#: ../mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr "Desktop Settings"
+
+#: ../mate-session/startup-programs.c:348
+msgid "No description"
+msgstr "No description"
+
+#: ../mate-session/startup-programs.c:467
+msgid "_Name:"
+msgstr "_Name:"
+
+#: ../mate-session/startup-programs.c:485
+msgid "_Command:"
+msgstr "_Command:"
+
+#: ../mate-session/startup-programs.c:499
+msgid "_Browse..."
+msgstr "_Browse..."
+
+#: ../mate-session/startup-programs.c:512
+msgid "Co_mment:"
+msgstr "Co_mment:"
+
+#: ../mate-session/startup-programs.c:542
+msgid "The name of the startup program cannot be empty"
+msgstr "The name of the startup program cannot be empty"
+
+#: ../mate-session/startup-programs.c:544
+msgid "The startup command cannot be empty"
+msgstr "The startup command cannot be empty"
+
+#: ../mate-session/startup-programs.c:550
+msgid "The startup command is not valid"
+msgstr "The startup command is not valid"
+
+#: ../mate-session/startup-programs.c:607
+msgid "New Startup Program"
+msgstr "New Startup Program"
+
+#: ../mate-session/startup-programs.c:651
+msgid "Edit Startup Program"
+msgstr "Edit Startup Program"
diff --git a/po/en_GB.po b/po/en_GB.po
new file mode 100644
index 0000000..12f1ef9
--- /dev/null
+++ b/po/en_GB.po
@@ -0,0 +1,952 @@
+# English (British) translation of mate-session
+# Copyright (C) 1999-2000 Free Software Foundation, Inc.
+# Robert Brady <[email protected]>, 1999-2000.
+# Philip Withnall <[email protected]>, 2009, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session 2.24\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-01 09:29+0100\n"
+"PO-Revision-Date: 2009-02-23 19:20+0000\n"
+"Last-Translator: Philip Withnall <[email protected]>\n"
+"Language-Team: British English <[email protected]>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Select Command"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Add Startup Program"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Edit Startup Program"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "The startup command cannot be empty"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "The startup command is not valid"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Enabled"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Icon"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Program"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Startup Applications Preferences"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "No name"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "No description"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Version of this application"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Could not display help document"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "This session logs you into MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Default session"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "File Manager"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"If enabled, mate-session will prompt the user before ending a session."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "If enabled, mate-session will save the session automatically."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "List of applications that are part of the default session."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Logout prompt"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Required session components"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Save sessions"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"The number of minutes of inactivity before the session is considered idle."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Time before session is considered idle"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Window Manager"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Some programs are still running:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Choose what applications to start when you log in"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Startup Applications"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Additional startup _programs:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "Browse…"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "Co_mmand:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Comm_ent:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Options"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Startup Programs"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Automatically remember running applications when logging out"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Name:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Remember Currently Running Application"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "File is not a valid .desktop file"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Unrecognised desktop file Version '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Starting %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Application does not accept documents on command line"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Unrecognised launch option: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Can't pass document URIs to a 'Type=Link' desktop entry"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Not a launchable item"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Disable connection to session manager"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Specify file containing saved configuration"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FILE"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Specify session management ID"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Session management options:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Show session management options"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Icon '%s' not found"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Unknown"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "A program is still running:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Some programs are still running:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Switch User Anyway"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "Log Out Anyway"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Suspend Anyway"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Hibernate Anyway"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "Shut Down Anyway"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Reboot Anyway"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Lock Screen"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Cancel"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "You will be automatically logged out in %d second."
+msgstr[1] "You will be automatically logged out in %d seconds."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "This system will be automatically shut down in %d second."
+msgstr[1] "This system will be automatically shut down in %d seconds."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "You are currently logged in as \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Log out of this system now?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "_Switch User"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Log Out"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Shut down this system now?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "S_uspend"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Hibernate"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "_Restart"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "_Shut Down"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Not responding"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "This program is blocking logout."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Could not create ICE listening socket: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "Unable to start login session (and unable to connect to the X server)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Override standard autostart directories"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "MateConf key used to look up default session"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Enable debugging code"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Do not load user-specified applications"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - the MATE session manager"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Log out"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Log out, ignoring any existing inhibitors"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Show logout dialogue"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Show shutdown dialogue"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Use dialogue boxes for errors"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Set the current session name"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAME"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Kill session"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Do not require confirmation"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Could not connect to the session manager"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Program called with conflicting options"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "MATE Settings Daemon Helper"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialogue will have an option to save the session."
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "Preferred Image to use for login splash screen"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "Show the splash screen"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "Show the splash screen when the session starts up"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+#~ msgstr ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr ""
+#~ "Waiting for the program to finish. Interrupting the program may cause "
+#~ "you to lose work."
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- MATE Splash Screen"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "MATE Splash Screen"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "The name of the startup program cannot be empty"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "AT-SPI Registry Wrapper"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "Sessions Preferences"
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "MATE Keyring Daemon Wrapper"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Selected option in the logout dialogue"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "This is the option that will be selected in the logout dialogue, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "Configure your sessions"
+
+#~ msgid "Sessions"
+#~ msgstr "Sessions"
+
+#~ msgid "Session management"
+#~ msgstr "Session management"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "MATE GUI Library + EggSMClient"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "Allow TCP connections"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorised) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+
+#~ msgid "_Order:"
+#~ msgstr "_Order:"
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "What happens to the application when it exits."
+
+#~ msgid "_Style:"
+#~ msgstr "_Style:"
+
+#~ msgid "Inactive"
+#~ msgstr "Inactive"
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "Waiting to start or already finished."
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "Started but has not yet reported state."
+
+#~ msgid "Running"
+#~ msgstr "Running"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "A normal member of the session."
+
+#~ msgid "Saving"
+#~ msgstr "Saving"
+
+#~ msgid "Saving session details."
+#~ msgstr "Saving session details."
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "State not reported within timeout."
+
+#~ msgid "Normal"
+#~ msgstr "Normal"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "Unaffected by logouts but can die."
+
+#~ msgid "Never allowed to die."
+#~ msgstr "Never allowed to die."
+
+#~ msgid "Trash"
+#~ msgstr "Wastebasket"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "Discarded on logout and can die."
+
+#~ msgid "Settings"
+#~ msgstr "Settings"
+
+#~ msgid "Always started on every login."
+#~ msgstr "Always started on every login."
+
+#~ msgid "Order"
+#~ msgstr "Order"
+
+#~ msgid "Style"
+#~ msgstr "Style"
+
+#~ msgid "State"
+#~ msgstr "State"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "The Settings Daemon restarted too many times."
+
+#~ msgid "List registered clients, then exit"
+#~ msgstr "List registered clients, then exit"
+
+#~ msgid "PROGRAM..."
+#~ msgstr "PROGRAM…"
+
+#~ msgid ""
+#~ "You must specify at least one program to remove. You can list the "
+#~ "programs with --list.\n"
+#~ msgstr ""
+#~ "You must specify at least one program to remove. You can list the "
+#~ "programs with --list.\n"
+
+#~ msgid "Error: could not connect to the session manager\n"
+#~ msgstr "Error: could not connect to the session manager\n"
+
+#~ msgid "Currently registered clients:\n"
+#~ msgstr "Currently registered clients:\n"
+
+#~ msgid "Couldn't find program %s in session\n"
+#~ msgstr "Couldn't find program %s in session\n"
+
+#~ msgid ""
+#~ "The MATE session manager cannot start properly. Please report this as a "
+#~ "MATE bug. Please include this ICE failure message in the bug report: "
+#~ "'%s'. Meanwhile you could try logging in using the failsafe session."
+#~ msgstr ""
+#~ "The MATE session manager cannot start properly. Please report this as a "
+#~ "MATE bug. Please include this ICE failure message in the bug report: "
+#~ "'%s'. Meanwhile you could try logging in using the failsafe session."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to lock the file '%s'. Please "
+#~ "report this as a MATE bug. Sometimes this error may occur if the file's "
+#~ "directory is unwritable, you could try logging in via the failsafe "
+#~ "session and ensuring that it is."
+#~ msgstr ""
+#~ "The MATE session manager was unable to lock the file '%s'. Please "
+#~ "report this as a MATE bug. Sometimes this error may occur if the file's "
+#~ "directory is unwritable, you could try logging in via the failsafe "
+#~ "session and ensuring that it is."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to read the file: '%s'. If this "
+#~ "file exists it must be readable by you for MATE to work properly. Try "
+#~ "logging in with the failsafe session and removing this file."
+#~ msgstr ""
+#~ "The MATE session manager was unable to read the file: '%s'. If this "
+#~ "file exists it must be readable by you for MATE to work properly. Try "
+#~ "logging in with the failsafe session and removing this file."
+
+#~ msgid ""
+#~ "Could not write to file '%s'. This file must be writable in order for "
+#~ "MATE to function properly. Try logging in with the failsafe session and "
+#~ "removing this file. Also make sure that the file's directory is writable."
+#~ msgstr ""
+#~ "Could not write to file '%s'. This file must be writable in order for "
+#~ "MATE to function properly. Try logging in with the failsafe session and "
+#~ "removing this file. Also make sure that the file's directory is writable."
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "Are you sure you want to log out?"
+
+#~ msgid "Remember running applications"
+#~ msgstr "Remember running applications"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "_Restart the computer"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "Only read saved sessions from the default.session file"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr ""
+#~ "Millisecond period spent waiting for clients to register (0=forever)"
+
+#~ msgid "DELAY"
+#~ msgstr "DELAY"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr "Millisecond period spent waiting for clients to respond (0=forever)"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr "Millisecond period spent waiting for clients to die (0=forever)"
+
+#~ msgid "This session is running as a privileged user"
+#~ msgstr "This session is running as a privileged user"
+
+#~ msgid ""
+#~ "Running a session as a privileged user should be avoided for security "
+#~ "reasons. If possible, you should log in as a normal user."
+#~ msgstr ""
+#~ "Running a session as a privileged user should be avoided for security "
+#~ "reasons. If possible, you should log in as a normal user."
+
+#~ msgid "_Continue"
+#~ msgstr "_Continue"
+
+#~ msgid ""
+#~ "The session might encounter issues if the computer clock is not properly "
+#~ "configured. Please consider adjusting it.\n"
+#~ "\n"
+#~ "Current date is <b>%s</b>."
+#~ msgstr ""
+#~ "The session might encounter issues if the computer clock is not properly "
+#~ "configured. Please consider adjusting it.\n"
+#~ "\n"
+#~ "Current date is <b>%s</b>."
+
+#~ msgid "Failed to launch time configuration tool: %s"
+#~ msgstr "Failed to launch time configuration tool: %s"
+
+#~ msgid "The computer clock appears to be wrong"
+#~ msgstr "The computer clock appears to be wrong"
+
+#~ msgid "_Ignore"
+#~ msgstr "_Ignore"
+
+#~ msgid "_Adjust the Clock"
+#~ msgstr "_Adjust the Clock"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+
+#~ msgid "Try Again"
+#~ msgstr "Try Again"
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "Wait abandoned due to conflict."
+
+#~ msgid "No response to the %s command."
+#~ msgstr "No response to the %s command."
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "The program may be slow, stopped or broken."
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "You may wait for it to respond or remove it."
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "Restart abandoned due to failures."
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "A session shutdown is in progress."
+
+#~ msgid "- Save the current session"
+#~ msgstr "- Save the current session"
+
+#~ msgid "Save changes to the current session before closing?"
+#~ msgstr "Save changes to the current session before closing?"
+
+#~ msgid "If you don't save, changes will be discarded."
+#~ msgstr "If you don't save, changes will be discarded."
+
+#~ msgid "_Close without Saving"
+#~ msgstr "_Close without Saving"
+
+#~ msgid "Current Session"
+#~ msgstr "Current Session"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "Your session has been saved."
+
+#~ msgid "could not connect to the session manager\n"
+#~ msgstr "could not connect to the session manager\n"
+
+#~ msgid "session manager does not support MATE extensions\n"
+#~ msgstr "session manager does not support MATE extensions\n"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "Remove the currently selected client from the session."
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "Apply changes to the current session"
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "The list of programs in the session."
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "Currently running _programs:"
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "Sawfish Window Manager"
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "Marco Window Manager"
+
+#~ msgid "Caja"
+#~ msgstr "Caja"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "Desktop Settings"
+
+#~ msgid "New Startup Program"
+#~ msgstr "New Startup Program"
+
+#~ msgid "_Save current setup"
+#~ msgstr "_Save current setup"
+
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "Automatically save chan_ges to session"
+
+#~ msgid "Save the current session"
+#~ msgstr "Save the current session"
+
+#~ msgid "The session name cannot be empty"
+#~ msgstr "The session name cannot be empty"
+
+#~ msgid "The session name already exists"
+#~ msgstr "The session name already exists"
+
+#~ msgid "Add a new session"
+#~ msgstr "Add a new session"
+
+#~ msgid "Edit session name"
+#~ msgstr "Edit session name"
+
+#~ msgid "Disable"
+#~ msgstr "Disable"
+
+#~ msgid "_Edit"
+#~ msgstr "_Edit"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+
+#~ msgid "Show splash screen on _login"
+#~ msgstr "Show splash screen on _login"
+
+#~ msgid "As_k on logout"
+#~ msgstr "As_k on logout"
+
+#~ msgid "_Sessions:"
+#~ msgstr "_Sessions:"
+
+#~ msgid "_Startup Command:"
+#~ msgstr "_Startup Command:"
+
+#~ msgid "There was an unknown activation error."
+#~ msgstr "There was an unknown activation error."
+
+#~ msgid "Initialize session settings"
+#~ msgstr "Initialise session settings"
diff --git a/po/eo.po b/po/eo.po
new file mode 100644
index 0000000..90a76a6
--- /dev/null
+++ b/po/eo.po
@@ -0,0 +1,592 @@
+# Esperanto translation of mate-session
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# This file is distributed under the same license as the mate-session package.
+#
+# Joël BRICH <[email protected]>, 2003.
+# Guillaume SAVATON <[email protected]>, 2006
+# Dominique PELLÉ <[email protected]>, 2006
+# Joop EGGEN <[email protected]>, 2008.
+# Chris PAVLINA <[email protected]>, 2008.
+# Michael MORONI, <[email protected] >, 2009.
+# Donald ROGERS, <[email protected]>, 2009.
+# Benno SCHULENBERG <[email protected]>, 2010
+# Kristjan SCHMIDT <[email protected]>, 2009, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session 2.3.6.2\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2010-06-17 07:55+0000\n"
+"PO-Revision-Date: 2010-06-25 04:41+0200\n"
+"Last-Translator: Kristjan SCHMIDT <[email protected]>\n"
+"Language-Team: Esperanto <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"X-Launchpad-Export-Date: 2010-06-24 17:52+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Elekti komandon"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Aldoni lanĉan programon"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Redakti lanĉan programon"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "La lanĉa komando ne povas esti malplena"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "La lanĉa komando ne estas valida"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Enŝaltite"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Piktogramo"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Programo"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Agordoj de startaj aplikaĵoj"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Sen nomo"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Sen priskribo"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Versio de ĉi tiu aplikaĵo"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Ne eblas montri helpdokumenton"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "GNOMA agordardemona helpilo"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Ĉi tiu seanco ensalutas vin al MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Defaŭlta seanco"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Dosieradministrilo"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "Se enŝaltite, mate-session demandos la uzanton antaŭ ol fini seancon."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Se enŝaltite, mate-session aŭtomate konservos la seancon. Alie, la "
+"elsalutdialogo havos opcion por konservi la seancon."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Listo de aplikaĵoj kiuj apartenas al la defaŭlta seanco."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Listo de komponantoj bezonataj kiel parto de seanco. (Ĉiu elemento nomas "
+"ŝlosilon sub \"/desktop/mate/session/required_components\"). La ilo "
+"'Preferataj startaj aplikaĵoj' kutime ne permesas ke uzanto forigu "
+"komponanton de seanco, kaj la seanca administrilo aŭtomate realdonas la "
+"bezonatajn komponantojn al la seanco je ensaluto se ili estas forigitaj."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Elsalut-demando"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panelo"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Preferata bildo por la ensaluta salutŝildo"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "Necesaj seancelementoj"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "Konservi seancojn"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "Montri la salutŝildon"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "Montri la salutŝildon kiam la seanco komenciĝas"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"La dosieradministrilo provizas la labortablajn piktogramojn kaj ebligas al "
+"vi interagi kun viaj konservitaj dosieroj."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "La tempo en minutoj antaŭ ol konsideri la seancon senokupa."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"La panelo provizas la breton je la supro aŭ malsupro de la ekrano enhavantan "
+"menuojn, la fenestroliston, statpiktogramojn, la horloĝon, k.t.p."
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"La fenestra administrilo estas la programo kiu desegas la titolbreton kaj "
+"randojn ĉirkaŭ fenestroj, kaj ebligas al vi movi kaj aligrandigi fenestrojn."
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Tio estas relativa dosierindiko rilate al la dosierujo $datadir/pixmaps/. "
+"Nomoj de subdosierujoj kaj bildoj estas validaj valoroj. Ŝanĝitaj valoroj "
+"efikos post la sekva ensaluto."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "La tempo antaŭ ol konsideri la seancon senokupa."
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Fenestroadministrilo"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Kelkaj programoj ankoraŭ rulas:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"Atendas ĝis programo finiĝas. Interrompi la programon eble kaŭzas perdon de "
+"laboro por vi."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Elektu kiujn aplikaĵojn startigi kiam vi ensalutas."
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Komencaj aplikaĵoj"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Aldonaj komencaj a_plikaĵoj:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "Foliumi..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "Ko_mando:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Kom_ento:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Opcioj"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Lanĉaj programoj"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Memori plenumiĝantajn aplikaĵojn kiam vi elsalutas"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Nomo:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Memorigi nun rulantan aplikaĵon"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Dosiero ne estas valida .desktop-dosiero"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Nerekonata labortrabla dosierversio '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Lanĉante %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Aplikaĵo ne akceptas dokumentojn per komandlinio"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Nerekonata lanĉparametro: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Ne eblas transdoni dokument-URIojn al labortabla elemento 'Type=Link'"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Ne estas lanĉebla elemento"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Elŝalti konekton al la seancoadministrilo"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Specifi dosieron kiun enhavas konservitan agordon"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "DOSIERO"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Specifi seancoadministran identigilon"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Opcioj de seancoadministrilo:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Montri opciojn de seancoadministrilo"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Ekzistas problemo pri la konfigura servilo.\n"
+"(%s eliris kun stato %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Piktogramo '%s' ne trovita"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Nekonate"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Programo ankoraŭ rulas:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Iuj programoj ankoraŭ rulas:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Atendas ĝis programoj finiĝas. Interrompi ĉi tiujn programojn eble perdigos "
+"laboron al vi."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Tamen ŝanĝi uzanton"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Tamen elsaluti"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Tamen paŭzigi"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Tamen pasivumigi"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "Tamen elŝalti"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Tamen restarti"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Ŝlosi la ekranon"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Nuligi"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Vi estos aŭtomate malkonektata post %d sekundo."
+msgstr[1] "Vi estos aŭtomate malkonektata post %d sekundoj."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Ĉi tiu sistemo aŭtomate haltos post %d sekundo."
+msgstr[1] "Ĉi tiu sistemo aŭtomate haltos post %d sekundoj."
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Vi ensalutis kiel \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "Ĉu elsaluti el la sistemo nun?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "Ŝangi _uzanton"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "E_lsaluti"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "Ĉu elŝalt tiun sistemon nun?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "_Interrompi"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "_Pasivumigi"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "_Restarti"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "_Elŝalti"
+
+#: ../mate-session/gsm-manager.c:1220 ../mate-session/gsm-manager.c:1912
+msgid "Not responding"
+msgstr "Ne respondas"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking log out."
+msgstr "Ĉi tiu programo baras elsaluton."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "Rifuzas novan klientkonekton ĉar la seanco estas nun elsalutata.\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Ne povis krei ICE-aŭskultantan kontaktoskatolon: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Ne povas startigi ensalutan seancon (kaj ne povas konekti al la X-servilo)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Transiri implicitajn aŭtomatajn startdosierujojn"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to lookup default session"
+msgstr "MateConf-ŝlosilo uzata por trovi implicitan seancon"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Enŝalti sencimigan kodon"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Ne ŝargi propre specifitajn aplikaĵojn"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - la seancadministrilo de MATE"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- Salutŝildo de MATE"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "Salutŝildo de MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Elsaluti"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Elsaluti ignorante iujn ajn ekzistantajn preventojn"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Montri elsalutdialogon"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Montri elŝaltodialogon"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Uzi dialogkestojn por eraroj"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Agordi la aktualan sesionomon"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NOMO"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Mortigi seancon"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Ne postuli konfirmon"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Ne povis konekti al la seancoadministrilo"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Programo vokata kun konfliktaj parametroj"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "Via seanco estas konservita."
+
+#~ msgid "Failed to save session"
+#~ msgstr "Fiaskis konservi la seancon"
+
+#~ msgid "Could not connect to the session bus"
+#~ msgstr "Ne povis konekti al la seancobuso"
+
+#~ msgid "Failsafe MATE"
+#~ msgstr "MATE (panetolere)"
+
+#~ msgid "This session logs you into MATE without user applications"
+#~ msgstr "Ĉi tiu seanco ensalutas vin en MATE sen uzantaj apliakĵoj"
+
+#~ msgid "Ends your session and logs you out."
+#~ msgstr "Finas vian seancon kaj elsalutas vin."
+
+#~ msgid ""
+#~ "Suspends your session, allowing another user to log in and use the "
+#~ "computer."
+#~ msgstr ""
+#~ "Interrompas vian seancon, permesante al alia uzanto ensaluti kaj uzi la "
+#~ "komputilon."
+
+#~ msgid "Shut Down the Computer"
+#~ msgstr "Elŝalti la komputilon"
+
+#~ msgid "Ends your session and turns off the computer."
+#~ msgstr "Finas vian seancon kaj elŝaltas la komputilon."
+
+#~ msgid "Ends your session and restarts the computer."
+#~ msgstr "Finas vian seancon kaj restartigas la komputilon."
+
+#~ msgid ""
+#~ "Suspends your session quickly, using minimal power while the computer "
+#~ "stands by."
+#~ msgstr ""
+#~ "Rapide interrompas vian seancon, uzante minimuman elektron dum kiam la "
+#~ "komputilo atendas."
+
+#~ msgid ""
+#~ "Suspends your session, using no power until the computer is restarted."
+#~ msgstr ""
+#~ "Interrompas vian seancon, uzante neniun elektron ĝis kiam la komputilo "
+#~ "estas restartigata."
+
+#~ msgid "Cannot find help."
+#~ msgstr "Ne povas trovi helpon"
diff --git a/po/es.po b/po/es.po
new file mode 100644
index 0000000..b05d018
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,630 @@
+# translation of mate-session.master.po to Español
+# mate-session Spanish translation.
+# Copyright © 1998-2003, 2006, 2007, 2008 the Free Software Foundation, Inc.
+# Pablo Saratxaga <[email protected]> 1999-2000
+# Javier Gómez <[email protected]> 2000
+# Juanjo Alvarez 2000
+# Ismael Olea <[email protected]> 2000
+# Manuel de Vega Barreiro <[email protected]> 2000
+# Juan Manuel García Molina <[email protected]> 2001-2002.
+#
+# Miguel de Icaza,computo,622-4680 <[email protected]> 1998.
+# Francisco Javier F. Serrador <[email protected]>, 2003.
+# Francisco Javier F. Serrador <[email protected]>, 2005, 2006.
+# Jorge González <[email protected]>, 2007, 2009, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.master\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2010-09-01 08:31+0000\n"
+"PO-Revision-Date: 2010-09-04 09:33+0200\n"
+"Last-Translator: Jorge González <[email protected]>\n"
+"Language-Team: Español <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Seleccionar comando"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Añadir programa al inicio"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Editar programa al inicio"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "El comando de inicio no puede estar vacío"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "El comando de inicio no es válido"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Activado"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Icono"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Programa"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Preferencias de las aplicaciones al inicio"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Sin nombre"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Sin descripción"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Versión de esta aplicación"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "No se pudo mostrar el documento de ayuda"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Esta sesión accede a MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Sesión predeterminada"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Gestor de archivos"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Si está activado, mate-session preguntará al usuario antes de cerrar una "
+"sesión."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Si está activado, mate-session guardará la sesión automáticamente."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Lista de aplicaciones que son parte de la sesión predeterminada."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Lista de componentes necesarios como partes de la sesión. (Cada elemento "
+"tiene una clave bajo \"/desktop/mate/session/required_components\".) "
+"Generalmente la miniaplicación de la sesión no permitirá que los usuarios "
+"eliminen componentes necesarios para la sesión, y el gestor de sesiones "
+"añadirá automáticamente los componentes necesarios a la sesión, si se "
+"eliminaron."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Diálogo de salida"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "El panel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Componentes de sesión requeridos"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Guardar sesiones"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"El gestor de archivos proporciona los iconos de escritorio y le permite "
+"interactuar con sus archivos guardados."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"El número de minutos de inactividad antes de considerar la sesión inactiva."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"El panel proporciona la barra en la parte superior y/o inferior de la "
+"pantalla y que contiene los menús, la lista de ventanas, los iconos de "
+"estado, el reloj, etc."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"El gestor de ventanas es el programa que dibuja las barras de título y los "
+"bordes alrededor de las ventanas, y le permite mover y redimensionar "
+"ventanas."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Tiempo antes de que la sesión se considere inactiva"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Gestor de ventanas"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Algunos programas aún se están ejecutando:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+#| msgid ""
+#| "Waiting for programs to finish. Interrupting these programs may cause "
+#| "you to lose work."
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"Esperando a que los programas finalicen. Interrumpir estos programas puede "
+"causar la pérdida de su trabajo."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Elija qué aplicaciones iniciar al iniciar la sesión"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Aplicaciones al inicio"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "_Programas adicionales para iniciar:"
+
+#: ../data/session-properties.ui.h:2
+#| msgid "Browse..."
+msgid "Browse…"
+msgstr "Examinar…"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "Co_mando:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Com_entario:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Opciones"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Programas al inicio"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr ""
+"Recordar _automáticamente las aplicaciones en ejecución al salir de la sesión"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Nombre:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Recordar las aplicaciones ejecutándose actualmente"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "El archivo no es un archivo .desktop válido"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "No se reconoce la versión «%s» del archivo desktop"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Iniciando %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "La aplicación no acepta documentos en la línea de comandos"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Opción de lanzamiento no reconocida: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"No se pueden pasar los URI de documentos a entradas de escritorio Type=Link"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "No es un elemento lanzable"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Desactivar la conexión con el gestor de sesiones"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Especifique el archivo que contiene la configuración guardada"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "ARCHIVO"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Especifique el ID de gestión de la sesión"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Opciones de gestión de sesión:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Mostrar opciones de gestión de sesión"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Hay un problema con la configuración del servidor.\n"
+"(%s salió con el estado %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "No se encontró el icono «%s»"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Desconocido"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Aún se está ejecutando un programa:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Aún se están ejecutando algunos programas:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Esperando a que los programas finalicen. Interrumpir estos programas puede "
+"causar pérdidas de datos."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Cambiar usuario de todas formas"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+#| msgid "Logout Anyway"
+msgid "Log Out Anyway"
+msgstr "Salir de todas formas"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Suspender de todas formas"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Hibernar de todas formas"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+#| msgid "Shutdown Anyway"
+msgid "Shut Down Anyway"
+msgstr "Apagar de todas formas"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Reiniciar de todas formas"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Bloquear pantalla"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Saldrá automáticamente de la sesión en %d segundo."
+msgstr[1] "Saldrá automáticamente de la sesión en %d segundos."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "El sistema se apagará automáticamente en %d segundo."
+msgstr[1] "El sistema se apagará automáticamente en %d segundos."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Ha iniciado sesión como «%s»."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "¿Cerrar la sesión en este sistema ahora?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "Ca_mbiar usuario"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "Ce_rrar la sesión"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "¿Apagar ahora este sistema?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "_Suspender"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Hibernar"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "_Reiniciar"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "_Apagar"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "No responde"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+#| msgid "This program is blocking log out."
+msgid "This program is blocking logout."
+msgstr "Este programa está bloqueando el cierre de sesión."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Rechazando la conexión de un nuevo cliente porque actualmente se está "
+"cerrando la sesión\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "No se pudo crear el socket de escucha ICE: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"No se pudo iniciar el inicio de sesión (y fue imposible conectar con el "
+"servidor X)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Sobreescribir los directorios de inicio automático estándar"
+
+#: ../mate-session/main.c:438
+#| msgid "MateConf key used to lookup default session"
+msgid "MateConf key used to look up default session"
+msgstr "Clave de MateConf usada para buscar la sesión predeterminada"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Activar el código de depuración"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "No cargar las aplicaciones especificadas por el usuario"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - El gestor de sesiones de MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Cerrar la sesión"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Cerrar la sesión, ignorando cualquier inhibidor existente"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Mostrar el diálogo de fin de sesión"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Mostrar el diálogo de apagado"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Usar cajas de diálogo para los errores"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Establecer el nombre de la sesión actual"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NOMBRE"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Terminar la sesión"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "No requerir confirmación"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "No se pudo conectar con el gestor de sesiones"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Se llamó al programa con opciones en conflicto"
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "La imagen preferida para mostrar como pantalla de bienvenida"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "Mostrar la pantalla de bienvenida"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "Muestra la pantalla de bienvenida cuando se inicia la sesión"
+
+#~| msgid ""
+#~| "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~| "Sub-directories and image names are valid values. Changing this value "
+#~| "will effect the next session login."
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will affect the next session login."
+#~ msgstr ""
+#~ "Esta es una ruta relativa basada en el directorio $datadir/pixmaps/. Los "
+#~ "subdirectorios y los nombres de imágenes son valores válidos. El cambio "
+#~ "de este valor afectará al siguiente inicio de sesión."
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr ""
+#~ "Esperando a que finalice el programa. Interrumpir el programa puede "
+#~ "causar pérdidas de datos."
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- Pantalla de bienvenida de MATE"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "Pantalla de bienvenida de MATE"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "Se ha solicitado soporte de tecnologías de asistencia para esta sesión, "
+#~ "pero no se ha encontrado el registro para accesibilidad. Asegúrese de que "
+#~ "el paquete AT-SPI está instalado. Su sesión se ha iniciado sin soporte de "
+#~ "tecnologías de asistencia."
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "Envolvente de registro AT SPI"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "Ayudante del demonio de preferencias de MATE"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "Si está activado, mate-session guardará la sesión automáticamente. En "
+#~ "caso contrario, el diálogo de salida presentará la opción de guardar la "
+#~ "sesión."
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "El nombre del programa de inicio no puede estar vacío"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "Preferencias de la sesión"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Opción seleccionada en el diálogo de cierre de sesión"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "Esta es la opción que estará seleccionado en el diálogo de cierre de "
+#~ "sesión, los valores válidos son \"logout\" para cerrar la sesión, "
+#~ "\"shutdown\" para apagar el sistema y \"restart\" para reiniciar el "
+#~ "sistema."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "Configure sus sesiones"
+
+#~ msgid "Sessions"
+#~ msgstr "Sesiones"
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "Envolvente del demonio del Depósito de claves de MATE"
+
+#~ msgid "Session management"
+#~ msgstr "Gestión de sesiones"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "Biblioteca IGU de MATE + EggSMClient"
+
+#~ msgid ""
+#~ "The Window manager that mate-session will start. Valid values are "
+#~ "\"marco\" and \"compiz\"."
+#~ msgstr ""
+#~ "El Gestor de ventanas que mate-session iniciará. Los valores válidos son "
+#~ "«marco» y «compiz»."
+
+#~ msgid "Window Manager to start"
+#~ msgstr "Gestor de ventanas que iniciar"
+
+#~ msgid "gtk-cancel"
+#~ msgstr "gtk-cancel"
diff --git a/po/et.po b/po/et.po
new file mode 100644
index 0000000..bd379a6
--- /dev/null
+++ b/po/et.po
@@ -0,0 +1,403 @@
+# MATE seansi eesti keele tõlge.
+# Estonian translation of mate-session.
+#
+# Copyright (C) 1999, 2001, 2002, 2004-2006 Free Software Foundation, Inc.
+# Copyright (C) 2006–2010 The MATE Project.
+#
+# Lauris Kaplinski <[email protected]>, 1999.
+# Ilmar Kerm <[email protected]>, 2001, 2002.
+# Tõivo Leedjärv <[email protected]>, 2002.
+# Priit Laes <[email protected]>, 2004-2006.
+# Ivar Smolin <[email protected]>, 2005–2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session 2.32\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2010-09-21 19:47+0000\n"
+"PO-Revision-Date: 2010-09-01 13:09+0300\n"
+"Last-Translator: Mattias Põldaru <mahfiaz gmail com>\n"
+"Language-Team: Estonian <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Select Command"
+msgstr "Käsu valimine"
+
+msgid "Add Startup Program"
+msgstr "Käivitusprogrammi lisamine"
+
+msgid "Edit Startup Program"
+msgstr "Käivitusprogrammi redigeerimine"
+
+msgid "The startup command cannot be empty"
+msgstr "Käivituskäsku ei tohi tühjaks jätta"
+
+msgid "The startup command is not valid"
+msgstr "Käivituskäsk pole korrektne"
+
+msgid "Enabled"
+msgstr "Lubatud"
+
+msgid "Icon"
+msgstr "Ikoon"
+
+msgid "Program"
+msgstr "Programm"
+
+msgid "Startup Applications Preferences"
+msgstr "Käivitatavate rakenduste eelistused"
+
+msgid "No name"
+msgstr "Nimi puudub"
+
+msgid "No description"
+msgstr "Kirjeldus puudub"
+
+msgid "Version of this application"
+msgstr "Rakenduse versioon"
+
+msgid "Could not display help document"
+msgstr "Abidokumenti pole võimalik kuvada"
+
+msgid "MATE"
+msgstr "MATE"
+
+msgid "This session logs you into MATE"
+msgstr "Selle seansiga logitakse sind MATE keskkonda sisse"
+
+msgid "Default session"
+msgstr "Vaikimisi seanss"
+
+msgid "File Manager"
+msgstr "Failihaldur"
+
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Kui määratud, siis mate-session küsib kasutaja nõusolekut enne seansi "
+"lõpetamist."
+
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Kui lubatud, salvestab mate-session seansi automaatselt."
+
+msgid "List of applications that are part of the default session."
+msgstr "Vaikimisi seansi osaks olevate rakenduste nimekiri."
+
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Seansi osaks olevate komponentide nimekiri. (Iga kirje kohta on \"/desktop/"
+"mate/session/required_components\" all samanimeline võti.) Käivitatavate "
+"rakenduste eelistused tavaliselt ei luba kasutajal seansist vajalikke "
+"komponente eemaldada ja seansihaldur taastab sisselogimise ajal automaatselt "
+"kasutaja poolt eemaldatud vajalikud komponendid."
+
+msgid "Logout prompt"
+msgstr "Väljalogimisviip"
+
+msgid "Panel"
+msgstr "Paneel"
+
+msgid "Required session components"
+msgstr "Vajalikut seansikomponendid"
+
+msgid "Save sessions"
+msgstr "Salvesta seansid"
+
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Failihaldur tagab töölauaikoonide funktsionaalsuse ja võimaldab salvestatud "
+"failidega tegeleda."
+
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "Mitu minutit peab mööduma selleks, et seanss loetaks jõudeolevaks."
+
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Paneel tekitab ekraani üla- või allosas oleva riba. Nendel ribadel võivad "
+"asuda menüüd, akende nimekiri, olekuikoonid, kell jms."
+
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Aknahaldur on programm, mis joonistab akendele raame ja pealkirjaribasid, "
+"samuti hoolitseb selle eest, et akende suurust oleks võimalik muuta."
+
+msgid "Time before session is considered idle"
+msgstr "Seansi jõudeoleku saavutamiseks kuluv aeg"
+
+msgid "Window Manager"
+msgstr "Aknahaldur"
+
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Mõned programmid töötavad ikka veel:</b>"
+
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"Programmi töö lõpetamise järel ootamine. Programmi katkestamine võib "
+"põhjustada (salvestamata) töö kaotsimineku."
+
+msgid "Choose what applications to start when you log in"
+msgstr "Sisselogimisel käivitatavate rakenduste valimine"
+
+msgid "Startup Applications"
+msgstr "Käivitatavad rakendused"
+
+msgid "Additional startup _programs:"
+msgstr "Täiendavad käivitus_programmid:"
+
+msgid "Browse…"
+msgstr "Sirvi..."
+
+msgid "Co_mmand:"
+msgstr "_Käsk:"
+
+msgid "Comm_ent:"
+msgstr "Ko_mmentaar:"
+
+msgid "Options"
+msgstr "Valikud"
+
+msgid "Startup Programs"
+msgstr "Käivitusprogrammid"
+
+msgid "_Automatically remember running applications when logging out"
+msgstr "Väljalogimisel _peetakse töötavad rakendused automaatselt meeles"
+
+msgid "_Name:"
+msgstr "_Nimi:"
+
+msgid "_Remember Currently Running Application"
+msgstr "_Jäta praegu töötavad rakendused meelde"
+
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Fail pole korrektne .desktop-fail"
+
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Töölauafaili tundmatu versioon '%s'"
+
+#, c-format
+msgid "Starting %s"
+msgstr "Käivitamine: %s"
+
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Rakendus ei toeta käsurealt määratavaid dokumente"
+
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Tundmatu käivitusvalik: %d"
+
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"Dokumendi URI-sid pole võimalik 'Liik=Viit' tüüpi töölauakirjetele edastada"
+
+#, c-format
+msgid "Not a launchable item"
+msgstr "Pole käivitatav kirje"
+
+msgid "Disable connection to session manager"
+msgstr "Seansihalduriga ühendumise keelamine"
+
+msgid "Specify file containing saved configuration"
+msgstr "Salvestatud seadistusi sisaldava faili määramine"
+
+msgid "FILE"
+msgstr "FAIL"
+
+msgid "Specify session management ID"
+msgstr "Seansihalduse ID määramine"
+
+msgid "ID"
+msgstr "ID"
+
+msgid "Session management options:"
+msgstr "Seansihalduse valikud:"
+
+msgid "Show session management options"
+msgstr "Seansihalduse valikute näitamine"
+
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Seadistuste serveriga tekkis probleem.\n"
+"(%s lõpetas olekuga %d)"
+
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Ikooni '%s' ei leitud"
+
+msgid "Unknown"
+msgstr "Tundmatu"
+
+msgid "A program is still running:"
+msgstr "Üks programm töötab ikka veel:"
+
+msgid "Some programs are still running:"
+msgstr "Mõned programmid töötavad ikka veel:"
+
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Programmi töö lõpetamise järel ootamine. Nende programmide katkestamine "
+"võib põhjustada (salvestamata) tööde kaotsimineku."
+
+msgid "Switch User Anyway"
+msgstr "Vaheta ikkagi kasutajat"
+
+msgid "Log Out Anyway"
+msgstr "Logi ikkagi välja"
+
+msgid "Suspend Anyway"
+msgstr "Alusta ikkagi uinakut"
+
+msgid "Hibernate Anyway"
+msgstr "Alusta ikkagi talveund"
+
+msgid "Shut Down Anyway"
+msgstr "Lülita ikkagi välja"
+
+msgid "Reboot Anyway"
+msgstr "Taaskäivita ikkagi"
+
+msgid "Lock Screen"
+msgstr "Lukusta ekraan"
+
+msgid "Cancel"
+msgstr "Tühista"
+
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Sind logitakse %d sekundi pärast automaatselt välja."
+msgstr[1] "Sind logitakse %d sekundi pärast automaatselt välja."
+
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "See süsteem jäetakse %d sekundi pärast automaatselt seisma."
+msgstr[1] "See süsteem jäetakse %d sekundi pärast automaatselt seisma."
+
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Sa oled hetkel sisse logitud kasutajana \"%s\"."
+
+msgid "Log out of this system now?"
+msgstr "Kas logida sellest süsteemist välja?"
+
+msgid "_Switch User"
+msgstr "_Vaheta kasutajat"
+
+msgid "_Log Out"
+msgstr "Logi _välja"
+
+msgid "Shut down this system now?"
+msgstr "Kas jätta süsteem seisma?"
+
+msgid "S_uspend"
+msgstr "_Alusta uinakut"
+
+msgid "_Hibernate"
+msgstr "_Alusta talveund"
+
+msgid "_Restart"
+msgstr "_Taaskäivita"
+
+msgid "_Shut Down"
+msgstr "_Seiska"
+
+msgid "Not responding"
+msgstr "Ei vasta"
+
+msgid "This program is blocking logout."
+msgstr "See programm takistab väljalogimist."
+
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Uue kliendi ühendus lükati tagasi, kuna hetkel jäetakse seanss seisma\n"
+
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ICE kuulamissoklit pole võimalik luua: %s"
+
+#. Oh well, no X for you!
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Sisselogimise seanssi pole võimalik käivitada (ja X-serveriga pole võimalik "
+"ühendust saada)"
+
+msgid "Override standard autostart directories"
+msgstr ""
+"Standardsete automaatkäivituse kataloogide asemel muude kataloogide "
+"kasutamine"
+
+msgid "MateConf key used to look up default session"
+msgstr "MateConf'i võti vaikimisi seansi otsimiseks"
+
+msgid "Enable debugging code"
+msgstr "Silumiskoodi lubamine"
+
+msgid "Do not load user-specified applications"
+msgstr "Kasutaja määratud rakendusi ei laadita"
+
+msgid " - the MATE session manager"
+msgstr " - MATE seansihaldur"
+
+msgid "Log out"
+msgstr "Logi välja"
+
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Väljalogimine, kõiki olemasolevaid piiranguid eirates"
+
+msgid "Show logout dialog"
+msgstr "Väljalogimisdialoogi näitamine"
+
+msgid "Show shutdown dialog"
+msgstr "Seiskamisdialoogi näitamine"
+
+msgid "Use dialog boxes for errors"
+msgstr "Vigade jaoks dialoogiakna kasutamine"
+
+#. deprecated options
+msgid "Set the current session name"
+msgstr "Määra aktiivse seansi nimi"
+
+msgid "NAME"
+msgstr "NIMI"
+
+msgid "Kill session"
+msgstr "Kõrvalda seanss"
+
+msgid "Do not require confirmation"
+msgstr "Kinnitust pole vaja küsida"
+
+msgid "Could not connect to the session manager"
+msgstr "Seansihalduriga pole võimalik ühenduda"
+
+msgid "Program called with conflicting options"
+msgstr "Programm kutsuti välja vastuoluliste andmetega"
diff --git a/po/eu.po b/po/eu.po
new file mode 100644
index 0000000..cddbf63
--- /dev/null
+++ b/po/eu.po
@@ -0,0 +1,548 @@
+# translation of eu.po to Basque
+# Copyright (C) 1999, 2004, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+#
+# Joseba Bidaurrazaga van Dierdonck <[email protected]>, 2000.
+# Hizkuntza Politikarako Sailburuordetza <[email protected]>, 2004.
+# Iñaki Larrañaga Murgoitio <[email protected]>, 2005, 2006, 2007, 2008, 2009, 2010.
+# Iñaki Larrañaga Murgoitio <[email protected]>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: eu\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-08-26 21:06+0200\n"
+"PO-Revision-Date: 2010-03-23 16:22+0100\n"
+"Last-Translator: Iñaki Larrañaga Murgoitio <[email protected]>\n"
+"Language-Team: Basque <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Hautatu komandoa"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Gehitu abioko programa"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Editatu abioko programa"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Abioko komandoa ezin da hutsik egon"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Abioko komandoa ez da baliozkoa"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Gaituta"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Ikonoa"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Programa"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Abioko aplikazioen hobespenak"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Izenik ez"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Azalpenik ez"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "Aplikazio honen bertsioa"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Ezin izan da laguntzako dokumentua bistaratu"
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+"Laguntzako teknologiaren euskarria eskatu da saio honen hasieran, baina ez "
+"da erabilgarritasunaren erregistrorik aurkitu. Ziurtatu AT-SPI paketea "
+"instalatuta dagoela. Saioa laguntzako teknologiaren euskarririk gabe "
+"abiarazi da."
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr "AT SPI erregistro-doitzailea"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "MATEren ezarpenen daemonaren laguntzailea"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Saio honek MATEn sartuko zaitu"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Saio lehenetsia"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Fitxategi-kudeatzailea"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Gaituta badago, mate-session-ek erabiltzaileari galdetuko dio saioa bukatu "
+"aurretik."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Gaituta badago, mate-session-ek saioa automatikoki gordeko du. Bestela, "
+"saio-amaierako elkarrizketa-koadroak saioa gordetzeko aukera emango du."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Saio lehenetsiko zati diren aplikazioen zerrenda."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Saioaren zati gisa beharrezkoak diren osagaien zerrenda. Elementu bakoitzak "
+"gako bat izendatzen du \"/desktop/mate/session/required-components\" pean. "
+"Abioko aplikazioen hobespenak normalean ez dio erabiltzaileari uzten "
+"beharrezko osagai bat saiotik kentzen, eta saio-kudeatzaileak automatikoki "
+"gehitzen du beharrezko osagaia berriro saioari (kenduta egonez gero)."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Saio-amaierako gonbita"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panela"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Gogoko irudia saio-hasierako 'harrerako pantailan' erabiltzeko"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "Saioaren beharrezko osagaiak"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "Gorde saioak"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "Erakutsi harrerako pantaila"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "Erakutsi harrerako pantaila saioa abiaraztean"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Fitxategi-kudeatzaileak mahaigaineko ikonoak eskaintzen ditu, eta gordetako "
+"fitxategiekin elkarreragitea baimentzen dizu."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "The number of minutes of inactivity before the session is considered idle."
+msgstr "Inaktibitateko minutu kopurua, saioa inaktibotzat hartu arte."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Panelak pantailaren goiko edo beheko barra eskaintzen du. Panel batek "
+"menuak, leihoen zerrenda, egoera-ikonoak, ordularia e.a. eduki ditzake."
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Leiho-kudeatzailea leihoen inguruan titulu-barra eta ertzak marrazten ditu, "
+"eta leihoak lekuz edo tamainaz aldatzea uzten du."
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Hau $datadir/pixmaps/ direktorioan oinarritutako bide-izen erlatiboa da. "
+"Azpidirektorioak eta irudien izenak balio baliagarriak dira. Balio hau "
+"aldatzeak hurrengo saio-hasiera eragingo du."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "Denbora saioa inaktibotzat hartu arte"
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Leiho-kudeatzailea"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Programa batzuk oraindik exekutatzen ari dira:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr "Programa amaitu zain. Programa etetzeak zure lana galtzea eragin lezake."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Aukeratu zein aplikazio abiarazi saioa-hasten duzunean"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Abioko aplikazioak"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Abioko _programa osagarriak:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "Arakatu..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Komandoa:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "_Iruzkina:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Aukerak"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Abioko programak"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "Gogoratu _automatikoki exekutatzen ari diren aplikazioak saioa amaitzean"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Izena:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Gogoratu unean exekutatzen ari diren aplikazioak"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Fitxategia ez da baliozko '.desktop' fitxategia"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Mahaigaineko fitxategiaren '%s' bertsioa ezezaguna"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "%s abiarazten"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Aplikazioak ez ditu dokumenturik onartzen komando-lerroan"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Abiarazteko aukera ezezaguna: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Ezin zaio dokumentuaren URIrik eman mahaigaineko 'Type=Link' sarrerari"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Ez da elementu abiarazgarria"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Desgaitu konexioa saio-kudeatzailearekin"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Zehaztu gordetako konfigurazioa duen fitxategia"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FITXATEGIA"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Zehaztu saio-kudeatzailearen IDa"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "IDa"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Saio-kudeatzailearen aukerak:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Erakutsi saio-kudeatzailearen aukerak"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Arazo bat dago konfigurazioko zerbitzariarekin.\n"
+"(%s irtenda %d egoerarekin)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Ez da '%s' ikonoa aurkitu"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Ezezaguna"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Programa bat oraindik exekutatzen ari da:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Programa batzuk oraindik exekutatzen ari dira:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Programak amaitu zain. Programa hauek etetzeak zure lanak galtzea eragin "
+"lezake."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Aldatu erabiltzailez hala ere"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Amaitu saioa hala ere"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Eseki hala ere"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Hibernatu hala ere"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "Itzali hala ere"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Berrabiarazi hala ere"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Blokeatu pantaila"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Utzi"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Automatikoki zure saioa segundo %d barru amaituko da."
+msgstr[1] "Automatikoki zure saioa %d segundotan amaituko da."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Automatikoki sistema segundo %d barru itzaliko da."
+msgstr[1] "Automatikoki sistema %d segundotan itzaliko da."
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Unean \"%s\" gisa zaude saioan hasita."
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "Amaitu saioa sistematik orain?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "_Aldatu erabiltzailez"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "Amaitu _saioa"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "Itzali sistema orain?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "_Eseki"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "_Hibernatu"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "_Berrabiarazi"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "_Itzali"
+
+#: ../mate-session/gsm-manager.c:1158 ../mate-session/gsm-manager.c:1850
+msgid "Not responding"
+msgstr "Ez du erantzuten"
+
+#: ../mate-session/gsm-xsmp-client.c:1206
+msgid "This program is blocking log out."
+msgstr "Programa honek saioa amaitzea blokeatzen ari da."
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "Bezero berrien konexioa ukatzen, unean saioa itzaltzen ari delako\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Ezin izan da entzuteko ICE socket-a sortu: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "Ezin da saio-hasiera hasi (eta ezin da X zerbitzariarekin konektatu)"
+
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr "Jaramonik ez egin hasiera automatikoko direktorio estandarrei"
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr "Erabilitako MateConf gakoa saio lehenetsia bilatzeko"
+
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr "Gaitu arazketa-kodea"
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr "Ez kargatu erabiltzaileak zehaztutako aplikazioak"
+
+#: ../mate-session/main.c:457
+msgid " - the MATE session manager"
+msgstr "- MATEren saio-kudeatzailea"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- MATEren harrerako pantaila"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "MATEren harrerako pantaila"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Amaitu saioa"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Amaitu saioa (ezikusi egin dauden inhibitzaileei)"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Erakutsi 'Amaitu saioa' elkarrizketa-koadroa"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Erakutsi 'Itzali' elkarrizketa-koadroa"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Erabili erroreen elkarrizketa-koadroak"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Ezarri uneko saioaren izena"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "IZENA"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Hil saioa"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Ez du baieztapenik behar"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Ezin izan da saio-kudeatzailearekin konektatu"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Gatazkan dauden aukerekin deitu da programa"
+
diff --git a/po/fa.po b/po/fa.po
new file mode 100644
index 0000000..c8250da
--- /dev/null
+++ b/po/fa.po
@@ -0,0 +1,533 @@
+# Persian translation of mate-session.
+# Copyright (C) 2002, 2003, 2005, 2006 Sharif FarsiWeb, Inc.
+# This file is distributed under the same license as mate-session package.
+# Roozbeh Pournader <[email protected]>, 2002, 2003.
+# Elnaz Sarbar <[email protected]>, 2005, 2006.
+# Meelad Zakaria <[email protected]>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session 2.10.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-02-16 08:32+0100\n"
+"PO-Revision-Date: 2006-02-26 17:37+0330\n"
+"Last-Translator: Elnaz Sarbar <[email protected]>\n"
+"Language-Team: Persian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../mate-session/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "اتصالات TCP مجازند"
+
+#: ../mate-session/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"به دلایل امنیتی، mate-session در سیستم‌هایی که ‎_IceTcpTransNoListen()‎ دارند "
+"(سیستم‌های XFree86)، روی درگاه‌های TCP منتظر اتصال نمی‌ماند. این گزینه اتصال از "
+"میزبان‌های دوردست (مجاز) را ممکن می‌سازد. برای عمل کردن این گزینه mate-"
+"session باید راه‌اندازی مجدد شود."
+
+#: ../mate-session/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"اگر انتخاب شود، mate-session قبل از تمام کردن نشست از کاربر تأیید می‌گیرد."
+
+#: ../mate-session/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"اگر انتخاب شود، mate-session به طور خودکار نشست را ذخیره می‌کند. در غیر این "
+"صورت محاوره‌ی خروج از سیستم گزینه‌ای برای ذخیره‌ی نشست خواهد داشت."
+
+#: ../mate-session/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "اعلان خروج از سیستم"
+
+#: ../mate-session/mate-session.schemas.in.h:6
+msgid "Preferred Image to use for login splash screen"
+msgstr "تصویری که ترجیح می‌دهید به عنوان صفحه‌ی راه‌اندازی به‌کار رود"
+
+#: ../mate-session/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "ذخیره‌ی نشست‌ها"
+
+#: ../mate-session/mate-session.schemas.in.h:8
+msgid "Selected option in the log out dialog"
+msgstr ""
+
+#: ../mate-session/mate-session.schemas.in.h:9
+msgid "Show the splash screen"
+msgstr "نشان دادن صفحه‌ی راه‌اندازی"
+
+#: ../mate-session/mate-session.schemas.in.h:10
+msgid "Show the splash screen when the session starts up"
+msgstr "نشان دادن صفحه‌ی راه‌اندازی هنگام آغاز نشست‌ها"
+
+#: ../mate-session/mate-session.schemas.in.h:11
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"مسیری نسبی از شاخه‌ی ‎$datadir/pixmaps/‎ است. زیرشاخه‌ها و نام تصاویر مقادیر "
+"معتبر محسوب می‌شوند. تغییر این مقدار دفعه‌ی بعدی که وارد نشست می‌شوید تأثیر خود "
+"را نشان خواهد داد."
+
+#: ../mate-session/mate-session.schemas.in.h:12
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+
+#: ../mate-session/gsm-client-editor.c:97
+msgid "_Order:"
+msgstr "_ترتیب:"
+
+#: ../mate-session/gsm-client-editor.c:99
+msgid "The order in which applications are started in the session."
+msgstr "ترتیب آغاز شدن برنامه‌های در نشست."
+
+#: ../mate-session/gsm-client-editor.c:106
+msgid "What happens to the application when it exits."
+msgstr "اتفاقی که بعد از خروج برای برنامه می‌افتد."
+
+#: ../mate-session/gsm-client-editor.c:109
+msgid "_Style:"
+msgstr "_سبک:"
+
+#: ../mate-session/gsm-client-list.c:150
+msgid "Order"
+msgstr "ترتیب"
+
+#: ../mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr "سبک"
+
+#: ../mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr "وضعیت"
+
+#: ../mate-session/gsm-client-list.c:165
+msgid "Program"
+msgstr "برنامه"
+
+#: ../mate-session/gsm-client-row.c:31
+msgid "Inactive"
+msgstr "غیرفعال"
+
+#: ../mate-session/gsm-client-row.c:32
+msgid "Waiting to start or already finished."
+msgstr "در انتظار آغاز است یا قبلاً تمام شده است."
+
+#: ../mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr "در حال آغاز"
+
+#: ../mate-session/gsm-client-row.c:35
+msgid "Started but has not yet reported state."
+msgstr "آغاز شده ولی هنوز وضعیت را گزارش نکرده است."
+
+#: ../mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr "در حال اجرا"
+
+#: ../mate-session/gsm-client-row.c:38
+msgid "A normal member of the session."
+msgstr "یک عضو عادیِ نشست."
+
+#: ../mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr "در حال ذخیره"
+
+#: ../mate-session/gsm-client-row.c:41
+msgid "Saving session details."
+msgstr "در حال ذخیره کردن جزئیات نشست."
+
+#: ../mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr "نامعلوم"
+
+#: ../mate-session/gsm-client-row.c:44
+msgid "State not reported within timeout."
+msgstr "وضعیت در مدت منقضی گزارش نشد."
+
+#: ../mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr "عادی"
+
+#: ../mate-session/gsm-client-row.c:51
+msgid "Unaffected by logouts but can die."
+msgstr "تحت تأثیر خروج از سیستم قرار نمی‌گیرد اما می‌تواند بمیرد."
+
+#: ../mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr "راه‌اندازی مجدد"
+
+#: ../mate-session/gsm-client-row.c:54
+msgid "Never allowed to die."
+msgstr "هرگز اجازه‌ی مردن ندارد."
+
+#: ../mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr "زباله‌دان"
+
+#: ../mate-session/gsm-client-row.c:57
+msgid "Discarded on logout and can die."
+msgstr "هنگام خروج از سیستم دور انداخته می‌شود و می‌تواند بمیرد."
+
+#: ../mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr "تنظیمات"
+
+#: ../mate-session/gsm-client-row.c:60
+msgid "Always started on every login."
+msgstr "همیشه در هر ورود به سیستم آغاز می‌شود."
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: ../mate-session/gsm-gsd.c:41
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"هنگام راه‌اندازی شبح تنظیمات گنوم خطایی پیش آمد.\n"
+"\n"
+"بعضی چیزها، مثل تم‌ها، صداها، یا تنظیمات پس‌زمینه ممکن است درست کار نکنند."
+
+#: ../mate-session/gsm-gsd.c:53
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"آخرین پیغام خطا عبارت بود از:\n"
+"\n"
+
+#: ../mate-session/gsm-gsd.c:58
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"گنوم همچنان سعی خواهد کرد در ورود بعدی شما به سیستم شبح تنظیمات را راه‌اندازی "
+"مجدد کند."
+
+#: ../mate-session/gsm-gsd.c:115
+msgid "There was an unknown activation error."
+msgstr "یک خطای فعال‌سازی نامعلوم رخ داد."
+
+#: ../mate-session/gsm-gsd.c:157
+msgid "The Settings Daemon restarted too many times."
+msgstr "دفعات راه‌اندازی مجدد شبح تنظیمات بیش از اندازه بوده است."
+
+#: ../mate-session/logout.c:408
+msgid "Are you sure you want to log out?"
+msgstr "آیا مطمئنید که می‌خواهید از سیستم خارج شوید؟"
+
+#: ../mate-session/logout.c:425
+msgid "_Save current setup"
+msgstr "_ذخیره‌ی تنظیمات فعلی"
+
+#: ../mate-session/logout.c:448
+msgid "Action"
+msgstr "کنش"
+
+#: ../mate-session/logout.c:465
+msgid "_Log out"
+msgstr "_خروج از سیستم"
+
+#: ../mate-session/logout.c:472
+msgid "Sh_ut down"
+msgstr "خامو_ش کردن"
+
+#: ../mate-session/logout.c:480
+msgid "_Restart the computer"
+msgstr "_راه‌اندازی مجدد کامپیوتر"
+
+#: ../mate-session/main.c:82
+msgid "Specify a session name to load"
+msgstr "نام یک نشست را برای بار کردن مشخص کنید"
+
+#: ../mate-session/main.c:83
+msgid "Only read saved sessions from the default.session file"
+msgstr "فقط نشست‌های ذخیره‌شده از پرونده‌ی default.session خوانده شوند"
+
+#: ../mate-session/main.c:84
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr "دوره‌ی انتظار برای ثبت نام کارگیر به میلی‌ثانیه (۰ = تا ابد)"
+
+#: ../mate-session/main.c:85
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr "دوره‌ی انتظار برای پاسخ گرفتن از کارگیر به میلی‌ثانیه (۰ = تا ابد)"
+
+#: ../mate-session/main.c:86
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr "دوره‌ی انتظار برای مردن کارگیر به میلی‌ثانیه (۰ = تا ابد)"
+
+#: ../mate-session/main.c:266
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"گشتن به دنبال آدرس اینترنتی برای %s ممکن نیست.\n"
+"این مسأله از فعالیت صحیح گنوم جلوگیری می‌کند.\n"
+"ممکن است این مشکل با اضافه کردن %s به \n"
+"پرونده‌ی ‎/etc/hosts تصحیح شود."
+
+#: ../mate-session/main.c:273
+msgid "Log in Anyway"
+msgstr "در هر حال ورود به سیستم صورت گیرد"
+
+#: ../mate-session/main.c:274
+msgid "Try Again"
+msgstr "تلاش مجدد"
+
+#: ../mate-session/manager.c:223
+msgid "Your session has been saved"
+msgstr "نشست شما ذخیره شد"
+
+#: ../mate-session/manager.c:527
+msgid "Wait abandoned due to conflict."
+msgstr "انتظار به علت مغایرت متوقف شد."
+
+#: ../mate-session/manager.c:1035
+#, c-format
+msgid "No response to the %s command."
+msgstr "هیچ پاسخی برای فرمان %s دریافت نشد."
+
+#: ../mate-session/manager.c:1036
+msgid "The program may be slow, stopped or broken."
+msgstr "برنامه ممکن است کند باشد، متوقف‌شده یا از کار افتاده باشد."
+
+#: ../mate-session/manager.c:1037
+msgid "You may wait for it to respond or remove it."
+msgstr "می‌توانید صبر کنید تا پاسخ بدهد یا حذفش کنید."
+
+#: ../mate-session/manager.c:1760
+msgid "Restart abandoned due to failures."
+msgstr "راه‌اندازی مجدد به‌علت خرابی‌ها رها شد."
+
+#: ../mate-session/manager.c:1956
+msgid "A session shutdown is in progress."
+msgstr "خاموش کردن نشست در حال انجام است."
+
+#: ../mate-session/save-session.c:46
+msgid "Set the current session"
+msgstr "تنظیم نشست فعلی"
+
+#: ../mate-session/save-session.c:47
+msgid "Kill session"
+msgstr "کشتن نشست"
+
+#: ../mate-session/save-session.c:48
+msgid "Use dialog boxes"
+msgstr "استفاده از جعبه‌های محاوره"
+
+#: ../mate-session/save-session.c:146 ../mate-session/save-session.c:179
+msgid "Could not connect to the session manager"
+msgstr "اتصال به مدیر نشست ممکن نیست"
+
+#: ../mate-session/session-names.c:143
+msgid "The session name cannot be empty"
+msgstr "نام نشست نمی‌تواند خالی باشد"
+
+#: ../mate-session/session-names.c:154
+msgid "The session name already exists"
+msgstr "نام نشست از قبل وجود دارد"
+
+#: ../mate-session/session-names.c:188
+msgid "Add a new session"
+msgstr "اضافه کردن یک نشست جدید"
+
+#: ../mate-session/session-names.c:218
+msgid "Edit session name"
+msgstr "ویرایش نام نشست"
+
+#: ../mate-session/session-properties-capplet.c:117
+msgid "Enable"
+msgstr ""
+
+#: ../mate-session/session-properties-capplet.c:123
+#: ../mate-session/session-properties-capplet.c:464
+msgid "Disable"
+msgstr ""
+
+#: ../mate-session/session-properties-capplet.c:145
+msgid "_Edit"
+msgstr "_ویرایش"
+
+#: ../mate-session/session-properties-capplet.c:213
+msgid ""
+"Some changes are not saved.\n"
+"Is it still OK to exit?"
+msgstr ""
+"بعضی تغییرات ذخیره نشده‌اند.\n"
+"با این وجود خارج می‌شوید؟"
+
+#: ../mate-session/session-properties-capplet.c:263
+#: ../mate-session/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "نشست‌ها"
+
+#: ../mate-session/session-properties-capplet.c:296
+msgid "Show splash screen on _login"
+msgstr "نشان دادن صفحه‌ی راه‌اندازی هنگام _ورود به سیستم"
+
+#: ../mate-session/session-properties-capplet.c:307
+msgid "As_k on logout"
+msgstr "پر_سش هنگام خروج از سیستم"
+
+#: ../mate-session/session-properties-capplet.c:318
+msgid "Automatically save chan_ges to session"
+msgstr "ذخیره‌ی خودکار تغییرات در نشست"
+
+#: ../mate-session/session-properties-capplet.c:329
+msgid "_Sessions:"
+msgstr "_نشست‌ها:"
+
+#: ../mate-session/session-properties-capplet.c:347
+msgid "Session Name"
+msgstr "نام نشست"
+
+#: ../mate-session/session-properties-capplet.c:398
+msgid "Session Options"
+msgstr "گزینه‌های نشست"
+
+#: ../mate-session/session-properties-capplet.c:407
+msgid "Current Session"
+msgstr "نشست فعلی"
+
+#: ../mate-session/session-properties-capplet.c:416
+msgid "Additional startup _programs:"
+msgstr "برنامه‌های راه‌اندازی اضافی:"
+
+#: ../mate-session/session-properties-capplet.c:435
+msgid "Command"
+msgstr "فرمان"
+
+#: ../mate-session/session-properties-capplet.c:475
+msgid "Startup Programs"
+msgstr "برنامه‌های راه‌اندازی"
+
+#: ../mate-session/session-properties.c:49
+msgid "Remove the currently selected client from the session."
+msgstr "حذف کارگیر انتخاب شده‌ی فعلی از نشست."
+
+#: ../mate-session/session-properties.c:55
+msgid "Apply changes to the current session"
+msgstr "اعمال تغییرات به نشست فعلی"
+
+#: ../mate-session/session-properties.c:61
+msgid "The list of programs in the session."
+msgstr "فهرست برنامه‌های این نشست."
+
+#: ../mate-session/session-properties.c:88
+msgid "Currently running _programs:"
+msgstr "برنامه‌های فعلاً در حال اجرا:"
+
+#: ../mate-session/session-properties.c:104
+msgid "Initialize session settings"
+msgstr "مقداردهی اولیه‌ی تنظیمات نشست"
+
+#: ../mate-session/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "نشست‌هایتان را پیکربندی کنید"
+
+#: ../mate-session/splash-widget.c:43
+msgid "Sawfish Window Manager"
+msgstr "مدیر پنجره‌های سافیش"
+
+#: ../mate-session/splash-widget.c:44
+msgid "Marco Window Manager"
+msgstr "مدیر پنجره‌های متاسیتی"
+
+#: ../mate-session/splash-widget.c:45
+msgid "Window Manager"
+msgstr "مدیر پنجره‌ها"
+
+#: ../mate-session/splash-widget.c:46
+msgid "The Panel"
+msgstr "تابلو"
+
+#: ../mate-session/splash-widget.c:47
+msgid "Caja"
+msgstr "ناتیلوس"
+
+#: ../mate-session/splash-widget.c:48
+msgid "Desktop Settings"
+msgstr "تنظیمات رومیزی"
+
+#: ../mate-session/startup-programs.c:415
+msgid "_Startup Command:"
+msgstr "فرمان _راه‌اندازی:"
+
+#: ../mate-session/startup-programs.c:421
+msgid "Startup Command"
+msgstr "فرمان راه‌اندازی"
+
+#: ../mate-session/startup-programs.c:450
+msgid "The startup command cannot be empty"
+msgstr "فرمان راه‌اندازی نمی‌تواند خالی باشد"
+
+#: ../mate-session/startup-programs.c:487
+msgid "Add Startup Program"
+msgstr "اضافه کردن برنامه‌ی راه‌اندازی"
+
+#: ../mate-session/startup-programs.c:525
+msgid "Edit Startup Program"
+msgstr "ویرایش برنامه‌ی راه‌اندازی"
+
+#~ msgid "Session Manager Proxy"
+#~ msgstr "پیشکار مدیر نشست"
+
+#~ msgid "Save Current Session"
+#~ msgstr "ذخیره نشست فعلی"
+
+#~ msgid "Save current state of desktop"
+#~ msgstr "ذخیره‌ی وضعیت فعلی رومیزی"
+
+#~ msgid ""
+#~ "A list of desktop entries that have already been processed and possibly "
+#~ "added to the user's session"
+#~ msgstr ""
+#~ "فهرستی از مداخل رومیزی که قبلاً پردازش شده‌اند و ممکن است به نشست کاربر "
+#~ "اضافه شده باشند"
+
+#~ msgid "Processed Desktop Entries"
+#~ msgstr "مداخل پردازش شده‌ی رومیزی"
+
+#~ msgid "Authentication Icon"
+#~ msgstr "شمایل تأیید هویت"
+
+#~ msgid "CD Device Handler"
+#~ msgstr "متصدی دستگاه سی‌دی"
+
+#~ msgid "Red Hat Network Monitor"
+#~ msgstr "پایشگر شبکه‌ی رِدهت"
+
+#~ msgid "Print Monitor"
+#~ msgstr "پایشگر چاپ"
diff --git a/po/fi.po b/po/fi.po
new file mode 100644
index 0000000..8109fce
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,587 @@
+# mate-session Finnish translation
+# Copyright (C) 2002-2009 Free Software Foundation, Inc.
+# Ville Hautamäki <[email protected]>, 1998, 2000
+# Mikko Rauhala <[email protected]>, 1999
+# Pauli Virtanen <[email protected]>, 2000-2005
+# Ilkka Tuohela <[email protected]>, 2005-2009
+# Mikko Piippo (https://launchpad.net/~piippo-cc), 2008
+# Timo Jyrinki <[email protected]>, 2008-2010
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-08-06 15:04+0000\n"
+"PO-Revision-Date: 2010-09-17 18:28+0300\n"
+"Last-Translator: Jiri Grönroos <Unknown>\n"
+"Language-Team: Finnish <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Valitse komento"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Lisää käynnistyvä sovellus"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Muokkaa käynnistyvää ohjelmaa"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Käynnistyskomento ei voi olla tyhjä"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Käynnistyskomento ei ole kelvollinen"
+
+#: ../capplet/gsm-properties-dialog.c:530
+msgid "Your session has been saved."
+msgstr "Istunto on tallennettu."
+
+#: ../capplet/gsm-properties-dialog.c:532
+#: ../capplet/gsm-properties-dialog.c:559
+msgid "Failed to save session"
+msgstr "Istunnon tallentaminen epäonnistui"
+
+#: ../capplet/gsm-properties-dialog.c:547
+msgid "Could not connect to the session bus"
+msgstr "Istuntoväylään ei voi yhdistää"
+
+#: ../capplet/gsm-properties-dialog.c:553 ../tools/mate-session-save.c:120
+#: ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Istunnonhallintaan ei saa yhteyttä"
+
+#: ../capplet/gsm-properties-dialog.c:618
+msgid "Enabled"
+msgstr "Käytössä"
+
+#: ../capplet/gsm-properties-dialog.c:630
+msgid "Icon"
+msgstr "Kuvake"
+
+#: ../capplet/gsm-properties-dialog.c:642
+msgid "Program"
+msgstr "Sovellus"
+
+#: ../capplet/gsm-properties-dialog.c:855
+msgid "Startup Applications Preferences"
+msgstr "Aloitusohjelmien asetukset"
+
+#: ../capplet/gsp-app.c:271
+msgid "No name"
+msgstr "Ei nimeä"
+
+#: ../capplet/gsp-app.c:277
+msgid "No description"
+msgstr "Ei kuvausta"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:443
+msgid "Version of this application"
+msgstr "Tämän ohjelman versio"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Ohjetta ei voitu näyttää"
+
+#: ../data/mate.desktop.in.h:1
+msgid "This session logs you into MATE"
+msgstr "Tämä istunto kirjautuu Mateen"
+
+#: ../data/mate.desktop.in.h:2
+msgid "Ubuntu Desktop Edition"
+msgstr "Ubuntu työpöydille"
+
+#: ../data/mate-failsafe.desktop.in.h:1
+msgid "This session logs you into MATE without user applications"
+msgstr "Tämä istunto kirjautuu Mateen ilman käyttäjäsovelluksia"
+
+#: ../data/mate-failsafe.desktop.in.h:2
+msgid "Ubuntu Desktop Edition (Safe Mode)"
+msgstr "Ubuntu työpöydille (turvallinen tila)"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Oletusistunto"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Tiedostonhallinta"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid ""
+"If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Jos käytössä, mate-session kysyy käyttäjältä ennen istunnon lopettamista."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Jos käytössä, mate-session tallentaa istunnon automaatisesti."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Luettelo sovelluksista, jotka ovat osa oletusistuntoa."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Luettelo komponenteista, jotka vaaditaan osaksi istuntoa (jokainen elementti "
+"nimeää avaimen polun \"/desktop/mate/session/required-components\" alla). "
+"Istuntojen asetukset ei tavallisesti salli käyttäjän poistaa vaadittua "
+"komponenttia istunnosta, ja istunnonhallinta lisää poistetut vaaditut "
+"komponentit automaattisesti takaisin istuntoon."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Uloskirjautumiskehote"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Paneeli"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Vaaditut istuntokomponentit"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Tallenna istunnot"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Tiedostonhallinta mahdollistaa kuvakkeet työpöydällä ja tallennettujen "
+"tiedostojen kanssa työskentelyn."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"Kuinka monen käyttämättömän minuutin jälkeen istunnon tulkitaan olevan "
+"jouten."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Paneeli tarjoaa näytön ylä- tai alaosassa olevan palkin, joka sisältää "
+"valikot, ikkunaluettelot, tilakuvakkeet, kellon ja niin edelleen."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Ikkunanhallinta on ohjelma, joka piirtää otsikkopalkin ja reunat ikkunoiden "
+"ympärille, sekä mahdollistaa ikkunoiden siirtämisen ja koon muuttamisen."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Aikaviive, jonka jälkeen istunto tulkitaan joutenolevaksi"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Ikkunointiohjelma"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Joitakin ohjelmia on vielä käynnissä:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"Odotetaan ohjelman lopettamista. Ohjelman suorituksen keskeyttäminen voi "
+"aiheuttaa töiden häviämistä."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Valitse sisäänkirjauduttaessa käynnistettävät ohjelmat"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Käynnistettävät ohjelmat"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Muut käynnistyvät _ohjelmat:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "Selaa..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "Ko_mento:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Komm_entti:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Valinnat"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Käynnistyvät ohjelmat"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "Muista käynnissä olevat ohjelmat kirjauduttaessa ulos"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Nimi:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "Muista tällä hetkellä _käynnissä olevat ohjelmat"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Tiedosto ei ole kelvollinen .desktop-tiedosto"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Tuntematon desktop-tiedoston versio \"%s\""
+
+#: ../egg/eggdesktopfile.c:968
+#, c-format
+msgid "Starting %s"
+msgstr "%s käynnistyy"
+
+#: ../egg/eggdesktopfile.c:1110
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Sovellus ei hyväksy asiakirjoja komentoriviltä"
+
+#: ../egg/eggdesktopfile.c:1178
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Tuntematon käynnistinvalitsin: %d"
+
+#: ../egg/eggdesktopfile.c:1383
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Asiakirja-URIa ei voida antaa \"Type=Link\"-työpöytäkohteelle"
+
+#: ../egg/eggdesktopfile.c:1404
+#, c-format
+msgid "Not a launchable item"
+msgstr "Kohde ei ole käynnistettävä"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Ota yhteys istunnonhallintaan pois käytöstä"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Anna tallennetut asetukset sisältävä tiedosto"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "TIEDOSTO"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Anna istunnonhallinnan tunniste (ID)"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Istunnonhallinnan valinnat:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Näytä istunnonhallinnan valinnat"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Ongelma asetuspalvelimen kanssa.\n"
+"(%s poistui tila-arvolla %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Kuvaketta \"%s\" ei löydy"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Tuntematon"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Ohjelma on vielä käynnissä:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Joitakin ohjelmia on vielä käynnissä:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Odotetaan ohjelmien lopettamista. Ohjelmien suorituksen keskeyttäminen voi "
+"aiheuttaa töiden häviämistä."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Vaihda käyttäjää kaikesta huolimatta"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Kirjaudu ulos kaikesta huolimatta"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Siirry valmiustilaan kaikesta huolimatta"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Siirry lepotilaan kaikesta huolimatta"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "Sammuta kaikesta huolimatta"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Käynnistä uudelleen kaikesta huolimatta"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Lukitse näyttö"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Peru"
+
+#: ../mate-session/gsm-logout-dialog.c:228
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Sinut kirjataan ulos automaattisesti %d sekunnin kuluttua."
+msgstr[1] "Sinut kirjataan ulos automaattisesti %d sekunnin kuluttua."
+
+#: ../mate-session/gsm-logout-dialog.c:236
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Järjestelmä sammuu automaattisesti %d sekunnin kuluttua."
+msgstr[1] "Järjestelmä sammuu automaattisesti %d sekunnin kuluttua."
+
+#: ../mate-session/gsm-logout-dialog.c:271
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Olet kirjautunut sisään käyttäjänä \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:476
+msgid "Log Out of the Session"
+msgstr "Kirjaudu ulos istunnosta"
+
+#: ../mate-session/gsm-logout-dialog.c:482
+msgid "_Log Out"
+msgstr "Kirjaudu _ulos"
+
+#: ../mate-session/gsm-logout-dialog.c:483
+msgid "Ends your session and logs you out."
+msgstr "Lopettaa istunnon ja kirjautuu ulos."
+
+#: ../mate-session/gsm-logout-dialog.c:489
+msgid "_Switch User"
+msgstr "_Vaihda käyttäjää"
+
+#: ../mate-session/gsm-logout-dialog.c:490
+msgid ""
+"Suspends your session, allowing another user to log in and use the computer."
+msgstr ""
+"Keskeyttää istunnon, mahdollistaen toisen käyttäjän kirjautumisen ja "
+"tietokoneen käytön."
+
+#: ../mate-session/gsm-logout-dialog.c:501
+msgid "Shut Down the Computer"
+msgstr "Sammuta tietokone"
+
+#: ../mate-session/gsm-logout-dialog.c:508
+msgid "_Shut Down"
+msgstr "_Sammuta"
+
+#: ../mate-session/gsm-logout-dialog.c:509
+msgid "Ends your session and turns off the computer."
+msgstr "Lopettaa istunnon ja sammuttaa tietokoneen."
+
+#: ../mate-session/gsm-logout-dialog.c:522
+msgid "_Restart"
+msgstr "Käynnistä _uudelleen"
+
+#: ../mate-session/gsm-logout-dialog.c:523
+msgid "Ends your session and restarts the computer."
+msgstr "Lopettaa istunnon ja käynnistää tietokoneen uudelleen."
+
+#: ../mate-session/gsm-logout-dialog.c:536
+msgid "S_uspend"
+msgstr "Valmi_ustila"
+
+#: ../mate-session/gsm-logout-dialog.c:537
+msgid ""
+"Suspends your session quickly, using minimal power while the computer stands "
+"by."
+msgstr ""
+"Keskeyttää istunnon nopeasti. Tietokone käyttää hyvin vähän virtaa "
+"valmiustilassa."
+
+#: ../mate-session/gsm-logout-dialog.c:547
+msgid "Hiber_nate"
+msgstr "Lepotila"
+
+#: ../mate-session/gsm-logout-dialog.c:548
+msgid ""
+"Suspends your session, using no power until the computer is restarted."
+msgstr ""
+"Keskeyttää istunnon. Tietokone ei käytä virtaa lainkaan, kunnes tietokone "
+"kytketään jälleen päälle."
+
+#: ../mate-session/gsm-manager.c:1343 ../mate-session/gsm-manager.c:2070
+msgid "Not responding"
+msgstr "Ei vastaa"
+
+#: ../mate-session/gsm-xsmp-client.c:1236
+msgid "This program is blocking log out."
+msgstr "Tämä ohjelma estää kirjautumisen ulos"
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Kieltäydytään uudesta asiakasyhteydestä, koska istuntoa ollaan parhaillaan "
+"sulkemassa\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ICE-kuuntelupistoketta ei voi luoda: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:362
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Kirjautumisistuntoa ei voi käynnistää (eikä X-palvelimeen voitu yhdistää)"
+
+#: ../mate-session/gsm-util.c:568
+msgid "Cannot find help."
+msgstr "Ohjetta ei löydy."
+
+#: ../mate-session/main.c:438
+msgid "Override standard autostart directories"
+msgstr "Korvaa automaattikäynnistyksen oletuskansiot"
+
+#: ../mate-session/main.c:439
+msgid "MateConf key used to lookup default session"
+msgstr "MateConf-avain, josta oletusistuntoa etsitään"
+
+#: ../mate-session/main.c:440
+msgid "Override name of the saved session"
+msgstr ""
+
+#: ../mate-session/main.c:441
+msgid "Enable debugging code"
+msgstr "Käytä vianetsintäkoodia"
+
+#: ../mate-session/main.c:442
+msgid "Do not load user-specified applications"
+msgstr "Älä lataa käyttäjän määrittelemiä sovelluksia"
+
+#: ../mate-session/main.c:463
+msgid " - the MATE session manager"
+msgstr " - Maten istunnonhallinta"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Kirjaudu ulos"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Kirjaudu ulos, jättäen käynnissä olevat estot huomioimatta"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Näytä uloskirjautumisikkuna"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Näytä sammutusikkuna"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Käytä valintaikkunoita virheille"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Aseta nykyisen istunnon nimi"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NIMI"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Tapa istunto"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Älä vaadi vahvistusta"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Ohjelmaa kutsuttiin ristiriitaisilla valitsimilla"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "Maten käynnistymisikkuna"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "Maten asetuspalvelimen käärin"
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- Maten käynnistymisikkuna"
+
+#~ msgid "MATE"
+#~ msgstr "Mate"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+#~ "directories and image names are valid values. Changing this value will "
+#~ "effect the next session login."
+#~ msgstr ""
+#~ "Tämä on suhteellinen polku, joka saa arvonsa hakemistosta $datadir/pixmaps/. "
+#~ "Kelvollisia arvoja ovat alihakemistot ja kuvien nimet. Tämän arvon muutos "
+#~ "tulee voimaan vasta seuraavalla kirjautumiskerralla."
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 0000000..db3e0f6
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,517 @@
+# French translation of mate-session.
+# Copyright (C) 1998-2010 Free Software Foundation, Inc.
+#
+# Vincent Renardias <[email protected]>, 1998-2000.
+# Joaquim Fellmann <[email protected]>, 2000.
+# Christophe Merlet <[email protected]>, 2000-2006.
+# Sun G11n <[email protected]>, 2002.
+# Laurent Richard <[email protected]>, 2006.
+# Damien Durand <[email protected]>, 2006.
+# Robert-André Mauchin <[email protected]>, 2006-2008.
+# Claude Paroz <[email protected]>, 2007-2010.
+# Jonathan Ernst <[email protected]>, 2007.
+# Stéphane Raimbault <[email protected]>, 2008.
+# Frédéric Péters <[email protected]>, 2008.
+# Bruno Brouard <[email protected]>, 2009
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.HEAD\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2010-09-01 08:31+0000\n"
+"PO-Revision-Date: 2010-09-04 13:14+0200\n"
+"Last-Translator: Claude Paroz <[email protected]>\n"
+"Language-Team: MATE French Team <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n>1;\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Sélection d'une commande"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Ajout d'un programme de démarrage"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Modification d'un programme de démarrage"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "La commande de démarrage ne peut pas être vide"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "La commande de démarrage n'est pas valide"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Activé"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Icône"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Programme"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Préférences des applications au démarrage"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Pas de nom"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Pas de description"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Version de cette application"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Impossible d'afficher le document d'aide"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Cette session vous connecte dans MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Session par défaut"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Gestionnaire de fichiers"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Si activé, mate-session interroge l'utilisateur avant de terminer une "
+"session."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Si activé, mate-session enregistre la session automatiquement."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Liste des applications appartenant à la session par défaut."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Liste de composants devant obligatoirement faire partie de la session "
+"(chaque élément se réfère à une clé sous « /desktop/mate/session/"
+"required_components »). La fenêtre des préférences des applications au "
+"démarrage n'autorise normalement pas les utilisateurs à supprimer un "
+"composant nécessaire de la session, et dans le cas où un tel composant "
+"serait enlevé, le gestionnaire de session l'ajouterait automatiquement au "
+"moment de la connexion."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Invite de déconnexion"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Tableau de bord"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Composants nécessaires de la session"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Enregistrer les sessions"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Le gestionnaire de fichiers gère les icônes du bureau et vous permet "
+"d'interagir avec vos fichiers."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"Le nombre de minutes d'inactivité avant que la session ne soit considérée "
+"comme inactive."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Le tableau de bord fournit une barre, en haut ou en bas de l'écran, qui "
+"contient les menus, la liste des fenêtres, des icônes de notification, "
+"l'horloge, etc."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Le gestionnaire de fenêtres est le programme qui dessine la barre de titre "
+"et les bordures autour des fenêtres et qui vous permet de déplacer et "
+"redimensionner les fenêtres."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Durée avant que la session ne soit considérée comme inactive"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Gestionnaire de fenêtres"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Des programmes sont encore en cours d'exécution :</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"Attente de la fin du programme. L'interruption du programme risquerait de "
+"vous faire perdre certaines données."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Choisir les applications à lancer à la connexion"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Applications au démarrage"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "_Programmes supplémentaires au démarrage :"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "Parcourir…"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Commande :"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Co_mmentaire :"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Options"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Programmes au démarrage"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr ""
+"Se souvenir _automatiquement des applications en cours d'exécution lors de "
+"la déconnexion"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Nom :"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Se souvenir des applications en cours d'exécution"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Le fichier n'est pas un fichier .desktop valide"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "La version « %s » du fichier desktop n'est pas reconnue"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Démarrage de %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "L'application n'accepte pas de documents en ligne de commande"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Option de démarrage non reconnue : %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"Impossible de passer des URI de document à un fichier de bureau avec "
+"« Type=Link »"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Cet élément ne peut être lancé"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Désactive la connexion au gestionnaire de sessions"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Indique le fichier contenant la configuration enregistrée"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FICHIER"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Indique l'identificateur de la gestion de sessions"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Options de la gestion de sessions :"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Affiche les options de la gestion de sessions"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Il y a un problème avec le serveur de configuration.\n"
+"(%s a quitté avec l'état %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Icône « %s » non trouvée"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Inconnu"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Un programme est toujours en cours d'exécution :"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Des programmes sont toujours en cours d'exécution :"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Attente de la fin des programmes. L'interruption de ces programmes "
+"risquerait de vous faire perdre certaines données."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Changer d'utilisateur malgré tout"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "Se déconnecter malgré tout"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Mettre en veille malgré tout"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Hiberner malgré tout"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "Éteindre malgré tout"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Redémarrer malgré tout"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Verrouiller l'écran"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Annuler"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Vous serez automatiquement déconnecté dans %d seconde."
+msgstr[1] "Vous serez automatiquement déconnecté dans %d secondes."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Cet ordinateur va s'éteindre automatiquement dans %d seconde."
+msgstr[1] "Cet ordinateur va s'éteindre automatiquement dans %d secondes."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Vous êtes actuellement connecté en tant que « %s »."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Se déconnecter du système maintenant ?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "Changer d'_utilisateur"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Fermer la session"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Éteindre cet ordinateur maintenant ?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "_Mettre en veille"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Hiberner"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "_Redémarrer"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "Ét_eindre"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Absence de réponse"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "Ce programme bloque la déconnexion."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Refus de la connexion d'un nouveau client car la session est actuellement en "
+"cours de fermeture\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Impossible de créer le connecteur d'écoute ICE : %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "Impossible de démarrer la session (et de se connecter au serveur X)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Remplace les répertoires autostart standards"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "Clé MateConf utilisée pour rechercher la session par défaut"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Active le code de débogage"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Ne charge pas les applications demandées par l'utilisateur"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "- le gestionnaire de sessions de MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Se déconnecte"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Se déconnecte, en ignorant tout inhibiteur existant"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Affiche le dialogue de déconnexion"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Affiche le dialogue d'extinction"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Utilise des boîtes de dialogue pour les erreurs"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Définit le nom de la session actuelle"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NOM"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Tue la session"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Ne demande pas de confirmation"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Impossible de se connecter au gestionnaire de sessions"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Programme appelé avec des options conflictuelles"
diff --git a/po/fur.po b/po/fur.po
new file mode 100644
index 0000000..5d926d4
--- /dev/null
+++ b/po/fur.po
@@ -0,0 +1,669 @@
+# Friulian traslation for mate-session
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# Massimo Furlani <[email protected]>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session 2.20.x\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-02-03 14:25+0100\n"
+"PO-Revision-Date: 2007-12-17 15:51+0100\n"
+"Last-Translator: Massimo Furlani <[email protected]>\n"
+"Language-Team: Friulian <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Friulian\n"
+
+#: ../data/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "Permet conessions TCP"
+
+#: ../data/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"Par mutîfs di sigurece, su plataformes ch'a doprin _IceTcpTransNoListen() "
+"(sistemes XFree86), mate-session nol reste in scolte di conessions su "
+"puartis TCP. Cheste operazion a permet conessions di bande di machinis "
+"remotis (autorizadis). Al coventarâ ognicâs tornâ a inviâ mate-session "
+"parcè che lis modifichis a vedin efiet."
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Se abilitât, mate-session al domandarâ conferme prin di finî la session."
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Se abilitât, mate-session al salvarâ la session automaticamentri. Se no il "
+"barcon di dialogo par finî la session al mostrarâ une opzion pal salvale."
+
+#: ../data/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "Conferme fin da session"
+
+#: ../data/mate-session.schemas.in.h:6
+msgid "Preferred Image to use for login splash screen"
+msgstr "Imagjine preferide di doprâ pa la schermade di inviament"
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "Salve sessions"
+
+#: ../data/mate-session.schemas.in.h:8
+msgid "Selected option in the log out dialog"
+msgstr "Opzion selezionade tal dialogo di logout"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Show the splash screen"
+msgstr "Mostre schermade di inviament"
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Show the splash screen when the session starts up"
+msgstr "Mostre la schermade di inviament cuant ch'a ven inviade la session"
+
+#: ../data/mate-session.schemas.in.h:11
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Chest al è un valôr di percors relatîf basât suntune directory $datadir/"
+"pixmaps/. Noms di sot-directory e di imagjinis a son valôrs valids. La "
+"modifiche di chest valôr à varâ efiet al prossim login."
+
+#: ../data/mate-session.schemas.in.h:12
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+"Cheste a je l'opzion che a risulte selezionade tal dialogo par finî la "
+"session. Valôrs valids a son \"logout\" par lâ fûr, \"shutdown\" par studâ "
+"il sisteme e \"restart\" par tornâ a inviâ il sisteme."
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Cheste session ti puartarâ dentri MATE"
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Configure lis sessions"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Sessions"
+
+#: ../mate-session/gsm-at-startup.c:39
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+"Par cheste session al è stât domandât il supuart a lis tecnologie assistive; "
+"però nol è stât cjatât il regjistro di acessibilitât. Controlâ se il pacut "
+"AT-SPI al è stât instalât. La session a je stade inviade cence il supuart a "
+"lis tecnologie assistive."
+
+#: ../mate-session/gsm-client-editor.c:123
+msgid "_Order:"
+msgstr "_Ordin:"
+
+#: ../mate-session/gsm-client-editor.c:125
+msgid "The order in which applications are started in the session."
+msgstr "L'ordin di inviament da lis aplicazions ta session."
+
+#: ../mate-session/gsm-client-editor.c:133
+msgid "What happens to the application when it exits."
+msgstr "Ce sucedial a l'aplicazion cuant ch'a finis."
+
+#: ../mate-session/gsm-client-editor.c:134
+msgid "_Style:"
+msgstr "_Stîl:"
+
+#: ../mate-session/gsm-client-list.c:44
+msgid "Inactive"
+msgstr "Inatîf"
+
+#: ../mate-session/gsm-client-list.c:44
+msgid "Waiting to start or already finished."
+msgstr "Al spiete di jessi inviât opûr al à finît."
+
+#: ../mate-session/gsm-client-list.c:46
+msgid "Starting"
+msgstr "Inviament in côrs"
+
+#: ../mate-session/gsm-client-list.c:46
+msgid "Started but has not yet reported state."
+msgstr "Inviât, ma nol à ancjemò ripuartât il stât."
+
+#: ../mate-session/gsm-client-list.c:48
+msgid "Running"
+msgstr "In esecuzion"
+
+#: ../mate-session/gsm-client-list.c:48
+msgid "A normal member of the session."
+msgstr "Un membro normâl da session."
+
+#: ../mate-session/gsm-client-list.c:50
+msgid "Saving"
+msgstr "Salvatagjio"
+
+#: ../mate-session/gsm-client-list.c:50
+msgid "Saving session details."
+msgstr "Salvatagjio dai datos da session."
+
+#. FIXME find better icon
+#: ../mate-session/gsm-client-list.c:53
+msgid "Unknown"
+msgstr "Scognossût"
+
+#: ../mate-session/gsm-client-list.c:53
+msgid "State not reported within timeout."
+msgstr "Stât no ripuartât in timp util."
+
+#. FIXME find icon
+#: ../mate-session/gsm-client-list.c:60
+msgid "Normal"
+msgstr "Normâl"
+
+#: ../mate-session/gsm-client-list.c:60
+msgid "Unaffected by logouts but can die."
+msgstr "No afiet dal finiment da session, ma al pos finî."
+
+#: ../mate-session/gsm-client-list.c:62
+msgid "Restart"
+msgstr "Torne a inviâ"
+
+#: ../mate-session/gsm-client-list.c:62
+msgid "Never allowed to die."
+msgstr "No stâ finî mai."
+
+#: ../mate-session/gsm-client-list.c:64
+msgid "Trash"
+msgstr "Scovazzes"
+
+#: ../mate-session/gsm-client-list.c:64
+msgid "Discarded on logout and can die."
+msgstr "Lassât sta al finiment da session e al pos finî."
+
+#: ../mate-session/gsm-client-list.c:66
+msgid "Settings"
+msgstr "Impostazions"
+
+#: ../mate-session/gsm-client-list.c:66
+msgid "Always started on every login."
+msgstr "Inviât a ogni login."
+
+#: ../mate-session/gsm-client-list.c:190
+msgid "Order"
+msgstr "Ordin"
+
+#: ../mate-session/gsm-client-list.c:197
+msgid "Style"
+msgstr "Stîl"
+
+#: ../mate-session/gsm-client-list.c:204
+msgid "State"
+msgstr "Stât"
+
+#: ../mate-session/gsm-client-list.c:211
+#: ../mate-session/session-properties-capplet.c:284
+msgid "Program"
+msgstr "Programe"
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: ../mate-session/gsm-gsd.c:45
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"Al è saltât fûr un erôr vie pa l'inviament dal demoni des impostazions di "
+"MATE.\n"
+"\n"
+"Cualchi aspiet come temis, sûns o impostazions dal fondâl a podaressin no "
+"funzionâ tal mût coret."
+
+#: ../mate-session/gsm-gsd.c:57
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"L'ultim messaç di erôr al è stât:\n"
+"\n"
+
+#: ../mate-session/gsm-gsd.c:62
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"MATE al provarâ a tornâ a inviâ il demoni des impostazions al prossim login."
+
+#: ../mate-session/gsm-gsd.c:145
+msgid "The Settings Daemon restarted too many times."
+msgstr "Il demoni des impostazions al è stât inviât masse voltis."
+
+#. Name is mandatory and might not be set by the caller
+#: ../mate-session/gsm-keyfile.c:43
+msgid "No Name"
+msgstr "Nissun nom"
+
+#: ../mate-session/mate-session-remove.c:50
+msgid "List registered clients, then exit"
+msgstr "Liste dai clients regjistrâts, podopo al jes"
+
+#: ../mate-session/mate-session-remove.c:52
+msgid "PROGRAM..."
+msgstr "PROGRAME..."
+
+#: ../mate-session/mate-session-remove.c:176
+msgid ""
+"You must specify at least one program to remove. You can list the programs "
+"with --list.\n"
+msgstr ""
+"Al covente specificâ almancul un programe di rimovi. Al è pussibil elencâ i "
+"programis cun --list.\n"
+
+#: ../mate-session/mate-session-remove.c:183
+msgid "Error: could not connect to the session manager\n"
+msgstr "Erôr: impussibil colegasi al gjestôr di session\n"
+
+#: ../mate-session/mate-session-remove.c:197
+msgid "Currently registered clients:\n"
+msgstr "Clients atualmentri regjistrâts:\n"
+
+#: ../mate-session/mate-session-remove.c:207
+#, c-format
+msgid "Couldn't find program %s in session\n"
+msgstr "Impussibil cjatâ il programe %s ta session\n"
+
+#. At least try to tell the user something.
+#: ../mate-session/ice.c:355
+#, c-format
+msgid ""
+"The MATE session manager cannot start properly. Please report this as a "
+"MATE bug. Please include this ICE failure message in the bug report: '%"
+"s'. Meanwhile you could try logging in using the failsafe session."
+msgstr ""
+"Nol è pussibil inviâ in mût coret il gjestôr di session di MATE. Parplasè "
+"mandâ une report a MATE. Meti dentri chest faliment di ICE tal bug report: "
+"'%s'. Tal fratimp, provâ a loggasi doprant la session di emergence."
+
+#: ../mate-session/ice.c:514
+#, c-format
+msgid ""
+"The MATE session manager was unable to lock the file '%s'. Please report "
+"this as a MATE bug. Sometimes this error may occur if the file's directory "
+"is unwritable, you could try logging in via the failsafe session and "
+"ensuring that it is."
+msgstr ""
+"Il gjestôr di session di MATE nol à rivât a lei il file '%s'. Se chest file "
+"al esist, al vares di jessi legjibil par lassâ che MATE al podedi operâ in "
+"mût coret. Provâ a loggasi cu la session di emergence e a rimovi chest file."
+
+#: ../mate-session/ice.c:541
+#, c-format
+msgid ""
+"The MATE session manager was unable to read the file: '%s'. If this file "
+"exists it must be readable by you for MATE to work properly. Try logging "
+"in with the failsafe session and removing this file."
+msgstr ""
+"Il gjestôr di session di MATE nol à rivât a lei il file '%s'. Se chest file "
+"al esist, al vares di jessi legjibil par lassâ che MATE al podedi operâ in "
+"mût coret. Provâ a loggasi cu la session di emergence e a rimovi chest file."
+
+#: ../mate-session/ice.c:586
+#, c-format
+msgid ""
+"Could not write to file '%s'. This file must be writable in order for MATE "
+"to function properly. Try logging in with the failsafe session and removing "
+"this file. Also make sure that the file's directory is writable."
+msgstr ""
+"Impussibil scrivi sul file '%s'. Chest files al à di jessi scrivibil parcè "
+"che MATE al funzioni in mût coret. Provâ a loggasi cu la session di "
+"emergence e rimovi chest file. Sigurasi ancje, che la directory dal file a "
+"sedi scrivibil."
+
+#: ../mate-session/logout.c:392
+msgid "Are you sure you want to log out?"
+msgstr "Setu sigûr di volê lâ fûr?"
+
+#: ../mate-session/logout.c:409
+msgid "Remember running applications"
+msgstr "Visasi lis aplicazions inviadis"
+
+#: ../mate-session/logout.c:432
+msgid "Action"
+msgstr "Azion"
+
+#: ../mate-session/logout.c:449
+msgid "_Log out"
+msgstr "_Log out"
+
+#: ../mate-session/logout.c:456
+msgid "Sh_ut down"
+msgstr "Sh_ut down"
+
+#: ../mate-session/logout.c:464
+msgid "_Restart the computer"
+msgstr "_Torne a inviâ il computer"
+
+#: ../mate-session/main.c:86
+msgid "Specify a session name to load"
+msgstr "Specifiche un nom pa session di cjariâ"
+
+#: ../mate-session/main.c:86 ../mate-session/mate-session-save.c:48
+msgid "NAME"
+msgstr "NOM"
+
+#: ../mate-session/main.c:87
+msgid "Only read saved sessions from the default.session file"
+msgstr "Lei lis sessions salvadis dome dal file default.session"
+
+#: ../mate-session/main.c:88
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr "Timp di spiete da regjistrazion dai clients (in ms, 0=infinît)"
+
+#: ../mate-session/main.c:88 ../mate-session/main.c:89
+#: ../mate-session/main.c:90
+msgid "DELAY"
+msgstr "RITART"
+
+#: ../mate-session/main.c:89
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr "Timp di spiete da regjistrazion dai clients (in ms, 0=infinît)"
+
+#: ../mate-session/main.c:90
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr "Timp di spiete pa la muart dai clients (in ms, 0=infinît)"
+
+#: ../mate-session/main.c:166
+msgid "This session is running as a privileged user"
+msgstr "Si stâ inviant cheste session come utent cun podês"
+
+#: ../mate-session/main.c:168
+msgid ""
+"Running a session as a privileged user should be avoided for security "
+"reasons. If possible, you should log in as a normal user."
+msgstr ""
+"Par sigurece, l'inviament di une session cuntun utent coun podês al vares di "
+"mai sedi fat. Se pussibil loggasi come utent normâl."
+
+#: ../mate-session/main.c:172
+msgid "_Continue"
+msgstr "_Indenant"
+
+#: ../mate-session/main.c:256
+#, c-format
+msgid ""
+"The session might encounter issues if the computer clock is not properly "
+"configured. Please consider adjusting it.\n"
+"\n"
+"Current date is <b>%s</b>."
+msgstr ""
+"La session a podares lâ incuintri a problemis se l'orloi dal computer nol è "
+"configurât in mût coret. Al è conseabil regolâ l'orloi.\n"
+"\n"
+"La date di cumò a je <b>%s</b>."
+
+#: ../mate-session/main.c:375
+#, c-format
+msgid "Failed to launch time configuration tool: %s"
+msgstr "Inviament da l'imprest di configurazion falât: %s"
+
+#: ../mate-session/main.c:406
+msgid "The computer clock appears to be wrong"
+msgstr "L'orloi dal computer al samèe regolât."
+
+#: ../mate-session/main.c:413
+msgid "_Ignore"
+msgstr "_Lasse sta"
+
+#: ../mate-session/main.c:414
+msgid "_Adjust the Clock"
+msgstr "_Regole l'orloi"
+
+#: ../mate-session/main.c:551
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"Nol è pussibil risolvi l'indiriz internet par %s.\n"
+"Chest nol permet a MATE di funzionâ in mût coret.\n"
+"Eventualmentri al è pussibil coregi l'erôr zontant\n"
+"%s a la fin dal file. /etc/hosts."
+
+#: ../mate-session/main.c:558
+msgid "Log in Anyway"
+msgstr "Jentre ognicâs"
+
+#: ../mate-session/main.c:559
+msgid "Try Again"
+msgstr "Prove ancjemò"
+
+#: ../mate-session/main.c:693
+msgid "- Manage the MATE session"
+msgstr "- Gjestis la session di MATE"
+
+#: ../mate-session/manager.c:513
+msgid "Wait abandoned due to conflict."
+msgstr "Vonde spietâ... Al è un conflit."
+
+#: ../mate-session/manager.c:1021
+#, c-format
+msgid "No response to the %s command."
+msgstr "Nissune rispueste al comant %s."
+
+#: ../mate-session/manager.c:1022
+msgid "The program may be slow, stopped or broken."
+msgstr "Il programe al podares jessi lent, fêr o no funzionâ."
+
+#: ../mate-session/manager.c:1023
+msgid "You may wait for it to respond or remove it."
+msgstr "Al è pussibil spieta ch'al rispuindi o rimovilu."
+
+#: ../mate-session/manager.c:1749
+msgid "Restart abandoned due to failures."
+msgstr "Inviament interot. Masse erôrs."
+
+#: ../mate-session/manager.c:1945
+msgid "A session shutdown is in progress."
+msgstr "Il finiment da session a je in cors."
+
+#: ../mate-session/mate-session-save.c:48
+msgid "Set the current session name"
+msgstr "Imposte il nom da session"
+
+#: ../mate-session/mate-session-save.c:49
+msgid "Kill session"
+msgstr "Cope la session"
+
+#: ../mate-session/mate-session-save.c:50
+msgid "Use dialog boxes for errors"
+msgstr "Dopre barcons di dialogo pai erôrs"
+
+#: ../mate-session/mate-session-save.c:51
+msgid "Do not require confirmation"
+msgstr "No stâ domandâ conferme"
+
+#: ../mate-session/mate-session-save.c:149
+#: ../mate-session/mate-session-save.c:187
+msgid "Could not connect to the session manager"
+msgstr "Impussibil colegasi al gjestôr di session"
+
+#: ../mate-session/mate-session-save.c:172
+msgid "- Save the current session"
+msgstr " - Salve la session curint"
+
+#: ../mate-session/session-properties-capplet.c:154
+msgid "Save changes to the current session before closing?"
+msgstr "Salva i gambiaments a la session curint prime di sierâ?"
+
+#: ../mate-session/session-properties-capplet.c:156
+msgid "If you don't save, changes will be discarded."
+msgstr "Se no si salve, lis modifichis a saran scartadis."
+
+#: ../mate-session/session-properties-capplet.c:159
+msgid "_Close without Saving"
+msgstr "_Siere cence salvâ"
+
+#: ../mate-session/session-properties-capplet.c:224
+msgid "Sessions Preferences"
+msgstr ""
+
+#. non-session managed startup programs
+#: ../mate-session/session-properties-capplet.c:250
+msgid "Additional startup _programs:"
+msgstr "_Programes di inviament agjiuntîfs:"
+
+#: ../mate-session/session-properties-capplet.c:275
+msgid "Enabled"
+msgstr "Abilitât"
+
+#: ../mate-session/session-properties-capplet.c:319
+msgid "Startup Programs"
+msgstr "Programes di inviament"
+
+#: ../mate-session/session-properties-capplet.c:326
+msgid "Current Session"
+msgstr "Session curint"
+
+#. Autosave
+#: ../mate-session/session-properties-capplet.c:337
+msgid "_Automatically remember running applications when logging out"
+msgstr "Al logout visavi _automaticamentri lis aplicazions inviadis"
+
+#: ../mate-session/session-properties-capplet.c:353
+msgid "_Remember Currently Running Applications"
+msgstr "_Visiti lis aplicazions cumò in esecuzion"
+
+#: ../mate-session/session-properties-capplet.c:361
+msgid "Session Options"
+msgstr "Opzions da session"
+
+#: ../mate-session/session-properties-capplet.c:457
+msgid "Your session has been saved."
+msgstr "La session jè stade salvade"
+
+#: ../mate-session/session-properties-capplet.c:500
+msgid "could not connect to the session manager\n"
+msgstr "Impussibil conetisi al gjestôr di session\n"
+
+#: ../mate-session/session-properties-capplet.c:506
+msgid "session manager does not support MATE extensions\n"
+msgstr "Il gjestôr di session nol supuarte lis estensions di MATE\n"
+
+#: ../mate-session/session-properties.c:51
+msgid "Remove the currently selected client from the session."
+msgstr "Rimôf il client che cumò al è selezionât da la session."
+
+#: ../mate-session/session-properties.c:57
+msgid "Apply changes to the current session"
+msgstr "Apliche lis modifichis a la session curint"
+
+#: ../mate-session/session-properties.c:63
+msgid "The list of programs in the session."
+msgstr "La liste dai programes da session."
+
+#: ../mate-session/session-properties.c:89
+msgid "Currently running _programs:"
+msgstr "_Programes cumò in esecuzion:"
+
+#: ../mate-session/splash-widget.c:44
+msgid "Sawfish Window Manager"
+msgstr "Window Manager Sawfish"
+
+#: ../mate-session/splash-widget.c:45
+msgid "Marco Window Manager"
+msgstr "Window Manager Marco"
+
+#: ../mate-session/splash-widget.c:46
+msgid "Window Manager"
+msgstr "Window Manager"
+
+#: ../mate-session/splash-widget.c:47
+msgid "The Panel"
+msgstr "Il panel"
+
+#: ../mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "Caja"
+
+#: ../mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr "Impostazions desktop"
+
+#: ../mate-session/startup-programs.c:348
+msgid "No description"
+msgstr "Nissune descrizion"
+
+#: ../mate-session/startup-programs.c:409
+msgid "Select Command"
+msgstr "Selezione comant"
+
+#: ../mate-session/startup-programs.c:471
+msgid "_Name:"
+msgstr "_Nom:"
+
+#: ../mate-session/startup-programs.c:486
+msgid "Co_mmand:"
+msgstr "Co_mant:"
+
+#: ../mate-session/startup-programs.c:498
+msgid "_Browse..."
+msgstr "_Esplore..."
+
+#: ../mate-session/startup-programs.c:510
+msgid "Comm_ent:"
+msgstr "Co_ment:"
+
+#: ../mate-session/startup-programs.c:538
+msgid "The name of the startup program cannot be empty"
+msgstr "Il nom dal programe di inviament nol pos jessi vueit"
+
+#: ../mate-session/startup-programs.c:540
+msgid "The startup command cannot be empty"
+msgstr "Il nom dal programe di inviament nol pos jessi vueit"
+
+#: ../mate-session/startup-programs.c:546
+msgid "The startup command is not valid"
+msgstr "Il comant di inviament nol è valid"
+
+#: ../mate-session/startup-programs.c:603
+msgid "Add Startup Program"
+msgstr "Gnûf programe di inviament"
+
+#: ../mate-session/startup-programs.c:647
+msgid "Edit Startup Program"
+msgstr "Modifiche programe di inviament"
diff --git a/po/fy.po b/po/fy.po
new file mode 100644
index 0000000..0848bb5
--- /dev/null
+++ b/po/fy.po
@@ -0,0 +1,594 @@
+# Frisian translation for mate-session
+#
+# This file is distributed under the same license as the mate-session package.
+# Sietse <>, 2009.
+# Sense Hofstede <[email protected]>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2010-07-15 14:27+0000\n"
+"PO-Revision-Date: 2010-07-18 00:59+0200\n"
+"Last-Translator: Sense Hofstede <[email protected]>\n"
+"Language-Team: Frisian <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\\n\n"
+"X-Launchpad-Export-Date: 2010-07-17 22:40+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Kommando selektearje"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Opstartprogramma tafoegje"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Opstartprogramma oanpasse"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "It opstartkommando kin net leeg wêze"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "It opstartkommando is net jildich"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Ynskeakele"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Byldkaike"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Programma"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Ynstellings foar opstartprogramma's"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Gjin namme"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Gjin beskriuwing"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Ferzje fan dit programma"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Koe it help dokumint net werjaan"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Dizze sesje meld jo oan yn MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Standaardsesje"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Triembehearder"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"As dit ynskakele is, sil mate-session de bruker freegje foar't hij de sesje "
+"beeindiget."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "As dit ynskakele is, sil mate-session de sesje automatysk bewarje."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Lyst mei applikaasjes dy't in part binne fan de standerdsesje"
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Lyst fan komponinten dy't nedich binne as in part fan de sesje. (Elts "
+"elemint neamt in kaai ûnder \"/desktop/mate/session/required_components\"). "
+"It Start Applikaasje ynstellings ark lit brûkers gjin easke komponinten út "
+"de sesje fuortsmite, en de sesje behearder sil automatysk de easke "
+"komponinten by it oanmelden wer tafoegje oan de sesje wannear't sy dochs "
+"fuortsmiten binne."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Útlogfinster"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Paniel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Foarkar plaatsje om te brûken foar it splash skerm"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "Easke sesje komponinten"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "Sesjes opslaan"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "Splash skerm sjin litte"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "Splash skerm sjen litte wylst de sesje útein set"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"De triem ûnderhâlder jout de buroblêd byldkaikes en makket it jo mooglik om "
+"mei jo bewarre triemen te wurkjen."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"It oantal minuten fan wachttid foar't de sesje as non-aktyf beskôge wurd."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"De paniel levert in balke boppe as ûnder jo skerm en befetted menus, the "
+"finster list, status byldkaaikes, de klok, ens."
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"De finster ûnderhâlder is de applikaasje dat de titelbalke tekent mei rânen "
+"rûnom de finsters, en makket it mooglik om de finsters te verpleatsen en fan "
+"formaat te feroarjen."
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"affect the next session login."
+msgstr ""
+"Dit is in relatyf paadwearde basearje op de $datadir/pixmaps/ triemtafel. "
+"Ûndertafel- en ôfbyldingsnammen binne jildiche wearden. Feroarings fan dizze "
+"wearden wurde aktyf by de folgjende sesjeoanmelding."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "Tiid foardat de sesje is sjoen as neatdwaande"
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Finsterbehearder"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Sommiche applikaasjes rinne noch:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"Wachtsjen op beëinigjen fan applikaasje. Ûnderbrekken fan de applikaasje "
+"kin jo wurk kwyt meitsje."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Kies hokker applikaasjes start wurden by oanmelden"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Opstart Applikaasjes"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Extra opstart _applikaasjes:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "Blêdzje..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "Ko_mmando"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Ta_ljochting"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Opsjes"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Startprogramma's"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Automatysk ûnthâld rinnende applikaasje by âfmelden"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Namme:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Ûnthâld No Rinnende Applikaasje"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Triem is gjin deugdlike .desktop triem"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Ûnbekend buroblêd triem fersje '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Út ein setten fan %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Applikaasje akseptearret gjin dokuminten op de kommando rigel"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Ûnbekende start opsje: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Kin gjin dokumint URIs oan in 'Type=Link' buroblêd ynfier trochjaan"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Gjin útein te setten item"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Skeakelje ferbining mei sesjebehearder út"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Spesifisear triem mei bewarre konfiguraasje"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "TRIEM"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Tsjut sesjebehear-ID oan"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Sesjebehearkarren"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Lit sesjebehearkarren sjen"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Der is in probleem mei de konfiguraasje tsjinner.\n"
+"(%s utgongen mei status %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Byldkaaike '%s' net fûn"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Ûnbekend"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "In applikaasje rint noch:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Guon applikaasjes rinne noch:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Wachtsjen foar beëinigjen fan applikaasjes. Ûnderbrekken fan dizze "
+"applikaasjes kin jo wurk kwyt meitsje."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Brûker Toch Wechselje"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Toch Útlogge"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Dochs Nei Sliep-modus"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Dochs Nei Wintersliep-modus"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "Dochs Útsette"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Dochs Opnij Starte"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Skerm Beskoattelje"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Skras"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Jo wurde automatysk ôfmelde yn %d sekonde."
+msgstr[1] "Jo wurde automatysk ôfmelde yn %d sekonden."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Dit systeem sil automatysk ôfslúten wurde yn %d sekonde."
+msgstr[1] "Dit systeem sil automatysk ôfslúten wurde yn %d sekonden."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Jo binne no oanmelde as \"%s\""
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "No ôfmelde fan dit systeem?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "Brûker wik_selje"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "Ôfme_lde"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "No dit systeem ôfslúte?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "Pa_usearje"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "Sliepstân"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "Opnij Sta_rte"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "Ôf_slúte"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Reagearret net"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking log out."
+msgstr "Dizze applikaasje blokkearret ôfmelden."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "Weigert nije klant ferbining omdat de sesje no ôfslúten wurd\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Koe net ICE lústerjende oanslúting: %s meitsje"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Kin oanmeld sesje net starte (en kin gjin kontakt mei de X tsjinner meitsje)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Oerskriuw standerd autostart triemmen"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to lookup default session"
+msgstr "MateConf kaai brûkt om de standert sesje op te syskjen"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Debug-koade ynskeakelje"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Brûker-ynstelde programma's net lade"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - de MATE sesjebehearder"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- MATE Splash-skerm"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "MATE Splash-skerm"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Ôfmelde"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "ôfmelde, alle besteande ferbieders negearjend"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Ôfmeldfinster sjen litte"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Ôfslútfinster sjen litte"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Dialoogfinsters brûke foar flaters"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Set de aktuele sesje namme"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAMME"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Sesje ôfbrekke"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Fereaskje gjin bevestigen"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Koe net ferbine mei de sesjebehearder"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Applikaasje oanroppen mei konfliktearende opsjes"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "Jo sesje is bewarre."
+
+#~ msgid "Failed to save session"
+#~ msgstr "Bewarje fan sesje misleare"
+
+#~ msgid "Could not connect to the session bus"
+#~ msgstr "Koe gjin ferbining meitsje mei de sesje bus"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "MATE Ynstellings Demon Behearder"
+
+#~ msgid "Failsafe MATE"
+#~ msgstr "Mislearfeiliche MATE"
+
+#~ msgid "This session logs you into MATE without user applications"
+#~ msgstr "Dizze sesje meld jo oan yn MATE sûnder brûker applikaasjes"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "As dit ynskakele is, sil mate-session de sesje automatysk opslaan. As "
+#~ "dat net it gefal is, sil it utlogfinster een opsje hawwe om de sesje op "
+#~ "te slaan."
+
+#~ msgid "Ends your session and logs you out."
+#~ msgstr "Beslút de sesje en meld ôf."
+
+#~ msgid ""
+#~ "Suspends your session, allowing another user to log in and use the "
+#~ "computer."
+#~ msgstr ""
+#~ "Sliepstân foar jo sesje, sadat in oare brûker oanmelde en dizze kompûter "
+#~ "brûke kin.\r\n"
+#~ "Skoftsje jo sesje, om ta te stean dat in oare brûker sich oanmelde kin en "
+#~ "dizze kompûter brûke kin."
+
+#~ msgid "Shut Down the Computer"
+#~ msgstr "Kompjûter ôfslúte"
+
+#~ msgid "Ends your session and turns off the computer."
+#~ msgstr "Beëinigjen fan jo sesje en de kompjûter ôfslute."
+
+#~ msgid "Ends your session and restarts the computer."
+#~ msgstr "Beëinigjen fan jo sesje en de kompjûter op'e nij starte."
+
+#~ msgid ""
+#~ "Suspends your session quickly, using minimal power while the computer "
+#~ "stands by."
+#~ msgstr ""
+#~ "Pausearret fluch jo sesje , minimaal brûk meitsjend fan energzjy wylst de "
+#~ "computer steande by is."
+
+#~ msgid ""
+#~ "Suspends your session, using no power until the computer is restarted."
+#~ msgstr ""
+#~ "Pausearret jo sesje, gjin brûk meitsjend fan energzjy oant de kompjûter "
+#~ "op'e nij starte is.."
+
+#~ msgid "Cannot find help."
+#~ msgstr "Koe gjin help fine."
diff --git a/po/ga.po b/po/ga.po
new file mode 100644
index 0000000..60138e1
--- /dev/null
+++ b/po/ga.po
@@ -0,0 +1,530 @@
+# Irish translations for mate-session package.
+# Copyright (C) 2000-2009 Free Software Foundation, Inc.
+# This file is distributed under the same license as the mate-session package.
+# Seán Ó Ceallaigh <[email protected]>, 2000.
+# Paul Duffy <[email protected]>, 2003.
+# Seán de Búrca <[email protected]>, 2007-2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-31 18:10-0600\n"
+"PO-Revision-Date: 2009-07-31 18:26-0600\n"
+"Last-Translator: Seán de Búrca <[email protected]>\n"
+"Language-Team: Irish <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=5; plural=n==1 ? 0 : (n%10==1 || n%10==2) ? 1 : (n%"
+"10>=3 && n%10<= 6) ? 2 : ((n%10>=7 && n%10<=9) || n==10) ? 3 : 4;\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Roghnaigh Ordú"
+
+#: ../capplet/gsm-app-dialog.c:192
+msgid "Add Startup Program"
+msgstr "Cuir Ríomhchlár Tosaithe Leis"
+
+#: ../capplet/gsm-app-dialog.c:196
+msgid "Edit Startup Program"
+msgstr "Cuir Ríomhchlár Tosaithe in Eagar"
+
+#: ../capplet/gsm-app-dialog.c:484
+msgid "The startup command cannot be empty"
+msgstr ""
+
+#: ../capplet/gsm-app-dialog.c:490
+msgid "The startup command is not valid"
+msgstr ""
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Cumasaithe"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Deilbhín"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Ríomhchlár"
+
+#: ../capplet/gsm-properties-dialog.c:790
+msgid "Startup Applications Preferences"
+msgstr "Sainroghanna Feidhmchlár Tosaithe"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Gan ainm"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Gan cur síos"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "Leagan an fheidhmchláir seo"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr ""
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr "Rapar Chlárlann AT SPI"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "Cuiditheoir Dheamhan Socruithe MATE"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Logálann an seisiún seo thú isteach i nMATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Seisiún réamhshocraithe"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Bainisteoir Comhad"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Leid logála amach"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Painéal"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "Sábháil seisiúin"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "Taispeáin an splancscáileán"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "Taispeáin an splancscáileán nuair a thosaíonn an seisiún"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Bainisteoir Fuinneoga"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Tá ríomhcláir éigin ag rith fós:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Roghnaigh na feidhmchláir le tosú agus ag logáil isteach"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Feidhmchláir Tosaithe"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "_Ríomhchláir tosaithe breise:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "Brábhsáil..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Ordú:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "_Nóta:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Roghanna"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Ríomhchláir Tosaithe"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "Meabhraigh feidhmchláir á rith go huathoibríoch agus ag logáil amach"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Ainm:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Meabhraigh Feidhmchlár á Rith Faoi Láthair"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Ní comhad .desktop bailí é an comhad"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Leagan comhaid deisce anaithnid '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "%s á Thosú"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Rogha tosaithe anaithnid: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr ""
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr ""
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr ""
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "COMHAD"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Sonraigh CA bainistíochta seisiún"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "CA"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Roghanna bainistíochta seisiún:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Taispeáin roghanna bainistíochta seisiún"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Tá fadhb ann leis an bhfreastalaí cumraíochta.\n"
+"(Chríochnaigh %s le stádas %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Deilbhín '%s' gan aimsiú"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Anaithnid"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Tá feidhmchlár á rith fós:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Aistrigh Úsáideoir Mar Sin Féin"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Logáil Amach Mar Sin Féin"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Cuir ar Fionraí Mar Sin Féin"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Geimhrigh Mar Sin Féin"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "Múch Mar Sin Féin"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Atosaigh Mar Sin Féin"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Cuir Scáileáin Faoi Ghlas"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Cealaigh"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Logálfar thú amach go huathoibríoch i gceann %d soicind."
+msgstr[1] "Logálfar thú amach go huathoibríoch i gceann %d shoicind."
+msgstr[2] "Logálfar thú amach go huathoibríoch i gceann %d shoicind."
+msgstr[3] "Logálfar thú amach go huathoibríoch i gceann %d soicind."
+msgstr[4] "Logálfar thú amach go huathoibríoch i gceann %d soicind."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Múchfar an córas seo go huathoibríoch i gceann %d soicind."
+msgstr[1] "Múchfar an córas seo go huathoibríoch i gceann %d shoicind."
+msgstr[2] "Múchfar an córas seo go huathoibríoch i gceann %d shoicind."
+msgstr[3] "Múchfar an córas seo go huathoibríoch i gceann %d soicind."
+msgstr[4] "Múchfar an córas seo go huathoibríoch i gceann %d soicind."
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Tá tú logáilte isteach mar \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:379
+msgid "Log out of this system now?"
+msgstr "Logáil amach as an gcóras seo anois?"
+
+#: ../mate-session/gsm-logout-dialog.c:385
+msgid "_Switch User"
+msgstr "_Switch User"
+
+#: ../mate-session/gsm-logout-dialog.c:394
+msgid "_Log Out"
+msgstr "_Lógáil Amach"
+
+#: ../mate-session/gsm-logout-dialog.c:400
+msgid "Shut down this system now?"
+msgstr "Múch an córas seo anois?"
+
+#: ../mate-session/gsm-logout-dialog.c:406
+msgid "S_uspend"
+msgstr "_Cuir ar Fionraí"
+
+#: ../mate-session/gsm-logout-dialog.c:412
+msgid "_Hibernate"
+msgstr "_Geimhrigh"
+
+#: ../mate-session/gsm-logout-dialog.c:418
+msgid "_Restart"
+msgstr "_Atosaigh"
+
+#: ../mate-session/gsm-logout-dialog.c:428
+msgid "_Shut Down"
+msgstr "_Múch"
+
+#: ../mate-session/gsm-manager.c:1158 ../mate-session/gsm-manager.c:1850
+msgid "Not responding"
+msgstr "Gan fhreagairt"
+
+#: ../mate-session/gsm-xsmp-client.c:1206
+msgid "This program is blocking log out."
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr ""
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr "Sáraigh comhadlanna uath-thosaithe caighdeánacha"
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr "Eochair MateConf úsáidte chun seisiún réamhshocraithe a chuardach"
+
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr "Cumasaigh cód dífhabhtaithe"
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr "Ná luchtaigh feidhmchláir sonraithe ag an úsáideoir"
+
+#: ../mate-session/main.c:457
+msgid " - the MATE session manager"
+msgstr "- an bainisteoir seisiún MATE"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- Splancscáileáin MATE"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "Splancscáileáin MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Logáil amach"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr ""
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr ""
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr ""
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr ""
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Socraigh ainm an tseisiúin reatha"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "AINM"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Maraigh seisiún"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr ""
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr ""
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr ""
diff --git a/po/gl.po b/po/gl.po
new file mode 100644
index 0000000..4c76c8c
--- /dev/null
+++ b/po/gl.po
@@ -0,0 +1,548 @@
+# translation of mate-session.master.po to Galician
+# Galician translation of mate-session.
+# Copyright (C) 1999-2004 Jesús Bravo Álvarez
+#
+# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas
+# colaborar connosco, podes atopar máis información en http://www.trasno.net
+#
+# First Version: 2002-04-06 14:23+0200
+#
+#
+# Jesús Bravo Álvarez <[email protected]>, 1999-2004.
+# Ignacio Casal Quinteiro <[email protected]>, 2005, 2006.
+# Ignacio Casal Quinteiro <[email protected]>, 2007.
+# Ignacio Casal Quinteiro <[email protected]>, 2008.
+# Mancomún - Centro de Referencia e Servizos de Software Libre <[email protected]>, 2009.
+# Antón Méixome <[email protected]>, 2009.
+# Fran Diéguez <[email protected]>, 2010.
+# Fran Dieguez <[email protected]>, 2009, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.master\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-01 11:05+0200\n"
+"PO-Revision-Date: 2010-09-01 11:07+0200\n"
+"Last-Translator: Fran Dieguez <[email protected]>\n"
+"Language-Team: Galician <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: gl\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Seleccionar unha orde"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Engadir un programa de inicio"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Editar un programa de inicio"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "A orde de inicio non pode estar baleira"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "A orde do programa de inicio é incorrecta"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Activado"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Icona"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Programa"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Preferencias dos aplicativos de inicio"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Sen nome"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Sen descrición"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Versión deste aplicativo"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Non foi posíbel mostrar o documento de axuda"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Esta sesión iniciará en MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Sesión predefinida"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Xestor de ficheiros"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Se está activada, o mate-session preguntará ao usuario antes de terminar "
+"unha sesión."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Se está activada, o mate-session gardará a sesión automaticamente."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Lista de aplicativos que forman parte da sesión predefinida."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Lista de compoñentes que se requiren como parte da sesión. (Cada elemento "
+"nomea unha chave baixo \"/desktop/mate/session/required_components\"). "
+"Xeralmente, a ferramenta Preferencias de aplicativos de inicio non permitirá "
+"que os usuarios eliminen un compoñente requirido da sesión, polo que o "
+"xestor de sesións engadirá automaticamente os compoñentes á sesión cando "
+"esta se inicie, en caso de que sexan eliminados."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Preguntar ao terminar a sesión"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Compoñentes requiridos na sesión"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Gardar as sesións"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"O xestor de ficheiros proporciona as iconas de escritorio e permítelle "
+"realizar accións cos ficheiros que teña gardados."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"O número de minutos de inactividade para que a sesión se considere inactiva."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"O panel mostra a barra ao principio ou ao final da pantalla que contén os "
+"menús, a lista de xanelas, as iconas de estado, o reloxo etc."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"O xestor de xanelas é o programa que debuxa a barra de título e os bordos "
+"das xanelas e que lle permite mover e redimensionar as xanelas."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Tempo necesario para que a sesión se considere inactiva"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Xestor de xanelas"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Algúns programas aínda se están executando:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"Esperando a que os programas terminen. Se interrompe este programa pode "
+"causar a perda do seu traballo."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Seleccione que aplicativos se iniciarán coa sesión"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Aplicativos de inicio"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "_Programas de inicio adicionais:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "Explorar..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "Or_de:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Com_entario:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Opcións"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Programas de inicio"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "Recordar _automaticamente os aplicativos en execución ao desconectar"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Nome:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Recordar o aplicativo que se está executando"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "O ficheiro non é un ficheiro .desktop correcto"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Non se recoñece a versión de ficheiro desktop «%s»"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Iniciando %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "O aplicativo non acepta documentos na liña de ordes"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Non se recoñece a opción de inicio: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"Non é posíbel pasar os URI dos documentos a unha entrada de escritorio "
+"'Type=Link'"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Non é un elemento executábel"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Desactivar a conexión para o xestor de sesión"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Especifique o ficheiro que contén a configuración gardada"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FICHEIRO"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Especifique o ID de xestión de sesión"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Opcións de xestión de sesión:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Mostrar as opcións de xestión de sesión"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Hai un problema co servidor de configuración.\n"
+"(%s saíu co estado %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Non foi posíbel encontrar a icona «%s»"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Descoñecido"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Aínda se está executando un programa:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Aínda se están executando algúns programas:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Esperando a que os programas terminen. A interrupción destes programas "
+"podería causar a perda do seu traballo."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Cambiar de usuario de todas formas"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "Saír da sesión de todas formas"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Suspender de todas formas"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Hibernar de todas formas"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "Apagar de todas formas"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Reiniciar de todas formas"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Bloquear a pantalla"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "A súa sesión será terminada automaticamente en %d segundo."
+msgstr[1] "A súa sesión será terminada automaticamente en %d segundos."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Este sistema apagarase automaticamente en %d segundo."
+msgstr[1] "Este sistema apagarase automaticamente en %d segundos."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Actualmente ten unha sesión iniciada como «%s»."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Quere terminar a sesión neste sistema agora?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "_Cambiar de usuario"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Saír da sesión"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Quere apagar o sistema agora?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "S_uspender"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Hibernar"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "_Reiniciar"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "_Apagar"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Non responde"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "Este programa está bloqueando a finalización da sesión."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Rexeitouse a conexión co novo cliente porque neste momento a sesión está "
+"sendo apagada\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Non foi posíbel crear o socket de escoita ICE: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Non é posíbel iniciar a sesión (e non é posíbel conectar co servidor X)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Ignorar os directorios de inicio automático estándares"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "A chave do MateConf empregada para buscar a sesión predefinida"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Activar o código de depuración"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Non cargar os aplicativos especificados polo usuario"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "- o xestor de sesións do MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Saír da sesión"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Saír da sesión ignorando calquera inhibidor existente"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Mostrar o diálogo de fin de sesión"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Mostrar o diálogo de apagado"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Usar as caixas de diálogo para os erros"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Definir o nome da sesión actual"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NOME"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Matar a sesión"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Non requirir confirmación"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Non foi posíbel conectar co xestor de sesión"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Chamouse un programa con opcións en conflito"
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr ""
+#~ "Esperando a que o programa termine. Interromper o programa podería causar "
+#~ "a perda do seu traballo."
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr ""
+#~ "Imaxe preferida para usar na pantalla de presentación ao iniciar a sesión"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "Mostrar a pantalla de presentación"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "Mostrar a pantalla de presentación ao iniciar a sesión"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will affect the next session login."
+#~ msgstr ""
+#~ "Este é un camiño relativo baseado no directorio $datadir/pixmaps/. Os "
+#~ "subdirectorios e os nomes de imaxes son valores válidos. As modificacións "
+#~ "deste valor serán efectivas a partires do seguinte inicio de sesión."
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- Pantalla de presentación do MATE"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "Pantalla de presentación do MATE"
diff --git a/po/gu.po b/po/gu.po
new file mode 100644
index 0000000..8e7f912
--- /dev/null
+++ b/po/gu.po
@@ -0,0 +1,535 @@
+# translation of mate-session.master.gu.po to Gujarati
+# MagNet <[email protected]>, 2004.
+# Ankit Patel <[email protected]>, 2004, 2005, 2007, 2009.
+# Ankit Patel <[email protected]>, 2006.
+# Sweta Kothari <[email protected]>, 2009, 2010.
+# Copyright (C) 2004, 2005, 2006, 2007, 2009, 2010 Free Software Foundation, Inc.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.master.gu\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-session&component=general\n"
+"POT-Creation-Date: 2010-07-24 18:21+0000\n"
+"PO-Revision-Date: 2010-08-02 17:18+0530\n"
+"Last-Translator: Sweta Kothari <[email protected]>\n"
+"Language-Team: Gujarati\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+
+# mate-session/session-properties-capplet.c:362
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "આદેશ ને પસંદ કરો"
+
+# mate-session/startup-programs.c:392
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "શરુઆતી કાર્યક્રમને ઉમેરો"
+
+# mate-session/startup-programs.c:392
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "શરુઆતી કાર્યક્રમમાં ફેરફાર કરો"
+
+# mate-session/startup-programs.c:332
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "શરુઆતી આદેશ ખાલી હોઈ શકે નહિ"
+
+# mate-session/startup-programs.c:332
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "શરૂઆતી આદેશ માન્ય નથી"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "સક્રિય કરેલ"
+
+# mate-session/logout.c:266
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "ચિહ્ન"
+
+# mate-session/gsm-client-list.c:111
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "કાર્યક્રમ"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "શરૂઆતી કાર્યક્રમોની પસંદગીઓ"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "નામ નથી"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "કોઈ વર્ણન નથી"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "આ કાર્યક્રમની આવૃત્તિ"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "મદદ દસ્તાવેજ દર્શાવી શકાયુ નહિં"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "આ સત્ર તમને MATE માં પ્રવેશ આપે છે"
+
+# mate-session/save-session.c:43
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "મૂળભૂત સત્ર"
+
+# mate-session/splash.c:71
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "ફાઇલ સંચાલક"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "જો સક્રિય હોય તો, સત્ર સમાપ્ત કરતાં પહેલા જીનોમ-સત્ર વપરાશકર્તાને પૂછશે."
+
+#: ../data/mate-session.schemas.in.in.h:4
+#| msgid ""
+#| "If enabled, mate-session will prompt the user before ending a session."
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "જો સક્રિય હોય તો, mate-session સ્વયં સત્રનો સંગ્રહ કરશે."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "કાર્યક્રમોની યાદી કે જે મૂળભૂત સત્ર ને ભાગ છે."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"ઘટકોની યાદી કે જેઓ સત્રના ભાગરૂપે જરૂરી છે. (દરેક ઘટક નામ \"/desktop/mate/session/"
+"required_components\" હેઠળ કી આપે છે). શરૂઆતી કાર્યક્રમો પસંદગીઓ સાધન સામાન્ય રીતે "
+"વપરાશકર્તાઓને સત્રમાંથી જરૂરી ઘટક દૂર કરવા માટે પરવાનગી આપતું નથી, અને સત્ર વ્યવસ્થાપક "
+"આપોઆપ જરૂરી ઘટકો સત્રમાં પ્રવેશ સમયે ઉમેરી દેશે જો તેઓ દૂર થઈ ગયા હોય."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "બહાર નીકળવાનુ પૂછો"
+
+# mate-session/splash.c:69
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "પેનલ"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "જરૂરી સત્ર ઘટકો"
+
+# mate-session/session-properties.c:272
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "સત્રોનો સંગ્રહ કરો"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"ફાઇલ વ્યવસ્થાપક એ ડેસ્કટોપ ચિહ્નોને પૂરા પાડે છે અને તમારી સંગ્રહ થયેલ ફાઇલો સાથે તમને સંપર્ક "
+"કરવા પરવાનગી આપે છે."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "The number of minutes of inactivity before the session is considered idle."
+msgstr "સત્રને ફાજલ સમજવામાં આવે તે પહેલાં અસક્રિયતાનો દર મિનિટોમાં."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"મેનુઓ, વિન્ડો યાદી, પરિસ્થિતિ ચિહ્નો, ઘડિયાળ, વગેરે સમાવતી સ્ક્રીનની ટોચે કે તળિયે પેનલ "
+"પટ્ટી પૂરી પાડે છે."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"વિન્ડો વ્યવસ્થાપક એ કાર્યક્રમ છે કે જે વિન્ડોની ફરતે શીર્ષક પટ્ટી અને કિનારીઓ દોરે છે, અને "
+"તમને વિન્ડો ખસેડવા અને માપ બદલવા માટે પરવાનગી આપે છે."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "સત્ર ફાજલ સમજવામાં આવે તે પહેલાંનો સમય"
+
+# mate-session/splash.c:71
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "વિન્ડો સંચાલક"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>કેટલીક પ્રક્રિયાઓ એ હજુ ચાલી રહી છે:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"સમાપ્ત કરવા પ્રક્રિયા માટે રાહ જોઇ રહ્યા છે. અટકાવેલી પ્રક્રિયા એ તમે તમારા કામ ને "
+"ગુમાવવાનું કારણ બની શકે છે."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "જ્યારે તમે પ્રવેશો તો શરૂ કરવા માટે ક્યા કાર્યક્મો જોઇએ છે તેને પસંદ કરો"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "શરૂઆતી કાર્યક્રમો"
+
+# mate-session/startup-programs.c:372
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "વધારાનો પ્રારંભીક કાર્યક્રમ (_p):"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "બ્રાઉઝ..."
+
+# mate-session/session-properties-capplet.c:362
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "આદેશ (_m):"
+
+# mate-session/session-properties-capplet.c:362
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "ટિપ્પણી (_e):"
+
+# mate-session/session-properties-capplet.c:332
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "વિકલ્પો"
+
+# mate-session/session-properties-capplet.c:399
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "શુરુઆતી કાર્યક્રમો"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "જ્યારે બહાર નીકળી રહ્યા હોય ત્યારે ચાલી રહેલ કાર્યક્રમો આપોઆપ યાદ રાખો (_A)"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "નામ (_N):"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "વર્તમાનમાં ચાલી રહેલ કાર્યક્રમો યાદ રાખો (_R)"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "ફાઇલ એ યોગ્ય .desktop ફાઇલ નથી"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "ઓળખી ન શકાય તેવી ડેસ્કટોપ ફાઇલ આવૃત્તિ '%s'"
+
+# mate-session/gsm-client-row.c:34
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "શરુ થઈ રહ્યુ છે %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "આદેશ વાક્ય પર કાર્યક્રમ એ દસ્તાવેજોને સ્વીકારતુ નથી"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "નહિં ઓળખાતો લોન્ચ વિકલ્પ: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "'Type=Link' ડેસ્કટોપ પ્રવેશમાં દસ્તાવેજ URIs ને પસાર કરી શકાતી નથી"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "શરૂ કરવા માટે વસ્તુ નથી"
+
+# mate-session/save-session.c:112
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "સત્ર સંચાલક નાં જોડાણને નિષ્ક્રિય કરો"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "ચોક્કસ ફાઇલ એ સંગ્રહ થયેલ રૂપરેખાંકનને સમાવી રહ્યુ છે"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "ફાઇલ"
+
+# mate-session/main.c:66
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "સત્ર વ્યવસ્થાપન ID ને સ્પષ્ટ કરો"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+# mate-session/session-properties-capplet.c:332
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "સત્ર વ્યવસ્થાપન વિકલ્પો:"
+
+# mate-session/session-properties-capplet.c:332
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "સત્ર વ્યવસ્થાપન વિકલ્પો ને બતાવો"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"ત્યાં રૂપરેખાંકન સર્વર સાથે સમસ્યા છે.\n"
+"(સ્થિતિ %2$d સાથે %1$s બહાર નીકળેલ છે)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "ચિહ્ન '%s' એ શોધાયુ નથી"
+
+# mate-session/gsm-client-row.c:43
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "અજ્ઞાત"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "પ્રક્રિયા એ હજુ ચાલી રહી છે:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "કેટલીક પ્રક્રિયાઓ એ હજુ ચાલી રહી છે:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"સમાપ્ત કરવા પ્રક્રિયા માટે રાહ જોઇ રહ્યા છે. અટકાવેલી પ્રક્રિયા એ તમે તમારા કામ ને "
+"ગુમાવવાનું કારણ બની શકે છે."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "કોઇપણ રીતે વપરાશકર્તાને બદલો"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "કોઈ પણ રીતે બંધ કરો"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "કોઇપણ રીતે અટકાવો"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "કોઈ પણ રીતે હાઇબરનેટ કરો"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "કોઈ પણ રીતે બંધ કરો"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "કોઈ પણ રીતે ફરી બુટ કરો"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "સ્ક્રીન ને તાળુ મારો"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "રદ કરો"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "તમે %d સેકન્ડમાં આપમેળે બહાર નીકળી જશો."
+msgstr[1] "તમે %d સેકન્ડોમાં આપમેળે બહાર નીકળી જશો."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "આ સિસ્ટમ એ %d સેકન્ડમાં આપમેળે બહાર નીકળી જશે."
+msgstr[1] "આ સિસ્ટમ એ %d સેકન્ડોમાં આપમેળે બહાર નીકળી જશે."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "\"%s\" તરીકે તમે હાલમાં પ્રવેશેલ છો."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "હવે આ સિસ્ટમની બહાર નીકળો?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "વપરાશકર્તા ને બદલો (_S)"
+
+# mate-session/logout.c:274
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "બહાર નીકળો (_L)"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "હવે આ સિસ્ટમ ને બંધ કરો?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "અટકાવો (_u)"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "હાઇબરનેટ (_H)"
+
+# mate-session/session-properties.c:173
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "ફરીથી શરુ કરો (_R)"
+
+# mate-session/logout.c:277
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "બંધ કરો (_S)"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "જવાબ આપતુ નથી"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking log out."
+msgstr "આ કાર્યક્રમ એ બહાર નીકળવાને અટકાવી રહ્યો છે."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "નવા ક્લાઇન્ટ જોડાણને ના પાડી રહ્યા છે કારણ કે સત્ર એ હાલમાં બંધ થયેલ છે\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ICE સાંભળવાની સોકેટ ને બનાવી શકાતી નથી: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "પ્રવેશ સત્ર ને શરૂ કરવામાં અસમર્થ (અને X server ને જોડવામાં અસમર્થ)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "પ્રમાણભૂત આપોઆપશરૂઆત ડિરેક્ટરીઓ પર ફરી લખો"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to lookup default session"
+msgstr "MateConf કી એ મૂળભૂત સત્ર ને જોવા માટે વપરાયેલ છે"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "ડિબગીંગ કોડ ને સક્રિય કરો"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "વપરાશકર્તા-સ્પષ્ટ થયેલ કાર્યક્રમો ને લોડ કરાતા નથી"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - જીનોમ સત્ર વ્યવસ્થાપક"
+
+# mate-session/logout.c:274
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "બહાર નીકળો"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "બહાર નીકળો, કોઈપણ હાલના રોકાણો અવગણી રહ્યા છીએ"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "સંવાદ ને બહાર નીકળવાનું બતાવો"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "સંવાદ ને બંધ કરવાનું બતાવો"
+
+# mate-session/save-session.c:44
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "ભૂલો માટે સંવાદ બોક્સો વાપરો"
+
+# mate-session/session-properties-capplet.c:259
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "વર્તમાન સત્ર નામ સુયોજિત કરો"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAME"
+
+# mate-session/save-session.c:43
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "સત્ર સમાપ્ત કરો"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "ખાતરી જરૂરી નથી"
+
+# mate-session/save-session.c:112
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "સત્ર સંચાલક સાથે સંપર્ક થઈ શક્યો નથી"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "તકરાતા વિકલ્પો સાથે કાર્યક્રમ બોલાવવામાં આવ્યો"
+
diff --git a/po/ha.po b/po/ha.po
new file mode 100644
index 0000000..c13ab95
--- /dev/null
+++ b/po/ha.po
@@ -0,0 +1,810 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session-2.0\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2009-01-17 11:27+0000\n"
+"PO-Revision-Date: 2006-04-25 12:54+0100\n"
+"Last-Translator: saudat mohammed <saudat@wazobialinux>\n"
+"Language-Team: hausa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.10\n"
+
+#: ../capplet/gsm-app-dialog.c:126
+#, fuzzy
+msgid "Select Command"
+msgstr "Umarnin Farawa"
+
+#: ../capplet/gsm-app-dialog.c:187
+msgid "Add Startup Program"
+msgstr "Ƙara Shirin Farawa"
+
+#: ../capplet/gsm-app-dialog.c:191
+msgid "Edit Startup Program"
+msgstr "Shirya Shirin Farawa"
+
+#: ../capplet/gsm-properties-dialog.c:132
+msgid "No description"
+msgstr ""
+
+#: ../capplet/gsm-properties-dialog.c:952
+#, fuzzy
+msgid "The name of the startup program cannot be empty"
+msgstr "Umarnin farawa ba zai iya zama mai maras komai ba"
+
+#: ../capplet/gsm-properties-dialog.c:956
+msgid "The startup command cannot be empty"
+msgstr "Umarnin farawa ba zai iya zama mai maras komai ba"
+
+#: ../capplet/gsm-properties-dialog.c:962
+#, fuzzy
+msgid "The startup command is not valid"
+msgstr "Umarnin farawa ba zai iya zama mai maras komai ba"
+
+#: ../capplet/gsm-properties-dialog.c:1279
+msgid "Enabled"
+msgstr ""
+
+#: ../capplet/gsm-properties-dialog.c:1292
+#, fuzzy
+msgid "Icon"
+msgstr "Aiki"
+
+#: ../capplet/gsm-properties-dialog.c:1303
+msgid "Program"
+msgstr "Shiri"
+
+#: ../capplet/gsm-properties-dialog.c:1453
+#: ../data/session-properties.glade.h:6
+msgid "Sessions Preferences"
+msgstr ""
+
+#: ../capplet/main.c:37 ../mate-session/main.c:508
+msgid "Version of this application"
+msgstr ""
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr ""
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr ""
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr ""
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:1
+#, fuzzy
+msgid "Default session"
+msgstr "Kashe zaman shawara"
+
+#: ../data/mate-session.schemas.in.h:2
+#, fuzzy
+msgid "File Manager"
+msgstr "Manajan Taga"
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Idan an fara, zaman shawarar-mate zai yi tambaya ga mai amfani da kwamfyuta "
+"kafin ya ƙarasar da zaman shawarar."
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Idan an fara, zaman shawarar-mate zai adana zaman shawarar farat ɗaya. Idan "
+"ba haka ba, za'a ba da iko wa zauren akwatin bayanin fitarwa ya zaɓi adana "
+"zaman shawarar."
+
+#: ../data/mate-session.schemas.in.h:5
+#, fuzzy
+msgid "List of applications that are part of the default session."
+msgstr "Tsarin da shirin ayuka ke farawa cikin zaman shawara."
+
+#: ../data/mate-session.schemas.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required-components\".) The "
+"Session Preferences will not normally allow users to remove a required "
+"component from the session, and the session manager will automatically add "
+"the required components back to the session if they do get removed."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Logout prompt"
+msgstr "Tambaya ga fitarwa"
+
+#: ../data/mate-session.schemas.in.h:8
+#, fuzzy
+msgid "Panel"
+msgstr "Fanel ɗin"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Surar da aka fi son amfani da wa sifilash skireen"
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Required session components"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:11
+msgid "Save sessions"
+msgstr "Adana zaman shawara"
+
+#: ../data/mate-session.schemas.in.h:12
+msgid "Selected option in the log out dialog"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:13
+msgid "Show the splash screen"
+msgstr "Nuna sifilash skireen"
+
+#: ../data/mate-session.schemas.in.h:14
+msgid "Show the splash screen when the session starts up"
+msgstr "Nuna sifilash skireen idan zaman shawarar ta fara yi"
+
+#: ../data/mate-session.schemas.in.h:15
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:16
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:17
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:18
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:19
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Wannan kimar hanya ya danganta ga gafakan $datadir/pixmaps/. Sunayen zane da "
+"ƙananan-gafakoki wasu kima ne masu inganci. Idan an canza wannan kima, zai "
+"zartar da shigarwa na zaman shawara na gaba."
+
+#: ../data/mate-session.schemas.in.h:20
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:21
+msgid "Time before session is considered idle"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:22 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Manajan Taga"
+
+#: ../data/gsm-inhibit-dialog.glade.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr ""
+
+#: ../data/gsm-inhibit-dialog.glade.h:2
+#: ../mate-session/gsm-inhibit-dialog.c:633
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Canza tsarin zaman shawarar ka"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Zaman Shawara"
+
+#: ../data/session-properties.glade.h:1
+msgid "Additional startup _programs:"
+msgstr "Ƙari na shiryoyin _farawa:"
+
+#: ../data/session-properties.glade.h:2
+msgid "Browse..."
+msgstr ""
+
+#: ../data/session-properties.glade.h:3
+#, fuzzy
+msgid "Co_mmand:"
+msgstr "Umarni"
+
+#: ../data/session-properties.glade.h:4
+#, fuzzy
+msgid "Comm_ent:"
+msgstr "Umarni"
+
+#: ../data/session-properties.glade.h:5
+#, fuzzy
+msgid "Options"
+msgstr "Zaɓuɓɓuka na Zaman Shawara"
+
+#: ../data/session-properties.glade.h:7
+msgid "Startup Programs"
+msgstr "Shiryoyin Farawa"
+
+#: ../data/session-properties.glade.h:8
+msgid "_Automatically remember running applications when logging out"
+msgstr ""
+
+#: ../data/session-properties.glade.h:9
+msgid "_Name:"
+msgstr ""
+
+#: ../data/session-properties.glade.h:10
+msgid "_Remember Currently Running Application"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:958
+#, fuzzy, c-format
+msgid "Starting %s"
+msgstr "Farawa"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1392
+#, c-format
+msgid "Not a launchable item"
+msgstr ""
+
+#: ../egg/eggsmclient.c:185
+#, fuzzy
+msgid "Disable connection to session manager"
+msgstr "An kasa haɗi zuwa manajan zaman shawara"
+
+#: ../egg/eggsmclient.c:188
+msgid "Specify file containing saved configuration"
+msgstr ""
+
+#: ../egg/eggsmclient.c:188
+msgid "FILE"
+msgstr ""
+
+#: ../egg/eggsmclient.c:191
+#, fuzzy
+msgid "Specify session management ID"
+msgstr "Ka ƙayyade sunan zaman shawara wanda za'a yi lodi"
+
+#: ../egg/eggsmclient.c:191
+msgid "ID"
+msgstr ""
+
+#: ../egg/eggsmclient.c:245
+#, fuzzy
+msgid "Session Management Options"
+msgstr "Zaɓuɓɓuka na Zaman Shawara"
+
+#: ../egg/eggsmclient.c:246
+#, fuzzy
+msgid "Show Session Management options"
+msgstr "Furoksy na Manajan Zaman Shawara"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:256
+#, c-format
+msgid "Icon '%s' not found"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:581
+msgid "Unknown"
+msgstr "Wanda ba'a sani ba"
+
+#: ../mate-session/gsm-inhibit-dialog.c:632
+msgid "A program is still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:636
+msgid "Some programs are still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:637
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:865
+msgid "Switch User Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:868
+#, fuzzy
+msgid "Logout Anyway"
+msgstr "Ka Shiga Duk da Haka"
+
+#: ../mate-session/gsm-inhibit-dialog.c:871
+msgid "Suspend Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:874
+#, fuzzy
+msgid "Hibernate Anyway"
+msgstr "Ka Shiga Duk da Haka"
+
+#: ../mate-session/gsm-inhibit-dialog.c:877
+#, fuzzy
+msgid "Shutdown Anyway"
+msgstr "Ka Shiga Duk da Haka"
+
+#: ../mate-session/gsm-inhibit-dialog.c:880
+#, fuzzy
+msgid "Reboot Anyway"
+msgstr "Ka Shiga Duk da Haka"
+
+#: ../mate-session/gsm-inhibit-dialog.c:888
+msgid "Lock Screen"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:891
+msgid "Cancel"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:283
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d seconds."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../mate-session/gsm-logout-dialog.c:295
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d seconds."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../mate-session/gsm-logout-dialog.c:377
+msgid "Log out of this system now?"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:383
+msgid "_Switch User"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:392
+#, fuzzy
+msgid "_Log Out"
+msgstr "_Fitarwa"
+
+#: ../mate-session/gsm-logout-dialog.c:398
+msgid "Shut down this system now?"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:404
+msgid "S_uspend"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:410
+msgid "_Hibernate"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:416
+#, fuzzy
+msgid "_Restart"
+msgstr "Sake fara"
+
+#: ../mate-session/gsm-logout-dialog.c:426
+#, fuzzy
+msgid "_Shut Down"
+msgstr "Ka_she"
+
+#: ../mate-session/gsm-manager.c:943 ../mate-session/gsm-manager.c:1571
+msgid "Not responding"
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-client.c:989
+msgid "This program is blocking log out."
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr ""
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:143
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+
+#: ../mate-session/main.c:504
+msgid "Override standard autostart directories"
+msgstr ""
+
+#: ../mate-session/main.c:505
+msgid "MateConf key used to lookup default session"
+msgstr ""
+
+#: ../mate-session/main.c:506
+msgid "Enable debugging code"
+msgstr ""
+
+#: ../mate-session/main.c:507
+msgid "Do not load user-specified applications"
+msgstr ""
+
+#: ../mate-session/main.c:528
+#, fuzzy
+msgid " - the MATE session manager"
+msgstr "An kasa haɗi zuwa manajan zaman shawara"
+
+#: ../splash/mate-session-splash.c:315
+#, fuzzy
+msgid "- MATE Splash Screen"
+msgstr "Nuna sifilash skireen"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr ""
+
+#: ../tools/mate-session-save.c:65
+#, fuzzy
+msgid "Set the current session name"
+msgstr "Daidaita zaman shawarar da ake ciki yanzu"
+
+#: ../tools/mate-session-save.c:65
+msgid "NAME"
+msgstr ""
+
+#: ../tools/mate-session-save.c:66
+#, fuzzy
+msgid "Log out"
+msgstr "_Fitarwa"
+
+#: ../tools/mate-session-save.c:67
+msgid "Log out, ignoring any existing inhibitors"
+msgstr ""
+
+#: ../tools/mate-session-save.c:68
+msgid "Show logout dialog"
+msgstr ""
+
+#: ../tools/mate-session-save.c:69
+msgid "Show shutdown dialog"
+msgstr ""
+
+#: ../tools/mate-session-save.c:70
+msgid "Kill session"
+msgstr "Kashe zaman shawara"
+
+#: ../tools/mate-session-save.c:71
+#, fuzzy
+msgid "Use dialog boxes for errors"
+msgstr "Yi amfani da akwatunan zauren akwatin bayani"
+
+#: ../tools/mate-session-save.c:72
+msgid "Do not require confirmation"
+msgstr ""
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "An kasa haɗi zuwa manajan zaman shawara"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr ""
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "MATE zai yi ƙoƙarin sake fara Deemun na Kayan Daidaitawa don shigarwan "
+#~ "ka nan gaba."
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Saƙon kuskure na ƙarshe shine:\n"
+#~ "\n"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "Wani ɗan zaman shawara na kullum."
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "Kashewa na wani zaman shawara na ci-gaba."
+
+#~ msgid "Add a new session"
+#~ msgstr "Ƙara wata sabuwar zaman shawara"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "Ka yarda da haɗin TCP"
+
+#~ msgid "Always started on every login."
+#~ msgstr "Ana fara shi kullum kan kowani shigarwa."
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "Manna canje-canje zuwa zaman shawarar da ake ciki yanzu"
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "Ka tabbata kana so ka fita daga nan?"
+
+#~ msgid "As_k on logout"
+#~ msgstr "Yi t_ambaya kan fitarwa"
+
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "Adana canj_e-canje zuwa zaman shawara farat ɗaya"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "An kasa duba adireshin intanet wa %s.\n"
+#~ "Wannan zai hana MATE aiki daidai.\n"
+#~ "Mai yiwuwa ana iya gyara matsalar idan an ƙara\n"
+#~ "%s zuwa file /etc/hosts."
+
+#~ msgid "Current Session"
+#~ msgstr "Zaman Shawara da Ake Ciki Yanzu"
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "Shiryoyi _masu tafiya yanzu:"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "Kayan Daidaita Kwamfyutan Tebur"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "An yar da kan fitarwa kuma yana iya mutu."
+
+#~ msgid "Edit session name"
+#~ msgstr "Shirya sunan zaman shawara"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "Don dalilin tsaro, zaman shawarar-mate bai saurara wa haɗi na hujin "
+#~ "shirin TCP, kan flatfom masu _IceTcpTransNoListen() (na'urar XFree86). "
+#~ "Wannan shiri zai yarda da haɗi daga na'urar masauƙin bayani masu can nesa "
+#~ "(da aka inganta). Sai an sake fara zama shawarar-mate kafin canje-canjen "
+#~ "su fara aiki."
+
+#~ msgid "Inactive"
+#~ msgstr "Mai Maras Aiki"
+
+#~ msgid "Initialize session settings"
+#~ msgstr "Sake fara(inishiyalayiz) sabuwar kayan daidiata zaman shawara"
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "Manajan Taga na Marco"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr ""
+#~ "Ɗan lokaci na millisakan da aka kashe wajen jiran su kilayant su mutu "
+#~ "(0=har abada)"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr ""
+#~ "Ɗan lokaci na millisakan da aka kashe wajen jiran yin rajista na su "
+#~ "kilayant (0=har abada)"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr ""
+#~ "Ɗan lokaci na millisakan da aka kashe wajen jiran su kilayant su amsa "
+#~ "(0=har abada)"
+
+#~ msgid "Caja"
+#~ msgstr "Caja"
+
+#~ msgid "Never allowed to die."
+#~ msgstr "Ba'a taɓa yarda ya mutu ba."
+
+#~ msgid "No response to the %s command."
+#~ msgstr "Babu amsa wa umarnin %s."
+
+#~ msgid "Normal"
+#~ msgstr "Na Kullum"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr ""
+#~ "Kawai, ka karanta zaman shawarar da aka adana daga fayil na default."
+#~ "session."
+
+#~ msgid "Order"
+#~ msgstr "Tsari"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "Cire kilayant da aka zaɓa yanzu daga zaman shawarar."
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "Sake fara wanda aka watsar da da sabo da kasawa."
+
+#~ msgid "Running"
+#~ msgstr "Yana Tafiya"
+
+#~ msgid "Saving"
+#~ msgstr "Adanawa"
+
+#~ msgid "Saving session details."
+#~ msgstr "Yana adana cikakken bayanin zaman shawara."
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "Manajan Taga na Sawfish"
+
+#~ msgid "Session Name"
+#~ msgstr "Sunan Zaman Shawara"
+
+#~ msgid "Settings"
+#~ msgstr "Kayan Daidaitawa"
+
+#~ msgid "Show splash screen on _login"
+#~ msgstr "Nuna sifilash skireen idan ana _shiga"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "Ba'a adana wasu canje-canje ba.\n"
+#~ "Ana iya fita har yanzu?"
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "Ya fara amma bai ba da rahoto kan hali tukun ba."
+
+#~ msgid "State"
+#~ msgstr "Matsayi"
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "Ba'a ba da rahoto kan hali cikin ɗan lokaci ba."
+
+#~ msgid "Style"
+#~ msgstr "Salo"
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "An sake fara Deemun na Kayan Daidaitawa sau da yawa."
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "Jerin shiryoyi masu cikin zaman shawara."
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "Kila shirin baya sauri, an tsai da shi, ko ya ƙarya."
+
+#~ msgid "The session name already exists"
+#~ msgstr "Sunan zaman shawarar ya riga ya kasance"
+
+#~ msgid "The session name cannot be empty"
+#~ msgstr "Sunan zaman shawaran ba zai iya zama mai maras komai ba"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "An sami kuskure wajen fara Deemun na Kewayen MATE.\n"
+#~ "\n"
+#~ "Wasu abubuwa kamar, kayan daidaita jigo, sauti, ko bango ba zasu yi aiki "
+#~ "daidai ba."
+
+#~ msgid "There was an unknown activation error."
+#~ msgstr "An sami wata kuskure ga kunnawa da ba'a gane ba."
+
+#~ msgid "Trash"
+#~ msgstr "Kwandon shara"
+
+#~ msgid "Try Again"
+#~ msgstr "Sake Gwada Kuma"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "Fitarwa bai damunsa amma yana iya mutu."
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "An watsar da jira saboda rigima."
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "Yana jiran farawa ko an riga an gama."
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "Mai zai faru ga shirin ayuka idan ya fita."
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "Kana iya jira ya ba da amsa ko ka cire shi."
+
+#~ msgid "Your session has been saved"
+#~ msgstr "An adana zaman shawarar ka"
+
+#~ msgid "_Edit"
+#~ msgstr "_Shirya"
+
+#~ msgid "_Order:"
+#~ msgstr "_Oda:"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "_Sake fara kwamfyuta"
+
+#~ msgid "_Save current setup"
+#~ msgstr "_Adana tsari da ake kai yanzu"
+
+#~ msgid "_Sessions:"
+#~ msgstr "_Zaman Shawara:"
+
+#~ msgid "_Startup Command:"
+#~ msgstr "_Umarnin Farawa:"
+
+#~ msgid "_Style:"
+#~ msgstr "_Salo:"
diff --git a/po/he.po b/po/he.po
new file mode 100644
index 0000000..74a6715
--- /dev/null
+++ b/po/he.po
@@ -0,0 +1,879 @@
+# translation of mate-session.HEAD.he.po to Hebrew
+# translation of mate-session.mate-2-0.po to Hebrew
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) 2006 THE PACKAGE'S COPYRIGHT HOLDER.
+# Gil Osher <[email protected]>, 2002, 2005.
+# Gil 'Dolfin' Osher <[email protected]>, 2002,2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.HEAD.he\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-02 17:57+0300\n"
+"PO-Revision-Date: 2010-09-02 18:00+0200\n"
+"Last-Translator: Yaron Shahrabani <[email protected]>\n"
+"Language-Team: Hebrew <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "בחירת פקודה"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "הוספת תכנית הפעלה"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "עריכת תכנית הפעלה"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "פקודת ההפעלה לא יכולה להיות ריקה"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "פקודת ההפעלה אינה תקינה"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "מאופשר"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "איקון"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "תכנית"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "העדפות יישומי הפעלה"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "ללא שם"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "ללא תיאור"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Version of this application"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Could not display help document"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "‏MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "הפעלה זאת מחברת אותך לשולחן העבודה MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Default session"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "File Manager"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"If enabled, mate-session will prompt the user before ending a session."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "If enabled, mate-session will save the session automatically."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "List of applications that are part of the default session."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Logout prompt"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Required session components"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Save sessions"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"The number of minutes of inactivity before the session is considered idle."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Time before session is considered idle"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Window Manager"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>קיימות תכניות שעדיין רצות:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr "בהמתנה לסיום התכנית. הפרעה לתכנית עלולה לגרום לאבדן העבודה שלך."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "בחירת אילו יישומים יופעלו בעת כניסת המשתמש"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "יישומי ההפעלה"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "_תכניות הפעלה נוספות:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "דפדף…"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_פקודה:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "הע_רה:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "אפשרויות"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "תוכניות הפעלה"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "_זכור יישומים פעילים בזמן התנתקות"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_שם:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "זכור את היישומים הפועלים _כאת"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "הקובץ אינו קובץ .desktop תקני"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "גירסת קובץ .desktop '%s' אינה מזוהה"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "מתחיל %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "היישום לא מקבל מסמכים בשורת הפקודה"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "אפשרות הרצה לא מזוהה: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "לא ניתן חהעביר כתובת מסמך לכניסת .desktop מסוג 'Type=link'"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "הפריט לא ניתן להרצה"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Disable connection to session manager"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Specify file containing saved configuration"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FILE"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Specify session management ID"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Session management options:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Show session management options"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"יש בעיה עם שרת ההגדרות.\n"
+"(‏%s יצא עם המצב %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "האיקון '%s' לא נמצא"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "לא ידוע"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "קיימת תוכנית שעדיין רצה:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "קיימות תוכניות שעדיין רצות:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr "ממתין לסיום תוכניות. הפרעה לתוכניות עלולה לגרום לאיבוד העבודה שלך."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "_החלף משתמש בכל מקרה"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "יציאה בכול מקרה"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "השהה בכל מקרה"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "עבור למצב שינה בכל מקרה"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "כיבוי בכול מקרה"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "שתחל בכל מקרה"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "נעל מסך"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "ביטול"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "בעוד שניה אחת תנותק אוטומטית."
+msgstr[1] "אתה תנותק אוטומטית בעוד %d שניות."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "בעוד שניה אחת המערכת תכבה אוטומטית."
+msgstr[1] "המערכת תכבה אוטומטית בעוד %d שניות."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "אתה כרגע מחובר כ־\"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "להתנתק מהמערכת?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "_החלף משתמש"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_התנתק"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "לכבות את המערכת?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "_השהה"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_מצב שינה"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "_אתחול"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "_כבה"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "אין תגובה"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "תכנית זו מונעת את היציאה."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "מסרב לחיבור לקוח חדש מכיון שההפעלה נמצאת במהלך כיבוי\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "לא ניתן ליצור שקע ICE: ‏%s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "Unable to start login session (and unable to connect to the X server)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Override standard autostart directories"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "MateConf key used to look up default session"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Enable debugging code"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Do not load user-specified applications"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - the MATE session manager"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Log out"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Log out, ignoring any existing inhibitors"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Show logout dialog"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Show shutdown dialog"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Use dialog boxes for errors"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Set the current session name"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAME"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Kill session"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Do not require confirmation"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "לא ניתן להתחבר למנהל ההפעלה"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "התוכנית נקראה עם אפשרויות סותרות"
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "Preferred Image to use for login splash screen"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "Show the splash screen"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "Show the splash screen when the session starts up"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will affect the next session login."
+#~ msgstr ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will affect the next session login."
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr "ממתין לסיום תוכנית. הפרעה לתוכנית עלולה לגרום לאיבוד העבודה שלך."
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- MATE Splash Screen"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "MATE Splash Screen"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "תמיכה בטכנולוגיה מסייעת התבקשה עבור הפעלה זאת, אבל הגדרות הנגישות לא "
+#~ "נמצאו. נא לוודא שהחבילה AT-SPI מותקנת. ההפעלה הותחלה ללא תמיכה בטכנולוגיה "
+#~ "מסייעת."
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "עוטף רישומי ה־AT SPI"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "מסייע מנוע ההגדרות של MATE"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "שם פקודת ההפעלה לא יכול להיות ריק"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "העדפות הפעלה"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Selected option in the log out dialog"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "הגדר את תצורות ההפעלה שלך"
+
+#~ msgid "Sessions"
+#~ msgstr "תצורות הפעלה"
+
+#~ msgid "Session management"
+#~ msgstr "ניהול תצורת ההפעלה"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "MATE GUI Library + EggSMClient"
+
+#~ msgid ""
+#~ "The Window manager that mate-session will start. Valid values are "
+#~ "\"marco\" and \"compiz\"."
+#~ msgstr ""
+#~ "The Window manager that mate-session will start. Valid values are "
+#~ "\"marco\" and \"compiz\"."
+
+#~ msgid "Window Manager to start"
+#~ msgstr "Window Manager to start"
+
+#~ msgid "gtk-cancel"
+#~ msgstr "gtk-cancel"
+
+#~ msgid "Could not connect to the session manager\n"
+#~ msgstr "לא ניתן להתחבר למנהל ההפעלה\n"
+
+#~ msgid " - Save the current session"
+#~ msgstr "- Save the current session"
+
+#~ msgid "Play logout sound instead of login"
+#~ msgstr "Play logout sound instead of login"
+
+#~ msgid "- MATE login/logout sound"
+#~ msgstr "- MATE login/logout sound"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "Allow TCP connections"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+
+#~ msgid "_Order:"
+#~ msgstr "_סדר:"
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "מה שקורה ליישום כשהוא נסגר."
+
+#~ msgid "_Style:"
+#~ msgstr "_סגנון:"
+
+#~ msgid "Inactive"
+#~ msgstr "לא פעיל"
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "מחכה להפעלה או כבר סיים."
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "התחיל אך טרם ציין מצב."
+
+#~ msgid "Running"
+#~ msgstr "פועל"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "חבר רגיל בתצורת ההפעלה."
+
+#~ msgid "Saving"
+#~ msgstr "שומר"
+
+#~ msgid "Saving session details."
+#~ msgstr "שומר פרטי מצב."
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "מצב לא צויין בזמן הנתון."
+
+#~ msgid "Normal"
+#~ msgstr "רגיל"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "לא מושפע על-ידי התנתקויות, אך יכול למות."
+
+#~ msgid "Never allowed to die."
+#~ msgstr "לעולם לא מורשה למות."
+
+#~ msgid "Trash"
+#~ msgstr "אשפה"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "מבוטל בהתנתקות ויכול למות."
+
+#~ msgid "Settings"
+#~ msgstr "הגדרות"
+
+#~ msgid "Always started on every login."
+#~ msgstr "תמיד מופעל בכל התחברות."
+
+#~ msgid "Order"
+#~ msgstr "סדר"
+
+#~ msgid "Style"
+#~ msgstr "סגנון"
+
+#~ msgid "State"
+#~ msgstr "מצב"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "ארעה שגיאה בהפעלת תהליך השירות של הגדרות MATE.\n"
+#~ "\n"
+#~ "כמה דברים, כמו הגדרות ערכות נושא, צלילים, או רקעים עלולים לא לפעול כראוי."
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "הודעת השגיאה האחרונה הייתה:\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "MATE עדיין ינסה להפעיל מחדש את תהליך שירות ההגדרות בפעם הבאה שתתחבר."
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "תהליך שירות ההגדרות הופעל מחדש יותר מידי פעמים."
+
+#~ msgid "List registered clients, then exit"
+#~ msgstr "List registered clients, then exit"
+
+#~ msgid "PROGRAM..."
+#~ msgstr "PROGRAM..."
+
+#~ msgid ""
+#~ "You must specify at least one program to remove. You can list the "
+#~ "programs with --list.\n"
+#~ msgstr ""
+#~ "You must specify at least one program to remove. You can list the "
+#~ "programs with --list.\n"
+
+#~ msgid "Error: could not connect to the session manager\n"
+#~ msgstr "Error: could not connect to the session manager\n"
+
+#~ msgid "Currently registered clients:\n"
+#~ msgstr "Currently registered clients:\n"
+
+#~ msgid "Couldn't find program %s in session\n"
+#~ msgstr "Couldn't find program %s in session\n"
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "אתה בטוח שברצונך להתנתק?"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "הפעל _מחדש את המחשב"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "Only read saved sessions from the default.session file"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr ""
+#~ "Millisecond period spent waiting for clients to register (0=forever)"
+
+#~ msgid "DELAY"
+#~ msgstr "DELAY"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr "תקופת זמן במילי שניות לחכות שהלקוחות יגיבו (0=לנצח)"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr "Millisecond period spent waiting for clients to die (0=forever)"
+
+#~ msgid "_Ignore"
+#~ msgstr "ה_תעלם"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "לא הצלחתי למצוא את כתובת האינטרנט: %s.\n"
+#~ "זה ימנע מ MATE לעבוד כנדרש.\n"
+#~ "ייתכן וכל הנדרש לתיקון הבעיה הוא הוספת\n"
+#~ "%s לקובץ /etc/hosts."
+
+#~ msgid "Try Again"
+#~ msgstr "נסה שנית"
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "ההמתנה הופסקה בגלל התנגשות."
+
+#~ msgid "No response to the %s command."
+#~ msgstr "אין תגובה לפקודה %s."
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "התוכנית עשויה להיות אטית, מופסקת או שבורה."
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "אתה יכול לחכות לתגובה ממנה או להסיר אותה."
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "הפעלה מחדש הופסקה בגלל מספר כשלים."
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "כיבוי ההפעלה בתהליכים."
+
+#~ msgid "Save changes to the current session before closing?"
+#~ msgstr "לשמור שינויים לתצורת ההפעלה הנוכחית לפני הסגירה?"
+
+#~ msgid "_Close without Saving"
+#~ msgstr "_סגור מבלי לשמור"
+
+#~ msgid "Current Session"
+#~ msgstr "תצורת הפעלה נוכחית"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "תצורת ההפעלה שלך נשמרה."
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "הסר את הלקוח הנבחר מתצורת ההפעלה."
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "שמור שינויים לתצורת ההפעלה הנוכחית"
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "רשימת תוכניות בתצורת ההפעלה."
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "ה_תוכניות הפועלות כרגע:"
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "מנהל החלונות Sawfish"
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "מנהל החלונות Marco"
+
+#~ msgid "Caja"
+#~ msgstr "נאוטילוס"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "הגדרות שולחן עבודה"
+
+#~ msgid "New Startup Program"
+#~ msgstr "תוכנית הפעלה חדשה"
+
+#~ msgid "_Save current setup"
+#~ msgstr "_שמור תצורה נוכחית"
+
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "_שמור שינויים בתצורת ההפעלה באופן אוטומטי"
+
+#~ msgid "Save the current session"
+#~ msgstr "קבע את תצורת ההפעלה הנוכחית"
+
+#~ msgid "There was an unknown activation error."
+#~ msgstr "ארעה שגיאת הפעלה לא ידועה."
+
+#~ msgid "The session name cannot be empty"
+#~ msgstr "שם תצורת ההפעלה לא יכול להיות ריק"
+
+#~ msgid "The session name already exists"
+#~ msgstr "שם תצורת ההפעלה כבר קיים"
+
+#~ msgid "Add a new session"
+#~ msgstr "הוסף תצורת הפעלה חדשה"
+
+#~ msgid "Edit session name"
+#~ msgstr "ערוך את שם תצורת ההפעלה"
+
+#~ msgid "Disable"
+#~ msgstr "אל-תאפשר"
+
+#~ msgid "_Edit"
+#~ msgstr "_ערוך"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "מספר שינויים לא נשמרו.\n"
+#~ "זה עדיין בסדר לצאת?"
+
+#~ msgid "Show splash screen on _login"
+#~ msgstr "הצג מסך פתיחה בה_תחברות"
+
+#~ msgid "As_k on logout"
+#~ msgstr "_שאל בהתנתקות"
+
+#~ msgid "_Sessions:"
+#~ msgstr "_תצורות הפעלה:"
+
+#~ msgid "Initialize session settings"
+#~ msgstr "אתחל הגדרות תצורת הפעלה"
+
+#~ msgid "_Startup Command:"
+#~ msgstr "_פקודת הפעלה:"
diff --git a/po/hi.po b/po/hi.po
new file mode 100644
index 0000000..7bb2f4a
--- /dev/null
+++ b/po/hi.po
@@ -0,0 +1,568 @@
+# translation of mate-session.master.po to Hindi
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+#
+#
+# Rajesh Ranjan <[email protected]>, 2005, 2006, 2009.
+# Rajesh Ranjan <[email protected]>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.master\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-session&component=general\n"
+"POT-Creation-Date: 2009-09-07 17:27+0000\n"
+"PO-Revision-Date: 2009-09-16 12:48+0530\n"
+"Last-Translator: Rajesh Ranjan <[email protected]>\n"
+"Language-Team: Hindi <hindi.sf.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"net>\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
+"\n"
+"\n"
+"\n"
+
+# mate-session/startup-programs.c:282 mate-session/startup-programs.c:289
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "कमांड चुनें"
+
+# mate-session/startup-programs.c:372
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "प्रारंभिक प्रोग्राम में जोड़ें"
+
+# mate-session/startup-programs.c:392
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "प्रारंभिक प्रोग्राम में संशोधन करें"
+
+# mate-session/startup-programs.c:332
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "प्रारंभिक निर्देश रिक्त नहीं हो सकता"
+
+# mate-session/startup-programs.c:332
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "प्रारंभिक वैध नहीं है"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "सक्षम"
+
+# mate-session/logout.c:266
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "प्रतीक"
+
+# mate-session/gsm-client-list.c:111
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "प्रोग्राम"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "आरंभन अनुप्रयोग वरीयता"
+
+#: ../capplet/gsp-app.c:269
+#| msgid "_Name:"
+msgid "No name"
+msgstr "कोई नाम नहीं"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "कोई विवरण नहीं"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "इस अनुप्रयोग का संस्करण"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "मदद दस्तावेज़ नहीं दिखा सका"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "MATE सेटिंग डेमॉन मददगार"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "गनोम"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "यह सत्र गनोम में लॉगइन होगा"
+
+# mate-session/save-session.c:43
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "तयशुदा सत्र"
+
+# mate-session/splash.c:71
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "फ़ाइल प्रबंधक"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "अगर सक्षम हे तो जीनोम सत्र वंद होने से पहले उपयोगकर्ता को टोकेगा"
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"अगर सक्षम हे तो जीनोम सत्र स्वतः संग्रहित होगा, नहीं तो लॉगउट संवाद में सत्र संग्रहित करने "
+"का विकल्प होगा"
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "अनुप्रयोग की सूची जो तयशुदा सत्र का हिस्सा है"
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"घटकों की सूची जो कि सत्र के हिस्से के रूप में जरूरी है. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). स्टार्टअप अनुप्रयोग वरीयताएँ औजार उपयोक्ता को सामान्यतः अनुमति नहीं देगी सत्र से किसी जरूरी घटकों को हटाने के लिए, और सत्र प्रबंधक स्वतः जरूरी घटकोंको जोड़ेगा सत्र में लॉगिन समय पर यदि वे हटाए जाते हैं."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "लॉगाउट संदेश"
+
+# mate-session/splash.c:69
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "पटल"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "पसंदीदा विंब जिसे लॉगिन स्प्लैश के लिये प्रयोग करना है"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "जरूरी सत्र घटक"
+
+# mate-session/session-properties.c:272
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "सत्रें संग्रहित करें"
+
+# mate-session/session-properties-capplet.c:227
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "स्प्लेश स्क्रीन प्रदर्शित करें"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "सत्र शुरु होने पर स्प्लेश स्क्रीन प्रदर्शित करें"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"यह फाइल प्रबंधक डेस्कटॉप प्रतीक देता है और अपनी सहेजी फाइलों से अंतःक्रिया करने की स्वीकृति "
+"देता है."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "The number of minutes of inactivity before the session is considered idle."
+msgstr "सत्र के निष्क्रिय समझे जाने के पहले निष्क्रियता के मिनट की संख्या."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"यह पटल स्क्रीन के ऊपर या नीचे पट्टी देता है जिसमें मेन्यू, विंडो सूची, स्थिति प्रतीक, घड़ी "
+"आदि समाहित किए है."
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"यह विंडो प्रबंधक वह प्रोग्राम है जो विंडो के गिर्द शीर्षक पट्टी और किनारा बनाता है और "
+"आपको विंडो को खिसकाने व फिर आकार देने की छूट देता है."
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"यह $datadir/pixmaps/ निर्देशिका पर आधारित सापेक्षिक पथ है. उपनिर्देशिका औऱ विंब नाम "
+"मान्य मान हैं. इस मान को बदलना अगले सत्र लॉगिन को प्रभावित करेगा."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "सत्र के निष्क्रिय माने जाने के पहले का समय"
+
+# mate-session/splash.c:71
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "विन्डो मैनेजर"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>कुछ प्रोग्राम अभी भी चल रहा है:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"समाप्त करने के लिए प्रोग्राम के लिए प्रतीक्षारत. प्रोग्राम में व्यवधान आपके काम को खराब "
+"कर सकता है."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "चुनें कि कौन सा अनुप्रयोग शुरू करना है जब लॉगिन हों"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "आरंभन अनुप्रयोग"
+
+# mate-session/startup-programs.c:372
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "प्रारंभिक प्रोग्राम में जोड़ें (_p)"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "ब्राउज़..."
+
+# mate-session/session-properties-capplet.c:362
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "कमांड (_m):"
+
+# mate-session/session-properties-capplet.c:362
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "टिप्पणी (_e):"
+
+# mate-session/session-properties-capplet.c:332
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "विकल्प"
+
+# mate-session/session-properties-capplet.c:399
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "प्रारंभिक प्रोग्राम"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "चलते अनुप्रयोग को स्वतः याद रखें जब लॉग आउट हो रहे हों (_A)"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "नाम (_N):"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "हाल में कार्यशील अनुप्रयोग याद रखें (_R)"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "फ़ाइल वैध .desktop फ़ाइल नहीं है"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "अपरिचित डेस्कटॉप फ़ाइल संस्करण '%s'"
+
+# mate-session/gsm-client-row.c:34
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "%s आरंभ हो रहा है"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "कमांड लाइन पर अनुप्रयोग दस्तावेज़ स्वीकार नहीं करता है"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "अपरिचित लॉन्च विकल्प: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "दस्तावेज़ URI को 'Type=Link' डेस्कटॉप प्रविष्टि में भेज नहीं सकता है"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "चलाने योग्य प्रोग्राम नहीं है"
+
+# mate-session/save-session.c:112
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "सत्र प्रबंधक में कनेक्शन निष्क्रिय करें"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "सहेजा विन्यास समाहित करता फ़ाइल निर्दिष्ट करें"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "फ़ाइल"
+
+# mate-session/main.c:66
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "सत्र प्रबंधन ID निर्दिष्ट करें"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "आईडी"
+
+# mate-session/session-properties-capplet.c:332
+#: ../egg/eggsmclient.c:252
+#| msgid "Session Management Options"
+msgid "Session management options:"
+msgstr "सत्र प्रबंधन विकल्प:"
+
+# mate-session/session-properties-capplet.c:332
+#: ../egg/eggsmclient.c:253
+#| msgid "Show Session Management options"
+msgid "Show session management options"
+msgstr "सत्र प्रबंधन विकल्प दिखाएँ"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"इस विन्यास सर्वर के साथ एक समस्या है.\n"
+"(%s स्थिति %d के साथ बाहर निकल गया)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "'%s' प्रतीक नहीं मिली"
+
+# mate-session/gsm-client-row.c:43
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "अज्ञात"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "एक प्रोग्राम अभी भी चल रहा है:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "कुछ प्रोग्राम अभी भी चल रहा है:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"समाप्त करने के लिए प्रोग्राम के लिए प्रतीक्षारत. इन प्रोग्राम में व्यवधान आपको काम खराब "
+"करने का कारण बन सकता है."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "किसी तरह उपयोक्ता बदलें"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "किसी तरह लॉगआउट करें"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "किसी तरह स्थगित करें"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "किसी तरह हाइबरनेट करें"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "किसी तरह बंद करें"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "किसी तरह रिबूट करें"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "स्क्रीन पर ताला लगाएँ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "रद्द करें"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "आप स्वतः %d सेकेंड में लॉग आउट हो जायेंगे."
+msgstr[1] "आप स्वतः %d सेकेंड में लॉग आउट हो जायेंगे."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "तंत्र %d सेकेंड में स्वतः बंद हो जायेगा"
+msgstr[1] "तंत्र %d सेकेंड में स्वतः बंद हो जायेगा"
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "आप अभी बतौर \"%s\" लॉग इन हैं."
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "अब इस तंत्र से लॉग आउट करें?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "उपयोक्ता बदलें (_S)"
+
+# mate-session/logout.c:274
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "लॉग आउट (_L)"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "अब इस तंत्र को बंद करें?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "स्थगित करें (_S)"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "सुप्तावस्था में ले जायें (_H)"
+
+# mate-session/session-properties.c:173
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "पुन:आरंभ करें (_R)"
+
+# mate-session/logout.c:277
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "बंद करें (_S)"
+
+#: ../mate-session/gsm-manager.c:1158 ../mate-session/gsm-manager.c:1850
+msgid "Not responding"
+msgstr "कोई प्रतिक्रिया नहीं दे रहा है"
+
+#: ../mate-session/gsm-xsmp-client.c:1206
+msgid "This program is blocking log out."
+msgstr "यह प्रोग्राम लॉगआउट रोक रहा है."
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "नया क्लाइंट कनेक्शन अस्वीकार कर रहा है क्योंकि सत्र शट डाउन हो रहा है\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ICE लाइसेंसिंग सॉकेट बना नहीं सका: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "लॉगिन सत्र आरंभ करने में असमर्थ (और X सर्वर से कनेक्ट करने में असमर्थ)"
+
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr "मानक स्वतः आरंभ निर्देशिका अध्यारोहित करें"
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr "तयशुदा सत्र देखने के लिए प्रयुक्त MateConf कुंजी"
+
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr "डिबगिंग कोड सक्रिय करें"
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr "उपयोक्ता विशिष्ट अनुप्रयोग मत लोड करें"
+
+#: ../mate-session/main.c:457
+msgid " - the MATE session manager"
+msgstr "- MATE सत्र प्रबंधक"
+
+# mate-session/session-properties-capplet.c:227
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- गनोम स्प्लैश स्क्रीन"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "गनोम स्प्लैश स्क्रीन"
+
+# mate-session/logout.c:274
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "लॉग आउट"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "लॉग आउट, किसी मौजूदा इनहिबिटर्स अनदेखा कर रहा है"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "लॉगआउट संवाद दिखाएँ"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "शटडाउन संवाद दिखाएँ"
+
+# mate-session/save-session.c:44
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "त्रुटि के लिए संवाद पेटी का प्रयोग करें"
+
+# mate-session/session-properties-capplet.c:259
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "वर्तमान सत्र सेट करें"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "नाम"
+
+# mate-session/save-session.c:43
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "सत्र को समाप्त करें"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "संपुष्टि की जरूरत नहीं"
+
+# mate-session/save-session.c:112
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "सत्र मैनेजर से संपर्क स्थापित नहीं हो पा रहा है"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "विरोधी विकल्प के साथ लाया गया प्रोग्राम"
+
diff --git a/po/hr.po b/po/hr.po
new file mode 100644
index 0000000..54ccd83
--- /dev/null
+++ b/po/hr.po
@@ -0,0 +1,938 @@
+# Translation of mate-session to Croatiann
+# Copyright (C) Croatiann team
+# Translators: Automatski Prijevod <>,Denis Lackovic <[email protected]>,Robert Sedak <[email protected]>,
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session 0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-09 12:32+0200\n"
+"PO-Revision-Date: 2008-04-14 17:50+0000\n"
+"Last-Translator: Launchpad Translations Administrators <rosetta@launchpad."
+"net>\n"
+"Language-Team: Croatian <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Launchpad-Export-Date: 2008-05-28 02:24+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../capplet/gsm-app-dialog.c:126
+msgid "Select Command"
+msgstr "Odaberite naredbu"
+
+#: ../capplet/gsm-app-dialog.c:187
+msgid "Add Startup Program"
+msgstr "Dodaj progam za pokretanje pri podizanju"
+
+#: ../capplet/gsm-app-dialog.c:191
+msgid "Edit Startup Program"
+msgstr "Uređivanje programa koji se pokreću prilikom pokretanja"
+
+#: ../capplet/gsm-properties-dialog.c:132
+msgid "No description"
+msgstr "Bez opisa"
+
+#: ../capplet/gsm-properties-dialog.c:977
+msgid "The name of the startup program cannot be empty"
+msgstr "Ime programa ne može biti prazno"
+
+#: ../capplet/gsm-properties-dialog.c:981
+msgid "The startup command cannot be empty"
+msgstr "Naredba pri pokretanju ne može biti prazna"
+
+#: ../capplet/gsm-properties-dialog.c:987
+msgid "The startup command is not valid"
+msgstr "Naredba nije ispravna"
+
+#: ../capplet/gsm-properties-dialog.c:1291
+msgid "Enabled"
+msgstr "Omogućeno"
+
+#: ../capplet/gsm-properties-dialog.c:1304
+msgid "Icon"
+msgstr ""
+
+#: ../capplet/gsm-properties-dialog.c:1315
+msgid "Program"
+msgstr "Program"
+
+#: ../capplet/gsm-properties-dialog.c:1464
+#: ../data/session-properties.glade.h:6
+msgid "Sessions Preferences"
+msgstr "Postavke prijave"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:509
+msgid "Version of this application"
+msgstr ""
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+"Tehnologija pomoći je zatražena za ovu sesiju, no registar pomoći nije "
+"nađen. Molim, provjerite je li AT-SPI paket instaliran. Vaša sesija je "
+"započeta bez tehnologije pomoći."
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr ""
+
+#: ../compat/mate-keyring-daemon-wrapper.desktop.in.in.in.h:1
+msgid "MATE Keyring Daemon Wrapper"
+msgstr ""
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr ""
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Ova sesija vas prijavljuje u MATE"
+
+#: ../data/mate-session.schemas.in.h:1
+#, fuzzy
+msgid "Default session"
+msgstr "Ubij prijavu"
+
+#: ../data/mate-session.schemas.in.h:2
+#, fuzzy
+msgid "File Manager"
+msgstr "Upravitelj prozora"
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Ako je omogućeno, mate-session će upitati korisnika prije završavanja "
+"prijave."
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Ako je omogućeno, mate-session će automatski spremiti prijavu. Inače će "
+"dijalog odjave imati opciju spremanja prijave."
+
+#: ../data/mate-session.schemas.in.h:5
+#, fuzzy
+msgid "List of applications that are part of the default session."
+msgstr "Poredak po kojem se programi pokreću nakon prijave."
+
+#: ../data/mate-session.schemas.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required-components\".) The "
+"Session Preferences will not normally allow users to remove a required "
+"component from the session, and the session manager will automatically add "
+"the required components back to the session if they do get removed."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Logout prompt"
+msgstr "Dijalog odjave"
+
+#: ../data/mate-session.schemas.in.h:8
+#, fuzzy
+msgid "Panel"
+msgstr "Ploča"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Slika koju želite koristiti za prijavni zaslon"
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Required session components"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:11
+msgid "Save sessions"
+msgstr "Spremiti prijavu"
+
+#: ../data/mate-session.schemas.in.h:12
+msgid "Selected option in the log out dialog"
+msgstr "Odabrana opcija u odjavnom prozoru"
+
+#: ../data/mate-session.schemas.in.h:13
+msgid "Show the splash screen"
+msgstr "Pokaži pozdravni zaslon"
+
+#: ../data/mate-session.schemas.in.h:14
+msgid "Show the splash screen when the session starts up"
+msgstr "Pokaži pozdravni zaslon kod prijavljivanja"
+
+#: ../data/mate-session.schemas.in.h:15
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Ovo je relativna staza u odnosu na $datadir/pixmaps/ direktorij. "
+"Poddirektoriji i imena slika su ispravne vrijednosti. Izmijenjena vrijednost "
+"stupiti će na snagu prilikom slijedeće prijave."
+
+#: ../data/mate-session.schemas.in.h:19
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+"Ovo je opcija koja će biti odabrana u izlaznom dijalogu, ispravne "
+"vrijednosti su \"odjava\" za odjaviti se, \"ugasi\" za gašenje sistema i "
+"\"ponovno pokretanje\" za ponovno pokretanje sistema."
+
+#: ../data/mate-session.schemas.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Upravitelj prozora"
+
+#: ../data/gsm-inhibit-dialog.glade.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr ""
+
+#: ../data/gsm-inhibit-dialog.glade.h:2
+#: ../mate-session/gsm-inhibit-dialog.c:628
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Podešavanje prijave"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Prijave"
+
+#: ../data/session-properties.glade.h:1
+msgid "Additional startup _programs:"
+msgstr "Dodatni programi za _pokrenuti pri podizanju:"
+
+#: ../data/session-properties.glade.h:2
+#, fuzzy
+msgid "Browse..."
+msgstr "_Potraži..."
+
+#: ../data/session-properties.glade.h:3
+msgid "Co_mmand:"
+msgstr "Na_redba:"
+
+#: ../data/session-properties.glade.h:4
+msgid "Comm_ent:"
+msgstr "_Komentar:"
+
+#: ../data/session-properties.glade.h:5
+#, fuzzy
+msgid "Options"
+msgstr "Odrednice prijave"
+
+#: ../data/session-properties.glade.h:7
+msgid "Startup Programs"
+msgstr "Startup servisi"
+
+#: ../data/session-properties.glade.h:8
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Automatski zapamti pokrenute aplikacije pri odjavljivanju iz sustava"
+
+#: ../data/session-properties.glade.h:9
+msgid "_Name:"
+msgstr "_Ime:"
+
+#: ../data/session-properties.glade.h:10
+#, fuzzy
+msgid "_Remember Currently Running Application"
+msgstr "_Zapamti trenutno pokrenute programe"
+
+#: ../egg/eggdesktopfile.c:165
+msgid "File is not a valid .desktop file"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:962
+#, fuzzy, c-format
+msgid "Starting %s"
+msgstr "Početak"
+
+#: ../egg/eggdesktopfile.c:1096
+msgid "Application does not accept documents on command line"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1164
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1372
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1391
+msgid "Not a launchable item"
+msgstr ""
+
+#: ../egg/eggsmclient-libmateui.c:102
+msgid "Session management"
+msgstr ""
+
+#: ../egg/eggsmclient-libmateui.c:136
+msgid "MATE GUI Library + EggSMClient"
+msgstr ""
+
+#: ../egg/eggsmclient.c:185
+#, fuzzy
+msgid "Disable connection to session manager"
+msgstr "Nije moguće povezati se na upravitelja prijava"
+
+#: ../egg/eggsmclient.c:188
+msgid "Specify file containing saved configuration"
+msgstr ""
+
+#: ../egg/eggsmclient.c:188
+msgid "FILE"
+msgstr ""
+
+#: ../egg/eggsmclient.c:191
+#, fuzzy
+msgid "Specify session management ID"
+msgstr "Odredi ime prijave za učitavanje"
+
+#: ../egg/eggsmclient.c:191
+msgid "ID"
+msgstr ""
+
+#: ../egg/eggsmclient.c:241
+#, fuzzy
+msgid "Session Management Options"
+msgstr "Odrednice prijave"
+
+#: ../egg/eggsmclient.c:242
+#, fuzzy
+msgid "Show Session Management options"
+msgstr "Odrednice prijave"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:256
+#, c-format
+msgid "Icon '%s' not found"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:579
+msgid "Unknown"
+msgstr "Napoznato"
+
+#: ../mate-session/gsm-inhibit-dialog.c:627
+msgid "A program is still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:631
+msgid "Some programs are still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:632
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:860
+#, fuzzy
+msgid "Switch User Anyway"
+msgstr "_Promjena korisnika"
+
+#: ../mate-session/gsm-inhibit-dialog.c:863
+#, fuzzy
+msgid "Logout Anyway"
+msgstr "Svejedno se prijavi"
+
+#: ../mate-session/gsm-inhibit-dialog.c:866
+#, fuzzy
+msgid "Suspend Anyway"
+msgstr "Sus_pendiranje"
+
+#: ../mate-session/gsm-inhibit-dialog.c:869
+#, fuzzy
+msgid "Hibernate Anyway"
+msgstr "_Hibernacija"
+
+#: ../mate-session/gsm-inhibit-dialog.c:872
+#, fuzzy
+msgid "Shutdown Anyway"
+msgstr "Svejedno se prijavi"
+
+#: ../mate-session/gsm-inhibit-dialog.c:875
+#, fuzzy
+msgid "Reboot Anyway"
+msgstr "Svejedno se prijavi"
+
+#: ../mate-session/gsm-inhibit-dialog.c:883
+#, fuzzy
+msgid "Lock Screen"
+msgstr "_Zaključavanje zaslona"
+
+#: ../mate-session/gsm-inhibit-dialog.c:886
+msgid "Cancel"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:283
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d seconds."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../mate-session/gsm-logout-dialog.c:295
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d seconds."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../mate-session/gsm-logout-dialog.c:371
+msgid "Log out of this system now?"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:377
+#, fuzzy
+msgid "_Switch User"
+msgstr "_Promjena korisnika"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Log Out"
+msgstr "_Odjava"
+
+#: ../mate-session/gsm-logout-dialog.c:392
+msgid "Shut down this system now?"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:398
+#, fuzzy
+msgid "S_uspend"
+msgstr "Sus_pendiranje"
+
+#: ../mate-session/gsm-logout-dialog.c:404
+msgid "_Hibernate"
+msgstr "_Hibernacija"
+
+#: ../mate-session/gsm-logout-dialog.c:410
+msgid "_Restart"
+msgstr "Po_novno pokretanje"
+
+#: ../mate-session/gsm-logout-dialog.c:420
+msgid "_Shut Down"
+msgstr "_Gašenje"
+
+#: ../mate-session/gsm-manager.c:923 ../mate-session/gsm-manager.c:1539
+msgid "Not responding"
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-client.c:975
+msgid "This program is blocking log out."
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr ""
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:139
+msgid "Unable to start login session (and unable connect to the X server)"
+msgstr ""
+
+#: ../mate-session/main.c:505
+msgid "Override standard autostart directories"
+msgstr ""
+
+#: ../mate-session/main.c:506
+msgid "MateConf key used to lookup default session"
+msgstr ""
+
+#: ../mate-session/main.c:507
+msgid "Enable debugging code"
+msgstr ""
+
+#: ../mate-session/main.c:508
+msgid "Do not load user-specified applications"
+msgstr ""
+
+#: ../mate-session/main.c:529
+#, fuzzy
+msgid " - the MATE session manager"
+msgstr "- Upravlja MATE prijavom"
+
+#: ../splash/mate-session-splash.c:291
+#, fuzzy
+msgid "- MATE Splash Screen"
+msgstr "Pokaži pozdravni zaslon"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr ""
+
+#: ../tools/mate-session-save.c:65
+msgid "Set the current session name"
+msgstr "Postavi ime trenutačne prijave"
+
+#: ../tools/mate-session-save.c:65
+msgid "NAME"
+msgstr "IME"
+
+#: ../tools/mate-session-save.c:66
+#, fuzzy
+msgid "Log out"
+msgstr "_Odjava"
+
+#: ../tools/mate-session-save.c:67
+msgid "Log out, ignoring any existing inhibitors"
+msgstr ""
+
+#: ../tools/mate-session-save.c:68
+msgid "Show logout dialog"
+msgstr ""
+
+#: ../tools/mate-session-save.c:69
+msgid "Show shutdown dialog"
+msgstr ""
+
+#: ../tools/mate-session-save.c:70
+msgid "Kill session"
+msgstr "Ubij prijavu"
+
+#: ../tools/mate-session-save.c:71
+msgid "Use dialog boxes for errors"
+msgstr "Koristi dijaloške okvire za greške"
+
+#: ../tools/mate-session-save.c:72
+msgid "Do not require confirmation"
+msgstr "Ne traži potvrdu"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Nije moguće povezati se na upravitelja prijava"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr ""
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "Dozvoli TCP spajanja"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "Zbog sigurnosnih razloga, na platformama koje imaju _IceTcpTransNoListen"
+#~ "() (XFree86 sustavi), mate-session ne sluša za TCP konekcije na "
+#~ "portovima. Ova postavka će dozvoliti povezivanje samo sa (autoriziranih) "
+#~ "udaljenih računala. mate-session mora biti ponovo pokrenut da bi ovo "
+#~ "proradilo."
+
+#~ msgid "Run bug-buddy on crash"
+#~ msgstr "Pokreni bug-buddy prilikom rušenja"
+
+#~ msgid "Whether to run bug-buddy on crash or let apport-gtk been used"
+#~ msgstr ""
+#~ "Pokrenuti bug-buddy prilikom rušenje ili dozvoliti korištenje apport-gtk."
+
+#~ msgid "_Order:"
+#~ msgstr "_Poredaj:"
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "Što se dešava sa programom kada završi s radom."
+
+#~ msgid "_Style:"
+#~ msgstr "_Stil:"
+
+#~ msgid "Inactive"
+#~ msgstr "Neaktivan"
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "Čekam na pokretanje ili je već završio."
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "Započet ali još nije dojavio stanje."
+
+#~ msgid "Running"
+#~ msgstr "Izvodi se"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "Normalni član prijave."
+
+#~ msgid "Saving"
+#~ msgstr "Snimanje"
+
+#~ msgid "Saving session details."
+#~ msgstr "Spremam detalje prijave."
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "Stanje nije dojavljeno unutar vremenskog ograničenja."
+
+#~ msgid "Normal"
+#~ msgstr "Obično"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "Odjave ne utječu na njega ali može prestati raditi"
+
+#~ msgid "Restart"
+#~ msgstr "Pokreni ponovo"
+
+#~ msgid "Never allowed to die."
+#~ msgstr "Nemoj dopustiti da umre."
+
+#~ msgid "Trash"
+#~ msgstr "Smeće"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "Odbacuje se pri odjavi i može prekinuti rad."
+
+#~ msgid "Settings"
+#~ msgstr "Postavke"
+
+#~ msgid "Always started on every login."
+#~ msgstr "Uvijek pokreni prilikom svake prijave."
+
+#~ msgid "Order"
+#~ msgstr "Redoslijed"
+
+#~ msgid "Style"
+#~ msgstr "Stil"
+
+#~ msgid "State"
+#~ msgstr "Država"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "Došlo je do greške prilikom pokretanja daemona MATE postavi.\n"
+#~ "\n"
+#~ "Neke stvari, poput tema, zvukova, ili postavki pozadine možda neće raditi "
+#~ "ispravno."
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Posljednja poruka o grešci:\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "MATE će pokušati ponovo pokrenuti daemon postavki prilikom sljedeće "
+#~ "prijave."
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "Daemon postavki je previše puta ponovo pokrenut"
+
+#~ msgid "No Name"
+#~ msgstr "Bez naziva"
+
+#~ msgid "List registered clients, then exit"
+#~ msgstr "Ispiši registrirane klijente pa izađi"
+
+#~ msgid "PROGRAM..."
+#~ msgstr "PROGRAM..."
+
+#~ msgid ""
+#~ "You must specify at least one program to remove. You can list the "
+#~ "programs with --list.\n"
+#~ msgstr ""
+#~ "Morate odrediti barem jedan program za uklanjanje. Popis programa možete "
+#~ "vidjeti sa --list.\n"
+
+#~ msgid "Error: could not connect to the session manager\n"
+#~ msgstr "Greška: neuspjelo povezivanje na upravitelja prijavom\n"
+
+#~ msgid "Currently registered clients:\n"
+#~ msgstr "Trenutno registrirani klijenti:\n"
+
+#~ msgid "Couldn't find program %s in session\n"
+#~ msgstr "Nije moguće naći program %s u prijavi\n"
+
+#~ msgid ""
+#~ "The MATE session manager cannot start properly. Please report this as a "
+#~ "MATE bug. Please include this ICE failure message in the bug report: '%"
+#~ "s'. Meanwhile you could try logging in using the failsafe session."
+#~ msgstr ""
+#~ "MATE se nije mogao pokrenuti normalno. Molim da ovo prijavite kao grešku "
+#~ "u MATE-u. Molim da uključite ICE poruku o grešci u prijavi: '%s'. U "
+#~ "međuvremenu se možete pokušat prijaviti pod sigurnom prijavom."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to lock the file '%s'. Please "
+#~ "report this as a MATE bug. Sometimes this error may occur if the file's "
+#~ "directory is unwritable, you could try logging in via the failsafe "
+#~ "session and ensuring that it is."
+#~ msgstr ""
+#~ "MATE nije bio u mogućnosti zaključati datoteku '%s'. Molimo da prijavite "
+#~ "ovo kao grešku u MATE-u. Katkada se ova greška događa ako je direktorij "
+#~ "datoteke nadostupan za pisanje; možete se pokušati prijaviti putem "
+#~ "sigurne prijave (failsafe session) i osigurati da direktorij ima potrebna "
+#~ "prava."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to read the file: '%s'. If this "
+#~ "file exists it must be readable by you for MATE to work properly. Try "
+#~ "logging in with the failsafe session and removing this file."
+#~ msgstr ""
+#~ "MATE nije bio u mogućnosti čitati datoteku '%s'. Ukoliko ova datoteka "
+#~ "postoji, mora biti čitljiva kako bi MATE radio normalno. Možete se "
+#~ "pokušati prijaviti putem sigurne prijave (failsafe session) i ukloniti "
+#~ "ovu datoteku."
+
+#~ msgid ""
+#~ "Could not write to file '%s'. This file must be writable in order for "
+#~ "MATE to function properly. Try logging in with the failsafe session and "
+#~ "removing this file. Also make sure that the file's directory is writable."
+#~ msgstr ""
+#~ "Nije moguće pisati u datoteku '%s'. Ova datoteka mora imati rw (čitaj-"
+#~ "piši) prava kako bi MATE pravilno radio. Možete se pokušati prijavitu "
+#~ "putem sigurne prijave i ukloniti tu datoteku. Također, provjerite je li "
+#~ "mapa te datoteke tipa rw (čitaj-piši)."
+
+#~ msgid "Exit"
+#~ msgstr "Izlaz"
+
+#~ msgid "Close your session and return to the login screen."
+#~ msgstr "Zatvori svoju prijavu i vrati se na prijavni zaslon."
+
+#~ msgid ""
+#~ "Leave your session open and password protected, but let other users log "
+#~ "in as well."
+#~ msgstr ""
+#~ "Ostavi svoju prijavu otvorenom i zaštićenu lozinkom, ali dozvoli prijavu "
+#~ "ostalim korisnicima."
+
+#~ msgid "Launch the screensaver and password protect your session."
+#~ msgstr "Pokreni čuvara zaslona i zaštiti prijavu lozinkom."
+
+#~ msgid "Restart the computer."
+#~ msgstr "Ponovno pokretanje računala."
+
+#~ msgid ""
+#~ "Power saving mode. Depending on your computer, you can wake the computer "
+#~ "up by pressing a key, the power button, or opening the laptop lid."
+#~ msgstr ""
+#~ "Čuvanje energije. Ovisno o vašem računalu, možete probuditi računalo "
+#~ "pritiskom na tipku za paljenje/gašenje računala, pritiskom na bilo koju "
+#~ "tipku ili otvarajući laptop."
+
+#~ msgid ""
+#~ "While hibernating, your computer won't need any power. When started "
+#~ "again, all open applications will be restored."
+#~ msgstr ""
+#~ "Dok čuva energiju, vaše računalo neće trebati nikakav izvor energije; "
+#~ "biti će potpuno ugašeno. Kada ga ponovo pokrenete, svi otvoreni programi "
+#~ "i dokumenti će biti na svom mjestu."
+
+#~ msgid "Completely turn off the computer."
+#~ msgstr "U potpunosti ugasi računalo."
+
+#~ msgid "Could not run command"
+#~ msgstr "Nemoguće pokrenuti naredbu"
+
+#~ msgid "Error while running command"
+#~ msgstr "Greška tijekom izvođenja naredbe"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "Čitaj spremljene prijave samo iz default.session datoteke."
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr ""
+#~ "Razdoblje u milisekundama potrošeno na registraciju klijenta (0=zauvijek)"
+
+#~ msgid "DELAY"
+#~ msgstr "KAŠNJENJE"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr ""
+#~ "Razdoblje u milisekundama potrošeno na čekanje odgovora klijenta "
+#~ "(0=zauvijek)"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr ""
+#~ "Razdoblje u milisekundama potrošeno na čekanje da klijent umre "
+#~ "(0=zauvijek)"
+
+#~ msgid "This session is running as a privileged user"
+#~ msgstr "Ova sesija je pokrenuta pod povlaštenim korisnikom"
+
+#~ msgid ""
+#~ "Running a session as a privileged user should be avoided for security "
+#~ "reasons. If possible, you should log in as a normal user."
+#~ msgstr ""
+#~ "Pokretanje sesije kao povlašteni korisnik treba izbjegavati iz "
+#~ "sigurnosnih razloga. Ako je moguće, trebate se logirati kao obični "
+#~ "korisnik."
+
+#~ msgid "_Continue"
+#~ msgstr "_Nastavi"
+
+#~ msgid ""
+#~ "The session might encounter issues if the computer clock is not properly "
+#~ "configured. Please consider adjusting it.\n"
+#~ "\n"
+#~ "Current date is <b>%s</b>."
+#~ msgstr ""
+#~ "Ova sesija može naići na probleme ako se računalni sat pravilno ne "
+#~ "namjesti. Molimo vas da ga probate namjestiti.\n"
+#~ "\n"
+#~ "Trenutačni datum je <b>%s</b>."
+
+#~ msgid "Failed to launch time configuration tool: %s"
+#~ msgstr "Greška pri pokretanju alata za podešavanje vremenskih postavki: %s"
+
+#~ msgid "The computer clock appears to be wrong"
+#~ msgstr "Računalni sat je pogrešno postavljen"
+
+#~ msgid "_Ignore"
+#~ msgstr "_Ignoriraj"
+
+#~ msgid "_Adjust the Clock"
+#~ msgstr "_Namjesti sat"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "Ne mogu pronaći internet adresu za %s.\n"
+#~ "Ovo će onemogućiti pravilan rad MATE-a.\n"
+#~ "Problem bi se mogao ispraviti dodavanjem zapisa\n"
+#~ "%s u /etc/hosts datoteku."
+
+#~ msgid "Try Again"
+#~ msgstr "Pokušajte ponovo."
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "Čekaj napušteno zbog konflikta."
+
+#~ msgid "No response to the %s command."
+#~ msgstr "Nema odgovora na naredbu %s."
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "Program bi mogao biti spor, zaustavlje ili neispravan."
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "Možete pričekati na odgovor ili je ukloniti."
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "Ponovo pokretanje napuštenog zbog grešaka."
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "Prekid prijave je u tijeku."
+
+#~ msgid "- Save the current session"
+#~ msgstr "- Sprema trenutačnu prijavu"
+
+#~ msgid "Save changes to the current session before closing?"
+#~ msgstr "Sačuvati promjene u trenutnoj prijavi prije zatvaranja?"
+
+#~ msgid "If you don't save, changes will be discarded."
+#~ msgstr "Ukoliko ne sačuvate promjene, one će biti odbačene."
+
+#~ msgid "_Close without Saving"
+#~ msgstr "_Zatvori bez spremanja"
+
+#~ msgid "Current Session"
+#~ msgstr "Trenutna prijava"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "Vaša je prijava spremljena."
+
+#~ msgid "could not connect to the session manager\n"
+#~ msgstr "nije se moguće povezati na upravitelja sesija\n"
+
+#~ msgid "session manager does not support MATE extensions\n"
+#~ msgstr "upravitelj sesije ne podržava MATE ekstenzije\n"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "Ukloniti trenutno odabranog klijenta iz prijave."
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "Primijeni promjene na trenutnu prijavu"
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "Popis programa u prijavi"
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "Trenutno pokrenuti _programi:"
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "Urednik prozora Sawfish"
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "Marco upravitelj prozora"
+
+#~ msgid "Caja"
+#~ msgstr "Caja"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "Postavke okružja"
+
+#~ msgid "Update Notifier"
+#~ msgstr "Update Notifier"
diff --git a/po/hu.po b/po/hu.po
new file mode 100644
index 0000000..e61577e
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,505 @@
+# Hungarian translation of mate-session.
+# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# This file is distributed under the same license as the mate-session package.
+#
+# Szabolcs Ban <shooby at mate dot hu>, 1998, 1999, 2000, 2001, 2002.
+# Emese Kovacs <emese at mate dot hu>, 2000, 2001, 2002.
+# Andras Timar <timar at mate dot hu>, 2001, 2002, 2003.
+# Laszlo Dvornik <dvornik at mate dot hu>, 2004.
+# Gabor Kelemen <kelemeng at mate dot hu>, 2004, 2005, 2006, 2007, 2008, 2009, 2010.
+# Mate ORY <orymate at gmail d0t com>, 2006, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session master\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-06 14:50+0200\n"
+"PO-Revision-Date: 2010-09-06 14:50+0200\n"
+"Last-Translator: Gabor Kelemen <kelemeng at mate dot hu>\n"
+"Language-Team: Hungarian <mate at fsf dot hu>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Válasszon parancsot"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Elindítandó program hozzáadása"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Elindítandó program szerkesztése"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Az elindítandó parancs nem lehet üres"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Az elindítandó parancs nem érvényes"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Engedélyezve"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Ikon"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Program"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Indítópult beállításai"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Névtelen"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Nincs leírás"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Ezen alkalmazás verziója"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "A súgódokumentum nem jeleníthető meg"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Bejelentkezés a MATE környezetbe"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Alapértelmezett munkamenet"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Fájlkezelő"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Ha engedélyezve van, a mate-session megerősítést kér, mielőtt bezárja a "
+"munkamenetet."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr ""
+"Ha engedélyezve van, a mate-session automatikusan menti a munkamenetet."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Az alapértelmezett munkamenet részét képező alkalmazások felsorolása."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Azon összetevők felsorolása, amelyek a munkamenet szükséges részét képezik. "
+"(Minden elem egy kulcsot nevez meg a „/desktop/mate/session/"
+"required_components” útvonalról.) Az Indítópult alkalmazás nem fogja engedni "
+"az ilyen összetevők törlését, és ha mégis törlésre kerülnek, a munkamenet-"
+"kezelő bejelentkezéskor visszaveszi azokat a munkamenetbe."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Kijelentkezés megerősítése"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Szükséges munkamenet-összetevők"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Munkamenetek mentése"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"A fájlkezelő biztosítja az asztali ikonokat, és lehetőséget ad a mentett "
+"fájlok kezelésére."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"Ennyi inaktívan töltött perc eltelte után a munkamenet üresjáratban lévővé "
+"válik."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"A panel biztosítja a képernyő alján és tetején lévő sávokat, amelyek "
+"tartalmazzák a menüket, ablaklistát, az értesítési területet és az órát."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Az ablakkezelő az a program, amely kirajzolja az ablakok címsávját, "
+"kereteit, és lehetővé teszi az ablakok mozgatását és méretezését."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Üresjáratba kerülésig eltelő idő"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Ablakkezelő"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Néhány program még mindig fut:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"Várakozás a program befejeződésére. A program megszakítása adatok "
+"elvesztését okozhatja."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "A bejelentkezéskor elindítandó alkalmazások kiválasztása"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Indítópult"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "További elindítandó _programok:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "Tallózás…"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Parancs:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "_Megjegyzés:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Beállítások"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Automatikusan elinduló programok"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Kijelentkezéskor a futó alkalmazások automatikus megjegyzése"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Név:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Jelenleg futó alkalmazások megjegyzése"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "A fájl nem egy érvényes .desktop fájl"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Ismeretlen .desktop fájl verzió: „%s”"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "%s indítása"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Az alkalmazás nem fogad el dokumentumokat a parancssorban"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Ismeretlen kapcsoló: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Nem adhatók dokumentum-URI címek egy „Type=Link” asztali bejegyzésnek"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Nem futtatható elem"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "A munkamenet-kezelővel való kapcsolatfelvétel letiltása"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "A mentett beállításokat tartalmazó fájl megadása"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FÁJL"
+
+# mate-terminal/mate-terminal.c:2562
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "A munkamenet-kezelési azonosító megadása"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "AZONOSÍTÓ"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Munkamenet-kezelés kapcsolói:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Munkamenet-kezelési kapcsolók megjelenítése"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Hiba történt a konfigurációs kiszolgálóval.\n"
+"(%s %d állapotkóddal lépett ki)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "A(z) „%s” ikon nem található"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Ismeretlen"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Egy program még fut:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Néhány program még fut:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Várakozás a programok befejeződésére. A programok megszakítása adatok "
+"elvesztését okozhatja."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Felhasználóváltás mindenképp"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "Kijelentkezés mindenképp"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Felfüggesztés mindenképp"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Hibernálás mindenképp"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "Leállítás mindenképp"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Újraindítás mindenképp"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Képernyő zárolása"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Mégse"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Automatikusan ki fog jelentkezni %d másodperc múlva."
+msgstr[1] "Automatikusan ki fog jelentkezni %d másodperc múlva."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "A rendszer %d másodperc múlva automatikusan le fog állni."
+msgstr[1] "A rendszer %d másodperc múlva automatikusan le fog állni."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Jelenleg „%s” néven van bejelentkezve."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Kijelentkezik most?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "Felhasználó_váltás"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Kijelentkezés"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Leállítja a rendszert?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "_Felfüggesztés"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Hibernálás"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "Újr_aindítás"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "_Leállítás"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Nem válaszol"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "Ez a program blokkolja a kijelentkezést."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "Új ügyfélkapcsolatok visszautasítása, mivel a rendszer éppen leáll\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Nem hozható létre az ICE-figyelő foglalat: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"A bejelentkező munkamenet indítása sikertelen (és sikertelen a csatlakozás "
+"az X-kiszolgálóhoz)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Szabványos automatikus indítási könyvtárak felülbírálása"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "Az alapértelmezett munkamenet kikeresésére használt MateConf kulcs"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Hibakeresési kód engedélyezése"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Ne töltsön be felhasználó által megadott alkalmazásokat"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " – A MATE munkamenet-kezelője"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Kijelentkezés"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Kijelentkezés a meglévő korlátozók mellőzésével"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Kijelentkezés párbeszédablak megjelenítése"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Leállítás párbeszédablak megjelenítése"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Párbeszédablakok használata hibákhoz"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "A jelenlegi munkamenet nevének beállítása"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NÉV"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Munkamenet kilövése"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Ne kérjen megerősítést"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Sikertelen kapcsolatfelvétel a munkamenet-kezelővel"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "A program kapcsolói ütköznek"
diff --git a/po/hy.po b/po/hy.po
new file mode 100644
index 0000000..1f3063e
--- /dev/null
+++ b/po/hy.po
@@ -0,0 +1,491 @@
+# translation of mate-session.HEAD.hy.po to armenian
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.HEAD.hy\n"
+"Report-Msgid-Bugs-To: [email protected]\n"
+"POT-Creation-Date: 2005-07-19 06:26+0000\n"
+"PO-Revision-Date: 2005-08-25 13:59+0500\n"
+"Last-Translator: Norayr Chilingaryan\n"
+"Language-Team: <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: ../mate-session/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "Թույլատրել TCP միացումները"
+
+#: ../mate-session/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"Անվտանգության ապահովումից ելնելով, սարքահամալիրների վրա, որոնք ունեն _IcqTCPTransNoListen() (XFree86 "
+"համակարգեր), գնոմ–ենթահամակարգը չի կատարում TCP պորտերի միացումները։ Այս տարբերակը թույլ է տալիս միացումների իրականացում (իրավասու) հեռավոր հանգույցներից։ Գնոմ ենթահամակարգը պետք է վերագործարկել այս արդյունքը ստանալու համար։"
+
+#: ../mate-session/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "Միացնելու դեպքում գնոմ–ենթահամակարգը գործարկողին հուշում է սեանսի ավարտի մասին"
+
+#: ../mate-session/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr "Միացնելու դեպքում գնոմ ենթահամակարգը սեանսը ավտոմատ կերպով պահում է, հակառակ դեպքում համակարգից դուրս գալու դիալոգը ներկայացնում է սեանսը պահելու տարբերակ"
+
+#: ../mate-session/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "Համակարգից դուրս գալու հուշում"
+
+#: ../mate-session/mate-session.schemas.in.h:6
+msgid "Preferred Image to use for login splash screen"
+msgstr "Նախընտրելի տարբերակ, որպես համակարգ մտնելու առկայծող էկրան օգտագործելու համար"
+
+#: ../mate-session/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "Պահպանել սեանսները"
+
+#: ../mate-session/mate-session.schemas.in.h:8
+msgid "Selected option in the log out dialog"
+msgstr "Համակարգից դուրս գալու դիալոգի Ընտրված տարբերակ"
+
+#: ../mate-session/mate-session.schemas.in.h:9
+msgid "Show the splash screen"
+msgstr "Ցույց տալ առկայծող էկրանը"
+
+#: ../mate-session/mate-session.schemas.in.h:10
+msgid "Show the splash screen when the session starts up"
+msgstr "Ցույց տալ առկայծող էկրանը, երբ սեանսը սկսվում է"
+
+#: ../mate-session/mate-session.schemas.in.h:11
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr "Սա հարաբերական ուղու արժեք է՝ հիմնված $datadir/pixmaps/, տվյալների կատալոգից դուրս։ Ենթա–կատալոգները և պատկերների անունները համապատասխան արժեքներ են։ Այս արժեքները փոփոխելը կներգործի հաջորդ սեանսի համար համակարգ մտնելիս։"
+
+#: ../mate-session/mate-session.schemas.in.h:12
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+"Սա այն տարբերակն է, որը պետք է ընտրել համակարգից դուրս գալու դիալոգում, համապատասխան արժեքներն են \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" , համակարգը վերագործարկելու համար։"
+
+#: ../mate-session/gsm-client-editor.c:97
+#: ../mate-session/startup-programs.c:314
+msgid "_Order:"
+msgstr "_կարգ"
+
+#: ../mate-session/gsm-client-editor.c:99
+msgid "The order in which applications are started in the session."
+msgstr "Կարգը, որով կիրառական ծրագրերը գործարկվում են սեանսում"
+
+#: ../mate-session/gsm-client-editor.c:106
+msgid "What happens to the application when it exits."
+msgstr "Ինչ է պատահում կիրառական ծրագրերին, երբ հեռանում են։"
+
+#: ../mate-session/gsm-client-editor.c:109
+msgid "_Style:"
+msgstr "_Տեսքի ատրիբուտ"
+
+#: ../mate-session/gsm-client-list.c:150
+#: ../mate-session/session-properties-capplet.c:412
+msgid "Order"
+msgstr "Կարգ"
+
+#: ../mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr "Տեսքի ատրիբուտ"
+
+#: ../mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr "Կարգավիճակ"
+
+#: ../mate-session/gsm-client-list.c:165
+msgid "Program"
+msgstr "Ծրագիր"
+
+#: ../mate-session/gsm-client-row.c:31
+msgid "Inactive"
+msgstr "Ոչ ակտիվ"
+
+#: ../mate-session/gsm-client-row.c:32
+msgid "Waiting to start or already finished."
+msgstr "Սպասում է գործարկմանը կամ արդեն ավարտել է"
+
+#: ../mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr "Գործարկում"
+
+#: ../mate-session/gsm-client-row.c:35
+msgid "Started but has not yet reported state."
+msgstr "Գործարկվել է, սակայն կարգավիճակը չի ֆիքսել"
+
+#: ../mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr "Գործարկում"
+
+#: ../mate-session/gsm-client-row.c:38
+msgid "A normal member of the session."
+msgstr "Սեանսի նորմալ անդամ"
+
+#: ../mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr "Պահում"
+
+#: ../mate-session/gsm-client-row.c:41
+msgid "Saving session details."
+msgstr "Պահել սեանսի մանրամասները"
+
+#: ../mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr "Անհայտ"
+
+#: ../mate-session/gsm-client-row.c:44
+msgid "State not reported within timeout."
+msgstr "Կարգավիճակ, որը ժամանակը սպառվելու ընթացքում չի ֆիքսվել"
+
+#: ../mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr "Նորմալ"
+
+#: ../mate-session/gsm-client-row.c:51
+msgid "Unaffected by logouts but can die."
+msgstr "Համակարգից դուրս գալիս չի վնասվե, սակայն կարող է ոչնչանալ"
+
+#: ../mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr "Վերագործարկում"
+
+#: ../mate-session/gsm-client-row.c:54
+msgid "Never allowed to die."
+msgstr "Երբեք չի թույլատրվի ոչնչանալ"
+
+#: ../mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr "Թափոն"
+
+#: ../mate-session/gsm-client-row.c:57
+msgid "Discarded on logout and can die."
+msgstr "Համակարգից դուրս գալուց հրաժարում և կարող է ոչնչանալ"
+
+#: ../mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr "Կարգադրվածքներ"
+
+#: ../mate-session/gsm-client-row.c:60
+msgid "Always started on every login."
+msgstr "Միշտ գործարկվում է յուրաքանչյուր անգամ համակարգ մտնելիս"
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: ../mate-session/gsm-gsd.c:41
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"MATE Settings Daemon–ի գործարկման ժամանակ սխալ է կատարվել.\n"
+"\n"
+"Այնպիսի բաներ, ինչպիսիք են թեմաները, ձայները կամ հետին պլանի կարգադրվածքները կարող են ճիշտ չաշխատել։"
+
+#: ../mate-session/gsm-gsd.c:53
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Վերջին սխալ հաղորդագրությունը:\n"
+"\n"
+
+#: ../mate-session/gsm-gsd.c:58
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"Գնոմը միշտ կփորձի վերագործարկել Settings Daemon –ը, երբ հաջորդ անգամ դուք համակարգ մտնեք։"
+
+#: ../mate-session/gsm-gsd.c:115
+msgid "There was an unknown activation error."
+msgstr "Կատարվել է ակտիվացման անհայտ սխալ"
+
+#: ../mate-session/gsm-gsd.c:157
+msgid "The Settings Daemon restarted too many times."
+msgstr "Settings Daemon–ը վերագործարկվեց բավականին շատ անգամներ"
+
+#: ../mate-session/logout.c:408
+msgid "Are you sure you want to log out?"
+msgstr "Համոզվա՞ծ եք, որ ցանկանում եք դուրս գալ համակարգից։"
+
+#: ../mate-session/logout.c:425
+msgid "_Save current setup"
+msgstr "_Պահպանել ընթացիկ պարամետրերը"
+
+#: ../mate-session/logout.c:448
+msgid "Action"
+msgstr "Գործողություն"
+
+#: ../mate-session/logout.c:465
+msgid "_Log out"
+msgstr "_Համակարգից դուրս գալ"
+
+#: ../mate-session/logout.c:472
+msgid "Sh_ut down"
+msgstr "_Անջատել"
+
+#: ../mate-session/logout.c:480
+msgid "_Restart the computer"
+msgstr "_Համակարգիչը վերագործարկել"
+
+#: ../mate-session/main.c:81
+msgid "Specify a session name to load"
+msgstr "Նշել սեանսի անունը բեռնելու համար"
+
+#: ../mate-session/main.c:82
+msgid "Only read saved sessions from the default.session file"
+msgstr "Միայն կարդալ պահպանված սեանսները դեֆոլտ ենթահամակարգի ֆայլից"
+
+#: ../mate-session/main.c:83
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr "Միլիվայրկյանների ժամանակահատված, որն անցել է հաճախորդների գրանցման ժամանակ (0=հավերժ)"
+
+#: ../mate-session/main.c:84
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr "Միլիվայրկյանների ժամանակահատված, որն անցել է հաճախորդների արձագանքին սպասելով (0=հավերժ)"
+
+#: ../mate-session/main.c:85
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr "Միլիվայրկյանների ժամանակահատված, որն անցել է հաճախորդների ոչնչացմանը սպասելով (0=հավերժ)"
+
+#: ../mate-session/main.c:265
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"Անկարող է փնտրել ինտերնետային հասցեն %s.\n"
+"Դա կարող է Գնոմին հետ պահել ճիշտ շահագործումից \n"
+"Հնարավոր է, որ սխալը ուղղվի ավելացնելով \n"
+"%s ֆայլին /և այլն /գլխավոր հանգույցին"
+
+#: ../mate-session/main.c:272
+msgid "Log in Anyway"
+msgstr "Միանալ համակարգին ցանկացած կերպ"
+
+#: ../mate-session/main.c:273
+msgid "Try Again"
+msgstr "Կրին փորձել"
+
+#: ../mate-session/manager.c:223
+msgid "Your session has been saved"
+msgstr "Ձեր սեանսը պահպանվել է"
+
+#: ../mate-session/manager.c:527
+msgid "Wait abandoned due to conflict."
+msgstr "Սպասումը դադարեցված է կոնֆլիկտի առկայության պատճառով։"
+
+#: ../mate-session/manager.c:1035
+#, c-format
+msgid "No response to the %s command."
+msgstr "Պատասխան չկա %s հրահանգին"
+
+#: ../mate-session/manager.c:1036
+msgid "The program may be slow, stopped or broken."
+msgstr "Ծրագիրը կարող է դանդաղ, կասեցված կամ կոտրված լինել"
+
+#: ../mate-session/manager.c:1037
+msgid "You may wait for it to respond or remove it."
+msgstr "Դուք կարող եք սպասել, որ այն արձագանքի, կամ հեռացնել այն։"
+
+#: ../mate-session/manager.c:1760
+msgid "Restart abandoned due to failures."
+msgstr "Վերագործարկումը դադարեցվում է սխալների պատճառով։"
+
+#: ../mate-session/manager.c:1956
+msgid "A session shutdown is in progress."
+msgstr "Սեանսի անջատումը ընթացքի մեջ է"
+
+#: ../mate-session/save-session.c:46
+msgid "Set the current session"
+msgstr "Սկսել ընթացիկ սեանսը"
+
+#: ../mate-session/save-session.c:47
+msgid "Kill session"
+msgstr "Սեանսը ոչնչացնել"
+
+#: ../mate-session/save-session.c:48
+msgid "Use dialog boxes"
+msgstr "Օգտագործել դիալոգի արկղերը"
+
+#: ../mate-session/save-session.c:146 ../mate-session/save-session.c:179
+msgid "Could not connect to the session manager"
+msgstr "Անկարող է միանալ սեանսի մենեջերին"
+
+#: ../mate-session/session-names.c:143
+msgid "The session name cannot be empty"
+msgstr "Սեանսի անունը դատարկ լինել չի կարող"
+
+#: ../mate-session/session-names.c:154
+msgid "The session name already exists"
+msgstr "Սեանսի անունը արդեն գոյություն ունի"
+
+#: ../mate-session/session-names.c:188
+msgid "Add a new session"
+msgstr "Ավելացնել նոր սեանս"
+
+#: ../mate-session/session-names.c:218
+msgid "Edit session name"
+msgstr "Խմբագրել սեանսի անունը"
+
+#: ../mate-session/session-properties-capplet.c:122
+msgid "_Edit"
+msgstr "_Խմբագրել"
+
+#: ../mate-session/session-properties-capplet.c:190
+msgid ""
+"Some changes are not saved.\n"
+"Is it still OK to exit?"
+msgstr ""
+"Որոշ փոփոխություններ չեն պահվել \n"
+"Համաձա՞յն եք հեռանալ։"
+
+#: ../mate-session/session-properties-capplet.c:240
+#: ../mate-session/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Սեանսներ կամ ենթահամակարգեր"
+
+#: ../mate-session/session-properties-capplet.c:273
+msgid "Show splash screen on _login"
+msgstr "Համակարգ մտնելից ցույց տալ առկայծող էկրանը"
+
+#: ../mate-session/session-properties-capplet.c:284
+msgid "As_k on logout"
+msgstr "Սեանսի ավարտի հաստատում"
+
+#: ../mate-session/session-properties-capplet.c:295
+msgid "Automatically save chan_ges to session"
+msgstr "Ավտոմատ կերպով կատարել սեանսի փոփոխությունների պահում"
+
+#: ../mate-session/session-properties-capplet.c:306
+msgid "_Sessions:"
+msgstr "_Սեանսներ կամ ենթահամակարգեր"
+
+#: ../mate-session/session-properties-capplet.c:324
+msgid "Session Name"
+msgstr "Սեանսի անուն"
+
+#: ../mate-session/session-properties-capplet.c:375
+msgid "Session Options"
+msgstr "Սեանսի տարբերակներ"
+
+#: ../mate-session/session-properties-capplet.c:384
+msgid "Current Session"
+msgstr "Ընթացիկ սեանսներ"
+
+#: ../mate-session/session-properties-capplet.c:393
+msgid "Additional startup _programs:"
+msgstr "Լրացուցիչ գործարկման -ծրագրեր"
+
+#: ../mate-session/session-properties-capplet.c:414
+msgid "Command"
+msgstr "Հրահանգ"
+
+#: ../mate-session/session-properties-capplet.c:446
+msgid "Startup Programs"
+msgstr "Գործարկման ծրագրեր"
+
+#: ../mate-session/session-properties.c:49
+msgid "Remove the currently selected client from the session."
+msgstr "Ընթացիկ ընտրված հաճախորդին սեանսից հեռացնել"
+
+#: ../mate-session/session-properties.c:55
+msgid "Apply changes to the current session"
+msgstr "Կիրառել ընթացիկ սեանսի փոփոխությունները"
+
+#: ../mate-session/session-properties.c:61
+msgid "The list of programs in the session."
+msgstr "Սեանսի ծրագրերի ցանկը"
+
+#: ../mate-session/session-properties.c:88
+msgid "Currently running _programs:"
+msgstr "Ընթացիկ գործարկվող _ծրագրեր"
+
+#: ../mate-session/session-properties.c:104
+msgid "Initialize session settings"
+msgstr "Գործարկել սեանսի կարգադրվածքները"
+
+#: ../mate-session/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Ձեր սեանսի կոնֆիգուրացիաները կարգավորել"
+
+#: ../mate-session/splash-widget.c:43
+msgid "Sawfish Window Manager"
+msgstr "Sawfish պատուհանի մենեջեր"
+
+#: ../mate-session/splash-widget.c:44
+msgid "Marco Window Manager"
+msgstr "Մետասիթի պատուհանի մենեջեր"
+
+#: ../mate-session/splash-widget.c:45
+msgid "Window Manager"
+msgstr "Պատուհանի մենեջեր"
+
+#: ../mate-session/splash-widget.c:46
+msgid "The Panel"
+msgstr "Վահանակը"
+
+#: ../mate-session/splash-widget.c:47
+msgid "Session Manager Proxy"
+msgstr "Սեանսի մենեջերի տվյալները"
+
+#: ../mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "Նաուտիլուս"
+
+#: ../mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr "Աշխատանքային էկրանի կարգադրվածքներ"
+
+#: ../mate-session/startup-programs.c:292
+msgid "_Startup Command:"
+msgstr "_Գործարկման հրահանգ"
+
+#: ../mate-session/startup-programs.c:298
+msgid "Startup Command"
+msgstr "Գործարկման հրահանգ"
+
+#: ../mate-session/startup-programs.c:347
+msgid "The startup command cannot be empty"
+msgstr "Գործարկման հրահանգը չի կարող դատարկ լինել"
+
+#: ../mate-session/startup-programs.c:384
+msgid "Add Startup Program"
+msgstr "Ավելացնել գործարկման ծրագիր"
+
+#: ../mate-session/startup-programs.c:405
+msgid "Edit Startup Program"
+msgstr "Խմբագրել գործարկման ծրագիրը"
+
diff --git a/po/id.po b/po/id.po
new file mode 100644
index 0000000..fef378d
--- /dev/null
+++ b/po/id.po
@@ -0,0 +1,516 @@
+# Indonesia translation of mate-session.
+# Copyright (C) 2005 THE mate-session'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the mate-session package.
+#
+# Mohammad DAMT <[email protected]>, 2005.
+# Dirgita <[email protected]>, 2010.
+# Dirgita <[email protected]>, 2010.
+# Andika Triwidada <[email protected]>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session master\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2010-09-01 08:31+0000\n"
+"PO-Revision-Date: 2010-09-17 14:04+0700\n"
+"Last-Translator: Andika Triwidada <[email protected]>\n"
+"Language-Team: MATE Indonesian Translation Team <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-Language: Indonesian\n"
+"X-Poedit-Country: Indonesia\n"
+"X-Generator: Lokalize 1.0\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Pilih Perintah"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Tambah Program Awalan"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Sunting Program Awalan"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Perintah awalan tidak boleh kosong"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Perintah awalan tidak sah"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Diaktifkan"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Ikon"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Program"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Preferensi Aplikasi Awalan"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Tanpa nama"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Tanpa deskripsi"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Versi aplikasi ini"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Tidak dapat membuka dokumen bantuan"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Sesi ini melogkan Anda ke dalam MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Sesi utama"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Manajer Berkas"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Apabila diaktifkan, mate-session akan menanyai pengguna sebelum mengakhiri "
+"sesi."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Apabila diaktifkan, mate-session akan menyimpan sesi secara otomatis."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Daftar aplikasi yang menjadi bagian sesi utama."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Daftar komponen yang diperlukan sebagai bagian sesi. (Setiap elemen akan "
+"menamai suatu kunci yang terdapat pada \"/desktop/mate/session/"
+"required_components\"). Perkakas preferensi Aplikasi Awalan biasanya tak "
+"mengizinkan pengguna menghapus suatu komponen yang penting dari sesi, dan "
+"manajer sesi akan otomatis menambahkan kembali komponen tersebut saat log "
+"masuk apabila dihapus."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Konfirmasi log keluar"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Komponen sesi yang diperlukan"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Simpan sesi"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Manajer berkas menyediakan ikon-ikon desktop dan memungkinkan Anda "
+"berinteraksi terhadap berkas-berkas Anda yang simpan."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"Lama waktu tanpa aktivitas sebelum sesi dianggap menganggur (dalam menit)."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Panel menyediakan objek berupa bilah yang terdapat pada bagian atas dan "
+"bawah layar, serta terdiri atas menu, daftar jendela, ikon status, jam, dan "
+"lain sebagainya."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Manajer jendela adalah program yang menggambar baris judul serta bingkai di "
+"sekeliling jendela aplikasi, selain itu juga memungkinkan Anda untuk "
+"memindah dan mengubah ukuran jendela tersebut."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Waktu sebelum sesi dianggap menganggur"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Manajer Jendela"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Beberapa program masih berjalan:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+#| msgid ""
+#| "Waiting for programs to finish. Interrupting these programs may cause "
+#| "you to lose work."
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"Menunggu program selesai. Menginterupsi program dapat menyebabkan Anda "
+"kehilangan hasil pekerjaan."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Memilih aplikasi yang hendak dijalankan saat Anda log masuk"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Aplikasi Awalan"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "_Program awalan lain:"
+
+#: ../data/session-properties.ui.h:2
+#| msgid "Browse..."
+msgid "Browse…"
+msgstr "Ramban…"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Perintah:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Kom_entar:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Opsi"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Program Awalan"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "Otom_atis mengingkat aplikasi yang berjalan ketika log keluar"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Nama:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "Ingat Aplikasi yang Kini Be_rjalan"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Ini bukan berkas .desktop yang sah"
+
+# %s adalah versi.
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Berkas desktop Versi '%s' tak dikenal"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Memulai %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Aplikasi tidak menerima dokumen pada baris perintah"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Opsi peluncuran tak dikenal: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Tidak dapat melewatkan URI dokumen pada entri desktop 'Type=Link'"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Bukan objek yang dapat dieksekusi"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Menonaktifkan koneksi ke manajer sesi"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Menentukan berkas yang memuat konfigurasi"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "BERKAS"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Menentukan ID manajemen sesi"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Opsi manajemen sesi:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Menampilkan opsi manajemen sesi"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Terjadi masalah dengan server konfigurasi\n"
+"(%s keluar dengan status%d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Tidak menemukan ikon '%s'"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Tak dikenal"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Sebuah program masih berjalan:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Beberapa program masih berjalan:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Menunggu program selesai. Menginterupsi program dapat menyebabkan Anda "
+"kehilangan hasil pekerjaan."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Tetap Ganti Pengguna"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+#| msgid "Logout Anyway"
+msgid "Log Out Anyway"
+msgstr "Tetap Keluar"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Tetap Suspensi"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Tetap Hibernasi"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+#| msgid "Shutdown Anyway"
+msgid "Shut Down Anyway"
+msgstr "Tetap Matikan"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Tetap Boot Ulang"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Kunci Layar"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Batal"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Anda akan keluar otomatis dalam %d detik.\t\t"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Sistem ini akan mati otomatis dalam %d detik."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Anda saat ini masuk sebagai \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Keluar dari sistem ini sekarang?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "_Ganti Pengguna"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "Ke_luar"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Matikan sistem ini sekarang?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "S_uspensi"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Hibernasi"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "H_idupkan Ulang"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "_Matikan"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Tidak merespon"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+#| msgid "This program is blocking log out."
+msgid "This program is blocking logout."
+msgstr "Program ini menghalangi log keluar."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Menolak sambungan dari klien baru, karena sesi sedang dalam proses "
+"dimatikan\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Tidak dapat membuat soket pendengar ICE: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Tidak dapat menjalankan sesi log masuk (serta tidak dapat menyambung ke "
+"server X)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Menimpa direktori standar autostart"
+
+#: ../mate-session/main.c:438
+#| msgid "MateConf key used to lookup default session"
+msgid "MateConf key used to look up default session"
+msgstr "Kunci MateConf yang dipakai untuk mencari sesi utama"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Mengangktifkan debug kode"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Tidak memuat aplikasi yang ditentukan oleh pengguna"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - manajer sesi MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Keluar"
+
+# Keterangan untuk opsi force-logout.
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Keluar, mengabaikan sembarang pencegah (keluar paksa)"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Menampilkan dialog keluar sesi"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Menampilkan dialog mematikan mesin"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Menggunakan dialog untuk pesan galat"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Menamai sesi yang saat ini berjalan"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAMA"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Mematikan sesi"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Tidak perlu konfirmasi"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Tidak dapat terhubung dengan manajer sesi"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Program dipanggil dengan opsi yang bertentangan"
diff --git a/po/ig.po b/po/ig.po
new file mode 100644
index 0000000..1965602
--- /dev/null
+++ b/po/ig.po
@@ -0,0 +1,800 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session-2.0\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2009-01-17 11:27+0000\n"
+"PO-Revision-Date: 2006-07-07 10:48+0100\n"
+"Last-Translator: Onye, Sylvester <[email protected]>\n"
+"Language-Team: Igbo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.10.2\n"
+
+#: ../capplet/gsm-app-dialog.c:126
+#, fuzzy
+msgid "Select Command"
+msgstr "Mbido Iwu"
+
+#: ../capplet/gsm-app-dialog.c:187
+msgid "Add Startup Program"
+msgstr "Tinye mbido program"
+
+#: ../capplet/gsm-app-dialog.c:191
+msgid "Edit Startup Program"
+msgstr "Dezie mbido program"
+
+#: ../capplet/gsm-properties-dialog.c:132
+msgid "No description"
+msgstr ""
+
+#: ../capplet/gsm-properties-dialog.c:952
+#, fuzzy
+msgid "The name of the startup program cannot be empty"
+msgstr "Mbido iwu ahụ agaghị eghenwu oghe"
+
+#: ../capplet/gsm-properties-dialog.c:956
+msgid "The startup command cannot be empty"
+msgstr "Mbido iwu ahụ agaghị eghenwu oghe"
+
+#: ../capplet/gsm-properties-dialog.c:962
+#, fuzzy
+msgid "The startup command is not valid"
+msgstr "Mbido iwu ahụ agaghị eghenwu oghe"
+
+#: ../capplet/gsm-properties-dialog.c:1279
+msgid "Enabled"
+msgstr ""
+
+#: ../capplet/gsm-properties-dialog.c:1292
+#, fuzzy
+msgid "Icon"
+msgstr "Mmem"
+
+#: ../capplet/gsm-properties-dialog.c:1303
+msgid "Program"
+msgstr "Program"
+
+#: ../capplet/gsm-properties-dialog.c:1453
+#: ../data/session-properties.glade.h:6
+msgid "Sessions Preferences"
+msgstr ""
+
+#: ../capplet/main.c:37 ../mate-session/main.c:508
+msgid "Version of this application"
+msgstr ""
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr ""
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr ""
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr ""
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:1
+#, fuzzy
+msgid "Default session"
+msgstr "Gbuo oge mmem"
+
+#: ../data/mate-session.schemas.in.h:2
+#, fuzzy
+msgid "File Manager"
+msgstr "Onyenlekọta Windo "
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Ọ bụrụ na a hapụrụ ya, mate-session ga-agwa ojieme mgbe ọ ga-anabata ozi "
+"tupuu a na-akwụsị oge mmem."
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Ọ bụrụ na a hụpụrụ ya, mate menu ga-echekwa oge mmem ahụ na nkeonwe ya, "
+"dayalọọgụ mpụta ahụ ga-enwe nhọrọ ịchekwa oge mmem ahụ."
+
+#: ../data/mate-session.schemas.in.h:5
+#, fuzzy
+msgid "List of applications that are part of the default session."
+msgstr "Usoro ahụ nke ndị ebidorola n'oge mmem usoroiheomume. "
+
+#: ../data/mate-session.schemas.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required-components\".) The "
+"Session Preferences will not normally allow users to remove a required "
+"component from the session, and the session manager will automatically add "
+"the required components back to the session if they do get removed."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Logout prompt"
+msgstr "Ọ̀gwá mgbe ọ̀pụ̀pụ́"
+
+#: ../data/mate-session.schemas.in.h:8
+#, fuzzy
+msgid "Panel"
+msgstr "Paneelụ ahụ"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Inyogo nke a kara chọọ a ga-eji maka mbanye inyogo ngosi ndubanye "
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Required session components"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:11
+msgid "Save sessions"
+msgstr "Chekwaa oge mmem"
+
+#: ../data/mate-session.schemas.in.h:12
+msgid "Selected option in the log out dialog"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:13
+msgid "Show the splash screen"
+msgstr "Gosi inyogo ngosi ndubanye"
+
+#: ../data/mate-session.schemas.in.h:14
+msgid "Show the splash screen when the session starts up"
+msgstr "Gosi inyogo ngosi ndubanye mgbe oge mmem na-ebido"
+
+#: ../data/mate-session.schemas.in.h:15
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:16
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:17
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:18
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:19
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Nke a bụ nyiri ụzọ valiu kwụpụrụ n'ihenlereanya nke $datadir/pixmaps/. "
+"Ihenlereanya-keobere na aha inyogo bụ valiu nkeisi. Ịgbanwe valui a ga-"
+"emetụta mbata oge mmem n'esonụ̄."
+
+#: ../data/mate-session.schemas.in.h:20
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:21
+msgid "Time before session is considered idle"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:22 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Onyenlekọta Windo "
+
+#: ../data/gsm-inhibit-dialog.glade.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr ""
+
+#: ../data/gsm-inhibit-dialog.glade.h:2
+#: ../mate-session/gsm-inhibit-dialog.c:633
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Hazie ogemmem gị"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Ogemmem"
+
+#: ../data/session-properties.glade.h:1
+msgid "Additional startup _programs:"
+msgstr "Mgbakwunye mbido _programs:"
+
+#: ../data/session-properties.glade.h:2
+msgid "Browse..."
+msgstr ""
+
+#: ../data/session-properties.glade.h:3
+#, fuzzy
+msgid "Co_mmand:"
+msgstr "Iwu"
+
+#: ../data/session-properties.glade.h:4
+#, fuzzy
+msgid "Comm_ent:"
+msgstr "Iwu"
+
+#: ../data/session-properties.glade.h:5
+#, fuzzy
+msgid "Options"
+msgstr "Ihenhọrọ ogemmem"
+
+#: ../data/session-properties.glade.h:7
+msgid "Startup Programs"
+msgstr "Mbido Programs"
+
+#: ../data/session-properties.glade.h:8
+msgid "_Automatically remember running applications when logging out"
+msgstr ""
+
+#: ../data/session-properties.glade.h:9
+msgid "_Name:"
+msgstr ""
+
+#: ../data/session-properties.glade.h:10
+msgid "_Remember Currently Running Application"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:958
+#, fuzzy, c-format
+msgid "Starting %s"
+msgstr "Ịbido"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1392
+#, c-format
+msgid "Not a launchable item"
+msgstr ""
+
+#: ../egg/eggsmclient.c:185
+#, fuzzy
+msgid "Disable connection to session manager"
+msgstr "Enweghị ike isụnye n'onyenlekọta oge mmem"
+
+#: ../egg/eggsmclient.c:188
+msgid "Specify file containing saved configuration"
+msgstr ""
+
+#: ../egg/eggsmclient.c:188
+msgid "FILE"
+msgstr ""
+
+#: ../egg/eggsmclient.c:191
+#, fuzzy
+msgid "Specify session management ID"
+msgstr "Zipụta aha oge mmem ka ebubata"
+
+#: ../egg/eggsmclient.c:191
+msgid "ID"
+msgstr ""
+
+#: ../egg/eggsmclient.c:245
+#, fuzzy
+msgid "Session Management Options"
+msgstr "Ihenhọrọ ogemmem"
+
+#: ../egg/eggsmclient.c:246
+#, fuzzy
+msgid "Show Session Management options"
+msgstr "Proxy Onyenlekọta ogemmem"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:256
+#, c-format
+msgid "Icon '%s' not found"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:581
+msgid "Unknown"
+msgstr "Amaghị"
+
+#: ../mate-session/gsm-inhibit-dialog.c:632
+msgid "A program is still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:636
+msgid "Some programs are still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:637
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:865
+msgid "Switch User Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:868
+#, fuzzy
+msgid "Logout Anyway"
+msgstr "Ńgwānụ́ banye"
+
+#: ../mate-session/gsm-inhibit-dialog.c:871
+msgid "Suspend Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:874
+#, fuzzy
+msgid "Hibernate Anyway"
+msgstr "Ńgwānụ́ banye"
+
+#: ../mate-session/gsm-inhibit-dialog.c:877
+#, fuzzy
+msgid "Shutdown Anyway"
+msgstr "Ńgwānụ́ banye"
+
+#: ../mate-session/gsm-inhibit-dialog.c:880
+#, fuzzy
+msgid "Reboot Anyway"
+msgstr "Ńgwānụ́ banye"
+
+#: ../mate-session/gsm-inhibit-dialog.c:888
+msgid "Lock Screen"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:891
+msgid "Cancel"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:283
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d seconds."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../mate-session/gsm-logout-dialog.c:295
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d seconds."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../mate-session/gsm-logout-dialog.c:377
+msgid "Log out of this system now?"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:383
+msgid "_Switch User"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:392
+#, fuzzy
+msgid "_Log Out"
+msgstr "_Mmpụta"
+
+#: ../mate-session/gsm-logout-dialog.c:398
+msgid "Shut down this system now?"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:404
+msgid "S_uspend"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:410
+msgid "_Hibernate"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:416
+#, fuzzy
+msgid "_Restart"
+msgstr "Bidogharịa"
+
+#: ../mate-session/gsm-logout-dialog.c:426
+#, fuzzy
+msgid "_Shut Down"
+msgstr "Gb_anyụọ"
+
+#: ../mate-session/gsm-manager.c:943 ../mate-session/gsm-manager.c:1571
+msgid "Not responding"
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-client.c:989
+msgid "This program is blocking log out."
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr ""
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:143
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+
+#: ../mate-session/main.c:504
+msgid "Override standard autostart directories"
+msgstr ""
+
+#: ../mate-session/main.c:505
+msgid "MateConf key used to lookup default session"
+msgstr ""
+
+#: ../mate-session/main.c:506
+msgid "Enable debugging code"
+msgstr ""
+
+#: ../mate-session/main.c:507
+msgid "Do not load user-specified applications"
+msgstr ""
+
+#: ../mate-session/main.c:528
+#, fuzzy
+msgid " - the MATE session manager"
+msgstr "Enweghị ike isụnye n'onyenlekọta oge mmem"
+
+#: ../splash/mate-session-splash.c:315
+#, fuzzy
+msgid "- MATE Splash Screen"
+msgstr "Gosi inyogo ngosi ndubanye"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr ""
+
+#: ../tools/mate-session-save.c:65
+#, fuzzy
+msgid "Set the current session name"
+msgstr "Kpokọọ oge mmem nọ mgbe ahụ"
+
+#: ../tools/mate-session-save.c:65
+msgid "NAME"
+msgstr ""
+
+#: ../tools/mate-session-save.c:66
+#, fuzzy
+msgid "Log out"
+msgstr "_Mmpụta"
+
+#: ../tools/mate-session-save.c:67
+msgid "Log out, ignoring any existing inhibitors"
+msgstr ""
+
+#: ../tools/mate-session-save.c:68
+msgid "Show logout dialog"
+msgstr ""
+
+#: ../tools/mate-session-save.c:69
+msgid "Show shutdown dialog"
+msgstr ""
+
+#: ../tools/mate-session-save.c:70
+msgid "Kill session"
+msgstr "Gbuo oge mmem"
+
+#: ../tools/mate-session-save.c:71
+#, fuzzy
+msgid "Use dialog boxes for errors"
+msgstr "Jiri igbe dayalọọgụ"
+
+#: ../tools/mate-session-save.c:72
+msgid "Do not require confirmation"
+msgstr ""
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Enweghị ike isụnye n'onyenlekọta oge mmem"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr ""
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "MATE ga-achọkwa ibidogharị Nhazi Deimọọnụ mgbe ọzọ ị̀bànyé."
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Ozi ndehie nke ikpeazụ bụ:\n"
+#~ "\n"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "onye òtù oge mmem."
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "Ḿgbányụ́ oge mmem nọ n'ọrụ."
+
+#~ msgid "Add a new session"
+#~ msgstr "Tinye oge mmem ọfụụ"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "Hapụ njikọ TCp"
+
+#~ msgid "Always started on every login."
+#~ msgstr "Mgbe ọbụla á na-ebidokarị na mbata nke ọbụla."
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "Tinye mgbanwe n'ogemmem ahụ no mgbe ahụ"
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "Ọ bụ eziokwu na ị chọrọ ịpụta?"
+
+#~ msgid "As_k on logout"
+#~ msgstr "Jụ_ọ ná mpụta"
+
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "Echekwara mgbanwe ahụ n'ogemmem n'ụdị nkeonwe"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "Agaghị achọnwu ngosi ebe ịntaneetị maka %s.\n"
+#~ "Nke a ga-egbochi MATE ịrụ ọfụma.\n"
+#~ "O nwere ike inwe isi n'imezi nsogbu ahụ site n'itinye\n"
+#~ "%s na hostụ faịlụ /dgz/."
+
+#~ msgid "Current Session"
+#~ msgstr "Ogemmem nọ mgbe ahụ"
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "Program ndị _n'arụ ọrụ mgbe ahụ:"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "Nhazi Desktọọpụ"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "Wepụ n'ọ̀pụ̀pụ̀ ma nwekwaa ike ịnwụ anwụ."
+
+#~ msgid "Edit session name"
+#~ msgstr "Dezie aha oge mmem"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "Maka ihi nchekwa, na platfọm nke nwere _IceTcpTransNoListen() (XFree86 "
+#~ "systems), mate-session anaghị ege maka njikọ n'ọdụnkwụsị TCP. Ihenhọrọ a "
+#~ "ga-enyere njikọ aka site na (ikike) hostu rimootu. a ga-ebidogharịrị "
+#~ "mate-session ka nke a bido ọrụ."
+
+#~ msgid "Inactive"
+#~ msgstr "Adịghịaruọrụ"
+
+#~ msgid "Initialize session settings"
+#~ msgstr "Inishialaịzịa nhazi ogemmem "
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "Onyenlekọta Windo Marco"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr "Oge Milisekọndụ egburu n'iche ojeozi ka ọ nwụọ (0=forever)"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr "Oge Milisekọndụ egburu n'ịche ojeozi ka odebata ozi (0=forever)"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr ""
+#~ "Oge Milisekọndụ egburu n'iche ojeozi ka oweghachikwa ozi (0=forever)"
+
+#~ msgid "Caja"
+#~ msgstr "Caja"
+
+#~ msgid "Never allowed to die."
+#~ msgstr "Agaghị è kwé nwụọ."
+
+#~ msgid "No response to the %s command."
+#~ msgstr "Onweghị nzaghachi n'iwu %s. "
+
+#~ msgid "Normal"
+#~ msgstr "Kénēmébú ēmé"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "Sọsọ nwepụtaozi oge mmem echekwara site na difọọltụ.faịlụ oge mmem"
+
+#~ msgid "Order"
+#~ msgstr "Usoro"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "Wepu ojieme ahọrọla nọ mgbe ahụ n'ime ogemmem."
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "A hapụrụ mbidogharị maka ọdịda."
+
+#~ msgid "Running"
+#~ msgstr "ibido"
+
+#~ msgid "Saving"
+#~ msgstr "Ịchekwa"
+
+#~ msgid "Saving session details."
+#~ msgstr "Ịchekwa ndesịta ozi nke oge mmem."
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "Onyenlekọta Windo Sawfish"
+
+#~ msgid "Session Name"
+#~ msgstr "Aha ogemmem"
+
+#~ msgid "Settings"
+#~ msgstr "Nhazi"
+
+#~ msgid "Show splash screen on _login"
+#~ msgstr "Gosi inyogo splaashị na _mbanye"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "Echekwaghị mgbanwe ndị ụfọdụ.\n"
+#~ "Ọ dị mma ịpụ apụ?"
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "Ebidogo mana ezibeghị ozi ka ọnọdụ dị."
+
+#~ msgid "State"
+#~ msgstr "Ọnọdụ"
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "Ọnọdu apụtabeghị na mgbe oge gwụrụ."
+
+#~ msgid "Style"
+#~ msgstr "Ụdị"
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "Nhazi Deịmọọnụ Bidogharịrị ọtụtụ oge."
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "Ndesịta prograụ niile ahụ n'ime ogemmem."
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "Programụ ahụ nwere ike ị dị nwayọọ, nkwụsị mọọbụ nkụwa."
+
+#~ msgid "The session name already exists"
+#~ msgstr "Aha oge mmem nọbu anọ"
+
+#~ msgid "The session name cannot be empty"
+#~ msgstr "Aha oge mmem agaghị eghenwu oghe"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "E nwere ndehie mgbe a na-ebido Deimọọnụ nhazi MATE.\n"
+#~ "\n"
+#~ "Ụfọdụ ihe, dịka isiokwu, Ụda, mọọbụ nhazi ntọala nwere ike ọgaghị arụ ọrụ "
+#~ "ọfụma."
+
+#~ msgid "There was an unknown activation error."
+#~ msgstr "Enwere ndehie mbido ọrụ a na-amaghị."
+
+#~ msgid "Trash"
+#~ msgstr "Ebemkpofuozi"
+
+#~ msgid "Try Again"
+#~ msgstr "Nwàá ọ̀zọ̀"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "Nke ọ̀pụ̀pụ́ nā-émétụ̀tàghị̀ mana o nwere ike inwụ anwụ."
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "Chere a hapurụ maka nsogbu."
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "Na-eche mbido mọọbụ na-émēcháláàrị́ị̀."
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "Gịnị na-eme usoroiheomume mgbe ọdị."
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "Inwere ike ichere ya ka ọ zaghachị mọọbụ wepụ ya."
+
+#~ msgid "Your session has been saved"
+#~ msgstr "Echekwaala oge mmem gị"
+
+#~ msgid "_Edit"
+#~ msgstr "_Dezie"
+
+#~ msgid "_Order:"
+#~ msgstr "_Usoro:"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "_Bidogharịa kọmputa"
+
+#~ msgid "_Save current setup"
+#~ msgstr "_Chekwaa mkpokọta nọ mgbe ahụ"
+
+#~ msgid "_Sessions:"
+#~ msgstr "_Ogemmem:"
+
+#~ msgid "_Startup Command:"
+#~ msgstr "_Mbido Iwu:"
+
+#~ msgid "_Style:"
+#~ msgstr "_Ụdị:"
diff --git a/po/is.po b/po/is.po
new file mode 100644
index 0000000..fa92d1d
--- /dev/null
+++ b/po/is.po
@@ -0,0 +1,491 @@
+# 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.
+# Samúel Jón Gunnarsson <[email protected]>, 2003.
+# Richard Allen <[email protected]>, 2003
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-01-11 08:59+0000\n"
+"PO-Revision-Date: 2003-06-21 17:45--100\n"
+"Last-Translator: Richard Allen <[email protected]>\n"
+"Language-Team: Icelandic <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: mate-session/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "Leyfa TCP tengingar"
+
+#: mate-session/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"Vegna örryggisráðstafana á kerfum sem innihalda _IceTcpTransNoListen() "
+"(XFree86 kerfi), mun mate-setan ekki hlusta eftir tengingum á TCP porti. "
+"Þessi valmöguleiki mun leyfa tengingar frá (viðurkenndum) fjarbundnum "
+"tölvum. Endurræsa verður mate-setuna til þess að stillingar taki gildi."
+
+#: mate-session/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "Ef virkt mun mate-setan spyrja um staðfestingu áður en setu er lokið."
+
+#: mate-session/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Ef virk mun mate-setan vista setuna sjálkrafa. Annars mun "
+"afskráningarglugginn bjóða upp á vistun á setu."
+
+#: mate-session/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "Staðfesta útskráningu"
+
+#: mate-session/mate-session.schemas.in.h:6
+msgid ""
+"Preferred Image to use for the splash screen when logging in to the MATE "
+"Desktop"
+msgstr ""
+"Forvalin mynd til notkunar sem slembiskjá þegar skráð er inn á Mate skjáborð"
+
+#: mate-session/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "Vista setur"
+
+#: mate-session/mate-session.schemas.in.h:8
+msgid "Show the splash screen"
+msgstr "Sýna slembiskjá"
+
+#: mate-session/mate-session.schemas.in.h:9
+msgid "Show the splash screen when the session starts up"
+msgstr "Sýna slembiskjá við ræsingu á setu"
+
+#: mate-session/mate-session.schemas.in.h:10
+msgid "Splash Screen Image"
+msgstr "Slembiskjámynd"
+
+#: mate-session/gsm-client-editor.c:97 mate-session/startup-programs.c:314
+msgid "_Order:"
+msgstr "_Uppröðun:"
+
+#: mate-session/gsm-client-editor.c:99
+msgid "The order in which applications are started in the session."
+msgstr "Hvernig raða eigi upp forritum sem sem eru ræst af setu."
+
+#: mate-session/gsm-client-editor.c:106
+msgid "What happens to the application when it exits."
+msgstr "Hvað gerist þegar forrit þegar það hættir."
+
+#: mate-session/gsm-client-editor.c:109
+msgid "_Style:"
+msgstr "_Stíll:"
+
+#: mate-session/gsm-client-list.c:150
+#: mate-session/session-properties-capplet.c:412
+msgid "Order"
+msgstr "Uppröðun"
+
+#: mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr "Stíll"
+
+#: mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr "Staða"
+
+#: mate-session/gsm-client-list.c:165
+msgid "Program"
+msgstr "Forrit"
+
+#: mate-session/gsm-client-row.c:31
+msgid "Inactive"
+msgstr "Óvirkur"
+
+#: mate-session/gsm-client-row.c:32
+msgid "Waiting to start or already finished."
+msgstr "Bíð eftir að ræsa eða hef nú þegar klárað."
+
+#: mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr "Ræsi"
+
+#: mate-session/gsm-client-row.c:35
+msgid "Started but has not yet reported state."
+msgstr "Ræst en hefur ekki ennþá tilkynnt stöðu."
+
+#: mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr "Keyrir"
+
+#: mate-session/gsm-client-row.c:38
+msgid "A normal member of the session."
+msgstr "Venjulegur meðlimur setu."
+
+#: mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr "Vista"
+
+#: mate-session/gsm-client-row.c:41
+msgid "Saving session details."
+msgstr "Vista upplýsingar setu."
+
+#: mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr "Óþekkt"
+
+#: mate-session/gsm-client-row.c:44
+msgid "State not reported within timeout."
+msgstr "Staða var ekki tilkynnt innin tímamarka."
+
+#: mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr "Venjulegt"
+
+#: mate-session/gsm-client-row.c:51
+msgid "Unaffected by logouts but can die."
+msgstr "Er óháð útskráningum en getur dáið."
+
+#: mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr "Endurræsa"
+
+#: mate-session/gsm-client-row.c:54
+msgid "Never allowed to die."
+msgstr "Er aldrei leyfilegt að deyja."
+
+#: mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr "Rusl"
+
+#: mate-session/gsm-client-row.c:57
+msgid "Discarded on logout and can die."
+msgstr "Hundsað við útskráningu en getur dáið."
+
+#: mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr "Stillingar"
+
+#: mate-session/gsm-client-row.c:60
+msgid "Always started on every login."
+msgstr "Ræsa ávallt við hverja innskráningu."
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: mate-session/gsm-gsd.c:41
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"Villa átti sér stað við ræsingu á MATE stillingarforritinu.\n"
+"\n"
+"Hugsanlegt er að ýmsir hlutir eins og þema, hljóð eða bakgrunnur muni ekki "
+"virka rétt."
+
+#: mate-session/gsm-gsd.c:53
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Síðasta villuskilaoð var:\n"
+"\n"
+
+#: mate-session/gsm-gsd.c:58
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"MATE mun halda áfram að endurræsa stillingarforritið næsta skipti sem þú "
+"skráir þig inn."
+
+#: mate-session/gsm-gsd.c:115
+msgid "There was an unknown activation error."
+msgstr "Það kom upp óþekkt virkjunarvilla."
+
+#: mate-session/gsm-gsd.c:157
+msgid "The Settings Daemon restarted too many times."
+msgstr "Stillingarforritð hefur verið endurræst of oft."
+
+#: mate-session/logout.c:355
+msgid "Are you sure you want to log out?"
+msgstr "Ertu viss um að þú viljir skrá þig út?"
+
+#: mate-session/logout.c:372
+msgid "_Save current setup"
+msgstr "Vi_sta núverandi uppsetningu"
+
+#: mate-session/logout.c:393
+msgid "Action"
+msgstr "Aðgerð"
+
+#: mate-session/logout.c:410
+msgid "_Log out"
+msgstr "_Afskrá"
+
+#: mate-session/logout.c:416
+msgid "Sh_ut down"
+msgstr "Sl_ökkva"
+
+#: mate-session/logout.c:423
+msgid "_Restart the computer"
+msgstr "Endu_rræsa tölvuna"
+
+#: mate-session/main.c:81
+msgid "Specify a session name to load"
+msgstr "Tilgreindu heiti setu sem á að hlaða"
+
+#: mate-session/main.c:82
+msgid "Only read saved sessions from the default.session file"
+msgstr "Lesa einungis vistaðar setur frá default.session skrám"
+
+#: mate-session/main.c:83
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr "Fjöldi millisekúndna sem biðlari býður eftir skráningu (0=að eilífu)"
+
+#: mate-session/main.c:84
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr "Fjöldi millisekúndna sem biðlari býður eftir svari (0=að eilífu)"
+
+#: mate-session/main.c:85
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr ""
+"Fjöldi millisekúndna sem biðlari býður eftir því að deyja (0=að eilífu)"
+
+#: mate-session/main.c:265
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"Ekki tókst að flétta upp veffangi fyrir %s.\n"
+"Þetta mun hindra MATE frá því að virka rétt.\n"
+"það er mögulegt að lagfæra vandamálið með því að\n"
+"bæta %s við í skránna /etc/hosts."
+
+#: mate-session/main.c:272
+msgid "Log in Anyway"
+msgstr "Innskrá hvort sem er"
+
+#: mate-session/main.c:273
+msgid "Try Again"
+msgstr "Reyna á ný"
+
+#: mate-session/manager.c:223
+msgid "Your session has been saved"
+msgstr "Setan þín hefur nú verið vistuð"
+
+#: mate-session/manager.c:527
+msgid "Wait abandoned due to conflict."
+msgstr "Endurræsa yfirgefnum vegna árekstra."
+
+#: mate-session/manager.c:1035
+#, c-format
+msgid "No response to the %s command."
+msgstr "Ekkert svar fékkst frá %s skipuninni."
+
+#: mate-session/manager.c:1036
+msgid "The program may be slow, stopped or broken."
+msgstr "Forritið getur verið hæggengt, brotið eða stoppað."
+
+#: mate-session/manager.c:1037
+msgid "You may wait for it to respond or remove it."
+msgstr "Þú getur beðið eftir svari frá því eða fjarlægt það."
+
+#: mate-session/manager.c:1760
+msgid "Restart abandoned due to failures."
+msgstr "Endurræsa yfirgefnum vegna mistaka."
+
+#: mate-session/manager.c:1956
+msgid "A session shutdown is in progress."
+msgstr "Lokun setu er nú í vinnslu."
+
+#: mate-session/save-session.c:46
+msgid "Set the current session"
+msgstr "Virkja núverandi setu"
+
+#: mate-session/save-session.c:47
+msgid "Kill session"
+msgstr "Aflífa setu"
+
+#: mate-session/save-session.c:48
+msgid "Use dialog boxes"
+msgstr "Nota smáglugga"
+
+#: mate-session/save-session.c:146 mate-session/save-session.c:179
+msgid "Could not connect to the session manager"
+msgstr "Ekki tókst að tengjast setustjóra"
+
+#: mate-session/session-names.c:143
+msgid "The session name cannot be empty"
+msgstr "Heiti setu getur ekki verið autt"
+
+#: mate-session/session-names.c:154
+msgid "The session name already exists"
+msgstr "Heiti setu er þegar til"
+
+#: mate-session/session-names.c:188
+msgid "Add a new session"
+msgstr "Bæta við nýrri setu"
+
+#: mate-session/session-names.c:218
+msgid "Edit session name"
+msgstr "Breyta heiti setu"
+
+#: mate-session/session-properties-capplet.c:122
+msgid "_Edit"
+msgstr "_Sýsla"
+
+#: mate-session/session-properties-capplet.c:190
+msgid ""
+"Some changes are not saved.\n"
+"Is it still OK to exit?"
+msgstr ""
+"Sumar breytingar hafa ekki verið vistaðar.\n"
+"er í lagi að hætta?"
+
+#: mate-session/session-properties-capplet.c:240
+#: mate-session/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Setur"
+
+#: mate-session/session-properties-capplet.c:273
+msgid "Show splash screen on _login"
+msgstr "Sýna s_lembiskjá við inskráningu"
+
+#: mate-session/session-properties-capplet.c:284
+#, fuzzy
+msgid "As_k on logout"
+msgstr "Sta_ðfesta útskráningu"
+
+#: mate-session/session-properties-capplet.c:295
+msgid "Automatically save chan_ges to session"
+msgstr "Vista sjálfkrafa breytin_gar á setu"
+
+#: mate-session/session-properties-capplet.c:306
+msgid "_Sessions:"
+msgstr "_Setur:"
+
+#: mate-session/session-properties-capplet.c:324
+msgid "Session Name"
+msgstr "Heiti setu"
+
+#: mate-session/session-properties-capplet.c:375
+msgid "Session Options"
+msgstr "Valmöguleikar setu"
+
+#: mate-session/session-properties-capplet.c:384
+msgid "Current Session"
+msgstr "Núverandi seta"
+
+#: mate-session/session-properties-capplet.c:393
+msgid "Additional startup _programs:"
+msgstr "_Önnur ræsiforrit:"
+
+#: mate-session/session-properties-capplet.c:414
+msgid "Command"
+msgstr "Skipun"
+
+#: mate-session/session-properties-capplet.c:446
+msgid "Startup Programs"
+msgstr "Ræsiforrit"
+
+#: mate-session/session-properties.c:49
+msgid "Remove the currently selected client from the session."
+msgstr "Fjarlægja valinn biðlara úr setunni."
+
+#: mate-session/session-properties.c:55
+msgid "Apply changes to the current session"
+msgstr "Virkja breytingar fyrir núverandi setu"
+
+#: mate-session/session-properties.c:61
+msgid "The list of programs in the session."
+msgstr "Listi yfir forrit í setu"
+
+#: mate-session/session-properties.c:88
+msgid "Currently running _programs:"
+msgstr "Forrit í _keyrslu:"
+
+#: mate-session/session-properties.c:104
+msgid "Initialize session settings"
+msgstr "Virkja setustillingar"
+
+#: mate-session/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Stilla setur"
+
+#: mate-session/splash-widget.c:43
+msgid "Sawfish Window Manager"
+msgstr "Sawfish gluggastjórinn"
+
+#: mate-session/splash-widget.c:44
+msgid "Marco Window Manager"
+msgstr "Marco gluggastjórinn"
+
+#: mate-session/splash-widget.c:45
+msgid "Window Manager"
+msgstr "Gluggastjóri"
+
+#: mate-session/splash-widget.c:46
+msgid "The Panel"
+msgstr "Spjaldið"
+
+#: mate-session/splash-widget.c:47
+msgid "Session Manager Proxy"
+msgstr "Sel (proxy) setustjóra"
+
+#: mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "Caja"
+
+#: mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr "Skjáborðsstillingar"
+
+#: mate-session/startup-programs.c:292
+msgid "_Startup Command:"
+msgstr "Ræ_siskipun:"
+
+#: mate-session/startup-programs.c:298
+msgid "Startup Command"
+msgstr "Ræsiskipun"
+
+#: mate-session/startup-programs.c:347
+msgid "The startup command cannot be empty"
+msgstr "Ræsiskipunin getur ekki verið auð"
+
+#: mate-session/startup-programs.c:384
+msgid "Add Startup Program"
+msgstr "Bæta við ræsiforriti"
+
+#: mate-session/startup-programs.c:405
+msgid "Edit Startup Program"
+msgstr "Breyta ræsiforriti"
+
+#~ msgid "Save Current Session"
+#~ msgstr "Vista núverandi setu"
+
+#~ msgid "Save current state of desktop"
+#~ msgstr "Vista núverandi stöðu skjáborðs"
diff --git a/po/it.po b/po/it.po
new file mode 100644
index 0000000..2a6756e
--- /dev/null
+++ b/po/it.po
@@ -0,0 +1,601 @@
+# Italian translation for mate-session
+# This file is distributed under the same license as mate-session package
+# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# Christopher R. Gabriel <[email protected]>, 1997, 1998, 1999, 2000, 2001, 2002.
+#
+# Luca Ferretti <[email protected]>, 2004, 2005, 2006, 2007, 2008, 2009, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session 2.27.x\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2010-09-01 09:07+0000\n"
+"PO-Revision-Date: 2010-09-02 23:12+0200\n"
+"Last-Translator: Luca Ferretti <[email protected]>\n"
+"Language-Team: Italiano <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Selezione comando"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Aggiunta programma d'avvio"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Modifica programma d'avvio"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Il comando di avvio non può essere vuoto"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Il comando di avvio non è valido"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Abilitato"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Icona"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Programma"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Preferenze delle applicazioni d'avvio"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Nessun nome"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Nessuna descrizione"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Versione di questa applicazione"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Impossibile mostrare il documento d'aiuto"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Questa sessione esegue l'accesso in MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Sessione predefinita"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "File manager"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Se abilitata, mate-session chiede conferma prima di terminare una sessione."
+
+#: ../data/mate-session.schemas.in.in.h:4
+#| msgid ""
+#| "If enabled, mate-session will prompt the user before ending a session."
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Se abilitata, mate-session salva automaticamente la sessione."
+
+# lista non elenco perché è chiave tipo lista
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Lista delle applicazioni che sono parte della sessione predefinita."
+
+# Lista, non elenco: è una chiave tipo lista
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Lista di componenti che sono richiesti come parte della sessione (ciascun "
+"elemento dà il nome a una chiave sotto \"/desktop/mate/session/"
+"required_components\"). Lo strumento di preferenze Applicazioni d'avvio "
+"normalmente non consente all'utente di rimuovere dalla sessione un "
+"componente richiesto; inoltre all'accesso, il gestore di sessioni aggiungerà "
+"nuovamente in modo automatico alla sessione i componenti richiesti qualora "
+"vengano rimossi."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Conferma termine sessione"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Pannello"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Componenti di sessione richiesti"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Salva sessioni"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Il file manager fornisce le icone della scrivania e consente di interagire "
+"con i propri file salvati."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"Il numero di minuti di assenza di attività prima che la sessione sia "
+"considerata inattiva."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Il pannello fornisce le barre nelle parti superiore e inferiore dello "
+"schermo, contenenti i menù, l'elenco delle finestre, le icone di stato, "
+"l'orologio e altro."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Il window manager è il programma che disegna la barra del titolo e i bordi "
+"intorno alle finestre e che permette di muoverle e ridimensionarle."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Tempo prima che la sessione sia considerata inattiva"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Window manager"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Alcuni programmi sono ancora in esecuzione:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+#| msgid ""
+#| "Waiting for programs to finish. Interrupting these programs may cause "
+#| "you to lose work."
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"In attesa che i programmi finiscano. Interrompere questi programmi potrebbe "
+"causare la perdita del proprio lavoro."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Sceglie quali applicazioni avviare quando si esegue l'accesso"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Applicazioni d'avvio"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "_Programmi d'avvio aggiuntivi:"
+
+#: ../data/session-properties.ui.h:2
+#| msgid "Browse..."
+msgid "Browse…"
+msgstr "Esplora..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "Co_mando:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Comm_ento:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Opzioni"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Programmi d'avvio"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr ""
+"Memorizzare _automaticamente le applicazioni in esecuzione terminando la "
+"sessione"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "N_ome:"
+
+# è un pulsante
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Memorizza applicazioni attualmente in esecuzione"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Il file non è un file .desktop valido"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Versione «%s» del file desktop non riconosciuta"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Avvio di «%s»"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "L'applicazione non accetta documenti sulla riga di comando"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Opzione di lancio non riconosciuta: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"Impossibile passare URI di documenti a una desktop entry con \"Type=Link\""
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Non è un oggetto lanciabile"
+
+# spiegazione opzione riga comando
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Disabilita la connessione al gestore di sessione"
+
+# spiegazione opzione riga comando
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Specifica il file contenente la configurazione salvata"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FILE"
+
+# spiegazione opzione riga comando
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Specifica l'ID di gestione sessione"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Opzioni di gestione sessione:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Mostra le opzioni di gestione sessione"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"C'è un problema con il server di configurazione.\n"
+"(%s è uscito con stato %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Icona «%s» non trovata"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Sconosciuto"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Un programma è ancora in esecuzione:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Alcuni programmi sono ancora in esecuzione:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"In attesa che i programmi finiscano. Interrompere questi programmi potrebbe "
+"causare la perdita del proprio lavoro."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Cambia utente comunque"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+#| msgid "Logout Anyway"
+msgid "Log Out Anyway"
+msgstr "Termina sessione comunque"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Sospendi comunque"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Iberna comunque"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+#| msgid "Shutdown Anyway"
+msgid "Shut Down Anyway"
+msgstr "Arresta comunque"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Riavvia comunque"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Blocca schermo"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Annulla"
+
+# modificata parecchio...
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] ""
+"La sessione in corso verrà terminata automaticamente entro %d secondo."
+msgstr[1] ""
+"La sessione in corso verrà terminata automaticamente entro %d secondi."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Questo sistema verrà arrestato automaticamente entro %d secondo."
+msgstr[1] "Questo sistema verrà arrestato automaticamente entro %d secondi."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "È stato effettuato l'accesso come «%s»."
+
+# lo so che c'è system, ma in italiano non ha senso
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Terminare questa sessione adesso?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "_Cambia utente"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Termina sessione"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Arrestare questo sistema adesso?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "_Sospendi"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "I_berna"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "Ria_vvia"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "A_rresta"
+
+# non so se la forma è corretta, non ho provato
+# a inibire il termine sessione
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Non risponde"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+#| msgid "This program is blocking log out."
+msgid "This program is blocking logout."
+msgstr "Questo programma sta bloccando la terminazione della sessione."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Rifiutate nuove connessioni client perché la sessione è in via di arresto\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Impossibile creare il socket di ascolto ICE: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Impossibile avviare la sessione di accesso (e impossibile connettersi al "
+"server X)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Non tiene conto delle directory standard di avvio automatico"
+
+#: ../mate-session/main.c:438
+#| msgid "MateConf key used to lookup default session"
+msgid "MateConf key used to look up default session"
+msgstr "Chiave MateConf usata per consultare la sessione predefinita"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Abilita codice di debug"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Non carica le applicazioni specificate dall'utente"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "- il gestore di sessioni di MATE"
+
+# commento opzioni riga comando
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Termina la sessione"
+
+# commento opzioni riga comando
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Termina la sessione, ignorando ogni inibitore esistente"
+
+# commento opzioni riga comando
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Mostra il dialogo di termine sessione"
+
+# commento opzioni riga comando
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Mostra il dialogo di arresto"
+
+# commento opzioni riga comando
+# boxes?????
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Utilizza le finestre di dialogo per gli errori"
+
+# commento opzioni riga comando
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Imposta il nome della sessione corrente"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NOME"
+
+# commento opzioni riga comando
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Uccide la sessione"
+
+# commento opzioni riga comando
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Non richiede conferma"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Impossibile connettersi al gestore di sessione"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Programma chiamato con opzioni in conflitto"
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr ""
+#~ "In attesa che il programma finisca. Interrompere il programma potrebbe "
+#~ "causare la perdita del proprio lavoro."
+
+# nota: registry forse è più archivio, catasto, catalogo, ma
+# registro è assonante all'originale
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "È stato richiesto per questa sessione il supporto alle tecnologie "
+#~ "assistive, ma non è stato trovato il registro di accessibilità. "
+#~ "Assicurarsi che il pacchetto AT-SPI sia installato. La sessione è stata "
+#~ "avviata senza il supporto alle tecnologie assistive."
+
+# wrapper è involucro, imballaggio...
+# forse dovrei aprire un bug chiedendo
+# di togliero dai messaggi traducibili...
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "Wrapper per registro AT SPI"
+
+# Helper sarebbe Aiutante...
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "Helper demone impostazioni MATE"
+
+# Questa chiave MateConf non rispetta più il comportamento di mate-sessione
+# Ho chiesto lumi ma non ho capito cosa vogliono fare...
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "Se abilitata, mate-session salva la sessione automaticamente. "
+#~ "Altrimenti, la finestra di dialogo per terminare la sessione mostra una "
+#~ "opzione per salvarla."
+
+# FIXME
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "Immagine preferita da utilizzare come schermata di accesso"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "Mostra schermata di avvio"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "Mostra la schermata di avvio quando viene avviata la sessione"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+#~ msgstr ""
+#~ "Questo è un valore di percorso relativo basato sulla directory $datadir/"
+#~ "pixmaps/. Nomi di sottodirectory e immagini sono valori validi. La "
+#~ "modifica di questo valore ha effetto al successivo accesso."
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- Schermata di avvio di MATE"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "Schermata di avvio di MATE"
diff --git a/po/ja.po b/po/ja.po
new file mode 100644
index 0000000..c7d40e5
--- /dev/null
+++ b/po/ja.po
@@ -0,0 +1,568 @@
+# mate-session ja.po.
+# Copyright (C) 1998-2010 Free Software Foundation, Inc.
+# Yukihiro Nakai <[email protected]>, 1998.
+# Yasuyuki Furukawa <[email protected]>, 1999.
+# Eiichiro ITANI <[email protected]>, 1999.
+# Takayuki KUSANO <[email protected]>, 1999-2002, 2009-2010.
+# Yuusuke Tahara <[email protected]>, 2000.
+# Shingo Akagaki <[email protected]>, 2000.
+# Akira TAGOH <[email protected]>, 2001.
+# Ryoichi INAGAKI <[email protected]>, 2002.
+# Satoru SATOH <[email protected]>, 2006.
+# Takeshi AIHANA <[email protected]>, 2003-2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session master\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2010-09-12 14:09+0000\n"
+"PO-Revision-Date: 2010-09-13 01:51+0900\n"
+"Last-Translator: Takayuki KUSANO <[email protected]>\n"
+"Language-Team: Japanese <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "コマンドの選択"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "自動起動するプログラムの追加"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "自動起動するプログラムの編集"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "自動起動するプログラムのコマンド名を入力してください"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "コマンド名が間違っています"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "有効"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "アイコン"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "プログラム"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "自動起動するアプリの設定"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "名前なし"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "(説明なし)"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "このアプリのバージョンを表示する"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "ヘルプ・ドキュメントを表示できませんでした"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "このセッションで MATE にログインします"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "デフォルトのセッション"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "ファイル・マネージャ"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"これを有効にすると、mate-session はセッション終了時にユーザの確認待ちになり"
+"ます。"
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "これを有効にすると、mate-session は自動的にセッションを保存します。"
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr ""
+"デフォルトのセッションの一部として起動されるアプリケーションのリストです。"
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"セッションの一部として必要となるコンポーネントのリストで、そのコンポーネント"
+"の名前が \"/desktop/mate/session/required_components\" 配下にキーとして格納"
+"されます。通常、\"自動起動するアプリの設定\" からセッションで必要となるコン"
+"ポーネントを削除することはできません。もし削除しても、そのセッションで必要と"
+"なるコンポーネントをセッション・マネージャが自動的に追加するような仕組みに"
+"なっています。"
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "ログアウト時に確認するかどうか"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "パネル"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "セッションで必要となるコンポーネント"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "セッションを保存するかどうか"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"ファイル・マネージャはデスクトップ・アイコンを持ちファイルシステムに保存した"
+"いろいろなファイルを操作・管理します。"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"セッションが待機中になるまでに一時的に無稼働 (Inactivity) な状態になる時間 "
+"(単位は分) です。"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"パネルは画面の上または下にメニューやウィンドウ一覧ボタン、ステータス・アイコ"
+"ン、時計などのデスクトップ・オブジェクトを持つバーを提供してくれます。"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"ウィンドウ・マネージャはウィンドウの周りにタイトルバーや境界線を描画するプロ"
+"グラムで、ウィンドウを移動したり大きさを変更することができます。"
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "アイドル状態に入るまでの時間"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "ウインドウ・マネージャ"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>いくつかのプログラムが未だ実行中です:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"プログラムが終了するのを待っています。プログラムの実行を強制的に中断すると、"
+"作業内容を失うことになるかもしれません。"
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "ログインした後に起動するアプリケーションを選択します"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "自動起動するアプリ"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "自動的に起動するプログラムの追加(_P):"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "参照…"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "コマンド(_M):"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "説明(_E):"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "オプション"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "自動起動するプログラム"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "ログアウト時に実行中のアプリを自動的に記憶しておく(_A)"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "名前(_N):"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "現在実行中のアプリを記憶しておく(_R)"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "妥当な .desktop ファイルではありません"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "バージョン '%s' の .desktop ファイルはサポートしていません"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "%sの起動中です"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "コマンドラインからドキュメントにはアクセスできません"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "不明な起動オプションです: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "ドキュメントの URI を 'Type=Link' な .desktop エントリには渡せません"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "起動可能なアイテムではありません"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "セッション・マネージャに接続しない"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "設定を保存したファイルを指定する"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FILE"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "セッション管理の ID を指定する"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "セッション管理のオプション:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "セッション管理のオプションを表示する"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"設定サーバに問題があるようです\n"
+"(%s がステータス %d で終了しました)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "'%s' というアイコンが見つかりませんでした"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "不明"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "プログラムが未だ実行中です:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "いくつかのプログラムが未だ実行中です:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"プログラムが終了するのを待っています。実行中のプログラムを途中で強制終了させ"
+"てしまうと、これまでの処理結果を失ってしまう可能性があります。"
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "とにかくユーザを切り替える"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "とにかくログアウトする"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "とにかくサスペンドにする"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "とにかくハイバネートにする"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "とにかくシャットダウンする"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "とにかく再起動する"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "画面をロックする"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "キャンセル"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "残り%d秒で自動的にログアウトします。"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "このシステムは残り%d秒で自動的にシャットダウンします。"
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "あなたは現在 \"%s\" でログインしています。"
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "このシステムから今すぐログアウトしますか?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "ユーザを切り替える(_S)"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "ログアウト(_L)"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "このシステムを今すぐシャットダウンしますか?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "サスペンド(_U)"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "ハイバーネート(_H)"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "再起動(_R)"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "シャットダウン(_S)"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "応答なし"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "このプログラムがログアウトできないようにしています。"
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"セッションがシャットダウンを実行しているため、新しいクライアントとの接続を拒"
+"否しました。\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ICE の監視ソケットを生成できませんでした: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "ログイン・セッションを起動できません (Xサーバにも接続できません)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "標準の自動起動フォルダをオーバーライドする"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "MateConf のキーを使ってデフォルトのセッションを検索する"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "デバッグ・モードにする"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "ユーザが指定したアプリを起動しない"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "- MATE セッション・マネージャ"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "ログアウトする"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "ログアウトする (阻害するプロセスを無視する)"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "ログアウトのダイアログを表示する"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "シャットダウンのダイアログを表示する"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "エラーをダイアログで表示する"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "現在のセッション名をセットする"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAME"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "セッションを強制終了する"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "確認を入れずに実行する"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "セッション・マネージャに接続できませんでした。"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "同時には適用できないオプションを指定しました"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "MATE 設定デーモンのヘルパー"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "これを有効にすると mate-session はセッションを自動的に保存します。その一"
+#~ "方で、ログアウト・ダイアログではセッション保存のオプションを表示します。"
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "ログイン時のスプラッシュ・スクリーンに使用するお気に入りの画像"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "スプラッシュ・スクリーンを表示するかどうか"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr ""
+#~ "セッションを開始したらスプラッシュ・スクリーンを表示するかどうかです。"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+#~ msgstr ""
+#~ "これはフォルダ $datadir/pixmaps/ からの相対パスで指定します。妥当なパス名"
+#~ "とファイル名を指定してください。この値を変更すると、次回ログインする際に適"
+#~ "応されます。"
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr ""
+#~ "プログラムの終了待ちです。実行中のプログラムを途中で強制終了させてしまう"
+#~ "と、ここまでの処理結果を失うことになります。"
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- MATE スプラッシュ・スクリーン"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "MATE スプラッシュ・スクリーン"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "自動起動するプログラムの名前を入力してください"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "このセッションで支援技術 (Assistive Technology) のサポートが要求されていま"
+#~ "すが、アクセシビリティの機能が登録されていないようです。AT-SPI パッケージ"
+#~ "がインストールされているか確認してください。ひとまず、支援技術のサポートな"
+#~ "しでセッションを起動します。"
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "AT SPI レジストリのラッパー"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "セッションのプロパティ"
diff --git a/po/ka.po b/po/ka.po
new file mode 100644
index 0000000..5574d34
--- /dev/null
+++ b/po/ka.po
@@ -0,0 +1,796 @@
+# translation of mate-sessions.po to Georgian
+# Vladimer Sichinava ვლადიმერ სიჭინავა <[email protected]>, 2007.
+# Georgian translation for Mate Session.
+# Copyright © 2006 Ubuntu Georgian Translators.
+# Vladimer Sichinava ვლადიმერ სიჭინავა <[email protected]>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-sessions\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-25 19:08+0200\n"
+"PO-Revision-Date: 2008-09-27 18:19+0200\n"
+"Last-Translator: Vladimer Sichinava ვლადიმერ სიჭინავა <[email protected]>\n"
+"Language-Team: Georgian <http://mail.gnome.org/mailman/listinfo/mate-ge-"
+"list>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: ../capplet/gsm-app-dialog.c:126
+msgid "Select Command"
+msgstr "ბრძანების ამორჩევა"
+
+#: ../capplet/gsm-app-dialog.c:187
+msgid "Add Startup Program"
+msgstr "დამწყები პროგრამის დამატება"
+
+#: ../capplet/gsm-app-dialog.c:191
+msgid "Edit Startup Program"
+msgstr "დამწყები პროგრამის რედაქტირება"
+
+#: ../capplet/gsm-properties-dialog.c:132
+msgid "No description"
+msgstr "არავითარი აღწერილობა"
+
+#: ../capplet/gsm-properties-dialog.c:977
+msgid "The name of the startup program cannot be empty"
+msgstr "ავტო გაშვებადი პროგრამის სახელწოდება არ უნდა იყოს ცარიელი"
+
+#: ../capplet/gsm-properties-dialog.c:981
+msgid "The startup command cannot be empty"
+msgstr "გაშვების ბრძანება არ უნდა იყოს ცარიელი"
+
+#: ../capplet/gsm-properties-dialog.c:987
+msgid "The startup command is not valid"
+msgstr "გაშვების ბრძანება მიუღებელია"
+
+#: ../capplet/gsm-properties-dialog.c:1291
+msgid "Enabled"
+msgstr "ჩართულია"
+
+#: ../capplet/gsm-properties-dialog.c:1304
+msgid "Icon"
+msgstr "ხატულა"
+
+#: ../capplet/gsm-properties-dialog.c:1315
+msgid "Program"
+msgstr "პროგრამა"
+
+#: ../capplet/gsm-properties-dialog.c:1464
+#: ../data/session-properties.glade.h:6
+msgid "Sessions Preferences"
+msgstr "სესიების პარამეტრები"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:508
+msgid "Version of this application"
+msgstr "ამ პროგრამის ვერსია"
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr ""
+
+#: ../compat/mate-keyring-daemon-wrapper.desktop.in.in.in.h:1
+msgid "MATE Keyring Daemon Wrapper"
+msgstr ""
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr ""
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "ეს სესია გნომში შესვლის საშუალებას იძლევა"
+
+#: ../data/mate-session.schemas.in.h:1
+msgid "Default session"
+msgstr "ნაგულისხმევი სესია"
+
+#: ../data/mate-session.schemas.in.h:2
+msgid "File Manager"
+msgstr "ფაილ მენეჯერი"
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"თუ მონიშნულია,mate-session შეეკითხება მომხმარებელს სესიის დასრულებამდე"
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"თუ მონიშნულია,mate-session შეინახავს სესიას ავტომატურად.თუ არა გასვლის "
+"დიალოგს ექნება სესიის შენახვის პარამეტრი."
+
+#: ../data/mate-session.schemas.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "რა მიმდევრობით უნდა ჩაირთონ პროგრამები სეანსის გაშვებისას."
+
+#: ../data/mate-session.schemas.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required-components\".) The "
+"Session Preferences will not normally allow users to remove a required "
+"component from the session, and the session manager will automatically add "
+"the required components back to the session if they do get removed."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Logout prompt"
+msgstr "დასტურის მოთხოვნის რეჟიმი"
+
+#: ../data/mate-session.schemas.in.h:8
+msgid "Panel"
+msgstr "პანელი"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "მისალმების ეკრანის პირადი გრაფიკული გამოსახულების შერჩევა"
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Required session components"
+msgstr "სესიისთვის საჭირო კომპონენტები"
+
+#: ../data/mate-session.schemas.in.h:11
+msgid "Save sessions"
+msgstr "სესიების შენახვა"
+
+#: ../data/mate-session.schemas.in.h:12
+msgid "Selected option in the log out dialog"
+msgstr "ამორჩეული პარამეტრი სისტემიდან გასვლის დიალოგ ფანჯარაში"
+
+#: ../data/mate-session.schemas.in.h:13
+msgid "Show the splash screen"
+msgstr "მისალმების ფანჯრის ჩვენება"
+
+#: ../data/mate-session.schemas.in.h:14
+msgid "Show the splash screen when the session starts up"
+msgstr "მისალმების ფანჯრის ჩვენება სესიის დაწყების წინ"
+
+#: ../data/mate-session.schemas.in.h:15
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. ამ მნიშვნელობის შეცვლა "
+"დამტკიცდება გადატვირთვის მერე."
+
+#: ../data/mate-session.schemas.in.h:19
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+"მოცემული პარამეტრი ამორჩეულ იქნება გასვლის დიალოგ ფანჯარაში, მისაღები "
+"მნიშვნელობებია \"სეანსის დასრულება\", სეანსიდან გამოსვლისთვის, \"გამორთვა\" "
+"კომპიუტერის გამორთვისთვის და \"გადატვირთვა\" სისტემის ხელახლა დაწყებისთვის."
+
+#: ../data/mate-session.schemas.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "ფანჯარათა მმართველი"
+
+#: ../data/gsm-inhibit-dialog.glade.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>ზოგიერთი პროგრამა ჯერ კიდევ გაშვებულია:</b>"
+
+#: ../data/gsm-inhibit-dialog.glade.h:2
+#: ../mate-session/gsm-inhibit-dialog.c:632
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "საკუთარი სესიის კონფიგურირება"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "სესიები"
+
+#: ../data/session-properties.glade.h:1
+msgid "Additional startup _programs:"
+msgstr "დამატებითი დაწყებითი ჩატვირთვის _პროგრამები:"
+
+#: ../data/session-properties.glade.h:2
+msgid "Browse..."
+msgstr "დათვალიერება..."
+
+#: ../data/session-properties.glade.h:3
+msgid "Co_mmand:"
+msgstr "ბრძანება"
+
+#: ../data/session-properties.glade.h:4
+msgid "Comm_ent:"
+msgstr "ბრძანება"
+
+#: ../data/session-properties.glade.h:5
+msgid "Options"
+msgstr "სესიის პარამეტრები"
+
+#: ../data/session-properties.glade.h:7
+msgid "Startup Programs"
+msgstr "დაწყების პროგრამები"
+
+#: ../data/session-properties.glade.h:8
+msgid "_Automatically remember running applications when logging out"
+msgstr ""
+
+#: ../data/session-properties.glade.h:9
+msgid "_Name:"
+msgstr "_სახელი:"
+
+#: ../data/session-properties.glade.h:10
+msgid "_Remember Currently Running Application"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "ამოუცნობი desktop ფაილის ვერსია '%s'"
+
+#: ../egg/eggdesktopfile.c:962
+#, c-format
+msgid "Starting %s"
+msgstr "ირთვება %s"
+
+#: ../egg/eggdesktopfile.c:1096
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1164
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1372
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1391
+#, c-format
+msgid "Not a launchable item"
+msgstr "არ არის გაშვებადი ელემენტი"
+
+#: ../egg/eggsmclient-libmateui.c:102
+msgid "Session management"
+msgstr "სესიის სახელი"
+
+#: ../egg/eggsmclient-libmateui.c:136
+msgid "MATE GUI Library + EggSMClient"
+msgstr "MATE GUI Library + EggSMClient"
+
+#: ../egg/eggsmclient.c:185
+msgid "Disable connection to session manager"
+msgstr "ვერ ვუკავშირდები სესიის მენეჯერს"
+
+#: ../egg/eggsmclient.c:188
+msgid "Specify file containing saved configuration"
+msgstr "დამახსოვრებული კონფიგურაციის მქონე ფაილის მინიშნება"
+
+#: ../egg/eggsmclient.c:188
+msgid "FILE"
+msgstr "ფაილი"
+
+#: ../egg/eggsmclient.c:191
+msgid "Specify session management ID"
+msgstr "აღნიშნეთ თუ რომელი სეანსი ჩაიტვირთოს"
+
+#: ../egg/eggsmclient.c:191
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:241
+msgid "Session Management Options"
+msgstr "სესიის პარამეტრები"
+
+#: ../egg/eggsmclient.c:242
+msgid "Show Session Management options"
+msgstr "სესიის პარამეტრები"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"დაიშვა შეცდომა კონფიგურაციის სერვერთან.\n"
+"(%s დასრულდა სტატუსით %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:256
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "ხატულა '%s' ვერ მოიძებნა"
+
+#: ../mate-session/gsm-inhibit-dialog.c:580
+msgid "Unknown"
+msgstr "უცნობი"
+
+#: ../mate-session/gsm-inhibit-dialog.c:631
+msgid "A program is still running:"
+msgstr "პროგრამა ჯერ კიდევ გაშვებულია:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:635
+msgid "Some programs are still running:"
+msgstr "ზოგიერთი პროგრამა ჯერ კიდევ გაშვებულია:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:636
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"ველოდები პროგრამების დასრულებას. ამ პროცესის შეწყვეტამ, შესაძლებელია თქვენს "
+"მიერ ჩატარებული სამუშაოს დაკარგვა გამოიწვიოს."
+
+#: ../mate-session/gsm-inhibit-dialog.c:864
+msgid "Switch User Anyway"
+msgstr "მაინც მომხმარებლის გადართვა"
+
+#: ../mate-session/gsm-inhibit-dialog.c:867
+msgid "Logout Anyway"
+msgstr "მაინც შესვლა"
+
+#: ../mate-session/gsm-inhibit-dialog.c:870
+msgid "Suspend Anyway"
+msgstr "მაინც შეყოვნება"
+
+#: ../mate-session/gsm-inhibit-dialog.c:873
+msgid "Hibernate Anyway"
+msgstr "მაინც ჰიბერნირებულ რეჟიმში შესვლა"
+
+#: ../mate-session/gsm-inhibit-dialog.c:876
+msgid "Shutdown Anyway"
+msgstr "მაინც გამორთე"
+
+#: ../mate-session/gsm-inhibit-dialog.c:879
+msgid "Reboot Anyway"
+msgstr "მაინც გადატვირთე"
+
+#: ../mate-session/gsm-inhibit-dialog.c:887
+msgid "Lock Screen"
+msgstr "ეკრანის დაბლოკვა"
+
+#: ../mate-session/gsm-inhibit-dialog.c:890
+msgid "Cancel"
+msgstr "გაუქმება"
+
+#: ../mate-session/gsm-logout-dialog.c:283
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d seconds."
+msgstr[0] ""
+"თქვენ დარეგისტრირებული ბრძანდებით როგორც: \"%s\".\n"
+"თქვენ ავტომატურად დატოვებთ სესიას %d წამში."
+
+#: ../mate-session/gsm-logout-dialog.c:295
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d seconds."
+msgstr[0] ""
+"თქვენ დარეგისტრირებული ბრძანდებით როგორც: \"%s\".\n"
+"სისტემა ავტომატურად გამოირთვება %d წამში."
+
+#: ../mate-session/gsm-logout-dialog.c:377
+msgid "Log out of this system now?"
+msgstr "გნებავთ მყისვე დატოვოთ სისტემა?"
+
+#: ../mate-session/gsm-logout-dialog.c:383
+msgid "_Switch User"
+msgstr "_მომხმარებლის გადართვა"
+
+#: ../mate-session/gsm-logout-dialog.c:392
+msgid "_Log Out"
+msgstr "_სეანსის დასრულება"
+
+#: ../mate-session/gsm-logout-dialog.c:398
+msgid "Shut down this system now?"
+msgstr "გნებავთ სისტემის ახლავე გამორთვა?"
+
+#: ../mate-session/gsm-logout-dialog.c:404
+msgid "S_uspend"
+msgstr "_დაყოვნება"
+
+#: ../mate-session/gsm-logout-dialog.c:410
+msgid "_Hibernate"
+msgstr "_ჰიბერნიზაცია"
+
+#: ../mate-session/gsm-logout-dialog.c:416
+msgid "_Restart"
+msgstr "გადატვირთვა"
+
+#: ../mate-session/gsm-logout-dialog.c:426
+msgid "_Shut Down"
+msgstr "გა_მორთვა"
+
+#: ../mate-session/gsm-manager.c:924 ../mate-session/gsm-manager.c:1541
+msgid "Not responding"
+msgstr "არ პასუხობს"
+
+#: ../mate-session/gsm-xsmp-client.c:988
+msgid "This program is blocking log out."
+msgstr "მოცემული პროგრამა ბლოკავს სისტემიდან გასვლას"
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr ""
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:139
+#, c-format
+msgid "Unable to start login session (and unable connect to the X server)"
+msgstr ""
+
+#: ../mate-session/main.c:504
+msgid "Override standard autostart directories"
+msgstr ""
+
+#: ../mate-session/main.c:505
+msgid "MateConf key used to lookup default session"
+msgstr ""
+
+#: ../mate-session/main.c:506
+msgid "Enable debugging code"
+msgstr ""
+
+#: ../mate-session/main.c:507
+msgid "Do not load user-specified applications"
+msgstr ""
+
+#: ../mate-session/main.c:528
+msgid " - the MATE session manager"
+msgstr "ვერ ვუკავშირდები სესიის მენეჯერს"
+
+#: ../splash/mate-session-splash.c:291
+msgid "- MATE Splash Screen"
+msgstr "ანახე მისალმების ფანჯარა"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr ""
+
+#: ../tools/mate-session-save.c:65
+msgid "Set the current session name"
+msgstr "მიმდინარე სესიის დაყენება"
+
+#: ../tools/mate-session-save.c:65
+msgid "NAME"
+msgstr "სახელწოდება"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out"
+msgstr "სესიის დასრულება"
+
+#: ../tools/mate-session-save.c:67
+msgid "Log out, ignoring any existing inhibitors"
+msgstr ""
+
+#: ../tools/mate-session-save.c:68
+msgid "Show logout dialog"
+msgstr "გასვლის დიალოგ ფანჯრის ჩვენება"
+
+#: ../tools/mate-session-save.c:69
+msgid "Show shutdown dialog"
+msgstr "გამორთვის დიალოგ ფანჯრის ჩვენება"
+
+#: ../tools/mate-session-save.c:70
+msgid "Kill session"
+msgstr "სესიის მოკვლა"
+
+#: ../tools/mate-session-save.c:71
+msgid "Use dialog boxes for errors"
+msgstr "დიალოგ ფანჯრების გამოყენება"
+
+#: ../tools/mate-session-save.c:72
+msgid "Do not require confirmation"
+msgstr ""
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "ვერ ვუკავშირდები სესიის მენეჯერს"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr ""
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "TCP კავშირების დაშვება"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "უსაფრთხოების გამო ყველა _IceTcpTransNoListen() (XFree86 systems)-იან "
+#~ "პლატფორმაში, mate-session-ი აღარ დაუშვებს TCP-ს პორტებზე კავშირს. "
+#~ "მოცემული პარამეტრი იძლევა საშუალებას მხოლოდ ავტორიზებული(ნაცნობი) "
+#~ "დაშორებული ჰოსტებიდან კავშირს. პარამეტრის დამტკიცებისთვის საჭიროა mate-"
+#~ "session-ის გადატვირთვა."
+
+#~ msgid "_Order:"
+#~ msgstr "_მიმდევრობა:"
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "რა მოსდის პროგრამას როდესაც ის ითიშება."
+
+#~ msgid "_Style:"
+#~ msgstr "_სტილი:"
+
+#~ msgid "Order"
+#~ msgstr "წესრიგი"
+
+#~ msgid "Style"
+#~ msgstr "სტილი"
+
+#~ msgid "State"
+#~ msgstr "მდგომარეობა"
+
+#~ msgid "Inactive"
+#~ msgstr "არააქტიური"
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "დაელოდები გაშვებას ან უკვე დასრულებულია."
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "გაშვებულია მაგრამ არავითარი ინფორმაცია მის მდგომარეობის შესახებ."
+
+#~ msgid "Running"
+#~ msgstr "გაშვებულია"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "სესიის ჩვეულებრივი წევრი."
+
+#~ msgid "Saving"
+#~ msgstr "ვიმახსოვრებ"
+
+#~ msgid "Saving session details."
+#~ msgstr "სესიის დეტალების დამახსოვრება."
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "არავითარი გამონატანის ინფორმაცია მინიჭებულ დროში."
+
+#~ msgid "Normal"
+#~ msgstr "საშუალო"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "არაფერი მოსდის გამოთიშვებით, მაგრამ შესაძლებელია რომ გამოირთოს."
+
+#~ msgid "Never allowed to die."
+#~ msgstr "არასოდეს დაუშვა მისი გამოთიშვა."
+
+#~ msgid "Trash"
+#~ msgstr "ნაგვის ყუთი"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "გაუქმებულია გამოსვლის წინ ასე რომ შეიძლება გაითიშოს."
+
+#~ msgid "Settings"
+#~ msgstr "პარამეტრები"
+
+#~ msgid "Always started on every login."
+#~ msgstr "ირთვება ყოველი რეგისტრირებისას."
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "დაიშვა შეცდომა გნომის პარამეტრების დემონის გაშვებისას.\" \n"
+#~ "შესაძლებელია რომ გაფორმების თემამ, ხმამ ან ფონის სურათმა არ იმუშაოს."
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "↵\n"
+#~ "↵\n"
+#~ "ბოლო შეცდომის მაუწყებელი შეტყობინება იყო:↵\n"
+#~ "↵\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "გნომი მაინც შეეცდება მომავალი შემოსვლისთვის გადატვირთოს პარამეტრების "
+#~ "დემონი."
+
+#~ msgid "There was an unknown activation error."
+#~ msgstr "დაიშვა აქტივაციის უცნობი შეცდომა."
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "პარამეტრების დემონი ზედმეტად ბევრჯერ გაიშვა."
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "დარწმუნებული ბრძანდებით სეანსის დასრულება გსურთ?"
+
+#~ msgid "_Save current setup"
+#~ msgstr "მიმდინარე სესიის _დამახსოვრება"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "კომპიუტერის გ_ადატვირთვა."
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "წაიკითხება default.session-ში დამახსოვრებული სეანსები"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr ""
+#~ "დრო რომელიც სჭირდებათ კლიენტებს რეგისტრაციისთვის. მილიწამებში. (0=forever)"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr ""
+#~ "დრო რომელიც სჭირდებათ კლიენტებს პასუხის გაცემისთვის. მილიწამებში. "
+#~ "(0=forever)"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr ""
+#~ "დრო რომელიც სჭირდებათ კლიენტებს გათიშვისთვის. მილიწამებში. (0=forever)"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "შეუძლებელია მისამართის ინტერნეტში პოვნა %s.\n"
+#~ "ამის გამო გნომმა შეიძლება არასწორედ იმუშაოს.\n"
+#~ "შესაძლებელია პრობლემის მოგვარება თუ ჩაამატებთ\n"
+#~ "%s ფაილ /etc/hosts-ში"
+
+#~ msgid "Try Again"
+#~ msgstr "ხელახლი ცდა"
+
+#~ msgid "Your session has been saved"
+#~ msgstr "თქვენი სესია დამახსოვრებულია"
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "კონფლიქტების გამო მოლოდინის გათიშვა."
+
+#~ msgid "No response to the %s command."
+#~ msgstr "არავითარი პასუხი %s ბრანებაზე."
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "შესაძლებელია რომ პროგრამა გაფუჭდა, გაიჭედა ან უბრალოდ ნელი გახდა."
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "შესაძლებელია რომ გნებავდეთ პასუხი ან მისი მოშორება."
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "მიტოვებულის შემთხვევაში გადატვირთეთ."
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "მიმდინარეობს სესიის დახურვა."
+
+#~ msgid "The session name cannot be empty"
+#~ msgstr "შეუძლებელია რომ სესიის სახელი ცარიელი იყოს."
+
+#~ msgid "The session name already exists"
+#~ msgstr "უკვე არსებული სესიის სახელი"
+
+#~ msgid "Add a new session"
+#~ msgstr "ახალი სესიის დამატება"
+
+#~ msgid "Edit session name"
+#~ msgstr "სესიის სახელწოდების რედაქტირება"
+
+#~ msgid "Disable"
+#~ msgstr "გამორთე"
+
+#~ msgid "_Edit"
+#~ msgstr "რ_ედაქტირება"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "ზოგი ცვლილება ჯერ კიდევ დამახსოვრებული არ არის.\n"
+#~ "დარწმუნებული ბრძანდებით რომ გნებავთ გამოსვლა?"
+
+#~ msgid "Show splash screen on _login"
+#~ msgstr "შე_მოსვლის წინ ნახატის ჩვენება"
+
+#~ msgid "As_k on logout"
+#~ msgstr "გასვლის წი_ნ შეკითხვის დასმა"
+
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "სესიის ც_ვლილებების ავტომატურად დამახსოვრება"
+
+#~ msgid "_Sessions:"
+#~ msgstr "_სესიები:"
+
+#~ msgid "Current Session"
+#~ msgstr "მიმდინარე სესია"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "მიმდინარე მონიშნული კლიენტის ამოღება."
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "მიმდინარე სეანსის ცვლილებების დამტკიცება"
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "პროგრამების სია სესიაში."
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "მიმდინარე ჩართული _პროგრამები:"
+
+#~ msgid "Initialize session settings"
+#~ msgstr "სესიის პარამეტრების ინიციალიზება"
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "\"Sawfish\" ფანჯრების მმართველი"
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "Marco ფანჯრების მმართველი"
+
+#~ msgid "Caja"
+#~ msgstr "ნაუტილუსი"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "სამუშაო მაგიდის პარამეტრები"
+
+#~ msgid "_Startup Command:"
+#~ msgstr "_ჩართვის ბრძანება:"
diff --git a/po/kn.po b/po/kn.po
new file mode 100644
index 0000000..1fee00f
--- /dev/null
+++ b/po/kn.po
@@ -0,0 +1,681 @@
+# translation of mate-session.master.kn.po to Kannada
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Shankar Prasad <[email protected]>, 2008, 2009, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.master.kn\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-04-21 14:36+0530\n"
+"PO-Revision-Date: 2010-04-05 19:11+0530\n"
+"Last-Translator: Shankar Prasad <[email protected]>\n"
+"Language-Team: kn-IN <>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "ಆಜ್ಞೆಯನ್ನು ಆರಿಸು"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "ಆರಂಭಿಕ ಪ್ರೊಗ್ರಾಂ ಅನ್ನು ಸೇರಿಸು"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "ಆರಂಭಿಕ ಪ್ರೊಗ್ರಾಂ ಅನ್ನು ಸಂಪಾದಿಸು"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "ಆರಂಭಿಕ ಆಜ್ಞೆಯು ಖಾಲಿ ಇರುವಂತಿಲ್ಲ"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "ಆರಂಭಿಕ ಆಜ್ಞೆಯು ಮಾನ್ಯವಾದುದಲ್ಲ"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "ಶಕ್ತಗೊಂಡ"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "ಚಿಹ್ನೆ"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "ಪ್ರೊಗ್ರಾಂ"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "ಆರಂಭಿಕ ಅನ್ವಯಗಳ ಆದ್ಯತೆಗಳು"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "ಯಾವುದೆ ಹೆಸರಿಲ್ಲ"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "ಯಾವುದೆ ವಿವರಣೆ ಇಲ್ಲ"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "ಈ ಅನ್ವಯದ ಆವೃತ್ತಿ"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "ನೆರವಿನ ದಸ್ತಾವೇಜನ್ನು ತೋರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "MATE ಸೆಟ್ಟಿಂಗ್ಸ್‍ ಡೀಮನ್ ಹೆಲ್ಪರ್"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "ಈ ಅಧಿವೇಶನವು ನಿಮ್ಮನ್ನು MATE ಗೆ ಪ್ರವೇಶಿಸುವಂತೆ ಮಾಡುತ್ತದೆ"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "ಪೂರ್ವನಿಯೋಜಿತ ಅಧಿವೇಶನ"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "ಕಡತ ವ್ಯವಸ್ಥಾಪಕ"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"ಶಕ್ತಗೊಂಡಿದ್ದಲ್ಲಿ, ಯಾವುದೆ ಒಂದು ಅಧೀವೇಶನವನ್ನು ಮುಗಿಸುವ ಮೊದಲು mate-session "
+"ಬಳಕೆದಾರನನ್ನು ಕೇಳುತ್ತದೆ."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"ಶಕ್ತಗೊಂಡಿದ್ದಲ್ಲಿ, mate-session ಅಧಿವೇಶನವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಉಳಿಸುತ್ತದೆ. ಇಲ್ಲದೆ "
+"ಹೋದಲ್ಲಿ, ಅಧಿವೇಶನವನ್ನು ಉಳಿಸಲು ನಿರ್ಗಮಿಸುವ ಸಂವಾದದಲ್ಲಿ ಆಯ್ಕೆಯು ಇರುತ್ತದೆ."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "ಪೂರ್ವನಿಯೋಜಿತ ಅಧಿವೇಶನದ ಭಾಗವಾಗಿರುವ ಅನ್ವಯಗಳ ಪಟ್ಟಿ."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"ಅಧಿವೇಶನದ ಭಾಗವಾಗಿರಬೇಕಾಗಿರುವ ಘಟಕಗಳ ಪಟ್ಟಿ.. (ಪ್ರತಿಯೊಂದು ಅಂಶದ ಹೆಸರುಗಳು \"/desktop/"
+"mate/session/required_components\" ನ ಅಡಿಯಲ್ಲಿ ಒಂದು ಕೀಲಿಯಾಗಿರುತ್ತದೆ). "
+"ಬಳಕೆದಾರರು ಒಂದು ಅಗತ್ಯವಾದ ಘಟಕವನ್ನು ತೆಗೆದು ಹಾಕಲು ಸಾಮಾನ್ಯವಾಗಿ ಆರಂಭಿಕ ಅನ್ವಯದ ಆದ್ಯತೆಗಳು "
+"ಅನುಮತಿಸುವುದಿಲ್ಲ ಹಾಗು ಎಲ್ಲಿಯಾದರೂ ಅವುಗಳನ್ನು ತೆಗೆದು ಹಾಕಿದಲ್ಲಿ ಅಧಿವೇಶನದ ವ್ಯವಸ್ಥಾಪಕವು "
+"ಪ್ರವೇಶದ ಸಮಯದಲ್ಲಿ ಅಗತ್ಯವಾದ ಘಟಕಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರಳಿ ಸೇರಿಸುತ್ತದೆ."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "ನಿರ್ಗಮನದ ಪ್ರಾಂಪ್ಟ್‍"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "ಫಲಕ"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "ಪ್ರವೇಶದ ಎರಚು ತೆರೆಯ ಮೇಲೆ ಬಳಸಬೇಕಿರುವ ಚಿತ್ರ"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "ಅಧಿವೇಶನದ ಅಂಗಗಳ ಅಗತ್ಯವಿದೆ"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "ಅಧಿವೇಶನವನ್ನು ಉಳಿಸು"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "ಎರಚು ತೆರೆಯನ್ನು ತೋರಿಸು"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "ಅಧಿವೇಶನವು ಆರಂಭಗೊಂಡಾಗ ಎರಚು ತೆರೆಯನ್ನು ತೋರಿಸು"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"ಕಡತ ವ್ಯವಸ್ಥಾಪಕವು ಗಣಕತೆರೆ ಚಿಹ್ನೆಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ ಹಾಗು ನೀವು ಉಳಿಸಿದ ಕಡತಗಳೊಂದಿಗೆ "
+"ವ್ಯವಹರಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"ಅಧಿವೇಶನವನ್ನು ಜಡವಾಗಿದೆ ಎಂದು ಪರಿಗಣಿಸಬೇಕಿರುವ ಮೊದಲು ಅದು ನಿಷ್ಕ್ರಿಯವಾಗಿರಬೇಕಿರುವ "
+"ನಿಮಿಷಗಳ ಸಂಖ್ಯೆ."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"ಮೆನುಗಳು, ವಿಂಡೋ ಪಟ್ಟಿ, ಸ್ಥಿತಿ ಚಿಹ್ನೆಗಳು, ಗಡಿಯಾರ ಹಾಗು ಇತ್ಯಾದಿಗಳನ್ನು ಹೊಂದಿರುವ "
+"ಪಟ್ಟಿಯನ್ನು ತೆರೆಯ ಮೇಲ್ಭಾಗದಲ್ಲಿ ಅಥವ ಕೆಳಭಾಗದಲ್ಲಿನ ಒದಗಿಸುತ್ತದೆ."
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"ವಿಂಡೋ ವ್ಯವಸ್ಥಾಪಕವು ವಿಂಡೋಗಳ ಸುತ್ತಲೂ ಶೀರ್ಷಿಕೆ ಪಟ್ಟಿ ಹಾಗು ಅಂಚುಗಳನ್ನು ಎಳೆಯುವ ಪ್ರೊಗ್ರಾಂ "
+"ಆಗಿದೆ, ಹಾಗು ಇದು ವಿಂಡೋಗಳನ್ನು ಸ್ಥಳಾಂತರಿಸಲು ಹಾಗು ಗಾತ್ರಬದಲಾವಣೆಯನ್ನು ಮಾಡಲು ಅನುವು "
+"ಮಾಡುತ್ತದೆ."
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"ಇದು $datadir/pixmaps/ ಕೋಶದ ಮೇಲೆ ಆಧರಿತವಾದ ಒಂದು ಸಂಬಂಧಿತ ಮಾರ್ಗವಾಗಿದೆ. ಉಪ-ಕೋಶಗಳು "
+"ಹಾಗು ಚಿತ್ರದ ಹೆಸರುಗಳು ಮಾನ್ಯವಾದ ಮೌಲ್ಯಗಳನ್ನು ಹೊಂದಿರುತ್ತವೆ. ಈ ಮೌಲ್ಯವನ್ನು ಬದಲಾಯಿಸುವುದರಿಂದ "
+"ಮುಂದಿನ ಅಧಿವೇಶನದ ಪ್ರವೇಶದ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "ಅಧಿವೇಶನವನ್ನು ಜಡ ಎಂದು ಪರಿಗಣಿಸುವ ಮುಂಚಿನ ಸಮಯ"
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "ವಿಂಡೋ ವ್ಯವಸ್ಥಾಪಕ"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>ಕೆಲವು ಪ್ರೊಗ್ರಾಂಗಳು ಇನ್ನೂ ಚಾಲನೆಯಲ್ಲಿವೆ:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"ಪ್ರೊಗ್ರಾಂ ಅಂತ್ಯಗೊಳ್ಳುವವರೆಗೆ ಕಾಯಲಾಗುತ್ತಿದೆ. ಪ್ರೊಗ್ರಾಂ ಅನ್ನು ಮಧ್ಯದಲ್ಲಿ ತಡೆಯುವುದರಿಂದ "
+"ನಿಮ್ಮ ಕೆಲಸವು ನಾಶಗೊಳ್ಳಬಹುದು."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "ನೀವು ಪ್ರವೇಶಿಸಿದಾಗ ಯಾವ ಅನ್ವಯವನ್ನು ಆರಂಭಿಸಬೇಕು ಎನ್ನುವುದನ್ನು ಆಯ್ಕೆ ಮಾಡಿ"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "ಆರಂಭಿಕ ಅನ್ವಯಗಳು"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "ಹೆಚ್ಚುವರಿ ಆರಂಭಿಕ ಪ್ರೊಗ್ರಾಂಗಳು(_p):"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "ವೀಕ್ಷಿಸು..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "ಆಜ್ಞೆ(_m):"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "ಟಿಪ್ಪಣಿ(_e):"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "ಆಯ್ಕೆಗಳು"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "ಆರಂಭಿಕ ಪ್ರೋಗ್ರಾಂಗಳು"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "ನಿರ್ಗಮಿಸುವಾಗ ಚಾಲನೆಯಲ್ಲಿರುವ ಅನ್ವಯಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನೆನಪಿಟ್ಟುಕೊ(_A)"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "ಹೆಸರು(_N):"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "ಪ್ರಸಕ್ತ ಚಾಲನೆಯಲ್ಲಿರುವ ಅನ್ವಯವನ್ನು ನೆನಪಿಟ್ಟುಕೊ(_R)"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "ಕಡತವು ಮಾನ್ಯವಾದ .desktop ಕಡತವಾಗಿಲ್ಲ"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "ಗುರುತಿಸಲಾಗದ ಗಣಕತೆರೆ ಕಡತದ ಆವೃತ್ತಿ '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "%s ಅನ್ನು ಆರಂಭಿಸಲಾಗುತ್ತಿದೆ"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "ಅನ್ವಯವು ಆಜ್ಞಾ ಸಾಲಿನಲ್ಲಿ ದಸ್ತಾವೇಜುಗಳನ್ನು ಅಂಗೀಕರಿಸುವುದಿಲ್ಲ"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "ಗುರುತಿಸಲಾಗದ ಆರಂಭಿಕ ಆಯ್ಕೆ: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "ಒಂದು 'Type=Link' ಗಣಕತೆರೆ ನಮೂದು ದಸ್ತಾವೇಜು URIಗಳನ್ನು ರವಾನಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "ಆರಂಭಿಸಬಹುದಾದ ಅಂಶವಾಗಿಲ್ಲ"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "ಅಧಿವೇಶನ ವ್ಯವಸ್ಥಾಪಕದೊಂದಿಗಿನ ಸಂಪರ್ಕವನ್ನು ಅಶಕ್ತಗೊಳಿಸು"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "ಉಳಿಸಲಾದ ಸಂರಚನೆಯನ್ನು ಹೊಂದಿರುವ ಕಡತವನ್ನು ಸೂಚಿಸಿ"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FILE"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "ಅಧಿವೇಶನ ವ್ಯವಸ್ಥಾಪಕ ID ಯನ್ನು ಸೂಚಿಸಿ"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "ಅಧಿವೇಶನ ವ್ಯವಸ್ಥಾಪಕ ಆಯ್ಕೆಗಳು:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "ಅಧಿವೇಶನದ ವ್ಯವಸ್ಥಾಪಕ ಆಯ್ಕೆಗಳನ್ನು ತೋರಿಸು"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"ಸಂರಚನಾ ಪರಿಚಾರಕದಲ್ಲಿ ಒಂದು ದೋಷವು ಎದುರಾಗಿದೆ.\n"
+"(%s ವು %d ಸ್ಥಿತಿಯೊಂದಿಗೆ ನಿರ್ಗಮಿಸಿದೆ)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "ಚಿಹ್ನೆ '%s' ಯು ಕಂಡು ಬಂದಿಲ್ಲ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "ತಿಳಿಯದ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "ಒಂದು ಪ್ರೊಗ್ರಾಂಗಳು ಇನ್ನೂ ಚಾಲನೆಯಲ್ಲಿವೆ:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "ಕೆಲವು ಪ್ರೊಗ್ರಾಂಗಳು ಇನ್ನೂ ಚಾಲನೆಯಲ್ಲಿವೆ:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"ಪ್ರೊಗ್ರಾಂಗಳು ಅಂತ್ಯಗೊಳ್ಳುವವರೆಗೆ ಕಾಯಲಾಗುತ್ತಿದೆ. ಈ ಪ್ರೊಗ್ರಾಂಗಳನ್ನು ಅನ್ನು ಮಧ್ಯದಲ್ಲಿ "
+"ತಡೆಯುವುದರಿಂದ ನಿಮ್ಮ ಕೆಲಸವು ನಾಶಗೊಳ್ಳಬಹುದು."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "ಪರವಾಗಿಲ್ಲ ಬಳಕೆದಾರನನ್ನು ಬದಲಾಯಿಸು"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "ಪರವಾಗಿಲ್ಲ ನಿರ್ಗಮಿಸು"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "ಪರವಾಗಿಲ್ಲ ತಾತ್ಕಾಲಿಕ ಸ್ಥಗಿತಗೊಳಿಸು"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "ಪರವಾಗಿಲ್ಲ ಹೈಬರ್ನೇಟ್ ಮಾಡು"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "ಪರವಾಗಿಲ್ಲ ಮುಚ್ಚು"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "ಪರವಾಗಿಲ್ಲ ಇನ್ನೊಮ್ಮೆ ಬೂಟ್ ಮಾಡು"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "ತೆರೆಯನ್ನು ಲಾಕ್ ಮಾಡು"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "ರದ್ದುಗೊಳಿಸು"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "ನೀವು ಸ್ವಯಂಚಾಲಿತವಾಗಿ %d ಸೆಕೆಂಡಿನಲ್ಲಿ ನಿರ್ಗಮಿಸಲಿದ್ದೀರಿ."
+msgstr[1] "ನೀವು ಸ್ವಯಂಚಾಲಿತವಾಗಿ %d ಸೆಕೆಂಡುಗಳಲ್ಲಿ ನಿರ್ಗಮಿಸಲಿದ್ದೀರಿ."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "ಗಣಕವು ಸ್ವಯಂಚಾಲಿತವಾಗಿ %d ಸೆಕೆಂಡಿನಲ್ಲಿ ಮುಚ್ಚಲ್ಪಡುತ್ತದೆ."
+msgstr[1] "ಗಣಕವು ಸ್ವಯಂಚಾಲಿತವಾಗಿ %d ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಮುಚ್ಚಲ್ಪಡುತ್ತದೆ."
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "ನೀವು ಪ್ರಸಕ್ತ \"%s\" ಆಗಿ ಪ್ರವೇಶಿಸಿದ್ದೀರಿ."
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "ಈ ಗಣಕದಿಂದ ಈಗಲೆ ನಿರ್ಗಮಿಸಬೇಕೆ?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "ಬಳಕೆದಾರರನ್ನು ಬದಲಾಯಿಸು(_S)"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "ನಿರ್ಗಮಿಸು(_L)"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "ಈ ಗಣಕವನ್ನು ಈಗಲೆ ಮುಚ್ಚಬೇಕೆ?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "ತಾತ್ಕಾಲಿಕ ಸ್ಥಗಿತಗೊಳಿಸು(_u)"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "ಹೈಬರ್ನೇಟ್(_H)"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "ಮತ್ತೆ ಆರಂಭಿಸು(_R)"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "ಮುಚ್ಚು(_S)"
+
+#: ../mate-session/gsm-manager.c:1220 ../mate-session/gsm-manager.c:1912
+msgid "Not responding"
+msgstr "ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತಿಲ್ಲ"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking log out."
+msgstr "ಪ್ರೊಗ್ರಾಂ ನಿರ್ಗಮನವನ್ನು ತಡೆಯುತ್ತಿದೆ."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"ಹೊಸ ಕ್ಲೈಂಟ್ ಸಂಪರ್ಕಗಳನ್ನು ತಿರಸ್ಕರಿಸಲಾಗುತ್ತಿದೆ ಏಕೆಂದರೆ ಅಧೀವೇಶವನವು ಈಗ ಮುಚ್ಚಲ್ಪಡುತ್ತಿದೆ\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ICE ಆಲಿಸುವ ಸಾಕೆಟ್ ಅನ್ನು ನಿರ್ಮಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"ಪ್ರವೇಶ ಅಧಿವೇಶನವನ್ನು ಆರಂಭಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ (ಹಾಗು X ಪರಿಚಾರಕಕ್ಕೆ ಸಂಪರ್ಕ ಸಾಧಿಸಲು "
+"ಸಾಧ್ಯವಾಗಿಲ್ಲ)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "ರೂಢಿಗತ ಸ್ವಯಂಚಾಲನಾ ಕೋಶಗಳನ್ನು ಅತಿಕ್ರಮಿಸು"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to lookup default session"
+msgstr "ಪೂರ್ವನಿಯೋಜಿತ ಅಧಿವೇಶನವನ್ನು ನೋಡಿಕೊಳ್ಳಲು ಬಳಸಲಾಗುವ MateConf ಕೀಲಿ"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "ದೋಷನಿವಾರಣ ಕೋಡ್ ಅನ್ನು ಶಕ್ತಗೊಳಿಸು"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "ಬಳಕೆದಾರ-ಸೂಚಿತ ಅನ್ವಯಗಳನ್ನು ಲೋಡ್ ಮಾಡಬೇಡ"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "- MATE ಅಧಿವೇಶನ ವ್ಯವಸ್ಥಾಪಕ"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- MATE ಎರಚು ತೆರೆ"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "MATE ಎರಚು ತೆರೆ"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "ನಿರ್ಗಮಿಸು"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "ಯಾವುದೆ ಪ್ರತಿರೋಧಗಳಿದ್ದರೂ ಅವನ್ನು ಆಲಕ್ಷಿಸಿ, ನಿರ್ಗಮಿಸು"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "ನಿರ್ಗಮನದ ಸಂವಾದವನ್ನು ತೋರಿಸು"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "ಮುಚ್ಚುವ ಸಂವಾದವನ್ನು ತೋರಿಸು"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "ದೋಷಗಳಿಗಾಗಿ ಸಂವಾದ ಚೌಕವನ್ನು ಉಪಯೋಗಿಸು"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "ಚಾಲ್ತಿಯಲ್ಲಿರುವ ಅಧಿವೇಶನಕ್ಕೆ ಹೆಸರನ್ನು ನೀಡು"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAME"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "ಅಧಿವೇಶನವನ್ನು ಮುಗಿಸು"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "ಖಚಿತಪಡಿಸುವ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "ಅಧಿವೇಶನ ವ್ಯವಸ್ಥಾಪಕನೊಂದಿಗೆ ಸಂಪರ್ಕ ಹೊಂದಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "ಅಸಮಂಜಸ ಆಯ್ಕೆಗಳೊಂದಿಗೆ ಪ್ರೊಗ್ರಾಂ ಅನ್ನು ಕರೆಯಲಾಗಿದೆ"
+
+#~ msgid "Custom"
+#~ msgstr "ನನ್ನಿಚ್ಛೆಯ"
+
+#~ msgid "This entry lets you select a saved session"
+#~ msgstr ""
+#~ "ಈ ನಮೂದು ನಿಮಗೆ ಒಂದು ಉಳಿಸಲಾದ ಅಧಿವೇಶನವನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ"
+
+#~ msgid "Amount of time a user can remain idle"
+#~ msgstr "ಒಬ್ಬ ಬಳಕೆದಾರನು ಜಡವಾಗಿರಬಹುದಾದ ಸಮಯ"
+
+#~ msgid ""
+#~ "If a user tries to login as root, show a dialog telling them it's a bad "
+#~ "idea"
+#~ msgstr ""
+#~ "ಬಳಕೆದಾರರು ನಿರ್ವಾಹಕರಾಗಿ ಪ್ರವೇಶಿಸಲು ಪ್ರಯತ್ನಿಸಿದಲ್ಲಿ, ಹಾಗೆ ಮಾಡುವುದು ಉಚಿತವಲ್ಲ ಎಂದು "
+#~ "ತೋರಿಸುವ ಒಂದು ಸಂವಾದ ಚೌಕವನ್ನು ತೋರಿಸು"
+
+#~ msgid "The action to take after the maximum idle time"
+#~ msgstr "ಗರಿಷ್ಟ ಜಡವಾಗಿದ್ದ ಸಮಯದ ನಂತರ ತೆಗೆದುಕೊಳ್ಳಬೇಕಿರುವ ಕ್ರಮ"
+
+#~ msgid ""
+#~ "The name of the action to take when the maximum allowed idle time has "
+#~ "been reached. The Delay is specified in the \"max_idle_time\" key. "
+#~ "Allowed values are: logout, forced-logout. An empty string disables the "
+#~ "action."
+#~ msgstr ""
+#~ "ಜಡ ಸ್ಥಿತಿಯಲ್ಲಿ ಅನುಮತಿ ಇರುವ ಗರಿಷ್ಟ ಸಮಯವನ್ನು ತಲುಪಿದಾಗ ತೆಗೆದುಕೊಳ್ಳಬೇಕಿರುವ ಕ್ರಿಯೆಯ "
+#~ "ಹೆಸರು. ವಿಳಂಬವನ್ನು \"max_idle_time\" ಕೀಲಿಯಲ್ಲಿ ಸೂಚಿಸಲಾಗಿರುತ್ತದೆ. ಅನುಮತಿ ಇರುವ "
+#~ "ಮೌಲ್ಯಗಳೆಂದರೆ: logout, forced-logout. ಇದನ್ನು ಖಾಲಿ ಬಿಟ್ಟಲ್ಲಿ ಕ್ರಿಯೆಯು "
+#~ "ನಿಷ್ಕ್ರಿಯವಾಗಿರುತ್ತದೆ."
+
+#~ msgid ""
+#~ "The number of minutes a user can remain idle before the max_idle_action "
+#~ "is automatically taken."
+#~ msgstr ""
+#~ "max_idle_action ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ತೆಗೆದುಕೊಳ್ಳುವ ಮೊದಲು ಬಳಕೆದಾರರು "
+#~ "ನಿಷ್ಕ್ರಿಯವಾಗಿರಬೇಕಿರುವ ನಿಮಿಷಗಳ ಸಂಖ್ಯೆ."
+
+#~ msgid "Warn user against running mate-session from root account"
+#~ msgstr "ನಿರ್ವಾಹಕ ಖಾತೆಯಿಂದ mate-ಅಧಿವೇಶನವನ್ನು ಚಲಾಯಿಸದಂತೆ ಬಳಕೆದಾರರಿಗೆ ಎಚ್ಚರಿಸು"
+
+#~ msgid ""
+#~ "When enabled, mate-session will automatically save the next session at "
+#~ "log out even if auto saving is disabled."
+#~ msgstr ""
+#~ "ಶಕ್ತಗೊಂಡಿದ್ದಲ್ಲಿ, ಸ್ವಯಂ ಉಳಿಸುವಿಕೆಯನ್ನು ಅಶಕ್ತಗೊಂಡಿದ್ದರೂ ಸಹ mate-session "
+#~ "ನಿರ್ಗಮಿಸಿದಾಗ ಮುಂದಿನ ಅಧಿವೇಶನವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಉಳಿಸುತ್ತದೆ."
+
+#~ msgid "Custom Session"
+#~ msgstr "ಇಚ್ಛೆಯ ಅಧಿವೇಶನ"
+
+#~ msgid "Please choose a custom session to run."
+#~ msgstr "ಚಲಾಯಿಸಲು ನಿಮ್ಮ ಇಚ್ಛೆಯ ಒಂದು ಅಧಿವೇಶನವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ."
+
+#~ msgid "Please enter a name for the new session."
+#~ msgstr "ಹೊಸ ಅಧಿವೇಶನಕ್ಕಾಗಿ ಒಂದು ಹೆಸರನ್ನು ನಮೂದಿಸಿ."
+
+#~ msgid "_Continue"
+#~ msgstr "ಮುಂದುವರೆ(_C)"
+
+#~ msgid "_New Session"
+#~ msgstr "ಹೊಸ ಅಧಿವೇಶನ(_N)"
+
+#~ msgid "_Remove Session"
+#~ msgstr "ಅಧಿವೇಶನವನ್ನು ತೆಗೆದು ಹಾಕು(_R)"
+
+#~ msgid ""
+#~ "You are currently trying to run as the root super user. The super user "
+#~ "is a specialized account that is not designed to run a normal user "
+#~ "session. Various programs will not function properly, and actions "
+#~ "performed under this account can cause unrecoverable damage to the "
+#~ "operating system."
+#~ msgstr ""
+#~ "ನೀವು ಪ್ರಸಕ್ತ ಒಬ್ಬ ನಿರ್ವಾಹಕರಾಗಿ(ಸೂಪರ್ ಯೂಸರ್) ಚಲಾಯಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದೀರಿ. "
+#~ "ನಿರ್ವಾಹಕರೆನ್ನುವುದು ವಿಶೇಷ ಖಾತೆಯಾಗಿದ್ದು ಒಂದು ಸಾಮಾನ್ಯ ಬಳಕೆದಾರರ ಅಧಿವೇಶನವಾಗಿ "
+#~ "ಚಲಾಯಿಸಲು ಸೂಕ್ತವಾಗಿರುವುದಿಲ್ಲ. ಹಲವಾರು ಪ್ರೊಗ್ರಾಮ್‌ಗಳು ಸಮರ್ಪಕವಾಗಿ ಕೆಲಸ ಮಾಡದೆ "
+#~ "ಇರಬಹುದು, ಹಾಗು ಇದರಲ್ಲಿ ನಿರ್ವಹಿಸಲಾದ ಕಾರ್ಯಗಳಿಂದ ನಿಮ್ಮ ಕಾರ್ಯವ್ಯವಸ್ಥೆಗೆ ಸರಿಪಡಿಸಲಾಗದೆ "
+#~ "ಇರುವಂತಹ ತೊಂದರೆಯು ಉಂಟಾಗಬಹುದು."
+
+#~ msgid "%d hour"
+#~ msgid_plural "%d hours"
+#~ msgstr[0] "%d ಗಂಟೆ"
+#~ msgstr[1] "%d ಗಂಟೆಗಳು"
+
+#~ msgid "%d minute"
+#~ msgid_plural "%d minutes"
+#~ msgstr[0] "%d ನಿಮಿಷ"
+#~ msgstr[1] "%d ನಿಮಿಷಗಳು"
+
+#~ msgid "%d second"
+#~ msgid_plural "%d seconds"
+#~ msgstr[0] "%d ಸೆಕೆಂಡ್"
+#~ msgstr[1] "%d ಸೆಕೆಂಡುಗಳು"
+
+#~ msgid "%s %s %s"
+#~ msgstr "%s %s %s"
+
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+#~ msgid "%s"
+#~ msgstr "%s"
+
+#~ msgid "0 seconds"
+#~ msgstr "0 ಸೆಕೆಂಡುಗಳು"
+
+#~ msgid "Automatic logout in %s"
+#~ msgstr "%s ನಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತ ನಿರ್ಗಮನ"
+
+#~ msgid ""
+#~ "This session is configured to automatically log out after a period of "
+#~ "inactivity."
+#~ msgstr ""
+#~ "ಒಂದು ನಿಶ್ಚಿತ ಸಮಯದವರೆಗೆ ಜಡವಾಗಿದ್ದಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರ್ಗಮಿಸುವಂತೆ ಈ "
+#~ "ಅಧಿವೇಶನವನ್ನು ಸಂರಚಿಸಲಾಗಿರುತ್ತದೆ."
+
+#~ msgid "Do not show me this again"
+#~ msgstr "ಇದನ್ನು ನನಗೆ ಪುನಃ ತೋರಿಸಬೇಡ"
+
+#~ msgid "Session %d"
+#~ msgstr "ಅಧಿವೇಶನ %d"
+
+#~ msgid ""
+#~ "Session names are not allowed\n"
+#~ "to start with a '.' character"
+#~ msgstr ""
+#~ "ಅಧಿವೇಶನದ ಹೆಸರುಗಳು ಒಂದು '.'\n"
+#~ "ಅಕ್ಷರದಿಂದ ಆರಂಭಿಸುವಂತಿಲ್ಲ"
+
+#~ msgid ""
+#~ "Session names are not allowed\n"
+#~ "to contain '/' characters"
+#~ msgstr ""
+#~ "ಅಧಿವೇಶನದ ಹೆಸರುಗಳು '/' ಅಕ್ಷರಗಳನ್ನು\n"
+#~ "ಹೊಂದಿರುವಂತಿಲ್ಲ"
+
+#~ msgid ""
+#~ "A session with this name\n"
+#~ "already exists"
+#~ msgstr ""
+#~ "ಈ ಹೆಸರಿನ ಅಧಿವೇಶನವೊಂದು\n"
+#~ "ಈಗಾಗಲೆ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ"
diff --git a/po/ko.po b/po/ko.po
new file mode 100644
index 0000000..432faa0
--- /dev/null
+++ b/po/ko.po
@@ -0,0 +1,565 @@
+# mate-session Korean message translation
+# This file is distributed under the same license as the mate-session package.
+#
+# Updated by Sung-Hyun Nam <[email protected]>, 2000
+# Updated by Young-Ho Cha <[email protected]>, 2000,2001,2006,2007
+# Changwoo Ryu <[email protected]>, 1998, 2002-2006, 2007, 2008, 2009, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-session&component=general\n"
+"POT-Creation-Date: 2010-03-06 12:06+0900\n"
+"PO-Revision-Date: 2010-03-13 23:58+0900\n"
+"Last-Translator: Changwoo Ryu <[email protected]>\n"
+"Language-Team: MATE Korea <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "명령 선택"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "시작 프로그램 추가"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "시작 프로그램 편집"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "시작 프로그램을 비워 둘 수 없습니다"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "시작 프로그램이 올바르지 않습니다"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "사용하기"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "아이콘"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "프로그램"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "시작 프로그램 기본 설정"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "이름 없음"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "설명 없음"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "이 프로그램의 버전"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "도움말 문서를 표시할 수 없습니다"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "그놈 설정 데몬 래퍼"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "그놈"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "이 세션을 사용하면 그놈에 로그인합니다"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "기본 세션"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "파일 관리자"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "참이면 mate-session이 끝나기 전에 사용자에게 물어봅니다."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"참이면 mate-session이 자동으로 세션을 저장합니다. 그렇지 않으면 로그아웃 대"
+"화상자에 세션 저장옵션이 보여질 것입니다."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "기본 세션에 들어 있는 프로그램의 목록."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"세션의 필수 컴포넌트의 목록. (각 항목의 이름은 \"/desktop/mate/session/"
+"required_components\" 아래에 있는 키의 이름입니다.) 사용자가 시작 프로그램 기"
+"본 설정을 사용하더라도 필수 컴포넌트는 제거하지 못합니다. 필수 컴포넌트를 제"
+"거하면 세션 관리자에서 필요한 컴포넌트를 세션에 다시 추가합니다."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "로그아웃 물어보기"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "패널"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "로그인 스플래시 화면에 사용할 그림"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "필요한 세션 컴포넌트"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "세션 저장"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "시작 화면 보이기"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "세션이 시작하는 화면을 봅니다"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"파일 관리자에 바탕 화면 아이콘이 있어서 이 아이콘으로 저장한 파일을 이용할 "
+"수 있습니다."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "세션이 중지 상태라고 판단할 입력이 없는 시간, 분 단위."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"화면의 위와 아래에 있는 패널에 메뉴, 창 목록, 상태 아이콘, 시계 등이 있습니"
+"다."
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"창 관리자는 창의 제목 표시줄과 창 테두리를 만들고, 창을 옮기고 창 크기를 바꾸"
+"는 데 사용하는 프로그램입니다."
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"$datadir/pixmaps/ 디렉터리에 대한 상대 경로입니다. 하위 디렉토리를 쓸 수도 있"
+"고 그림 파일 이름을 쓸 수도 있습니다. 이 값을 바꾸면 다음에 로그인할 때 적용"
+"됩니다."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "세션에 입력이 없어 중지할 시간"
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "창 관리자"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>실행 중인 프로그램이 있습니다:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"프로그램이 끝나기를 기다립니다. 프로그램을 중단시키면 작업하던 내용을 잃어버"
+"릴 수 있습니다."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "로그인할 때 어떤 프로그램을 시작할 지 고릅니다"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr " 시작 프로그램"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "시작 프로그램 추가(_P):"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "찾아보기..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "명령(_M):"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "설명(_E):"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "옵션"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "시작 프로그램"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "로그아웃할 때 자동으로 실행 중인 프로그램 기억(_A)"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "이름(_N):"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "현재 실행 중인 프로그램 기억(_R)"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "올바른 .desktop 파일이 아닙니다"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "desktop 파일 버전을 ('%s') 인식할 수 없습니다"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "%s 시작"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "명령행에서 문서를 지정할 수 없는 프로그램입니다"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "알 수 없는 실행 옵션: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "문서 URI는 'Type=Link' desktop 항목에 넘길 수 없습니다"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "실행할 수 있는 항목이 없습니다"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "세션 관리자에 연결하지 않습니다"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "설정을 저장할 파일을 지정합니다"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "<파일>"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "세션 관리 ID를 지정합니다"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "<ID>"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "세션 관리 옵션:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "세션 관리 옵션을 표시합니다"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"설정 서버에 문제가 있습니다.\n"
+"(%s 프로그램이 %d번 상태로 끝났습니다)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "'%s' 아이콘이 없습니다"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "모름"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "한 프로그램이 실행 중입니다:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "프로그램이 실행 중입니다:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"프로그램이 끝나기를 기다리는 중입니다. 이 프로그램을 중단하면 작업하던 내용"
+"을 잃어버릴 수도 있습니다."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "그래도 사용자 바꾸기"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "그래도 로그아웃"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "그래도 절전"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "그래도 최대 절전"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "그래도 끄기"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "그래도 다시 시작"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "화면 잠그기"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "취소"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "%d초 뒤에 자동으로 로그아웃합니다."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "%d초 뒤에 자동으로 시스템을 끕니다."
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "\"%s\" 사용자로 로그인했습니다."
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "지금 시스템에서 로그아웃하시겠습니까?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "사용자 바꾸기(_S)"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "로그아웃(_L)"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "지금 시스템을 끄시겠습니까?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "절전(_U)"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "최대 절전(_H)"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "다시 시작(_R)"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "끄기(_S)"
+
+#: ../mate-session/gsm-manager.c:1220 ../mate-session/gsm-manager.c:1912
+msgid "Not responding"
+msgstr "응답 없음"
+
+#: ../mate-session/gsm-xsmp-client.c:1214
+msgid "This program is blocking log out."
+msgstr "이 프로그램이 로그아웃을 막고 있습니다."
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "지금 세션을 끝내는 중이므로 새 클라이언트 연결을 거부합니다.\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ICE 리스닝 소켓을 만들 수 없습니다: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "로그인 세션을 시작할 수 없습니다 (X 서버에 연결할 수 없습니다)"
+
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr "기본 자동 시작 디렉토리 대신 사용합니다"
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr "기본 세션을 찾아보는 데 사용할 MateConf 키"
+
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr "디버깅 코드를 사용합니다"
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr "사용자가 지정한 프로그램을 읽어들이지 않습니다"
+
+#: ../mate-session/main.c:457
+msgid " - the MATE session manager"
+msgstr "- 그놈 세션 관리자"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- 그놈 스플래시 화면"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "그놈 스플래시 화면"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "로그아웃"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "로그아웃하면서 걸림돌이 있어도 무시합니다"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "로그아웃 대화 상자를 표시합니다"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "끄기 대화 상자를 표시합니다"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "오류를 보이기 위해 대화 상자를 사용합니다"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "현재 세션의 이름을 지정합니다"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "<이름>"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "세션을 끝냅니다"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "확인을 받지 않습니다"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "세션 관리자에 연결할 수 없습니다"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "함께 사용할 수 없는 옵션을 같이 사용했습니다"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "현재 세션에서 접근성 기술 지원이 요청되었지만, 접근성 레지스트리를 찾을 "
+#~ "수 없습니다. AT-SPI 꾸러미가 설치되었는지 확인하기 바랍니다. 접근성 기술 "
+#~ "지원이 빠진 채로 세션이 시작됩니다."
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "AT SPI 레지스트리 래퍼"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "시작 프로그램 이름을 비워 둘 수 없습니다"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "세션 기본 설정"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "로그아웃 대화 창에서 선택할 옵션"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "로그아웃 대화상자에서 선택할 옵션입니다. 올바른 값들로는, 로그아웃은 "
+#~ "\"logout\", 시스템 끄기는 \"shutdown\", 시스템 다시 시작은 \"restart\"입니"
+#~ "다."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "세션 설정"
+
+#~ msgid "Sessions"
+#~ msgstr "세션"
diff --git a/po/ku.po b/po/ku.po
new file mode 100644
index 0000000..b38764c
--- /dev/null
+++ b/po/ku.po
@@ -0,0 +1,878 @@
+# translation of mate-session.HEAD.po to Kurdish
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER.
+# Erdal Ronahi <[email protected], [email protected]>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-11-12 02:40+0100\n"
+"PO-Revision-Date: 2008-11-12 02:45+0100\n"
+"Last-Translator: Erdal Ronahi <[email protected]>\n"
+"Language-Team: Kurdish <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit"
+
+#: ../capplet/gsm-app-dialog.c:126
+msgid "Select Command"
+msgstr "Fermanê Hilbijêre"
+
+#: ../capplet/gsm-app-dialog.c:187
+msgid "Add Startup Program"
+msgstr "Bernameya destpêkê zêde bike"
+
+#: ../capplet/gsm-app-dialog.c:191
+msgid "Edit Startup Program"
+msgstr "Bernameya destpêkê biguherîne"
+
+#: ../capplet/gsm-properties-dialog.c:132
+msgid "No description"
+msgstr ""
+
+#: ../capplet/gsm-properties-dialog.c:977
+msgid "The name of the startup program cannot be empty"
+msgstr "Navê bernameya destpêke vala nabe"
+
+#: ../capplet/gsm-properties-dialog.c:981
+msgid "The startup command cannot be empty"
+msgstr "Fermana destpêke vala nabe"
+
+#: ../capplet/gsm-properties-dialog.c:987
+msgid "The startup command is not valid"
+msgstr "Fermana destpêke nederbasdar e"
+
+#: ../capplet/gsm-properties-dialog.c:1291
+msgid "Enabled"
+msgstr "Çalak"
+
+#: ../capplet/gsm-properties-dialog.c:1304
+msgid "Icon"
+msgstr "Îkon"
+
+#: ../capplet/gsm-properties-dialog.c:1315
+msgid "Program"
+msgstr "Bername"
+
+#: ../capplet/gsm-properties-dialog.c:1465
+#: ../data/session-properties.glade.h:6
+msgid "Sessions Preferences"
+msgstr ""
+
+#: ../capplet/main.c:37 ../mate-session/main.c:508
+msgid "Version of this application"
+msgstr ""
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr ""
+
+#: ../compat/mate-keyring-daemon-wrapper.desktop.in.in.in.h:1
+msgid "MATE Keyring Daemon Wrapper"
+msgstr ""
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr ""
+
+#: ../data/mate.desktop.in.h:1
+#, fuzzy
+msgid "MATE"
+msgstr "NAV"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:1
+#, fuzzy
+msgid "Default session"
+msgstr "Danişînê bikûje"
+
+#: ../data/mate-session.schemas.in.h:2
+#, fuzzy
+msgid "File Manager"
+msgstr "Menajerê Paceyan"
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Heke hatibe hilbijartin, berî girtina danişînê mate-session daxwaza "
+"bikarhêner dipirse."
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Heke hilbijartî be, mate-session danişînê bi xweber digire. Heke ne "
+"hilbijartî be, di qutiya peywendiyê de vebijêrka tomarkirinê heye."
+
+#: ../data/mate-session.schemas.in.h:5
+#, fuzzy
+msgid "List of applications that are part of the default session."
+msgstr "Dema sepandinên di danişînê de destpêkir."
+
+#: ../data/mate-session.schemas.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required-components\".) The "
+"Session Preferences will not normally allow users to remove a required "
+"component from the session, and the session manager will automatically add "
+"the required components back to the session if they do get removed."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Logout prompt"
+msgstr "Daxwaza derketinê"
+
+#: ../data/mate-session.schemas.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Wêneyê jji bo dîmendera destpêkê hatiye hilbijartin"
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Required session components"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:11
+msgid "Save sessions"
+msgstr "Danişînan tomar bike"
+
+#: ../data/mate-session.schemas.in.h:12
+msgid "Selected option in the log out dialog"
+msgstr "Vebijêrka hilbijartî ya paceya derketinê"
+
+#: ../data/mate-session.schemas.in.h:13
+msgid "Show the splash screen"
+msgstr "Dîmendera vebûnê nîşan bide"
+
+#: ../data/mate-session.schemas.in.h:14
+msgid "Show the splash screen when the session starts up"
+msgstr "Di vekirina danişînê de dîmendera vebûnê nîşan bide"
+
+#: ../data/mate-session.schemas.in.h:15
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Ev li gor peldanka $datadir/pixmaps/ riyek e. Bin peldank û navên wêneyan "
+"nirxên derbasdar in. Guhertina van nirxan dê danişîna têketinê ya pêş de jî "
+"binbandor bike."
+
+#: ../data/mate-session.schemas.in.h:19
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+"Ev, bijarteka ku di paceya derketinê de hatiye hilbijartin e, derketina ji "
+"nirxên derbasdar \"logout\", girtina pergalê \"shutdown\" û nûdestpêkirina "
+"pergalê jî \"restart\" e."
+
+#: ../data/mate-session.schemas.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Menajerê Paceyan"
+
+#: ../data/gsm-inhibit-dialog.glade.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr ""
+
+#: ../data/gsm-inhibit-dialog.glade.h:2
+#: ../mate-session/gsm-inhibit-dialog.c:632
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Danişînên xwe veava bike."
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Danişîn"
+
+#: ../data/session-properties.glade.h:1
+msgid "Additional startup _programs:"
+msgstr "_Bernameyên pêvek ên destpêkê:"
+
+#: ../data/session-properties.glade.h:2
+msgid "Browse..."
+msgstr "Gerîn..."
+
+#: ../data/session-properties.glade.h:3
+msgid "Co_mmand:"
+msgstr "_Ferman:"
+
+#: ../data/session-properties.glade.h:4
+msgid "Comm_ent:"
+msgstr "Şî_rove:"
+
+#: ../data/session-properties.glade.h:5
+msgid "Options"
+msgstr "Vebijêrk"
+
+#: ../data/session-properties.glade.h:7
+msgid "Startup Programs"
+msgstr "Bernameyên destpêkê"
+
+#: ../data/session-properties.glade.h:8
+msgid "_Automatically remember running applications when logging out"
+msgstr ""
+
+#: ../data/session-properties.glade.h:9
+msgid "_Name:"
+msgstr "_Nav:"
+
+#: ../data/session-properties.glade.h:10
+msgid "_Remember Currently Running Application"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:962
+#, c-format
+msgid "Starting %s"
+msgstr "Dest bi %s dike"
+
+#: ../egg/eggdesktopfile.c:1096
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1164
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1372
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1391
+#, c-format
+msgid "Not a launchable item"
+msgstr ""
+
+#: ../egg/eggsmclient-libmateui.c:102
+#, fuzzy
+msgid "Session management"
+msgstr "Navê Danişînê"
+
+#: ../egg/eggsmclient-libmateui.c:136
+msgid "MATE GUI Library + EggSMClient"
+msgstr ""
+
+#: ../egg/eggsmclient.c:185
+#, fuzzy
+msgid "Disable connection to session manager"
+msgstr "Pêwendî bi rêveberê danişînê re pêk nehat"
+
+#: ../egg/eggsmclient.c:188
+msgid "Specify file containing saved configuration"
+msgstr ""
+
+#: ../egg/eggsmclient.c:188
+msgid "FILE"
+msgstr "PEL"
+
+#: ../egg/eggsmclient.c:191
+#, fuzzy
+msgid "Specify session management ID"
+msgstr "Navê danişîna ku tê barkirin eşkere bike"
+
+#: ../egg/eggsmclient.c:191
+msgid "ID"
+msgstr ""
+
+#: ../egg/eggsmclient.c:241
+#, fuzzy
+msgid "Session Management Options"
+msgstr "Vebijêrkên Danişînê"
+
+#: ../egg/eggsmclient.c:242
+#, fuzzy
+msgid "Show Session Management options"
+msgstr "Vebijêrkên Danişînê"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:256
+#, c-format
+msgid "Icon '%s' not found"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:580
+msgid "Unknown"
+msgstr "Nenas"
+
+#: ../mate-session/gsm-inhibit-dialog.c:631
+msgid "A program is still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:635
+msgid "Some programs are still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:636
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:864
+#, fuzzy
+msgid "Switch User Anyway"
+msgstr "_Bikarhêner biguherîne"
+
+#: ../mate-session/gsm-inhibit-dialog.c:867
+#, fuzzy
+msgid "Logout Anyway"
+msgstr "Bilî vî Têkeve"
+
+#: ../mate-session/gsm-inhibit-dialog.c:870
+#, fuzzy
+msgid "Suspend Anyway"
+msgstr "_Xew (suspend)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:873
+#, fuzzy
+msgid "Hibernate Anyway"
+msgstr "Xewa _kûr (hibernate)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:876
+#, fuzzy
+msgid "Shutdown Anyway"
+msgstr "Bilî vî Têkeve"
+
+#: ../mate-session/gsm-inhibit-dialog.c:879
+#, fuzzy
+msgid "Reboot Anyway"
+msgstr "Bilî vî Têkeve"
+
+#: ../mate-session/gsm-inhibit-dialog.c:887
+#, fuzzy
+msgid "Lock Screen"
+msgstr "Ekranê _qifil bike"
+
+#: ../mate-session/gsm-inhibit-dialog.c:890
+msgid "Cancel"
+msgstr "Betalkirin"
+
+#: ../mate-session/gsm-logout-dialog.c:283
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d second."
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d seconds."
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:295
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d second."
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d seconds."
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:377
+msgid "Log out of this system now?"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:383
+msgid "_Switch User"
+msgstr "_Bikarhêner biguherîne"
+
+#: ../mate-session/gsm-logout-dialog.c:392
+msgid "_Log Out"
+msgstr "_Derkeve"
+
+#: ../mate-session/gsm-logout-dialog.c:398
+msgid "Shut down this system now?"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:404
+#, fuzzy
+msgid "S_uspend"
+msgstr "_Xew (suspend)"
+
+#: ../mate-session/gsm-logout-dialog.c:410
+msgid "_Hibernate"
+msgstr "Xewa _kûr (hibernate)"
+
+#: ../mate-session/gsm-logout-dialog.c:416
+msgid "_Restart"
+msgstr "_Nûdestpêkirin"
+
+#: ../mate-session/gsm-logout-dialog.c:426
+msgid "_Shut Down"
+msgstr "Bi _tevahî bigire"
+
+#: ../mate-session/gsm-manager.c:924 ../mate-session/gsm-manager.c:1541
+msgid "Not responding"
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-client.c:988
+msgid "This program is blocking log out."
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr ""
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:139
+#, c-format
+msgid "Unable to start login session (and unable connect to the X server)"
+msgstr ""
+
+#: ../mate-session/main.c:504
+msgid "Override standard autostart directories"
+msgstr ""
+
+#: ../mate-session/main.c:505
+msgid "MateConf key used to lookup default session"
+msgstr ""
+
+#: ../mate-session/main.c:506
+msgid "Enable debugging code"
+msgstr ""
+
+#: ../mate-session/main.c:507
+msgid "Do not load user-specified applications"
+msgstr ""
+
+#: ../mate-session/main.c:528
+#, fuzzy
+msgid " - the MATE session manager"
+msgstr "- Danişîna MATE bi rêve bibe"
+
+#: ../splash/mate-session-splash.c:291
+#, fuzzy
+msgid "- MATE Splash Screen"
+msgstr "Dîmendera vebûnê nîşan bide"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr ""
+
+#: ../tools/mate-session-save.c:65
+msgid "Set the current session name"
+msgstr "Navê danişîna heyî bixebitîne"
+
+#: ../tools/mate-session-save.c:65
+msgid "NAME"
+msgstr "NAV"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out"
+msgstr "Derketin"
+
+#: ../tools/mate-session-save.c:67
+msgid "Log out, ignoring any existing inhibitors"
+msgstr ""
+
+#: ../tools/mate-session-save.c:68
+msgid "Show logout dialog"
+msgstr ""
+
+#: ../tools/mate-session-save.c:69
+msgid "Show shutdown dialog"
+msgstr ""
+
+#: ../tools/mate-session-save.c:70
+msgid "Kill session"
+msgstr "Danişînê bikûje"
+
+#: ../tools/mate-session-save.c:71
+msgid "Use dialog boxes for errors"
+msgstr "Qutiyên têkiliyê ji bo çewtiyan bi kar bîne"
+
+#: ../tools/mate-session-save.c:72
+msgid "Do not require confirmation"
+msgstr "Ne hewceyî misogerkirinê ye"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Pêwendî bi rêveberê danişînê re pêk nehat"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr ""
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "Destûrê bide peywendiyên TCP"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "Bi hinceta ewlekariyê mate-session, li platformên _IceTcpTransNoListen"
+#~ "() (Pergalên XFree86) portên TCP ên guhdar nake. Ev vebijêrk destûrê "
+#~ "dide peywendiyên dûr (yên nehatine bi tenêkirin). Ji bo çalak bibe divê "
+#~ "mate-session ji nû ve were destpêkirin."
+
+#~ msgid "_Order:"
+#~ msgstr "_Rêz:"
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "Di derketinê de çi bi sepanê hat."
+
+#~ msgid "_Style:"
+#~ msgstr "_Teşe:"
+
+#~ msgid "Order"
+#~ msgstr "Rêz"
+
+#~ msgid "Style"
+#~ msgstr "Teşe"
+
+#~ msgid "State"
+#~ msgstr "Rewş"
+
+#~ msgid "Inactive"
+#~ msgstr "Neçalak"
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "Li hêviya destpêkirinê ye an jî qediyaye."
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "Destpêkiriye lê hê rapora rewşê nedaye"
+
+#~ msgid "Running"
+#~ msgstr "Dixebite"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "Endameke ji rêzê"
+
+#~ msgid "Saving"
+#~ msgstr "Tê tomarkirin"
+
+#~ msgid "Saving session details."
+#~ msgstr "Hûragahiyên danişînê tên tomarkirin."
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "Rewş, di dema xwe de nehate raporkirin."
+
+#~ msgid "Normal"
+#~ msgstr "Asayî"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "Bandora derketinê lê nabe lê dibe ku were kuştin"
+
+#~ msgid "Restart"
+#~ msgstr "Nûdestpêkirin"
+
+#~ msgid "Never allowed to die."
+#~ msgstr "Teqez namire."
+
+#~ msgid "Trash"
+#~ msgstr "Çop"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "Di derketinê de dibe ku were avêtin an kuştin"
+
+#~ msgid "Settings"
+#~ msgstr "Mîheng"
+
+#~ msgid "Always started on every login."
+#~ msgstr "Her dem di her têketinê de tê destpêkirin."
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "Hin tişt, mînak dirb, deng an jî mîhengên rûerdê dibe ku rast nexebitin."
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Peyama çewtiyê ya dawî ev bû:\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Dîsa jî MATE di têketina piştre dê hewl bide ku Servîsa Mîhengan ji nû "
+#~ "ve veke."
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "Servîsa Mîhengan gelek zêde ji nû ve hate vekirin."
+
+#~ msgid "PROGRAM..."
+#~ msgstr "BERNAME..."
+
+#~ msgid "Error: could not connect to the session manager\n"
+#~ msgstr "Çewtî: pêwendî bi rêveberê danişînê re pêk nehat\n"
+
+#~ msgid "Couldn't find program %s in session\n"
+#~ msgstr "Di danişînê de bernameya %s nehat dîtin\n"
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "Tu bi rastî dixwazî derkevî?"
+
+#~ msgid "_Save current setup"
+#~ msgstr "_Mîhengên heyî tomar bike"
+
+#~ msgid "Sh_ut down"
+#~ msgstr "Bi tevahî bi_gire"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "Komputerê ji nû ve bide _dest pê kirin"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "Ji dosiya default.session bi tenê danişînên tomarkirî bixwîne"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr ""
+#~ "Ji bo tomarbûna daxwazkeran maweya rawestînê ji cureyê mîlîçirkan "
+#~ "(0=bêdawî)"
+
+#~ msgid "DELAY"
+#~ msgstr "DERENG"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr ""
+#~ "Ji bo bersivdana daxwazkeran maweya rawestînê ji cureyê mîlîçirkan "
+#~ "(0=bêdawî)"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr ""
+#~ "Ji bo mirina daxwazkeran maweya rawestînê ji cureyê mîlîçirkan (0=bêdawî)"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "Navnîşana înternetê ya %s nehate dîtin.\n"
+#~ "Ev ew ê bibe astengî ji xebitandina MATE re.\n"
+#~ "Heke tu navnîşana %s li dosyaya /etc/hosts zêde bike\n"
+#~ "belkî tu karibe pirsgirêkê çareser bike."
+
+#~ msgid "Try Again"
+#~ msgstr "Carekî din biceribîne"
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "Ji ber lihevaliqînekê rawestandin serbest hate berdan."
+
+#~ msgid "No response to the %s command."
+#~ msgstr "%s bersiv ji fermanê re nîne."
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "Sepan hêdî ye, hatiye rawestandin an şikandin."
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "Dibe tu li hêviyê bimînî ta ku bersivê bide an jêbibe."
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "Ji ber çewtiyan vekirina ji nû ve hate betalkirin."
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "Girtina danişînê didome."
+
+#~ msgid "- Save the current session"
+#~ msgstr "- Danişîna heyî tomar bike"
+
+#~ msgid "Save changes to the current session before closing?"
+#~ msgstr "Guhertinan di danişînê de tomar bike û bigire?"
+
+#~ msgid "_Close without Saving"
+#~ msgstr "_Bigire lê Tomar neke"
+
+#~ msgid "Current Session"
+#~ msgstr "Rûniştina aniha"
+
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "Bixweber guhertinan di danişînê de tomar bike"
+
+#~ msgid "Save the current session"
+#~ msgstr "Danişîna heyî tomar bike"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "Danişîna te hat tomarkirin."
+
+#~ msgid "could not connect to the session manager\n"
+#~ msgstr "pêwendî bi rêveberê danişînê re pêk nehat\n"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "Nepejrînên hilbijartî ji danişîna min rake."
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "Guhertinan li gor danişîna min pêkbîne."
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "Lîsteya programên di danişînê de."
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "Bernameyên ku niha di_meşin:"
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "Gerinendeyê paceyan Sawfish"
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "Gerinendeyê paceyan Marco"
+
+#~ msgid "Caja"
+#~ msgstr "Caja"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "Mîhengên sermasê"
+
+#~ msgid "New Startup Program"
+#~ msgstr "Bernameya Destpêkê ya Nû"
+
+#~ msgid "Exit"
+#~ msgstr "Derkeve"
+
+#~ msgid "Close your session and return to the login screen."
+#~ msgstr "Danişînê bigire û vegere dîmendera têketinê."
+
+#~ msgid ""
+#~ "Leave your session open and password protected, but let other users log "
+#~ "in as well."
+#~ msgstr ""
+#~ "Danişînê vekirî û bi parastina nasnavê bihêle, lê destûrê bide ku "
+#~ "bikarhênerên din jî bikaribin danişînê vekin."
+
+#~ msgid "Launch the screensaver and password protect your session."
+#~ msgstr "Dîmenderparêzê bixebitîne û danişînê bi nasnavê biparêze."
+
+#~ msgid "Restart the computer."
+#~ msgstr "Nûdestpêka komputerê çêke."
+
+#~ msgid ""
+#~ "Power saving mode. Depending on your computer, you can wake the computer "
+#~ "up by pressing a key, the power button, or opening the laptop lid."
+#~ msgstr ""
+#~ "Mod a parastina hêzê. Bi pêwendîdarî komputerê, bi pêlêkirina bişkojkekê, "
+#~ "bi bişkojka hêzê an jî vekirina berga komputera destan tu dikarî hişyar "
+#~ "bikî."
+
+#~ msgid ""
+#~ "While hibernating, your computer won't need any power. When started "
+#~ "again, all open applications will be restored."
+#~ msgstr ""
+#~ "Di mod a razanê de dê pêdiviya hêzê bi komputera te çênebe. Dema ji nû ve "
+#~ "hate destpêkirin, dê hemû sepanên vekirî paşde bên barkirin."
+
+#~ msgid "Completely turn off the computer."
+#~ msgstr "Komputerê bi tevahî bigire."
+
+#~ msgid "The session name cannot be empty"
+#~ msgstr "Navê danişînê nabe ku vala were hiştin"
+
+#~ msgid "The session name already exists"
+#~ msgstr "Ev navê danişînê jixwe heye"
+
+#~ msgid "Add a new session"
+#~ msgstr "Danişîneke nû lê zêde bike"
+
+#~ msgid "Edit session name"
+#~ msgstr "Navê danişînê biguherîne"
+
+#~ msgid "Disable"
+#~ msgstr "Neçalak bike"
+
+#~ msgid "_Edit"
+#~ msgstr "_Biguherîne"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "Hin guhartin nehatine tomarkirin.\n"
+#~ "Dîsa jî tu dixwazî derkevî?"
+
+#~ msgid "Show splash screen on _login"
+#~ msgstr "Di têketinê de dîmena_vebûnê nîşan bide"
+
+#~ msgid "As_k on logout"
+#~ msgstr "Di derketinê de bi_pirse"
+
+#~ msgid "_Sessions:"
+#~ msgstr "_Danişîn:"
+
+#~ msgid "Update Notifier"
+#~ msgstr "Agahdarkerê rojanekirinê"
+
+#~ msgid "_Startup Command:"
+#~ msgstr "_Fermana destpêkê:"
+
+#~ msgid "There was an unknown activation error."
+#~ msgstr "Çewtiyeke çalakirinê ya nenas pêk hat."
+
+#~ msgid "Set the current session"
+#~ msgstr "Danişîna derbasdar bimîhengîne"
+
+#~ msgid "Initialize session settings"
+#~ msgstr "Dest bi mîhenga danişînê bike."
diff --git a/po/lt.po b/po/lt.po
new file mode 100644
index 0000000..2422e79
--- /dev/null
+++ b/po/lt.po
@@ -0,0 +1,558 @@
+# translation of mate-session.HEAD.po to Lithuanian
+# Lithuanian translation of mate-session
+# Copyright (C) 2000-2006, 2007, 2008 Free Software Foundation, Inc.
+#
+#
+# Gediminas Paulauskas <[email protected]>, 2000-2003.
+# Žygimantas Beručka <[email protected]>, 2003-2007.
+# Justina Klingaitė <[email protected]>, 2005.
+# Gintautas Miliauskas <[email protected]>, 2006, 2007, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-09-15 02:08+0300\n"
+"PO-Revision-Date: 2009-09-15 02:08+0300\n"
+"Last-Translator: Gintautas Miliauskas <[email protected]>\n"
+"Language-Team: Lithuanian <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%"
+"100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Pasirinkite komandą"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Pridėti paleidimo programą"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Redaguoti paleidžiamą programą"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Paleidimo komanda negali būti tuščia"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Paleidimo komanda netinkama"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Įjungta"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Piktograma"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Programa"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Paleidžiamų programų nustatymai"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Be pavadinimo"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Nėra aprašymo"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "Programos versija"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Nepavyko parodyti žinyno dokumento"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "MATE parametrų tarnybos pagalbininkas"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Šis seansas prijungia jus prie MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Numatytasis seansas"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Failų valdyklė"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "Jeigu įjungta, mate-session paklaus naudotojo prieš baigiant seansą."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Jeigu įjungta, mate-session išsaugos seansus automatiškai. Priešingu "
+"atveju, atsijungimo dialogas turės parinktį, skirtą išsaugoti seansą."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Programos, kurios yra numatytojo seanso dalis."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Komponentų, kurie yra būtini seanse, sąrašas. (Kiekvienas elementas nurodo "
+"raktą, esantį „/desktop/mate/session/required-components“.) Paleidžiamų "
+"programų nustatymų įrankis paprastai neleidžia naudotojams pašalinti būtiną "
+"komponentą iš seanso, o seansų valdyklė automatiškai vėl grąžins būtinus "
+"komponentus į seansą prisijungimo metu, jei jie kaip nors bus pašalinti."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Atsijungiant paklausti patvirtinimo"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Skydelis"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Įkelties paveikslėlis, naudotinas prisistatymo langui"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "Reikalingi seanso komponentai"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "Išsaugoti seansus"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "Rodyti įkelties paveikslėlį"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "Seanso paleidimo metu rodyti įkelties paveiksliuką"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Failų valdyklė suteikia darbastalio piktogramas ir leidžia valdyti įrašytus "
+"failus."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "Minučių skaičius, kurioms praėjus seansas laikomas neaktyvus."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Skydelis suteikia sritį ekrano apačioje ar viršuje, kurioje yra meniu, langų "
+"sąrašas, būsenos piktogramos, laikrodis ir t.t."
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Langų valdyklė yra programa, paišanti langų antraštes ir kraštus. Ji taip "
+"pat leidžia perkelti langus ir keisti jų dydį."
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Ši reikšmė – tai santykinis kelias, pagrįstas $datadir/pixmaps/ aplanku. "
+"Tinkamos reikšmės yra poaplankiai ir paveikslėlių pavadinimai. Šios reikšmės "
+"pakeitimai įsigalios kito seanso prisijungimo metu."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "Laikas, po kurio seansas laikomas neaktyviu"
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Langų valdyklė"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Kai kurios programos vis dar veikia:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"Laukiama, kol programa baigs darbą. Jei programa bus nutraukta, galite "
+"prarasti informacijos."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Pasirinkite, kokias programas paleisti jums prisijungiant"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Paleidžiamos programos"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Papildomos paleidžiamos _programos:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "Naršyti..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Komanda:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Ko_mentaras:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Parinktys"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Pradžioje paleidžiamos programos"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Atsijungiant, automatiškai atsiminti paleistas programas"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Pavadinimas:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Atsiminti dabar veikiančias programas"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Failas nėra taisyklingas .desktop failas"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Neatpažinta darbastalio failo versija „%s“"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Paleidžiama %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Programa nepriima dokumentų komandinėje eilutėje"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Neatpažintas paleidimo parametras: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Negalima perduoti dokumentų URI „Type=Link“ darbastalio elementui"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Nepaleidžiamas elementas"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Išjungti prisijungimą prie seansų valdyklės"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Nurodyti failą, kuriame įrašyta konfigūracija"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FAILAS"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Nurodyti seanso valdymo ID"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Seanso valdymo parinktys:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Rodyti seanso valdymo parinktis"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Konfigūracijos serveryje įvyko klaida.\n"
+"(%s baigė darbą, grąžino kodą %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Piktograma „%s“ nerasta"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Nežinoma"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Programa vis dar veikia:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Kai kurios programos vis dar veikia:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Laukiama, kol programos baigs darbą. Šias programas nutraukus gali būti "
+"prarasta informacija."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Keisti naudotoją bet kokiu atveu"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Atsijungti bet kokiu atveju"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Užmigdyti bet kokiu atveju"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Hibernuoti bet kokiu atveju"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "Išjungti bet kokiu atveju"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Įkelti iš naujo bet kokiu atveju"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Užrakinti ekraną"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Atsisakyti"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Būsite automatiškai atjungti po %d sekundės."
+msgstr[1] "Būsite automatiškai atjungti po %d sekundžių."
+msgstr[2] "Būsite automatiškai atjungti po %d sekundžių."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Sistema automatiškai išsijungs po %d sekundės."
+msgstr[1] "Sistema automatiškai išsijungs po %d sekundžių."
+msgstr[2] "Sistema automatiškai išsijungs po %d sekundžių."
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Esate prisijungę kaip „%s“."
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "Atsijungti dabar?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "_Keisti naudotoją"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "_Atsijungti"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "Išjungti sistemą dabar?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "_Užmigdyti"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "_Hibernuoti"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "Įkelti iš _naujo"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "Išj_ungti"
+
+#: ../mate-session/gsm-manager.c:1208 ../mate-session/gsm-manager.c:1900
+msgid "Not responding"
+msgstr "Neatsako"
+
+#: ../mate-session/gsm-xsmp-client.c:1206
+msgid "This program is blocking log out."
+msgstr "Ši programa blokuoja atsijungimą"
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "Atsisakoma naujo kliento ryšio, kadangi seansas dabar išjungiamas\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Nepavyko sukurti ICE klausymo lizdo: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Nepavyko paleisti prisijungimo seanso (taip pat nepavyko prisijungti prie X "
+"serverio)"
+
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr "Nepaisyti standartinių automatinės paleisties aplankų"
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr "MateConf raktas, kuriame ieškoma numatytojo seanso"
+
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr "Įjungti derinimo kodą"
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr "Neįkelti naudotojo nurodytų programų"
+
+#: ../mate-session/main.c:457
+msgid " - the MATE session manager"
+msgstr " – MATE seanso valdyklė"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "– MATE pristatymo langas"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "MATE pristatymo langas"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Atsijungti"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Atsijungti, ignoruojant bet kokius trukdžius"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Rodyti atsijungimo dialogą"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Rodyti išjungimo dialogą"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Naudoti dialogus klaidų rodymui"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Nustatyti esamo seanso pavadinimą"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "PAVADINIMAS"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Nužudyti seansą"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Nereikalauti patvirtinimo"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Nepavyko prisijungti prie seansų valdyklės"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Programa iškviesta naudojant konfliktuojančias parinktis"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "Paleidimo komandos pavadinimas negali būti tuščias"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "Prašyta pagalbinių technologijų palaikymo šiam seansui, tačiau pagalbinių "
+#~ "technologijų registras nerastas. Įsitikinkite, kad AT-SPI paketas "
+#~ "įdiegtas. Seansas paleistas be pagalbinių technologijų palaikymo."
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "AT SPI registro sąsaja"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "Seanso nustatymai"
diff --git a/po/lv.po b/po/lv.po
new file mode 100644
index 0000000..c2eac92
--- /dev/null
+++ b/po/lv.po
@@ -0,0 +1,564 @@
+# translation of lv.po to Latvian
+# Latvian translation for Mate Session.
+# Copyright © 2006 Mate i18n Project for Latvian.
+#
+# P�eris Krij�is <[email protected]>, 2000.
+# Artis Trops <[email protected]>, 2000.
+# Raivis Dejus <[email protected]>, 2006, 2009.
+# Rūdolfs Mazurs <[email protected]>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: lv\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug."
+"cgi?product=mate-session&component=general\n"
+"POT-Creation-Date: 2010-05-26 17:45+0000\n"
+"PO-Revision-Date: 2010-06-13 11:52+0300\n"
+"Last-Translator: Rūdolfs Mazurs <[email protected]>\n"
+"Language-Team: Latviešu <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
+"2);\n"
+"X-Launchpad-Export-Date: 2009-02-19 16:24+0000\n"
+"X-Generator: Lokalize 1.0\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Izvēlieties komandu"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Pievienot starta programmu"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Rediģēt starta programmu"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Starta komanda nevar būt tukša"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Starta komanda nav derīga"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Aktivizēts"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Ikona"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Programma"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Starta programmu iestatījumi"
+
+#: ../capplet/gsp-app.c:269
+#| msgid "_Name:"
+msgid "No name"
+msgstr "Nav nosaukuma"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Nav apraksta"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Lietotnes versija"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Nevar parādīt palīdzības dokumentu"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "MATE iestatījumu dēmona palīgs"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Šī sesija piesaka jūs MATE videi"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Noklusētā sesija"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Failu pārvaldnieks"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Ja aktivizēts, mate-session pārvaicās lietotājam, pirms sesijas beigšanas."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Ja aktivizēts, mate-session saglabās sesiju automātiski. Citā gadījumā, "
+"atteikšanās dialogā būs opcija saglabāt sesiju."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Noklusētās sesijas programmu saraksts."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Saraksts ar komponentēm, kuras ir šīs sesijas nepieciešama daļā. (Katrs "
+"elements "
+"izveido atslēgu zem \"/desktop/mate/session/required_components\"). Starta"
+"lietotņu izvēles rīks parasti neļauj lietotājam no sesijas izņemt "
+"nepieciešamu "
+"komponenti, un sesijas pārvaldnieks pieteikšanās laikā automātiski pieliks "
+"nepieciešamo komponenti atpakaļ, ja tā tomēr tiks izņemta."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Atteikšanās uzvedne"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panelis"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Vēlamais attēls, ko lietot pieteikšanās ekrānam"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "Nepieciešamie sesijas komponenti"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "Saglabāt sesijas"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "Rādīt uzplaiksnījuma ekrānu"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "Rādīt uzplaiksnījuma ekrānu, kad palaižas sesija"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Failu pārlūks nodrošina darbvirsmas ikonas un ļauj jums mijiedarboties ar "
+"saglabātajiem failiem."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "Bezdarbības minūšu skaits pirms sesija tiek uzskatīta kā neaktīva."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Panelis nodrošina joslu ekrāna augšpusē vai apakšpusē uz kuras ir pieejamas "
+"izvēlnes, logu saraksts, statusa ikonas, pulkstenis, u.c."
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Logu pārvaldnieks ir programma, kas zīmē logu virsrakstus un robežas ap "
+"tiem, kā arī ļauj jums pārvietot logus un mainīt to izmērus."
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Šī ir relatīva ceļa vērtība, kas balstās uz $datadir/pixmaps/ mapi. "
+"Apakšmapes un attēlu nosaukumi ir korektas vērtības. Šīs vērtības "
+"izmaiņas būs redzamas nākamo reizi piesakoties."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "Laiks pirms sesija tiek uzskatīta par neaktīvu"
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Logu pārvaldnieks"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Dažas programmas joprojām darbojas:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"Gaida programmu darbības beigas. Programmu darbības pārtraukšana var novest "
+"pie jūsu datu zaudējuma."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Izvēlieties, kādas programmas jūs vēlaties palaist piesakoties"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Starta lietotnes"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Papildus starta _programmas:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "Pārlūkot..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "Ko_manda:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Kom_entārs:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Opcijas"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Starta programmas"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Automātiski atcerēties palaistās lietotnes, atsakoties"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Nosaukums:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "Atce_rēties šobrīd palaistās lietotnes"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Fails nav derīgs .desktop fails"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Neatpazīta darbvirsmas faila versija '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Palaiž %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Lietotne nepieņem dokumentus no komandrindas"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Neatpazīta palaišanas opcija: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Nevar nodot dokumenta URI darbvirsmas 'Type=Link' ierakstam"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Nepalaižama vienība"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Deaktivizēt savienojumu ar sesijas pārvaldnieku"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Norādiet failu ar saglabāto konfigurāciju"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FAILS"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Norādiet sesijas pārvaldnieka ID"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+#| msgid "Session Management Options"
+msgid "Session management options:"
+msgstr "Sesijas vadības opcijas:"
+
+#: ../egg/eggsmclient.c:253
+#| msgid "Show Session Management options"
+msgid "Show session management options"
+msgstr "Rādīt sesijas vadības opcijas"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Ir problēmas ar konfigurācijas serveri.\n"
+"(%s izgāja ar statusu %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Ikona '%s' netika atrasta"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Nezināms"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Programma joprojām darbojas:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Dažas programmas joprojām darbojas:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Gaida programmu darbības beigas. Programmu pārtraukšana var novest pie jūsu "
+"darba rezultātu zaudēšanas."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Tomēr nomainīt lietotāju"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Tomēr atteikties"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Tomēr iesnaudināt"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Tomēr sastindzināt"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "Tomēr izslēgt"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Tomēr pārstartēt"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Noslēgt ekrānu"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Atcelt"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Jūsu sesija tiks automātiski atteikta pēc %d sekundes."
+msgstr[1] "Jūsu sesija tiks automātiski atteikta pēc %d sekundēm."
+msgstr[2] "Jūsu sesija tiks automātiski atteikta pēc %d sekundēm."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Sistēma tiks automātiski izslēgta pēc %d sekundes."
+msgstr[1] "Sistēma tiks automātiski izslēgta pēc %d sekundēm."
+msgstr[2] "Sistēma tiks automātiski izslēgta pēc %d sekundēm."
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Šobrīd jūs esat pieteicies kā \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "Atteikties no šīs sistēmas tagad?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "_Nomainīt lietotāju"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "_Atteikties"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "Izslēgt datoru tagad?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "_Iesnaudināt"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "S_astindzināt"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "Pā_rstartēt"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "Iz_slēgt"
+
+#: ../mate-session/gsm-manager.c:1220 ../mate-session/gsm-manager.c:1912
+msgid "Not responding"
+msgstr "Neatbild"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking log out."
+msgstr "Programma bloķē atteikšanos."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "Atsaka jauniem klientu savienojumiem, jo sesija tiek izslēgta\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Nevar izveidot ICE saraksta ligzdu: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "Nevar pieteikties sesijai (nevar savienoties ar X serveri)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Aizstāt standarta automātiskā starta mapes"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to lookup default session"
+msgstr "Noklusētās sesijas atrašanai izmantotā MateConf atslēga"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Aktivizēt atkļūdošanas kodu"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Neielādēt lietotāja norādītās lietotnes"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - MATE sesiju pārvaldnieks"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- MATE uzplaiksnījuma ekrāns"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "MATE uzplaiksnījuma ekrāns"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Atteikties"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Atteikties, ignorējot jebkādus šķēršļus"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Rādīt atteikšanās dialogu"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Parādīt izslēgšanas logu"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Kļūdām lietot dialogu logus"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Iestatīt pašreizējās sesijas nosaukumu"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NOSAUKUMS"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Pārtraukt sesiju"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Neprasīt apstiprinājumu"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Nevar savienoties ar sesiju pārvaldnieku"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Programma izsaukta ar konfliktējošām opcijām"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "Starta programmas nosaukums nedrīkst būt tukšs"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "Pieejamības tehnoloģiju atbalsts ir pieprasīts šai sesijai, bet "
+#~ "pieejamības reģistrs nav atrodams. Lūdzu pārliecinieties, ka AT-SPI "
+#~ "pakotne ir uzstādīta. Jūsu sesija tika uzsākta bez pieejamības "
+#~ "tehnoloģiju atbalsta."
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "AT SPI reģistru ietinums"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "Sesijas iestatījumi"
diff --git a/po/mai.po b/po/mai.po
new file mode 100644
index 0000000..9cafd88
--- /dev/null
+++ b/po/mai.po
@@ -0,0 +1,510 @@
+# translation of mate-session.master.po to Maithili
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Sangeeta Kumari <[email protected]>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.master\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-session&component=general\n"
+"POT-Creation-Date: 2009-09-11 10:00+0000\n"
+"PO-Revision-Date: 2009-09-11 20:39+0530\n"
+"Last-Translator: Sangeeta Kumari <[email protected]>\n"
+"Language-Team: Maithili <maithili.sf.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "कमांड चुनू"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "प्रारंभिक प्रोग्राम जोड़ू"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "प्रारंभिक प्रोग्राम संपादित करू"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "प्रारंभिक कमांड रिक्त नहि भ' सकत"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr ""
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "सक्षम"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "चिह्न"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "प्रोग्राम"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr ""
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "कोनो नाम नहि"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr ""
+
+#: ../capplet/main.c:37 ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "एहि अनुप्रयोग क' संस्करण"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "मद्दति दस्ताबेज़ नहि देखाए सकल"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr ""
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "गनोम"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "ई सत्र अहाँक गनोममे लागिन दैछ"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "फाइल प्रबंधक"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "जँ सक्रिय अछि तँ गनोम सत्र बन्न हए सँ पहिले प्रयोक्ताकेँ प्रांप्ट करताह"
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr "जँ सक्षम अछि तँ गनोम सत्र स्वतः सहेजल जएताह, नहि तँ लॉगआउट संवाद सत्र सहेजबाक एकटा विकल्प रखताह."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "लागआउट प्रांप्ट"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "पटल"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "पसंदीदा बिंब जकरा लोगिन स्प्लैश क'लेल प्रयोग कएनाइ अछि"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "सत्र सहेजू"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "स्प्लैश स्क्रीन देखाबू"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "सत्र शुरू हए पर स्प्लेश स्क्रीन देखाबू"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "The number of minutes of inactivity before the session is considered idle."
+msgstr "सत्र क' निष्क्रिय समझल जएबाक पहिने निष्क्रियता क' मिनट क' सँख्या."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"ई $datadir/pixmaps/ निर्देशिका पर आधारित सापेक्षिक पथ अछि उपनिर्देशिका आओर बिंब नाम "
+"मानल मान अछि. एहि मानकेँ बदलनाइ अगिला सत्र लॉगिनकेँ प्रभावित करताह."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "सत्रक निष्क्रिय मानल जाएबाक' पहिने क' समय"
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "विन्डो मैनेजर"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr ""
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr ""
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr ""
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "प्रारंभिक प्रोग्राममे जोड़ू (_p)"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "ब्राउज करू..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "कमांड (_m):"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "टिप्पणी (_e):"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "विकल्प"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "प्रारंभिक प्रोग्राम"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr ""
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "नाम (_N):"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "%s शुरू भ' रहल अछि"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "चलाबैबला मद नहि अछि "
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "सत्र प्रबंधकसँ संपर्क रद करू"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr ""
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "फाइल"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "सत्र प्रबंधन आईडी निर्दिष्ट करू"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr ""
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "सत्र प्रबंधन विकल्प देखाबू"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "'%s' प्रतीक नहि भेटल"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "अज्ञात"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "स्क्रीन पर ताला लगाबू"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "रद करू"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "अहाँ स्वतः %d सकेंडमे लॉग आउट भ' जाएब."
+msgstr[1] "अहाँ स्वतः %d सकेंडमे लॉग आउट भ' जाएब."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "सिस्टम %d सकेंडमे स्वतः बन्न भ' जएताह."
+msgstr[1] "सिस्टम %d सकेंडमे स्वतः बन्न भ' जएताह."
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "आब एहि सिस्टम सँ लॉग आउट करू?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "प्रयोक्ता बदलू (_S)"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "लाग-आउट (_L)"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "आब एहि सिस्टमकेँ बन्न करू?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "स्थगित करू (_S)"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "सुप्तावस्थामे लए जाउ (_H)"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "पुन:आरंभ करू (_R)"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "बन्न करू (_S)"
+
+#: ../mate-session/gsm-manager.c:1158 ../mate-session/gsm-manager.c:1850
+msgid "Not responding"
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-client.c:1206
+msgid "This program is blocking log out."
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr ""
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr ""
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr ""
+
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr "डिबगिंग कोड सक्रिय करू"
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr ""
+
+#: ../mate-session/main.c:457
+msgid " - the MATE session manager"
+msgstr ""
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr ""
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr ""
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "लॉग आउट"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr ""
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr ""
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr ""
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "त्रुटि क' लेल संवाद पेटी क' प्रयोग करू"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "वर्तमान सत्र सेट करू"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "नाम"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "सत्र समाप्त करू"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "संपुष्टि क' जरूरत नहि"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "सत्र प्रबंधकसँ संपर्क स्थापित नहि भ' सकि रहल अछि"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr ""
+
diff --git a/po/mg.po b/po/mg.po
new file mode 100644
index 0000000..fd4c4e5
--- /dev/null
+++ b/po/mg.po
@@ -0,0 +1,487 @@
+# MALAGASY TRANSLATION OF MATE-SESSION.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Thierry Randrianiriana <[email protected]>, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: MATE-SESSION 2.16\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-07-28 09:58+0200\n"
+"PO-Revision-Date: 2006-08-04 22:16+0300\n"
+"Last-Translator: Fano Rajaonarisoa <[email protected]>\n"
+"Language-Team: MALAGASY <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../mate-session/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "Ekeo ny fifandraisana TCP"
+
+#: ../mate-session/mate-session.schemas.in.h:2
+msgid "For security reasons, on platforms which have _IceTcpTransNoListen() (XFree86 systems), mate-session does not listen for connections on TCP ports. This option will allow connections from (authorized) remote hosts. mate-session must be restarted for this to take effect."
+msgstr "Noho ny antony ara-piarovana, dia tsy mihaino fifandraisana amin'ny irika TCP ny mate-session amin'ny plateforme misy _IceTcpTransNoListen() (XFree86 systems). Io safidy io dia ahafahana mifandray amin'ny mpampiantrano lavi-toerana (ekena). Tsy maintsy averina alefa ny mate-session izay vao mihatra izany."
+
+#: ../mate-session/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "Raha toa ka alefa, dia hanontany ny mpampiasa ny mate-session alohan'ny hamaranana session iray."
+
+#: ../mate-session/mate-session.schemas.in.h:4
+msgid "If enabled, mate-session will save the session automatically. Otherwise, the logout dialog will have an option to save the session."
+msgstr "Raha toa ka alefa, dia horaiketin'ny mate-session hoazy ilay session. Raha tsy izany, dia hisy safidy handraiketana ilay session eo amin'ny takila fivoahana."
+
+#: ../mate-session/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "Fanontaniana momba ny fivoahana"
+
+#: ../mate-session/mate-session.schemas.in.h:6
+msgid "Preferred Image to use for login splash screen"
+msgstr "Sary tiana ampiasaina amin'ny takila fanokafan'ny fidirana"
+
+#: ../mate-session/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "Raiketo ny session"
+
+#: ../mate-session/mate-session.schemas.in.h:8
+msgid "Selected option in the log out dialog"
+msgstr "Safidy voafaritra tanatin'ny takilan'ny fivoahana"
+
+#: ../mate-session/mate-session.schemas.in.h:9
+msgid "Show the splash screen"
+msgstr "Asehoy ny takila fanokafana"
+
+#: ../mate-session/mate-session.schemas.in.h:10
+msgid "Show the splash screen when the session starts up"
+msgstr "Maneho ny takila fanokafana rehefa miantomboka ny session "
+
+#: ../mate-session/mate-session.schemas.in.h:11
+msgid "This is a relative path value based off the $datadir/pixmaps/ directory. Sub-directories and image names are valid values. Changing this value will effect the next session login."
+msgstr "Sanda anankina mitoetra lavitra ny lahatahiry $datadir/pixmaps/ io sanda io. Sanda mitombina ny zana-dahatahiry sy ny anaran-tsary. Hihatra amin'ny fidirana amin'ny session manaraka ny fanovana io sanda io."
+
+#: ../mate-session/mate-session.schemas.in.h:12
+msgid "This is the option that will be selected in the logout dialog, valid values are \"logout\" for logging out, \"shutdown\" for halting the system and \"restart\" for restarting the system."
+msgstr "Io ilay safidy hofaritana ao anatin'ny takilan'ny fivoahana. Ireto avy ireo sanda ekena: \"logout\" raha hivoaka, \"shutdown\" raha hanajanona ny rafitra, ary \"restart\" raha hiverina handefa ny rafitra."
+
+#: ../mate-session/gsm-client-editor.c:97
+msgid "_Order:"
+msgstr "_Filaharana:"
+
+#: ../mate-session/gsm-client-editor.c:99
+msgid "The order in which applications are started in the session."
+msgstr "Ny filaharan'ny fandefasana ireo rindranasa anatin'ilay session."
+
+#: ../mate-session/gsm-client-editor.c:106
+msgid "What happens to the application when it exits."
+msgstr "Ny mitranga amin'ilay rindranasa rehefa mijanona ilay izy."
+
+#: ../mate-session/gsm-client-editor.c:109
+msgid "_Style:"
+msgstr "_Endrika:"
+
+#: ../mate-session/gsm-client-list.c:150
+msgid "Order"
+msgstr "Filaharana"
+
+#: ../mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr "Endrika"
+
+#: ../mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr "Toetra"
+
+#: ../mate-session/gsm-client-list.c:165
+msgid "Program"
+msgstr "Rindranasa"
+
+#: ../mate-session/gsm-client-row.c:31
+msgid "Inactive"
+msgstr "Tsy miasa"
+
+#: ../mate-session/gsm-client-row.c:32
+msgid "Waiting to start or already finished."
+msgstr "Miandry fanombohana na efa vita."
+
+#: ../mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr "Miantomboka"
+
+#: ../mate-session/gsm-client-row.c:35
+msgid "Started but has not yet reported state."
+msgstr "Voatomboka fa tsy mbola nitatitra ny toetra."
+
+#: ../mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr "Mandeha"
+
+#: ../mate-session/gsm-client-row.c:38
+msgid "A normal member of the session."
+msgstr "Mpikambana ara-dalàna anatin'ilay session."
+
+#: ../mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr "Mandraikitra"
+
+#: ../mate-session/gsm-client-row.c:41
+msgid "Saving session details."
+msgstr "Mandraikitra ny antsipirian'ilay session."
+
+#: ../mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr "Tsy fantatra"
+
+#: ../mate-session/gsm-client-row.c:44
+msgid "State not reported within timeout."
+msgstr "Tsy voatatitra tanatin'ny fe-potoana ny toetra."
+
+#: ../mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr "Ara-dalàna"
+
+#: ../mate-session/gsm-client-row.c:51
+msgid "Unaffected by logouts but can die."
+msgstr "Tsy voakitiky ny fivoahana saingy mety maty."
+
+#: ../mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr "Avereno alefa"
+
+#: ../mate-session/gsm-client-row.c:54
+msgid "Never allowed to die."
+msgstr "Tsy mahazo maty."
+
+#: ../mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr "Daba"
+
+#: ../mate-session/gsm-client-row.c:57
+msgid "Discarded on logout and can die."
+msgstr "Ariana rehefa mivoaka ka mety ho faty."
+
+#: ../mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr "Fandrindrana"
+
+#: ../mate-session/gsm-client-row.c:60
+msgid "Always started on every login."
+msgstr "Alefa foana isaka ny miditra."
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: ../mate-session/gsm-gsd.c:45
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work correctly."
+msgstr ""
+"Nisy olana teo am-pandefasana ny Daemon'ny fandrindran'ny MATE.\n"
+"\n"
+"Misy zavatra toy ny fandrindran'endrika, feo na afara tsy mandeha araka ny tokony ho izy any ho any."
+
+#: ../mate-session/gsm-gsd.c:57
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Ny filazana tsy fetezana farany:\n"
+"\n"
+
+#: ../mate-session/gsm-gsd.c:62
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"Hanandrana ny handefa ny Daemon'ny fandrindrana ihany ny MATE rehefa miditra amin'ny manaraka ianao."
+
+#: ../mate-session/gsm-gsd.c:145
+msgid "The Settings Daemon restarted too many times."
+msgstr "Naverina nalefa imbetsaka loatra ny Daemon'ny fandrindrana."
+
+#: ../mate-session/logout.c:404
+msgid "Are you sure you want to log out?"
+msgstr "Te hivoaka marina ve ianao?"
+
+#: ../mate-session/logout.c:421
+msgid "_Save current setup"
+msgstr "_Raiketo ny kirakira izao"
+
+#: ../mate-session/logout.c:444
+msgid "Action"
+msgstr "Asa"
+
+#: ../mate-session/logout.c:461
+msgid "_Log out"
+msgstr "_Hivoaka"
+
+#: ../mate-session/logout.c:468
+msgid "Sh_ut down"
+msgstr "_Ajanony"
+
+#: ../mate-session/logout.c:476
+msgid "_Restart the computer"
+msgstr "_Avereno alefa ny solosaina"
+
+#: ../mate-session/main.c:82
+msgid "Specify a session name to load"
+msgstr "Mamarita anarana session alaina"
+
+#: ../mate-session/main.c:82
+#: ../mate-session/save-session.c:46
+msgid "NAME"
+msgstr "ANARANA"
+
+#: ../mate-session/main.c:83
+msgid "Only read saved sessions from the default.session file"
+msgstr "Vakio ao anatin'ny rakitra default.session fotsiny izay session voaraikitra"
+
+#: ../mate-session/main.c:84
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr "Fotoana (milisegaondra) lany niandrasana ireo mpivatsy hanao fanambarana (0=tsy manam-petra)"
+
+#: ../mate-session/main.c:84
+#: ../mate-session/main.c:85
+#: ../mate-session/main.c:86
+msgid "DELAY"
+msgstr "FOTOANA IANDRASANA"
+
+#: ../mate-session/main.c:85
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr "Fotoana (milisegaondra) lany niandrasana ny mpivatsy hamaly (0=tsy manam-petra)"
+
+#: ../mate-session/main.c:86
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr "Fotoana (milisegaondra) lany niandrasana ny mpivatsy ho faty (0=tsy manam-petra)"
+
+#: ../mate-session/main.c:261
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"Tsy nahita adiresy Internet ho an'ny %s.\n"
+"Hahatonga ny MATE tsy handeha ara-dalàna izany.\n"
+"Azo vahana amin'ny alalan'ny fanampiana ny %s\n"
+"anatin'ny rakitra /etc/hosts izany olana izany."
+
+#: ../mate-session/main.c:268
+msgid "Log in Anyway"
+msgstr "Hiditra ihany na dia izany aza"
+
+#: ../mate-session/main.c:269
+msgid "Try Again"
+msgstr "Andramo indray"
+
+#: ../mate-session/main.c:402
+msgid "- Manage the MATE session"
+msgstr "- Mandrindra ny session'ny MATE"
+
+#: ../mate-session/manager.c:223
+msgid "Your session has been saved"
+msgstr "Voaraikitra ny sessionao"
+
+#: ../mate-session/manager.c:527
+msgid "Wait abandoned due to conflict."
+msgstr "Nadaboka ny fiandrasana noho ny fisian'ny fifanipahana."
+
+#: ../mate-session/manager.c:1035
+#, c-format
+msgid "No response to the %s command."
+msgstr "Tsy misy valin-teny ho an'ny baiko %s."
+
+#: ../mate-session/manager.c:1036
+msgid "The program may be slow, stopped or broken."
+msgstr "Mety votsa, najanona na simba angamba ilay rindranasa."
+
+#: ../mate-session/manager.c:1037
+msgid "You may wait for it to respond or remove it."
+msgstr "Azonao atao ny miandry azy hamaly na koa manala azy."
+
+#: ../mate-session/manager.c:1760
+msgid "Restart abandoned due to failures."
+msgstr "Nadaboka ny famerenana ny famelomana noho ny tsy fetezana maro."
+
+#: ../mate-session/manager.c:1956
+msgid "A session shutdown is in progress."
+msgstr "Misy fanajanona session mitranga."
+
+#: ../mate-session/save-session.c:46
+msgid "Set the current session name"
+msgstr "Hamaritra ny anaran'ity session ity"
+
+#: ../mate-session/save-session.c:47
+msgid "Kill session"
+msgstr "Vonoy io session io"
+
+#: ../mate-session/save-session.c:48
+msgid "Use dialog boxes"
+msgstr "Mampiasà takila filazana"
+
+#: ../mate-session/save-session.c:146
+#: ../mate-session/save-session.c:183
+msgid "Could not connect to the session manager"
+msgstr "Tsy afaka nifandray tamin'ilay mpandrindra session"
+
+#: ../mate-session/save-session.c:169
+msgid "- Save the current session"
+msgstr "- Mandraikitra ity session ity"
+
+#: ../mate-session/session-names.c:143
+msgid "The session name cannot be empty"
+msgstr "Tsy azo atao foana ny anaran'ilay session"
+
+#: ../mate-session/session-names.c:154
+msgid "The session name already exists"
+msgstr "Efa misy io anarana session io"
+
+#: ../mate-session/session-names.c:188
+msgid "Add a new session"
+msgstr "Hampiditra session iray vaovao"
+
+#: ../mate-session/session-names.c:218
+msgid "Edit session name"
+msgstr "Hanova ilay anarana session"
+
+#: ../mate-session/session-properties-capplet.c:119
+msgid "Enable"
+msgstr "Alefaso"
+
+#: ../mate-session/session-properties-capplet.c:125
+#: ../mate-session/session-properties-capplet.c:467
+msgid "Disable"
+msgstr "Atsaharo"
+
+#: ../mate-session/session-properties-capplet.c:148
+msgid "_Edit"
+msgstr "_Ovay"
+
+#: ../mate-session/session-properties-capplet.c:216
+msgid ""
+"Some changes are not saved.\n"
+"Is it still OK to exit?"
+msgstr ""
+"Misy fanovana tsy voaraikitra.\n"
+"Mety ihany ve raha miala izao?"
+
+#: ../mate-session/session-properties-capplet.c:266
+#: ../mate-session/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Session"
+
+#: ../mate-session/session-properties-capplet.c:299
+msgid "Show splash screen on _login"
+msgstr "Asehoy eny am-_pidirana ny takila fanokafana"
+
+#: ../mate-session/session-properties-capplet.c:310
+msgid "As_k on logout"
+msgstr "_Anontanio rehefa mivoaka"
+
+#: ../mate-session/session-properties-capplet.c:321
+msgid "Automatically save chan_ges to session"
+msgstr "Avy dia raiketo ireo _fanovana natao tamin'ilay session"
+
+#: ../mate-session/session-properties-capplet.c:332
+msgid "_Sessions:"
+msgstr "_Session:"
+
+#: ../mate-session/session-properties-capplet.c:350
+msgid "Session Name"
+msgstr "Anaran'ilay session"
+
+#: ../mate-session/session-properties-capplet.c:401
+msgid "Session Options"
+msgstr "Safidin'ilay session"
+
+#: ../mate-session/session-properties-capplet.c:410
+msgid "Current Session"
+msgstr "Ny session izao"
+
+#: ../mate-session/session-properties-capplet.c:419
+msgid "Additional startup _programs:"
+msgstr "_Rindranasam-piantombohana fanampiny:"
+
+#: ../mate-session/session-properties-capplet.c:438
+msgid "Command"
+msgstr "Baiko"
+
+#: ../mate-session/session-properties-capplet.c:478
+msgid "Startup Programs"
+msgstr "Rindranasam-piatombohana"
+
+#: ../mate-session/session-properties.c:49
+msgid "Remove the currently selected client from the session."
+msgstr "Esory tanatin'ny session io mpivatsy voafaritra io."
+
+#: ../mate-session/session-properties.c:55
+msgid "Apply changes to the current session"
+msgstr "Ampiharo amin'ity session ity ireo fanovana ireo"
+
+#: ../mate-session/session-properties.c:61
+msgid "The list of programs in the session."
+msgstr "Ny lisitr'ireo rindranasa anatin'ilay session."
+
+#: ../mate-session/session-properties.c:88
+msgid "Currently running _programs:"
+msgstr "Ny _rindranasa mandeha izao:"
+
+#: ../mate-session/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Mikirakira ny sessionao"
+
+#: ../mate-session/splash-widget.c:43
+msgid "Sawfish Window Manager"
+msgstr "Mpandrindra fikandrana Sawfish"
+
+#: ../mate-session/splash-widget.c:44
+msgid "Marco Window Manager"
+msgstr "Mpandrindra fikandran'ny Marco"
+
+#: ../mate-session/splash-widget.c:45
+msgid "Window Manager"
+msgstr "Mpandrindra fikandrana"
+
+#: ../mate-session/splash-widget.c:46
+msgid "The Panel"
+msgstr "Ilay tontonana"
+
+#: ../mate-session/splash-widget.c:47
+msgid "Caja"
+msgstr "Caja"
+
+#: ../mate-session/splash-widget.c:48
+msgid "Desktop Settings"
+msgstr "Fandrindran'ny sehatrasa"
+
+#: ../mate-session/startup-programs.c:403
+msgid "_Startup Command:"
+msgstr "_Baikom-piantombohana:"
+
+#: ../mate-session/startup-programs.c:409
+msgid "Startup Command"
+msgstr "Baikom-piantombohana"
+
+#: ../mate-session/startup-programs.c:441
+msgid "The startup command cannot be empty"
+msgstr "Tsy azo atao foana ny baikom-piantombohana"
+
+#: ../mate-session/startup-programs.c:480
+msgid "Add Startup Program"
+msgstr "Hampiditra rindranasam-piantombohana"
+
+#: ../mate-session/startup-programs.c:524
+msgid "Edit Startup Program"
+msgstr "Hanova rindranasam-piantombohana"
diff --git a/po/mi.po b/po/mi.po
new file mode 100644
index 0000000..915ea82
--- /dev/null
+++ b/po/mi.po
@@ -0,0 +1,458 @@
+# Māori translation of mate-session.
+# Copyright (C) 2004 Free Software Foundation
+# This file is distributed under the same license as the mate-session package.
+# John C Barstow <[email protected]>, 2004.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session 2.6\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-01-11 08:59+0000\n"
+"PO-Revision-Date: 2004-04-09 23:53+1200\n"
+"Last-Translator: John C Barstow <[email protected]>\n"
+"Language-Team: Māori <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: mate-session/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:6
+msgid ""
+"Preferred Image to use for the splash screen when logging in to the MATE "
+"Desktop"
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:8
+msgid "Show the splash screen"
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:9
+msgid "Show the splash screen when the session starts up"
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:10
+msgid "Splash Screen Image"
+msgstr ""
+
+#: mate-session/gsm-client-editor.c:97 mate-session/startup-programs.c:314
+msgid "_Order:"
+msgstr ""
+
+#: mate-session/gsm-client-editor.c:99
+msgid "The order in which applications are started in the session."
+msgstr ""
+
+#: mate-session/gsm-client-editor.c:106
+msgid "What happens to the application when it exits."
+msgstr ""
+
+#: mate-session/gsm-client-editor.c:109
+msgid "_Style:"
+msgstr ""
+
+#: mate-session/gsm-client-list.c:150
+#: mate-session/session-properties-capplet.c:412
+msgid "Order"
+msgstr ""
+
+#: mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr ""
+
+#: mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr ""
+
+#: mate-session/gsm-client-list.c:165
+msgid "Program"
+msgstr ""
+
+#: mate-session/gsm-client-row.c:31
+msgid "Inactive"
+msgstr ""
+
+#: mate-session/gsm-client-row.c:32
+msgid "Waiting to start or already finished."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr ""
+
+#: mate-session/gsm-client-row.c:35
+msgid "Started but has not yet reported state."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr ""
+
+#: mate-session/gsm-client-row.c:38
+msgid "A normal member of the session."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr ""
+
+#: mate-session/gsm-client-row.c:41
+msgid "Saving session details."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr ""
+
+#: mate-session/gsm-client-row.c:44
+msgid "State not reported within timeout."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr ""
+
+#: mate-session/gsm-client-row.c:51
+msgid "Unaffected by logouts but can die."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr ""
+
+#: mate-session/gsm-client-row.c:54
+msgid "Never allowed to die."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr "Te Para"
+
+#: mate-session/gsm-client-row.c:57
+msgid "Discarded on logout and can die."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr ""
+
+#: mate-session/gsm-client-row.c:60
+msgid "Always started on every login."
+msgstr ""
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: mate-session/gsm-gsd.c:41
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+
+#: mate-session/gsm-gsd.c:53
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+
+#: mate-session/gsm-gsd.c:58
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+
+#: mate-session/gsm-gsd.c:115
+msgid "There was an unknown activation error."
+msgstr ""
+
+#: mate-session/gsm-gsd.c:157
+msgid "The Settings Daemon restarted too many times."
+msgstr ""
+
+#: mate-session/logout.c:355
+msgid "Are you sure you want to log out?"
+msgstr ""
+
+#: mate-session/logout.c:372
+msgid "_Save current setup"
+msgstr ""
+
+#: mate-session/logout.c:393
+msgid "Action"
+msgstr ""
+
+#: mate-session/logout.c:410
+msgid "_Log out"
+msgstr "_Whakarere"
+
+#: mate-session/logout.c:416
+msgid "Sh_ut down"
+msgstr "_Whakaweto"
+
+#: mate-session/logout.c:423
+msgid "_Restart the computer"
+msgstr ""
+
+#: mate-session/main.c:81
+msgid "Specify a session name to load"
+msgstr ""
+
+#: mate-session/main.c:82
+msgid "Only read saved sessions from the default.session file"
+msgstr ""
+
+#: mate-session/main.c:83
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr ""
+
+#: mate-session/main.c:84
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr ""
+
+#: mate-session/main.c:85
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr ""
+
+#: mate-session/main.c:265
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+
+#: mate-session/main.c:272
+msgid "Log in Anyway"
+msgstr ""
+
+#: mate-session/main.c:273
+msgid "Try Again"
+msgstr ""
+
+#: mate-session/manager.c:223
+msgid "Your session has been saved"
+msgstr ""
+
+#: mate-session/manager.c:527
+msgid "Wait abandoned due to conflict."
+msgstr ""
+
+#: mate-session/manager.c:1035
+#, c-format
+msgid "No response to the %s command."
+msgstr ""
+
+#: mate-session/manager.c:1036
+msgid "The program may be slow, stopped or broken."
+msgstr ""
+
+#: mate-session/manager.c:1037
+msgid "You may wait for it to respond or remove it."
+msgstr ""
+
+#: mate-session/manager.c:1760
+msgid "Restart abandoned due to failures."
+msgstr ""
+
+#: mate-session/manager.c:1956
+msgid "A session shutdown is in progress."
+msgstr ""
+
+#: mate-session/save-session.c:46
+msgid "Set the current session"
+msgstr ""
+
+#: mate-session/save-session.c:47
+msgid "Kill session"
+msgstr ""
+
+#: mate-session/save-session.c:48
+msgid "Use dialog boxes"
+msgstr ""
+
+#: mate-session/save-session.c:146 mate-session/save-session.c:179
+msgid "Could not connect to the session manager"
+msgstr ""
+
+#: mate-session/session-names.c:143
+msgid "The session name cannot be empty"
+msgstr ""
+
+#: mate-session/session-names.c:154
+msgid "The session name already exists"
+msgstr ""
+
+#: mate-session/session-names.c:188
+msgid "Add a new session"
+msgstr ""
+
+#: mate-session/session-names.c:218
+msgid "Edit session name"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:122
+msgid "_Edit"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:190
+msgid ""
+"Some changes are not saved.\n"
+"Is it still OK to exit?"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:240
+#: mate-session/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Ngā Wāhanga"
+
+#: mate-session/session-properties-capplet.c:273
+msgid "Show splash screen on _login"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:284
+msgid "As_k on logout"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:295
+msgid "Automatically save chan_ges to session"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:306
+msgid "_Sessions:"
+msgstr "Ngā·Wā_hanga:"
+
+#: mate-session/session-properties-capplet.c:324
+msgid "Session Name"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:375
+msgid "Session Options"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:384
+msgid "Current Session"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:393
+msgid "Additional startup _programs:"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:414
+msgid "Command"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:446
+msgid "Startup Programs"
+msgstr ""
+
+#: mate-session/session-properties.c:49
+msgid "Remove the currently selected client from the session."
+msgstr ""
+
+#: mate-session/session-properties.c:55
+msgid "Apply changes to the current session"
+msgstr ""
+
+#: mate-session/session-properties.c:61
+msgid "The list of programs in the session."
+msgstr ""
+
+#: mate-session/session-properties.c:88
+msgid "Currently running _programs:"
+msgstr ""
+
+#: mate-session/session-properties.c:104
+msgid "Initialize session settings"
+msgstr ""
+
+#: mate-session/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr ""
+
+#: mate-session/splash-widget.c:43
+msgid "Sawfish Window Manager"
+msgstr ""
+
+#: mate-session/splash-widget.c:44
+msgid "Marco Window Manager"
+msgstr ""
+
+#: mate-session/splash-widget.c:45
+msgid "Window Manager"
+msgstr ""
+
+#: mate-session/splash-widget.c:46
+msgid "The Panel"
+msgstr ""
+
+#: mate-session/splash-widget.c:47
+msgid "Session Manager Proxy"
+msgstr ""
+
+#: mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "Paua"
+
+#: mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr ""
+
+#: mate-session/startup-programs.c:292
+msgid "_Startup Command:"
+msgstr ""
+
+#: mate-session/startup-programs.c:298
+msgid "Startup Command"
+msgstr ""
+
+#: mate-session/startup-programs.c:347
+msgid "The startup command cannot be empty"
+msgstr ""
+
+#: mate-session/startup-programs.c:384
+msgid "Add Startup Program"
+msgstr ""
+
+#: mate-session/startup-programs.c:405
+msgid "Edit Startup Program"
+msgstr ""
diff --git a/po/mk.po b/po/mk.po
new file mode 100644
index 0000000..3a63d87
--- /dev/null
+++ b/po/mk.po
@@ -0,0 +1,589 @@
+# translation of mate-session.HEAD.mk.po to Macedonian
+# Copyright (C) 2002, 2006, 2007, 2008 Free Software Foundation, Inc.
+#
+# Ivan Stojmirov<[email protected]>, 2002.
+# Arangel Angov <[email protected]>, 2006, 2008.
+# Jovan Naumovski <[email protected]>, 2006, 2007, 2008.
+# Arangel Angov <[email protected]>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.HEAD.mk\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 23:20+0000\n"
+"PO-Revision-Date: 2008-09-25 18:28+0200\n"
+"Last-Translator: Jovan Naumovski <[email protected]>\n"
+"Language-Team: Macedonian <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural= n==1 || n%10==1 ? 0 : 1\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: ../capplet/gsm-app-dialog.c:126
+msgid "Select Command"
+msgstr "Изнерете команда"
+
+#: ../capplet/gsm-app-dialog.c:187
+msgid "Add Startup Program"
+msgstr "Додај програма за подигнување"
+
+#: ../capplet/gsm-app-dialog.c:191
+msgid "Edit Startup Program"
+msgstr "Уреди програма за подигнување"
+
+#: ../capplet/gsm-properties-dialog.c:132
+msgid "No description"
+msgstr "Нема опис"
+
+#: ../capplet/gsm-properties-dialog.c:977
+msgid "The name of the startup program cannot be empty"
+msgstr "Името на startup командата не смее да биде празно"
+
+#: ../capplet/gsm-properties-dialog.c:981
+msgid "The startup command cannot be empty"
+msgstr "Startup командата не смее да биде празна"
+
+#: ../capplet/gsm-properties-dialog.c:987
+msgid "The startup command is not valid"
+msgstr "Startup командата не е валидна"
+
+#: ../capplet/gsm-properties-dialog.c:1291
+msgid "Enabled"
+msgstr "Овозможено"
+
+#: ../capplet/gsm-properties-dialog.c:1304
+msgid "Icon"
+msgstr "Икона"
+
+#: ../capplet/gsm-properties-dialog.c:1315
+msgid "Program"
+msgstr "Програма"
+
+#: ../capplet/gsm-properties-dialog.c:1464
+#: ../data/session-properties.glade.h:6
+msgid "Sessions Preferences"
+msgstr "Преференци за сесијата"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:501
+msgid "Version of this application"
+msgstr "Верзија на апликацијата"
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+"Беше побарана поддршка за помошни технологии за оваа сесија, но регистарот "
+"за пристапност не беше пронајден. Ве молам, осигурајте се дека AT_SPI "
+"пакетот е инсталиран. Вашата сесија се стартуваше без поддршка за помошни "
+"технологии."
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr "AT SPI обвиткувач на регистри"
+
+#: ../compat/mate-keyring-daemon-wrapper.desktop.in.in.in.h:1
+msgid "MATE Keyring Daemon Wrapper"
+msgstr "Обвивка на демонот за приврзоци на MATE "
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "Помагач за демонот за поставување на MATE"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Оваа сесија Ве најавува во MATE"
+
+#: ../data/mate-session.schemas.in.h:1
+msgid "Default session"
+msgstr "Стандардна сесија"
+
+#: ../data/mate-session.schemas.in.h:2
+msgid "File Manager"
+msgstr "Менаџер за датотеки"
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Доколку е вклучено, mate-session ќе го извести корисникот пред да ја "
+"прекине сесијата."
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Доколку е вклучено, mate-session ќе ја зачува сесијата автоматски. Инаку, "
+"дијалогот за одјавување ќе има опција за зачувување на сесијата."
+
+#: ../data/mate-session.schemas.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Листа на апликации кои што се дел од стандардната сесија."
+
+#: ../data/mate-session.schemas.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required-components\".) The "
+"Session Preferences will not normally allow users to remove a required "
+"component from the session, and the session manager will automatically add "
+"the required components back to the session if they do get removed."
+msgstr ""
+"Листа на компоненти кои што се потребни како дел од сесијата. (Секој елемент "
+"именува клуч под „desktop/mate/session/required-components“.) Преференците "
+"за сесиите обично не им дозволуваат на корисниците да отстрануваат потребни "
+"компоненти од сесијата и менаџерот за сесии автоматски ги додава "
+"компонентите назад во сесијата ако истите бидат отстранети."
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Logout prompt"
+msgstr "Дијалог за одјавување"
+
+#: ../data/mate-session.schemas.in.h:8
+msgid "Panel"
+msgstr "Панел"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr ""
+"Преферирана слика која ќе се користи за поздравниот екран при најава во "
+"работната околина MATE"
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Required session components"
+msgstr "Потребни компоненти за сесијата"
+
+#: ../data/mate-session.schemas.in.h:11
+msgid "Save sessions"
+msgstr "Зачувај сесии"
+
+#: ../data/mate-session.schemas.in.h:12
+msgid "Selected option in the log out dialog"
+msgstr "Одбрана опција во дијалогот за одјава"
+
+#: ../data/mate-session.schemas.in.h:13
+msgid "Show the splash screen"
+msgstr "Прикажи го поздравниот екран"
+
+#: ../data/mate-session.schemas.in.h:14
+msgid "Show the splash screen when the session starts up"
+msgstr "Прикажи го поздравниот екран при стартување на сесијата"
+
+#: ../data/mate-session.schemas.in.h:15
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Менаџерот за датотеки нуди икони за работната површина и ви дозволува да "
+"работите со Вашите зачувани датотеки."
+
+#: ../data/mate-session.schemas.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Панелот нуди лента на врвот и дното на екранот која што содржи менија, листа "
+"со прозорци, икони за статус, часовник итн."
+
+#: ../data/mate-session.schemas.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Менаџерот за прозорци е програма која што ја исцртува лентата со насловот и "
+"границите околу прозорците, и дозволува да го поместувата и да им ја "
+"менувате големината на прозорците."
+
+#: ../data/mate-session.schemas.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Ова е релативна вредност за патека базирана на директориумот $datadir/"
+"pixmaps/. Под-директориумите и имињата на сликите не се валидни вредности. "
+"Доколку ја промените оваа вредност, промените ќе се одразат при наредното "
+"најавување."
+
+#: ../data/mate-session.schemas.in.h:19
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+"Ова е опцијата која што ќе биде избрана во дијалогот за одјава, валидни "
+"вредностисе „одјава“ за одјава, „исклучи“ за исклучување на системот и "
+"„рестартирај“ за рестартирање на системот."
+
+#: ../data/mate-session.schemas.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Менаџер за прозорци"
+
+#: ../data/gsm-inhibit-dialog.glade.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Некои програми сè уште работат:</b>"
+
+#: ../data/gsm-inhibit-dialog.glade.h:2
+#: ../mate-session/gsm-inhibit-dialog.c:628
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"Чекам да се затвори програмата. Прекинувањето може да предизвика загуба на "
+"податоци."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Конфигурирај ги твоите сесии"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Сесии"
+
+#: ../data/session-properties.glade.h:1
+msgid "Additional startup _programs:"
+msgstr "Додатни програми за _подигнување:"
+
+#: ../data/session-properties.glade.h:2
+msgid "Browse..."
+msgstr "Разгледај..."
+
+#: ../data/session-properties.glade.h:3
+msgid "Co_mmand:"
+msgstr "Ко_манда:"
+
+#: ../data/session-properties.glade.h:4
+msgid "Comm_ent:"
+msgstr "Ко_ментар:"
+
+#: ../data/session-properties.glade.h:5
+msgid "Options"
+msgstr "Опции"
+
+#: ../data/session-properties.glade.h:7
+msgid "Startup Programs"
+msgstr "Програми за подигнување"
+
+#: ../data/session-properties.glade.h:8
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Автоматски запамти ги тековните апликации при одјава"
+
+#: ../data/session-properties.glade.h:9
+msgid "_Name:"
+msgstr "_Име:"
+
+#: ../data/session-properties.glade.h:10
+msgid "_Remember Currently Running Application"
+msgstr "_Запамти ги апликациите кои што работат"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Датотеката не е валидна .desktop датотека"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Непозната верзија на датотека за работната површина %s"
+
+#: ../egg/eggdesktopfile.c:962
+#, c-format
+msgid "Starting %s"
+msgstr "Подигнувам %s"
+
+#: ../egg/eggdesktopfile.c:1096
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Апликацијата не прифаќа документи на командната линија"
+
+#: ../egg/eggdesktopfile.c:1164
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Непозната опција за извршување: %d"
+
+#: ../egg/eggdesktopfile.c:1372
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"Не можам да ја префрлам адресата за документот во запис на работната "
+"површина со Тип=Врска"
+
+#: ../egg/eggdesktopfile.c:1391
+#, c-format
+msgid "Not a launchable item"
+msgstr "Предметот не може да се изврши"
+
+#: ../egg/eggsmclient-libmateui.c:102
+msgid "Session management"
+msgstr "Менаџмент на сесии"
+
+#: ../egg/eggsmclient-libmateui.c:136
+msgid "MATE GUI Library + EggSMClient"
+msgstr "MATE GUI библиотека + EggSMClient"
+
+#: ../egg/eggsmclient.c:185
+msgid "Disable connection to session manager"
+msgstr "Исклучи ги врските до менаџерот за сесии"
+
+#: ../egg/eggsmclient.c:188
+msgid "Specify file containing saved configuration"
+msgstr "Одредете датотека што ја содржи зачуваната конфигурација"
+
+#: ../egg/eggsmclient.c:188
+msgid "FILE"
+msgstr "FILE"
+
+#: ../egg/eggsmclient.c:191
+msgid "Specify session management ID"
+msgstr "Одредете го бројот за ид. за менаџмент на сесијата"
+
+#: ../egg/eggsmclient.c:191
+msgid "ID"
+msgstr "Ид"
+
+#: ../egg/eggsmclient.c:241
+msgid "Session Management Options"
+msgstr "Опции на менаџментот за сесии"
+
+#: ../egg/eggsmclient.c:242
+msgid "Show Session Management options"
+msgstr "Покажи опции за менаџмент сесии"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Се појави проблем со серверот за конфигурација.\n"
+"(%s се исклучи со статус %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:256
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Иконата %s не е најдена"
+
+#: ../mate-session/gsm-inhibit-dialog.c:579
+msgid "Unknown"
+msgstr "Непознато"
+
+#: ../mate-session/gsm-inhibit-dialog.c:627
+msgid "A program is still running:"
+msgstr "Програма сè уште работи:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:631
+msgid "Some programs are still running:"
+msgstr "Некои програми сè уште работат:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:632
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Чекам да завршат програми. Прекинувањето на овие програми може да "
+"предизвика загуба на податоци."
+
+#: ../mate-session/gsm-inhibit-dialog.c:860
+msgid "Switch User Anyway"
+msgstr "Сепак смени корисник"
+
+#: ../mate-session/gsm-inhibit-dialog.c:863
+msgid "Logout Anyway"
+msgstr "Сепак одјави ме"
+
+#: ../mate-session/gsm-inhibit-dialog.c:866
+msgid "Suspend Anyway"
+msgstr "Сепак суспендирај"
+
+#: ../mate-session/gsm-inhibit-dialog.c:869
+msgid "Hibernate Anyway"
+msgstr "Сепак хибернирај"
+
+#: ../mate-session/gsm-inhibit-dialog.c:872
+msgid "Shutdown Anyway"
+msgstr "Сепак исклучи"
+
+#: ../mate-session/gsm-inhibit-dialog.c:875
+msgid "Reboot Anyway"
+msgstr "Сепак рестартирај"
+
+#: ../mate-session/gsm-inhibit-dialog.c:883
+msgid "Lock Screen"
+msgstr "Заклучи екран"
+
+#: ../mate-session/gsm-inhibit-dialog.c:886
+msgid "Cancel"
+msgstr "Откажи"
+
+#: ../mate-session/gsm-logout-dialog.c:283
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d seconds."
+msgstr[0] ""
+"Моментално сте најавени како \"%s\".\n"
+"Ќе бидете автоматски одјавени за %d секунда."
+msgstr[1] ""
+"Моментално сте најавени како \"%s\".\n"
+"Ќе бидете автоматски одјавени за %d секунда."
+msgstr[2] ""
+"Моментално сте најавени како \"%s\".\n"
+"Ќе бидете автоматски одјавени за %d секунди."
+
+#: ../mate-session/gsm-logout-dialog.c:295
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d seconds."
+msgstr[0] ""
+"Моментално сте најавени како \"%s\".\n"
+"Овој систем автоматски ќе се исклучи за %d секунда."
+msgstr[1] ""
+"Моментално сте најавени како \"%s\".\n"
+"Овој систем автоматски ќе се исклучи за %d секунди."
+msgstr[2] ""
+"Моментално сте најавени како \"%s\".\n"
+"Овој систем автоматски ќе се исклучи за %d секунди."
+
+#: ../mate-session/gsm-logout-dialog.c:371
+msgid "Log out of this system now?"
+msgstr "Да се одјавам од системот веднаш?"
+
+#: ../mate-session/gsm-logout-dialog.c:377
+msgid "_Switch User"
+msgstr "_Смени корисник"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Log Out"
+msgstr "_Одјава"
+
+#: ../mate-session/gsm-logout-dialog.c:392
+msgid "Shut down this system now?"
+msgstr "Да го исклучам системот веднаш?"
+
+#: ../mate-session/gsm-logout-dialog.c:398
+msgid "S_uspend"
+msgstr "С_успендирај"
+
+#: ../mate-session/gsm-logout-dialog.c:404
+msgid "_Hibernate"
+msgstr "_Хибернирај"
+
+#: ../mate-session/gsm-logout-dialog.c:410
+msgid "_Restart"
+msgstr "_Рестартирај"
+
+#: ../mate-session/gsm-logout-dialog.c:420
+msgid "_Shut Down"
+msgstr "_Исклучи"
+
+#: ../mate-session/gsm-manager.c:923 ../mate-session/gsm-manager.c:1539
+msgid "Not responding"
+msgstr "Не реагира"
+
+#: ../mate-session/gsm-xsmp-client.c:975
+msgid "This program is blocking log out."
+msgstr "Оваа програма ја блокира одјавата."
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "Одбивам нови врски од клиенти бидејќи сесијата се гаси\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Не можам да креирак socket за ICE: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:139
+#, c-format
+msgid "Unable to start login session (and unable connect to the X server)"
+msgstr ""
+"Не успеав да ја започнам сесијата за најава (и не успеав да се поврзам за X "
+"серверот)"
+
+#: ../mate-session/main.c:497
+msgid "Override standard autostart directories"
+msgstr "Запиши врз стандардните директориуми за автоматско стартување"
+
+#: ../mate-session/main.c:498
+msgid "MateConf key used to lookup default session"
+msgstr "MateConf клучот кој се користи за барање на стандардна сесија"
+
+#: ../mate-session/main.c:499
+msgid "Enable debugging code"
+msgstr "Вклучи код за дебагирање"
+
+#: ../mate-session/main.c:500
+msgid "Do not load user-specified applications"
+msgstr "Не вчитувај апликации одредени од корисникот"
+
+#: ../mate-session/main.c:521
+msgid " - the MATE session manager"
+msgstr "- Менаџер за сесии за MATE"
+
+#: ../splash/mate-session-splash.c:291
+msgid "- MATE Splash Screen"
+msgstr "- Поздравен екран за MATE"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "Поздравен екран за MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Set the current session name"
+msgstr "Постави го името на тековната сесија"
+
+#: ../tools/mate-session-save.c:65
+msgid "NAME"
+msgstr "NAME"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out"
+msgstr "Одјава"
+
+#: ../tools/mate-session-save.c:67
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Одјави се со игнорирање на сите постоечки инхибитори"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show logout dialog"
+msgstr "Покажи дијалог за одјавување"
+
+#: ../tools/mate-session-save.c:69
+msgid "Show shutdown dialog"
+msgstr "Покажи дијалог за исклучување"
+
+#: ../tools/mate-session-save.c:70
+msgid "Kill session"
+msgstr "Отстрани сесија"
+
+#: ../tools/mate-session-save.c:71
+msgid "Use dialog boxes for errors"
+msgstr "Користи дијалог полиња за грешки"
+
+#: ../tools/mate-session-save.c:72
+msgid "Do not require confirmation"
+msgstr "Не барај потврда"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Не може да се приклучи на менаџерот за сесии."
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Програмата се повика со конфлитни опции"
+
diff --git a/po/ml.po b/po/ml.po
new file mode 100644
index 0000000..6b0f3a6
--- /dev/null
+++ b/po/ml.po
@@ -0,0 +1,563 @@
+# translation of mate-session.master.ml.po to
+# This file is distributed under the same license as the mate-session package.
+# Copyright (C) 2003-2008 mate-session'S COPYRIGHT HOLDER.
+#
+# FSF-India <[email protected]>, 2003.
+# Ani Peter <[email protected]>, 2006.
+# Hari Vishnu <[email protected]>, 2008.
+# Praveen Arimbrathodiyil <[email protected]>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.master.ml\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-session&component=general\n"
+"POT-Creation-Date: 2009-09-07 17:27+0000\n"
+"PO-Revision-Date: 2009-09-12 18:24+0530\n"
+"Last-Translator: \n"
+"Language-Team: <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "കമാന്‍ഡ് തെരഞ്ഞെടുക്കുക"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "ആരംഭ നിര്‍ദ്ദേശം ചേര്‍ക്കുക"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "ആരംഭ നിര്‍ദ്ദേശം ചിട്ടപ്പെടുത്തുക"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "ആരംഭ നിര്‍ദ്ദേശം ശൂന്യമായിരിക്കുവാന്‍ പാടില്ല"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "ആരംഭ ആജ്ഞ ശരിയല്ല"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "പ്രവര്‍ത്തന സജ്ജമാക്കുക"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "ചിഹ്നം "
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "പ്രോഗ്രാം"
+
+#: ../capplet/gsm-properties-dialog.c:792
+#| msgid "Sessions Preferences"
+msgid "Startup Applications Preferences"
+msgstr "പ്രാരംഭ പ്രയോഗങ്ങള്‍ക്കുള്ള മുന്‍ഗണനകള്‍"
+
+#: ../capplet/gsp-app.c:269
+#| msgid "_Name:"
+msgid "No name"
+msgstr "പേരില്ല"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "വിവരണം ഒന്നുമില്ല"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "ഈ പ്രയോഗത്തിന്റെ പതിപ്പു്"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "സഹായത്തിനുള്ള വിവരണം ലഭ്യമാക്കുവാന്‍ സാധ്യമല്ല"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "ഗ്നോം സജ്ജീകരണങ്ങള്‍ക്കുള്ള നിരന്തരപ്രവൃത്തിയ്ക്കായുള്ള വേലക്കാരന്‍"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "ഗ്നോം"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "ഈ പ്രവര്‍ത്തനവേള നിങ്ങളെ ഗ്നോമിലേക്ക് കയറ്റുന്നു"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "സഹജമായ പ്രവര്‍ത്തനവേള"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "ഫയല്‍ നടത്തിപ്പുകാരന്‍"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"പ്രവര്‍ത്തന സജ്ജമാണെങ്കില്‍, പ്രവര്‍ത്തനവേള അവസാനിക്കുന്നതിനു് മുമ്പു് mate-session ഉപയോക്താവിനെ "
+"അറിയിക്കുന്നതാണു്."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"പ്രവര്‍ത്തന സജ്ജമാണെങ്കില്‍, mate-session സ്വയമേ ഈ പ്രവര്‍ത്തനവേള സൂക്ഷിക്കുന്നതാണു്. "
+"അല്ലായെങ്കില്‍, പ്രവര്‍ത്തനവേള സൂക്ഷിക്കുവാനുളള ഐച്ഛികം, പുറത്തിറങ്ങുന്നതിനുള്ള ഡയലോഗില്‍ "
+"ഉണ്ടാവുന്നതാണു്."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "സഹജമായ പ്രവര്‍ത്തനവേളയുടെ ഭാഗമായ പ്രയോഗങ്ങളുടെ പട്ടിക."
+
+#: ../data/mate-session.schemas.in.in.h:6
+#| msgid ""
+#| "List of components that are required as part of the session. (Each "
+#| "element names a key under \"/desktop/mate/session/required-components"
+#| "\".) The Session Preferences will not normally allow users to remove a "
+#| "required component from the session, and the session manager will "
+#| "automatically add the required components back to the session if they do "
+#| "get removed."
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"പ്രവര്‍ത്തനവേളയുടെ ഭാഗമായി ആവശ്യമുള്ള വിഭാഗങ്ങള്‍. (ഓരോ വസ്തുവും "
+"\"/desktop/mate/session/required-components\"-ഇന്റെ കീഴില്‍ ഒരു കീ പേരു് ഇടുന്നു). "
+"പ്രാരംഭ പ്രയോഗങ്ങള്‍ക്കുള്ള മുന്‍ഗണനകള്‍ പൊതുവെ ഉപയോക്താക്കളെ ഒരു ആവശ്യമുള്ള "
+"വിഭാഗം പ്രവര്‍ത്തനവേളയില്‍ നിന്നും കളയാന്‍ അനുവദിക്കുന്നില്ല, അതിനൊപ്പം പ്രവര്‍ത്തനവേള "
+"നടത്തിപ്പുകാരന്‍ തനിയെ ആവശ്യമുള്ള വിഭാഗം പ്രവര്‍ത്തനവേളയിലേയ്ക്കു് ചേര്‍ക്കുന്നു "
+"അവ കളഞ്ഞു പോയെങ്കില്‍."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "പുറത്തിറങ്ങുന്നതിനുളള അറിയിപ്പു്"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "പാളി"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "അകത്തുകയറുമ്പോള്‍ മിന്നിമറയുന്ന സ്ക്രീനിനു് ഉപയോഗിക്കുവാന്‍ ആഗ്രഹിക്കുന്ന ചിത്രം"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "ആവശ്യമുള്ള പ്രവര്‍ത്തനവേളയിലെ ഘടകഭാഗങ്ങള്‍"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "പ്രവര്‍ത്തനവേളകള്‍ സൂക്ഷിയ്ക്കുക"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "മിന്നിമറയുന്ന സ്ക്രീന്‍ കാണിക്കുക"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "പ്രവര്‍ത്തനവേള ആരംഭിക്കുമ്പോള്‍ മിന്നിമറയുന്ന സ്ക്രീന്‍ കാണിക്കുക"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"ഫയല്‍ നടത്തിപ്പുകാരന്‍ പണിയിട ചിഹ്നങ്ങള്‍ തരുന്നതിനോടൊപ്പം നിങ്ങളെ നിങ്ങളുടെ സൂക്ഷിച്ച ഫയലുകളുമായി "
+"വിനിമയം നടത്താന്‍ അനുവദിക്കുന്നു."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "The number of minutes of inactivity before the session is considered idle."
+msgstr "സെഷന്‍ നിശ്ചലമാകുന്നതിനു് മുമ്പ് പ്രവര്‍ത്തനത്തിലില്ലാത്ത സമയം."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"ഈ പാളി വിഭവസൂചികകള്‍ ഉള്ള ചതുരം സ്ക്രീനിന്റെ മുകളിലോ താഴെയോ തരുന്നു, അതിനൊപ്പം ജാലകപട്ടിക, "
+"സ്ഥിതി ചിഹ്നങ്ങള്‍, ഘടികാരം, ഇത്യാദി"
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"ജാലക നടത്തിപ്പുകാരന്‍ ആണു് ജാലകങ്ങള്‍ക്കു് ചുറ്റും സീമകളും തലകെട്ടു് ചതുരവും വരയ്ക്കുന്ന പ്രയോഗം, ഇതു് "
+"നിങ്ങളെ ജാലകങ്ങള്‍ അനക്കുവാനും അവയുടെ വലിപ്പം മാറ്റുവാനും അനുവദിയ്ക്കുന്നു."
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"$datadir/pixmaps/ തട്ടില്‍ അടിസ്ഥാനമാക്കിയ ഒരു റിലേറ്റീവ് പാഥ് മൂല്ല്യം ആണിതു്. ഉപതട്ടുകളും "
+"രൂപങ്ങളുടെ പേരും ശരിയായ മൂല്ല്യങ്ങളാണു്. ഇതില്‍ വരുത്തുന്ന മാറ്റങ്ങള്‍ അടുത്ത പ്രവര്‍ത്തനവേളയില്‍ "
+"കയറുമ്പോള്‍ ബാധിക്കുന്നതാണു്."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "സെഷന്‍ നിശ്ചലമാകുന്നതിനുമുമ്പുള്ള സമയം"
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "ജാലക പാലകന്‍"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>ചില പ്രയോഗങ്ങള്‍ ഇപ്പോഴും പ്രവര്‍ത്തിച്ചു് കൊണ്ടിരിയ്ക്കുന്നു:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"പ്രയോഗം തീരുന്നതു് വരെ കാത്തിരിയ്ക്കുന്നു. പ്രയോഗത്തെ തടസ്സപ്പെടുത്തുന്നതു് ചെയ്ത പണി നഷ്ടപ്പെടാന്‍ "
+"കാരണമായേയ്ക്കാം."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "നിങ്ങള്‍ ലോഗിന്‍ ചെയ്യുമ്പോള്‍ ആരംഭിക്കേണ്ട പ്രയോഗങ്ങള്‍ തെരഞ്ഞെടുക്കുക"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "പ്രാരംഭ പ്രയോഗങ്ങള്‍"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "കൂടുതല്‍ പ്രാരംഭ _പ്രയോഗങ്ങള്‍:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "പരതുക..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_ആജ്ഞ:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "അഭിപ്രായം:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "ഐച്ഛികങ്ങള്‍"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "പ്രാരംഭ പ്രോഗ്രാമുകള്‍"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "പുറത്തിറങ്ങുമ്പോള്‍ പ്രവര്‍ത്തിയ്ക്കുന്ന പ്രയോഗങ്ങള്‍ ഓര്‍ത്തിരിയ്ക്കുക."
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_പേരു്:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "ഇപ്പോള്‍ പ്രവര്‍ത്തിക്കുന്ന പ്രയോഗം _ഓര്‍ക്കുക"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "ഇതൊരു ശരിയായ .പണിയിടം (.desktop ) ഫയലല്ല"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "ആറിയാത്ത പണിയിടം ഫയലിന്റെ പതിപ്പ് '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "%s തുടങ്ങുന്നു"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "പ്രയോഗം രചനകള്‍ ആജ്ഞ സ്ഥാനത്തു് സ്വീകരിക്കുന്നില്ല"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "മനസിലാക്കാന്‍ കഴിയാത്ത തുടങ്ങാനുള്ള ഐച്ഛികം: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "രചനാ യു.അര്‍.എലുകള്‍ ഒരു 'Type=Link'('തരം=ബന്ധം') പണിയിട കുറിപ്പിലേക്ക് ചേര്‍ക്കാന്‍ കഴിയില്ല"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "തുടങ്ങാവുന്ന വസ്തുവല്ല"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "പ്രവര്‍ത്തനവേള നടത്തിപ്പുകാരനുമായി ബന്ധം അപ്രാവര്‍ത്തികമാക്കുക"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "സൂക്ഷിച്ചിരിക്കുന്ന ക്രമീകരണങ്ങള്‍ ഉള്ള ഫയല്‍ വ്യക്തമാക്കുക"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FILE(ഫയല്‍ )"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "പ്രവര്‍ത്തനവേള കൈകാര്യം ചെയ്യാനുള്ള തിരിച്ചറിയല്‍ വ്യക്തമാക്കുക"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID (തിരിച്ചറിയല്‍)"
+
+#: ../egg/eggsmclient.c:252
+#| msgid "Session Management Options"
+msgid "Session management options:"
+msgstr "സെഷന്‍ മാനേജ്മെന്റ ഉപാധികള്‍:"
+
+#: ../egg/eggsmclient.c:253
+#| msgid "Show Session Management options"
+msgid "Show session management options"
+msgstr "സെഷന്‍ മാനേജ്മെന്റ ഉപാധികള്‍ കാണിക്കുക"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"ക്രമീകരണ സെര്‍വറില്‍ ഒരു കുഴപ്പമുണ്ട്.\n"
+"(%s %d സ്ഥിതിയുമായി നിര്‍ത്തി ഇറങ്ങിയിരിക്കുന്നു)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "'%s' ചിഹ്നം കണ്ടില്ല"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "അപരിചിതമായ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "ഒരു പ്രയോഗം ഇപ്പോഴും പ്രവര്‍ത്തിച്ചു് കൊണ്ടിരിയ്ക്കുന്നു:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "ചില പ്രയോഗങ്ങള്‍ ഇപ്പോഴും പ്രവര്‍ത്തിച്ചു് കൊണ്ടിരിയ്ക്കുന്നു:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"പ്രയോഗങ്ങള്‍ തീരുന്നതു് വരെ കാത്തിരിയ്ക്കുന്നു. ഈ പ്രയോഗങ്ങളെ തടസ്സപ്പെടുത്തുന്നതു് നിങ്ങള്‍ "
+"ചെയ്തുകൊണ്ടിരിയ്ക്കുന്ന പണി നഷ്ടപ്പെടുവാന്‍ കാരണമായേയ്ക്കാം."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "എന്തായാലും ഉപയോക്താവിനെ മാറ്റുക"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "എന്തായാലും പുറത്തിറങ്ങുക"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "എന്തായാലും മയങ്ങുക"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "എന്തായാലും ശിശിരനിദ്രയിലാഴുക"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "എന്തായാലും നിര്‍ത്തി വയ്ക്കുക"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "എന്തായാലും വീണ്ടും തുടങ്ങുക"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "സ്ക്രീന്‍ പൂട്ടുക"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "റദ്ദാക്കുക"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+#| msgid ""
+#| "You are currently logged in as \"%s\".\n"
+#| "You will be automatically logged out in %d second."
+#| msgid_plural ""
+#| "You are currently logged in as \"%s\".\n"
+#| "You will be automatically logged out in %d seconds."
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "നിങ്ങള്‍ താനെ %d സെക്കന്റില്‍ പുറത്തിറങ്ങുന്നതായിരിയ്ക്കും."
+msgstr[1] "നിങ്ങള്‍ താനെ %d സെക്കന്റില്‍ പുറത്തിറങ്ങുന്നതായിരിയ്ക്കും."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+#| msgid ""
+#| "You are currently logged in as \"%s\".\n"
+#| "This system will be automatically shut down in %d second."
+#| msgid_plural ""
+#| "You are currently logged in as \"%s\".\n"
+#| "This system will be automatically shut down in %d seconds."
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "ഈ സിസ്റ്റം തനിയെ %d സെകന്റില്‍ അടച്ചു പൂട്ടും"
+msgstr[1] "ഈ സിസ്റ്റം തനിയെ %d സെകന്റില്‍ അടച്ചു പൂട്ടും"
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "നിങ്ങള്‍ നിലവില്‍ \"%s\" ആയി ലോഗിന്‍ ചെയ്തിരിക്കുന്നു."
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "ഈ സിസ്റ്റത്തില്‍ നിന്ന് ഇപ്പോള്‍ പുറത്തിറങ്ങണോ?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "ഉപയോക്താവിനെ മാറ്റുക"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "പുറത്തിറങ്ങുക"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "ഈ സിസ്റ്റം ഇപ്പോള്‍ അടച്ചുപൂട്ടണോ ?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "_മയങ്ങിക്കോട്ടെ"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "_ശിശിരനിദ്ര"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "വീണ്ടും തുടങ്ങുക"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "കമ്പ്യൂട്ടര്‍ അടച്ചുപൂട്ടുക"
+
+#: ../mate-session/gsm-manager.c:1158 ../mate-session/gsm-manager.c:1850
+msgid "Not responding"
+msgstr "പ്രതികരിയ്ക്കുന്നില്ല"
+
+#: ../mate-session/gsm-xsmp-client.c:1206
+msgid "This program is blocking log out."
+msgstr "ഈ പ്രയോഗം പുറത്തിറങ്ങുന്നതു് തടയുന്നു."
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "പുതിയ ക്ലയന്റ് ബന്ധം നിരസിക്കുന്നു കാരണം പ്രവര്‍ത്തനവേള ഇപ്പോള്‍ അടച്ചു പൂട്ടൂകയാണു്\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "'ഐസ് '(ICE) കേള്‍ക്കാനുള്ള സോക്കറ്റ് ഉണ്ടാക്കാന്‍ കഴിഞ്ഞില്ല: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+#| msgid "Unable to start login session (and unable connect to the X server)"
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"അകത്തുകയറുമ്പോഴുള്ള പ്രവര്‍ത്തനവേള തുടങ്ങാന്‍ കഴിഞ്ഞില്ല (എക്സ്-സെര്‍വറിലേക്ക് ബന്ധപ്പെടാനും "
+"സാധിച്ചില്ല)"
+
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr "സാധാരണയുള്ള സ്വയം തുടങ്ങാനുള്ള തട്ടുകള്‍ മറികടക്കുക"
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr "സഹജമായ പ്രവര്‍ത്തനവേള കണ്ടുപിടിയ്ക്കാനുപയോഗിയ്ക്കുന്ന ജികോണ്‍ഫിലെ ചാവി"
+
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr "പിഴവു് തിരുത്താന്‍ സഹായിയ്ക്കുന്ന കോഡ് പ്രാവര്‍ത്തികമാക്കുക"
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr "ഉപയോക്താവ് വ്യക്തമാക്കിയ പ്രയോഗങ്ങള്‍ ലോഡ് ചെയ്യേണ്ട"
+
+#: ../mate-session/main.c:457
+msgid " - the MATE session manager"
+msgstr "- MATE പ്രവര്‍ത്തനവേള നടത്തിപ്പുകാരന്‍"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- ഗ്നോമിലെ മിന്നിമറയുന്ന സ്ക്രീന്‍"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "- ഗ്നോമിലെ മിന്നിമറയുന്ന സ്ക്രീന്‍"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "പുറത്തിറങ്ങുക"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "തടസ്സമുണ്ടാക്കുന്നവരെ വക വയ്ക്കാതെ പുറത്തിറങ്ങുക"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "പുറത്തിറങ്ങുന്നതിനുള്ള സംഭാഷണം കാണിയ്ക്കുക"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "നിര്‍ത്തി വയ്ക്കുന്നതിനുള്ള സംഭാഷണം കാണിയ്ക്കുക"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "തെറ്റുകള്‍ വരുമ്പോള്‍ സംഭാഷണ കളങ്ങള്‍ ഉപയോഗിയ്ക്കുക"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "ഇപ്പോഴുള്ള പ്രവര്‍ത്തനവേളയ്ക്കു് പേരു് കൊടുക്കുക"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAME(പേര്)"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "പ്രവര്‍ത്തനവേള ഇല്ലാതാക്കുക"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "ഉറപ്പു വരുത്തേണ്ട ആവശ്യമില്ല"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "പ്രവര്‍ത്തനവേള നടത്തിപ്പുകാരനുമായി ബന്ധപ്പെടാന്‍ കഴിയുന്നില്ല"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "പരസ്പരവിരുദ്ധമായ ഐച്ഛികങ്ങളോടെയാണു് പ്രോഗ്രാമിനെ വിളിച്ചിരിയ്ക്കുന്നതു്"
+
diff --git a/po/mn.po b/po/mn.po
new file mode 100644
index 0000000..45094ce
--- /dev/null
+++ b/po/mn.po
@@ -0,0 +1,495 @@
+# translation of mate-session.mate-2-4.po to Mongolian
+# translation of mate-session.HEAD.po to Mongolian
+# translation of mn.po to Mongolian
+# translation of mate-session.HEAD.mn.po to Mongolian
+# This file is distributed under the same license as the PACKAGE package.
+# SukhOchir <[email protected]>,
+# Bayarsaihan <[email protected]>
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+# Sanlig Badral <[email protected]>, 2003.
+# Sanlig Badral <[email protected]>, 2003.
+# Sanlig Badral <[email protected]>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.mate-2-4\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-01-11 08:59+0000\n"
+"PO-Revision-Date: 2003-12-26 22:00+0100\n"
+"Last-Translator: Sanlig Badral <[email protected]>\n"
+"Language-Team: Mongolian <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.0.2\n"
+
+#: mate-session/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "TCP холболтыг зөвшөөрөх"
+
+#: mate-session/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"Найдвартай байдлын үүднээс , _IceTcpTransNoListen() -тай платтформ(XFree86 "
+"systems), mate-session TCP холболтын портыг сонсохгүй. Энэ сонголт "
+"(authorized) алсын хостын холболтыг зөвшөөрөх ба mate-session эргэж шинээр "
+"эхлүүлсний дараа нөлөөлнө."
+
+#: mate-session/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Хэрвээ нээлттэй бол mate-session хэрэглэгчийг гарахын өмнө сонордуулна."
+
+#: mate-session/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Хэрвээ нээлттэй бол mate-session хэрэглэгчийг гарахын өмнө суултыг нь "
+"автоматаар хадгалана. Эсвэл гарахынх нь өмнө диалог харуулна."
+
+#: mate-session/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "Горимоос гарах"
+
+#: mate-session/mate-session.schemas.in.h:6
+msgid ""
+"Preferred Image to use for the splash screen when logging in to the MATE "
+"Desktop"
+msgstr "ГНОМЕ дэлгэцэнд орох үед сонгосон зургийг дэлгэцэнд тавина"
+
+#: mate-session/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "Суултыг хадгалах"
+
+#: mate-session/mate-session.schemas.in.h:8
+msgid "Show the splash screen"
+msgstr "Дэлгэцийн өнгийг харуулах"
+
+#: mate-session/mate-session.schemas.in.h:9
+msgid "Show the splash screen when the session starts up"
+msgstr "Суулт эхлэхэд дэлгэцэнд харуулах өнгө"
+
+#: mate-session/mate-session.schemas.in.h:10
+msgid "Splash Screen Image"
+msgstr "Дэлгэцэнд тавих зураг"
+
+#: mate-session/gsm-client-editor.c:97 mate-session/startup-programs.c:314
+msgid "_Order:"
+msgstr "Цуваа"
+
+#: mate-session/gsm-client-editor.c:99
+msgid "The order in which applications are started in the session."
+msgstr "Суултанд эхэлсэн програмын цуваа"
+
+#: mate-session/gsm-client-editor.c:106
+msgid "What happens to the application when it exits."
+msgstr "Програмаас гарах үед юу болов"
+
+#: mate-session/gsm-client-editor.c:109
+msgid "_Style:"
+msgstr "Загвар"
+
+#: mate-session/gsm-client-list.c:150
+#: mate-session/session-properties-capplet.c:412
+msgid "Order"
+msgstr "Цуваа"
+
+#: mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr "Загвар"
+
+#: mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr "Хэсэг"
+
+#: mate-session/gsm-client-list.c:165
+msgid "Program"
+msgstr "Програм"
+
+#: mate-session/gsm-client-row.c:31
+msgid "Inactive"
+msgstr "Идэвхигүй"
+
+#: mate-session/gsm-client-row.c:32
+msgid "Waiting to start or already finished."
+msgstr "Бүүр дуусгах эсвэл эхлүүлэхийг хүлээж байна"
+
+#: mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr "Эхэлж байна"
+
+#: mate-session/gsm-client-row.c:35
+msgid "Started but has not yet reported state."
+msgstr "Эхлэнэ, гэхдээ төлвийг дамжуулахгүй"
+
+#: mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr "Ажиллуулж байна"
+
+#: mate-session/gsm-client-row.c:38
+msgid "A normal member of the session."
+msgstr "Суултын энгийн гишүүн "
+
+#: mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr "Хадгалж байна"
+
+#: mate-session/gsm-client-row.c:41
+msgid "Saving session details."
+msgstr "Суултыг нарийвчлан хадгалж байна"
+
+#: mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr "Тодорхойлогдоогүй"
+
+#: mate-session/gsm-client-row.c:44
+msgid "State not reported within timeout."
+msgstr "Тасарсан учир тодорхойлогдсонгүй"
+
+#: mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr "Хэвийн"
+
+#: mate-session/gsm-client-row.c:51
+msgid "Unaffected by logouts but can die."
+msgstr "Гаралтаар хандалтгүй болох боловч устана"
+
+#: mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr "Дахин эхлэх"
+
+#: mate-session/gsm-client-row.c:54
+msgid "Never allowed to die."
+msgstr "Устахыг хэзээ ч зөвшөөрөхгүй"
+
+#: mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr "Хогийн сав"
+
+#: mate-session/gsm-client-row.c:57
+msgid "Discarded on logout and can die."
+msgstr "Гаралтаар ажиллагаа зогсож,устана"
+
+#: mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr "Тохиргоо"
+
+#: mate-session/gsm-client-row.c:60
+msgid "Always started on every login."
+msgstr "Горим руу орох бүрд эхлэх"
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: mate-session/gsm-gsd.c:41
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"ГНОМЕ демоны тохиргоог эхлүүлэхэд алдаа гарлаа.\n"
+"\n"
+"Яригч, дэвсгэр зэрэг зарим зүйлсийн тохиргоо зөв ажиллагаагүй байна."
+
+#: mate-session/gsm-gsd.c:53
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Сүүлийн алдааны мэдээлэл нь:\n"
+"\n"
+
+#: mate-session/gsm-gsd.c:58
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"Таныг эргэж нэвтрэхэд ГНОМЕ тохируулгын программыг дахин эхлүүлэхийг "
+"оролдоно."
+
+#: mate-session/gsm-gsd.c:115
+msgid "There was an unknown activation error."
+msgstr "Алдаа тодорхойгүй байна"
+
+#: mate-session/gsm-gsd.c:157
+msgid "The Settings Daemon restarted too many times."
+msgstr "Тохируулгын програм хэтэрхий олон удаа ачаалагдсан байна"
+
+#: mate-session/logout.c:355
+msgid "Are you sure you want to log out?"
+msgstr "Та үнэхээр гарахыг хүсэж байна уу?"
+
+#: mate-session/logout.c:372
+msgid "_Save current setup"
+msgstr "_Идэвхитэй бүтцийг хадгалах"
+
+#: mate-session/logout.c:393
+msgid "Action"
+msgstr "Үйлдэл"
+
+#: mate-session/logout.c:410
+msgid "_Log out"
+msgstr "_Гарах"
+
+#: mate-session/logout.c:416
+msgid "Sh_ut down"
+msgstr "_Унтраах"
+
+#: mate-session/logout.c:423
+msgid "_Restart the computer"
+msgstr "Компьютерийг дахин асаах"
+
+#: mate-session/main.c:81
+msgid "Specify a session name to load"
+msgstr "Ачаалах суултын нэрийг өгнө үү"
+
+#: mate-session/main.c:82
+msgid "Only read saved sessions from the default.session file"
+msgstr "Хадгалагдсан суултууд зөвхөн default.session файлаас уншигдана"
+
+#: mate-session/main.c:83
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr "Клиентүүдийг бүртгэхэд хэдэн хором хүлээх вэ. (0=тасралтгүй)"
+
+#: mate-session/main.c:84
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr "Клиентүүдийг хариу өгтөл хэдэн хором хүлээх вэ(0=тасралтгүй)"
+
+#: mate-session/main.c:85
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr "Клиентүүдийг усттал хэдэн хором хүлээх вэ (0=тасралтгүй)"
+
+#: mate-session/main.c:265
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"%s интернет хаягийг тогтоож чадсангүй.\n"
+"Энэ шалтгаанаар ГНОМЕ зөв ажиллахгүй байж болно.\n"
+"Та %s /etc/hosts файлд нэмснээр асуудал шийдэгдэх боломжтой."
+
+#: mate-session/main.c:272
+msgid "Log in Anyway"
+msgstr "Ямарч гэсэн нэвтрэх"
+
+#: mate-session/main.c:273
+msgid "Try Again"
+msgstr "Дахин оролдоно уу"
+
+#: mate-session/manager.c:223
+msgid "Your session has been saved"
+msgstr "Таны суулт хадгалагдсан"
+
+#: mate-session/manager.c:527
+msgid "Wait abandoned due to conflict."
+msgstr "Зөрчилийн улмаас хүлээлт тасарлаа."
+
+#: mate-session/manager.c:1035
+#, c-format
+msgid "No response to the %s command."
+msgstr "%s команд дээр хариу ирэхгүй байна."
+
+#: mate-session/manager.c:1036
+msgid "The program may be slow, stopped or broken."
+msgstr "Програм магад удаан эсвэл зогссон эсвэл эвдрэлтэй."
+
+#: mate-session/manager.c:1037
+msgid "You may wait for it to respond or remove it."
+msgstr "Та үүнийг хариу өгөхийг нь хүлээ эсвэл устга"
+
+#: mate-session/manager.c:1760
+msgid "Restart abandoned due to failures."
+msgstr "Шинэ эхлүүлэлт алдааны улмаас тасарлаа."
+
+#: mate-session/manager.c:1956
+msgid "A session shutdown is in progress."
+msgstr "Суултыг шууд унтраах"
+
+#: mate-session/save-session.c:46
+msgid "Set the current session"
+msgstr "Идэвхитэй суулт тодорхойлох"
+
+#: mate-session/save-session.c:47
+msgid "Kill session"
+msgstr "Суултыг хүчээр таслах"
+
+#: mate-session/save-session.c:48
+msgid "Use dialog boxes"
+msgstr "Харилцах цонхнууд ашиглах"
+
+#: mate-session/save-session.c:146 mate-session/save-session.c:179
+msgid "Could not connect to the session manager"
+msgstr "Суулт менежерт холбогдож чадсангүй"
+
+#: mate-session/session-names.c:143
+msgid "The session name cannot be empty"
+msgstr "Та ямар нэг суултын нэр өгөх ёстой"
+
+#: mate-session/session-names.c:154
+msgid "The session name already exists"
+msgstr "Суултын нэр хэдийнэ үүссэн байна"
+
+#: mate-session/session-names.c:188
+msgid "Add a new session"
+msgstr "Шинэ суулт нэмэх"
+
+#: mate-session/session-names.c:218
+msgid "Edit session name"
+msgstr "Суултын нэрийг засах"
+
+#: mate-session/session-properties-capplet.c:122
+msgid "_Edit"
+msgstr "_Засварлах"
+
+#: mate-session/session-properties-capplet.c:190
+msgid ""
+"Some changes are not saved.\n"
+"Is it still OK to exit?"
+msgstr ""
+"Зарим өөрчлөлтүүд хадгалагдсангүй.\n"
+"Тэгсэн ч гэсэн гарах уу?"
+
+#: mate-session/session-properties-capplet.c:240
+#: mate-session/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Суултууд"
+
+#: mate-session/session-properties-capplet.c:273
+msgid "Show splash screen on _login"
+msgstr "_Нэвтрэхэд мэндчилгээ цонх харуулах"
+
+#: mate-session/session-properties-capplet.c:284
+#, fuzzy
+msgid "As_k on logout"
+msgstr "Гарахад нягтлан _асуух"
+
+#: mate-session/session-properties-capplet.c:295
+msgid "Automatically save chan_ges to session"
+msgstr "Суултын өөрчлөлтүүдийг автоматаар хадгалах"
+
+#: mate-session/session-properties-capplet.c:306
+msgid "_Sessions:"
+msgstr "_Суултууд:"
+
+#: mate-session/session-properties-capplet.c:324
+msgid "Session Name"
+msgstr "Суултын нэр"
+
+#: mate-session/session-properties-capplet.c:375
+msgid "Session Options"
+msgstr "Суултын тохиргоо"
+
+#: mate-session/session-properties-capplet.c:384
+msgid "Current Session"
+msgstr "Идэвхитэй суулт"
+
+#: mate-session/session-properties-capplet.c:393
+msgid "Additional startup _programs:"
+msgstr "Нэмэлт эхлэл _програмууд"
+
+#: mate-session/session-properties-capplet.c:414
+msgid "Command"
+msgstr "Комманд"
+
+#: mate-session/session-properties-capplet.c:446
+msgid "Startup Programs"
+msgstr "Эхлэл програмууд"
+
+#: mate-session/session-properties.c:49
+msgid "Remove the currently selected client from the session."
+msgstr "Яг одоо сонгогдсон клиентийг суултаас устгах"
+
+#: mate-session/session-properties.c:55
+msgid "Apply changes to the current session"
+msgstr "Өөрчлөлтүүдийг идэвхитэй байгаа энэ суултанд хэрэглэх"
+
+#: mate-session/session-properties.c:61
+msgid "The list of programs in the session."
+msgstr "Суулт дэх програмын жагсаалт."
+
+#: mate-session/session-properties.c:88
+msgid "Currently running _programs:"
+msgstr "Одоогоор ажиллаж буй програмууд"
+
+#: mate-session/session-properties.c:104
+msgid "Initialize session settings"
+msgstr "Суултын тохируулгыг эхлүүлэх"
+
+#: mate-session/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Суултаа тохируулах"
+
+#: mate-session/splash-widget.c:43
+msgid "Sawfish Window Manager"
+msgstr "\"Савфиш\" цонхны менежер"
+
+#: mate-session/splash-widget.c:44
+msgid "Marco Window Manager"
+msgstr "\"Метасити\" цонхны менежер"
+
+#: mate-session/splash-widget.c:45
+msgid "Window Manager"
+msgstr "Цонхны менежер"
+
+#: mate-session/splash-widget.c:46
+msgid "The Panel"
+msgstr "Самбар"
+
+#: mate-session/splash-widget.c:47
+msgid "Session Manager Proxy"
+msgstr "Суулт менежер - Итгэмжилэгч"
+
+#: mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "Наутилус"
+
+#: mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr "Дэлгэцийн тохируулга"
+
+#: mate-session/startup-programs.c:292
+msgid "_Startup Command:"
+msgstr "_Эхлэл комманд:"
+
+#: mate-session/startup-programs.c:298
+msgid "Startup Command"
+msgstr "Эхлэл комманд:"
+
+#: mate-session/startup-programs.c:347
+msgid "The startup command cannot be empty"
+msgstr "Эхлэл комманд хоосон байх ёсгүй"
+
+#: mate-session/startup-programs.c:384
+msgid "Add Startup Program"
+msgstr "Эхлэл програм нэмэх"
+
+#: mate-session/startup-programs.c:405
+msgid "Edit Startup Program"
+msgstr "Эхлэл програм засварлах"
+
+#~ msgid "Save Current Session"
+#~ msgstr "Ажиллаж буй суултыг хадгалах"
+
+#~ msgid "Save current state of desktop"
+#~ msgstr "Дэлгэцийн идэвхитэй төлвийг хадгалах"
diff --git a/po/mr.po b/po/mr.po
new file mode 100644
index 0000000..333e227
--- /dev/null
+++ b/po/mr.po
@@ -0,0 +1,522 @@
+# translation of mr.po to Marathi
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# THIRD AUTHOR: Rahul Bhalerao <[email protected]>, 2006.
+# FOURTH AUTHOR: Sandeep Shedmake <[email protected]>, 2008, 2009.
+# Sandeep Shedmake <[email protected]>, 2009, 2010.
+# FIRST AUTHOR: Swapnil Hajare <[email protected]>
+# SECOND AUTHOR: Pradeep Deshpande
+msgid ""
+msgstr ""
+"Project-Id-Version: mr\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-session&component=general\n"
+"POT-Creation-Date: 2010-07-20 11:01+0000\n"
+"PO-Revision-Date: 2010-07-22 14:29+0530\n"
+"Last-Translator: Sandeep Shedmake <[email protected]>\n"
+"Language-Team: Marathi <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "आदेश नीवडा"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "सुरूवातीचा कार्यक्रम समाविष्ट करा"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "सुरु होणारे कार्यक्रम संपादन करा"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "सुरुवातीची आज्ञा रिकामी असू शकत नाही"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "प्रारंभ आदेश वैध नाही"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "कार्यान्वीत"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "चिन्ह"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "कार्यक्रम"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "प्रारंभिक अनुप्रयोग आवड निवड"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "नाव आढळले नाही"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "वर्णन आढळले नाही"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "या अनुप्रयोगाची आवृत्ती"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "मदत दस्तऐवज दाखवण्यास अशक्य"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "MATE मध्ये दाखल करण्याजोगी सत्र लॉग"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "पूर्वनिर्धारीत सत्र"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "फाइल व्यवस्थापक"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "समर्थीत असल्यास, mate-session वापरकर्त्याला सत्र संपण्यापूर्वी सूचना देईल."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "समर्थीत असल्यास, mate-session सत्राला स्वयंपणे साठवेल."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "पूर्वनिर्धारीत सत्राचे भाग असलेले अनुप्रयोगांची यादी."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"सत्राचे भाग म्हणून आवश्यक घटकांची यादी. (प्रत्येक घटकाचे नाव \"/desktop/mate/session/"
+"required_components\" अंतर्गत कि यासह निगडीत आहे.) सत्र प्राधान्यक्रम साधारणतया "
+"वापरकर्त्यांना सत्रा पासून आवश्यक घटक काढण्यास परवानगी देत नाही, व सत्र व्यवस्थापक "
+"आपोआप आवश्क घटक सत्र मध्ये घटक न काढल्यास समाविष्ट करतो."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "बाहेर जाण्यासाठीचे चिन्ह"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "तावदान"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "झटकन दिसाऱ्या पडदा करीता निर्धारीत प्रतिमा"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "आवश्यक सत्र घटक"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "सत्र साठवा"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "झटकन येणारा पडदा दाखवा"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "सत्र सुरू झाल्यानंतर झटकन येणारा पडदा दाखवा"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"फाइल व्यवस्थापक डेस्कटॉप चिन्ह पुरवितो व तुम्हाला संचयीत फाइलशी संपर्क साधण्यास सहमती "
+"देतो."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "The number of minutes of inactivity before the session is considered idle."
+msgstr "सत्र रिकमे होण्यापूर्वी मिनीटं अंतर्गत निष्क्रीयता कालावधी."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"पटल पडद्याच्या वरील किंवा तळ बाजूस समाविष्ठीत मेन्यू, चौकट यादी, स्थिती चिन्ह, घड्याळ, "
+"इत्यादी करीता पट्टी पुरवितो."
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"चौकट व्यवस्थपाक या कार्यक्रम चौकट भोवती शिर्षक पट्टी व किनार काढतो, व वापरकर्त्यास "
+"चौकट हलविण्यास व पुन्ह आकार देण्यास मदत करतो."
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"affect the next session login."
+msgstr "हे रिलेटिव्ह मार्गाचे मूल्य $datadir/pixmaps/ डिरेक्ट्रीवर आधारीत नाही. उप-डिरेक्ट्रीज् व प्रतिमांचे नावे वैध मूल्ये आहेत. हे मूल्य बदल्यास पुढील सत्र प्रवेशावर फरक पडू शकतो."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "सत्र रिकामे असण्यापूर्वीचा वेळ"
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "खिडकी व्यवस्थापक"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>काहिक कार्यक्रम आताही कार्यरत आहे:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"कार्यक्रमाच्या समाप्ती करीता प्रतिक्षेत आहे. कार्यक्रमास व्यत्य आणल्यास कार्यरत कार्य "
+"अकार्यक्षम होण्याची भिती राहेल."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "प्रवेश केल्यावर कुठले अनुप्रयोग सुरू करायचे ते नीवडा"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "आरंभिक अनुप्रयोग"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "अगाऊ प्रारंभिक कार्यक्रम (_p):"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "तपासा..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "आदेश (_m):"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "टिपण्णी (_e):"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "पर्याय"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "आरंभिक कार्यक्रम"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "बाहेर पडतेवेळी आपोआप अनुप्रयोग कार्यरत करणे स्मर्णात ठेवा (_A)"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "नाव (_N):"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "सद्याचे कार्यरत अनुप्रयोग लक्षात ठेवा (_R)"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "फाइल वैध .desktop फाइल नाही"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "अपरिचीत डेस्कटॉप फाइल आवृत्ती '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "%s सुरू करत आहे"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "अनुप्रयोग आदेश ओळ पासून दस्तऐवज स्वीकारत नाही"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "अपरिचीत प्रक्षेपन पर्याय: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "'Type=Link' डेस्कटॉप नोंदणी करीता दस्तऐवजातील URIs पाठवू शकत नाही"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "प्रक्षेपण घटक नाही"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "सत्र संचालकाशी जुळवणी मोडा"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "संचयीत संयोजना समाविष्ठीत फाइल निर्देशीत करा"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FILE"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "सत्र व्यवस्थापन ID निर्देशीत करा"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "सत्र व्यवस्थपान पर्याय:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "सत्र व्यवस्थपान पर्याय दाखवा"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"संयोजना सर्वरसह त्रुटी आढळली.\n"
+"(%s स्थिती %d सह बाहेर पडले)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "चिन्ह '%s' आढळले नाही"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "अज्ञात"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "कार्यक्रम अजूनही कार्यरत आहे:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "काहिक कार्यक्रम अजूनही कार्यरत आहे:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"कार्यक्रमाचे समाप्ती करीता प्रतिक्षेत आहे. अशा कार्यक्रमास अडथळा आणल्यास तुमचे कार्य लुप्त "
+"होऊ शकते."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "वापरकर्त्यास कसेहीकरून बदलवा"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "कसेही करून बाहेर पडा"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "कसेहीकरून रद्द वगळा"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "कसेही करून हायबरनेट करा"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "कसेही करून बंद करा करा"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "कसेही करून पुन्हा सुरू करा"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "पडदा कुलूपबंद करा"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "रद्द करा"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "तुम्ही आपोआप %d सेकंदात बाहेर पडाल."
+msgstr[1] "तुम्ही आपोआप %d सेकंदात बाहेर पडाल."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "प्रणाली आपोआप %d सेकंदात पूर्णपणे बंद होईल."
+msgstr[1] "प्रणाली आपोआप %d सेकंदात पूर्णपणे बंद होईल."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "तुम्ही वर्तमानक्षणी \"%s\" नुरूप प्रवेश केला आहे."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "या प्रणालीतून आता बाहेर पडा?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "वापरकर्ता बदलवा (_S)"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "बाहेर पडा (_L)"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "या प्रणालीस आता बंद करा?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "सस्पेंड (_u)"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "हायबरनेट (_H)"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "पुन्हा सुरू करा (_R)"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "बंद करा (_S)"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "प्रतिसाद देत नाह"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking log out."
+msgstr "हा कार्यक्रम बाहेर पडण्यापासून रोखत आहे."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "नविन क्लाऐंट जुळवणी नकारत आहे कारण सत्र वर्तमानक्षणी बंद केले जात आहे\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ICE सक्रीय सॉकेट बनवू शकला नाही: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "प्रवेश सत्र सुरू करण्यास अपयशी (व X सर्वरशी जुळवणी स्थपीत करणे शक्य नाही)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "मानक स्वप्रारंभ संचयीकावर खोडून पुन्हा लिहा"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to lookup default session"
+msgstr "पूर्वनिर्धारीत सत्र करीता MateConf कि"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "डीबगींग कोड कार्यान्वीत करा"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "वापरकर्ता-निर्देशीत अनुप्रयोग दाखल करू शकले नाही"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - MATE सत्र व्यवस्थापक"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- MATE स्पलॅश पडदा"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "MATE स्पलॅश पडदा"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "बाहेर पडा"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "अस्तित्वातील इन्हीबीटरकडे दुर्लक्ष करून, बाहेर पडा"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "बाहेरपडण्याकरीता संवाद दाखवा"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "बंद करा संवाद दाखवा"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "त्रुटी करीता संवाद पट वापरा"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "सध्याच्ये सत्र नाव निश्चित करा"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "नाव"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "सत्र संपवा"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "होकरची आवाश्यकता नाही"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "सत्र संचालकाशी संपर्क झाला नाही"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "मतभेदीय पर्यायसह कार्यक्रमाला कॉल केले"
+
diff --git a/po/ms.po b/po/ms.po
new file mode 100644
index 0000000..bed8731
--- /dev/null
+++ b/po/ms.po
@@ -0,0 +1,502 @@
+# mate-session Bahasa Melayu (ms)
+# Melihat Sistem kehakiman masa kini, Saya tak hairan
+# kalau saya disabitkan dengan kesalahan mendera isteri
+# ketika saya masih BUJANG
+#
+# Hasbullah Bin Pit (sebol) <[email protected]>, 2001-2003
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-01-11 08:59+0000\n"
+"PO-Revision-Date: 2003-08-08 01:58+0800\n"
+"Last-Translator: Hasbullah Bin Pit <[email protected]>\n"
+"Language-Team: Projek Gabai <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: mate-session/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "Izinkan Sambungan TCP"
+
+#: mate-session/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"Atas sebab keselamatan, pada platform yang mempunyai _IceTcpTransNoListen() "
+"(Sistem XFree86), mate-session tidak akan mendengar sambungan pada liang "
+"TCP. Opsyen ini akan membolehkan sambungan (sah) drpd hos jauh. mate-"
+"session mesti diulanghidupkan supaya ia bertindakbalas."
+
+#: mate-session/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Jika dihidupkan, mate-session akan memaklum pengguna sebelum mengakhirkan "
+"sesi."
+
+#: mate-session/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Jika dihidupkan, mate-session akan menyimpan sesi secara automatik. "
+"Sebaliknya dialog logkeluar akan mempunyai opsyen untuk menyimpan sesi."
+
+#: mate-session/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "Maklum logkeluar"
+
+#: mate-session/mate-session.schemas.in.h:6
+msgid ""
+"Preferred Image to use for the splash screen when logging in to the MATE "
+"Desktop"
+msgstr ""
+"Imej digemari untuk digunakan bagi skrin splash bila menglogmasuk ke Desktop "
+"MATE"
+
+#: mate-session/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "Simpan Sesi"
+
+#: mate-session/mate-session.schemas.in.h:8
+msgid "Show the splash screen"
+msgstr "Papar skrin splash"
+
+#: mate-session/mate-session.schemas.in.h:9
+msgid "Show the splash screen when the session starts up"
+msgstr "Papar skrin splash bila sesi bermula"
+
+#: mate-session/mate-session.schemas.in.h:10
+msgid "Splash Screen Image"
+msgstr "Imej Skrin Splash"
+
+#: mate-session/gsm-client-editor.c:97 mate-session/startup-programs.c:314
+msgid "_Order:"
+msgstr "_Turutan:"
+
+#: mate-session/gsm-client-editor.c:99
+msgid "The order in which applications are started in the session."
+msgstr "Turutan aplikasi yang mana dimulakan pada sesi."
+
+#: mate-session/gsm-client-editor.c:106
+msgid "What happens to the application when it exits."
+msgstr "Apa terjadi pada aplikasi bila ia keluar."
+
+#: mate-session/gsm-client-editor.c:109
+msgid "_Style:"
+msgstr "_Gaya:"
+
+#: mate-session/gsm-client-list.c:150
+#: mate-session/session-properties-capplet.c:412
+msgid "Order"
+msgstr "Turutan:"
+
+#: mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr "Gaya:"
+
+#: mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr "Keadaan:"
+
+#: mate-session/gsm-client-list.c:165
+msgid "Program"
+msgstr "Program"
+
+#: mate-session/gsm-client-row.c:31
+msgid "Inactive"
+msgstr "Tidak aktif"
+
+#: mate-session/gsm-client-row.c:32
+msgid "Waiting to start or already finished."
+msgstr "Menunggu untuk bermula atau sudah tamat."
+
+#: mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr "Memulakan"
+
+#: mate-session/gsm-client-row.c:35
+msgid "Started but has not yet reported state."
+msgstr "Bermula tetapi tidak dilaporkan keadaannya"
+
+#: mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr "Terlaksana"
+
+#: mate-session/gsm-client-row.c:38
+msgid "A normal member of the session."
+msgstr "Ahli normal bagi sesi"
+
+#: mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr "Menyimpan"
+
+#: mate-session/gsm-client-row.c:41
+msgid "Saving session details."
+msgstr "Menyimpan perincian sesi."
+
+#: mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr "Entah"
+
+#: mate-session/gsm-client-row.c:44
+msgid "State not reported within timeout."
+msgstr "Keadaan tidak dilaporkan dalam hadmasa."
+
+#: mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr "Normal"
+
+#: mate-session/gsm-client-row.c:51
+msgid "Unaffected by logouts but can die."
+msgstr "Kebal oleh logkeluar tetapi boleh mati"
+
+#: mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr "Ulanghidup"
+
+#: mate-session/gsm-client-row.c:54
+msgid "Never allowed to die."
+msgstr "Tidak diizinkan untuk mati."
+
+#: mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr "Sampah"
+
+#: mate-session/gsm-client-row.c:57
+msgid "Discarded on logout and can die."
+msgstr "Abaikan ketika log keluar dan boleh mati"
+
+#: mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr "Penetapan"
+
+#: mate-session/gsm-client-row.c:60
+msgid "Always started on every login."
+msgstr "Sentiasa dimulakan pada setiap logmasuk."
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: mate-session/gsm-gsd.c:41
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"Terdapat ralat memulakan Daemon Tetapan MATE.\n"
+"\n"
+"Terdapat perkara seperti tetapan tema, bunyi atau latang belakang mungkin "
+"tidak berkerja dengan betul."
+
+#: mate-session/gsm-gsd.c:53
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Mesej ralat terakhir adalah:\n"
+"\n"
+
+#: mate-session/gsm-gsd.c:58
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"MATE akan cuba mengulanghidupkan Daemon Tetapan bila anda log masuk kelak."
+
+#: mate-session/gsm-gsd.c:115
+msgid "There was an unknown activation error."
+msgstr "Terdapat ralat pengaktifan yang tidak diketahui."
+
+#: mate-session/gsm-gsd.c:157
+msgid "The Settings Daemon restarted too many times."
+msgstr "Daemon Tetapan diulanghidup terlalu banyak kali."
+
+#: mate-session/logout.c:355
+msgid "Are you sure you want to log out?"
+msgstr "Adakah anda pasti untuk log keluar?"
+
+#: mate-session/logout.c:372
+msgid "_Save current setup"
+msgstr "_Simpan tetapan semasa"
+
+#: mate-session/logout.c:393
+msgid "Action"
+msgstr "Aksi"
+
+#: mate-session/logout.c:410
+msgid "_Log out"
+msgstr "_Log keluar"
+
+#: mate-session/logout.c:416
+msgid "Sh_ut down"
+msgstr "T_utup komputer"
+
+#: mate-session/logout.c:423
+msgid "_Restart the computer"
+msgstr "_Ulanghidup komputer"
+
+#: mate-session/main.c:81
+msgid "Specify a session name to load"
+msgstr "Nyatakan nama sesi untuk dimuatkan"
+
+#: mate-session/main.c:82
+msgid "Only read saved sessions from the default.session file"
+msgstr "Hanya membaca sesi tersimpan daripada fail default.session"
+
+#: mate-session/main.c:83
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr ""
+"Tempoh dalam milisaat diluangkan untuk menunggu klien mendaftar (0=selamanya)"
+
+#: mate-session/main.c:84
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr ""
+"Tempoh dalam milisaat diluangkan untuk menunggu klien menjawap (0=selamanya)"
+
+#: mate-session/main.c:85
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr ""
+"Tempoh dalam milisaat diluangkan untuk menunggu klien mati (0=selamanya)"
+
+#: mate-session/main.c:265
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"Tak boleh mencari alamat internet untuk %s.\n"
+"Ianya akan mengelakkan MATE daripada bekerja dengan betul.\n"
+"Anda boleh membetulkan maslaah ini dengan menambah\n"
+" %s di fail /etc/hosts"
+
+#: mate-session/main.c:272
+msgid "Log in Anyway"
+msgstr "Log Masuk Juga"
+
+#: mate-session/main.c:273
+msgid "Try Again"
+msgstr "Cuba Lagi"
+
+#: mate-session/manager.c:223
+msgid "Your session has been saved"
+msgstr "Sesi anda telah pun disimpan"
+
+#: mate-session/manager.c:527
+msgid "Wait abandoned due to conflict."
+msgstr "Penantian diabaikan kerana konflik"
+
+#: mate-session/manager.c:1035
+#, c-format
+msgid "No response to the %s command."
+msgstr "Tiada jawapan untuk arahan %s."
+
+#: mate-session/manager.c:1036
+msgid "The program may be slow, stopped or broken."
+msgstr "Program mungkin perlahan, terhenti atau berderai."
+
+#: mate-session/manager.c:1037
+msgid "You may wait for it to respond or remove it."
+msgstr "Anda boleh menunggunya dijawap atau dibuang."
+
+#: mate-session/manager.c:1760
+msgid "Restart abandoned due to failures."
+msgstr "Ulanghidup diabaikan kerana kegagalan."
+
+#: mate-session/manager.c:1956
+msgid "A session shutdown is in progress."
+msgstr "Sesi penutupan dalam progres."
+
+#: mate-session/save-session.c:46
+msgid "Set the current session"
+msgstr "Tetapkan sesi semasa"
+
+#: mate-session/save-session.c:47
+msgid "Kill session"
+msgstr "Bunuh sesi"
+
+#: mate-session/save-session.c:48
+msgid "Use dialog boxes"
+msgstr "Guna kekotak dialog"
+
+#: mate-session/save-session.c:146 mate-session/save-session.c:179
+msgid "Could not connect to the session manager"
+msgstr "Tak boleh menyambung ke pengurus sesi"
+
+#: mate-session/session-names.c:143
+msgid "The session name cannot be empty"
+msgstr "Nama sesi tak boleh kosong"
+
+#: mate-session/session-names.c:154
+msgid "The session name already exists"
+msgstr "Nama sesi sudah wujud"
+
+#: mate-session/session-names.c:188
+msgid "Add a new session"
+msgstr "Tambah sesi baru"
+
+#: mate-session/session-names.c:218
+msgid "Edit session name"
+msgstr "Edit nama sesi"
+
+#: mate-session/session-properties-capplet.c:122
+msgid "_Edit"
+msgstr "_Edit"
+
+#: mate-session/session-properties-capplet.c:190
+msgid ""
+"Some changes are not saved.\n"
+"Is it still OK to exit?"
+msgstr ""
+"Terdapat perubahan tidak disimpan\n"
+"Masih OK untuk keluar?"
+
+#: mate-session/session-properties-capplet.c:240
+#: mate-session/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Sesi"
+
+#: mate-session/session-properties-capplet.c:273
+msgid "Show splash screen on _login"
+msgstr "Papar skrin splash pada _logmasuk"
+
+#: mate-session/session-properties-capplet.c:284
+#, fuzzy
+msgid "As_k on logout"
+msgstr "_Maklum pada logkeluar"
+
+#: mate-session/session-properties-capplet.c:295
+msgid "Automatically save chan_ges to session"
+msgstr "Automatik simpan per_ubahan pada sesi"
+
+#: mate-session/session-properties-capplet.c:306
+msgid "_Sessions:"
+msgstr "_Sessi:"
+
+#: mate-session/session-properties-capplet.c:324
+msgid "Session Name"
+msgstr "Nama Sessi"
+
+#: mate-session/session-properties-capplet.c:375
+msgid "Session Options"
+msgstr "Opsyen Sessi"
+
+#: mate-session/session-properties-capplet.c:384
+msgid "Current Session"
+msgstr "Sessi Semasa"
+
+#: mate-session/session-properties-capplet.c:393
+msgid "Additional startup _programs:"
+msgstr "_Program permulaan tambahan:"
+
+# help-browser/toc-man.c:19
+# help-browser/toc2-man.c:21
+#: mate-session/session-properties-capplet.c:414
+msgid "Command"
+msgstr "Arahan"
+
+#: mate-session/session-properties-capplet.c:446
+msgid "Startup Programs"
+msgstr "Program Permulaan"
+
+#: mate-session/session-properties.c:49
+msgid "Remove the currently selected client from the session."
+msgstr "Buang klien semasa dipilih dari sesi."
+
+#: mate-session/session-properties.c:55
+msgid "Apply changes to the current session"
+msgstr "Terapkan perubahan perubahan pada sesi"
+
+#: mate-session/session-properties.c:61
+msgid "The list of programs in the session."
+msgstr "Senarai program pada sesi."
+
+#: mate-session/session-properties.c:88
+msgid "Currently running _programs:"
+msgstr "_Program sedang terlaksana:"
+
+#: mate-session/session-properties.c:104
+msgid "Initialize session settings"
+msgstr "Initialisasi Tetapan sesi"
+
+#: mate-session/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Konfigurasi sesi anda"
+
+#: mate-session/splash-widget.c:43
+msgid "Sawfish Window Manager"
+msgstr "Pengurus Tetingkap Sawfish"
+
+#: mate-session/splash-widget.c:44
+msgid "Marco Window Manager"
+msgstr "Pengurus Tetingkap Marco"
+
+#: mate-session/splash-widget.c:45
+msgid "Window Manager"
+msgstr "Pengurus Tetingkap"
+
+#: mate-session/splash-widget.c:46
+msgid "The Panel"
+msgstr "Panel"
+
+#: mate-session/splash-widget.c:47
+msgid "Session Manager Proxy"
+msgstr "Pengurus Proksi Sesi"
+
+#: mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "Caja"
+
+#: mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr "Tetapan Desktop"
+
+# help-browser/toc-man.c:19
+# help-browser/toc2-man.c:21
+#: mate-session/startup-programs.c:292
+msgid "_Startup Command:"
+msgstr "Arahan _Permulaan:"
+
+# help-browser/toc-man.c:19
+# help-browser/toc2-man.c:21
+#: mate-session/startup-programs.c:298
+msgid "Startup Command"
+msgstr "Arahan Permulaan"
+
+#: mate-session/startup-programs.c:347
+msgid "The startup command cannot be empty"
+msgstr "Arahan permulaan tak boleh kosong"
+
+#: mate-session/startup-programs.c:384
+msgid "Add Startup Program"
+msgstr "Tambah Program Permulaan"
+
+#: mate-session/startup-programs.c:405
+msgid "Edit Startup Program"
+msgstr "Edit Program Permulaan"
+
+#~ msgid "Save Current Session"
+#~ msgstr "Simpan Sessi semasa"
+
+#~ msgid "Save current state of desktop"
+#~ msgstr "Simpan keadaan semasa bagi desktop"
diff --git a/po/nb.po b/po/nb.po
new file mode 100644
index 0000000..81a8df2
--- /dev/null
+++ b/po/nb.po
@@ -0,0 +1,488 @@
+# Norwegian translation of mate-session (bokmål dialect).
+# Copyright (C) 1998-2004 Free Software Foundation, Inc.
+# Kjartan Maraas <[email protected]>, 1998-2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session 2.31.x\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-02 11:31+0200\n"
+"PO-Revision-Date: 2010-09-02 11:32+0200\n"
+"Last-Translator: Kjartan Maraas <[email protected]>\n"
+"Language-Team: Norwegian <[email protected]>\n"
+"Language: no\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Velg kommando"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Legg til oppstartsprogram"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Rediger oppstartsprogram"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Oppstartskommando kan ikke være tom"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Oppstartskommandoen er ikke gyldig"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Aktivert"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Ikon"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Program"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Brukervalg for oppstartsprogrammer"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Uten navn"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Ingen beskrivelse"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Versjon av dette programmet"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Kunne ikke vise hjelp"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Denne sesjonen logger inn i MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Forvalgt sesjon"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Filhåndterer"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Aktiveres hvis brukeren ønsker en spørsmålsdialog før sesjonen avsluttes."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Hvis denne er aktiv vil sesjonen lagres automatisk."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Liste med programmer som er en del av forvalgt sesjon."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Liste med komponenter som kreves i sesjonen. (Hvert element navngir en "
+"nøkkel under «/desktop/mate/session/required_components».) Dialog for "
+"egenskaper for sesjon vil vanligvis ikke la brukere fjerne en påkrevet "
+"komponent fra sesjonen. Sesjonshåndtereren vil automatisk legge tilbake "
+"påkrevede komponenter i sesjonen hvis de fjernes."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Spør ved avlogging"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Nødvendige deler av sesjonen"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Lagre sesjoner"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr "Filhåndterer gir deg skrivebordsikoner og lar deg håndtere dine filer."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "Antall minutter uten aktivitet før sesjonen anses som inaktiv."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Panelet er linjen øverst eller nederst på skjermen som inneholder menyer, "
+"vinduliste, statusikoner, klokke, etc."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Vindushåndterer er programmet som styrer tittellinje og kanter rundt vinduer "
+"i tillegg til å la deg flytte og endre størrelse på vinduene."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Tid før sesjonen antas å være ubrukt"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Vindushåndterer"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Noen programmer kjører fremdeles:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr "Venter på at programmet skal avsluttes. Hvis du avbryter programmet kan du miste data."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Velg programmer som skal startes når du logger inn"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Oppstartsprogrammer"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Flere oppstarts_programmer:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "Bla gjennom …"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "Ko_mmando:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Komm_entar:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Alternativer"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Oppstartsprogrammer"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "Husk kjørende programmer _automatisk når du logger ut"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Navn:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "Husk kjø_rende program"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Filen er ikke en gyldig .desktop-fil"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Versjon «%s» i skrivebordsfil ikke gjenkjent"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Starter %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Programmet tar ikke dokumenter på kommandolinjen"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Ikke gjenkjent oppstartsflagg: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Kan ikke gi dokument-URIer til en skrivebordsoppføring med «Type=Link»"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Ikke en startbar oppføring"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Deaktiver kobling til sesjonshåndterer"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Oppgi fil med lagret konfigurasjon"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FIL"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Oppgi ID for sesjonshåndtering"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Alternativer for sesjonshåndtering:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Vis alternativer for sesjonshåndtering"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Det er problemer med konfigurasjonstjeneren.\n"
+"(%s avsluttet med status %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Ikon «%s» ikke funnet"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Ukjent"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Et program kjører fremdeles:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Noen programmer kjører fremdeles:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Venter på at programmer skal avsluttes. Hvis du avbryter disse programmene "
+"kan du miste data."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Bytt bruker likevel"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "Logg ut likevel"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Gå i hvilemodus likevel"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Gå i dvalemodus likevel"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "Slå av likevel"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Start på nytt likevel"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Lås skjerm"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Du vil bli logget ut automatisk om %d sekund."
+msgstr[1] "Du vil bli logget ut automatisk om %d sekunder."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Systemet vil bli slått av automatisk om %d sekund."
+msgstr[1] "Systemet vil bli slått automatisk av om %d sekunder."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Du er logget inn som «%s»"
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Logg ut av dette systemet nå?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "_Bytt bruker"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Logg ut"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Slå av dette systemet nå?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "H_vilemodus"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Dvalemodus"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "Sta_rt på nytt"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "_Slå av"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Svarer ikke"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "Dette programmet hindrer utlogging."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "Nekter ny klient tilgang fordi sesjonen er i ferd med å avsluttes\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Kunne ikke opprette plugg for ICE-lytting: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "Kan ikke starte påloggingssesjonen (kan ikke koble til X-tjeneren)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Overstyr forvalgte kataloger for autostart"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "MateConf-nøkkel som brukes til å finne forvalgt sesjon"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Aktiver feilsøkingskode"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Ikke last brukerdefinerte programmer"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "- MATE sesjonshåndterer"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Logg ut"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Logg ut og overse eventuelle hindringer"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Vis logg ut-dialog"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Vis slå av-dialog"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Bruk dialoger for feil"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Gi navn til denne sesjonen"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAVN"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Terminer sesjon"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Ikke krev bekreftelse"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Kunne ikke koble til sesjonshåndterer"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Programmet ble kalt med motstridende alternativer"
diff --git a/po/nds.po b/po/nds.po
new file mode 100644
index 0000000..70c2efb
--- /dev/null
+++ b/po/nds.po
@@ -0,0 +1,508 @@
+# Low German translation for mate-session.
+# Copyright (C) 2009 mate-session's COPYRIGHT HOLDER
+# This file is distributed under the same license as the mate-session package.
+# Nils-Christoph Fiedler <[email protected]>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session master\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2009-11-14 07:03+0000\n"
+"PO-Revision-Date: 2009-11-14 01:12+0100\n"
+"Last-Translator: Nils-Christoph Fiedler <[email protected]>\n"
+"Language-Team: Low German <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Order utwählen"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Systemstartprogramm hentofögen"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Systemstartprogramm bewarken"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "De Systemstartprogrammorder künn nich leer ween"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "De Systemstartprogrammorder is nich valide"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Aktivert"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Symbol"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Programm"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr ""
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Keen Naam"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Keen Beschrievens"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "Verschoon vun düssem Programm"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr ""
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr ""
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Düsser Törn mellt dik bi MATE an"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Standardtörn"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Dateioppasser"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Avmellensdialog"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Balken"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "Törns spiekern"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "Splashbillschirm opwiesen"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Finsteroppasser"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Een paar Programme lööpen noh:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr ""
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Systemstartprogramme"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Tosettliche Systemstart_programme"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "Ankieken..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "Or_der:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Komm_entar:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Optschoonen"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Systemstartprogramme"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr ""
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Naam:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Starte %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Düsses Element is nich startbar"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr ""
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr ""
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FILE"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr ""
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Törnoppassensoptschoonen:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Törnoppassensoptschoonen opwiesen"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Symbol '%s' nich funnen"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Unbekannt"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Een Programm lööpt noh:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Bruker liekers wesseln"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Liekers avmellen"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Liekers slopen gahn"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Liekers överwintern"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "Liekers daalfahren"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Liekers nej starten"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Avslutbillschirm"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Avbreken"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Ji warrt vun alleen avmellt in %d Sekunn."
+msgstr[1] "Ji warrt vun alleen avmellt in %d Sekunnen."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Düsses System warrt vun alleen daalfahrt in %d Sekunn."
+msgstr[1] "Düsses System warrt vun alleen daalfahrt in %d Sekunnen."
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "Nu Avmellen?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "Bruker we_sseln"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "_Avmellen"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "System nu daalfahren?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "S_lopengahn"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "_Överwintern"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "_Nejstart"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "_Daalfahrt"
+
+#: ../mate-session/gsm-manager.c:1220 ../mate-session/gsm-manager.c:1912
+msgid "Not responding"
+msgstr "Antert nich"
+
+#: ../mate-session/gsm-xsmp-client.c:1206
+msgid "This program is blocking log out."
+msgstr "Düsses Programm lett nich to, dat je dik avmellen künnst."
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr ""
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr ""
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr ""
+
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr ""
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr ""
+
+#: ../mate-session/main.c:457
+msgid " - the MATE session manager"
+msgstr "MATE Törnoppasser"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- MATE Splash-Billschirm"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "MATE Splash-Billschirm"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Avmellen"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Avmellen, egal wat kümmt"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Avmellensdialog opwiesen"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Daalfahrdialog opwiesen"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr ""
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Aktuellen Törnnaam setten"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAME"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Törn avbreken"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr ""
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr ""
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr ""
diff --git a/po/ne.po b/po/ne.po
new file mode 100644
index 0000000..240a222
--- /dev/null
+++ b/po/ne.po
@@ -0,0 +1,628 @@
+# translation of mate-session.HEAD.ne.po to Nepali
+# Nepali translation of mate-session
+# This file is distributed under the same license as the mate-session package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+#
+# Pawan Chitrakar <[email protected]>, 2004.
+# Shiva Prasad Pokharel <[email protected]>, 2005.
+# Nabin Gautam <[email protected]>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.HEAD.ne\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-05-13 11:19+0100\n"
+"PO-Revision-Date: 2007-11-08 11:10+0545\n"
+"Last-Translator: Nabin Gautam <[email protected]>\n"
+"Language-Team: Nepali <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=n !=1\n"
+
+#: ../data/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "टीसीपी (TCP) जडानलाई अनुमति दिनुहोस्"
+
+#: ../data/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"सूरक्षाका कारणले, _IceTcpTransNoListen() "
+"(XFree86 प्रणाली) भएको प्लेटफर्ममा, टीसीपी(TCP) पोर्टको जडानका जिनोम सत्रले ध्यान दिदैन । यस विकल्पले (आधिकारीक) टाढाको होस्टबाट जडानलाई अनुमति दिन्छ ।"
+"यसको प्रभाव देखिनका लागि जिनोम-सत्र फेरि सुरु गर्नुपर्दछ ।"
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "सक्षम भएमा, जिनोम सत्रले सत्र अन्त्य हुनुभन्दा पहिला प्रयोगकर्तालाई प्रोत्साहन दिन्छ ।"
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr "सक्षम भएमा, जिनोम-सत्रले आफैँ स्वचालित रूपमा बचत गर्दछ । अन्यथा सत्र बचत गर्न लगआउट बटनमा एउटा विकल्प हुनेछ ।"
+
+#: ../data/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "तत्काल लगआउट"
+
+#: ../data/mate-session.schemas.in.h:6
+msgid "Preferred Image to use for login splash screen"
+msgstr "स्प्लास पर्दामा लगइन गर्नका लागि प्रयोग गरिने रूचाइएको छवि"
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "सत्र बचत गर्नुहोस्"
+
+#: ../data/mate-session.schemas.in.h:8
+msgid "Selected option in the log out dialog"
+msgstr "लगआउट संवादमा चयन गरिएका विकल्प"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Show the splash screen"
+msgstr "स्प्लास पर्दा देखाउनुहोस्"
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Show the splash screen when the session starts up"
+msgstr "सत्र सुरु हुदा स्प्लास पर्दा देखाउनुहोस्"
+
+#: ../data/mate-session.schemas.in.h:11
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr "यो $datadir/pixmaps/ डाइरेक्टरी आधार नभएको सम्बन्धित मार्ग मान हो । उप-डाइरेक्टरी र छवि नाम वैध मान हुन् । यस मानको परिवर्तनले पछिल्लो सत्रको लगइनलाई प्रभाव पार्नेछ ।"
+
+#: ../data/mate-session.schemas.in.h:12
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+"यो लगआउट संवादमा चयन गरिने विकल्प हो, वैध मान "
+"लगिङआउटका लागि \"लगआउट\" , प्रणाली रोक्न \"बन्द गर्नुहोस्\" र प्रणाली सुरु गर्न"
+"\"फेरि सुरु गर्नुहोस्\" हुन् ।"
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "तपाईँको सत्र कन्फिगर गर्नुहोस्"
+
+#: ../data/session-properties.desktop.in.in.h:2
+#: ../mate-session/session-properties-capplet.c:224
+msgid "Sessions"
+msgstr "सत्र"
+
+#: ../mate-session/gsm-at-startup.c:39
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr "यस सत्रका लागि मद्दत प्रविधि समर्थन अनुरोध गरिएको छ, तर मद्दत पहुँच दर्ता फेला परेन । कृपया AT-SPI प्याकेज स्थापना भएको निश्चित गर्नुहोस् । तपाईँको सत्र मद्दत प्रविधि समर्थन बिना सुरु भएको छ ।"
+
+#: ../mate-session/gsm-client-editor.c:123
+msgid "_Order:"
+msgstr "आदेश:"
+
+#: ../mate-session/gsm-client-editor.c:125
+msgid "The order in which applications are started in the session."
+msgstr "सत्रमा अनुप्रयोग सुरुआत गर्ने आदेश ।"
+
+#: ../mate-session/gsm-client-editor.c:133
+msgid "What happens to the application when it exits."
+msgstr "यो अवस्थित हुदा अनुप्रयोगमा के देखापर्दछ ।"
+
+#: ../mate-session/gsm-client-editor.c:134
+msgid "_Style:"
+msgstr "शैली:"
+
+#: ../mate-session/gsm-client-list.c:44
+msgid "Inactive"
+msgstr "निस्क्रिय"
+
+#: ../mate-session/gsm-client-list.c:44
+msgid "Waiting to start or already finished."
+msgstr "सुरुआतका लागि प्रतिक्षा गर्दैछ वा पहिले नै पूरा भएको छ ।"
+
+#: ../mate-session/gsm-client-list.c:46
+msgid "Starting"
+msgstr "सुरुआत"
+
+#: ../mate-session/gsm-client-list.c:46
+msgid "Started but has not yet reported state."
+msgstr "सुरुआत भएको छ तर स्थिति हालसम्म प्रतिवेदन गरिएको छैन ।"
+
+#: ../mate-session/gsm-client-list.c:48
+msgid "Running"
+msgstr "चलिरहेको"
+
+#: ../mate-session/gsm-client-list.c:48
+msgid "A normal member of the session."
+msgstr "सत्रको साधारण सदस्य ।"
+
+#: ../mate-session/gsm-client-list.c:50
+msgid "Saving"
+msgstr "बचत"
+
+#: ../mate-session/gsm-client-list.c:50
+msgid "Saving session details."
+msgstr "सत्र विवरण बचत ।"
+
+#. FIXME find better icon
+#: ../mate-session/gsm-client-list.c:53
+msgid "Unknown"
+msgstr "अज्ञात"
+
+#: ../mate-session/gsm-client-list.c:53
+msgid "State not reported within timeout."
+msgstr "म्याद समाप्तीमा स्थिति प्रतिवेदन गरिएको छैन ।"
+
+#. FIXME find icon
+#: ../mate-session/gsm-client-list.c:60
+msgid "Normal"
+msgstr "साधारण"
+
+#: ../mate-session/gsm-client-list.c:60
+msgid "Unaffected by logouts but can die."
+msgstr "लगआउटद्वारा प्रभावित भएन तर अन्त्य हुनसक्छ ।"
+
+#: ../mate-session/gsm-client-list.c:62
+msgid "Restart"
+msgstr "फेरि सुरु गर्नुहोस्"
+
+#: ../mate-session/gsm-client-list.c:62
+msgid "Never allowed to die."
+msgstr "अन्त्य गर्न कहिले पनि अनुमति नदिनुहोस् ।"
+
+#: ../mate-session/gsm-client-list.c:64
+msgid "Trash"
+msgstr "रद्दीटोकरी"
+
+#: ../mate-session/gsm-client-list.c:64
+msgid "Discarded on logout and can die."
+msgstr "लगआउट अस्वीकार गरियो र अन्त्य हुनसक्छ ।"
+
+#: ../mate-session/gsm-client-list.c:66
+msgid "Settings"
+msgstr "सेटिङ"
+
+#: ../mate-session/gsm-client-list.c:66
+msgid "Always started on every login."
+msgstr "सधैँ प्रत्येक लगइनमा सुरु गरिन्छ ।"
+
+#: ../mate-session/gsm-client-list.c:190
+msgid "Order"
+msgstr "आदेश"
+
+#: ../mate-session/gsm-client-list.c:197
+msgid "Style"
+msgstr "शैली"
+
+#: ../mate-session/gsm-client-list.c:204
+msgid "State"
+msgstr "स्थिति"
+
+#: ../mate-session/gsm-client-list.c:211
+#: ../mate-session/session-properties-capplet.c:283
+msgid "Program"
+msgstr "कार्यक्रम"
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: ../mate-session/gsm-gsd.c:45
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"जिनोम सेटिङ डेइमोन सुरुआत गर्दा त्रुटि थियो ।\n"
+"\n"
+"केही विषयहरू, जस्तै; ध्वनि, वा पृष्टभूमि सेटिङले ठीक रूपमा कार्य नगर्न सक्छन् ।"
+
+#: ../mate-session/gsm-gsd.c:57
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"अन्तिम त्रुटि सन्देश यसरूपमा थियो:\n"
+"\n"
+
+#: ../mate-session/gsm-gsd.c:62
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"तपाईँले फेरि पछि लगइन गर्दा जिनोमले सेटिङ डेइमोन फेरि सुरु गर्ने प्रयास गर्नेछ ।"
+
+#: ../mate-session/gsm-gsd.c:145
+msgid "The Settings Daemon restarted too many times."
+msgstr "सेटिङ डेइमोन फेरि धेरै पटक सुरु हुनेछ ।"
+
+#. Name is mandatory and might not be set by the caller
+#: ../mate-session/gsm-keyfile.c:43
+msgid "No Name"
+msgstr "नाम छैन"
+
+#: ../mate-session/mate-session-remove.c:50
+msgid "List registered clients, then exit"
+msgstr "दर्ता गरिएका क्लाइन्ट सूचीबद्ध गर्नुहोस्, त्यसपछि बाहिरिनुहोस्"
+
+#: ../mate-session/mate-session-remove.c:52
+msgid "PROGRAM..."
+msgstr "कार्यक्रम..."
+
+#: ../mate-session/mate-session-remove.c:176
+msgid ""
+"You must specify at least one program to remove. You can list the programs "
+"with --list.\n"
+msgstr "तपाईँले हटाउनका लागि कम्तिमा पनि एउटा कार्यक्रम निर्दिष्ट गर्नुपर्दछ । तपाईँले --सूचीसँग कार्यक्रम सूचीवद्ध गर्न सक्नुहुन्छ ।\n"
+
+#: ../mate-session/mate-session-remove.c:183
+msgid "Error: could not connect to the session manager\n"
+msgstr "त्रुटि: सत्र प्रबन्धकमा जडान गर्न सकेन\n"
+
+#: ../mate-session/mate-session-remove.c:197
+msgid "Currently registered clients:\n"
+msgstr "हालै दर्ता गरिएका क्लाइन्ट:\n"
+
+#: ../mate-session/mate-session-remove.c:207
+#, c-format
+msgid "Couldn't find program %s in session\n"
+msgstr "सत्रमा कार्यक्रम %s फेला पार्न सकेन\n"
+
+#. At least try to tell the user something.
+#: ../mate-session/ice.c:355
+#, c-format
+msgid ""
+"The MATE session manager cannot start properly. Please report this as a "
+"MATE bug. Please include this ICE failure message in the bug report: '%"
+"s'. Meanwhile you could try logging in using the failsafe session."
+msgstr ""
+"जिनोम सत्र प्रबन्धक राम्रोसँग सुरु गर्न सकिँदैन । कृपया यसलाई जिनोम बगका रूपमा प्रतिवेदन गर्नुहोस् । कृपया यस आईसीई(ICE) असफलता सन्देशलाई बग प्रतिवेदनमा समाविष्ट गर्नुहोस्: '%"
+"s'. यही समयमा तपाईँले फेलसेफ सत्र प्रयोग गरेर लगइन गर्न सक्नुहुन्छ ।"
+
+#: ../mate-session/ice.c:511
+#, c-format
+msgid ""
+"The MATE session manager was unable to lock the file '%s'. Please report "
+"this as a MATE bug. Sometimes this error may occur if the file's directory "
+"is unwritable, you could try logging in via the failsafe session and "
+"ensuring that it is."
+msgstr "जिनोम सत्र प्रबन्धक फाइल '%s' ताल्चा लगाउन असफल भयो । कृपया यसलाई जिनोम बगका रूपमा प्रतिवेदन गर्नुहोस् । फाइलको डाइरेक्टरी लेख्न नसकिने भएमा यस प्रकारको त्रुटि कहिलेकाही उत्पन्न हुनसक्छ, तपाईँले फेलसेफ सत्रबाट लगइन गर्न र यो भएको निश्चित गर्न सक्नुहुन्छ ।"
+
+#: ../mate-session/ice.c:538
+#, c-format
+msgid ""
+"The MATE session manager was unable to read the file: '%s'. If this file "
+"exists it must be readable by you for MATE to work properly. Try logging "
+"in with the failsafe session and removing this file."
+msgstr "जिनोम सत्र प्रबन्धक फाइल पढ्न असमर्थ थियो: '%s'. यो फाइल अवस्थित भएमाजिनोमका लागि ठीक तरिकाले कार्य गर्न तपाईँले पढ्नयोग्य हुनुपर्दछ । फलसेफ सत्रसँग लगइन गर्ने प्रयास गर्नुहोस् र यस फाइललाई हटाउनुहोस् ।"
+
+#: ../mate-session/ice.c:583
+#, c-format
+msgid ""
+"Could not write to file '%s'. This file must be writable in order for MATE "
+"to function properly. Try logging in with the failsafe session and removing "
+"this file. Also make sure that the file's directory is writable."
+msgstr "फाइल '%s'मा लेख्न सकेन । जिनोमले राम्रोसँग कार्य गर्न यो फाइल लेख्नयोग्य हुनुपर्दछ । फलसेफ सत्रसँग लगइन गर्ने प्रयास गर्नुहोस र यस फाइललाई हटाउनुहोस् । फाइलको डाइरेक्टरी लेख्नयोग्य भएको पनि निश्चित गर्नुहोस् ।"
+
+#: ../mate-session/logout.c:372
+msgid "Are you sure you want to log out?"
+msgstr "तपाईँ लगआउट गर्न निश्चित हुनुहुन्छ ?"
+
+#: ../mate-session/logout.c:389
+msgid "Remember running applications"
+msgstr "चलिरहेका अनुप्रयोग सम्झनुहोस्"
+
+#: ../mate-session/logout.c:412
+msgid "Action"
+msgstr "कार्य"
+
+#: ../mate-session/logout.c:429
+msgid "_Log out"
+msgstr "लगआउट"
+
+#: ../mate-session/logout.c:436
+msgid "Sh_ut down"
+msgstr "बन्द गर्नुहोस्"
+
+#: ../mate-session/logout.c:444
+msgid "_Restart the computer"
+msgstr "कम्प्युटर फेरि सुरु गर्नुहोस्"
+
+#: ../mate-session/main.c:87
+msgid "Specify a session name to load"
+msgstr "लोड गर्नका लागि सत्र नाम निर्दिष्ट गर्नुहोस्"
+
+#: ../mate-session/main.c:87 ../mate-session/mate-session-save.c:48
+msgid "NAME"
+msgstr "नाम"
+
+#: ../mate-session/main.c:88
+msgid "Only read saved sessions from the default.session file"
+msgstr "पुर्वनिर्धारित सत्र फाइलबाट मात्र बचत गरिएका सत्र पढ्नुहोस्"
+
+#: ../mate-session/main.c:89
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr "क्लाइन्टलाई रजिस्टर गर्नका लागि प्रतिक्षा गरेको समय मिलिसेकेन्डमा (०=सधैँ)"
+
+#: ../mate-session/main.c:89 ../mate-session/main.c:90
+#: ../mate-session/main.c:91
+msgid "DELAY"
+msgstr "विलम्ब"
+
+#: ../mate-session/main.c:90
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr "क्लाइन्टलाई प्रतिक्रिया दिनका लागि प्रतिक्षा गरेको समय मिलिसेकेन्डमा (०=सधैँ)"
+
+#: ../mate-session/main.c:91
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr "क्लाइन्टलाई नष्ट गर्नका लागि प्रतिक्षा गरेको समय मिलिसेकेन्डमा (०=सधैँ)"
+
+#: ../mate-session/main.c:167
+msgid "This session is running as a privileged user"
+msgstr "यो सत्र प्राथमिकता दिएको प्रयोगकर्ताका रूपमा चलिरहेको छ"
+
+#: ../mate-session/main.c:169
+msgid ""
+"Running a session as a privileged user should be avoided for security "
+"reasons. If possible, you should log in as a normal user."
+msgstr "सूरक्षाका कारणले विशेषाधिकार दिइएको प्रयोगकर्ताको रूपमा चलिरहेको सत्रलाई परित्याग गरिएको हुनुपर्दछ । सम्भव भएमा, तपाईँले सामान्य प्रयोगकर्ताका रूपमा लगइन गर्नुपर्दछ ।"
+
+#: ../mate-session/main.c:173
+msgid "_Continue"
+msgstr "जारी राख्नुहोस्"
+
+#: ../mate-session/main.c:220
+#, c-format
+msgid ""
+"The session might encounter issues if the computer clock is not properly "
+"configured. Please consider adjusting it.\n"
+"\n"
+"Current date is <b>%s</b>."
+msgstr ""
+"कम्प्युटर घडी ठीक रूपमा कन्फिगर गरिएको नभएमा सत्रले विभिन्न समस्या सामना गर्न सक्छ । कृपया यसलाई समायोजन गर्दा ध्यान दिनुहोस् ।\n"
+"\n"
+"हालको मिति <b>%s</b> हो ।"
+
+#: ../mate-session/main.c:338
+#, c-format
+msgid "Failed to launch time configuration tool: %s"
+msgstr "समय कन्फिगरेसन उपकरण सुरुआत गर्न असफल: %s"
+
+#: ../mate-session/main.c:369
+msgid "The computer clock appears to be wrong"
+msgstr "कम्प्युटर घडी गलत हुने देखिन्छ"
+
+#: ../mate-session/main.c:376
+msgid "_Ignore"
+msgstr "उपेक्षा गर्नुहोस्"
+
+#: ../mate-session/main.c:377
+msgid "_Adjust the Clock"
+msgstr "घडी समायोजन गर्नुहोस्"
+
+#: ../mate-session/main.c:515
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"%s का लागि इन्टरनेट ठगाना हेर्न सकेन ।\n"
+"यसले जिनोमलाई ठीकसँग सञ्चालन हुनबाट बञ्चित गर्नेछ ।\n"
+"file /etc/hosts\n"
+"मा %s थपेर समस्या समाधान गर्न सम्भव हुनसक्छ ।"
+
+#: ../mate-session/main.c:522
+msgid "Log in Anyway"
+msgstr "जसरी पनि लगइन गर्नुहोस्"
+
+#: ../mate-session/main.c:523
+msgid "Try Again"
+msgstr "फेरि प्रयास गर्नुहोस्"
+
+#: ../mate-session/main.c:651
+msgid "- Manage the MATE session"
+msgstr "- जिनोम सत्र प्रबन्ध गर्नुहोस्"
+
+#: ../mate-session/manager.c:513
+msgid "Wait abandoned due to conflict."
+msgstr "विवादका कारणले प्रतिक्षा परित्याग गरियो ।"
+
+#: ../mate-session/manager.c:1021
+#, c-format
+msgid "No response to the %s command."
+msgstr "आदेश %s लाई कुनै प्रतिक्रिया छैन ।"
+
+#: ../mate-session/manager.c:1022
+msgid "The program may be slow, stopped or broken."
+msgstr "कार्यक्रम ढीलो, रोकिएको वा विच्छेद गरिएको हुनसक्छ ।"
+
+#: ../mate-session/manager.c:1023
+msgid "You may wait for it to respond or remove it."
+msgstr "यसलाई प्रतिक्रिया दिन वा हटाउन तपाईँले प्रतिक्षा गर्नुपर्न सक्छ ।"
+
+#: ../mate-session/manager.c:1749
+msgid "Restart abandoned due to failures."
+msgstr "असफलताको कारणले फेरि सरुआत गर्न परित्याग गरियो ।"
+
+#: ../mate-session/manager.c:1945
+msgid "A session shutdown is in progress."
+msgstr "बन्द गर्ने सत्र प्रगतिमा छ ।"
+
+#: ../mate-session/mate-session-save.c:48
+msgid "Set the current session name"
+msgstr "हालको सत्रनाम सेट गर्नुहोस्"
+
+#: ../mate-session/mate-session-save.c:49
+msgid "Kill session"
+msgstr "सत्र अन्त्य गर्नुहोस्"
+
+#: ../mate-session/mate-session-save.c:50
+msgid "Use dialog boxes for errors"
+msgstr "त्रुटिका लागि संवाद बाकस प्रयोग गर्नुहोस्"
+
+#: ../mate-session/mate-session-save.c:51
+msgid "Do not require confirmation"
+msgstr "यकीन आवश्यक छैन"
+
+#: ../mate-session/mate-session-save.c:149
+#: ../mate-session/mate-session-save.c:186
+msgid "Could not connect to the session manager"
+msgstr "सत्र प्रबन्धकमा जडान गर्न सकेन"
+
+#: ../mate-session/mate-session-save.c:172
+msgid "- Save the current session"
+msgstr "- हालको सत्र बचत गर्नुहोस्"
+
+#: ../mate-session/session-properties-capplet.c:154
+msgid "Save changes to the current session before closing?"
+msgstr "हालको सत्र बन्द गर्नुभन्दा पहिला यसका परिवर्तन बचत गर्नुहुन्छ ?"
+
+#: ../mate-session/session-properties-capplet.c:156
+msgid "If you don't save, changes will be discarded."
+msgstr "तपाईँले बचत नगरेमा, परिवर्तन परित्याग गरिन्छन् ।"
+
+#: ../mate-session/session-properties-capplet.c:159
+msgid "_Close without Saving"
+msgstr "बचत नगरी बन्द गर्नुहोस्"
+
+#: ../mate-session/session-properties-capplet.c:250
+msgid "Additional startup _programs:"
+msgstr "अतिरिक्त सुरुआत कार्यक्रम:"
+
+#: ../mate-session/session-properties-capplet.c:274
+msgid "Enabled"
+msgstr "सक्षम"
+
+#: ../mate-session/session-properties-capplet.c:322
+msgid "Startup Programs"
+msgstr "सुरुआत कार्यक्रम"
+
+#: ../mate-session/session-properties-capplet.c:328
+msgid "Current Session"
+msgstr "हालको सत्र"
+
+#: ../mate-session/session-properties-capplet.c:341
+msgid "_Automatically remember running applications when logging out"
+msgstr "लगआउट हुदा चलिरहेका अनुप्रयोग स्वत: याद गर्नुहोस्"
+
+#: ../mate-session/session-properties-capplet.c:356
+msgid "_Remember currently running applications"
+msgstr "हाल चलिरहेका अनुप्रयोग याद गर्नुहोस्"
+
+#: ../mate-session/session-properties-capplet.c:364
+msgid "Session Options"
+msgstr "सत्र विकल्प"
+
+#: ../mate-session/session-properties-capplet.c:460
+msgid "Your session has been saved."
+msgstr "तपाईँको सत्र बचत गरिएको छ ।"
+
+#: ../mate-session/session-properties-capplet.c:503
+msgid "could not connect to the session manager\n"
+msgstr "सत्र प्रबन्धकमा जडान गर्न सकेन\n"
+
+#: ../mate-session/session-properties-capplet.c:509
+msgid "session manager does not support MATE extensions\n"
+msgstr "सत्र प्रबन्धकले जिनोम विस्तार समर्थन गर्दैन\n"
+
+#: ../mate-session/session-properties.c:51
+msgid "Remove the currently selected client from the session."
+msgstr "सत्रबाट हाल चयन गरिएको क्लाइन्ट हटाउनुहोस् ।"
+
+#: ../mate-session/session-properties.c:57
+msgid "Apply changes to the current session"
+msgstr "हालको सत्रमा परिवर्तन लागू गर्नुहोस्"
+
+#: ../mate-session/session-properties.c:63
+msgid "The list of programs in the session."
+msgstr "सत्रका कार्यक्रमको सूची ।"
+
+#: ../mate-session/session-properties.c:90
+msgid "Currently running _programs:"
+msgstr "हाल चलिरहेका कार्यक्रम:"
+
+#: ../mate-session/splash-widget.c:44
+msgid "Sawfish Window Manager"
+msgstr "सफिस सञ्झ्याल प्रबन्धक"
+
+#: ../mate-session/splash-widget.c:45
+msgid "Marco Window Manager"
+msgstr "मेटासिटी सञ्झ्याल प्रबन्धक"
+
+#: ../mate-session/splash-widget.c:46
+msgid "Window Manager"
+msgstr "सञ्झ्याल प्रबन्धक"
+
+#: ../mate-session/splash-widget.c:47
+msgid "The Panel"
+msgstr "प्यानल"
+
+#: ../mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "नटिलस"
+
+#: ../mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr "डेस्कटप सेटिङ"
+
+#: ../mate-session/startup-programs.c:351
+msgid "No description"
+msgstr "वर्णन छैन"
+
+#: ../mate-session/startup-programs.c:470
+msgid "_Name:"
+msgstr "नाम:"
+
+#: ../mate-session/startup-programs.c:488
+msgid "_Command:"
+msgstr "आदेश:"
+
+#: ../mate-session/startup-programs.c:502
+msgid "_Browse..."
+msgstr "ब्राउज..."
+
+#: ../mate-session/startup-programs.c:515
+msgid "Co_mment:"
+msgstr "टिप्पणी:"
+
+#: ../mate-session/startup-programs.c:545
+msgid "The name of the startup program cannot be empty"
+msgstr "सुरुआत कार्यक्रमको नामलाई खाली गर्न सकिँदैन"
+
+#: ../mate-session/startup-programs.c:547
+msgid "The startup command cannot be empty"
+msgstr "सुरुआत आदेशलाई खाली गर्न सकिदैँन"
+
+#: ../mate-session/startup-programs.c:553
+msgid "The startup command is not valid"
+msgstr "सुरुआत आदेश वैध छैन"
+
+#: ../mate-session/startup-programs.c:610
+msgid "New Startup Program"
+msgstr "नयाँ सुरुआत कार्यक्रम"
+
+#: ../mate-session/startup-programs.c:654
+msgid "Edit Startup Program"
+msgstr "सुरुआत कार्यक्रम सम्पादन गर्नुहोस्"
+
diff --git a/po/nl.po b/po/nl.po
new file mode 100644
index 0000000..00f314f
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,614 @@
+# Dutch translation for mate-session
+#
+# This file is distributed under the same license as the mate-session package.
+#
+# Copyright (C) 1998 Free Software Foundation, Inc.
+# Dirk-Jan C. Binnema <[email protected]>, 1998, 1999
+# Dennis Smit <[email protected]>, 2000
+# Almer S. Tigelaar <[email protected]>, 2000
+# Vincent van Adrighem <[email protected]>, 2001
+# Huib Kleinhout <[email protected]>, 2002
+# Ronald Hummelink <[email protected]>, 2002
+# Jeroen van der Vegt <[email protected]>, 2002
+# Reinout van Schouwen <[email protected]>, 2003
+# Tino Meinen <[email protected]> 2005, 2006, 2008
+# Wouter Bolsterlee <[email protected]>, 2007–2009
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-12 15:08+0200\n"
+"PO-Revision-Date: 2010-09-12 15:08+0200\n"
+"Last-Translator: Wouter Bolsterlee <[email protected]>\n"
+"Language-Team: Dutch <[email protected]>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Programma selecteren"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Te starten programma toevoegen"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Te starten programma bewerken"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "De opstartopdracht mag niet leeg zijn"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "De opstartopdracht is ongeldig"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Ingeschakeld"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Pictogram"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Programma"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Voorkeuren opstarttoepassingen"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Naamloos"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Geen beschrijving"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Versie van deze toepassing"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Kon hulpdocument niet weergeven"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "Mate"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Deze sessie laat u in Mate inloggen"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Standaar sessie"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Bestandsbeheer"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Wanneer dit aanstaat zal de computer om bevestiging vragen alvorens een "
+"sessie te beëindigen."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Indien ingeschakeld zal mate-session de sessie automatisch opslaan."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Lijst van toepassingen die deel uitmaken van de standaard sessie."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Lijst van componenten die benodigd zijn voor de sessie. (Elk element heeft "
+"een sleutel onder ‘/desktop/mate/session/required_components’.) Het "
+"voorkeurenvenster voor opstarttoepassingen geeft gebruikers normaal "
+"gesproken niet de mogelijkheid vereiste componenten uit de sessie te "
+"verwijderen, en het sessiebeheer zet de vereiste componenten automatisch "
+"weer terug wanneer ze toch verwijderd worden."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Afmeldvenster"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Paneel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Vereiste sessiecomponenten"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Sessies opslaan"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Het bestandsbeheer zorgt voor de bureaubladpictogrammen en zorgt dat u met "
+"uw opgeslagen bestanden kunt werken."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"Het aantal minuten inactiviteit voordat de sessie als inactief beschouwd "
+"wordt."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Het paneel zorgt voor de balk bovenaan of onderaan het scherm met menu's, de "
+"vensterlijst, statuspictogrammen, de klok, etc."
+
+# een programma .. een titelbalk/het programma .. de titelbalk
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Het vensterbeheer is het programma dat de titelbalk en vensterranden tekent, "
+"waarmee u vensters kunt verplaatsen en kunt herschalen."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Tijd voordat de sessie als inactief beschouwd wordt"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Windowmanager"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Er zijn nog actieve toepassingen:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"Wachten totdat de toepassing geëindigd is. Het onderbreken van de toepassing "
+"kan er toe leiden dat er werk verloren gaat."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Toepassingen kiezen die bij aanmelden opgestart worden"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Opstart-toepassingen"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Extra te starten _programma's:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "Bladeren…"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "Opdra_cht:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Co_mmentaar:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Opties"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Programma's starten"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Automatisch actieve toepassing onthouden bij uitloggen"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Naam:"
+
+# Actieve toepassingen _onthouden
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "Toepassingen die nu actief zijn _onthouden."
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Bestand is geen geldig ‘.desktop’ bestand"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Niet herkende versie desktopbestand ‘%s’"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Starten van %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Toepassing accepteert geen documenten op de opdrachtregel"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Niet herkende uitvoeringsoptie: %d"
+
+# wat een technotaal zeg.
+# vrij vertaald:
+# Documenten kunnen niet naar een snelkoppelingspictogram op het
+# bureaublad verleept worden.
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"Kan document-URI's niet doorgeven aan een desktop-entry met ‘Type=Link’"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Niet uitvoerbaar item"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Verbinding met het sessiebeheer verbreken"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Geef het bestand met de opgeslagen configuratie"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "BESTAND"
+
+# Het id-nummer van de sessie die geladen moet worden
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Geef het ID-nummer van het sessiebeheer"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Sessiebeheeropties:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Sessiebeheeropties tonen"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Er is een probleem met de configuratieserver.\n"
+"(%s is afgesloten met status %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Pictogram ‘%s’ niet gevonden"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Onbekend"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Er is nog een toepassing actief:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Er zijn nog toepassingen actief:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Wachten totdat de toepassingen geëindigd zijn. Het onderbreken van "
+"toepassingen kan er toe leiden dat er werk verloren gaat."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Toch gebruiker _wisselen"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "Toch afmelden"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Toch in pauzestand"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Toch in _slaapstand"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "Toch afsluiten"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Toch herstarten"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Beeldscherm vergrendelen"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Annuleren"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Over %d seconde wordt u automatisch afgemeld."
+msgstr[1] "Over %d seconden wordt u automatisch afgemeld."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Over %d seconde wordt de computer automatisch afgesloten."
+msgstr[1] "Over %d seconden wordt de computer automatisch afgesloten."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "U bent momenteel aangemeld onder de naam ‘%s’."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Afmelden bij deze computer?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "Gebruiker _wisselen"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "Af_melden"
+
+# afsluiten/uitschakelen/uitzetten
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Deze computer uitzetten?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "_Pauzestand"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Slaapstand"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "_Herstarten"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "_Uitzetten"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Reageert niet"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "Deze toepassing verhindert het afmelden."
+
+# client-verbinding/verbinding/
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Nieuwe verbinding wordt geweigerd omdat de sessie momenteel wordt "
+"afgesloten\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Kon geen luister-socket voor ICE aanmaken: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Kon aanmeldsessie niet opstarten (en kon niet met de X-server verbinden)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Map voor automatisch te starten toepassingen"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "MateConf-sleutel voor het opzoeken van de standaardsessie"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Debugging-code inschakelen"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Geen toepassingen laden die door de gebruiker opgegeven zijn"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " — het Mate-sessiebeheer"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Afmelden"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Uitloggen, ongeacht actieve verhindering door toepassingen"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Afmeldvenster tonen"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Afsluitvenster tonen"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Gebruik dialoogvensters voor foutmeldingen"
+
+# geef de huidige sessie een naam
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "De huidige sessienaam instellen"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAAM"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Sessie beëindigen"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Geen bevestiging vereisen"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Kan geen verbinding maken met het sessiebeheer"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Toepassing aangeroepen met conflicterende opties"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "Hulptoepassing voor de Mate-instellingenvoorziening"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "Wanneer dit aanstaat zal mate-sessie een sessie automatisch opslaan. Als "
+#~ "dit uitstaat zal de gebruiker de mogelijkheid tot opslaan hebben in het "
+#~ "afmeld-venster."
+
+# vrij vertaald
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr ""
+#~ "De afbeelding die gebruikt wordt voor het introvenster na het aanmelden"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "Introvenster tonen"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "Introvenster tonen wanneer de sessie wordt gestart."
+
+# zijn ook geldig/mogen ook
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+#~ msgstr ""
+#~ "Dit is een relatief pad uitgaande van de map \"$datadir/pixmaps/\". "
+#~ "Submappen en namen van afbeeldingen zijn ook geldig. Het wijzigen heeft "
+#~ "pas effect bij de volgende keer dat u zich aanmeldt."
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr ""
+#~ "Wachten totdat de toepassing geëindigd is. Het onderbreken van de "
+#~ "toepassing kan er toe leiden dat er werk verloren gaat."
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "— Mate introvenster"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "Mate-introvenster"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "De opstartopdracht mag niet leeg zijn"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "Ondersteuning voor toegankelijkheidshulpmiddelen is aangevraagd voor deze "
+#~ "sessie, maar het ‘accessibility registry’ kon niet gevonden worden. "
+#~ "Controleer of het pakket ‘AT-SPI’ geïnstalleerd is. Deze sessie wordt "
+#~ "opgestart zonder ondersteuning voor toegankelijkheidshulpmiddelen."
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "Wrapper voor AT SPI-register"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "Sessievoorkeuren"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Geselecteerde optie bij afmelden"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "Dit is de optie die geselecteerd zal zijn bij het afmelden. Geldige "
+#~ "waarden zijn \"logout\" om af te melden, \"shutdown\" om de computer uit "
+#~ "te zetten en \"restart\" om de computer te herstarten."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "Configureer uw sessies"
+
+#~ msgid "Sessions"
+#~ msgstr "Sessies"
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "Wrapper voor Mate-sleutelbosvoorziening"
+
+#~ msgid "Session management"
+#~ msgstr "Sessiebeheer"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "Mate GUI Library + EggSMClient"
diff --git a/po/nn.po b/po/nn.po
new file mode 100644
index 0000000..1cdb36b
--- /dev/null
+++ b/po/nn.po
@@ -0,0 +1,1064 @@
+# translation of nn.po to Norwegian Nynorsk
+# Norwegian (nynorsk) translation of mate-core.
+# Copyright (C) 1998-2000, 2003, 2006, 2008 Free Software Foundation, Inc.
+#
+# Christian Fredrik Kalager Schaller <[email protected]>, 2000-2001.
+# Kjartan Maraas <[email protected]>, 2001.
+# Roy-Magne Mo <[email protected]>, 2001-2002.
+# Monica Gausen <[email protected]>, 2001.
+# Åsmund Skjæveland <[email protected]>, 2003, 2006.
+# Eskild Hustvedt <[email protected]>, 2008.
+# Torstein Adolf Winterseth <[email protected]>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: nn\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug."
+"cgi?product=mate-session&component=general\n"
+"POT-Creation-Date: 2009-12-14 20:30+0000\n"
+"PO-Revision-Date: 2010-02-08 11:29+0000\n"
+"Last-Translator: Torstein Adolf Winterseth <[email protected]>\n"
+"Language-Team: Norwegian Nynorsk <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Vel kommando"
+
+# gsm/startup-programs.c:373
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Legg til oppstartsprogram"
+
+# gsm/startup-programs.c:391
+#
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Rediger oppstartsprogram"
+
+# gsm/startup-programs.c:333
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Oppstartskommandoen kan ikkje vera tom"
+
+#
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Oppstartskommandoen er ikkje gyldig"
+
+#
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Aktivert"
+
+# gsm/logout.c:239
+#: ../capplet/gsm-properties-dialog.c:567
+#| msgid "Action"
+msgid "Icon"
+msgstr "Ikon"
+
+# gsm/gsm-client-list.c:122
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Program"
+
+#: ../capplet/gsm-properties-dialog.c:792
+#| msgid "Sessions Preferences"
+msgid "Startup Applications Preferences"
+msgstr "Innstillingar for oppstartsprogram"
+
+#: ../capplet/gsp-app.c:269
+#| msgid "No Name"
+msgid "No name"
+msgstr "Inkje namn"
+
+#
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Inga skildring"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "Versjon av dette programmet"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Klarte ikkje visa hjelpedokumentet"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "Hjelpar til MATE innstillingsnisse"
+
+#
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Denne økta loggar inn i MATE"
+
+# gsm/save-session.c:42
+#: ../data/mate-session.schemas.in.in.h:1
+#| msgid "Kill session"
+msgid "Default session"
+msgstr "Standardøkt"
+
+# gsm/splash.c:67
+#: ../data/mate-session.schemas.in.in.h:2
+#| msgid "Window Manager"
+msgid "File Manager"
+msgstr "Filhandsamar"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Viss det er kryssa av her, vil brukaren få ein spørsmålsdialog før økta vert "
+"avslutta."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Viss det er kryssa av her, vil økta verta lagra automatisk. Elles vil "
+"utloggingsdialogen ha eit val for å lagra økta."
+
+#: ../data/mate-session.schemas.in.in.h:5
+#| msgid "The order in which applications are started in the session."
+msgid "List of applications that are part of the default session."
+msgstr "Liste over program som er ein del av standardøkta."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Liste med komponentar som er ein nødvendig del av økta. (Kvart element "
+"namngjev ein nøkkel under «/desktop/mate/session/required_components»). "
+"Innstillingsverktøyet av oppstartsprogram vil normalt ikkje gje brukarar "
+"tilgjenge til å fjerna nødvendige komponentar frå økta, og økthandsamaren vil "
+"automatisk leggja til dei nødvendige komponentane tilbake til økta dersom dei "
+"vert fjerna."
+
+# gsm/logout.c:247
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Spør ved avlogging"
+
+# gsm/splash.c:65
+#: ../data/mate-session.schemas.in.in.h:8
+#| msgid "The Panel"
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Foretrukke bilete å bruka i velkomstbiletet ved innlogging"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "Obligatoriske komponentar"
+
+# gsm/session-properties.c:272
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "Lagra økter"
+
+# gsm/session-properties-capplet.c:192
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "Vis oppstartsskjerm ved pålogging"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "Vis oppstartsskjermen når økta startar"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Filhandsamaren gjev deg skrivebordsikona og lèt deg handsame dei lagra filene "
+"dine."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "Talet på minutt med inaktivitet før økta vert sett på som inaktiv."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Panelet gjev deg linja på toppen eller botnen av skjermen som inneheld "
+"menyar, lista over vindauge, statusikon, klokka, osv."
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Vindaugehandsamaren er programmet som teiknar tittellinja og bordane rundt "
+"vindauge, og som lèt deg flytta og endra storleiken på vindauge."
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Dette er ein relativ stiverdi tufta på mappa «$datadir/pixmaps/». Undermapper "
+"og biletenamn er gyldige verdiar. Å endra denne verdien vil påverka den "
+"neste økta."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "Tid før økta vert sett på som inaktiv"
+
+# gsm/splash.c:67
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Vindaugehandsamar"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Nokre program køyrer enno:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"Ventar på at program skal avsluttast. Avbryting av program kan føra til "
+"arbeid."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Vel kva for program du vil starta når du loggar inn"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Oppstartsprogram"
+
+# gsm/startup-programs.c:373
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Fleire oppstarts_program:"
+
+#: ../data/session-properties.ui.h:2
+#| msgid "_Browse..."
+msgid "Browse..."
+msgstr "Bla gjennom …"
+
+#
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "Ko_mmando:"
+
+#
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Komm_entar:"
+
+# gsm/session-properties-capplet.c:262
+#: ../data/session-properties.ui.h:5
+#| msgid "Session Options"
+msgid "Options"
+msgstr "Innstillingar"
+
+# gsm/session-properties-capplet.c:330
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Oppstartsprogram"
+
+#
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "Hugs køyrande program _automatisk ved utlogging"
+
+#
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Namn:"
+
+#: ../data/session-properties.ui.h:9
+#| msgid "_Remember Currently Running Applications"
+msgid "_Remember Currently Running Application"
+msgstr "Hugs program som køy_rer no"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Fila er ikkje ei gyldig .desktop-fil"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Klarte ikkje kjenna igjen desktop-fil versjon «%s»"
+
+# gsm/gsm-client-row.c:34
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+#| msgid "Starting"
+msgid "Starting %s"
+msgstr "Startar %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Programmet støttar ikkje dokument via kommandolinja"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Klarte ikkje kjenna igjen oppstartsvalet: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Klarte ikkje senda dokumentadressa til ei «Type=Link» desktop-oppføring"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Ikkje eit køyrbar element"
+
+# gsm/save-session.c:92
+#: ../egg/eggsmclient.c:225
+#| msgid "Could not connect to the session manager"
+msgid "Disable connection to session manager"
+msgstr "Slå av tilkopling til økthandsamaren"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Vel fil som inneheld lagra innstillingar"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FIL"
+
+# gsm/main.c:64
+#: ../egg/eggsmclient.c:231
+#| msgid "Specify a session name to load"
+msgid "Specify session management ID"
+msgstr "Vel ein økthandsamar-ID"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+# gsm/session-properties-capplet.c:262
+#: ../egg/eggsmclient.c:252
+#| msgid "Session Options"
+msgid "Session management options:"
+msgstr "Økthandsamingsinnstillingar:"
+
+# gsm/session-properties-capplet.c:262
+#: ../egg/eggsmclient.c:253
+#| msgid "Session Options"
+msgid "Show session management options"
+msgstr "Vis økthandsamingsinnstillingar"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Det er eit problem med innstillingstenaren.\n"
+"(%s avslutta med status %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Klarte ikkje finna ikonet «%s»"
+
+# gsm/gsm-client-row.c:43
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Ukjend"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Eit program køyrer enno:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Nokre program køyrer enno:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Ventar på at program skal verta ferdige. Avbryting av desse programma kan "
+"føra til tapt arbeid."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Byt brukar likevel"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+#| msgid "Log in Anyway"
+msgid "Logout Anyway"
+msgstr "Logg ut likevel"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Gå i kvilemodus likevel"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+#| msgid "Log in Anyway"
+msgid "Hibernate Anyway"
+msgstr "Gå i dvalemodus likevel"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+#| msgid "Log in Anyway"
+msgid "Shutdown Anyway"
+msgstr "Slå av likevel"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+#| msgid "Log in Anyway"
+msgid "Reboot Anyway"
+msgstr "Start om likevel"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Lås skjerm"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Du vil automatisk verta logga inn om %d sekund."
+msgstr[1] "Du vil automatisk verta logga inn om %d sekund."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Dette systemet vil verta slått av om %d sekund."
+msgstr[1] "Dette systemet vil verta slått av om %d sekund."
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Du er for augneblikket logga inn som «%s»"
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "Logg ut av dette systemet no?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "_Byt brukar"
+
+# panel/logout.c:74 panel/menu.c:5340
+#: ../mate-session/gsm-logout-dialog.c:395
+#| msgid "_Log out"
+msgid "_Log Out"
+msgstr "_Logg ut"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "Slå av dette systemet no?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "_Kvilemodus"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "_Dvalemodus"
+
+# applets/tasklist/tasklist_menu.c:258
+#: ../mate-session/gsm-logout-dialog.c:419
+#| msgid "Restart"
+msgid "_Restart"
+msgstr "_Start på nytt"
+
+# gsm/logout.c:250
+#: ../mate-session/gsm-logout-dialog.c:429
+#| msgid "Sh_ut down"
+msgid "_Shut Down"
+msgstr "Slå _av"
+
+#: ../mate-session/gsm-manager.c:1220 ../mate-session/gsm-manager.c:1912
+msgid "Not responding"
+msgstr "Svarar ikkje"
+
+#: ../mate-session/gsm-xsmp-client.c:1206
+msgid "This program is blocking log out."
+msgstr "Dette programmet hindrar avlogging."
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "Avviser ny klienttilkopling fordi økta er i ferd med å avsluttast\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Klarte ikkje laga ICE-lyttingsokkel: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Klarte ikkje starta innloggingsøkt (klarte heller ikkje å kopla til X-tenaren)"
+
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr "Overkøyr dei standarde autostartmapper"
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr "MateConf-nøkkel som vert brukt til å slå opp standard økt"
+
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr "Slå på avlusingskode"
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr "Ikkje last brukarspesifikke program"
+
+#: ../mate-session/main.c:457
+#| msgid "- Manage the MATE session"
+msgid " - the MATE session manager"
+msgstr "- Økthandsamar"
+
+# gsm/session-properties-capplet.c:192
+#: ../splash/mate-session-splash.c:315
+#| msgid "Show the splash screen"
+msgid "- MATE Splash Screen"
+msgstr "- Oppstartskjerm"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "MATE oppstartskjerm"
+
+# panel/logout.c:74 panel/menu.c:5340
+#: ../tools/mate-session-save.c:65
+#| msgid "_Log out"
+msgid "Log out"
+msgstr "Logg ut"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Logg ut og sjå bort frå alle hindringar"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Vis avloggingsdialog"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Vis avslåingsdialog"
+
+#
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Bruk dialogboksar for feil"
+
+# gsm/session-properties-capplet.c:206
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Vel øktnamn"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAMN"
+
+# gsm/save-session.c:42
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Drep økta"
+
+#
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Ikkje krev stadfesting"
+
+# gsm/save-session.c:92
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Klarte ikkje kopla til økthandsamar"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Programmet vart kalla med motstridande alternativar"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "Tillat TCP-tilkoplingar"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "Av omsyn til tryggleiken vil ikkje mate-session lytta etter tilkoplingar "
+#~ "på TCP-portar på system som har _IceTcpTransNoListen() (XFree86-system). "
+#~ "Dette valet vil la autoriserte eksterne vertar kopla til. mate-session "
+#~ "må startast på nytt før dette valet blir aktivt."
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Vald val i utloggingsdialogen"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "Dette er det valet som vil stå klart i logg ut-dialogen. Lovlege verdiar "
+#~ "er «logout» for å logga ut, «shutdown» for å slå av maskinen og «restart» "
+#~ "for å starta maskinen på nytt."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "Set opp øktene dine"
+
+# gsm/session-properties.c:272
+#~ msgid "Sessions"
+#~ msgstr "Økter"
+
+#
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "Hjelpeteknologi for tilgjenge er forespurd for denne økta, men registeret "
+#~ "for denne funksjonen vart ikkje funne. Vennligst sjekk at AT-SPI er "
+#~ "installert. Sesjonen er starta utan hjelpeteknologi for tilgjenge."
+
+# gsm/gsm-client-editor.c:97
+#~ msgid "_Order:"
+#~ msgstr "_Rekkefølgje: "
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "Kva som skjer med applikasjonen når han avsluttar."
+
+# gsm/gsm-client-editor.c:107
+#~ msgid "_Style:"
+#~ msgstr "_Stil: "
+
+# gsm/gsm-client-row.c:31
+#~ msgid "Inactive"
+#~ msgstr "Inaktiv"
+
+# gsm/gsm-client-row.c:32
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "Ventar på å få starta eller er allereie starta."
+
+# gsm/gsm-client-row.c:35
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "Starta, men har ikkje enno rapportert tilstand."
+
+# gsm/gsm-client-row.c:37
+#~ msgid "Running"
+#~ msgstr "Køyrer"
+
+# gsm/gsm-client-row.c:38
+#~ msgid "A normal member of the session."
+#~ msgstr "Eit vanleg medlem av økta."
+
+# gsm/gsm-client-row.c:40
+#~ msgid "Saving"
+#~ msgstr "Lagrar"
+
+# gsm/gsm-client-row.c:41
+#~ msgid "Saving session details."
+#~ msgstr "Lagrar innstillingar for økta."
+
+# gsm/gsm-client-row.c:44
+#~ msgid "State not reported within timeout."
+#~ msgstr "Tilstand ikkje rapportert innan tidsavbrot."
+
+# gsm/gsm-client-row.c:50 panel/menu.c:4760 panel/panel_config.c:1400
+#~ msgid "Normal"
+#~ msgstr "Vanleg"
+
+# gsm/gsm-client-row.c:51
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "Ikkje påvirka av avlogging, men kan døy."
+
+# gsm/gsm-client-row.c:54
+#~ msgid "Never allowed to die."
+#~ msgstr "Aldri la døy."
+
+# gsm/gsm-client-row.c:56
+#~ msgid "Trash"
+#~ msgstr "Papirkorg"
+
+# gsm/gsm-client-row.c:57
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "Forkastast ved avlogging og kan døy."
+
+# mate-terminal/mate-terminal.c:1596 gsm/gsm-client-row.c:59
+# panel/foobar-widget.c:1070
+#~ msgid "Settings"
+#~ msgstr "Innstillingar"
+
+# gsm/gsm-client-row.c:60
+#~ msgid "Always started on every login."
+#~ msgstr "Startast ved kvar login."
+
+# gsm/gsm-client-list.c:119
+#~ msgid "Order"
+#~ msgstr "Rekkjefølgje"
+
+# gsm/gsm-client-list.c:120
+#~ msgid "Style"
+#~ msgstr "Stil"
+
+# gsm/gsm-client-list.c:121
+#~ msgid "State"
+#~ msgstr "Tilstand"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "Ein feil oppstod då programmet som styrer instillingane i MATE vart "
+#~ "starta.\n"
+#~ "\n"
+#~ "Somme ting, slik som drakt, lydar og bakgrunnsinnstillingar vil kanskje "
+#~ "ikkje virka ordentleg."
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Den siste feilmeldinga var:\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "MATE vil likevel prøva å starta innstillingsprogrammet neste gong du "
+#~ "loggar inn."
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "Innstillingsprogrammet starta på nytt for mange gongar."
+
+#
+#~ msgid "List registered clients, then exit"
+#~ msgstr "Vis registrerte klienter og avslutt"
+
+#
+#~ msgid "PROGRAM..."
+#~ msgstr "PROGRAM ..."
+
+#~ msgid ""
+#~ "You must specify at least one program to remove. You can list the "
+#~ "programs with --list.\n"
+#~ msgstr ""
+#~ "Du må oppgi minst eitt program som skal fjernes. Du kan visa programma "
+#~ "med --list.\n"
+
+#~ msgid "Error: could not connect to the session manager\n"
+#~ msgstr "Feil: kunne ikkje kopla til økthandsamar\n"
+
+#~ msgid "Currently registered clients:\n"
+#~ msgstr "Registrerte klienter:\n"
+
+#~ msgid "Couldn't find program %s in session\n"
+#~ msgstr "Kunne ikkje finna program %s i økta\n"
+
+#~ msgid ""
+#~ "The MATE session manager cannot start properly. Please report this as a "
+#~ "MATE bug. Please include this ICE failure message in the bug report: '%"
+#~ "s'. Meanwhile you could try logging in using the failsafe session."
+#~ msgstr ""
+#~ "Sesjonshandsamar for MATE kan ikkje startast. Vennligst rapportar dette "
+#~ "som ein feil. Ta med denne feilmeldinga frå ICE i rapporten: «%s». I "
+#~ "mellomtida kan du logge inn med feilsikker økt."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to lock the file '%s'. Please "
+#~ "report this as a MATE bug. Sometimes this error may occur if the file's "
+#~ "directory is unwritable, you could try logging in via the failsafe "
+#~ "session and ensuring that it is."
+#~ msgstr ""
+#~ "Sesjonshandsamar for MATE klarte ikkje å låse fila '%s'. Vennligst "
+#~ "rapportar dette som ein feili MATE. Nokon gong oppstår denne feilen når "
+#~ "filens mappe ikkje er skrivbar, du kan prøve å logge inn via ein "
+#~ "feilsikker økt for å forsikre deg om at den er skrivbar."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to read the file: '%s'. If this "
+#~ "file exists it must be readable by you for MATE to work properly. Try "
+#~ "logging in with the failsafe session and removing this file."
+#~ msgstr ""
+#~ "Sesjonshandsamar for MATE klarte ikkje å lesa fila '%s'. Viss denne fila "
+#~ "eksisterer, så må den vera lesbar av deg, for at MATE skal fungere "
+#~ "ordentlig. Prøv og logg med ein feilsikker økt og fjern denne fila."
+
+#~ msgid ""
+#~ "Could not write to file '%s'. This file must be writable in order for "
+#~ "MATE to function properly. Try logging in with the failsafe session and "
+#~ "removing this file. Also make sure that the file's directory is writable."
+#~ msgstr ""
+#~ "Kan ikkje skriva til '%s'. Denne fila må vera skrivbar for at MATE skal "
+#~ "fungere ordentlig. Prøv og logg med ein feilsikker økt og fjern denne "
+#~ "fila. Sjekk òg at filens mappe er skrivbar."
+
+# gmenu/treedel.c:146
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "Er du sikker på at du vil logga ut?"
+
+#
+#~ msgid "Remember running applications"
+#~ msgstr "Hugs køyrande program"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "Sta_rt maskinen på nytt"
+
+# gsm/main.c:65
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "Berre les lagra økter frå default.session fila"
+
+# gsm/main.c:66
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr ""
+#~ "Antal millisekund ventetid for registrering av klientar (0=uendeleg)"
+
+#~ msgid "DELAY"
+#~ msgstr "SEINKING"
+
+# gsm/main.c:67
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr "Antal millisekund ventetid for at klientar skal svare (0=uendeleg)"
+
+# gsm/main.c:68
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr "Antal millisekund ventetid for at klientar skal døy (0=uendeleg)"
+
+#
+#~ msgid "This session is running as a privileged user"
+#~ msgstr "Denne økta køyrast som ein priviligert brukar"
+
+#
+#~ msgid ""
+#~ "Running a session as a privileged user should be avoided for security "
+#~ "reasons. If possible, you should log in as a normal user."
+#~ msgstr ""
+#~ "Du bør unngå å køyra økter med priviligerte brukarar av sikkerhetshensyn. "
+#~ "Logg inn som ein ordinær brukar viss mogleg."
+
+#
+#~ msgid "_Continue"
+#~ msgstr "_Hald fram"
+
+#~ msgid ""
+#~ "The session might encounter issues if the computer clock is not properly "
+#~ "configured. Please consider adjusting it.\n"
+#~ "\n"
+#~ "Current date is <b>%s</b>."
+#~ msgstr ""
+#~ "Det kan oppstå problemer med økta viss klokka ikkje er rett set opp. Du "
+#~ "bør vurdere å stilla den.\n"
+#~ "\n"
+#~ "Dagens dato er <b>%s</b>."
+
+#~ msgid "Failed to launch time configuration tool: %s"
+#~ msgstr "Klarte ikkje å starta verktøy for å stilla klokka: %s"
+
+#
+#~ msgid "The computer clock appears to be wrong"
+#~ msgstr "Klokka på datamaskinen ser ut til å vera feil"
+
+#
+#~ msgid "_Ignore"
+#~ msgstr "_Ignorar"
+
+#
+#~ msgid "_Adjust the Clock"
+#~ msgstr "_Juster klokka"
+
+# gsm/mate-login-check.c:344
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "Kunne ikkje slå opp internett-adressa for %s.\n"
+#~ "Dette vil hindre MATE i å virka ordentleg.\n"
+#~ "Det er mogleg å retta opp problemet ved å leggja\n"
+#~ "til %s i fila /etc/hosts."
+
+# gsm/mate-login-check.c:327 gsm/mate-login-check.c:352
+#~ msgid "Try Again"
+#~ msgstr "Prøv igjen"
+
+# gsm/manager.c:400
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "Venting forlatt grunna konflikt."
+
+# gsm/manager.c:834
+#~ msgid "No response to the %s command."
+#~ msgstr "Ikkje noko svar på kommandoen %s."
+
+# gsm/manager.c:835
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "Programmet kan være treigt, stoppa eller øydelagt."
+
+# gsm/manager.c:836
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "Du kan vente på svar, eller fjerne det."
+
+# gsm/manager.c:1375
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "Gjenoppstart program som er forlatt pga feil."
+
+# gsm/manager.c:1541
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "Nedstenging av økta er i gang."
+
+# gsm/session-properties-capplet.c:206
+#~ msgid "- Save the current session"
+#~ msgstr "- Lagra denne økta"
+
+#
+#~ msgid "Save changes to the current session before closing?"
+#~ msgstr "Lagra endringar i aktiv økt før programmet lukkast?"
+
+#
+#~ msgid "If you don't save, changes will be discarded."
+#~ msgstr "Viss du ikkje lagrar vil endringane forkastes."
+
+#
+#~ msgid "_Close without Saving"
+#~ msgstr "_Lukk utan å lagra"
+
+#~ msgid "Current Session"
+#~ msgstr "Aktiv økt"
+
+#
+#~ msgid "Your session has been saved."
+#~ msgstr "Din økt er lagra."
+
+#~ msgid "could not connect to the session manager\n"
+#~ msgstr "kunne ikkje kopla til økthandsamaren\n"
+
+#~ msgid "session manager does not support MATE extensions\n"
+#~ msgstr "økthandsamaren støttar ikkje MATE-utvidelser\n"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "Fjern den valde klienten frå økta."
+
+# gsm/session-properties-capplet.c:206
+#~ msgid "Apply changes to the current session"
+#~ msgstr "Bruk endringane i den aktive økta"
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "Liste over program i økta."
+
+# gsm/session-properties-capplet.c:321
+#~ msgid "Currently running _programs:"
+#~ msgstr "_Program som køyrer no:"
+
+# gsm/splash.c:58 gsm/splash.c:59
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "Sawfish vindaugehandsamar"
+
+# gsm/splash.c:67
+#~ msgid "Marco Window Manager"
+#~ msgstr "Marco vindaugehandsamar"
+
+# gsm/splash.c:69
+#~ msgid "Caja"
+#~ msgstr "Caja"
+
+# applets/desk-guide/deskguide_applet.c:1151
+#~ msgid "Desktop Settings"
+#~ msgstr "Instillingar for skrivebord"
+
+#
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "Oppstartskommandoen kan ikkje vera tom"
+
+# gsm/logout.c:220
+#~ msgid "_Save current setup"
+#~ msgstr "L_agra noverande oppsett"
+
+# gsm/session-names.c:126
+#~ msgid "The session name cannot be empty"
+#~ msgstr "Øktnamnet kan ikkje vere tomt"
+
+# gsm/session-names.c:136
+#~ msgid "The session name already exists"
+#~ msgstr "Øktnamnet eksisterer allereie"
+
+# gsm/session-names.c:170
+#~ msgid "Add a new session"
+#~ msgstr "Legg til ny økt"
+
+# gsm/session-names.c:202
+#~ msgid "Edit session name"
+#~ msgstr "Rediger namnet på økta"
+
+#~ msgid "Disable"
+#~ msgstr "Ikkje bruk"
+
+# mate-terminal/mate-terminal.c:1591
+#~ msgid "_Edit"
+#~ msgstr "R_ediger"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "Somme endringar er ikkje lagra.\n"
+#~ "Vil du avslutta likevel?"
+
+# gsm/session-properties-capplet.c:192
+#~ msgid "Show splash screen on _login"
+#~ msgstr "Vis oppstartskjerm ved inn_logging"
+
+# gsm/session-properties-capplet.c:199
+#~ msgid "As_k on logout"
+#~ msgstr "S_pør før du loggar ut"
+
+# gsm/session-properties-capplet.c:206
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "Lagra endrin_gar i økta automatisk"
+
+# gsm/session-properties.c:272
+#~ msgid "_Sessions:"
+#~ msgstr "_Økter:"
+
+# gsm/startup-programs.c:283 gsm/startup-programs.c:290
+#~ msgid "_Startup Command:"
+#~ msgstr "Opp_startskommando:"
diff --git a/po/nso.po b/po/nso.po
new file mode 100644
index 0000000..21ad7c2
--- /dev/null
+++ b/po/nso.po
@@ -0,0 +1,496 @@
+# Northern Sotho translation of mate-session.
+# Copyright (C) 2004 Zuza Software Foundation
+# This file is distributed under the same license as the mate-session package.
+#
+# Zuza Software Foundation <[email protected]>, 2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-01-11 08:59+0000\n"
+"PO-Revision-Date: 2004-11-29 17:02+0200\n"
+"Last-Translator: Zuza Software Foundation <[email protected]>\n"
+"Language-Team: Northern Sotho <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: mate-session/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "Dumelela dikgokagano tša TCP"
+
+#: mate-session/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"Ka mabaka a polokego, maemong ao a nago le _IceTcpTransNoListen() "
+"(ditshepedišo ya XFree86), lenaneo la mate ga le theetše dikgokagano tša "
+"mafelo a TCP. Karolo ye e tla dumelela dikgokagano tše di tšwago go baswari "
+"(ba ba dumeletšwego) ba ba lego kgole. E le gore se se direge, karolo ya "
+"mate e swanetše go thongwa ka leswa."
+
+#: mate-session/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Ge e ba le kgontšhwa, mate-session e tla akgofiša mošomisi pele a ka fetša "
+"lenaneo."
+
+#: mate-session/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Ge e ba le kgontšhwa, mate-session e tla boloka lenaneo le ka go "
+"itiragalela. Go sego bjalo, poledišano ya go tšwa e tla ba le kgetho ya gore "
+"go bolokwe lenaneo."
+
+#: mate-session/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "Go akgofiša ga go tšwa"
+
+#: mate-session/mate-session.schemas.in.h:6
+msgid ""
+"Preferred Image to use for the splash screen when logging in to the MATE "
+"Desktop"
+msgstr ""
+"Seswantšho se se ratwago bakeng sa go se diriša sekirining se se "
+"tlampuletšago ge go dirišwa teseke ya MATE"
+
+#: mate-session/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "Boloka mananeo"
+
+#: mate-session/mate-session.schemas.in.h:8
+msgid "Show the splash screen"
+msgstr "Bontšha sekirini sa go tlampuletša"
+
+#: mate-session/mate-session.schemas.in.h:9
+msgid "Show the splash screen when the session starts up"
+msgstr "Bontšha seširo sa go tlampuletša ge lenaneo le thoma"
+
+#: mate-session/mate-session.schemas.in.h:10
+msgid "Splash Screen Image"
+msgstr "Seswantšho sa Sekirini sa go Tlampuletša"
+
+#: mate-session/gsm-client-editor.c:97 mate-session/startup-programs.c:314
+msgid "_Order:"
+msgstr "_Tatelano:"
+
+#: mate-session/gsm-client-editor.c:99
+msgid "The order in which applications are started in the session."
+msgstr "Tatelano yeo ditirišo di thongwago ka yona lenaneong le."
+
+#: mate-session/gsm-client-editor.c:106
+msgid "What happens to the application when it exits."
+msgstr "Go direga'ng tirišong ge e tšwa."
+
+#: mate-session/gsm-client-editor.c:109
+msgid "_Style:"
+msgstr "_Setaele:"
+
+#: mate-session/gsm-client-list.c:150
+#: mate-session/session-properties-capplet.c:412
+msgid "Order"
+msgstr "Tatelano"
+
+#: mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr "Setaele"
+
+#: mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr "Boemo"
+
+#: mate-session/gsm-client-list.c:165
+msgid "Program"
+msgstr "Lenaneo"
+
+#: mate-session/gsm-client-row.c:31
+msgid "Inactive"
+msgstr "Ga e šome"
+
+#: mate-session/gsm-client-row.c:32
+msgid "Waiting to start or already finished."
+msgstr "E emetše go thoma goba e šetše e feditše."
+
+#: mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr "E a thoma"
+
+#: mate-session/gsm-client-row.c:35
+msgid "Started but has not yet reported state."
+msgstr "E thomile eupja ga se ya hlwa e bega boemo bjo e lego go bjona."
+
+#: mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr "E a šoma"
+
+#: mate-session/gsm-client-row.c:38
+msgid "A normal member of the session."
+msgstr "Leloko le tlwaelegilego la lenaneo."
+
+#: mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr "E a boloka"
+
+#: mate-session/gsm-client-row.c:41
+msgid "Saving session details."
+msgstr "E boloka dintlha tša lenaneo."
+
+#: mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr "Ga e tsebje"
+
+#: mate-session/gsm-client-row.c:44
+msgid "State not reported within timeout."
+msgstr "Boemo ga se bja begwa nakong ya ge go tlogetšwe go šoma."
+
+#: mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr "Tlwaelegile"
+
+#: mate-session/gsm-client-row.c:51
+msgid "Unaffected by logouts but can die."
+msgstr "Ga se ya kgongwa ke go tšwa eupša e ka hwa."
+
+#: mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr "Thoma ka leswa"
+
+#: mate-session/gsm-client-row.c:54
+msgid "Never allowed to die."
+msgstr "Ga se ya dumelelwa go hwa."
+
+#: mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr "Ditlakala"
+
+#: mate-session/gsm-client-row.c:57
+msgid "Discarded on logout and can die."
+msgstr "E lahlilwe go tšweng gomme e ka hwa."
+
+#: mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr "Dipeakanyo"
+
+#: mate-session/gsm-client-row.c:60
+msgid "Always started on every login."
+msgstr "Ka mehla e thomile go go tsena go gongwe le go gongwe."
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: mate-session/gsm-gsd.c:41
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"Go bile le phošo ya go thoma Dipeakanyo tša Daemon ya MATE.\n"
+"\n"
+"Dilo tše dingwe, tše bjalo ka dihlogo, medumo goba dipeakanyo tše bonagalago "
+"ka morago di ka no se šome gabotse."
+
+#: mate-session/gsm-gsd.c:53
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Molaetša wa mafelelo wa phošo e be e le:\n"
+"\n"
+
+#: mate-session/gsm-gsd.c:58
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"MATE e sa dutše e tla leka go thoma Daemon ya Dipeakanyo ka leswa nakong e "
+"tlago ge o tsena."
+
+#: mate-session/gsm-gsd.c:115
+msgid "There was an unknown activation error."
+msgstr "Go bile le phošo e sa tsebjego ya go diragatša."
+
+#: mate-session/gsm-gsd.c:157
+msgid "The Settings Daemon restarted too many times."
+msgstr "Daemon ya Dipeakanyo e thomile ka leswa gantši kudu."
+
+#: mate-session/logout.c:355
+msgid "Are you sure you want to log out?"
+msgstr "Na o kgonthišegile gore o nyaka go tšwa?"
+
+#: mate-session/logout.c:372
+msgid "_Save current setup"
+msgstr "_Boloka peakanyo ya gona bjale"
+
+#: mate-session/logout.c:393
+msgid "Action"
+msgstr "Mogato"
+
+#: mate-session/logout.c:410
+msgid "_Log out"
+msgstr "_E tšwa"
+
+#: mate-session/logout.c:416
+msgid "Sh_ut down"
+msgstr "Ti_ma"
+
+#: mate-session/logout.c:423
+msgid "_Restart the computer"
+msgstr "_Thoma khomphuthara ka leswa"
+
+#: mate-session/main.c:81
+msgid "Specify a session name to load"
+msgstr "Laetša leina la lenaneo leo le swanetšego go laišwa"
+
+#: mate-session/main.c:82
+msgid "Only read saved sessions from the default.session file"
+msgstr ""
+"Bala feela mananeo a bolokilwego go tšwa faeleng ya lenaneo ya tlhaelelo"
+
+#: mate-session/main.c:83
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr ""
+"Go feditšwe seripa sa motsotswana go emetšwe badirelwa gore ba ingwadiše "
+"(0=ka mo go sa felego)"
+
+#: mate-session/main.c:84
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr ""
+"Go feditšwe seripa sa motsotswana go emetšwe badirelwa gore ba arabele (0=ka "
+"mo go sa felego)"
+
+#: mate-session/main.c:85
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr ""
+"Go feditšwe seripa sa motsotswana go emetšwe badirelwa gore ba hwe (0=ka mo "
+"go sa felego)"
+
+#: mate-session/main.c:265
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"Ga se ya kgona go lebelela aterese ya Inthanete bakeng sa %s.\n"
+"Se se tla palediša MATE go šoma ka mo go swanetšego.\n"
+"Go ka kgonega go lokiša bothata ka go oketša\n"
+"%s faeleng/bjalo bjalo/baswari."
+
+#: mate-session/main.c:272
+msgid "Log in Anyway"
+msgstr "Lega go le bjalo tsena"
+
+#: mate-session/main.c:273
+msgid "Try Again"
+msgstr "Leka Gape"
+
+#: mate-session/manager.c:223
+msgid "Your session has been saved"
+msgstr "Lenaneo la gago le bolokilwe"
+
+#: mate-session/manager.c:527
+msgid "Wait abandoned due to conflict."
+msgstr "Go leta go gannwe ka baka la thulano."
+
+#: mate-session/manager.c:1035
+#, c-format
+msgid "No response to the %s command."
+msgstr "Ga go na karabo taelong ya %s."
+
+#: mate-session/manager.c:1036
+msgid "The program may be slow, stopped or broken."
+msgstr "Lenaneo le ka ba le nanya, le emišitšwe goba le senyegile."
+
+#: mate-session/manager.c:1037
+msgid "You may wait for it to respond or remove it."
+msgstr "O ka e emela gore e arabele goba o e tloše."
+
+#: mate-session/manager.c:1760
+msgid "Restart abandoned due to failures."
+msgstr "Thoma ka leswa tše gannwego ka baka la go palelwa."
+
+#: mate-session/manager.c:1956
+msgid "A session shutdown is in progress."
+msgstr "Lenaneo la go tima le tšwela pele."
+
+#: mate-session/save-session.c:46
+msgid "Set the current session"
+msgstr "Beakanya lenaneo la gona bjale"
+
+#: mate-session/save-session.c:47
+msgid "Kill session"
+msgstr "Bolaya lenaneo"
+
+#: mate-session/save-session.c:48
+msgid "Use dialog boxes"
+msgstr "Diriša mapokisi a poledišano"
+
+#: mate-session/save-session.c:146 mate-session/save-session.c:179
+msgid "Could not connect to the session manager"
+msgstr "Ga e kgone go kgokagana le molaodi wa lenaneo"
+
+#: mate-session/session-names.c:143
+msgid "The session name cannot be empty"
+msgstr "Leina la lenaneo ga le kgone go se be le selo"
+
+#: mate-session/session-names.c:154
+msgid "The session name already exists"
+msgstr "Leina la lenaneo le šetše le le gona"
+
+#: mate-session/session-names.c:188
+msgid "Add a new session"
+msgstr "Oketša lenaneo le leswa"
+
+#: mate-session/session-names.c:218
+msgid "Edit session name"
+msgstr "Lokiša leina la lenaneo"
+
+#: mate-session/session-properties-capplet.c:122
+msgid "_Edit"
+msgstr "_Lokiša"
+
+#: mate-session/session-properties-capplet.c:190
+msgid ""
+"Some changes are not saved.\n"
+"Is it still OK to exit?"
+msgstr ""
+"Diphetogo tše dingwe ga di a bolokwa.\n"
+"Go sa dutše Go Lokile go tšwa?"
+
+#: mate-session/session-properties-capplet.c:240
+#: mate-session/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Mananeo"
+
+#: mate-session/session-properties-capplet.c:273
+msgid "Show splash screen on _login"
+msgstr "Bontšha sekirini sa go tlampuletša ge _o tsena"
+
+#: mate-session/session-properties-capplet.c:284
+#, fuzzy
+msgid "As_k on logout"
+msgstr "_Akgofiša go tšwa"
+
+#: mate-session/session-properties-capplet.c:295
+msgid "Automatically save chan_ges to session"
+msgstr "Boloka diphetogo lenan_eong ka mo go itiragalelago"
+
+#: mate-session/session-properties-capplet.c:306
+msgid "_Sessions:"
+msgstr "_Mananeo:"
+
+#: mate-session/session-properties-capplet.c:324
+msgid "Session Name"
+msgstr "Leina la Lenaneo"
+
+#: mate-session/session-properties-capplet.c:375
+msgid "Session Options"
+msgstr "Dikgetho tša Lenaneo"
+
+#: mate-session/session-properties-capplet.c:384
+msgid "Current Session"
+msgstr "Lenaneo la Gona Bjale"
+
+#: mate-session/session-properties-capplet.c:393
+msgid "Additional startup _programs:"
+msgstr "Mananeo a oketšegilego _a go thoma:"
+
+#: mate-session/session-properties-capplet.c:414
+msgid "Command"
+msgstr "Taelo"
+
+#: mate-session/session-properties-capplet.c:446
+msgid "Startup Programs"
+msgstr "Mananeo a go Thongwa"
+
+#: mate-session/session-properties.c:49
+msgid "Remove the currently selected client from the session."
+msgstr "Tloša modirelwa yo a kgethilwego gona bjale lenaneong."
+
+#: mate-session/session-properties.c:55
+msgid "Apply changes to the current session"
+msgstr "Diriša diphetogo lenaneong la gona bjale"
+
+#: mate-session/session-properties.c:61
+msgid "The list of programs in the session."
+msgstr "Lelokelelo la mananeo lenaneong."
+
+#: mate-session/session-properties.c:88
+msgid "Currently running _programs:"
+msgstr "Mananeo ao a šomago gona _bjale:"
+
+#: mate-session/session-properties.c:104
+msgid "Initialize session settings"
+msgstr "Thoma dipeakanyo tša lenaneo"
+
+#: mate-session/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Fetola sebopego sa mananeo a gago"
+
+#: mate-session/splash-widget.c:43
+msgid "Sawfish Window Manager"
+msgstr "Molaodi wa Lefesetere la Sawfish"
+
+#: mate-session/splash-widget.c:44
+msgid "Marco Window Manager"
+msgstr "Molaodi wa Lefesetere la Marco"
+
+#: mate-session/splash-widget.c:45
+msgid "Window Manager"
+msgstr "Molaodi wa Lefesetere"
+
+#: mate-session/splash-widget.c:46
+msgid "The Panel"
+msgstr "Panele"
+
+#: mate-session/splash-widget.c:47
+msgid "Session Manager Proxy"
+msgstr "Kemedi ya Molaodi wa Lenaneo"
+
+#: mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "Caja"
+
+#: mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr "Dipeakanyo tša Teseke"
+
+#: mate-session/startup-programs.c:292
+msgid "_Startup Command:"
+msgstr "_Taelo ya go Thoma:"
+
+#: mate-session/startup-programs.c:298
+msgid "Startup Command"
+msgstr "Taelo ya go Thoma"
+
+#: mate-session/startup-programs.c:347
+msgid "The startup command cannot be empty"
+msgstr "Taelo ya go thoma ga se ya swanela go se be le selo"
+
+#: mate-session/startup-programs.c:384
+msgid "Add Startup Program"
+msgstr "Oketša Lenaneo la go Thoma"
+
+#: mate-session/startup-programs.c:405
+msgid "Edit Startup Program"
+msgstr "Lokiša Lenaneo la go Thoma"
diff --git a/po/oc.po b/po/oc.po
new file mode 100644
index 0000000..e601b6a
--- /dev/null
+++ b/po/oc.po
@@ -0,0 +1,657 @@
+# Translation of oc.po to Occitan
+# Occitan translation of mate-session.
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# This file is released under the same license as the mate-session package.
+#
+# Yannig Marchegay (Kokoyaya) <[email protected]>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: oc\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-07 10:21+0100\n"
+"PO-Revision-Date: 2008-02-26 23:10+0100\n"
+"Last-Translator: Yannig Marchegay (Kokoyaya) <[email protected]>\n"
+"Language-Team: Occitan <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: ../data/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "Autorisar las connexions TCP"
+
+#: ../data/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"Per rasons de seguritat, sus la plataformas qu'an _IceTcpTransNoListen() "
+"(sistèmas XFree86), mate-session susvelha pas las connexions als pòrts TCP. "
+"Aquesta opcion permetrà de connexions d'òstes TCP (autorisats). Debètz "
+"tornar aviar mate-session per que foncione."
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"S'es activat, mate-session enregistrarà automaticament la session. "
+"Autrament, la boita de dialòg de desconnexion prepausarà una opcion per "
+"enregistrar la sesilha."
+
+#: ../data/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "Indicador de sortida"
+
+#: ../data/mate-session.schemas.in.h:6
+msgid "Preferred Image to use for login splash screen"
+msgstr "Imatges preferits per l'ecran d'acuèlh"
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "Enregistrar las sessions"
+
+#: ../data/mate-session.schemas.in.h:8
+msgid "Selected option in the log out dialog"
+msgstr "Opcion seleccionada a la bosta de dialòg de sortida"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Show the splash screen"
+msgstr "Visualizar l'ecran d'acuèlh"
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Show the splash screen when the session starts up"
+msgstr "Visualizar l'ecran d'acuèlh al iniciar la session"
+
+#: ../data/mate-session.schemas.in.h:11
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Aquò's un camin relatiu basat sul repertòri $datadir/pixmaps/. Los "
+"sosrepertòris e los noms d'imatges son de valors valablas. Se càmbiatz "
+"aquesta valor, aquò prendrà efècte a la debuta de la sesilha venenta."
+
+#: ../data/mate-session.schemas.in.h:12
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+"Aquò's l'opcion que seleccionaretz a la bosta de dialòg de sortida, las "
+"valors valablas son \"logout\" per sortir de la sesilha, \"shutdown\" per "
+"arrestar lo sistèma, e \"restart\" per tornar lançar."
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "La session vos connectarà dins MATE"
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Configurar vòstras sesilhas"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Sessions"
+
+#: ../mate-session/gsm-at-startup.c:39
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+
+#: ../mate-session/gsm-client-editor.c:123
+msgid "_Order:"
+msgstr "_Òrdre :"
+
+#: ../mate-session/gsm-client-editor.c:125
+msgid "The order in which applications are started in the session."
+msgstr "Òrdre d'aviada de las aplicacions de la sesilha."
+
+#: ../mate-session/gsm-client-editor.c:133
+msgid "What happens to the application when it exits."
+msgstr "Qu'arriba passa amb lo logicial quand se quita."
+
+#: ../mate-session/gsm-client-editor.c:134
+msgid "_Style:"
+msgstr "_Estil :"
+
+#: ../mate-session/gsm-client-list.c:44
+msgid "Inactive"
+msgstr "Inactiu"
+
+#: ../mate-session/gsm-client-list.c:44
+msgid "Waiting to start or already finished."
+msgstr "En espera de se lançar o lançament ja acabat."
+
+#: ../mate-session/gsm-client-list.c:46
+msgid "Starting"
+msgstr "Aviada"
+
+#: ../mate-session/gsm-client-list.c:46
+msgid "Started but has not yet reported state."
+msgstr "Lançat mas pas encara de rapòrt de son estat."
+
+#: ../mate-session/gsm-client-list.c:48
+msgid "Running"
+msgstr "En foncionament"
+
+#: ../mate-session/gsm-client-list.c:48
+msgid "A normal member of the session."
+msgstr "Un utilizaire normal de la sesilha."
+
+#: ../mate-session/gsm-client-list.c:50
+msgid "Saving"
+msgstr "A enregistrar"
+
+#: ../mate-session/gsm-client-list.c:50
+msgid "Saving session details."
+msgstr "A enregistrar los detalhs de la sesilha."
+
+#. FIXME find better icon
+#: ../mate-session/gsm-client-list.c:53
+msgid "Unknown"
+msgstr "Desconegut"
+
+#: ../mate-session/gsm-client-list.c:53
+msgid "State not reported within timeout."
+msgstr "L'estat es pas estat reportat pendent lo relambi autorizat."
+
+#. FIXME find icon
+#: ../mate-session/gsm-client-list.c:60
+msgid "Normal"
+msgstr "Normal"
+
+#: ../mate-session/gsm-client-list.c:60
+msgid "Unaffected by logouts but can die."
+msgstr "Las sortidas l'afectan pas mas pòt morir."
+
+#: ../mate-session/gsm-client-list.c:62
+msgid "Restart"
+msgstr "Tornar lançar"
+
+#: ../mate-session/gsm-client-list.c:62
+msgid "Never allowed to die."
+msgstr "Permetre pas jamai que morisca."
+
+#: ../mate-session/gsm-client-list.c:64
+msgid "Trash"
+msgstr "Banasta"
+
+#: ../mate-session/gsm-client-list.c:64
+msgid "Discarded on logout and can die."
+msgstr "Escartat a la sortida, pòt morir."
+
+#: ../mate-session/gsm-client-list.c:66
+msgid "Settings"
+msgstr "Paramètres"
+
+#: ../mate-session/gsm-client-list.c:66
+msgid "Always started on every login."
+msgstr "Lançat a cada intrada de sesilha."
+
+#: ../mate-session/gsm-client-list.c:190
+msgid "Order"
+msgstr "Òrdre"
+
+#: ../mate-session/gsm-client-list.c:197
+msgid "Style"
+msgstr "Estil"
+
+#: ../mate-session/gsm-client-list.c:204
+msgid "State"
+msgstr "Estat"
+
+#: ../mate-session/gsm-client-list.c:211
+#: ../mate-session/session-properties-capplet.c:284
+msgid "Program"
+msgstr "Programa"
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: ../mate-session/gsm-gsd.c:47
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"I a aguda una error al lançar los paramètres de MATE (MATE Settings "
+"Daemon). \n"
+"\n"
+"Se pòt que d'unas causas, coma los tèmas, los sons o los paramètres de fond "
+"foncionen pas correctament."
+
+#: ../mate-session/gsm-gsd.c:59
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Lo darrièr messatge d'error èra :\n"
+"\n"
+
+#: ../mate-session/gsm-gsd.c:64
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"MATE ensajarà de tornar lançar lo programa de configuracion a lançament de "
+"vòstra sesilha venenta."
+
+#: ../mate-session/gsm-gsd.c:162
+msgid "The Settings Daemon restarted too many times."
+msgstr "Lo programa de configuracion se tornèt lançar de tròp."
+
+#. Name is mandatory and might not be set by the caller
+#: ../mate-session/gsm-keyfile.c:43
+msgid "No Name"
+msgstr ""
+
+#: ../mate-session/mate-session-remove.c:50
+msgid "List registered clients, then exit"
+msgstr ""
+
+#: ../mate-session/mate-session-remove.c:52
+msgid "PROGRAM..."
+msgstr "PROGRAMA..."
+
+#: ../mate-session/mate-session-remove.c:176
+#, c-format
+msgid ""
+"You must specify at least one program to remove. You can list the programs "
+"with --list.\n"
+msgstr ""
+
+#: ../mate-session/mate-session-remove.c:183
+#, c-format
+msgid "Error: could not connect to the session manager\n"
+msgstr ""
+
+#: ../mate-session/mate-session-remove.c:197
+#, c-format
+msgid "Currently registered clients:\n"
+msgstr ""
+
+#: ../mate-session/mate-session-remove.c:207
+#, c-format
+msgid "Couldn't find program %s in session\n"
+msgstr ""
+
+#. At least try to tell the user something.
+#: ../mate-session/ice.c:355
+#, c-format
+msgid ""
+"The MATE session manager cannot start properly. Please report this as a "
+"MATE bug. Please include this ICE failure message in the bug report: '%"
+"s'. Meanwhile you could try logging in using the failsafe session."
+msgstr ""
+
+#: ../mate-session/ice.c:514
+#, c-format
+msgid ""
+"The MATE session manager was unable to lock the file '%s'. Please report "
+"this as a MATE bug. Sometimes this error may occur if the file's directory "
+"is unwritable, you could try logging in via the failsafe session and "
+"ensuring that it is."
+msgstr ""
+
+#: ../mate-session/ice.c:541
+#, c-format
+msgid ""
+"The MATE session manager was unable to read the file: '%s'. If this file "
+"exists it must be readable by you for MATE to work properly. Try logging "
+"in with the failsafe session and removing this file."
+msgstr ""
+
+#: ../mate-session/ice.c:586
+#, c-format
+msgid ""
+"Could not write to file '%s'. This file must be writable in order for MATE "
+"to function properly. Try logging in with the failsafe session and removing "
+"this file. Also make sure that the file's directory is writable."
+msgstr ""
+
+#: ../mate-session/logout.c:392
+msgid "Are you sure you want to log out?"
+msgstr ""
+
+#: ../mate-session/logout.c:409
+msgid "Remember running applications"
+msgstr ""
+
+#: ../mate-session/logout.c:432
+msgid "Action"
+msgstr "Accion"
+
+#: ../mate-session/logout.c:449
+msgid "_Log out"
+msgstr ""
+
+#: ../mate-session/logout.c:456
+msgid "Sh_ut down"
+msgstr ""
+
+#: ../mate-session/logout.c:464
+msgid "_Restart the computer"
+msgstr "_Tornar aviar l'ordenador"
+
+#: ../mate-session/main.c:86
+msgid "Specify a session name to load"
+msgstr "Especifica lo nom de la sesilha de cargar"
+
+#: ../mate-session/main.c:86 ../mate-session/mate-session-save.c:48
+msgid "NAME"
+msgstr "NOM"
+
+#: ../mate-session/main.c:87
+msgid "Only read saved sessions from the default.session file"
+msgstr "Legir sonque las sesilhas salvadas al fichièr default.session"
+
+#: ../mate-session/main.c:88
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr ""
+"Relambi d'espèra, en millisegondas, per que los clients se registren "
+"(0=indefiniament)"
+
+#: ../mate-session/main.c:88 ../mate-session/main.c:89
+#: ../mate-session/main.c:90
+msgid "DELAY"
+msgstr ""
+
+#: ../mate-session/main.c:89
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr ""
+"Relambi d'espèra, en millisegondas, per que los clients respondan "
+"(0=indefiniament)"
+
+#: ../mate-session/main.c:90
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr ""
+"Relambi d'espèra, en millisegondas, per que los clients moriscan "
+"(0=indefiniament)"
+
+#: ../mate-session/main.c:166
+msgid "This session is running as a privileged user"
+msgstr ""
+
+#: ../mate-session/main.c:168
+msgid ""
+"Running a session as a privileged user should be avoided for security "
+"reasons. If possible, you should log in as a normal user."
+msgstr ""
+
+#: ../mate-session/main.c:172
+msgid "_Continue"
+msgstr "_Contunhar"
+
+#: ../mate-session/main.c:256
+#, c-format
+msgid ""
+"The session might encounter issues if the computer clock is not properly "
+"configured. Please consider adjusting it.\n"
+"\n"
+"Current date is <b>%s</b>."
+msgstr ""
+
+#: ../mate-session/main.c:375
+#, c-format
+msgid "Failed to launch time configuration tool: %s"
+msgstr "Impossible d'executar l'esplech de configuracion de l'ora : %s"
+
+#: ../mate-session/main.c:406
+msgid "The computer clock appears to be wrong"
+msgstr ""
+
+#: ../mate-session/main.c:413
+msgid "_Ignore"
+msgstr "_Ignorar"
+
+#: ../mate-session/main.c:414
+msgid "_Adjust the Clock"
+msgstr ""
+
+#: ../mate-session/main.c:551
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"S'es pas poscut cercar l'adreça electronica de %s.\n"
+"Aquò empacharà MATE de foncionar corrèctament. \n"
+"Se pòt benlèu adobar aqueste problèma en apondre\n"
+"%s al fichièr /etc/hosts."
+
+#: ../mate-session/main.c:558
+msgid "Log in Anyway"
+msgstr "Se connectar ça que la"
+
+#: ../mate-session/main.c:559
+msgid "Try Again"
+msgstr "Tornar ensajar"
+
+#: ../mate-session/main.c:693
+msgid "- Manage the MATE session"
+msgstr "- Gerir la sesilha MATE"
+
+#: ../mate-session/manager.c:513
+msgid "Wait abandoned due to conflict."
+msgstr "L'espera s'es arrestada per causa d'un conflicte."
+
+#: ../mate-session/manager.c:1021
+#, c-format
+msgid "No response to the %s command."
+msgstr "Pas cap de responsa a la comanda %s."
+
+#: ../mate-session/manager.c:1022
+msgid "The program may be slow, stopped or broken."
+msgstr "Se pòt que lo programa siá alentit, arrestat o degalhat."
+
+#: ../mate-session/manager.c:1023
+msgid "You may wait for it to respond or remove it."
+msgstr "Podètz esperar sa responsa o lo suprimir."
+
+#: ../mate-session/manager.c:1749
+msgid "Restart abandoned due to failures."
+msgstr "Se tornèt pas lançar pr'amor d'errors."
+
+#: ../mate-session/manager.c:1945
+msgid "A session shutdown is in progress."
+msgstr "Sesilha a se tampar."
+
+#: ../mate-session/mate-session-save.c:48
+msgid "Set the current session name"
+msgstr "Definir lo nom de la session activa"
+
+#: ../mate-session/mate-session-save.c:49
+msgid "Kill session"
+msgstr "Tuar la sesilha"
+
+#: ../mate-session/mate-session-save.c:50
+msgid "Use dialog boxes for errors"
+msgstr ""
+
+#: ../mate-session/mate-session-save.c:51
+msgid "Do not require confirmation"
+msgstr "Demandar pas de confirmacion"
+
+#: ../mate-session/mate-session-save.c:149
+#: ../mate-session/mate-session-save.c:187
+msgid "Could not connect to the session manager"
+msgstr "Impossible de se connectar al gestionari de sesilhas"
+
+#: ../mate-session/mate-session-save.c:172
+msgid "- Save the current session"
+msgstr "- Enregistrar la session activa"
+
+#: ../mate-session/session-properties-capplet.c:154
+msgid "Save changes to the current session before closing?"
+msgstr ""
+
+#: ../mate-session/session-properties-capplet.c:156
+msgid "If you don't save, changes will be discarded."
+msgstr ""
+
+#: ../mate-session/session-properties-capplet.c:159
+msgid "_Close without Saving"
+msgstr "_Tampar sens enregistrar"
+
+#: ../mate-session/session-properties-capplet.c:224
+msgid "Sessions Preferences"
+msgstr ""
+
+#. non-session managed startup programs
+#: ../mate-session/session-properties-capplet.c:250
+msgid "Additional startup _programs:"
+msgstr "Programas adicionals de lançament :"
+
+#: ../mate-session/session-properties-capplet.c:275
+msgid "Enabled"
+msgstr "Activat"
+
+#: ../mate-session/session-properties-capplet.c:319
+msgid "Startup Programs"
+msgstr "Programas de lançament"
+
+#: ../mate-session/session-properties-capplet.c:326
+msgid "Current Session"
+msgstr "Sesilha en cors"
+
+#. Autosave
+#: ../mate-session/session-properties-capplet.c:337
+msgid "_Automatically remember running applications when logging out"
+msgstr ""
+
+#: ../mate-session/session-properties-capplet.c:353
+msgid "_Remember Currently Running Applications"
+msgstr ""
+
+#: ../mate-session/session-properties-capplet.c:361
+msgid "Session Options"
+msgstr "Opcions de la sesilha"
+
+#: ../mate-session/session-properties-capplet.c:457
+msgid "Your session has been saved."
+msgstr ""
+
+#: ../mate-session/session-properties-capplet.c:500
+#, c-format
+msgid "could not connect to the session manager\n"
+msgstr ""
+
+#: ../mate-session/session-properties-capplet.c:506
+#, c-format
+msgid "session manager does not support MATE extensions\n"
+msgstr ""
+
+#: ../mate-session/session-properties.c:51
+msgid "Remove the currently selected client from the session."
+msgstr "Suprimir lo client seleccionat de la sesilha."
+
+#: ../mate-session/session-properties.c:57
+msgid "Apply changes to the current session"
+msgstr "Aplicar las modificacions a la sesilha en cors"
+
+#: ../mate-session/session-properties.c:63
+msgid "The list of programs in the session."
+msgstr "La lista dels programas de la sesilha."
+
+#: ../mate-session/session-properties.c:89
+msgid "Currently running _programs:"
+msgstr "_Programas en cors d'execucion :"
+
+#: ../mate-session/splash-widget.c:44
+msgid "Sawfish Window Manager"
+msgstr "Gestionari de fenèstras Sawfish"
+
+#: ../mate-session/splash-widget.c:45
+msgid "Marco Window Manager"
+msgstr "Gestionari de fenèstras Marco"
+
+#: ../mate-session/splash-widget.c:46
+msgid "Window Manager"
+msgstr "Gestionari de fenèstras"
+
+#: ../mate-session/splash-widget.c:47
+msgid "The Panel"
+msgstr "Lo panèl"
+
+#: ../mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "Caja"
+
+#: ../mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr "Paramètres del burèu"
+
+#: ../mate-session/startup-programs.c:348
+msgid "No description"
+msgstr "Pas de descripcion"
+
+#: ../mate-session/startup-programs.c:409
+msgid "Select Command"
+msgstr ""
+
+#: ../mate-session/startup-programs.c:471
+msgid "_Name:"
+msgstr "_Nom :"
+
+#: ../mate-session/startup-programs.c:486
+msgid "Co_mmand:"
+msgstr "_Comanda :"
+
+#: ../mate-session/startup-programs.c:498
+msgid "_Browse..."
+msgstr "_Examinar..."
+
+#: ../mate-session/startup-programs.c:510
+msgid "Comm_ent:"
+msgstr "Co_mentari :"
+
+#: ../mate-session/startup-programs.c:538
+msgid "The name of the startup program cannot be empty"
+msgstr ""
+
+#: ../mate-session/startup-programs.c:540
+msgid "The startup command cannot be empty"
+msgstr "La comanda de lançament pòt pas èsser voida"
+
+#: ../mate-session/startup-programs.c:546
+msgid "The startup command is not valid"
+msgstr ""
+
+#: ../mate-session/startup-programs.c:603
+msgid "Add Startup Program"
+msgstr ""
+
+#: ../mate-session/startup-programs.c:647
+msgid "Edit Startup Program"
+msgstr "Editar lo programa de lançament"
diff --git a/po/or.po b/po/or.po
new file mode 100644
index 0000000..5e0f3c3
--- /dev/null
+++ b/po/or.po
@@ -0,0 +1,537 @@
+# translation of mate-session.master.or.po to Oriya
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+#
+# Subhransu Behera <[email protected]>, 2006.
+# Manoj Kumar Giri <[email protected]>, 2009, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.master.or\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-session&component=general\n"
+"POT-Creation-Date: 2010-03-27 19:26+0000\n"
+"PO-Revision-Date: 2010-05-12 12:43+0530\n"
+"Last-Translator: Manoj Kumar Giri <[email protected]>\n"
+"Language-Team: Oriya <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "ନିର୍ଦ୍ଦେଶ ବାଛନ୍ତୁ"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "ପ୍ରାରମ୍ଭିକ ପ୍ରୋଗ୍ରାମକୁ ଯୋଗ କରନ୍ତୁ"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "ପ୍ରାରମ୍ଭିକ ପ୍ରୋଗ୍ରାମକୁ ସଂଶୋଧନ କରନ୍ତୁ"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "ପ୍ରାରମ୍ଭିକ ପ୍ରୋଗ୍ରାମଟି ଖାଲି ହୋଇ ପାରିବ ନାହିଁ"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "ପ୍ରାରମ୍ଭିକ ନିର୍ଦ୍ଦେଶଟି ବୈଧ ନୁହଁ"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "ସକ୍ରିୟ"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "ଚିତ୍ରସଙ୍କେତ"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "ପ୍ରୋଗ୍ରାମ"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "ପ୍ରାରମ୍ଭିକ ପ୍ରୟୋଗ ପସନ୍ଦ"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "କୌଣସି ନାମ ନାହିଁ"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "କୌଣସି ବର୍ଣ୍ଣନା ନାହିଁ"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "ଏହି ପ୍ରୟୋଗର ସଂସ୍କରଣ"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "ସାହାଯ୍ଯ ଦଲିଲ ଦେଖାଇହେଲା ନାହିଁ"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "MATE ସଂରଚନା ଡେମନ ସହାୟକ"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "ନୋମ"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "ଏହି ଅଧିବେଶନ ଆପଣଙ୍କୁ ନୋମ ରେ ଲଗ କରାଇଥାଏ"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "ପୂର୍ବନିର୍ଦ୍ଧାରିତ ଅଧିବେଶନ"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "ଫାଇଲ ପରିଚାଳକ"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "ଯଦି ସକ୍ରିୟ କରାଯାଇଛି, ତାହାହେଲେ ନୋମ ଅଧିବେଶନଟି ବନ୍ଦ ହେବା ପୂର୍ବରୁ ଚାଳକକୁ ପଚାରିବ। "
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"ଯଦି ସକ୍ରିୟ କରାଯାଇଛି, ତାହାହେଲେ ନୋମ ଅଧିବେଶନଟି ସ୍ବତଃ ସଂରକ୍ଷିତ ହୋଇଯିବ। ଅନ୍ଯଥା, ଲଗଆଉଟ୍ ସଂଳାପ "
+"ସହିତ ସଂରକ୍ଷଣ ପାଇଁ ଗୋଟିଏ ବିକଲ୍ପ ରହିବ।"
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "ପ୍ରୟୋଗ ଗୁଡିକର ତାଲିକା ଯାହାକି ପୂର୍ବନିର୍ଦ୍ଧାରିତ ଅଧିବେଶନର ଅଂଶବିଶେଷ।"
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"ଅଧିବେଶନର ଅଂଶ ଭାବରେ ଆବଶ୍ୟକ ଉପାଦାନଗୁଡ଼ିକର ତାଲିକା। (ପ୍ରତ୍ୟେକ ଉପାଦାନ \"/desktop/mate/"
+"session/required_components\" ଅନ୍ତର୍ଗତରେ ଗୋଟିଏ କିର ନାମକରଣ କରିଥାଏ)। ପ୍ରାରମ୍ଭିକ ପ୍ରୟୋଗର "
+"ପସନ୍ଦ ସାଧନ ସାଧାରଣତଃ ଚାଳକମାନଙ୍କୁ ଅଧିବେଶନରୁ ଆବଶ୍ୟକୀୟ ଉପାଦାନ କାଢ଼ିଥାଏ, ଏବଂ ଅଧିବେଶନ "
+"ପରିଚାଳକ ସ୍ୱୟଂଚାଳିତ ଭାବରେ ଆବଶ୍ୟକୀୟ ଉପାଦାନଗୁଡ଼ିକୁ ଅଧିବେଶନରେ ଲଗଇନ ସମୟରେ ଯୋଗ କରିଥାଏ ଯଦି "
+"ସେମାନଙ୍କୁ କଢ଼ାଯାଇଥାଏ।"
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "ଲଗଆଉଟ୍ ସନ୍ଦେଶ"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "ଫଳକ"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "ଗୁରୁତ୍ବପୂର୍ଣ୍ଣ ଲଗଇନ୍ ପରଦା ପାଇଁ ଅନୁଗ୍ରହିତ ଚିତ୍ରସଙ୍କେତ"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "ଆବଶ୍ୟକୀୟ ଅଧିବେଶନ ଉପାଦାନଗୁଡ଼ିକ"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "ଅଧିବେଶନକୁ ସଂରକ୍ଷଣ କରନ୍ତୁ"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "ଗୁରୁତ୍ବପୂର୍ଣ୍ଣ ପରଦାକୁ ଦେଖାନ୍ତୁ"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "ଅଧିବେଶନ ପ୍ରାରମ୍ଭ ହେବା ସମୟରେ ଗୁରୁତ୍ବପୂର୍ଣ୍ଣ ପରଦାକୁ ଦେଖାନ୍ତୁ"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"ଫାଇଲ ପରିଚାଳକ ଡେସ୍କଟପ ଚିତ୍ରସଂକେତଗୁଡ଼ିକୁ ପ୍ରଦାନ କରିଥାଏ ଏବଂ ଆପଣଙ୍କର ସଂରକ୍ଷିତ ଫାଇଲଗୁଡ଼ିକରେ କାର୍ଯ୍ୟ "
+"କିରବା ପାଇଁ ଅନୁମତି ଦେଇଥାଏ।"
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "The number of minutes of inactivity before the session is considered idle."
+msgstr "ଅଧିବେଶନ ନିଷ୍କ୍ରିଯ ବୋଲି ବିଚାର କରାୟିବା ପୂର୍ବରୁ ନିଷ୍କ୍ରିଯ ହେବାର ମିନିଟଗୁଡିକର ସଂଖ୍ଯା"
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"ପଟ୍ଟିକା ତାଲିକା, ୱିଣ୍ଡୋ ତାଲିକା, ସ୍ଥିତି ଚିତ୍ରସଂକେତ, ଘଡ଼ି, ଇତ୍ୟାଦି ଧାରଣ କରିଥିବା ପରଦାର ଉପର ଅଥବା "
+"ତଳ ପଟିରେ ଫଳକ ପ୍ରଦାନ କରିଥାଏ।"
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"ୱିଣ୍ଡୋ ପରିଚାଳକଟି ଗୋଟିଏ ପ୍ରଗ୍ରାମ ଯାହାକି ଶୀର୍ଷକ ପଟି ଏବଂ ୱିଣ୍ଡୋ ଚାରିପଟେ ଧାର ଅଙ୍କନ କରିଥାଏ, ଏବଂ "
+"ୱିଣ୍ଡୋଗୁଡ଼ିକର ଆକାର ପରିବର୍ତ୍ତନ ପାଇଁ ଆପଣଙ୍କୁ ଅନୁମତି ଦେଇଥାଏ।"
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"ଏହା $datadir/pixmaps/ ଡିରେକ୍ଟୋରି ଉପରେ ଆଧାରିତ ଆପେକ୍ଷିକ ପଥ। ଉପଡିରେକ୍ଟୋରି ଏବଂ ପ୍ରତିଛବି "
+"ମାନଙ୍କର ନାମ ବୈଧ ଅଟେ। ଏହି ନାମକୁ ପରିବର୍ତନ କଲେ ଏହା ପରବର୍ତ୍ତୀ ଅଧିବେଶନ ଲଗଇନ୍ ରେ ପ୍ରଭାବିତ ହେବ।"
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "ଅଧିବେଶନ ନିଷ୍କ୍ରିଯ ବୋଲି ବିଚାର କରିବା ପୂର୍ବରୁ ସମଯ"
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "ୱିଣ୍ଡୋ ପରିଚାଳକ"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>କିଛି ପ୍ରଗ୍ରାମ ଏବେ ମଧ୍ଯ ଚାଲୁଅଛି:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"ପ୍ରଗ୍ରାମ ସମାପ୍ତ ହେବା ପର୍ଯ୍ୟନ୍ତ ଅପେକ୍ଷା କରିଅଛି। ପ୍ରଗ୍ରାମକୁ ବାଧା ଦେବା ଦ୍ୱାରା ଆପଣଙ୍କୁ କାର୍ଯ୍ୟ "
+"ହରାଇବାକୁ ପଡ଼ିଥାଏ।"
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "ଆପଣ ଲଗଇନ ହେବା ସମୟରେ କେଉଁ ପ୍ରୟୋଗକୁ ଆରମ୍ଭ କରିବା ଉଚିତ ତାହା ବାଛନ୍ତୁ"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "ପ୍ରାରମ୍ଭିକ ପ୍ରୟୋଗଗୁଡ଼ିକ"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "ଅତିରିକ୍ତ ବ୍ଯବସ୍ଥାପକ ପ୍ରୋଗ୍ରାମ (_p):"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "ବ୍ରାଉଜ୍..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "ନିର୍ଦ୍ଦେଶ (_m):"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "ମନ୍ତବ୍ୟ (_e):"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "ବିକଳ୍ପଗୁଡ଼ିକ"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "ବ୍ଯବସ୍ଥାପକ ପ୍ରୋଗ୍ରାମ"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "ଲଗଆଉଟ ହେବା ସମୟରେ ସ୍ୱୟଂଚାଳିତ ଭାବରେ ମନେରଖନ୍ତୁ (_A)"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "ନାମ (_N):"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "ବର୍ତ୍ତମାନ ଚାଲୁଥିବା ପ୍ରୟୋଗଗୁଡ଼ିକୁ ମନେରଖନ୍ତୁ (_R)"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "ଫାଇଲଟି ଗୋଟିଏ ବୈଧ .desktop ଫାଇଲ ନୁହଁ"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "ଅଚିହ୍ନା ଡେସ୍କଟପ ଫାଇଲ ସଂସ୍କରଣ '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "%s କୁ ଆରମ୍ଭ କରୁଅଛି"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "ନିର୍ଦ୍ଦେଶନାମାରେ ପ୍ରୟୋଗଟି ଦଲିଲ ଗ୍ରହଣ କରେନାହିଁ"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "ଅଚିହ୍ନା ଆରମ୍ଭ ବିକଳ୍ପ: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "ଦଲିଲ URI ଗୁଡ଼ିକୁ 'ପ୍ରକାର=ସଂଯୋଗ' ଡେସ୍କଟପ ଭରଣକୁ ପଠାଯାଇପାରିବ ନାହିଁ"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "ଗୋଟିଏ ଆରମ୍ଭ କରିବା ବସ୍ତୁ ନୁହଁ"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "ଅଧିବେଶନ ପରିଚାଳକଙ୍କ ପ୍ରତି ସଂଯୋଗ ନିଷ୍କ୍ରିୟ କରନ୍ତୁ"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "ସଂରକ୍ଷିତ ବିନ୍ୟାସ ଧାରଣ କରିଥିବା ଫାଇଲକୁ ଦର୍ଶାନ୍ତୁ"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "ଫାଇଲ"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "ଅଧିବେଶନ ପରିଚାଳନ ID ଉଲ୍ଲେଖ କରନ୍ତୁ"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "ଅଧିବେଶନ ପରିଚାଳନା ବିକଳ୍ପଗୁଡ଼ିକ:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "ଅଧିବେଶନ ପରିଚାଳନା ବିକଳ୍ପଗୁଡ଼ିକୁ ଦର୍ଶାନ୍ତୁ"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"ବିନ୍ୟାସ ସର୍ଭରରେ ଗୋଟିଏ ସମସ୍ୟା ଦେଖାଦେଇଅଛି।\n"
+"(%s ପ୍ରସ୍ଥାନ କରିଥାଏ ସ୍ଥିତି %d ସହିତ)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "'%s' ଚିତ୍ରସଙ୍କେତ ମିଳିଲା ନାହଁ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "ଅଜଣା"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "ଗୋଟିଏ ପ୍ରଗ୍ରାମ ଏପର୍ଯ୍ୟନ୍ତ ଚାଲିଅଛି:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "କିଛି ପ୍ରଗ୍ରାମ ଏପର୍ଯ୍ୟନ୍ତ ଚାଲିଅଛି:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"ପ୍ରଗ୍ରାମ ସମାପ୍ତ ହେବା ପାଇଁ ଅପେକ୍ଷା କରିଅଛି। ଏହି ପ୍ରଗ୍ରାମଗୁଡ଼ିକୁ ବାଧା ଦେବା ଦ୍ୱାରା କାର୍ଯ୍ୟ ନଷ୍ଟ "
+"ହୋଇପାରେ।"
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "ଚାଳକଙ୍କୁ ଯେକୌଣସି ଉପାୟରେ ବଦଳାନ୍ତୁ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "ଯେକୌଣସି ପ୍ରକାରେ ଲଗଆଉଟ କରନ୍ତୁ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "ଯେକୌଣସି ଉପାୟରେ ନିଲମ୍ବନ କରନ୍ତୁ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "ଯେକୌଣସି ପ୍ରକାରେ ସୁପ୍ତ କରନ୍ତୁ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "ଯେକୌଣସି ପ୍ରକାରେ ବନ୍ଦ କରନ୍ତୁ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "ଯେକୌଣସି ପ୍ରକାରେ ପୁନର୍ଚାଳନ କରନ୍ତୁ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "ପରଦାକୁ ତାଲା ଦେଇ ରଖନ୍ତୁ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "ବାତିଲ କରନ୍ତୁ"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "ଆପଣଙ୍କୁ %d ସେକଣ୍ଡରେ ଆପେଆପେ ଲଗ ଆଉଟ କରାଦିଆଯିବ."
+msgstr[1] "ଆପଣଙ୍କୁ %d ସେକଣ୍ଡରେ ଆପେଆପେ ଲଗ ଆଉଟ କରାଦିଆଯିବ."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "ଏହି ତନ୍ତ୍ର %d ସେକଣ୍ଡରେ ଆପେଆପେ ବନ୍ଦ କରାଯିବ."
+msgstr[1] "ଏହି ତନ୍ତ୍ର %d ସେକଣ୍ଡରେ ଆପେଆପେ ବନ୍ଦ କରାଯିବ."
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "ଆପଣ \"%s\" ପରି ଭାବରେ ବର୍ତ୍ତମାନ ଲଗଇନ ହୋଇଛନ୍ତି।"
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "ଏହି ତନ୍ତ୍ରରୁ ବର୍ତ୍ତମାନ ଲଗଆଉଟ କରିବେ କି?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "ବ୍ଯବହାରକାରୀ ବଦଳାନ୍ତୁ (_S)"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "ଲଗଆଉଟ କରନ୍ତୁ (_L)"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "ଯନ୍ତ୍ରକୁ ବର୍ତ୍ତମାନ ବନ୍ଦ କରିବେ କି?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "ନିଲମ୍ବନ କରନ୍ତୁ (_u)"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "ସୁପ୍ତ କରନ୍ତୁ (_H)"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "ପୁନଃ ଚାଳନ କରନ୍ତୁ (_R)"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "ବନ୍ଦ କରନ୍ତୁ (_S)"
+
+#: ../mate-session/gsm-manager.c:1220 ../mate-session/gsm-manager.c:1912
+msgid "Not responding"
+msgstr "ଉତ୍ତର ଦେଉନାହିଁ"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking log out."
+msgstr "ଏହି ପ୍ରଗ୍ରାମଟି ଲଗଆଉଟ ହେବାକୁ ଦେଉନାହିଁ।"
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "ନୂତନ କ୍ଲାଏଣ୍ଟ ସଂଯୋଗକୁ ମନାକରୁଅଛି କାରଣ ସେହି ଅଧିବେଶନଟି ବର୍ତ୍ତମାନ ବନ୍ଦ ହୋଇଛି\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ICE କୁ ମାନୁଥିବା ସକେଟ ନିର୍ମାଣ କରିପାରିଲା ନାହିଁ: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "ଲଗଇନ ଅଧିବେଶନ ଆରମ୍ଭ କରିବାରେ ଅସମର୍ଥ (ଏବଂ X ସର୍ଭର ସହିତ ସଂଯୋଗ ହେବାରେ ଅସମର୍ଥ)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "ମାନକ ସ୍ୱୟଂଚାଳିତ ଡିରେକ୍ଟୋରୀଗୁଡ଼ିକୁ ନବଲିଖନ କରନ୍ତୁ"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to lookup default session"
+msgstr "ପୂର୍ବନିର୍ଦ୍ଧାରିତ ଅଧିବେଶନକୁ ଦେଖିବା ପାଇଁ MateConf କି"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "ତ୍ରୁଟି ନିବାରଣ ସଂକେତକୁ ସକ୍ରିୟ କରନ୍ତୁ"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "ଚାଳକ ନିର୍ଦ୍ଧାରିତ ପ୍ରୟୋଗଗୁଡ଼ିକୁ ଧାରଣ କରନ୍ତୁ ନାହିଁ"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - MATE ଅଧିବେଶନ ପରିଚାଳକ"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- MATE ଗୁରୁତ୍ବପୂର୍ଣ୍ଣ ପରଦା"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "MATE ଗୁରୁତ୍ବପୂର୍ଣ୍ଣ ପରଦା"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "ଲଗଆଉଟ୍"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "ଯେକୌଣସି ସ୍ଥିତବାନ ବାଧାବିଘ୍ନକୁ ଅମାନ୍ୟ କରି ଲଗଆଉଟ କରନ୍ତୁ"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "ଲଗଆଉଟ ସଂଳାପ ଦର୍ଶାନ୍ତୁ"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "ବନ୍ଦ କରିବା ସଂଳାପ ଦର୍ଶାନ୍ତୁ"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "ତ୍ରୁଟିଗୁଡ଼ିକ ପାଇଁ ସଂଳାପ ବାକ୍ସକୁ ବ୍ଯବହାର କରନ୍ତୁ"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "ବର୍ତ୍ତମାନ ଅଧିବେଶନ ନାମକୁ ସେଟ କରନ୍ତୁ"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "ନାମ"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "ଅଧିବେଶନକୁ ସମାପ୍ତ କରନ୍ତୁ"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "ନିଶ୍ଚିତକରଣ ଆବଶ୍ୟକ କରିନଥାଏ"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "ଅଧିବେଶନ ପରିଚାଳକଙ୍କ ସହିତ ସମ୍ପର୍କ ସ୍ଥାପିତ କରିପାରିଲା ନାହିଁ"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "ଦ୍ୱନ୍ଦମୟ ବିକଳ୍ପଗୁଡ଼ିକ ସହିତ ଡକାହେଉଥିବା ପ୍ରଗ୍ରାମ"
+
diff --git a/po/pa.po b/po/pa.po
new file mode 100644
index 0000000..24d5e4e
--- /dev/null
+++ b/po/pa.po
@@ -0,0 +1,648 @@
+# translation of mate-session.HEAD.po to Punjabi
+# Copyright (C) 2004 THE mate-session'S COPYRIGHT HOLDER
+#
+#
+# Amanpreet Singh Alam <[email protected]>, 2004.
+# Amanpreet Singh Alam <[email protected]>, 2005, 2007, 2008.
+# A S Alam <[email protected]>, 2009, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.HEAD\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-session&component=general\n"
+"POT-Creation-Date: 2010-09-01 08:31+0000\n"
+"PO-Revision-Date: 2010-09-19 08:35+0530\n"
+"Last-Translator: A S Alam <[email protected]>\n"
+"Language-Team: Punjabi/Panjabi <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+# mate-session/session-properties-capplet.c:362
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "ਕਮਾਂਡ ਚੁਣੋ"
+
+# mate-session/startup-programs.c:392
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "ਸਟਾਰਟਅੱਪ ਪਰੋਗਰਾਮ ਸ਼ਾਮਲ"
+
+# mate-session/startup-programs.c:392
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "ਸਟਾਰਟਅੱਪ ਪਰੋਗਰਾਮ ਸੋਧ"
+
+# mate-session/startup-programs.c:332
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "ਸ਼ੁਰੂਆਤੀ ਕਮਾਂਡ ਖਾਲੀ ਨਹੀ ਹੋ ਸਕਦੀ ਹੈ"
+
+# mate-session/startup-programs.c:332
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "ਸ਼ੁਰੂਆਤੀ ਕਮਾਂਡ ਠੀਕ ਨਹੀਂ ਹੈ"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "ਯੋਗ"
+
+# mate-session/logout.c:266
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "ਆਈਕਾਨ"
+
+# mate-session/gsm-client-list.c:111
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "ਪਰੋਗਰਾਮ"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "ਸ਼ੁਰੂਆਤੀ ਐਪਲੀਕੇਸ਼ਨ ਪਸੰਦ"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "ਕੋਈ ਨਾਂ ਨਹੀਂ"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "ਕੋਈ ਵੇਰਵਾ ਨਹੀਂ"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "ਇਸ ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਵਰਜਨ"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "ਮੱਦਦ ਡੌਕੂਮੈਂਟ ਨੂੰ ਵੇਖਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "ਗਨੋਮ"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "ਇਹ ਸ਼ੈਸ਼ਨ ਤੁਹਾਨੂੰ ਗਨੋਮ ਵਿੱਚ ਲਾਗ ਕਰਦਾ ਹੈ"
+
+# mate-session/save-session.c:43
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "ਡਿਫਾਲਟ ਸ਼ੈਸ਼ਨ"
+
+# mate-session/splash.c:71
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "ਫਾਇਲ ਮੈਨੇਜਰ"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "ਸੁਰੱਖਿਆ ਕਾਰਨਾਂ ਕਰਕੇ, ਗਨੋਮ-ਸ਼ੈਸ਼ਨ ਸ਼ੈਸ਼ਨ ਖਤਮ ਕਰਨ ਵੇਲੇ ਯੂਜ਼ਰ ਨੂੰ ਪੁੱਛੇ।"
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "ਜੇ ਚੋਣ ਕੀਤੀ ਤਾਂ ਗਨੋਮ-ਸ਼ੈਸ਼ਨ ਆਟੋਮੈਟਿਕ ਹੀ ਸ਼ੈਸ਼ਨ ਨੂੰ ਸੰਭਾਲ ਲਵੇਗਾ।"
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੀ ਲਿਸਟ, ਜੋ ਕਿ ਡਿਫਾਲਟ ਸ਼ੈਸ਼ਨ ਦਾ ਭਾਗ ਹਨ।"
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"ਭਾਗਾਂ ਦੀ ਲਿਸਟ, ਜੋ ਕਿ ਗਨੋਮ ਦੇ ਭਾਗ ਵਜੋਂ ਲੋੜੀਦੇ ਹਨ। (ਹਰ ਭਾਗ ਨੂੰ \"/desktop/mate/session/"
+"required_components\" ਵਿੱਚ ਰੱਖਿਆ ਹੈ)। ਸ਼ੁਰੂਆਤ ਐਪਲੀਕੇਸ਼ਨ ਪਸੰਦ ਟੂਲ ਯੂਜ਼ਰ ਨੂੰ ਆਮ ਤੌਰ ਉੱਤੇ ਸ਼ੈਸ਼ਨ "
+"ਵਿੱਚੋਂ ਲੋੜੀਦੇ ਭਾਗ ਹਟਾਉਣ ਨਹੀਂ ਦੇਵੇਗਾ ਅਤੇ ਸ਼ੈਸ਼ਨ ਮੈਨੇਜਰ ਆਟੋਮੈਟਿਕ ਲੋੜੀਦੇ ਭਾਗਾਂ ਨੂੰ ਸ਼ੈਸ਼ਨ ਵਿੱਚ ਲਾਗਇਨ ਸਮੇਂ "
+"ਜੋੜ ਦੇਵੇਗਾ, ਜੇ ਉਹ ਹਟਾਏ ਗਏ ਹੋਣ।"
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "ਲਾਗਆਉਟ ਪੁਸ਼ਟੀ"
+
+# mate-session/splash.c:69
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "ਪੈਨਲ"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "ਲੋੜੀਦੇ ਸ਼ੈਸ਼ਨ ਭਾਗ"
+
+# mate-session/session-properties.c:272
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "ਸ਼ੈਸ਼ਨ ਸੰਭਾਲੋ"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr "ਫਾਇਲ ਮੈਨੇਜਰ ਡੈਸਕਟਾਪ ਆਈਕਾਨ ਦਿੰਦਾ ਹੈ ਅਤੇ ਤੁਹਾਨੂੰ ਤੁਹਾਡੀਆਂ ਸੰਭਾਲੀਆਂ ਫਾਇਲਾਂ ਵਰਤਣ ਲਈ ਸਹਾਇਕ ਹੈ।"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "The number of minutes of inactivity before the session is considered idle."
+msgstr "ਗ਼ੈਰ-ਸਰਗਰਮੀ ਦੇ ਮਿੰਟਾਂ ਦੀ ਗਿਣਤੀ, ਜਦੋਂ ਕਿ ਸ਼ੈਸ਼ਨ ਨੂੰ ਵੇਹਲਾ ਗਿਣਿਆ ਜਾਵੇ।"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"ਪੈਨਲ ਸਕਰੀਨ ਦੇ ਉੱਤੇ ਜਾਂ ਥੱਲੇ ਇੱਕ ਪੱਟੀ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਮੇਨੂ, ਵਿੰਡੋ ਲਿਸਟ, ਹਾਲਤ ਆਈਕਾਨ ਅਤੇ ਘੜੀ "
+"ਆਦਿ ਹੁੰਦੇ ਹਨ।"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"ਵਿੰਡੋ ਮੈਨੇਜਰ ਪਰੋਗਰਾਮ ਹੈ, ਜੋ ਕਿ ਵਿੰਡੋ ਦੇ ਦੁਆਲੇ ਟਾਈਟਲ-ਪੱਟੀ ਅਤੇ ਬਾਰਡਰ ਬਣਾਉਦਾ ਹੈ ਅਤੇ ਤੁਹਾਨੂੰ ਵਿੰਡੋ "
+"ਹਿਲਾਉਣ ਅਤੇਸਾਈਜ਼ ਬਦਲਣ ਦੇ ਕੰਮ ਆਉਦਾ ਹੈ।"
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "ਵੇਹਲਾ ਗਿਣਨ ਤੋਂ ਪਹਿਲਾਂ ਸ਼ੈਸ਼ਨ ਦਾ ਸਮਾਂ"
+
+# mate-session/splash.c:71
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "ਵਿੰਡੋ ਮੈਨੇਜਰ"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>ਕੁਝ ਪਰੋਗਰਾਮ ਹਾਲੇ ਵੀ ਚੱਲਦੇ ਹਨ:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+#| msgid ""
+#| "Waiting for programs to finish. Interrupting these programs may cause "
+#| "you to lose work."
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"ਪਰੋਗਰਾਮ ਨੂੰ ਪੂਰਾ ਹੋਣ ਦੀ ਉਡੀਕ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ। ਇਹ ਪਰੋਗਰਾਮਾਂ 'ਚ ਦਖਲ ਦੇਣ ਨਾਲ ਤੁਹਾਡਾ ਕੰਮ ਗੁਆਚ "
+"ਸਕਦਾ ਹੈ।"
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "ਚੁਣੋ ਕਿ ਕਿਹੜੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਤੁਸੀਂ ਲਾਗਇਨ ਸਮੇਂ ਸ਼ੁਰੂ ਕਰਨੀਆਂ ਚਾਹੁੰਦੇ ਹੋ"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "ਸ਼ੁਰੂਆਤੀ ਐਪਲੀਕੇਸ਼ਨ"
+
+# mate-session/startup-programs.c:372
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "ਹੋਰ ਸਟਾਰਟਅੱਪ ਪਰੋਗਰਾਮ(_P):"
+
+#: ../data/session-properties.ui.h:2
+#| msgid "Browse..."
+msgid "Browse…"
+msgstr "ਝਲਕ..."
+
+# mate-session/session-properties-capplet.c:362
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "ਕਮਾਂਡ(_m):"
+
+# mate-session/session-properties-capplet.c:362
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "ਟਿੱਪਣੀ(_e):"
+
+# mate-session/session-properties-capplet.c:332
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "ਚੋਣਾਂ"
+
+# mate-session/session-properties-capplet.c:399
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "ਸਟਾਰਟਅੱਪ ਪਰੋਗਰਾਮ"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "ਜਦੋਂ ਲਾਗ ਆਉਟ ਹੋਵੋ ਤਾਂ ਚੱਲਦੇ ਐਪਲੀਕੇਸ਼ਨ ਆਟੋਮੈਟਿਕ ਹੀ ਯਾਦ ਰੱਖੋ(_A)"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "ਨਾਂ(_N):"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "ਇਸ ਸਮੇਂ ਚੱਲਦੇ ਐਪਲੀਕੇਸ਼ਨ ਯਾਦ ਰੱਖੋ(_R)"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "ਫਾਇਲ ਢੁੱਕਵੀਂ .desktop ਫਾਇਲ ਨਹੀਂ ਹੈ"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "ਅਣਜਾਣ ਡੈਸਕਟਾਪ ਫਾਇਲ ਵਰਜਨ '%s'"
+
+# mate-session/gsm-client-row.c:34
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "%s ਸ਼ੁਰੂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "ਐਪਲੀਕੇਸ਼ਨ ਕਮਾਂਡ ਲਾਈਨ ਉੱਤੇ ਡੌਕੂਮੈਂਟ ਮਨਜ਼ੂਰ ਨਹੀਂ ਕਰਦੀ ਹੈ।"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "ਅਣਜਾਣ ਲਾਂਚ ਚੋਣ: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "ਇੱਕ 'Type=Link' ਡੈਸਕਟਾਪ ਐਂਟਰੀ ਲਈ ਡੌਕੂਮੈਂਟ URI ਨਹੀਂ ਦਿੱਤਾ ਜਾ ਸਕਦਾ"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "ਚਲਾਉਣਯੋਗ ਆਈਟਮ ਨਹੀਂ ਹੈ"
+
+# mate-session/save-session.c:112
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "ਸ਼ੈਸ਼ਨ ਮੈਨੇਜਰ ਨਾਲ ਕੁਨੈਕਸ਼ਨ ਆਯੋਗ"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "ਸੰਭਾਲੀ ਸੰਰਚਨਾ ਰੱਖਣ ਵਾਲੀ ਫਾਇਲ ਦਿਓ"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "ਫਾਇਲ"
+
+# mate-session/main.c:66
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "ਸ਼ੈਸ਼ਨ ਪਰਬੰਧ ID ਦਿਓ"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+# mate-session/session-properties-capplet.c:332
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "ਸ਼ੈਸ਼ਨ ਪਰਬੰਧਕ ਚੋਣਾਂ:"
+
+# mate-session/session-properties-capplet.c:332
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "ਸ਼ੈਸ਼ਨ ਪਰਬੰਧਕ ਚੋਣਾਂ ਵੇਖੋ"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"ਸੰਰਚਨਾ ਸਰਵਰ ਨਾਲ ਇੱਕ ਸਮੱਸਿਆ ਆਈ ਹੈ।\n"
+"(%s ਹਾਲਤ %d ਨਾਲ ਬੰਦ ਹੋਇਆ)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "ਆਈਕਾਨ '%s' ਨਹੀਂ ਲੱਭਿਆ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "ਅਣਜਾਣ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "ਇੱਕ ਪਰੋਗਰਾਮ ਹਾਲੇ ਵੀ ਚੱਲ ਰਿਹਾ ਹੈ:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "ਕੁਝ ਪਰੋਗਰਾਮ ਹਾਲੇ ਵੀ ਚੱਲ ਰਹੇ ਹਨ:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"ਪਰੋਗਰਾਮ ਨੂੰ ਪੂਰਾ ਹੋਣ ਦੀ ਉਡੀਕ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ। ਇਹ ਪਰੋਗਰਾਮਾਂ 'ਚ ਦਖਲ ਦੇਣ ਨਾਲ ਤੁਹਾਡਾ ਕੰਮ ਗੁਆਚ "
+"ਸਕਦਾ ਹੈ।"
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "ਕਿਵੇਂ ਵੀ ਯੂਜ਼ਰ ਬਦਲੋ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+#| msgid "Logout Anyway"
+msgid "Log Out Anyway"
+msgstr "ਕਿਵੇਂ ਵੀ ਲਾਗ-ਆਉਟ ਕਰੋ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "ਕਿਵੇਂ ਵੀ ਸਸਪੈਂਡ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "ਕਿਵੇਂ ਵੀ ਹਾਈਬਰਨੇਟ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+#| msgid "Shutdown Anyway"
+msgid "Shut Down Anyway"
+msgstr "ਕਿਵੇਂ ਵੀ ਬੰਦ ਕਰੋ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "ਕਿਵੇਂ ਵੀ ਮੁੜ-ਚਾਲੂ ਕਰੋ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "ਸਕਰੀਨ ਲਾਕ ਕਰੋ"
+
+# mate-session/splash.c:69
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "ਰੱਦ ਕਰੋ"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "ਤੁਹਾਨੂੰ %d ਸਕਿੰਟ ਬਾਅਦ ਆਟੋਮੈਟਿਕ ਲਾਗਆਉਟ ਕੀਤਾ ਜਾਵੇਗਾ।"
+msgstr[1] "ਤੁਹਾਨੂੰ %d ਸਕਿੰਟਾਂ ਬਾਅਦ ਆਟੋਮੈਟਿਕ ਲਾਗਆਉਟ ਕੀਤਾ ਜਾਵੇਗਾ।"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "ਇਹ ਸਿਸਟਮ %d ਸਕਿੰਟ ਬਾਅਦ ਆਟੋਮੈਟਿਕ ਬੰਦ ਕੀਤਾ ਜਾਵੇਗਾ।"
+msgstr[1] "ਇਹ ਸਿਸਟਮ %d ਸਕਿੰਟਾਂ ਬਾਅਦ ਆਟੋਮੈਟਿਕ ਬੰਦ ਕੀਤਾ ਜਾਵੇਗਾ।"
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "ਹੁਣ ਤੁਸੀਂ \"%s\" ਵਜੋਂ ਲਾਗਇਨ ਹੋ।"
+
+# msgid "You are currently logged in as \"%s\"."
+# msgstr "ਤੁਸੀਂ ਇਸ ਵੇਲੇ "%s\" ਵਜੋਂ ਲਾਗਇਨ ਹੋ।"
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "ਇਸ ਸਿਸਟਮ ਲਈ ਹੁਣੇ ਲਾਗ ਆਉਟ ਕਰਨਾ ਹੈ?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "ਯੂਜ਼ਰ ਬਦਲੋ(_S)"
+
+# mate-session/logout.c:274
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "ਲਾਗ-ਆਉਟ(_L)"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "ਕੀ ਸਿਸਟਮ ਹੁਣੇ ਬੰਦ ਕਰਨਾ ਹੈ?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "ਸਸਪੈਂਡ(_u)"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "ਹਾਈਬਰਨੇਟ(_H)"
+
+# mate-session/session-properties.c:173
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "ਰੀ-ਸਟਾਰਟ(_R)"
+
+# mate-session/logout.c:277
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "ਬੰਦ ਕਰੋ(_S)"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "ਕੋਈ ਜਵਾਬ ਨਹੀਂ"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+#| msgid "This program is blocking log out."
+msgid "This program is blocking logout."
+msgstr "ਇਹ ਪਰੋਗਰਾਮ ਲਾਗ-ਆਉਟ ਨੂੰ ਰੋਕ ਰਿਹਾ ਹੈ।"
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "ਨਵਾਂ ਕਲਾਇਟ ਕੁਨੈਕਸ਼ਨ ਤੋਂ ਇਨਕਾਰ ਕੀਤਾ ਗਿਆ ਹੈ, ਕਿਉਂਕਿ ਸ਼ੈਸ਼ਨ ਬੰਦ ਹੋ ਰਿਹਾ ਹੈ\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ICE ਲਿਸਨਿੰਗ ਸਾਕਟ ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕੀ: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "ਲਾਗਇਨ ਸ਼ੈਸ਼ਨ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਅਸਮਰੱਥ (ਅਤੇ X ਸਰਵਰ ਨਾਲ ਕੁਨੈਕਟ ਕਰਨ ਲਈ ਵੀ ਅਸਮਰੱਥ)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "ਸਟੈਂਡਰਡ ਆਟੋ-ਸਟਾਰਟ ਡਾਇਰੈਕਟਰੀਆਂ ਅਣਡਿੱਠੀਆਂ"
+
+#: ../mate-session/main.c:438
+#| msgid "MateConf key used to lookup default session"
+msgid "MateConf key used to look up default session"
+msgstr "ਜੀਕਾਨਫ਼ ਕੀ ਡਿਫਾਲਟ ਸ਼ੈਸ਼ਨ ਖੋਜ ਲਈ ਵਰਤੀ"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "ਡੀਬੱਗ ਕੋਡ ਯੋਗ"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "ਯੂਜ਼ਰ-ਖਾਸ ਐਪਲੀਕੇਸ਼ਨ ਲੋਡ ਨਾ ਕਰੋ"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "- ਗਨੋਮ ਸ਼ੈਸ਼ਨ ਮੈਨੇਜਰ"
+
+# mate-session/logout.c:274
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "ਲਾਗ-ਆਉਟ"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "ਲਾਗ-ਆਉਟ, ਕੋਈ ਵੀ ਮੌਜੂਦ ਇੰਹੈਬੇਟਰ ਅਣਡਿੱਠਾ ਕਰੋ"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "ਲਾਗਆਉਟ ਡਾਈਲਾਗ ਵੇਖੋ"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "ਬੰਦ ਕਰੋ ਡਾਈਲਾਗ ਵੇਖੋ"
+
+# mate-session/save-session.c:44
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "ਗਲਤੀਆਂ ਲਈ ਡਾਈਲਾਗ ਬਕਸੇ ਵਰਤੋਂ"
+
+# mate-session/session-properties-capplet.c:259
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "ਮੌਜੂਦਾ ਸ਼ੈਸ਼ਨ ਨਾਂ ਸੈੱਟ ਕਰੋ"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "ਨਾਂ"
+
+# mate-session/save-session.c:43
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "ਸ਼ੈਸ਼ਨ ਖਤਮ ਕਰੋ"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "ਪੁਸ਼ਟੀ ਦੀ ਲੋੜ ਨਹੀਂ"
+
+# mate-session/save-session.c:112
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "ਸ਼ੈਸ਼ਨ ਮੈਨੇਜਰ ਨਾਲ ਜੁੜਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "ਪਰੋਗਰਾਮ ਨੂੰ ਚੋਣਾਂ ਨਾਲ ਅਪਵਾਦ ਮਿਲਿਆ"
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr ""
+#~ "ਪਰੋਗਰਾਮ ਦੇ ਖਤਮ ਹੋਣ ਦੀ ਉਡੀਕ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ। ਪਰੋਗਰਾਮ 'ਚ ਦਖਣ ਦੇਣ ਨਾਲ ਤੁਹਾਡਾ ਕੰਮ ਖਰਾਬ "
+#~ "ਹੋ ਸਕਦਾ ਹੈ।"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "ਗਨੋਮ ਸੈਟਿੰਗ ਡੈਮਨ ਸਹਾਇਕ"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "ਜੇ ਚਾਲੂ ਹੈ, ਗਨੋਮ-ਸ਼ੈਸ਼ਨ ਆਪੇ ਸ਼ੈਸ਼ਨ ਨੂੰ ਸੰਭਾਲੇਗਾ। ਨਹੀ ਤਾਂ, ਲਾਗਆਉਟ ਸਮੇਂ ਸ਼ੈਸ਼ਨ ਸੰਭਾਲਣ ਦੀ ਚੋਣ ਉਪਲਬਧ "
+#~ "ਹੋਵੇਗੀ।"
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "ਲਾਗਇਨ ਸਵਾਗਤੀ ਸਕਰੀਨ ਲਈ ਪਸੰਦੀਦਾ ਚਿੱਤਰ"
+
+# mate-session/session-properties-capplet.c:227
+#~ msgid "Show the splash screen"
+#~ msgstr "ਸਵਾਗਤੀ ਸਕਰੀਨ ਵੇਖੋ"
+
+# mate-session/session-properties-capplet.c:227
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "ਸ਼ੈਸ਼ਨ ਸ਼ੁਰੂ ਕਰਨ ਵੇਲੇ ਸਵਾਗਤੀ ਸਕਰੀਨ ਵੇਖੋ"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+#~ msgstr ""
+#~ "ਇਹ $datadir/pixmaps/ directory ਦੇ ਅਧਾਰ ਤੇ ਅਨੁਸਾਰੀ ਮਾਰਗ ਮੁੱਲ ਹੈ। ਸਬ-ਡਾਇਰੈਕਟਰੀਆਂ ਅਤੇ "
+#~ "ਚਿੱਤਰ ਨਾਂ ਠੀਕ ਮੁੱਲ ਹਨ। ਇਹਨਾਂ ਵਿੱਚ ਤਬਦੀਲੀ ਸਿਰਫ਼ ਅਗਲੇ ਸ਼ੈਸ਼ਨ ਤੋਂ ਹੀ ਹੋ ਸਕੇਗੀ।"
+
+# mate-session/session-properties-capplet.c:227
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- ਗਨੋਮ ਸਕਰੀਨ ਵੇਖੋ"
+
+# mate-session/session-properties-capplet.c:227
+#~ msgid "MATE Splash Screen"
+#~ msgstr "ਗਨੋਮ ਸ਼ੁਰੂਆਤੀ ਸਕਰੀਨ"
+
+# mate-session/startup-programs.c:332
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "ਸ਼ੁਰੂਆਤੀ ਪਰੋਗਰਾਮ ਦਾ ਨਾਂ ਖਾਲੀ ਨਹੀਂ ਹੋ ਸਕਦਾ ਹੈ"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "ਸਹਾਇਕ ਤਕਨਾਲੋਜੀ ਸਹਿਯੋਗ ਸ਼ੈਸ਼ਨ ਲਈ ਮੰਗਿਆ ਗਿਆ ਹੈ, ਪਰ ਸਹਾਇਕ ਰਜਿਸਟਰੀ ਨਹੀਂ ਮਿਲੀ ਹੈ। ਜਾਂਚ "
+#~ "ਕਰੋ ਕਿ AT-SPI ਪੈਕੇਜ ਇੰਸਟਾਲ ਹੈ। ਤੁਹਾਡਾ ਸ਼ੈਸ਼ਨ ਸਹਾਇਕ ਤਕਨਾਲੋਜੀ ਤੋਂ ਬਿਨਾਂ ਸ਼ੁਰੂ ਕੀਤਾ ਜਾਵੇਗਾ।"
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "AT SPI ਰਜਿਸਟਰ ਰੈਪਰ"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "ਸ਼ੈਸ਼ਨ ਪਸੰਦ"
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "ਗਨੋਮ ਕੀਰਿੰਗ ਡੈਮਨ ਰੈਪਰ"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "ਲਾਗਆਉਣ ਡਾਈਲਾਗ ਵਿੱਚ ਚੁਣੀ ਚੋਣ"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "ਇਹ ਚੋਣ ਹੈ, ਜੋ ਕਿ ਲਾਗ-ਆਉਣ ਡਾਈਲਾਗ ਵਿੱਚ ਵੇਖਾਈ ਜਾਵੇਗੀ, ਠੀਕ ਮੁੱਲ ਲਾਗ-ਆਉਣ ਲਈ \"ਲਾਗ-ਆਉਟ"
+#~ "\", ਸਿਸਟਮ ਨੂੰ ਬੰਦ ਕਰਨ ਲਈ \"ਬੰਦ ਕਰੋ\", ਅਤੇ ਮੁੜ-ਚਲਾਉਣ ਲਈ \"ਮੁੜ-ਚਲਾਓ\" ਹਨ।"
+
+#~ msgid "Configure your sessions"
+#~ msgstr "ਆਪਣੇ ਸ਼ੈਸ਼ਨ ਦੀ ਸੰਰਚਨਾ ਕਰੋ"
+
+# mate-session/session-properties.c:272
+#~ msgid "Sessions"
+#~ msgstr "ਸ਼ੈਸ਼ਨ"
+
+#~ msgid "Session management"
+#~ msgstr "ਸ਼ੈਸ਼ਨ ਪਰਬੰਧ"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "MATE GUI ਲਾਇਬਰੇਰੀ + EggSMClient"
+
+# mate-session/save-session.c:112
+#~ msgid "Could not connect to the session manager\n"
+#~ msgstr "ਸ਼ੈਸ਼ਨ ਮੈਨੇਜਰ ਨਾਲ ਜੁੜਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ\n"
+
+# mate-session/session-properties-capplet.c:259
+#~ msgid " - Save the current session"
+#~ msgstr "- ਮੌਜੂਦਾ ਸ਼ੈਸ਼ਨ ਸੰਭਾਲੋ"
+
+#~ msgid "Play logout sound instead of login"
+#~ msgstr "ਲਾਗਇਨ ਦੀ ਬਜਾਏ ਲਾਗਆਉਟ ਸਾਊਡ ਚਲਾਓ"
+
+#~ msgid "- MATE login/logout sound"
+#~ msgstr "- MATE ਲਾਗਇਨ/ਲਾਗਆਉਟ ਸਾਊਂਡ"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "TCP ਕੁਨੈਕਸ਼ਨ ਮਨਜ਼ੂਰ"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "ਸੁਰੱਖਿਆ ਕਾਰਨਾਂ ਕਰਕੇ , ਪਲੇਟਫਾਰਮ ਜੋ ਕਿ IceTcpTransNoListen() (XFree86 ਸਿਸਟਮ) ਹਨ, "
+#~ "ਗਨੋਮ-ਸ਼ੈਸ਼ਨ TCP ਪੋਰਟ ਤੇ ਸਬੰਧ ਨਹੀ ਸੁਣਦਾ। ਇਸ ਚੋਣ ਰਿਮੋਟ ਮੇਜ਼ਬਾਨ ਤੋ ਸਬੰਧ ਦੀ ਇਜ਼ਾਜਤ (ਪ੍ਰਮਾਣਿਕ)"
+#~ "ਦਿੰਦੀ ਹੈ। ਗਨੋਮ-ਸ਼ੈਸ਼ਨ ਇਸ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਮੁੜ ਚਾਲੂ ਹੋ ਰਿਹਾ ਹੈ।"
diff --git a/po/pl.po b/po/pl.po
new file mode 100644
index 0000000..3eb7f2c
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,506 @@
+# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+# Aviary.pl
+# Jeśli masz jakiekolwiek uwagi odnoszące się do tłumaczenia lub chcesz
+# pomóc w jego rozwijaniu i pielęgnowaniu, napisz do nas:
+# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-04 19:41+0200\n"
+"PO-Revision-Date: 2010-09-04 19:40+0100\n"
+"Last-Translator: Tomasz Dominikowski <[email protected]>\n"
+"Language-Team: Polish <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pl\n"
+"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2;\n"
+"X-Poedit-Language: Polish\n"
+"X-Poedit-Country: Poland\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Wybór polecenia"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Nowy program startowy"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Modyfikacja programu startowego"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Polecenie startowe nie może być puste"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Polecenie startowe jest nieprawidłowe"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Włączone"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Ikona"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Program"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Preferencje programów startowych"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Bez nazwy"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Brak opisu"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Wersja tego programu"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Nie można wyświetlić dokumentu pomocy"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Ta sesja loguje użytkownika do środowiska MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Domyślna sesja"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Menedżer plików"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Określa, czy przed zakończeniem sesji należy poprosić użytkownika o "
+"potwierdzenie."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Określa, czy przed zakończeniem sesji automatycznie ją zapisać."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Lista programów będących częścią domyślnej sesji."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Lista składników wymaganych jako części sesji (każdy element występuje pod "
+"własnym kluczem w \"/desktop/mate/session/required-components\"). Narzędzie "
+"preferencji programów startowych nie pozwala użytkownikom na usuwanie "
+"wymaganych składników z sesji, a menedżer sesji automatycznie doda z "
+"powrotem wymagane składniki do sesji podczas logowania, jeśli zostaną "
+"usunięte."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Potwierdzanie wylogowania"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Lista wymaganych składników"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Zapis sesji"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Menedżer plików wyświetla ikony na pulpicie i pozwala na interakcje z "
+"zapisanymi plikami."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"Liczba minut nieaktywności, po których sesja jest uznawana za bezczynną."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Panel wyświetla paski na górze i na dole ekranu, które zawierają menu, listę "
+"okien, ikony stanu, zegar, itp."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Menedżer okien jest programem wyświetlającym paski tytułowe i krawędzie "
+"wokół okien oraz pozwala na przenoszenie i zmianę rozmiaru okien."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Czas, po którym sesja jest uznawana za bezczynną"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Menedżer okien"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Niektóre programy są nadal uruchomione:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"Oczekiwanie na zakończenie działania programów. Przerwanie działania "
+"programów może spowodować utratę niezapisanych wyników pracy."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Wybór programów do uruchomienia podczas logowania"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Programy startowe"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "D_odatkowe programy startowe:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "Przeglądaj…"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Polecenie:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "_Komentarz:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Opcje"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Programy startowe"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "Z_apamiętanie uruchomionych programów podczas wylogowywania"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Nazwa:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Zapamiętaj uruchomione programy"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Nieprawidłowy plik .desktop"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Nierozpoznana wersja pliku .desktop \"%s\""
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Uruchamianie %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Program nie przyjmuje dokumentów w wierszu poleceń"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Nierozpoznana opcja uruchamiania: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"Nie można przekazać adresów URI dokumentów do wpisu pliku .desktop "
+"\"Type=Link\""
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Tego elementu nie można uruchomić"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Wyłącza połączenia z menedżerem sesji"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Plik zawierający zapisaną konfigurację"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "PLIK"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Identyfikator zarządzania sesją"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "Identyfikator"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Opcje zarządzania sesją:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Wyświetla opcje zarządzania sesją"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Wystąpił problem z serwerem konfiguracji.\n"
+"(%s zakończył działanie ze stanem %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Nie odnaleziono ikony \"%s\""
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Nieznany"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Program jest nadal uruchomiony:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Niektóre programy są nadal uruchomione:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Oczekiwanie na zakończenie działania programów. Przerwanie działania "
+"programów może spowodować utratę niezapisanych wyników pracy."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Przełącz użytkownika mimo to"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "Wyloguj mimo to"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Uśpij mimo to"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Zahibernuj mimo to"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "Shut Down Anyway"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Uruchom ponownie mimo to"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Zablokuj ekran"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Anuluj"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Automatyczne wylogowanie nastąpi za %d sekundę."
+msgstr[1] "Automatyczne wylogowanie nastąpi za %d sekundy."
+msgstr[2] "Automatyczne wylogowanie nastąpi za %d sekund."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Automatyczne wyłączenie komputera nastąpi za %d sekundę."
+msgstr[1] "Automatyczne wyłączenie komputera nastąpi za %d sekundy."
+msgstr[2] "Automatyczne wyłączenie komputera nastąpi za %d sekund."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Użytkownik jest zalogowany jako \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Wylogować się z systemu?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "_Przełącz użytkownika"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Wyloguj"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Wyłączyć komputer?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "_Uśpij"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "Za_hibernuj"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "_Uruchom ponownie"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "_Wyłącz komputer"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Brak odpowiedzi"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "Ten program uniemożliwia wylogowanie."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "Odmowa połączenia nowego klienta z powodu trwającego zamykania sesji\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Nie można utworzyć gniazda nasłuchującego ICE: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Nie można uruchomić sesji logowania (oraz nie można się połączyć z serwerem "
+"X)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Obejście standardowych katalogów automatycznego uruchamiania"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "Klucz MateConf używany do sprawdzenia domyślnej sesji"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Uruchomienie kodu do debugowania"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Bez wczytywania programów określonych przez użytkownika"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - menedżer sesji środowiska MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Wylogowanie"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Wylogowanie, ignorując istniejące mechanizmy wstrzymujące"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Wyświetlenie okna wylogowania"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Wyświetlenie okna wyłączenia komputera"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Wykorzystanie okien dialogowych dla błędów"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Ustawia nazwę bieżącej sesji"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAZWA"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Usunięcie sesji"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Nie wymaga potwierdzenia"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Nie można połączyć się z menedżerem sesji"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Wywołano program ze sprzecznymi opcjami"
diff --git a/po/ps.po b/po/ps.po
new file mode 100644
index 0000000..a5ca55c
--- /dev/null
+++ b/po/ps.po
@@ -0,0 +1,548 @@
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the mate-session package.
+# Zabeeh Khan <[email protected]>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.head\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2009-03-10 22:16+0000\n"
+"PO-Revision-Date: 2009-03-11 14:40+0500\n"
+"Last-Translator: Zabeeh Khan <[email protected]>\n"
+"Language-Team: Pashto <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Pashto, Pushto\n"
+"X-Poedit-Country: AFGHANISTAN\n"
+
+#: ../capplet/gsm-app-dialog.c:126
+msgid "Select Command"
+msgstr "بولۍ ټاکل"
+
+#: ../capplet/gsm-app-dialog.c:187
+msgid "Add Startup Program"
+msgstr "پېلنګ کړنلار زياتول"
+
+#: ../capplet/gsm-app-dialog.c:191
+msgid "Edit Startup Program"
+msgstr "پېلنګ کړنلار سمول"
+
+#: ../capplet/gsm-properties-dialog.c:131
+msgid "No description"
+msgstr "هېڅ سپړاوی"
+
+#: ../capplet/gsm-properties-dialog.c:974
+msgid "The name of the startup program cannot be empty"
+msgstr "د پېلنګ کړنلار نوم تشېدی نه شي"
+
+#: ../capplet/gsm-properties-dialog.c:978
+msgid "The startup command cannot be empty"
+msgstr "د پېلنګ بولۍ تشېدی نه شي"
+
+#: ../capplet/gsm-properties-dialog.c:984
+msgid "The startup command is not valid"
+msgstr "پېلنګ بولۍ سمه نه ده"
+
+#: ../capplet/gsm-properties-dialog.c:1303
+msgid "Enabled"
+msgstr "توانول شوی"
+
+#: ../capplet/gsm-properties-dialog.c:1316
+msgid "Icon"
+msgstr "انځورن"
+
+#: ../capplet/gsm-properties-dialog.c:1327
+msgid "Program"
+msgstr "کړنلار"
+
+#: ../capplet/gsm-properties-dialog.c:1477
+msgid "Startup Applications Preferences"
+msgstr ""
+
+#: ../capplet/main.c:37 ../mate-session/main.c:440
+msgid "Version of this application"
+msgstr ""
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr ""
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr ""
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "ګنوم"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "دا ناسته تاسو ګنوم ته ننباسي"
+
+#: ../data/mate-session.schemas.in.h:1
+msgid "Default session"
+msgstr "تلواله ناسته"
+
+#: ../data/mate-session.schemas.in.h:2
+msgid "File Manager"
+msgstr "دوتنه سمبالګر"
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr ".د هغو کاريالونو لړ چې د تلوالې ناستې برخه دي"
+
+#: ../data/mate-session.schemas.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Logout prompt"
+msgstr "وتون پارليکه"
+
+#: ../data/mate-session.schemas.in.h:8
+msgid "Panel"
+msgstr "پاڼه"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "د ننوتون پېلوونکې پردې لپاره د خوښې انځور"
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Required session components"
+msgstr "د ناستې اړين رغتوکي"
+
+#: ../data/mate-session.schemas.in.h:11
+msgid "Save sessions"
+msgstr "ناستې ساتل"
+
+#: ../data/mate-session.schemas.in.h:12
+msgid "Show the splash screen"
+msgstr "پېلوونکې پرده ښودل"
+
+#: ../data/mate-session.schemas.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "د ناستې د پېلېدو پر مهال پېلوونکې پرده ښودل"
+
+#: ../data/mate-session.schemas.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:19
+msgid "Time before session is considered idle"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "کړکۍ سمبالګر"
+
+#: ../data/gsm-inhibit-dialog.glade.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr ""
+
+#: ../data/gsm-inhibit-dialog.glade.h:2
+#: ../mate-session/gsm-inhibit-dialog.c:633
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr ""
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "پېل کاريالونه"
+
+#: ../data/session-properties.glade.h:1
+msgid "Additional startup _programs:"
+msgstr ":نورې پېلنګ _کړنلارې"
+
+#: ../data/session-properties.glade.h:2
+msgid "Browse..."
+msgstr "...لټول"
+
+#: ../data/session-properties.glade.h:3
+msgid "Co_mmand:"
+msgstr ":بو_لۍ"
+
+#: ../data/session-properties.glade.h:4
+msgid "Comm_ent:"
+msgstr ":څرګن_دون"
+
+#: ../data/session-properties.glade.h:5
+msgid "Options"
+msgstr "غوراوي"
+
+#: ../data/session-properties.glade.h:6
+msgid "Sessions Preferences"
+msgstr "د ناستو غوراوي"
+
+#: ../data/session-properties.glade.h:7
+msgid "Startup Programs"
+msgstr "پېلنګ کاريالونه"
+
+#: ../data/session-properties.glade.h:8
+msgid "_Automatically remember running applications when logging out"
+msgstr "د وتلو پر مهال ځغلېدونکي کاريالونه په خپلکارې توګه په ياد ساتل_"
+
+#: ../data/session-properties.glade.h:9
+msgid "_Name:"
+msgstr ":نوم_"
+
+#: ../data/session-properties.glade.h:10
+msgid "_Remember Currently Running Application"
+msgstr "اوس ځغلېدونکی کاريال په ياد ساتل_"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "دوتنه نه ده .desktop دوتنه سمه"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "'%s' ‎د سرپاڼه دوتنې ناپېژندلې نسخه"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "پېلېږي ‎%s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "کاريال په بولۍ ليکه کې لاسوندونه نه مني"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "%d ‎:ناپېژندلی پېل غوراوی"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1392
+#, c-format
+msgid "Not a launchable item"
+msgstr "پېلېدونکی توکی نه دی"
+
+#: ../egg/eggsmclient.c:185
+msgid "Disable connection to session manager"
+msgstr "د ناسته سمبالګر سره نښلېدنه ناتوانول"
+
+#: ../egg/eggsmclient.c:188
+msgid "Specify file containing saved configuration"
+msgstr "هغه دوتنه چې ساتل شوې سازونه لري ويې ټاکئ"
+
+#: ../egg/eggsmclient.c:188
+msgid "FILE"
+msgstr "دوتنه"
+
+#: ../egg/eggsmclient.c:191
+msgid "Specify session management ID"
+msgstr "د ناستې سمبالونې پېژند وټاکئ"
+
+#: ../egg/eggsmclient.c:191
+msgid "ID"
+msgstr "پېژند"
+
+#: ../egg/eggsmclient.c:245
+msgid "Session Management Options"
+msgstr "د ناستې سمبالونې غوراوي"
+
+#: ../egg/eggsmclient.c:246
+msgid "Show Session Management options"
+msgstr "د ناستې سمبالونې غوراوي ښودل"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:256
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "انځورن ونه موندل شو '%s'"
+
+#: ../mate-session/gsm-inhibit-dialog.c:581
+msgid "Unknown"
+msgstr "ناپېژندلی"
+
+#: ../mate-session/gsm-inhibit-dialog.c:632
+msgid "A program is still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:636
+msgid "Some programs are still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:637
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:865
+msgid "Switch User Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:868
+msgid "Logout Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:871
+msgid "Suspend Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:874
+msgid "Hibernate Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:877
+msgid "Shutdown Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:880
+msgid "Reboot Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:888
+msgid "Lock Screen"
+msgstr "پرده کولپول"
+
+#: ../mate-session/gsm-inhibit-dialog.c:891
+msgid "Cancel"
+msgstr "بندول"
+
+#: ../mate-session/gsm-logout-dialog.c:284
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../mate-session/gsm-logout-dialog.c:292
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../mate-session/gsm-logout-dialog.c:324
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:389
+msgid "Log out of this system now?"
+msgstr "دې غونډال نه دستي وتل غواړئ؟"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Switch User"
+msgstr "کارن ونجول_"
+
+#: ../mate-session/gsm-logout-dialog.c:404
+msgid "_Log Out"
+msgstr "وتل_"
+
+#: ../mate-session/gsm-logout-dialog.c:410
+msgid "Shut down this system now?"
+msgstr "دا غونډال دستي ګلول غواړئ؟"
+
+#: ../mate-session/gsm-logout-dialog.c:416
+msgid "S_uspend"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:422
+msgid "_Hibernate"
+msgstr "پرکالول_"
+
+#: ../mate-session/gsm-logout-dialog.c:428
+msgid "_Restart"
+msgstr "بياپېلول_"
+
+#: ../mate-session/gsm-logout-dialog.c:438
+msgid "_Shut Down"
+msgstr "ګلول_"
+
+#: ../mate-session/gsm-manager.c:948 ../mate-session/gsm-manager.c:1634
+msgid "Not responding"
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-client.c:1149
+msgid "This program is blocking log out."
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "د نوي پېرن نښلېدنه نه منل کيږي ځکه چې ناسته اوس ګليږي\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr ""
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:282
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+
+#: ../mate-session/main.c:436
+msgid "Override standard autostart directories"
+msgstr ""
+
+#: ../mate-session/main.c:437
+msgid "MateConf key used to lookup default session"
+msgstr ""
+
+#: ../mate-session/main.c:438
+msgid "Enable debugging code"
+msgstr ""
+
+#: ../mate-session/main.c:439
+msgid "Do not load user-specified applications"
+msgstr "کارن-پېژندلي کاريالونه نه پرانيستل"
+
+#: ../mate-session/main.c:460
+msgid " - the MATE session manager"
+msgstr "د ګنوم ناستې سمبالګر - "
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "د ګنوم پېلوونکې پرده - "
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "د ګنوم پېلوونکې پرده"
+
+#: ../tools/mate-session-save.c:65
+msgid "Set the current session name"
+msgstr "د اوسنۍ ناستې نوم امستل"
+
+#: ../tools/mate-session-save.c:65
+msgid "NAME"
+msgstr "نوم"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out"
+msgstr "وتل"
+
+#: ../tools/mate-session-save.c:67
+msgid "Log out, ignoring any existing inhibitors"
+msgstr ""
+
+#: ../tools/mate-session-save.c:68
+msgid "Show logout dialog"
+msgstr ""
+
+#: ../tools/mate-session-save.c:69
+msgid "Show shutdown dialog"
+msgstr ""
+
+#: ../tools/mate-session-save.c:70
+msgid "Kill session"
+msgstr "ناسته وژل"
+
+#: ../tools/mate-session-save.c:71
+msgid "Use dialog boxes for errors"
+msgstr "د تېروتنو لپاره کړکۍ کارول"
+
+#: ../tools/mate-session-save.c:72
+msgid "Do not require confirmation"
+msgstr "باوريينه نه غوښتل"
+
+#: ../tools/mate-session-save.c:121 ../tools/mate-session-save.c:131
+msgid "Could not connect to the session manager"
+msgstr "ناسته سمبالګر سره نه شي نښلېدی"
+
+#: ../tools/mate-session-save.c:274
+msgid "Program called with conflicting options"
+msgstr ""
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "په وتون کړکۍ کې ټاکل شوی غوراوی"
+
+#~ msgid "Configure your sessions"
+#~ msgstr "خپلې ناستې سازول"
+
+#~ msgid "Sessions"
+#~ msgstr "ناستې"
+
+#~ msgid "Session management"
+#~ msgstr "ناسته سمبالونه"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "EggSMClient + کتابتون‎ GUI د جنومي‎"
+
+#~ msgid "Could not connect to the session manager\n"
+#~ msgstr "ناسته سمبالګر سره نه شي نښلېدی\n"
+
+#~ msgid " - Save the current session"
+#~ msgstr "اوسنۍ ناسته ساتل - "
+
+#~ msgid "Play logout sound instead of login"
+#~ msgstr "د ننوتو په ځای د وتو غږ غږول"
+
+#~ msgid "- MATE login/logout sound"
+#~ msgstr "د جنومي ننوتون/وتون غږ - "
diff --git a/po/pt.po b/po/pt.po
new file mode 100644
index 0000000..5a977f6
--- /dev/null
+++ b/po/pt.po
@@ -0,0 +1,992 @@
+# mate-session's Portuguese translation
+# Copyright © 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 mate-session
+# Distributed under the same licence as the mate-session package
+# Nuno Ferreira <[email protected]>, 1999
+# Duarte Loreto <[email protected]>, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 2.32\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-05 01:05+0100\n"
+"PO-Revision-Date: 2010-09-05 01:10+0000\n"
+"Last-Translator: Duarte Loreto <[email protected]>\n"
+"Language-Team: Português <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Seleccionar o Comando"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Adicionar Aplicação de Arranque"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Editar Aplicação de Arranque"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "O comando de arranque não pode ser vazio"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "O comando de arranque não é válido"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Activo"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Ícone"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Aplicação"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Preferências das Aplicações de Arranque"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Sem nome"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Sem descrição"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Versão desta aplicação"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Incapaz de apresentar o documento de ajuda"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Esta é uma sessão no MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Sessão por omissão"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Gestor de Ficheiros"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Se activo, o mate-session questionará o utilizador antes de terminar uma "
+"sessão."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Se activo, o mate-session irá gravar a sessão automaticamente."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Lista de aplicações que fazem parte da sessão por omissão."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Lista de componentes que são necessários como parte da sessão. (Cada "
+"elemento designa uma chave sob \"/desktop/mate/session/required_components"
+"\"). As Preferências de Aplicações de Arranque normalmente não permitirão "
+"aos utilizadores remover um componente necessário da sessão, e o gestor de "
+"sessões irá automaticamente adicionar novamente, ao iniciar uma sessão, os "
+"componentes necessários, caso tenham sido removidos."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Perguntar ao terminar sessão"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Painel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Componentes necessários de sessão"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Gravar sessões"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"O gestor de ficheiros disponibiliza os ícones de ambiente de trabalho e "
+"permite-lhe interagir com os seus ficheiros gravados."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"O número de minutos de inactividade até que a sessão seja considerada "
+"inactiva."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"O painel disponibiliza a barra no topo e no fundo do ecrã que contêm menus, "
+"a lista de janelas, ícones de estado, o relógio, etc."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"O gestor de janelas é a aplicação que desenha a barra de título e margens em "
+"torno das janelas, e que lhe permite mover e redimensionar as janelas."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Tempo até que a sessão seja considerada inactiva"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Gestor de Janelas"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Algumas aplicações ainda se encontram em execução:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"A aguardar que a aplicação termine. Interromper a aplicação pode "
+"causar a perca de trabalho."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Seleccione que aplicações arrancar ao iniciar uma sessão"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Aplicações de Arranque"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "A_plicações de arranque adicionais:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "Navegar…"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "Co_mando:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Com_entário:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Opções"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Aplicações de Arranque"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr ""
+"Recordar _automaticamente as aplicações em execução ao terminar a sessão"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Nome:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Recordar as Aplicações Actualmente em Execução"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Ficheiro não é um ficheiro .desktop válido"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Versão de ficheiro de ambiente de trabalho '%s' desconhecida"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "A iniciar %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Aplicação não aceita documentos na linha de comando"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Opção de iniciação desconhecida. %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"Incapaz de indicar URIs de documentos a uma entrada de ficheiro de ambiente "
+"de trabalho 'Type=Link'"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Não é um item iniciável"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Desactivar a ligação ao gestor de sessões"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Especificar o ficheiro que contém a configuração gravada"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FICHEIRO"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Especificar o ID de gestão de sessões"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Opções de gestão de sessões:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Apresentar as opções de gestão de sessões"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Ocorreu um problema com o servidor de configuração.\n"
+"(%s terminou com o estado %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Incapaz de encontrar o ícone '%s'"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Uma aplicação ainda se encontra em execução:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Algumas aplicações ainda se encontram em execução:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"A aguardar que as aplicações terminem. Interromper estas aplicações pode "
+"causar a perca de trabalho."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Ainda Assim Alternar Utilizador"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "Ainda Assim Terminar a Sessão"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Ainda Assim Suspender"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Ainda Assim Hibernar"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "Ainda Assim Desligar"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Ainda Assim Reiniciar"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Trancar o Ecrã"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "A sua sessão terminará automaticamente dentro de %d segundo."
+msgstr[1] "A sua sessão terminará automaticamente dentro de %d segundos."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "O sistema será automaticamente desligado dentro de %d segundo."
+msgstr[1] "O sistema será automaticamente desligado dentro de %d segundos."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "A sessão actual está iniciada com o utilizador \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Terminar a sessão neste sistema agora?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "_Alternar Utilizador"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Terminar a Sessão"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Desligar este sistema agora?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "S_uspender"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Hibernar"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "_Reiniciar"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "_Desligar"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Não está a responder"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "Esta aplicação está a impedir o encerramento da sessão."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"A recusar uma nova ligação cliente pois a sessão está actualmente a ser "
+"terminada\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Incapaz de criar socket de escuta ICE: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Incapaz de iniciar sessão de arranque (e incapaz de se ligar ao servidor X)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Especificar novos directórios base de arranque automático"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "Chave MateConf utilizada para procurar a sessão por omissão"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Activar o código de depuração"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Não ler as aplicações especificadas pelo utilizador"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - o gestor de sessões do MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Terminar a sessão"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Terminar a sessão, ignorando quaisquer inibidores existentes"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Apresentar diálogo de término de sessão"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Apresentar diálogo de desligar"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Utilizar caixas de diálogo para os erros"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Definir o nome da sessão actual"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NOME"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Matar sessão"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Não requerer confirmação"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Não foi possível ligar-se ao gestor de sessões"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Aplicação invocada com conflito de opções"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "Foi pedido para esta sessão suporte para tecnologia assistiva, mas o "
+#~ "registo de acessibilidade não foi encontrado. Certifique-se de que o "
+#~ "pacote AT-SPI se encontra instalado. A sua sessão foi iniciada sem "
+#~ "suporte para tecnologia assistiva."
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "Invólucro de Registo AT SPI"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "Assistente do Daemon das Definições MATE"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "Se activo, o mate-session gravará a sessão automaticamente. Caso "
+#~ "contrário, o diálogo de terminar sessão terá uma opção para gravar a "
+#~ "sessão."
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr ""
+#~ "Imagem Preferida a utilizar para o ecrã de logotipo ao iniciar sessão"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "Apresentar ecrã de logotipo"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "Apresentar ecrã de logotipo ao iniciar sessão"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+#~ msgstr ""
+#~ "Este é um caminho relativo baseado no directório $datadir/pixmaps/. "
+#~ "Subdirectórios e nomes de imagens são valores válidos. Alterar este valor "
+#~ "irá ter efeito na próxima vez que iniciar uma sessão."
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr ""
+#~ "A aguardar que as aplicações terminem. Interromper as aplicações poderá "
+#~ "causar a perca de trabalho."
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- Ecrã de Logotipo do MATE"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "Ecrã de Logotipo do MATE"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "O nome da aplicação de arranque não pode ser vazio"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "Preferências de Sessão"
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "Invólucro do Daemon do MATE Keyring"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Opção seleccionada no diálogo de terminar sessão"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "Esta é a opção que estará seleccionada no diálogo de terminar sessão, "
+#~ "valores válidos são \"logout\" para terminar a sessão, \"shutdown\" para "
+#~ "desligar o sistema e \"restart\" para reiniciar o sistema."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "Configurar as suas sessões"
+
+#~ msgid "Sessions"
+#~ msgstr "Sessões"
+
+#~ msgid "Session management"
+#~ msgstr "Gestão de sessões"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "Biblioteca de Interface Gráfico MATE + EggSMClient"
+
+#~ msgid ""
+#~ "The Window manager that mate-session will start. Valid values are "
+#~ "\"marco\" and \"compiz\"."
+#~ msgstr ""
+#~ "O gestor de janelas que o mate-session irá iniciar. Valores válidos são "
+#~ "\"marco\" e \"compiz\"."
+
+#~ msgid "Window Manager to start"
+#~ msgstr "Gestor de Janelas a iniciar"
+
+#~ msgid "gtk-cancel"
+#~ msgstr "gtk-cancelar"
+
+#~ msgid "Play logout sound instead of login"
+#~ msgstr "Reproduzir som de terminar sessão em vez do de iniciar"
+
+#~ msgid "- MATE login/logout sound"
+#~ msgstr "- som de início/terminar de sessão MATE"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "Autorizar ligações TCP"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "Por motivos de segurança, em plataformas que tenham _IceTcpTransNoListen"
+#~ "() (sistemas XFree86), o mate-session não escuta por ligações em portos "
+#~ "TCP. Esta opção autorizará ligações de máquinas remotas (autorizadas). O "
+#~ "mate-session tem de ser reiniciado para que esta opção tenha efeito."
+
+#~ msgid "_Order:"
+#~ msgstr "_Ordem:"
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "O que acontece à aplicação quando termina."
+
+#~ msgid "_Style:"
+#~ msgstr "E_stilo:"
+
+#~ msgid "Inactive"
+#~ msgstr "Inactiva"
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "A aguardar início ou já terminada."
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "Já iniciada mas ainda não reportou estado."
+
+#~ msgid "Running"
+#~ msgstr "Em execução"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "Um membro normal da sessão."
+
+#~ msgid "Saving"
+#~ msgstr "A gravar"
+
+#~ msgid "Saving session details."
+#~ msgstr "A gravar detalhes de sessão."
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "Estado não reportado dentro do prazo."
+
+#~ msgid "Normal"
+#~ msgstr "Normal"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "Não afectado por fim de sessão mas pode morrer."
+
+#~ msgid "Never allowed to die."
+#~ msgstr "Nunca é permitido morrer."
+
+#~ msgid "Trash"
+#~ msgstr "Lixo"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "Descartada no final da sessão e pode morrer."
+
+#~ msgid "Settings"
+#~ msgstr "Propriedades"
+
+#~ msgid "Always started on every login."
+#~ msgstr "Iniciada em todos os inícios de sessão."
+
+#~ msgid "Order"
+#~ msgstr "Ordem"
+
+#~ msgid "Style"
+#~ msgstr "Estilo"
+
+#~ msgid "State"
+#~ msgstr "Estado"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "Ocorreu um erro ao iniciar o Daemon de Definições MATE.\n"
+#~ "\n"
+#~ "Algumas coisas, tais como temas, sons ou configurações do fundo do "
+#~ "ambiente poderão não funcionar correctamente."
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "A última mensagem de erro foi:\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "O MATE tentará ainda assim reiniciar o Daemon de Definições da próxima "
+#~ "vez que iniciar sessão."
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "O Daemon de Definições reiniciou-se demasiadas vezes."
+
+#~ msgid "List registered clients, then exit"
+#~ msgstr "Listar os clientes registados, depois sair"
+
+#~ msgid "PROGRAM..."
+#~ msgstr "APLICAÇÃO..."
+
+#~ msgid ""
+#~ "You must specify at least one program to remove. You can list the "
+#~ "programs with --list.\n"
+#~ msgstr ""
+#~ "Tem de especificar pelo menos uma aplicação a remover. Pode listar as "
+#~ "aplicações com --list.\n"
+
+#~ msgid "Error: could not connect to the session manager\n"
+#~ msgstr "Erro: Incapaz de se ligar ao gestor de sessões\n"
+
+#~ msgid "Currently registered clients:\n"
+#~ msgstr "Clientes actualmente registados:\n"
+
+#~ msgid "Couldn't find program %s in session\n"
+#~ msgstr "Incapaz de encontrar a aplicação %s na sessão\n"
+
+#~ msgid ""
+#~ "The MATE session manager cannot start properly. Please report this as a "
+#~ "MATE bug. Please include this ICE failure message in the bug report: '%"
+#~ "s'. Meanwhile you could try logging in using the failsafe session."
+#~ msgstr ""
+#~ "O gestor de sessões MATE foi incapaz de se iniciar correctamente. "
+#~ "Reporte este problema como sendo um erro do MATE. Inclua esta mensagem "
+#~ "de falha ICE no relatório de erro: '%s'. Entretanto poderá tentar "
+#~ "iniciar uma sessão utilizando a sessão de recurso."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to lock the file '%s'. Please "
+#~ "report this as a MATE bug. Sometimes this error may occur if the file's "
+#~ "directory is unwritable, you could try logging in via the failsafe "
+#~ "session and ensuring that it is."
+#~ msgstr ""
+#~ "O gestor de sessões MATE foi incapaz de trancar o ficheiro '%s'. Relate "
+#~ "este problema como sendo um erro do MATE. Por vezes este erro poderá "
+#~ "ocorrer se o directório do ficheiro não permitir escrita, pelo que poderá "
+#~ "iniciar uma sessão utilizando a sessão de recurso e certificar-se de que "
+#~ "o directório possui permissões de escrita."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to read the file: '%s'. If this "
+#~ "file exists it must be readable by you for MATE to work properly. Try "
+#~ "logging in with the failsafe session and removing this file."
+#~ msgstr ""
+#~ "O gestor de sessões MATE foi incapaz de ler o ficheiro: '%s'. Se este "
+#~ "ficheiro existir terá de ser legível pelo seu utilizador para que o MATE "
+#~ "funcione correctamente. Tente iniciar uma sessão utilizando a sessão de "
+#~ "recurso e remover este ficheiro."
+
+#~ msgid ""
+#~ "Could not write to file '%s'. This file must be writable in order for "
+#~ "MATE to function properly. Try logging in with the failsafe session and "
+#~ "removing this file. Also make sure that the file's directory is writable."
+#~ msgstr ""
+#~ "Incapz de escrever no ficheiro '%s'. Este ficheiro tem de permitir "
+#~ "escrita para que o MATE funcione correctamente. Tente iniciar uma "
+#~ "sessão utilizando a sessão de recurso e remover este ficheiro. "
+#~ "Certifique-se também de que o directório onde se encontra o ficheiro "
+#~ "permite escrita."
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "Tem a certeza de que deseja terminar a sessão?"
+
+#~ msgid "Remember running applications"
+#~ msgstr "Recordar as aplicações em execução"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "_Reiniciar o computador"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "Apenas ler sessões gravadas do ficheiro default.session"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr ""
+#~ "Milisegundos gastos à espera que os clientes se registem (0=infinito)"
+
+#~ msgid "DELAY"
+#~ msgstr "ESPERA"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr "Milisegundos gastos à espera que os clientes respondam (0=infinito)"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr "Milisegundos gastos à espera que os clientes morram (0=infinito)"
+
+#~ msgid "This session is running as a privileged user"
+#~ msgstr "Esta sessão está a correr como utilizador privilegiado"
+
+#~ msgid ""
+#~ "Running a session as a privileged user should be avoided for security "
+#~ "reasons. If possible, you should log in as a normal user."
+#~ msgstr ""
+#~ "Executar uma sessão como utilizador privilegiado deverá ser evitado por "
+#~ "motivos de segurança. Se possível, deverá iniciar uma sessão como "
+#~ "utilizador normal."
+
+#~ msgid "_Continue"
+#~ msgstr "_Continuar"
+
+#~ msgid ""
+#~ "The session might encounter issues if the computer clock is not properly "
+#~ "configured. Please consider adjusting it.\n"
+#~ "\n"
+#~ "Current date is <b>%s</b>."
+#~ msgstr ""
+#~ "A sessão poderá encontrar problemas se o relógio do computador não "
+#~ "estiver devidamente configurado. Considere ajustá-lo.\n"
+#~ "\n"
+#~ "A data actual é <b>%s</b>."
+
+#~ msgid "Failed to launch time configuration tool: %s"
+#~ msgstr "Falha ao iniciar a ferramenta de configuração de hora: %s"
+
+#~ msgid "The computer clock appears to be wrong"
+#~ msgstr "Parece que o relógio do computador está incorrecto"
+
+#~ msgid "_Ignore"
+#~ msgstr "_Ignorar"
+
+#~ msgid "_Adjust the Clock"
+#~ msgstr "_Ajustar o Relógio"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "Incapaz de encontrar endereço de internet para %s.\n"
+#~ "Isto impedirá o MATE de funcionar correctamente.\n"
+#~ "Poderá ser possível corrigir o problema adicionando\n"
+#~ "%s ao ficheiro /etc/hosts."
+
+#~ msgid "Try Again"
+#~ msgstr "Tentar Novamente"
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "Espera abandonada devido a conflitos."
+
+#~ msgid "No response to the %s command."
+#~ msgstr "Nenhuma resposta ao comando %s."
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "A aplicação pode estar lenta, parada ou zombie."
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "Pode aguardar que ela responda ou removê-la."
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "Reiníco abandonado devido a falhas."
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "Encerramento de sessão em curso."
+
+#~ msgid "- Save the current session"
+#~ msgstr "- Gravar a sessão actual"
+
+#~ msgid "Save changes to the current session before closing?"
+#~ msgstr "Gravar as alterações à sessão actual antes de fechar?"
+
+#~ msgid "If you don't save, changes will be discarded."
+#~ msgstr "Se não gravar, as alterações serão descartadas."
+
+#~ msgid "_Close without Saving"
+#~ msgstr "_Fechar sem Gravar"
+
+#~ msgid "Current Session"
+#~ msgstr "Sessão Actual"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "A sua sessão foi gravada."
+
+#~ msgid "could not connect to the session manager\n"
+#~ msgstr "Incapaz de se ligar ao gestor de sessões\n"
+
+#~ msgid "session manager does not support MATE extensions\n"
+#~ msgstr "o gestor de sessões não suporta extensões MATE\n"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "Remover o cliente actualmente seleccionado da sessão."
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "Aplicar alterações à sessão actual"
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "A lista de aplicações na sessão."
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "Aplicações actualmente em e_xecução:"
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "Gestor de Janelas Sawfish"
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "Gestor de Janelas Marco"
+
+#~ msgid "Caja"
+#~ msgstr "Caja"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "Definições do Ambiente"
+
+#~ msgid "New Startup Program"
+#~ msgstr "Nova Aplicação de Arranque"
+
+#~ msgid "_Save current setup"
+#~ msgstr "_Gravar a configuração actual"
+
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "_Gravar automaticamente alterações à sessão"
+
+#~ msgid "Save the current session"
+#~ msgstr "Gravar a sessão actual"
+
+#~ msgid "The session name cannot be empty"
+#~ msgstr "O nome de sessão não pode ser vazio"
+
+#~ msgid "The session name already exists"
+#~ msgstr "O nome de sessão já existe"
+
+#~ msgid "Add a new session"
+#~ msgstr "Adicionar nova sessão"
+
+#~ msgid "Edit session name"
+#~ msgstr "Editar nome de sessão"
+
+#~ msgid "Disable"
+#~ msgstr "Desactivar"
+
+#~ msgid "_Edit"
+#~ msgstr "_Editar"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "Algumas alterações não foram gravadas\n"
+#~ "Ainda assim sair?"
+
+#~ msgid "Show splash screen on _login"
+#~ msgstr "Apresentar ecrã de _logotipo ao iniciar sessão"
+
+#~ msgid "As_k on logout"
+#~ msgstr "Perguntar ao _terminar sessão"
+
+#~ msgid "_Sessions:"
+#~ msgstr "_Sessões:"
+
+#~ msgid "_Startup Command:"
+#~ msgstr "Comando de _Arranque:"
+
+#~ msgid "There was an unknown activation error."
+#~ msgstr "Ocorreu um erro de activação desconhecido."
+
+#~ msgid "Initialize session settings"
+#~ msgstr "Inicializar definições de sessão"
+
+#~ msgid "Save Current Session"
+#~ msgstr "Gravar Sessão Actual"
+
+#~ msgid "Save current state of desktop"
+#~ msgstr "Gravar estado actual do ambiente"
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644
index 0000000..09d647c
--- /dev/null
+++ b/po/pt_BR.po
@@ -0,0 +1,605 @@
+# Brazilian Portuguese translation of mate-session.
+# Copyright (C) 1999-2007 Free Software Foundation, Inc.
+# This file is distributed under the same license as the mate-session package.
+# Elvis Pfützenreuter <[email protected]>
+# Sandro Nunes Henrique <[email protected]>
+# Rodrigo Stulzer Lopes <[email protected]>
+# Ricardo Soares Guimarães <[email protected]>
+# Gustavo Maciel Dias Vieira <[email protected]>, 2000-2001.
+# Evandro Fernandes Giovanini <[email protected]>, 2002-2005.
+# Og Maciel <[email protected]>, 2007-2009.
+# Vladimir Melo <[email protected]>, 2008.
+# Leonardo Ferreira Fontenelle <[email protected]>, 2008.
+# Djavan Fagundes <[email protected]>, 2008.
+# André Gondim <[email protected]>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2010-09-21 18:43+0000\n"
+"PO-Revision-Date: 2010-09-18 15:52-0300\n"
+"Last-Translator: Daniel S. Koda <[email protected]>\n"
+"Language-Team: Brazilian Portuguese <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Selecionar comando"
+
+#: ../capplet/gsm-app-dialog.c:193
+msgid "Add Startup Program"
+msgstr "Adicionar programa inicial"
+
+#: ../capplet/gsm-app-dialog.c:197
+msgid "Edit Startup Program"
+msgstr "Editar programa inicial"
+
+#: ../capplet/gsm-app-dialog.c:485
+msgid "The startup command cannot be empty"
+msgstr "O comando inicial não pode ser vazio"
+
+#: ../capplet/gsm-app-dialog.c:491
+msgid "The startup command is not valid"
+msgstr "O comando inicial não é válido"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Habilitado"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Ícone"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Programa"
+
+#: ../capplet/gsm-properties-dialog.c:791
+msgid "Startup Applications Preferences"
+msgstr "Preferências dos aplicativos de sessão"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Sem nome:"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Nenhuma descrição"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Versão deste aplicativo"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Não é possível exibir documento de ajuda"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Essa sessão o leva ao MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Sessão padrão"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Gerenciador de arquivos"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Se habilitado, mate-session pergunta ao usuário antes de terminar uma "
+"sessão."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Se habilitado, mate-session irá salvar a sessão automaticamente."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Lista de aplicativos que são parte da sessão padrão."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Lista de componentes que são requeridos como parte da sessão. (Cada elemento "
+"nomeia uma chave em \"/desktop/mate/session/required-components\".) A "
+"ferramenta de preferências dos aplicativos de sessão não permitirá "
+"normalmente que usuários removam um componente requerido da sessão, e o "
+"gerenciador de sessões automaticamente adicionará os componentes requeridos "
+"de volta a sessão se eles forem removidos."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Tela de encerramento de sessão"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Painel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Componentes de sessão requeridos"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Salvar sessões"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"O gerenciador de arquivos fornece os ícones da área de trabalho e permite "
+"que você interaja com os seus arquivos salvos."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"O número em minutos de inatividade antes da sessão ser considerada ociosa."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"O painel fornece a barra no topo ou na base da tela contendo menus, lista de "
+"janelas, ícones de status, relógio, etc."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"O gerenciador de janelas é o programa que desenha a barra de título e as "
+"bordas ao redor das janelas, e permite que você mova e redimensione as "
+"janelas."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Tempo antes da sessão ser considerada ociosa"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Gerenciador de janelas"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Alguns programas ainda estão em execução:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:676
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"Aguardando a finalização do programa. A interrupção deste programa pode "
+"ocasionar em perda de trabalho."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Escolha quais os aplicativos que irão iniciar quando você logar-se"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Aplicativos de sessão"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "_Programas iniciais adicionais:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "Navegar…"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "Co_mando:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Com_entário:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Opções"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Programas iniciais"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr ""
+"_Automaticamente lembrar aplicativos em execução quando encerrar da sessão"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Nome:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Lembrar dos aplicativos atualmente em execução"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "O arquivo não é um arquivo .desktop válido"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Versão do arquivo da área de trabalho \"%s\" não reconhecida"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Iniciando %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "O aplicativo não aceita documentos na linha de comando"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Opção de lançamento não reconhecida: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"Não foi possível passar as URIs dos documentos para uma entrada de área de "
+"trabalho 'Type=Link'"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Não é um item lançável"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Desabilitar conexão para o gerenciador de sessões"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Especificar o arquivo que contém a configuração salva"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "ARQUIVO"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Especificar o ID de gerenciamento de sessão"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Opções de gerenciamento de sessão:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Mostra as opções de gerenciamento de sessão"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Há um problema com o servidor de configuração.\n"
+"(%s saiu com status %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Ícone \"%s\" não localizado"
+
+#: ../mate-session/gsm-inhibit-dialog.c:624
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#: ../mate-session/gsm-inhibit-dialog.c:675
+msgid "A program is still running:"
+msgstr "Um programa ainda está em execução:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:679
+msgid "Some programs are still running:"
+msgstr "Alguns programas ainda estão em execução:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:680
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Aguardando os programas para finalizar. A interrupção destes programas pode "
+"ocasionar em perda de trabalho."
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Switch User Anyway"
+msgstr "Trocar usuário mesmo assim"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Log Out Anyway"
+msgstr "Encerrar mesmo assim"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Suspend Anyway"
+msgstr "Suspender mesmo assim"
+
+#: ../mate-session/gsm-inhibit-dialog.c:919
+msgid "Hibernate Anyway"
+msgstr "Hibernar mesmo assim"
+
+#: ../mate-session/gsm-inhibit-dialog.c:922
+msgid "Shut Down Anyway"
+msgstr "Desligar mesmo assim"
+
+#: ../mate-session/gsm-inhibit-dialog.c:925
+msgid "Reboot Anyway"
+msgstr "Reiniciar mesmo assim"
+
+#: ../mate-session/gsm-inhibit-dialog.c:933
+msgid "Lock Screen"
+msgstr "Bloquear tela"
+
+#: ../mate-session/gsm-inhibit-dialog.c:936
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Essa sessão será encerrada automaticamente em %d segundo."
+msgstr[1] "Essa sessão será encerrada automaticamente em %d segundos."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Este sistema será automaticamente desligado em %d segundo."
+msgstr[1] "Este sistema será automaticamente desligado em %d segundos."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Você está logado atualmente como \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Desligar este sistema agora?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "_Trocar usuário"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Encerrar sessão"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Desligar este sistema agora?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "S_uspender"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Hibernar"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "_Reiniciar"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "_Desligar"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Não respondendo"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "Este programa está bloqueando o encerramento da sessão."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Recusando a nova conexão do cliente porque a sessão está sendo desligada "
+"neste momento\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Não foi possível criar o soquete de escuta ICE: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Não foi possível iniciar a sessão de login (e não foi possível conectar ao "
+"servidor X)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Substituir os diretórios padrões de início automático"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "A chave do MateConf usada para procurar a sessão padrão"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Habilitar código de depuração"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Não carregar aplicativos especificados pelo usuário"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "- gerenciador de sessões do MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Encerrar sessão"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Encerrar sessão, ignorando qualquer inibidor existente"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Mostrar o diálogo de encerramento da sessão"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Mostrar o diálogo de desligamento"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Usar caixas de diálogo para erros"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Definir o nome da sessão atual"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NOME"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Matar a sessão"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Não requerer confirmação"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Não foi possível conectar ao gerenciador de sessões"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Programa chamado com opções conflitantes"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr ""
+#~ "Auxiliar do MATE Settings Daemon (daemon de configurações do MATE)"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "Se habilitado, mate-session irá salvar a sessão automaticamente. Caso "
+#~ "contrário, o diálogo Encerrar sessão irá conter uma opção para salvar a "
+#~ "sessão."
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "Imagem preferida para usar como tela inicial ao carregar o ambiente"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "Mostrar tela inicial ao entrar"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "Mostrar tela inicial ao iniciar a sessão"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+#~ msgstr ""
+#~ "Este é um valor de caminho relativo baseado no diretório $datadir/"
+#~ "pixmaps/. Sub-diretórios e nomes de imagens são valores válidos. Alterar "
+#~ "esses valores vai afetar a próxima sessão."
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr ""
+#~ "Aguardando o programa para finalizar. A interrupção do programa pode "
+#~ "ocasionar em perda de trabalho."
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- Tela inicial do MATE"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "Tela inicial do MATE"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "O suporte para tecnologia assistiva foi requerido para esta sessão, mas o "
+#~ "registro de acessibilidade não foi localizado. Por favor, certifique-se "
+#~ "de que o pacote AT-SPI esteja instalado. Sua sessão foi iniciada sem o "
+#~ "suporte para tecnologia assistiva."
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "Wrapper de registro AT-SPI"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "O nome do programa inicial não pode ser vazio"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "Preferências de sessões"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Opção selecionada na caixa de diálogo de encerramento da sessão"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "Essa é a opção que será selecionada na caixa de diálogo de encerramento "
+#~ "da sessão. Os valores válidos são \"logout\" para encerrar a sessão, "
+#~ "\"shutdown\" para desligar o computador e \"restart\" para reiniciar o "
+#~ "computador."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "Configure suas sessões"
+
+#~ msgid "Sessions"
+#~ msgstr "Sessões"
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "Wrapper do daemon do Chaveiro do MATE"
+
+#~ msgid "Session management"
+#~ msgstr "Gerenciamento de sessão"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "Biblioteca de interface gráfica do MATE + EggSMClient"
diff --git a/po/ro.po b/po/ro.po
new file mode 100644
index 0000000..f70b886
--- /dev/null
+++ b/po/ro.po
@@ -0,0 +1,543 @@
+# Sebastian Ivan <[email protected]>, 2006.
+# Eddy Petrișor <[email protected]>, 2006.
+# Adi Roiban https://launchpad.net/~adiroiban, 2008, 2009
+# Lucian Adrian Grijincu <[email protected]>, 2009
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session-2.0\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2009-09-07 17:27+0000\n"
+"PO-Revision-Date: 2009-09-13 22:30+0300\n"
+"Last-Translator: Lucian Adrian Grijincu <[email protected]>\n"
+"Language-Team: Mate Romanian Team <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
+"== 0) && (n != 0))) ? 2: 1));\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Alegere comandă"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Adaugă un program de pornit"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Editare program de pornit"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Comanda de pornire nu poate fi nulă"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Comanda de start nu este validă"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Activat"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Iconiță"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Program"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Preferințe aplicații pornire"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Fără nume"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Fără descriere"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "Versiunea acestei aplicații"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Nu se poate afișa documentul de ajutor"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "Ajutor serviciu configurări MATE"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Această sesiune vă va autentifica în MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Sesiune implicită"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Administrator de fișiere"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Dacă este activat, mate-session va întreba utilizatorul înainte de "
+"terminarea sesiunii."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Dacă este activat, mate-session va salva sesiunea automat. Altfel, dialogul "
+"de ieșire va avea o opțiune pentru salvarea sesiunii."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Lista aplicațiilor care sunt parte a sesiunii implicite."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Lista componenteleor care sunt necesare să fie parte din sesiune. (Fiecare "
+"element numește o cheie din „/desktop/mate/session/required_components\".) "
+"Preferințele aplicațiile de la pornire nu vor permite în mod normal ca "
+"utilizatorii să șteargă o componentă necesară din sesiune, iar "
+"administratorul sesiunii va adăuga automat componentele necesare în cazul în "
+"care vor fi șterse."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Întrebare ieșire"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panou"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Imaginea preferată afișată după autentificare"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "Componentele necesare sesiunii"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "Salvează sesiunile"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "Arată imaginea de pornire"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "Arată imaginea de pornire la intrarea în sesiune"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Administratorul de fișiere furnizează iconițele de pe desktop și permite "
+"interacțiunea cu fișierele salvate."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"Numărul de minute de inactivitate înainte ca sesiunea să fie considerată "
+"inactivă."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Panoul furnizează bara de deasupra ori dedesubtul ecranului ce conține "
+"meniuri, lista cu ferestre, iconițe de stare, ceasul etc."
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Administratorul de ferestre este programul care afișează bara de titlu și "
+"marginile de jur împrejurul ferestrelor și permite mutarea sau "
+"redimensionarea acestora."
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Aceasta este o cale relativă bazată pe directorul $datadir/pixmaps/. Numele "
+"de subdirectoare și de imagini sunt valori valide. Efectul modificării "
+"acestei valori va fi vizibil la pornirea următoarei sesiuni."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "Durata pâne ce sesiunea este considerată inactivă"
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Administrator de ferestre"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>O parte din programe sunt încă în funcțiune:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"Se așteaptă ca programul să termine. Întreruperea acestuia poate duce la "
+"pierderea activității de până acum."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Alegeți ce aplicații să fie pornite după ce vă autentificați"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Aplicații pornite după autentificare"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "_Programe suplimetare de pornit:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "Răsfoiește..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "Co_mandă:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Com_entariu:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Opțiuni"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Programe de pornit"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "Memorează _automat la ieșire aplicațiile ce rulează"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Nume:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "Memo_rează aplicațiile ce rulează în acest moment"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Fișierul nu este un fișier .desktop valid"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Versiune fișier desktop nerecunoscută „%s”"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Se pornește %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Aplicația nu acceptă documente în linia de comandă"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Opțiune de lansare nerecunoscută: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"Nu s-a putut trimite URI-ul documentului unei intrări desktop „Type=Link”"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Nu este un element ce poate fi deschis"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Dezactivează conexiunea la administratorul sesiunii"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Specifică fișierul ce conține configurația salvată"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FIȘIER"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Specifică ID-ul de administrare a sesiunii"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Opțiuni de administrare a sesiunii:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Afișează opțiunile de administrare a sesiunii"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Există o problemă cu serverul de configurare.\n"
+"(%s a ieșit cu starea %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Iconița „%s” nu a fost găsită"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Necunoscut"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Un program este încă în funcțiune:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Unele programe sunt încă în funcțiune:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Se așteaptă ca programele să termine. Întreruperea acestora poate duce la "
+"pierderea activității."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Schimbă oricum utilizatorul"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Ieși oricum"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Suspendă oricum"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Hibernează oricum"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "Oprește oricum"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Repornește oricum"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Blocare ecran"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Renunță"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Sesiunea se va închide automat în %d secundă."
+msgstr[1] "Sesiunea se va închide automat în %d secunde."
+msgstr[2] "Sesiunea se va închide automat în %d de secunde."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Sistemul va fi oprit automat în %d secundă."
+msgstr[1] "Sistemul va fi oprit automat în %d secunde."
+msgstr[2] "Sistemul va fi oprit automat în %d de secunde."
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Sunteți autentificat ca „%s”."
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "Ieșiți de pe acest sistem acum?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "_Schimbă utilizator"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "_Ieșire"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "Opriți sistemul acum?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "S_uspendă"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "_Hibernare"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "_Repornește"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "_Oprire"
+
+#: ../mate-session/gsm-manager.c:1158 ../mate-session/gsm-manager.c:1850
+msgid "Not responding"
+msgstr "Nu răspunde"
+
+#: ../mate-session/gsm-xsmp-client.c:1206
+msgid "This program is blocking log out."
+msgstr "Acest program blochează ieșirea."
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Se refuză conexiunea noului client deoarece sesiunea este în curs de oprire\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Nu s-a putut cree socket-ul de detectare ICE: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Nu s-a putut porni sesiunea de start (iar conexiunea la serverul X nu a "
+"putut fi realizată)"
+
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr "Rescrie directoarele standard de pornire automată"
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr "Cheia MateConf folosită la căutarea sesiunii implicite"
+
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr "Activează codul pentru depanare"
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr "Nu încărca aplicațiile specificate de utilizator"
+
+#: ../mate-session/main.c:457
+msgid " - the MATE session manager"
+msgstr " - Administrator de sesiune MATE"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- Imagine de pornire MATE"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "Imagine pornire MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Ieșire"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Ieși, ignorând orice inhibator existent"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Afișează dialogul de ieșire"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Afișează dialogul de oprire"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Folosește casete de dialog pentru erori"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Definește numele sesiunii curente"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NUME"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Închide forțat sesiunea"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Nu cere confirmare"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Nu s-a putut realiza conectarea la administratorul de sesiuni"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Program apelat cu opțiuni care întră în conflict"
+
diff --git a/po/ru.po b/po/ru.po
new file mode 100644
index 0000000..ad0e2b8
--- /dev/null
+++ b/po/ru.po
@@ -0,0 +1,479 @@
+# translation of mate-session to Russian
+# Copyright (C) 1998-2002, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+#
+# Max Valianskiy <[email protected]>, 1998-1999.
+# Sergey Panov <[email protected]>, 1999.
+# Valek Filippov <[email protected]>, 2000-2002.
+# Dmitry G. Mastrukov <[email protected]>, 2002-2003.
+# Leonid Kanter <[email protected]>, 2004, 2005, 2006, 2007, 2008.
+# Anisimov Victor <[email protected]>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: ru\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-session&component=general\n"
+"POT-Creation-Date: 2010-09-21 19:47+0000\n"
+"PO-Revision-Date: 2010-09-24 08:27+0300\n"
+"Last-Translator: Yuri Myasoedov <[email protected]>\n"
+"Language-Team: Russian <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Выберите команду"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Новая автоматически запускаемая программа"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Изменить автоматически запускаемую программу"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Команда запуска не может быть пустой"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Автоматически запускаемая программа недопустима"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Включено"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Значок"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Программа"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Параметры запускаемых приложений"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Нет имени"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Нет описания"
+
+#: ../capplet/main.c:37
+#: ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Версия этого приложения"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Не удалось показать документацию"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Этот сеанс позволяет вам войти в MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Сеанс по умолчанию"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Менеджер файлов"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "Если этот ключ установлен, mate-session будет спрашивать пользователя перед окончанием сеанса."
+
+#: ../data/mate-session.schemas.in.in.h:4
+#| msgid ""
+#| "If enabled, mate-session will prompt the user before ending a session."
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Если этот ключ установлен, mate-session будет автоматически сохранять сеанс."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Список приложений, являющихся частью сеанса по умолчанию."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid "List of components that are required as part of the session. (Each element names a key under \"/desktop/mate/session/required_components\"). The Startup Applications preferences tool will not normally allow users to remove a required component from the session, and the session manager will automatically add the required components back to the session at login time if they do get removed."
+msgstr "Список компонентов, которые требуются запустить как часть этого сеанса. (каждый элемент соответствует ключу в поддереве «/desktop/mate/session/required-components»). Приложение «Параметры запускаемых приложений», как правило, не позволяет пользователю удалять из сеанса требуемые компоненты, и менеджер сеансов автоматически добавит требуемые компоненты, если они были удалены."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Запрос при выходе из сеанса"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Панель"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Требуемые компоненты сеанса"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Сохранять сеансы"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "The file manager provides the desktop icons and allows you to interact with your saved files."
+msgstr "Менеджер файлов предоставляет значки рабочего стола и позволяет работать с сохранёнными файлами."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "The number of minutes of inactivity before the session is considered idle."
+msgstr "Промежуток времени в минутах, по истечении которого сеанс будет считаться неактивным."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "The panel provides the bar at the top or bottom of the screen containing menus, the window list, status icons, the clock, etc."
+msgstr "Панель предоставляет собой полосу вверху или внизу экрана, содержащую меню, список окон, значки состояния, часы и т.д."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid "The window manager is the program that draws the title bar and borders around windows, and allows you to move and resize windows."
+msgstr "Менеджер окон - это программа, которая рисует заголовок и обрамление окна, и позволяет вам перемещать окна и менять их размер."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Промежуток времени, по истечении которого сеанс будет считаться неактивным"
+
+#: ../data/mate-session.schemas.in.in.h:16
+#: ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Менеджер окон"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Некоторые программы всё еще работают:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2
+#: ../mate-session/gsm-inhibit-dialog.c:667
+#| msgid ""
+#| "Waiting for programs to finish. Interrupting these programs may cause "
+#| "you to lose work."
+msgid "Waiting for the program to finish. Interrupting the program may cause you to lose work."
+msgstr "Ожидание завершения работы программы. Прерывание работы программы может привести к потере вашех данных."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Выберите приложения, запускаемые при входе в сеанс"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Запускаемые приложения"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Дополнительные _программы, запускаемые при старте:"
+
+#: ../data/session-properties.ui.h:2
+#| msgid "Browse..."
+msgid "Browse…"
+msgstr "Обзор..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Команда:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Ко_мментарий:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Параметры"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Автоматически запускаемые программы"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Автоматически запоминать запущенные приложения при выходе из сеанса"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Имя:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Запомнить запущенные приложения"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Файл не является правильным .desktop-файлом"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Нераспознанная версия desktop-файла «%s»"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Запускается «%s»"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Приложение не принимает документы, указанные в командной строке"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Нераспознанный параметр запуска: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Не удалось передать URI документа элементу рабочего стола 'Type=Link'"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Не является запускаемым элементом"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Отключить соединение с менеджером сеансов"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Указать файл, содержащий сохранённую конфигурацию"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "ФАЙЛ"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Указать идентификатор управления сеансом"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Параметры управления сеансами:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Отобразить параметры управления сеансами:"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Произошла проблема с сервером конфигурации.\n"
+"(%s завершился с состоянием %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Значок «%s» не найден"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Неизвестно"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Программа всё ещё работает:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Некоторые программы всё ещё работают:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid "Waiting for programs to finish. Interrupting these programs may cause you to lose work."
+msgstr "Ожидание завершения работы программ. Прерывание этих программ может привести к потере вашей работы."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Всё равно переключить пользователя"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+#| msgid "Logout Anyway"
+msgid "Log Out Anyway"
+msgstr "Всё равно выйти из системы"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Всё равно приостановить систему"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Всё равно перевести в режим сна"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+#| msgid "Shutdown Anyway"
+msgid "Shut Down Anyway"
+msgstr "Всё равно выключить"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Всё равно перезагрузить"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Заблокировать экран"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Отмена"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Вы автоматически выйдете из системы через %d секунду."
+msgstr[1] "Вы автоматически выйдете из системы через %d секунды."
+msgstr[2] "Вы автоматически выйдете из системы через %d секунд."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Система будет выключена автоматически через %d секунду."
+msgstr[1] "Система будет выключена автоматически через %d секунды."
+msgstr[2] "Система будет выключена автоматически через %d секунд."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Вы вошли в систему как пользователь «%s»."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Выйти из системы сейчас?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "_Переключить пользователя"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Завершить сеанс"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Выключить систему сейчас?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "_Ждущий режим"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Спящий режим"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "Пе_резагрузить"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "В_ыключить"
+
+#: ../mate-session/gsm-manager.c:1214
+#: ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Не отвечает"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+#| msgid "This program is blocking log out."
+msgid "This program is blocking logout."
+msgstr "Эта программа блокирует выход из системы."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid "Refusing new client connection because the session is currently being shut down\n"
+msgstr "Новые клиентские подключения отклоняются, потому что сеанс сейчас завершается.\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Не удалось создать сокет, слушающий ICE: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "Не удалось запустить сеанс (и подключиться к X-серверу)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Игнорировать стандартные папки автозапуска"
+
+#: ../mate-session/main.c:438
+#| msgid "MateConf key used to lookup default session"
+msgid "MateConf key used to look up default session"
+msgstr "Ключ MateConf, используемый для поиска сеанса по умолчанию"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Включить отладочный код"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Не загружать выбранные пользователем приложения"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "— менеджер сеансов MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Завершить сеанс"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Завершить сеанс, игнорируя любые существующие препятствия"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Отобразить диалог завершения сеанса"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Отобразить диалог отключения компьютера"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Использовать диалоговые окна для ошибок"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Установить название текущего сеанса"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "НАЗВАНИЕ"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Убить сеанс"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Не требовать подтверждение"
+
+#: ../tools/mate-session-save.c:120
+#: ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Не удалось соединиться с менеджером сеансов"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Программа была вызвана с конфликтующими параметрами"
+
diff --git a/po/rw.po b/po/rw.po
new file mode 100644
index 0000000..5cfe253
--- /dev/null
+++ b/po/rw.po
@@ -0,0 +1,566 @@
+# translation of mate-session to Kinyarwanda.
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# This file is distributed under the same license as the mate-session package.
+# Steve Murphy <[email protected]>, 2005
+# Steve performed initial rough translation from compendium built from translations provided by the following translators:
+# Philibert Ndandali <[email protected]>, 2005.
+# Viateur MUGENZI <[email protected]>, 2005.
+# Noëlla Mupole <[email protected]>, 2005.
+# Carole Karema <[email protected]>, 2005.
+# JEAN BAPTISTE NGENDAHAYO <[email protected]>, 2005.
+# Augustin KIBERWA <[email protected]>, 2005.
+# Donatien NSENGIYUMVA <[email protected]>, 2005..
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session 2.12\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-03-31 17:45-0700\n"
+"PO-Revision-Date: 2005-03-28 19:35-0700\n"
+"Last-Translator: Steve Murphy <[email protected]>\n"
+"Language-Team: Kinyarwanda <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: mate-session/mate-session.schemas.in.h:1
+#, fuzzy
+msgid "Allow TCP connections"
+msgstr "Ukwihuza"
+
+#: mate-session/mate-session.schemas.in.h:2
+#, fuzzy
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"Umutekano ku Umukoro OYA kugirango Ukwihuza ku Ihitamo Kwemerera Ukwihuza "
+"Bivuye Umukoro kugirango iyi Kuri INGARUKA"
+
+#: mate-session/mate-session.schemas.in.h:3
+#, fuzzy
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "Bikora Umukoro Urwinjiriro Ukoresha: Mbere a Umukoro"
+
+#: mate-session/mate-session.schemas.in.h:4
+#, fuzzy
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Bikora Umukoro Kubika Umukoro ku buryo bwikora Gufunga Ikiganiro Ihitamo "
+"Kuri Kubika Umukoro"
+
+#: mate-session/mate-session.schemas.in.h:5
+#, fuzzy
+msgid "Logout prompt"
+msgstr "Urwinjiriro"
+
+#: mate-session/mate-session.schemas.in.h:6
+#, fuzzy
+msgid "Preferred Image to use for login splash screen"
+msgstr "Kuri Gukoresha kugirango Ifashayinjira Mugaragaza"
+
+#: mate-session/mate-session.schemas.in.h:7
+#, fuzzy
+msgid "Save sessions"
+msgstr "Kubika"
+
+#: mate-session/mate-session.schemas.in.h:8
+#, fuzzy
+msgid "Show the splash screen"
+msgstr "Mugaragaza"
+
+#: mate-session/mate-session.schemas.in.h:9
+#, fuzzy
+msgid "Show the splash screen when the session starts up"
+msgstr "Mugaragaza Ryari: Umukoro Hejuru"
+
+#: mate-session/mate-session.schemas.in.h:10
+#, fuzzy
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"ni a Bifitanye isano Inzira Agaciro Bidakora bushyinguro ububiko "
+"bw'amaderese Na Ishusho Amazina Byemewe Uduciro iyi Agaciro INGARUKA "
+"Komeza>> Umukoro Ifashayinjira"
+
+#: mate-session/gsm-client-editor.c:97 mate-session/startup-programs.c:314
+#, fuzzy
+msgid "_Order:"
+msgstr "Itondekanya"
+
+#: mate-session/gsm-client-editor.c:99
+#, fuzzy
+msgid "The order in which applications are started in the session."
+msgstr "Itondekanya in Porogaramu in Umukoro"
+
+#: mate-session/gsm-client-editor.c:106
+#, fuzzy
+msgid "What happens to the application when it exits."
+msgstr "Kuri Porogaramu Ryari:"
+
+# sfx2/source\dialog\filedlghelper.src:STR_LB_IMAGE_TEMPLATE.text
+#: mate-session/gsm-client-editor.c:109
+#, fuzzy
+msgid "_Style:"
+msgstr "Imisusire"
+
+#: mate-session/gsm-client-list.c:150
+#: mate-session/session-properties-capplet.c:412
+msgid "Order"
+msgstr "Itondekanya"
+
+# sc/source\ui\src\scfuncs.src:RID_SC_FUNCTION_DESCRIPTIONS2.SC_OPCODE_STYLE.2.text
+#: mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr "Umususire"
+
+#: mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr "Leta"
+
+#: mate-session/gsm-client-list.c:165
+msgid "Program"
+msgstr "Porogaramu"
+
+# sc/source\ui\navipi\navipi.src:RID_SCDLG_NAVIGATOR.STR_NOTACTIVE.text
+#: mate-session/gsm-client-row.c:31
+#, fuzzy
+msgid "Inactive"
+msgstr "kidakora"
+
+#: mate-session/gsm-client-row.c:32
+#, fuzzy
+msgid "Waiting to start or already finished."
+msgstr "Kuri Gutangira Cyangwa Byarangiye"
+
+#: mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr ""
+
+#: mate-session/gsm-client-row.c:35
+#, fuzzy
+msgid "Started but has not yet reported state."
+msgstr "OYA Leta"
+
+#: mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr ""
+
+#: mate-session/gsm-client-row.c:38
+#, fuzzy
+msgid "A normal member of the session."
+msgstr "A Bisanzwe Bya Umukoro"
+
+#: mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr "Mu kubika"
+
+#: mate-session/gsm-client-row.c:41
+#, fuzzy
+msgid "Saving session details."
+msgstr "Umukoro Birambuye"
+
+# filter/source\xsltdialog\xmlfilterdialogstrings.src:STR_UNKNOWN_APPLICATION.text
+#: mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr "Kitazwi"
+
+#: mate-session/gsm-client-row.c:44
+#, fuzzy
+msgid "State not reported within timeout."
+msgstr "OYA muri Igihe cyarenze:"
+
+# officecfg/registry\schema\org\openoffice\Office\Common.xcs:....Save.Graphic.Format..0.text
+#: mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr "Bisanzwe"
+
+#: mate-session/gsm-client-row.c:51
+#, fuzzy
+msgid "Unaffected by logouts but can die."
+msgstr "ku"
+
+# #-#-#-#-# setup2.pot (Mate 2.12) #-#-#-#-#
+# setup2/source\ui\app.src:STR_RESTART_BTN_YES.text
+# #-#-#-#-# setup2.pot (Mate 2.12) #-#-#-#-#
+# setup2/source\ui\pages\phavefun.src:RESID_PAGE_PAGEHAVEFUN.STR_RESTART_BTN_YES.text
+# #-#-#-#-# setup2.pot (Mate 2.12) #-#-#-#-#
+# setup2/source\ui\pages\vefun.src:RESID_PAGE_PAGEHAVEFUN.STR_RESTART_BTN_YES.text
+#: mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr "Ongera utangire"
+
+#: mate-session/gsm-client-row.c:54
+#, fuzzy
+msgid "Never allowed to die."
+msgstr "Kuri"
+
+#: mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr ""
+
+#: mate-session/gsm-client-row.c:57
+#, fuzzy
+msgid "Discarded on logout and can die."
+msgstr "ku Gufunga Na"
+
+#: mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr "Amagenamiterere"
+
+#: mate-session/gsm-client-row.c:60
+#, fuzzy
+msgid "Always started on every login."
+msgstr "ku buri Ifashayinjira"
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: mate-session/gsm-gsd.c:41
+#, fuzzy
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"Ikosa Nka Insanganyamatsiko Amajwi Cyangwa Mbuganyuma Amagenamiterere "
+"Gicurasi OYA Akazi"
+
+#: mate-session/gsm-gsd.c:53
+#, fuzzy
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr "Iheruka Ikosa Ubutumwa"
+
+#: mate-session/gsm-gsd.c:58
+#, fuzzy
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr "Kuri Ongera utangire Komeza>> Igihe LOG in"
+
+#: mate-session/gsm-gsd.c:115
+#, fuzzy
+msgid "There was an unknown activation error."
+msgstr "Kitazwi Ikosa"
+
+#: mate-session/gsm-gsd.c:157
+#, fuzzy
+msgid "The Settings Daemon restarted too many times."
+msgstr "Times"
+
+#: mate-session/logout.c:355
+#, fuzzy
+msgid "Are you sure you want to log out?"
+msgstr "Kuri LOG Inyuma"
+
+#: mate-session/logout.c:372
+#, fuzzy
+msgid "_Save current setup"
+msgstr "Kubika KIGEZWEHO Imikorere"
+
+# sc/source\ui\miscdlgs\acredlin.src:RID_POPUP_CHANGES.SC_SUB_SORT.SC_SORT_ACTION.text
+#: mate-session/logout.c:393
+msgid "Action"
+msgstr "Igikorwa"
+
+#: mate-session/logout.c:410
+#, fuzzy
+msgid "_Log out"
+msgstr "Kuvamo"
+
+#: mate-session/logout.c:416
+#, fuzzy
+msgid "Sh_ut down"
+msgstr "Hasi"
+
+#: mate-session/logout.c:423
+#, fuzzy
+msgid "_Restart the computer"
+msgstr "i"
+
+#: mate-session/main.c:81
+#, fuzzy
+msgid "Specify a session name to load"
+msgstr "a Umukoro Izina: Kuri Ibirimo"
+
+#: mate-session/main.c:82
+#, fuzzy
+msgid "Only read saved sessions from the default.session file"
+msgstr "Gusoma Bivuye Mburabuzi Umukoro IDOSIYE"
+
+#: mate-session/main.c:83
+#, fuzzy
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr "Igihe Tegereza kugirango Kuri Kwiyandikisha 0"
+
+#: mate-session/main.c:84
+#, fuzzy
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr "Igihe Tegereza kugirango Kuri 0"
+
+#: mate-session/main.c:85
+#, fuzzy
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr "Igihe Tegereza kugirango Kuri 0"
+
+#: mate-session/main.c:265
+#, fuzzy, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"OYA Hejuru Interineti Aderesi kugirango Bivuye Gicurasi Kuri ku Kuri IDOSIYE"
+
+#: mate-session/main.c:272
+#, fuzzy
+msgid "Log in Anyway"
+msgstr "in"
+
+#: mate-session/main.c:273
+#, fuzzy
+msgid "Try Again"
+msgstr "Gerageza nanone"
+
+#: mate-session/manager.c:223
+#, fuzzy
+msgid "Your session has been saved"
+msgstr "Umukoro"
+
+#: mate-session/manager.c:527
+#, fuzzy
+msgid "Wait abandoned due to conflict."
+msgstr "Kuri"
+
+#: mate-session/manager.c:1035
+#, fuzzy, c-format
+msgid "No response to the %s command."
+msgstr "Kuri Komandi:"
+
+#: mate-session/manager.c:1036
+#, fuzzy
+msgid "The program may be slow, stopped or broken."
+msgstr "Porogaramu Gicurasi Buhoro Kyahagariswe Cyangwa"
+
+#: mate-session/manager.c:1037
+#, fuzzy
+msgid "You may wait for it to respond or remove it."
+msgstr "Gicurasi Tegereza kugirango Kuri Cyangwa Gukuraho..."
+
+#: mate-session/manager.c:1760
+#, fuzzy
+msgid "Restart abandoned due to failures."
+msgstr "Kuri"
+
+#: mate-session/manager.c:1956
+#, fuzzy
+msgid "A session shutdown is in progress."
+msgstr "A Umukoro Zimya ni in Aho bigeze"
+
+#: mate-session/save-session.c:46
+#, fuzzy
+msgid "Set the current session"
+msgstr "KIGEZWEHO Umukoro"
+
+#: mate-session/save-session.c:47
+#, fuzzy
+msgid "Kill session"
+msgstr "Umukoro"
+
+#: mate-session/save-session.c:48
+#, fuzzy
+msgid "Use dialog boxes"
+msgstr "Ikiganiro"
+
+#: mate-session/save-session.c:146 mate-session/save-session.c:179
+#, fuzzy
+msgid "Could not connect to the session manager"
+msgstr "OYA Kwihuza Kuri Umukoro Muyobozi"
+
+#: mate-session/session-names.c:143
+#, fuzzy
+msgid "The session name cannot be empty"
+msgstr "Umukoro Izina: ubusa"
+
+#: mate-session/session-names.c:154
+#, fuzzy
+msgid "The session name already exists"
+msgstr "Umukoro Izina:"
+
+#: mate-session/session-names.c:188
+#, fuzzy
+msgid "Add a new session"
+msgstr "a Gishya Umukoro"
+
+#: mate-session/session-names.c:218
+#, fuzzy
+msgid "Edit session name"
+msgstr "Umukoro Izina:"
+
+# #-#-#-#-# basctl.pot (Mate 2.12) #-#-#-#-#
+# basctl/source\basicide\basidesh.src:RID_BASICMENU.MN_EDIT.text
+# #-#-#-#-# basctl.pot (Mate 2.12) #-#-#-#-#
+# basctl/source\basicide\basidesh.src:RID_BASICPLUGINMENU.MN_PLEDIT.text
+# #-#-#-#-# basctl.pot (Mate 2.12) #-#-#-#-#
+# basctl/source\basicide\macrodlg.src:RID_MACROCHOOSER.RID_PB_EDIT.text
+# #-#-#-#-# basctl.pot (Mate 2.12) #-#-#-#-#
+# basctl/source\basicide\moduldlg.src:RID_TP_MODULS.RID_PB_EDIT.text
+# #-#-#-#-# basctl.pot (Mate 2.12) #-#-#-#-#
+# basctl/source\basicide\moduldlg.src:RID_TP_LIBS.RID_PB_EDIT.text
+#: mate-session/session-properties-capplet.c:122
+#, fuzzy
+msgid "_Edit"
+msgstr "Guhindura"
+
+#: mate-session/session-properties-capplet.c:190
+#, fuzzy
+msgid ""
+"Some changes are not saved.\n"
+"Is it still OK to exit?"
+msgstr "Amahinduka OYA Kuri Gusohoka"
+
+#: mate-session/session-properties-capplet.c:240
+#: mate-session/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:273
+#, fuzzy
+msgid "Show splash screen on _login"
+msgstr "Mugaragaza ku Ifashayinjira"
+
+#: mate-session/session-properties-capplet.c:284
+#, fuzzy
+msgid "As_k on logout"
+msgstr "ku Gufunga"
+
+#: mate-session/session-properties-capplet.c:295
+#, fuzzy
+msgid "Automatically save chan_ges to session"
+msgstr "Kubika Amahinduka Kuri Umukoro"
+
+#: mate-session/session-properties-capplet.c:306
+msgid "_Sessions:"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:324
+msgid "Session Name"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:375
+msgid "Session Options"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:384
+msgid "Current Session"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:393
+#, fuzzy
+msgid "Additional startup _programs:"
+msgstr "Porogaramu"
+
+# padmin/source\rtsetup.src:RID_RTS_RTSDIALOG.RID_RTS_RTSDIALOG_TABCONTROL.RID_RTS_COMMANDPAGE.text
+#: mate-session/session-properties-capplet.c:414
+msgid "Command"
+msgstr "Icyo wifuza"
+
+#: mate-session/session-properties-capplet.c:446
+msgid "Startup Programs"
+msgstr ""
+
+#: mate-session/session-properties.c:49
+#, fuzzy
+msgid "Remove the currently selected client from the session."
+msgstr "Byahiswemo Umukiriya Bivuye Umukoro"
+
+#: mate-session/session-properties.c:55
+#, fuzzy
+msgid "Apply changes to the current session"
+msgstr "Amahinduka Kuri KIGEZWEHO Umukoro"
+
+#: mate-session/session-properties.c:61
+#, fuzzy
+msgid "The list of programs in the session."
+msgstr "Urutonde Bya Porogaramu in Umukoro"
+
+#: mate-session/session-properties.c:88
+#, fuzzy
+msgid "Currently running _programs:"
+msgstr "Porogaramu"
+
+#: mate-session/session-properties.c:104
+#, fuzzy
+msgid "Initialize session settings"
+msgstr "Umukoro Amagenamiterere"
+
+#: mate-session/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr ""
+
+#: mate-session/splash-widget.c:43
+msgid "Sawfish Window Manager"
+msgstr ""
+
+#: mate-session/splash-widget.c:44
+msgid "Marco Window Manager"
+msgstr ""
+
+#: mate-session/splash-widget.c:45
+msgid "Window Manager"
+msgstr "Umuyobozi w'idirishya"
+
+#: mate-session/splash-widget.c:46
+msgid "The Panel"
+msgstr ""
+
+#: mate-session/splash-widget.c:47
+msgid "Session Manager Proxy"
+msgstr ""
+
+#: mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr ""
+
+#: mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr ""
+
+#: mate-session/startup-programs.c:292
+msgid "_Startup Command:"
+msgstr ""
+
+#: mate-session/startup-programs.c:298
+msgid "Startup Command"
+msgstr ""
+
+#: mate-session/startup-programs.c:347
+#, fuzzy
+msgid "The startup command cannot be empty"
+msgstr "Komandi: ubusa"
+
+#: mate-session/startup-programs.c:384
+msgid "Add Startup Program"
+msgstr ""
+
+#: mate-session/startup-programs.c:405
+msgid "Edit Startup Program"
+msgstr ""
diff --git a/po/si.po b/po/si.po
new file mode 100644
index 0000000..cbcbd6e
--- /dev/null
+++ b/po/si.po
@@ -0,0 +1,586 @@
+# translation of mate-session.si.po to Sinhala
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Danishka Navin <[email protected]>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.si\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-05-07 03:41+0100\n"
+"PO-Revision-Date: 2007-05-27 20:26+0530\n"
+"Last-Translator: Danishka Navin <[email protected]>\n"
+"Language-Team: Sinhala <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../data/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "TCP සම්බන්දතාවයන්ට ඉඩදෙන්න"
+
+#: ../data/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"ආරක්‍ෂිත හෙතුන් මත _IceTcpTransNoListen() (XFree86 systems) සහිත වෙදිකාවන් "
+"මතදී, TCP දොරවල් මතදි සම්බන්දයන් සඳහා අවදානය නොදක්වයි. මෙම විකල්පය දුරස්ථ "
+"ග්‍රාහකයන්ගෙන්(අනුමත කළ) සම්බන්දතා සඳහා ඉඩලබා දෙනු ඇත. මෙය ක්‍රියාකාරි විම "
+"සඳහා mate-session නැවත ආරම්භ කළ යුතුමවේ. ෙ"
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "සක්‍රිය කලහොත්, mate-session සැසිය අවසන් වීමට පෙර පරිශිලක වෙත මතක් කරනු ඇත. "
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"සක්‍රිය කලහොත් mate-session ස්වයංක්‍රියව සැසිය සුරක්‍ෂිත කරනු ඇත. එසේ නැතිනම් "
+"ඉවත්වීමේ සංවාද කොටුව මඟින් සැසිය සුරකීම සඳහා විකල්පයක් දක්වනු ඇති."
+
+#: ../data/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "ඉවත්විමේ මතක් කිරිම"
+
+#: ../data/mate-session.schemas.in.h:6
+msgid "Preferred Image to use for login splash screen"
+msgstr "පිවිසිමේදි දිගහැරෙන තිරය සඳහා යෙදිමට කැමතිම පිළිඹිබුව"
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "සැසියන් සුරකින්න"
+
+#: ../data/mate-session.schemas.in.h:8
+msgid "Selected option in the log out dialog"
+msgstr "ඉවත්වීමෙ සංවාද කොටුව තුලතේරු විකල්ප"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Show the splash screen"
+msgstr "දිගහැරෙන තිරය පෙන්වන්න"
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Show the splash screen when the session starts up"
+msgstr "සැසිය ඇරබීමෙදි දිගහැරෙන තිරය පෙන්වන්න"
+
+#: ../data/mate-session.schemas.in.h:11
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"මෙය $datadir/pixmaps/ directory මත පදනම් නොවු සාපේක්‍ෂ මාර්‍ග ‍ග අගයකි. උප-බහලුම් "
+"සහ පිළිඹිබුව නම් නිවැරදි අගයන් වේ. මෙම අගය වෙනස් කිරිම මීළග සැසිය සඳහා බලපානු ඇත."
+
+#: ../data/mate-session.schemas.in.h:12
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+"ඉවත් වීමේ සංවාදකොටුවේ තෝරාගත යුත්තෙ මෙම විකල්පයයි, නිවැරදි අගයන් වනුයේ "
+"ඉවත්වි යාම සඳහා \"ඉවත් වන්න\", පද්ධතිය නැවැත්වීම සඳහා \"නැවැත් වීම\"සහ "
+"පද්ධතිය නැවත ආරම්භය සඳහා \"ප්‍රති-ආරම්භය\"."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "ඔබගේ සැසියන් සුසර කරන්න"
+
+#: ../data/session-properties.desktop.in.in.h:2
+#: ../mate-session/session-properties-capplet.c:222
+msgid "Sessions"
+msgstr "සැසියන්"
+
+#: ../mate-session/gsm-at-startup.c:39
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+"මෙම සැසිය සඳහා උපකාරක තාක්ශණ සහාය ඉල්ලා ඇතත් ලගාවිමේ හැකියා ලියාපදිංචි "
+"ස්තානය සොයාගත නොහැකි විය. කරුණාකර AT-SPI ඇසුරුම ස්ථාපනය කර ඇතිදැයි "
+"සැකහැර දැන ගන්න. ඔබගේ සැසිය උපකාරක තාක්‍ෂණ සහාය නොමැතිව ආරම්භවි ඇත."
+
+#: ../mate-session/gsm-client-editor.c:102
+msgid "_Order:"
+msgstr "පිළිවෙළ: (_O)"
+
+#: ../mate-session/gsm-client-editor.c:104
+msgid "The order in which applications are started in the session."
+msgstr "සැසිය තුල යෙදුම් ආරම්භවන පිළිවෙළ."
+
+#: ../mate-session/gsm-client-editor.c:111
+msgid "What happens to the application when it exits."
+msgstr "යෙදුම ඉවත්වීමේදී එයට කුමක් සිදුවේයිද."
+
+#: ../mate-session/gsm-client-editor.c:114
+msgid "_Style:"
+msgstr "රටාව: (_S)"
+
+#: ../mate-session/gsm-client-list.c:153
+msgid "Order"
+msgstr "පිළිවෙල"
+
+#: ../mate-session/gsm-client-list.c:158
+msgid "Style"
+msgstr "විලාශය"
+
+#: ../mate-session/gsm-client-list.c:163
+msgid "State"
+msgstr "පවත්නා තත්වය"
+
+#: ../mate-session/gsm-client-list.c:168
+#: ../mate-session/session-properties-capplet.c:280
+msgid "Program"
+msgstr "ක්‍රමලේඛය"
+
+#: ../mate-session/gsm-client-row.c:33
+msgid "Inactive"
+msgstr "අක්‍රිය"
+
+#: ../mate-session/gsm-client-row.c:34
+msgid "Waiting to start or already finished."
+msgstr "ආරම්භවිමට රැදිසිටී හෝ කාර්‍ය අවසන්කර ඇත."
+
+#: ../mate-session/gsm-client-row.c:36
+msgid "Starting"
+msgstr "ආරම්භවෙමින්"
+
+#: ../mate-session/gsm-client-row.c:37
+msgid "Started but has not yet reported state."
+msgstr "ආරම්භවුවත් තවම ස්වභාවය වාර්තාකර නැත."
+
+#: ../mate-session/gsm-client-row.c:39
+msgid "Running"
+msgstr "ක්‍රියාත්මක වෙමින්"
+
+#: ../mate-session/gsm-client-row.c:40
+msgid "A normal member of the session."
+msgstr "සැසියෙ සාමාන්‍ය සාමාජිකයෙක්."
+
+#: ../mate-session/gsm-client-row.c:42
+msgid "Saving"
+msgstr "සුරකිමින්"
+
+#: ../mate-session/gsm-client-row.c:43
+msgid "Saving session details."
+msgstr "සැසියෙ තොරතුරු සුරකින්න."
+
+#: ../mate-session/gsm-client-row.c:45
+msgid "Unknown"
+msgstr "නොදන්නා"
+
+#: ../mate-session/gsm-client-row.c:46
+msgid "State not reported within timeout."
+msgstr "කාළ සීමාව තුලදි පවත්නා තත්වය වාර්තාකර නැත."
+
+#: ../mate-session/gsm-client-row.c:52
+msgid "Normal"
+msgstr "සාමාන්‍ය"
+
+#: ../mate-session/gsm-client-row.c:53
+msgid "Unaffected by logouts but can die."
+msgstr "ඉවත්ව යාමෙන් බලපැමක් නොවුනි නමුත් අවසන් විය හැක."
+
+#: ../mate-session/gsm-client-row.c:55
+msgid "Restart"
+msgstr "නැවත-අරභමින්"
+
+#: ../mate-session/gsm-client-row.c:56
+msgid "Never allowed to die."
+msgstr "කිසිවිටක අවසන් වීමට අනුමත කරනැත."
+
+#: ../mate-session/gsm-client-row.c:58
+msgid "Trash"
+msgstr "නොවැදගත්"
+
+#: ../mate-session/gsm-client-row.c:59
+msgid "Discarded on logout and can die."
+msgstr "ඉවත්වීමෙදි විනාශකරණලද අතර අවසන් විය හැක."
+
+#: ../mate-session/gsm-client-row.c:61
+msgid "Settings"
+msgstr "සැකසුම්"
+
+#: ../mate-session/gsm-client-row.c:62
+msgid "Always started on every login."
+msgstr "සෑම පිවිසුමකදීම සෑමවිටම ආරම්භ කරන්න."
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: ../mate-session/gsm-gsd.c:45
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+" සැකසුම් විබුද්ධයා ආරම්භ කිරිමේ දෝෂයක් තිබුනී.\n"
+"\n"
+"තේමා, ශබ්ද, හෝ පසුතල සැකසුම් වැනි දෙයක් නිසියාකාරව ක්‍රියාත්මක නොවිය හැක."
+
+#: ../mate-session/gsm-gsd.c:57
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"අවසාන දෝෂ පනිවිඩය වුයේ:\n"
+"\n"
+
+#: ../mate-session/gsm-gsd.c:62
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"ඔබගේ මිළඟ පිවිසුම් වාරයේදි MATE තවමත් සැකසුම් විබුද්ධයා නැවත ආරම්භ කිරිමට උත්සාහ ගනිමින් සිටී ."
+
+#: ../mate-session/gsm-gsd.c:145
+msgid "The Settings Daemon restarted too many times."
+msgstr "සැකසුම් විබුද්ධයා බොහොවාරයක් නැවත ආරම්භවිය."
+
+#: ../mate-session/gsm-remove-client.c:49
+msgid "List registered clients, then exit"
+msgstr "ලියායාපදිංචසේවා ග්‍රාහකයින් දක්වා, පසුව ඉවත්නන්නි "
+
+#: ../mate-session/gsm-remove-client.c:51
+msgid "PROGRAM..."
+msgstr "ක්‍රමලේඛය..."
+
+#: ../mate-session/gsm-remove-client.c:175
+msgid ""
+"You must specify at least one program to remove. You can list the programs "
+"with --list.\n"
+msgstr ""
+"ඔබ විසින් අනිවාර්යෙන්ම අවම වශයෙන් එක් යෙදුමක් හෝ ඉවත් කිරීම සඳහා දැක්විය යුතුවෙයි. "
+"ඔබට --list මඟින් යෙදුම් ලැයිස්තුව දැකගත හැක.\n"
+
+#: ../mate-session/gsm-remove-client.c:182
+msgid "Error: could not connect to the session manager\n"
+msgstr "දෝෂය:සැසි-කළමණාකරු සමඟ සම්බන්ධ විය නොහැක\n"
+
+#: ../mate-session/gsm-remove-client.c:196
+msgid "Currently registered clients:\n"
+msgstr "දැනට ලියාපදිංචි වූ සේව්‍යයන්:\n"
+
+#: ../mate-session/gsm-remove-client.c:206
+#, c-format
+msgid "Couldn't find program %s in session\n"
+msgstr "සැසිය තුළ වූු %s ක්‍රමලේඛය සොයාගත නොහැක\n"
+
+#. At least try to tell the user something.
+#: ../mate-session/ice.c:357
+#, c-format
+msgid ""
+"The MATE session manager cannot start properly. Please report this as a "
+"MATE bug. Please include this ICE failure message in the bug report: '%"
+"s'. Meanwhile you could try logging in using the failsafe session."
+msgstr ""
+"MATE සැසි කළමණාකරු නිසියාකාරව ඇරඹිය නොහැක. කරුණාකර මෙය MATE "
+"දෝෂයක් ලෙස වාර්තා කරන්න. දෝෂස වාර්තාව තුළ ICE අසාර්ථක පණිවිඩය ඇතුලත් "
+"කරන්න: '%s''. එමෙන්ම ඔබ ආරක්‍ෂිත සැසියකින් පිවිසීමට උත්සාහ කරන්න."
+
+#: ../mate-session/ice.c:512
+#, c-format
+msgid ""
+"The MATE session manager was unable to lock the file '%s'. Please report "
+"this as a MATE bug. Sometimes this error may occur if the file's directory "
+"is unwritable, you could try logging in via the failsafe session and "
+"ensuring that it is."
+msgstr ""
+"MATE සැසි කළමණාකරුට මෙම ගොනුව: '%s' අගුලුලෑමට නොහැකි විය. කරුණාකර "
+"මෙය MATE දෝෂයක් ලෙස වාර්තා කරන්න. සමහරවිට ගොනු බහාලුමට ලිවිමට නොහැකි වුවිට "
+"සිදුවේ, ඔබ ආරක්‍ෂිත සැසියකින් පිවිසී එය තහවුරු කරගන්න."
+
+#: ../mate-session/ice.c:539
+#, c-format
+msgid ""
+"The MATE session manager was unable to read the file: '%s'. If this file "
+"exists it must be readable by you for MATE to work properly. Try logging "
+"in with the failsafe session and removing this file."
+msgstr ""
+"MATE සැසි කළමණාකරුට මෙම ගොනුව: '%s' කියවීමට නොහැකි විය. MATE "
+"නිසියාකාරව ක්‍රියාත්මක විමට මෙම ගොනුව පවතී නම් එය අනිවාර්යෙන්ම ඔබට කියවිය "
+"හැකි වියයුතු වේ. ආරක්‍ෂිත සැසියකින් පිවිසී මෙම ගොනුව ඉවත් කිරිමට උත්සාහ කරන්න."
+
+#: ../mate-session/ice.c:584
+#, c-format
+msgid ""
+"Could not write to file '%s'. This file must be writable in order for MATE "
+"to function properly. Try logging in with the failsafe session and removing "
+"this file. Also make sure that the file's directory is writable."
+msgstr ""
+"'%s' ගොනුවට ලිවීමට නොහැක. MATE නිසියාකාරව ක්‍රියාත්මක විමට අනිවාර්යෙන්ම "
+"මෙම ගොනුව ලිවිය හැකි ගොනුවක් විය යුතුය. ආරක්‍ෂිත සැසියකින් පිවිසී මෙම ගොනුව "
+"ඉවත් කිරීමට උත්සාහ කරන්න. ගොනුව අඩංගු බහාලුම ලිවීමට හැකි බහාලුමක් දැයි බලන්න."
+
+#: ../mate-session/logout.c:406
+msgid "Are you sure you want to log out?"
+msgstr "ඔබට විශ්වාසද? ඔබට ඉවත් විමට අවශ්‍යමද?"
+
+#: ../mate-session/logout.c:423
+msgid "_Save current setup"
+msgstr "දැනට ඇති සැකසුම සුරකින්න (_S)"
+
+#: ../mate-session/logout.c:446
+msgid "Action"
+msgstr "ක්‍රියාව"
+
+#: ../mate-session/logout.c:463
+msgid "_Log out"
+msgstr "ඉවත් විම (_L)"
+
+#: ../mate-session/logout.c:470
+msgid "Sh_ut down"
+msgstr "නැවැත්වීම (_u)"
+
+#: ../mate-session/logout.c:478
+msgid "_Restart the computer"
+msgstr "පරිගණකය නැවත අරබන්න (_R)"
+
+#: ../mate-session/main.c:85
+msgid "Specify a session name to load"
+msgstr "පූරණය සඳහා සැසියේ නම දක්වන්න"
+
+#: ../mate-session/main.c:85 ../mate-session/save-session.c:49
+msgid "NAME"
+msgstr "නම"
+
+#: ../mate-session/main.c:86
+msgid "Only read saved sessions from the default.session file"
+msgstr "සාමාන්‍ය ගොනුවෙන්, සුරකින ලඳ සැසියන් පමණක් කියවන්න "
+
+#: ../mate-session/main.c:87
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr "සේවා ග්‍රාහකයාට ලියාපදීංචි වීම සඳහා මිලි තත්පර කාලයක් රැදිසිටියා (0=සදාම)"
+
+#: ../mate-session/main.c:87 ../mate-session/main.c:88
+#: ../mate-session/main.c:89
+msgid "DELAY"
+msgstr "ප්‍රමාදය"
+
+#: ../mate-session/main.c:88
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr "ද්‍යසේවා ග්‍රාහකයාට ප්‍රථිචාර දැක්වීම සඳහා මිලි තත්පර කාලයක් රැදිසිටියා (0=සදාම)"
+
+#: ../mate-session/main.c:89
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr "සේවා ග්‍රාහකයාට අවසන් වීමට සඳහා මිලි තත්පර කාළයක් රැදිසිටියා (0=සදාම)"
+
+#: ../mate-session/main.c:264
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"%s සඳහා වු අන්තර්ජාල ලිපිනය සෝදිසි කර බැලිය නොහැක.\n"
+"මෙය MATE නිසියාකාරව මෙහෙයවිම වළකයි.\n"
+"/etc/hosts ගොනුව තුලට %s ඇතුලත් කිරීම මඟින් \n"
+"මෙය වළක්වා ගතහැකි වනු ඇත."
+
+#: ../mate-session/main.c:271
+msgid "Log in Anyway"
+msgstr "කෙසේ හෝ පිවිසෙන්න"
+
+#: ../mate-session/main.c:272
+msgid "Try Again"
+msgstr "නැවත උත්සාහ කරන්න"
+
+#: ../mate-session/main.c:396
+msgid "- Manage the MATE session"
+msgstr "- MATE සැසිය කලමණාකරනය කරයි"
+
+#: ../mate-session/manager.c:514
+msgid "Wait abandoned due to conflict."
+msgstr "අවුල් සහගත වීම නිසා රැදීසිටීම අත්හරින ලදී."
+
+#: ../mate-session/manager.c:1022
+#, c-format
+msgid "No response to the %s command."
+msgstr "%s විධානයට ප්‍රතිචාරයක් නොමැත."
+
+#: ../mate-session/manager.c:1023
+msgid "The program may be slow, stopped or broken."
+msgstr "ක්‍රමලේඛය සමහරවිට මන්දගාමි, නැවතුණු හො විනාශ වී තිබිමට පුලුවනි."
+
+#: ../mate-session/manager.c:1024
+msgid "You may wait for it to respond or remove it."
+msgstr "එයට ප්‍රතිචාර දැක්විමට හෝ එය ඉවත් කිරිමට ඔබ රැදිසිටිය යුතුයි."
+
+#: ../mate-session/manager.c:1750
+msgid "Restart abandoned due to failures."
+msgstr "අසාර්ථක වීම නිසා නැවත ආරම්භ කිරීම අත්හරින ලදී."
+
+#: ../mate-session/manager.c:1946
+msgid "A session shutdown is in progress."
+msgstr "සැසිය නැවැත් විම ක්‍රියාත්මක වෙමින් පවතී."
+
+#: ../mate-session/save-session.c:49
+msgid "Set the current session name"
+msgstr "අද්‍යතන සැසියෙ නම සකසන්න"
+
+#: ../mate-session/save-session.c:50
+msgid "Kill session"
+msgstr "සැසිය නසන්න"
+
+#: ../mate-session/save-session.c:51
+msgid "Use dialog boxes for errors"
+msgstr "දෝෂ සඳහා සංවාද කොටුව භාවිතා කරන්න"
+
+#: ../mate-session/save-session.c:52
+msgid "Do not require confirmation"
+msgstr "ස්ථිර කිරිමක් අවශ්‍ය නොවේ"
+
+#: ../mate-session/save-session.c:150 ../mate-session/save-session.c:187
+msgid "Could not connect to the session manager"
+msgstr "සැසි-කළමණාකරු සමඟ සම්බන්දවිය නොහැක"
+
+#: ../mate-session/save-session.c:173
+msgid "- Save the current session"
+msgstr "- අද්‍යතන සැසිය සුරකින්න"
+
+#: ../mate-session/session-properties-capplet.c:153
+msgid "Save changes to the current session before closing?"
+msgstr "වසාදැමීමට ප්‍රථම අද්‍යතන සැසියෙ වෙනස්කම් සුරකිය යුතුද?"
+
+#: ../mate-session/session-properties-capplet.c:155
+msgid "If you don't save, changes will be discarded."
+msgstr "ඔබ සුරක්‍ෂිත නොකළ හොත්, වෙනස් කිරිම් වැනසෙනු ඇත."
+
+#: ../mate-session/session-properties-capplet.c:158
+msgid "_Close without Saving"
+msgstr "සුරකීමකින් තොරව වසාදමන්න (_C)"
+
+#: ../mate-session/session-properties-capplet.c:248
+msgid "Additional startup _programs:"
+msgstr "අමතර ආරම්භක ක්‍රමලේඛ: (_p)"
+
+#: ../mate-session/session-properties-capplet.c:272
+msgid "Enabled"
+msgstr "සක්‍රීය කළා"
+
+#: ../mate-session/session-properties-capplet.c:315
+msgid "Startup Programs"
+msgstr "ආරම්භක ක්‍රමලේඛ"
+
+#: ../mate-session/session-properties-capplet.c:321
+msgid "Current Session"
+msgstr "අද්‍යතන සැසිය"
+
+#: ../mate-session/session-properties-capplet.c:334
+msgid "Automatically save chan_ges to session"
+msgstr "සැසිය සඳහා වූ වෙනස් කිරිම් ස්වයංක්‍රීයව සුරකින්න (_g)"
+
+#: ../mate-session/session-properties-capplet.c:349
+msgid "Save the current session"
+msgstr "අද්‍යතන සැසිය සුරකින්න"
+
+#: ../mate-session/session-properties-capplet.c:357
+msgid "Session Options"
+msgstr "සැසිය සඳහා විකල්ප"
+
+#: ../mate-session/session-properties-capplet.c:453
+msgid "Your session has been saved."
+msgstr "ඔබගේ සැසිය සුරක්‍ෂිත විය."
+
+#: ../mate-session/session-properties-capplet.c:496
+msgid "could not connect to the session manager\n"
+msgstr "සැසි-කළමණාකරු සමඟ සම්බන්ධවිය නොහැක\n"
+
+#: ../mate-session/session-properties-capplet.c:502
+msgid "session manager does not support MATE extensions\n"
+msgstr "MATE ව්‍යාප්ති සඳහා සැසි කළමණාකරු සහාය නොදක්වයි\n"
+
+#: ../mate-session/session-properties.c:51
+msgid "Remove the currently selected client from the session."
+msgstr "දැනට තෝරාගෙන ඇති සේවාග්‍රාහකයා සැසියෙන් ඉවත් කරන්න."
+
+#: ../mate-session/session-properties.c:57
+msgid "Apply changes to the current session"
+msgstr "අද්‍යතන සැසිය සඳහා වූ වෙනස් කිරීම් යොදන්න"
+
+#: ../mate-session/session-properties.c:63
+msgid "The list of programs in the session."
+msgstr "සැසිය තුළ වූ ක්‍රමලේඛ ලැයිස්තුව."
+
+#: ../mate-session/session-properties.c:90
+msgid "Currently running _programs:"
+msgstr "දැනට ක්‍රියාත්මක වන ක්‍රමලේඛ:(_p)"
+
+#: ../mate-session/splash-widget.c:44
+msgid "Sawfish Window Manager"
+msgstr "Sawfish - කවුළු කළමණාකරු"
+
+#: ../mate-session/splash-widget.c:45
+msgid "Marco Window Manager"
+msgstr "Marco - කවුළු කළමණාකරු"
+
+#: ../mate-session/splash-widget.c:46
+msgid "Window Manager"
+msgstr "කවුළු කළමණාකරු"
+
+#: ../mate-session/splash-widget.c:47
+msgid "The Panel"
+msgstr "පුවරුව"
+
+#: ../mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "Caja"
+
+#: ../mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr "තිරමුහුණත් සැකසුම්"
+
+#: ../mate-session/startup-programs.c:560
+msgid "_Name:"
+msgstr "නම: (_N)"
+
+#: ../mate-session/startup-programs.c:578
+msgid "_Command:"
+msgstr "විධානය: (_C)"
+
+#: ../mate-session/startup-programs.c:584
+msgid "Startup Command"
+msgstr "ආරම්භක විධානය "
+
+#: ../mate-session/startup-programs.c:610
+msgid "The name of the startup program cannot be empty"
+msgstr "ආරම්භක යෙදුමේ නම හිස් විය නොහැක"
+
+#: ../mate-session/startup-programs.c:612
+msgid "The startup command cannot be empty"
+msgstr "ආරම්භක විධානය හිස් විය නොහැක"
+
+#: ../mate-session/startup-programs.c:618
+msgid "The startup command is not valid"
+msgstr "ආරම්භක විධානය සාවද්‍ය වේ"
+
+#: ../mate-session/startup-programs.c:670
+msgid "New Startup Program"
+msgstr "නව ආරම්භක ක්‍රමලේඛය"
+
+#: ../mate-session/startup-programs.c:714
+msgid "Edit Startup Program"
+msgstr "ආරම්භක ක්‍රමලේඛය වෙනස් කරන්න"
+
diff --git a/po/sk.po b/po/sk.po
new file mode 100644
index 0000000..5663dfc
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,911 @@
+# Slovak translation for mate-session.
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# This file is distributed under the same license as the mate-session package.
+# Stanislav Višňovský <[email protected]>, 2002, 2003.
+# Stanislav Visnovsky <[email protected]>, 2003.
+# Peter Tuharsky <[email protected]>, 2007.
+# Marcel Telka <[email protected]>, 2005, 2006, 2008.
+# Pavol Šimo <[email protected]>, 2009, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2010-07-24 18:21+0000\n"
+"PO-Revision-Date: 2010-08-18 22:22+0200\n"
+"Last-Translator: Pavol Šimo <[email protected]>\n"
+"Language-Team: Slovak <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
+
+# titulok okna
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Vybrať príkaz"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Pridanie programu spúšťaného pri štarte"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Úprava programu spúšťaného pri štarte"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Príkaz na spustenie pri štarte nemôže byť prázdny"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Príkaz na spustenie pri štarte je neplatný"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Povolené"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Ikona"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Program"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Nastavenia aplikácií spúšťaných pri štarte"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Bez názvu"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Bez popisu"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Verzia tejto aplikácie"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Nepodarilo sa zobraziť dokument pomocníka"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Táto relácia vás prihlási do MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Predvolená relácia"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Správca súborov"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Ak je povolené, mate-session bude pýtať potvrdenie pred ukončením relácie."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr ""
+"Ak je povolené, mate-session bude ukladať reláciu automaticky."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Zoznam aplikácií, ktoré sú súčasťou predvolenej relácie."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Zoznam súčastí, ktoré sú nutnou časťou relácie. (Každý prvok pomenúva kľúč "
+"pod \"/desktop/mate/session/required-components\"). Nástroj Nastavenia "
+"aplikácií spúšťaných pri štarte obyčajne neumožní používateľom odstrániť "
+"vyžadovanú súčasť z relácie. Ak boli nutné súčasti z relácie odobrané, "
+"správca relácií ich počas prihlasovania automaticky pridá späť do relácie."
+
+# názov kľúča v nastaveniach (MateConf), ktorým sa ovláda [ne]zobrazovanie potvrdzovacieho dialógového okna pri odhlasovaní.
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Pýtať sa pri odhlasovaní"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Vyžadované súčasti relácie"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Uložiť relácie"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Správca súborov poskytuje ikony na ploche a umožňuje vám pracovať s "
+"uloženými súbormi."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "Počet minút bez aktivity, po ktorých sa považuje relácia za nečinnú."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Panel poskytuje pruh na vrchu alebo na spodku obrazovky obsahujúci ponuky, "
+"zoznam okien, stavové ikony, hodiny, atď."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Správca okien je program, ktorý vykresľuje titulok a rám okolo okien a "
+"umožňuje vám hýbať oknami a meniť ich veľkosť."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Čas, odkedy sa považuje relácia za nečinnú"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Správca okien"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Niektoré programy stále bežia:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"Čaká sa na ukončenie programu. Prerušenie programu môže spôsobiť stratu "
+"vašej práce."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Vyberte si aplikácie, ktoré sa majú spustiť, keď sa prihlásite"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Aplikácie spúšťané pri štarte"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Iné _programy spúšťané pri štarte:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "Prehliadať..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Príkaz:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "P_oznámka:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Možnosti"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Programy spúšťané pri štarte"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "Pri odhlasovaní si _automaticky zapamätať bežiace aplikácie"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Názov:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Zapamätať si teraz bežiacu aplikáciu"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Súbor nie je platným .desktop súborom"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Nerozpoznaná verzia '%s' súboru pracovnej plochy"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Spúšťa sa %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Aplikácia neprijíma dokumenty v príkazovom riadku"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Nerozpoznaná voľba spustenia: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"Položke pracovnej plochy typu Odkaz nie je možné odovzdať URI dokumentov"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Nespustiteľná položka"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Zakázať pripojenie k správcovi relácií"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Zadajte súbor obsahujúci uloženú konfiguráciu"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "SÚBOR"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Zadajte identifikátor správy relácie"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "IDENTIFIKÁTOR"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Možnosti správy relácie:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Zobraziť možnosti správy relácie"
+
+# je to problém so serverom, ktorý má na starosti nastavenia (mateconf server)
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Na serveri nastavení sa vyskytla chyba.\n"
+"(%s skončilo so stavom %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Ikona '%s' nenájdená"
+
+# ide o program, preto mužský rod
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Neznámy"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Program stále beží:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Niektoré programy stále bežia:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Čaká sa na ukončenie programov. Prerušenie týchto programov môže spôsobiť "
+"stratu vašej práce."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Prepnúť používateľa aj tak"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Odhlásiť aj tak"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Uspať aj tak"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Hibernovať aj tak"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "Vypnúť aj tak"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Reštartovať aj tak"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Uzamknúť obrazovku"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Zrušiť"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Budete automaticky odhlásený o %d sekúnd."
+msgstr[1] "Budete automaticky odhlásený o %d sekundu."
+msgstr[2] "Budete automaticky odhlásený o %d sekundy."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Tento systém sa automaticky vypne o %d sekúnd."
+msgstr[1] "Tento systém sa automaticky vypne o %d sekundu."
+msgstr[2] "Tento systém sa automaticky vypne o %d sekundy."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Momentálne ste prihlásený ako \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Odhlásiť sa teraz zo systému?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "_Prepnúť používateľa"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Odhlásiť sa"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Vypnúť teraz počítač?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "_Uspať"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Hibernovať"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "_Reštartovať"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "_Vypnúť"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Neodpovedá"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking log out."
+msgstr "Tento program blokuje odhlásenie."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "Nové pripojenie klienta odmietnuté, pretože sa relácia práve vypína\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Nepodarilo sa vytvoriť načúvajúci ICE soket: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Nie je možné spustiť reláciu prihlasovania (a nie je možné pripojiť sa k X "
+"serveru)"
+
+# https://bugzilla.gnome.org/show_bug.cgi?id=612891
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Prekryť štandardné adresáre automatického spúšťania"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to lookup default session"
+msgstr "Kľúč systému MateConf použitý na vyhľadanie predvolenej relácie"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Povoliť ladiaci kód"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Nenačítať aplikácie špecifikované používateľom"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - správca relácie MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Odhlásiť sa"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Odhlásiť sa, ignorujúc akékoľvek potlačenia"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Zobraziť dialógové okno odhlásenia"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Zobraziť dialógové okno vypnutia"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Na chyby použiť dialógové okná"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Nastaviť názov tejto relácie"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NÁZOV"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Vynútiť ukončenie relácie"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Nevyžaduje potvrdenie"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Nepodarilo sa pripojiť k správcovi relácií"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Program volaný s konfliktnými voľbami"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "Asistent Démona nastavení MATE"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "Ak je povolené, mate-session bude reláciu ukladať automaticky. Inak bude "
+#~ "dialóg pre odhlásenie obsahovať voľbu pre uloženie relácie."
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "Uprednostňovaný obrázok, ktorý sa použije pre uvítaciu obrazovku"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "Zobraziť uvítaciu obrazovku"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "Zobraziť uvítaciu obrazovku pri spustení relácie"
+
+# https://bugzilla.gnome.org/show_bug.cgi?id=612891
+# nemyslím si, že by mal byť preklad zmenený. Asi až po zamietnutí v bugzille.
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+#~ msgstr ""
+#~ "Toto je hodnota relatívnej cesty, založená na priečinku $datadir/"
+#~ "pixmaps/. Podpriečinky a názvy obrázkov sú platné hodnoty. Zmena tejto "
+#~ "hodnoty ovplyvní prihlásenie do nasledujúcej relácie."
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- uvítacia obrazovka MATE"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "Uvítacia obrazovka MATE"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "Názov programu pri štarte nemôže byť prázdny"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "Pre túto reláciu bola vyžiadaná podpora asistenčnej technológie, ale "
+#~ "register prístupnosti sa nenašiel. Prosím uistite sa, či je nainštalovaný "
+#~ "balík AT-SPI. Vaša relácia bola spustená bez podpory asistenčnej "
+#~ "technológie."
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "Obaľovač registra AT SPI"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "Predvoľby relácií"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Vybraná voľba v dialógovom okne odhlásenia"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "Toto je voľba, ktorá bude vybraná v dialógovom okne odhlásenia. Platné "
+#~ "hodnoty sú \"logout\" pre odhlásenie, \"shutdown\" pre zastavenie systému "
+#~ "a \"restart\" pre reštartovanie systému."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "Nastavenie vašich relácií"
+
+#~ msgid "Sessions"
+#~ msgstr "Relácie"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "Povoliť spojenia TCP"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "Z bezpečnostných dôvodov sa na platformách, ktoré majú "
+#~ "_IceTcpTransNoListen() (systémy XFree86), nepoužíva počúvanie na "
+#~ "spojeniach TCP. Táto voľba umožňuje spojenia z (overených) vzdialených "
+#~ "hostiteľov. Aby sa toto nastavenie prejavilo, musíte mate-session "
+#~ "reštartovať."
+
+#~ msgid "_Order:"
+#~ msgstr "_Poradie:"
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "Čo sa stane, ak aplikácia skončí."
+
+#~ msgid "_Style:"
+#~ msgstr "Š_týl:"
+
+#~ msgid "Inactive"
+#~ msgstr "Neaktívny"
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "Čaká na štart, alebo už skončil."
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "Spustený, ale ešte nehlásil stav."
+
+#~ msgid "Running"
+#~ msgstr "Beží"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "Normálny člen relácie."
+
+#~ msgid "Saving"
+#~ msgstr "Ukladá sa"
+
+#, fuzzy
+#~ msgid "Saving session details."
+#~ msgstr "Uložiť relácie"
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "Stav nebol nahlásený v časovom limite."
+
+#~ msgid "Normal"
+#~ msgstr "Normálny"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "Odhlásenie ho neovplyvňuje, ale môže skončiť."
+
+#~ msgid "Never allowed to die."
+#~ msgstr "Nesmie skončiť."
+
+#~ msgid "Trash"
+#~ msgstr "Kôš"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "Pri odhlásení bude zahodený a môže skončiť."
+
+#, fuzzy
+#~ msgid "Settings"
+#~ msgstr "Spúšťa sa %s"
+
+#~ msgid "Always started on every login."
+#~ msgstr "Vždy spustený pri každom prihlásení."
+
+#~ msgid "Order"
+#~ msgstr "Poradie"
+
+#~ msgid "Style"
+#~ msgstr "Štýl"
+
+#~ msgid "State"
+#~ msgstr "Stav"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "Pri spúšťaní démona nastavení MATE nastala chyba.\n"
+#~ "\n"
+#~ "Niektoré veci, ako sú témy, zvuky alebo nastavenie pozadia, nemusia "
+#~ "správne fungovať."
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Posledná chybová správa bola:\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "MATE sa aj tak pokúsi reštartovať daemona nastavenia pri budúcom "
+#~ "prihlásení."
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "Démon nastavené sa príliš často reštartoval."
+
+#~ msgid "List registered clients, then exit"
+#~ msgstr "Vypísať registrovaných klientov a skončiť"
+
+#~ msgid "PROGRAM..."
+#~ msgstr "PROGRAM..."
+
+#~ msgid ""
+#~ "You must specify at least one program to remove. You can list the "
+#~ "programs with --list.\n"
+#~ msgstr ""
+#~ "Musíte určiť aspoň jeden program pre odstránenie. Zoznam programov "
+#~ "získate pomocou --list.\n"
+
+#, fuzzy
+#~ msgid "Error: could not connect to the session manager\n"
+#~ msgstr "Nepodarilo sa pripojiť na správcu relácií"
+
+#~ msgid "Currently registered clients:\n"
+#~ msgstr "V súčasnosti zaregistrovaní klienti:\n"
+
+#~ msgid "Couldn't find program %s in session\n"
+#~ msgstr "Nepodarilo sa nájsť program %s v relácii\n"
+
+#~ msgid ""
+#~ "The MATE session manager cannot start properly. Please report this as a "
+#~ "MATE bug. Please include this ICE failure message in the bug report: '%"
+#~ "s'. Meanwhile you could try logging in using the failsafe session."
+#~ msgstr ""
+#~ "Správca relácií MATE sa nemohol správne spustiť. Prosím, ohláste to ako "
+#~ "chybu MATE. Prosím, zahrňte do hlásenia o chybe aj túto ICE správu o "
+#~ "zlyhaní: '%s'. Zatiaľ sa môžete skúsiť prihlásiť pomocou núdzovej relácie."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to lock the file '%s'. Please "
+#~ "report this as a MATE bug. Sometimes this error may occur if the file's "
+#~ "directory is unwritable, you could try logging in via the failsafe "
+#~ "session and ensuring that it is."
+#~ msgstr ""
+#~ "Správca relácií MATE nemohol odomknúť súbor '%s'. Prosím, ohláste to ako "
+#~ "chybu MATE. Niekedy môže táto chyba nastať, keď je priečinok súboru "
+#~ "nezapisovateľný; môžete skúsiť prihlásenie pomocou núdzovej relácie a "
+#~ "uistiť sa, či je naozaj zapisovateľný."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to read the file: '%s'. If this "
+#~ "file exists it must be readable by you for MATE to work properly. Try "
+#~ "logging in with the failsafe session and removing this file."
+#~ msgstr ""
+#~ "Správca relácií MATE nemohol čítať súbor '%s'. Ak tento súbor existuje, "
+#~ "musí byť pre vás čitateľný, ináč MATE nefunguje správne. Skúste sa "
+#~ "prihlásiť pomocou núdzovej relácie a odstrániť tento súbor."
+
+#~ msgid ""
+#~ "Could not write to file '%s'. This file must be writable in order for "
+#~ "MATE to function properly. Try logging in with the failsafe session and "
+#~ "removing this file. Also make sure that the file's directory is writable."
+#~ msgstr ""
+#~ "Nepodarilo sa zapísať do súboru '%s'. Tento súbor musí byť zapisovateľný, "
+#~ "ináč MATE nefunguje správne. Skúste sa prihlásiť do núdzovej relácie a "
+#~ "odstrániť tento súbor. Tiež si overte, či je priečinok tohto súboru "
+#~ "zapisovateľný."
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "Naozaj sa chcete odhlásiť?"
+
+#, fuzzy
+#~ msgid "Remember running applications"
+#~ msgstr "_Zapamätať práve bežiace aplikácie"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "_Reštartovať počítač"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "Načítať iba uložené relácie zo súboru default.session"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr ""
+#~ "Čas v milisekundách strávený čakaním na registráciu klientov (0=navždy)"
+
+#~ msgid "DELAY"
+#~ msgstr "ZDRŽANIE"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr "Čas v milisekundách strávený čakaním na reakciu klientov (0=navždy)"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr ""
+#~ "Čas v milisekundách strávený čakaním na ukončenie klientov (0=navždy)"
+
+#~ msgid "This session is running as a privileged user"
+#~ msgstr "Táto relácia beží ako privilegovaný používateľ"
+
+#~ msgid ""
+#~ "Running a session as a privileged user should be avoided for security "
+#~ "reasons. If possible, you should log in as a normal user."
+#~ msgstr ""
+#~ "Spúšťanie relácie pod privilegovaným používateľom nie je žiadúce z "
+#~ "bezpečnostných dôvodov. Ak je to možné, prihláste sa ako bežný používateľ."
+
+#~ msgid "_Continue"
+#~ msgstr "_Pokračovať"
+
+#~ msgid ""
+#~ "The session might encounter issues if the computer clock is not properly "
+#~ "configured. Please consider adjusting it.\n"
+#~ "\n"
+#~ "Current date is <b>%s</b>."
+#~ msgstr ""
+#~ "Relácia môže naraziť na problémy, ak nie sú hodiny počítača správne "
+#~ "nastavené. Prosím nastavte si ich.\n"
+#~ "\n"
+#~ "Aktuálny dátum je <b>%s</b>."
+
+#~ msgid "Failed to launch time configuration tool: %s"
+#~ msgstr "Spustenie nástroja na konfiguráciu času zlyhalo: %s"
+
+#~ msgid "The computer clock appears to be wrong"
+#~ msgstr "Zdá sa, že hodiny počítača sa mýlia"
+
+#~ msgid "_Ignore"
+#~ msgstr "_Ignorovať"
+
+#~ msgid "_Adjust the Clock"
+#~ msgstr "_Nastaviť hodiny"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "Nepodarilo sa nájsť internetovú adresu pre %s.\n"
+#~ "To môže spôsobiť problémy s MATE.\n"
+#~ "Možno by stačilo pridať %s do súboru /etc/hosts."
+
+#~ msgid "Try Again"
+#~ msgstr "Skúsiť znovu"
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "Od čakania sa kvôli konfliktu upustilo."
+
+#~ msgid "No response to the %s command."
+#~ msgstr "Žiadna reakcia na príkaz %s."
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "Program je možno pomalý, zastavený alebo pokazený."
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "Môžete naň počkať alebo ho odstrániť."
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "Znovu spustiť opustené kvôli zlyhaniam."
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "Prebieha ukončenie relácie."
+
+#, fuzzy
+#~ msgid "- Save the current session"
+#~ msgstr "Nastaviť názov tejto relácie"
+
+#, fuzzy
+#~ msgid "Save changes to the current session before closing?"
+#~ msgstr "Nastaviť názov tejto relácie"
+
+#~ msgid "If you don't save, changes will be discarded."
+#~ msgstr "Ak neuložíte, zmeny sa stratia."
+
+#~ msgid "_Close without Saving"
+#~ msgstr "_Zatvoriť bez uloženia"
+
+#, fuzzy
+#~ msgid "Current Session"
+#~ msgstr "Relácie"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "Vaša relácia bola uložená."
+
+#, fuzzy
+#~ msgid "could not connect to the session manager\n"
+#~ msgstr "Nepodarilo sa pripojiť na správcu relácií"
+
+#~ msgid "session manager does not support MATE extensions\n"
+#~ msgstr "správca relácií nepodporuje rozšírenia MATE\n"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "Odstrániť vybraného klienta z relácie."
+
+#, fuzzy
+#~ msgid "Apply changes to the current session"
+#~ msgstr "Nastaviť názov tejto relácie"
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "Zoznam programov v relácii."
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "_Momentálne bežiace programy:"
+
+#, fuzzy
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "Správca okien"
+
+#, fuzzy
+#~ msgid "Marco Window Manager"
+#~ msgstr "Správca okien"
+
+#~ msgid "Caja"
+#~ msgstr "Caja"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "Nastavenia plochy"
+
+#~ msgid "Session management"
+#~ msgstr "Správa relácie"
diff --git a/po/sl.po b/po/sl.po
new file mode 100644
index 0000000..71aeb33
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,540 @@
+# Slovenian translation of mate-session.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the mate-session package.
+#
+# Andraž Tori <[email protected]> 2000.
+# Matej Urbančič <[email protected]>, 2007 - 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-core 1.2.0\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-session&component=general\n"
+"POT-Creation-Date: 2010-09-02 23:19+0000\n"
+"PO-Revision-Date: 2010-09-03 08:29+0100\n"
+"Last-Translator: Matej Urbančič <[email protected]>\n"
+"Language-Team: Slovenian MATE Translation Team <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
+"X-Poedit-Language: Slovenian\n"
+"X-Poedit-Country: SLOVENIA\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Izbor ukaza"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Dodaj začetni program"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Uredi začetni program"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Polje začetnega ukaza mora biti izpolnjeno"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Začetni ukaz ni veljaven"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Omogočeno"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Ikona"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Program"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Možnosti začetnih programov"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Brez imena"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Brez opisa"
+
+#: ../capplet/main.c:37
+#: ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Različica programa"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Ni mogoče prikazati dokumenta pomoči"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Seja vas prijavi v MATE namizje"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Privzeta seja"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Upravljalnik datotek"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "Izbrana možnost omogoča, da bo program seje pred končanjem seje o nameri vprašal uporabnika."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Izbrana možnost omogoča samodejno shranjevanje seje."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Seznam programov, ki so del privzete seje."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid "List of components that are required as part of the session. (Each element names a key under \"/desktop/mate/session/required_components\"). The Startup Applications preferences tool will not normally allow users to remove a required component from the session, and the session manager will automatically add the required components back to the session at login time if they do get removed."
+msgstr "Seznam predmetov, ki morajo biti del seje. (Vsak predmet določa vnos v \"/desktop/mate/session/required-components\".) Program upravljanja seje običajno ne dovoli uporabnikom odstraniti zahtevanih predmetov, upravljalnik seje pa bo pomembne izbrisane predmete samodejno vpisal nazaj na seznam."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Odjavni zaslon"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Pult"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Zahtevani sestavni deli seje"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Shrani seje"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "The file manager provides the desktop icons and allows you to interact with your saved files."
+msgstr "Upravljalnik datotek prikaže ikone namizja, s katerimi lahko upravljate s shranjenimi datotekami."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "The number of minutes of inactivity before the session is considered idle."
+msgstr "Čas nedejavnosti v minutah, preden se seja obravnava kot nedejavna."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "The panel provides the bar at the top or bottom of the screen containing menus, the window list, status icons, the clock, etc."
+msgstr "Pult omogoča vrstico na vrhu ali na dnu zaslona z meniji, seznamom oken, ikonami stanja, uro in drugimi uporabnimi možnostmi."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid "The window manager is the program that draws the title bar and borders around windows, and allows you to move and resize windows."
+msgstr "Upravljalnik oken je program, ki izriše naslovno vrstico in robove okoli oken ter omogoča njihovo premikanje in spreminjanje velikosti."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Čas preden se seja obravnava kot nedejavna."
+
+#: ../data/mate-session.schemas.in.in.h:16
+#: ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Upravljalnik oken"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Nekateri programi so še vedno zagnani:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2
+#: ../mate-session/gsm-inhibit-dialog.c:667
+msgid "Waiting for the program to finish. Interrupting the program may cause you to lose work."
+msgstr "Čakanje na konec izvajanja programov. Prekinitev izvajanja lahko povzroči izgubo vaših podatkov."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Izbor programov za samodejni zagon ob prijavi"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Začetni programi"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Dodatni _začetni programi:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "Prebrskaj ..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Ukaz:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "_Opomba:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Možnosti"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Začetni programi"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Zapomni si zagnane programe ob odjavi"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Ime:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Zapomni si trenutno zagnane programe"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Datoteka ni veljavna .desktop datoteka"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Neznana različica datoteke namizja '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Začenjanje %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Program ne sprejme dokumentov preko ukazne vrstice"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Nepoznana možnost zagona: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Ni mogoče poslati naslova URI dokumenta na vnos 'Vrsta=Povezava' predmeta namizja"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Predmet ni izvedljiv"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Onemogoči povezavo z upravljalnikom seje"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Določitev datoteke s shranjenimi nastavitvami"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "DATOTEKA"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Določi ID upravljanja seje"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Možnosti upravljanja seje:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Pokaži možnosti upravljanja seje"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Prišlo je do napak na nastavitvenem strežniku.\n"
+"(%s izhod s stanjem %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Ikone '%s' ni mogoče najti"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Neznano"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Program je še vedno zagnan:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Nekateri programi so še vedno zagnani:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid "Waiting for programs to finish. Interrupting these programs may cause you to lose work."
+msgstr "Čakanje na konec izvajanja programov. Prekinitev izvajanja lahko povzroči izgubo vaših podatkov."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Vseeno preklopi uporabnika"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "Vseeno odjavi"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Vseeno postavi v mirovanje"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Vseeno hiberniraj"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "Vseeno izklopi računalnik"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Vseeno ponovno zaženi"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Zakleni zaslon"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Prekliči"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Samodejno boste odjavljeni čez %d sekund."
+msgstr[1] "Samodejno boste odjavljeni čez %d sekundo."
+msgstr[2] "Samodejno boste odjavljeni čez %d sekundi."
+msgstr[3] "Samodejno boste odjavljeni čez %d sekunde."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Sistem se bo samodejno izklopil čez %d sekund."
+msgstr[1] "Sistem se bo samodejno izklopil čez %d sekundo."
+msgstr[2] "Sistem se bo samodejno izklopil čez %d sekundi."
+msgstr[3] "Sistem se bo samodejno izklopil čez %d sekunde."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Trenutno ste prijavljeni kot \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Ali se želite odjaviti iz sistema?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "_Preklop uporabnika"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Odjava"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Ali želite izklopiti računalnik?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "V _mirovanje"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Hiberniranje"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "_Ponoven zagon"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "_Izklopi"
+
+#: ../mate-session/gsm-manager.c:1214
+#: ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Ni odziva"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "Program zavira postopek odjave."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid "Refusing new client connection because the session is currently being shut down\n"
+msgstr "Povezave z odjemalci bodo zavrnjene, ker se trenutna seja izklaplja.\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Ni mogoče ustvariti ICE vtiča za poslušanje: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "Ni mogoče začeti prijavne seje (in ni se mogoče povezati s strežnikom X)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Preskoči običajne mape samodejnega zagona"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "MateConf ključ za pogled privzete seje"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Omogoči razhroščevanje kode"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Ne naloži uporabniško določenih programov"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "- upravljalnik seje MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Odjava"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Odjava kljub še vedno dejavnim programom"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Pokaži sporočila med odjavljanjem"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Pokaži sporočila med izklapljanjem"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Uporabi pogovorna okna za prikaz napak"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Nastavi ime trenutne seje"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "IME"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Uniči sejo"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Ne zahtevaj potrditve"
+
+#: ../tools/mate-session-save.c:120
+#: ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Ni se mogoče povezati z upravljalnikom sej"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Program zagnan z nasprotujočimi si možnostmi ukaza"
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "Pozdravna slika, ki naj bo uporabljena v uvodnem zaslonu"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "Pokaži uvodni zaslon"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "Pri zagonu seje prikaži uvodni zaslon"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will affect the next session login."
+#~ msgstr ""
+#~ "To je relativna pot s korenom na mapi $datadir/pixmaps/. Veljavne "
+#~ "vrednosti so podrejene mape in imena slik. Spremenjene vrednosti se bodo "
+#~ "uveljavile ob naslednjem zagonu seje."
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr ""
+#~ "Čakanje na konec izvajanja programa. Prekinitev izvajanja lahko povzroči "
+#~ "izgubo vaših podatkov."
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- pozdravno okno MATE"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "Pozdravno okno MATE"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "Izbrana možnost omogoča, da bo program samodejno shranil sejo. V "
+#~ "nasprotnem primeru bo imelo odjavno pogovorno okno možnost za "
+#~ "shranjevanje."
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "Ozadnji program MATE pomoči nastavitev"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "Polje z imenom programa mora biti izpolnjeno"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "Možnosti seje"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Izbrana možnost v odjavnem pogovornem oknu"
+
+#~ msgid "Sessions"
+#~ msgstr "Seje"
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "Ozadnji program MATE zbirke ključev"
+
+#~ msgid "Session management"
+#~ msgstr "Upravljalnik seje"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "MATE GUI knjižnica + EggSMClient"
+
+#~ msgid "Play logout sound instead of login"
+#~ msgstr "Predvajaj zvok odjave namesto prijave"
+
+#~ msgid "- MATE login/logout sound"
+#~ msgstr "- zvok MATE prijave in odjave"
diff --git a/po/sq.po b/po/sq.po
new file mode 100644
index 0000000..86c2073
--- /dev/null
+++ b/po/sq.po
@@ -0,0 +1,646 @@
+# Përkthimi i mesazheve të mate-session në shqip
+# Copyright (C) 2006 Free Software Foundation, Inc.
+# Deep_Dark <[email protected]>, 2002.
+# Laurent Dhima <[email protected]>, 2003, 2004, 2005, 2006.
+# Elian Myftiu <[email protected]>, 2007
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-03-05 18:51+0100\n"
+"PO-Revision-Date: 2007-02-28 17:13+0100\n"
+"Last-Translator: Laurent Dhima <[email protected]>\n"
+"Language-Team: Albanian <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../data/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "Lejo lidhjet TCP"
+
+#: ../data/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"Për arësye sigurie, në piataformat që kanë _IceTcpTransNoListen() (XFree86 "
+"systems), seanca i mate nuk pret lidhje në portat TCP. Ky opsion lejon "
+"lidhjet nga (të autorizuar) hoste në largësi. Seanca e mate duhet të "
+"riniset për të patur këtë efekt."
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Nëse aktivohet, seanca e mate do të nxjerre përdoruesin në terminal përpara "
+"se të mbarojë një seancë."
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Nëse e aktivuar, seanca e mate do të ruaj seancën automatikisht. Përndryshe "
+"pyetja për daljen përmban një opsion për ruajtjen e seancës"
+
+#: ../data/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "Terminali i daljes"
+
+#: ../data/mate-session.schemas.in.h:6
+msgid "Preferred Image to use for login splash screen"
+msgstr "Figura e preferuar për t'u përdorur tek dritarja e hyrjes"
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "Ruaj seancat"
+
+#: ../data/mate-session.schemas.in.h:8
+msgid "Selected option in the log out dialog"
+msgstr "Mundësia e zgjedhur në dialogun e daljes"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Show the splash screen"
+msgstr "Trego sfondin splash"
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Show the splash screen when the session starts up"
+msgstr "Tregon sfondin splash kur seanca fillon"
+
+#: ../data/mate-session.schemas.in.h:11
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Është një pozicion relativ i directory $datadir/pixmaps/. Nën-directories "
+"dhe emrat e figurave janë vlera të pranueshme. Ndryshimi i kësaj vlere do të "
+"ketë efekt në seancën e ardhshme të hyrjes."
+
+#: ../data/mate-session.schemas.in.h:12
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+"Kjo është mundësia që do të zgjidhet në dialogun e daljes, vlerat e vlefshme "
+"janë \"dil\" për të dalë jashtë, \"fik\" për të ndalur sistemin dhe \"rinis"
+"\" për të rinisur kompjuterin."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Konfiguro seancën tënde"
+
+#: ../data/session-properties.desktop.in.in.h:2
+#: ../mate-session/session-properties-capplet.c:222
+msgid "Sessions"
+msgstr "Seanca"
+
+#: ../mate-session/gsm-at-startup.c:61
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+"Teknologjia mbështetëse u kërkua për këtë seancë, por regjistri i "
+"açesibilitetit nuk u gjet. Të lutem sigurohu që paketa AT-SPI është e "
+"instaluar. Seanca jote u nis pa teknologjinë mbështetëse."
+
+#: ../mate-session/gsm-client-editor.c:97
+msgid "_Order:"
+msgstr "_Renditja:"
+
+#: ../mate-session/gsm-client-editor.c:99
+msgid "The order in which applications are started in the session."
+msgstr "Renditja me të cilën programet do të fillohen në seancë."
+
+#: ../mate-session/gsm-client-editor.c:106
+msgid "What happens to the application when it exits."
+msgstr "Çfarë i ndodh programit kur mbyllet."
+
+#: ../mate-session/gsm-client-editor.c:109
+msgid "_Style:"
+msgstr "_Stili:"
+
+#: ../mate-session/gsm-client-list.c:150
+msgid "Order"
+msgstr "Renditja"
+
+#: ../mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr "Stili"
+
+#: ../mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr "Gjendja"
+
+#: ../mate-session/gsm-client-list.c:165
+#: ../mate-session/session-properties-capplet.c:280
+msgid "Program"
+msgstr "Programi"
+
+#: ../mate-session/gsm-client-row.c:31
+msgid "Inactive"
+msgstr "Jo aktiv"
+
+#: ../mate-session/gsm-client-row.c:32
+msgid "Waiting to start or already finished."
+msgstr "Në pritje për të filluar ose i sapo mbaruar."
+
+#: ../mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr "Duke filluar"
+
+#: ../mate-session/gsm-client-row.c:35
+msgid "Started but has not yet reported state."
+msgstr "I filluar por nuk ka akoma një gjendje raportimi."
+
+#: ../mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr "Në ekzekutim"
+
+#: ../mate-session/gsm-client-row.c:38
+msgid "A normal member of the session."
+msgstr "Një anëtar normal i seancës."
+
+#: ../mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr "Duke ruajtur"
+
+#: ../mate-session/gsm-client-row.c:41
+msgid "Saving session details."
+msgstr "Detajet e ruajtjes së seancës."
+
+#: ../mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr "Nuk njihet"
+
+#: ../mate-session/gsm-client-row.c:44
+msgid "State not reported within timeout."
+msgstr "Gjëndje e pa raportuar në mungesë të timeout (jashtëkohe)."
+
+#: ../mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr "Normal"
+
+#: ../mate-session/gsm-client-row.c:51
+msgid "Unaffected by logouts but can die."
+msgstr "I pandikueshëm nga daljet por mund të mbyllet."
+
+#: ../mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr "Rifillo"
+
+#: ../mate-session/gsm-client-row.c:54
+msgid "Never allowed to die."
+msgstr "Nuk lejohet të vdesë asnjëherë."
+
+#: ../mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr "Koshi"
+
+#: ../mate-session/gsm-client-row.c:57
+msgid "Discarded on logout and can die."
+msgstr "I skartuar gjatë daljes dhe mund të mbyllet."
+
+#: ../mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr "Rregullimet"
+
+#: ../mate-session/gsm-client-row.c:60
+msgid "Always started on every login."
+msgstr "Fillon gjithmonë në çdo login."
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: ../mate-session/gsm-gsd.c:45
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"Ndodhi një gabim duke filluar demonin e rregullimeve të Mate\n"
+"\n"
+"Disa gjëra si temat, zëri, ose sfondi mund të mos punojnë në mënyrë korrekte."
+
+#: ../mate-session/gsm-gsd.c:57
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Mesazhi i fundit i gabimit ishte:\n"
+"\n"
+
+#: ../mate-session/gsm-gsd.c:62
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"Mate do të provojë të rinisë demonin e rregullimeve herën tjetër që ju do "
+"të kryeni log-in."
+
+#: ../mate-session/gsm-gsd.c:145
+msgid "The Settings Daemon restarted too many times."
+msgstr "Demoni i rregullimeve u rinis tepër herë. "
+
+#: ../mate-session/gsm-remove-client.c:46
+msgid "List registered clients, then exit"
+msgstr "Radhit klientët e regjistruar, pastaj dil"
+
+#: ../mate-session/gsm-remove-client.c:48
+msgid "PROGRAM..."
+msgstr "PROGRAM..."
+
+#: ../mate-session/gsm-remove-client.c:172
+msgid ""
+"You must specify at least one program to remove. You can list the programs "
+"with --list.\n"
+msgstr ""
+"Duhet të përcaktosh të paktën një program për të hequr. Mund të radhitësh "
+"programet me --list.\n"
+
+#: ../mate-session/gsm-remove-client.c:179
+msgid "Error: could not connect to the session manager\n"
+msgstr "Gabim: e pamundur lidhja me organizuesin e seancës\n"
+
+#: ../mate-session/gsm-remove-client.c:193
+msgid "Currently registered clients:\n"
+msgstr "Klientët e regjistruar deri më tani:\n"
+
+#: ../mate-session/gsm-remove-client.c:203
+#, c-format
+msgid "Couldn't find program %s in session\n"
+msgstr "E pamundur gjetja e progamit %s në seancë\n"
+
+#. At least try to tell the user something.
+#: ../mate-session/ice.c:355
+#, c-format
+msgid ""
+"The MATE session manager cannot start properly. Please report this as a "
+"MATE bug. Please include this ICE failure message in the bug report: '%"
+"s'. Meanwhile you could try logging in using the failsafe session."
+msgstr ""
+"Organizuesi i seancës MATE nuk mundi të nisë në rregull. Të lutem njoftoje "
+"këtë si një gabim MATE. Të lutem përfshije këtë mesazh gabimi në njoftimin "
+"e gabimit: '%s'. Ndërkohë mund të provosh të futesh duke përdorur seancën "
+"shpëtuese."
+
+#: ../mate-session/ice.c:510
+#, c-format
+msgid ""
+"The MATE session manager was unable to lock the file '%s'. Please report "
+"this as a MATE bug. Sometimes this error may occur if the file's directory "
+"is unwritable, you could try logging in via the failsafe session and "
+"ensuring that it is."
+msgstr ""
+"Organizuesi i seancës MATE nuk mundi të kyçë file '%s'. Të lutem njoftoje "
+"këtë si një gabim MATE. Ndonjëherë ky gabim mund të ndodhë nëse dosja e "
+"file-t është e pashkruajtshme, mund të provosh të hysh me anë të seancës "
+"shpëtuese dhe të sigurohesh për këtë."
+
+#: ../mate-session/ice.c:537
+#, c-format
+msgid ""
+"The MATE session manager was unable to read the file: '%s'. If this file "
+"exists it must be readable by you for MATE to work properly. Try logging "
+"in with the failsafe session and removing this file."
+msgstr ""
+"Organizuesi i seancës MATE nuk mundi të lexojë file '%s'. Nëse ky file "
+"ekziston ai duhet të jetë i lexueshëm nga ti që MATE të punojë siç duhet. "
+"Provo të hysh me seancën shpëtuese dhe të heqësh këtë file."
+
+#: ../mate-session/ice.c:582
+#, c-format
+msgid ""
+"Could not write to file '%s'. This file must be writable in order for MATE "
+"to function properly. Try logging in with the failsafe session and removing "
+"this file. Also make sure that the file's directory is writable."
+msgstr ""
+"Nuk munda të shkruaj në file '%s'. Ky file duhet të jetë i shkruajtshëm që "
+"MATE të punojë siç duhet. Provo të futesh me seancën shpëtuese dhe të "
+"heqësh këtë file. Gjithashtu sigurohu që dosja e file-t është e "
+"shkruajtshme."
+
+#: ../mate-session/logout.c:404
+msgid "Are you sure you want to log out?"
+msgstr "Jeni i sigurt që doni të dilni?"
+
+#: ../mate-session/logout.c:421
+msgid "_Save current setup"
+msgstr "_Ruani rregullimet aktuale"
+
+#: ../mate-session/logout.c:444
+msgid "Action"
+msgstr "Veprimi"
+
+#: ../mate-session/logout.c:461
+msgid "_Log out"
+msgstr "_Dil jashtë"
+
+#: ../mate-session/logout.c:468
+msgid "Sh_ut down"
+msgstr "Sh_ut down (fike)"
+
+#: ../mate-session/logout.c:476
+msgid "_Restart the computer"
+msgstr "_Rinis kompjuterin"
+
+#: ../mate-session/main.c:83
+msgid "Specify a session name to load"
+msgstr "Specifiko emrin e seancës që duhet ngarkuar"
+
+#: ../mate-session/main.c:83 ../mate-session/save-session.c:49
+msgid "NAME"
+msgstr "EMRI"
+
+#: ../mate-session/main.c:84
+msgid "Only read saved sessions from the default.session file"
+msgstr "Vetëm lexo seancat e ruajtura nga file i seancës së hapur."
+
+#: ../mate-session/main.c:85
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr ""
+"Milisekonda të shpenzuara në pritje të një klienti për t'u rregjistruar "
+"(0=përgjithmonë)"
+
+#: ../mate-session/main.c:85 ../mate-session/main.c:86
+#: ../mate-session/main.c:87
+msgid "DELAY"
+msgstr "VONESA"
+
+#: ../mate-session/main.c:86
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr ""
+"Milisekonda të shpenzuara në pritje të klienteve për t'u përgjigjur "
+"(0=përgjithmonë)"
+
+#: ../mate-session/main.c:87
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr ""
+"Milisekonda të shpenzuara në pritje që klienti të mbyllet (0=përgjithmonë)"
+
+#: ../mate-session/main.c:262
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"E pamundur hapja e adresës internet për %s.\n"
+"Kjo pengon Mate të punojë në rregull.\n"
+"Mund te jetë e mundur të korigjohet problemi duke shtuar\n"
+"%s tek file /etc/hosts."
+
+#: ../mate-session/main.c:269
+msgid "Log in Anyway"
+msgstr "Futu sidoqoftë"
+
+#: ../mate-session/main.c:270
+msgid "Try Again"
+msgstr "Provo përsëri"
+
+#: ../mate-session/main.c:395
+msgid "- Manage the MATE session"
+msgstr " - Organizo seancën MATE"
+
+#: ../mate-session/manager.c:512
+msgid "Wait abandoned due to conflict."
+msgstr "Pritje u braktis për shkak të një konflikti."
+
+#: ../mate-session/manager.c:1020
+#, c-format
+msgid "No response to the %s command."
+msgstr "Asnjë përgjigje për komandën %s."
+
+#: ../mate-session/manager.c:1021
+msgid "The program may be slow, stopped or broken."
+msgstr "Programi mund të jetë i ngadalshëm, mund të ndalojë ose të mbyllet."
+
+#: ../mate-session/manager.c:1022
+msgid "You may wait for it to respond or remove it."
+msgstr "Mund të presësh përgjigjen prej tij ose mund t'a heqësh."
+
+#: ../mate-session/manager.c:1748
+msgid "Restart abandoned due to failures."
+msgstr "Rinisja u braktis për shkak të problemeve."
+
+#: ../mate-session/manager.c:1944
+msgid "A session shutdown is in progress."
+msgstr "Mbyllje seance në proçes e sipër."
+
+#: ../mate-session/save-session.c:49
+msgid "Set the current session name"
+msgstr "Cakto emrin e seancës aktuale"
+
+#: ../mate-session/save-session.c:50
+msgid "Kill session"
+msgstr "Vrit seancën"
+
+#: ../mate-session/save-session.c:51
+msgid "Use dialog boxes for errors"
+msgstr "Përdor kuti dialogu për gabime"
+
+#: ../mate-session/save-session.c:52
+msgid "Do not require confirmation"
+msgstr "Mos kërko konfirmim"
+
+#: ../mate-session/save-session.c:150 ../mate-session/save-session.c:187
+msgid "Could not connect to the session manager"
+msgstr "E pamundur lidhja me organizuesin e seancës"
+
+#: ../mate-session/save-session.c:173
+msgid "- Save the current session"
+msgstr "- Ruaj seancën aktuale"
+
+#: ../mate-session/session-properties-capplet.c:153
+msgid "Save changes to the current session before closing?"
+msgstr "T'i ruaj ndryshimet në seancën e tanishme përpara mbylljes?"
+
+#: ../mate-session/session-properties-capplet.c:155
+msgid "If you don't save, changes will be discarded."
+msgstr "Nëse nuk e ruan, ndryshimet do të shpërfillen."
+
+#: ../mate-session/session-properties-capplet.c:158
+msgid "_Close without Saving"
+msgstr "_Mbyll pa Ruajtur"
+
+#: ../mate-session/session-properties-capplet.c:248
+msgid "Additional startup _programs:"
+msgstr "_Programe nisje shtesë:"
+
+#: ../mate-session/session-properties-capplet.c:272
+msgid "Enabled"
+msgstr "Aktivuar"
+
+#: ../mate-session/session-properties-capplet.c:315
+msgid "Startup Programs"
+msgstr "Programet e Nisjes"
+
+#: ../mate-session/session-properties-capplet.c:321
+msgid "Current Session"
+msgstr "Seanca aktuale"
+
+#: ../mate-session/session-properties-capplet.c:334
+msgid "Automatically save chan_ges to session"
+msgstr "Automatikisht ruaj ndryshimet e seancës"
+
+#: ../mate-session/session-properties-capplet.c:349
+msgid "Save the current session"
+msgstr "Ruaj seancën aktuale"
+
+#: ../mate-session/session-properties-capplet.c:357
+msgid "Session Options"
+msgstr "Opsionet e seancës"
+
+#: ../mate-session/session-properties-capplet.c:453
+msgid "Your session has been saved."
+msgstr "Seanca jote u ruajt."
+
+#: ../mate-session/session-properties-capplet.c:496
+msgid "could not connect to the session manager\n"
+msgstr "e pamundur lidhja me organizuesin e seancës\n"
+
+#: ../mate-session/session-properties-capplet.c:502
+msgid "session manager does not support MATE extensions\n"
+msgstr "organizuesi i seancës nuk suporton shtesat MATE\n"
+
+#: ../mate-session/session-properties.c:49
+msgid "Remove the currently selected client from the session."
+msgstr "Hiq klientin e tanishëm të zgjedhur nga seanca."
+
+#: ../mate-session/session-properties.c:55
+msgid "Apply changes to the current session"
+msgstr "Apliko ndryshimet në seancën e tanishme"
+
+#: ../mate-session/session-properties.c:61
+msgid "The list of programs in the session."
+msgstr "Lista e programeve në seancë"
+
+#: ../mate-session/session-properties.c:88
+msgid "Currently running _programs:"
+msgstr "Programet aktualisht në ekzekutim:"
+
+#: ../mate-session/splash-widget.c:45
+msgid "Sawfish Window Manager"
+msgstr "Sawfish - Organizuesi i dritareve"
+
+#: ../mate-session/splash-widget.c:46
+msgid "Marco Window Manager"
+msgstr "Organizuesi i dritareve Marco"
+
+#: ../mate-session/splash-widget.c:47
+msgid "Window Manager"
+msgstr "Organizuesi i dritareve"
+
+#: ../mate-session/splash-widget.c:48
+msgid "The Panel"
+msgstr "Paneli"
+
+#: ../mate-session/splash-widget.c:49
+msgid "Caja"
+msgstr "Caja"
+
+#: ../mate-session/splash-widget.c:50
+msgid "Desktop Settings"
+msgstr "Rregullimet e Hapësirës së Punës"
+
+#: ../mate-session/startup-programs.c:557
+msgid "_Name:"
+msgstr "_Emri:"
+
+#: ../mate-session/startup-programs.c:575
+msgid "_Command:"
+msgstr "_Komanda:"
+
+#: ../mate-session/startup-programs.c:581
+msgid "Startup Command"
+msgstr "Komanda e hapjes"
+
+#: ../mate-session/startup-programs.c:607
+msgid "The name of the startup program cannot be empty"
+msgstr "Emri i progamit në hapje nuk mund të jetë bosh"
+
+#: ../mate-session/startup-programs.c:609
+msgid "The startup command cannot be empty"
+msgstr "Komanda e hapjes nuk mund të jetë bosh"
+
+#: ../mate-session/startup-programs.c:615
+msgid "The startup command is not valid"
+msgstr "Komanda e hapjes nuk është e vlefshme"
+
+#: ../mate-session/startup-programs.c:667
+msgid "New Startup Program"
+msgstr "Programet i Ri Nisjeje"
+
+#: ../mate-session/startup-programs.c:711
+msgid "Edit Startup Program"
+msgstr "Ndrysho programin hapës"
+
+#~ msgid "There was an unknown activation error."
+#~ msgstr "Këtu ndodhi një gabim i panjohur aktivimi."
+
+#~ msgid "The session name cannot be empty"
+#~ msgstr "Emri i seancës nuk mund te jetë bosh"
+
+#~ msgid "The session name already exists"
+#~ msgstr "Ky emër seance ekziston"
+
+#~ msgid "Add a new session"
+#~ msgstr "Shto një seancë të re"
+
+#~ msgid "Edit session name"
+#~ msgstr "Ndrysho emrin e seancës"
+
+#~ msgid "Disable"
+#~ msgstr "Ç'aktivo"
+
+#~ msgid "_Edit"
+#~ msgstr "_Ndrysho"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "Disa ndryshime nuk janë ruajtur.\n"
+#~ "Je dakort për të dalë?"
+
+#~ msgid "Show splash screen on _login"
+#~ msgstr "Trego sfondin splash në _login"
+
+#~ msgid "As_k on logout"
+#~ msgstr "_Pyet në dalje"
+
+#~ msgid "_Sessions:"
+#~ msgstr "_Seancat:"
+
+#~ msgid "Session Name"
+#~ msgstr "Emri i seancës"
+
+#~ msgid "Initialize session settings"
+#~ msgstr "Rregullimet e nisjes së seancës"
+
+#~ msgid "_Startup Command:"
+#~ msgstr "_Komanda e hapjes:"
+
+#~ msgid "Add Startup Program"
+#~ msgstr "Shto një program hapës"
diff --git a/po/sr.po b/po/sr.po
new file mode 100644
index 0000000..866bee3
--- /dev/null
+++ b/po/sr.po
@@ -0,0 +1,962 @@
+# Serbian translation of mate-session
+# Courtesy of Prevod.org team (http://prevod.org/) -- 2003 - 2009
+#
+# This file is distributed under the same license as the mate-session package.
+#
+# Maintainer: Данило Шеган <[email protected]>
+# Reviewed on 2005-07-10 by Данило Шеган <[email protected]>
+# Translated on 2006-01-30 by: Слободан Д. Средојевић <[email protected]>
+# Милош Поповић <[email protected]>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2010-08-02 11:43+0000\n"
+"PO-Revision-Date: 2010-08-23 21:46+0200\n"
+"Last-Translator: Милош Поповић <[email protected]>\n"
+"Language-Team: Serbian <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n"
+"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Изаберите наредбу"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Додај програм по учитавању"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Уреди програм по учитавању"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Почетна наредба се мора унети"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Наредба програма за покретање по пријави није исправна"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Укључен"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Иконица"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Програм"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Поставке програма за покретање по учитавању"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Без имена"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Без описа"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Издање овог програма"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Не могу да прикажем документ за помоћ"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "Гном"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Ова сесија вас пријављује у Гном"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Подразумевана сесија"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Управник датотекама"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Уколико је укључено, mate-session ће питати корисника пре окончања сесије."
+
+#: ../data/mate-session.schemas.in.in.h:4
+#| msgid ""
+#| "If enabled, mate-session will prompt the user before ending a session."
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Уколико је укључено, Гномова сесија ће бити сама сачувана."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Списак програма који су део подразумеване сесије."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Списак делова које су саставни део сесије. (Сваки елемент именује кључ у „/"
+"desktop/mate/session/required-components“.) Поставке програма за покретање "
+"по учитавању неће дозволити корисницима да уклоне потребни део из сесије и "
+"управник сесијама ће сам додати потребне компоненте у сесију уколико оне "
+"буду уклоњене."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Питање пред одјаву"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Панел"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Потребни делови сесије"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Сачувај сесије"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Управник датотекама истиче иконице на радној површи и омогућава рад са "
+"сачуваним датотекама."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "Број минута након којих се сесија сматра неактивном."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Панел поставља линију на врх или дно радне површи која садржи меније, списак "
+"прозора, обавештајне иконице, сат и друго."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Управник прозорима исцртава насловну линију и оквире прозора и омогућава "
+"померање и промену величине прозора."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Време након кога је сесија неактивна"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Управник прозора"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Неки програми су још увек покренути:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"Чекам да програми заврше са радом. Излаз из ових програма може довести до "
+"губитка ваших радова."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Изаберите програме за покретање по пријави на рачунар"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Програми по учитавању"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Додатни програми по у_читавању:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "Разгледај..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Наредба:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "При_медба:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Могућности"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Програми при учитавању"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Сам запамти покренуте програме при одјави"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Име:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Запамти тренутно покренуте програме"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Ово није исправна .desktop датотека"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Није препознато издање десктоп датотеке „%s“"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Покрећем %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Програм не прихвата документе из командне линије"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Није препозната могућност за покретање: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"Не могу да проследим адресу документа у „Type=Link“ унос десктоп датотеке"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Ставка не се може покретати"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Онемогући повезивање са управником сесије"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Одредите датотеку која садржи сачуване поставке"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "ДАТОТЕКА"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Одредите ИБ управника сесије"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ИБ"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Опције управника сесијама:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Прикажи опције управника сесијама"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Постоји проблем са сервером за поставке.\n"
+"(%s изашао са исписом %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Није нађена иконица „%s“"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Непознато"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Програм је још увек покренут:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Неки програми су још увек покренути:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Чекам да програми заврше са радом. Излазак из ових програма може довести до "
+"губитка ваших радова."
+
+# Како је потребно да буде што краће усудих се да променим конструкцију
+# „Промени корисника и поред тога“ у „Ипак промени корисника“ ~ Милош
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Ипак промени корисника"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Ипак се одјави"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Ипак обустави рад"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Ипак замрзни рачунар"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "Ипак искључи рачунар"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Ипак поново покрени рачунар"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Закључај екран"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Откажи"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Бићете одјављени у року од %d секунде."
+msgstr[1] "Бићете одјављени у року од %d секунде."
+msgstr[2] "Бићете одјављени у року од %d секунди."
+msgstr[3] "Бићете одјављени у року од %d секунде."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Рачунар ће се сам искључити за %d секунду."
+msgstr[1] "Рачунар ће се сам искључити за %d секунде."
+msgstr[2] "Рачунар ће се сам искључити за %d секунди."
+msgstr[3] "Рачунар ће се сам искључити за једну секунду."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Пријављени сте као „%s“."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Да ли да се одјавим са система?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "Промени _корисника"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Одјави се"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Да ли да искључим рачунар?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "_Обустави рад"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Замрзни"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "_Поново покрени"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "_Искључи"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Не даје одзив"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking log out."
+msgstr "Овај програм онемогућава одјаву."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "Одбацујем везу са новим клијентом јер је у току гашење сесије.\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Не могу да направим ICE сокет: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Не могу да покренем пријавну сесију (и не могу да се повежем на X сервер)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Заобиђи стандардне директоријуме са програмима по учитаваљу"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to lookup default session"
+msgstr "ГКонф кључ са поставком подразумеване сесије"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Омогући код за уклањање грешака"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Не учитавај програме које је задао корисник"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "— Гномов управник сесијама"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Одјави се"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Одјави се занемаривши постојеће забране"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Прикажи прозорче за одјаву"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Прикажи прозорче за гашење рачунара"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Користи прозорчиће за приказ грешака"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Постави име текуће сесије"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "ИМЕ"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Окончај сесију"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Не тражи потврду"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Не може се повезати са управљачем сесије"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Програм је позван са несагласним могућностима"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "Помоћник услужног програма за Гномове поставке"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "Уколико је укључено, mate-session ће сам снимати сесију. Иначе, прозорче "
+#~ "за одјаву ће садржати могућност снимања сесије."
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "Слика која ће се приказивати при пријави"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "Прикажи поздравни екран при пријави"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "Прикажи поздравни екран по покретању сесије"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+#~ msgstr ""
+#~ "Ово је релативна путања у односу на директоријум $datadir/pixmaps/. "
+#~ "Поддиректоријуми и имена слика су дозвољене вредности. Измена ове "
+#~ "вредности ће утицати на наредну пријаву у сесију."
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "— Гномов поздравни екран"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "Гномов поздравни екран"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "Име програма за покретање по пријави не може бити празно"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "Захтеване су технологије за испомоћ за ову сесију, али њихов регистар "
+#~ "није пронађен. Провери да је AT-SPI пакет инсталиран. Сесиај је покренута "
+#~ "без подршке за технологије за испомоћ."
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "Омотач AT SPI регистра"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "Поставке сесије"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Изабрана опција у прозорчету пред одјаву"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "Ова је опција која ће бити изабрана у прозорчету пред одјаву, а допуштене "
+#~ "вредности су „logout“ за одјаву, „shutdown“ за гашење система и „restart“ "
+#~ "за поново покретање система."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "Подесите ваше сесије"
+
+#~ msgid "Sessions"
+#~ msgstr "Сесије"
+
+#~ msgid "Session management"
+#~ msgstr "Управник сесијама"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "Дозволи TCP везе"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "Из сигурносних разлога, на платформама које имају _IceTcpTransNoListen() "
+#~ "(XFree86 системи), mate-session не очекује везе на TCP портовима. Ова "
+#~ "опција ће омогућити повезивање са (овлашћених) удаљених рачунара. mate-"
+#~ "session се мора поново покренити како би ово имало утицаја."
+
+#~ msgid "_Order:"
+#~ msgstr "_Редослед:"
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "Шта се дешава са програмом када се оконча."
+
+#~ msgid "_Style:"
+#~ msgstr "_Стил:"
+
+#~ msgid "Inactive"
+#~ msgstr "Неактиван"
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "Чека на извршавање, или је већ завршен"
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "Покренут али није објавио стање"
+
+#~ msgid "Running"
+#~ msgstr "Покренут"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "Обичан члан сесије."
+
+#~ msgid "Saving"
+#~ msgstr "Чувам"
+
+#~ msgid "Saving session details."
+#~ msgstr "Чување детаља сесије."
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "Стање није објављено у предвиђеном року."
+
+#~ msgid "Normal"
+#~ msgstr "Обично"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "Одјаве не утичу, али може умрети."
+
+#~ msgid "Never allowed to die."
+#~ msgstr "Није дозвољено да умре."
+
+#~ msgid "Trash"
+#~ msgstr "Смеће"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "Занемарује се при одјави, и може умрети."
+
+#~ msgid "Settings"
+#~ msgstr "Подешавања"
+
+#~ msgid "Always started on every login."
+#~ msgstr "Покреће се при свакој пријави."
+
+#~ msgid "Order"
+#~ msgstr "Редослед"
+
+#~ msgid "Style"
+#~ msgstr "Стил"
+
+#~ msgid "State"
+#~ msgstr "Стање"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "Дошло је до грешке при покретању услужног програма за подешавања Гнома.\n"
+#~ "\n"
+#~ "Неке ствари, као што су теме, звуци, или подешења позадине можда неће "
+#~ "радити исправно."
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Последње обавештење о грешци је било:\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Гном ће и даље покушавати да покрене услужни програм за подешавања при "
+#~ "следећој пријави."
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "Услужни програм за подешавања је изнова покренут превише пута."
+
+#~ msgid "List registered clients, then exit"
+#~ msgstr "Прикажи пријављене клијенте, а затим изађи"
+
+#~ msgid "PROGRAM..."
+#~ msgstr "ПРОГРАМ..."
+
+#~ msgid ""
+#~ "You must specify at least one program to remove. You can list the "
+#~ "programs with --list.\n"
+#~ msgstr ""
+#~ "Мораш навести макар један програм за уклањање. Можеш видети листу "
+#~ "програма са опцијом --list.\n"
+
+#~ msgid "Error: could not connect to the session manager\n"
+#~ msgstr "Грепка: Не може се повезати са управљачем сесије\n"
+
+#~ msgid "Currently registered clients:\n"
+#~ msgstr "Тренутно пријављени клијенти:\n"
+
+#~ msgid "Couldn't find program %s in session\n"
+#~ msgstr "Не може пронаћи програм %s у сесији\n"
+
+#~ msgid ""
+#~ "The MATE session manager cannot start properly. Please report this as a "
+#~ "MATE bug. Please include this ICE failure message in the bug report: "
+#~ "'%s'. Meanwhile you could try logging in using the failsafe session."
+#~ msgstr ""
+#~ "Гномов управљач сесије не може исправно да се покрене. Молим пријави ово "
+#~ "као грешку у Гному. Укључи и ову поруку о ICE грешци у извештају: „%s“.У "
+#~ "међувремену, можеш пробати да се пријавиш користећи сесију отпотну на "
+#~ "грешке."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to lock the file '%s'. Please "
+#~ "report this as a MATE bug. Sometimes this error may occur if the file's "
+#~ "directory is unwritable, you could try logging in via the failsafe "
+#~ "session and ensuring that it is."
+#~ msgstr ""
+#~ "Гномов управљач сесије не може да закључа датотеку „%s“. Молим пријави "
+#~ "ово као грешку у Гному. Понекад се грешка може појавити ако није могуће "
+#~ "писати у фасциклу датотеке, можеш пробати да се пријавиш користећи сесију "
+#~ "отпотну на грешке и провериш да ли је уписива."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to read the file: '%s'. If this "
+#~ "file exists it must be readable by you for MATE to work properly. Try "
+#~ "logging in with the failsafe session and removing this file."
+#~ msgstr ""
+#~ "Гномов управљач сесије не може да прочита датотеку „%s“. Ако ова "
+#~ "датотека постоји Гном мора бити у могућности да је прочита да би исправно "
+#~ "радио. Пробај да се пријавиш користећи сесију отпотну на грешке и уклониш "
+#~ "датотеку."
+
+#~ msgid ""
+#~ "Could not write to file '%s'. This file must be writable in order for "
+#~ "MATE to function properly. Try logging in with the failsafe session and "
+#~ "removing this file. Also make sure that the file's directory is writable."
+#~ msgstr ""
+#~ "Не може да упише у датотеку „%s“. Гном мора бити у могућности да је упише "
+#~ "у ову датотеку да би исправно радио. Пробај да се пријавиш користећи "
+#~ "сесију отпотну на грешке и уклониш датотеку. Такође, провери да ли "
+#~ "јемогуће писати у фасциклу те датотеке."
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "Да ли сигурно желите да завршите?"
+
+#~ msgid "Remember running applications"
+#~ msgstr "Запамти покренуте програме"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "_Поново покрени рачунар"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "Читај само сесије сачуване у датотеци default.session"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr ""
+#~ "Период у милисекундама утрошен чекајући да се клијенти пријаве (0=заувек)"
+
+#~ msgid "DELAY"
+#~ msgstr "ПЕРИОД"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr ""
+#~ "Период у милисекундама утрошен чекајући да клијенти одговоре (0=заувек)"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr ""
+#~ "Период у милисекундама утрошен чекајући на клијенте да заврше (0=заувек)"
+
+#~ msgid "This session is running as a privileged user"
+#~ msgstr "Ова сесија је покренута под повлашћеним корисником"
+
+#~ msgid ""
+#~ "Running a session as a privileged user should be avoided for security "
+#~ "reasons. If possible, you should log in as a normal user."
+#~ msgstr ""
+#~ "Покретање сесије под повлашћеним корисником треба избегавати из "
+#~ "безбедносних разлога. Ако је могуће, пријавите се као обичан корисник."
+
+#~ msgid "_Continue"
+#~ msgstr "_Настави"
+
+#~ msgid ""
+#~ "The session might encounter issues if the computer clock is not properly "
+#~ "configured. Please consider adjusting it.\n"
+#~ "\n"
+#~ "Current date is <b>%s</b>."
+#~ msgstr ""
+#~ "Ова сесија може наићи на неприлике ако часовник рачунара није исправно "
+#~ "подешен. Размотрите да га подесите.\n"
+#~ "\n"
+#~ "Текући датум је <b>%s</b>."
+
+#~ msgid "Failed to launch time configuration tool: %s"
+#~ msgstr "Неуспешно покретање алата за подешавање времена: %s"
+
+#~ msgid "The computer clock appears to be wrong"
+#~ msgstr "Часовник рачунара је изгледа погрешан"
+
+#~ msgid "_Ignore"
+#~ msgstr "_Занемари"
+
+#~ msgid "_Adjust the Clock"
+#~ msgstr "При_лагоди часовник"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "Не може сазнати интернет адресу за %s.\n"
+#~ "Ово ће онемогућити исправан рад Гнома.\n"
+#~ "Ову незгоду можете решити додавањем \n"
+#~ "%s у датотеку /etc/hosts."
+
+#~ msgid "Try Again"
+#~ msgstr "Покушај поново"
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "Чекање обустављено због несугласица."
+
+#~ msgid "No response to the %s command."
+#~ msgstr "Нема одговора на наредбу „%s“."
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "Програм је можда спор, прекинут или неисправан."
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "Можете сачекати његов одговор или га уклонити."
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "Поновно покретање обустављено због грешака."
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "Окончање сесије у току."
+
+#~ msgid "- Save the current session"
+#~ msgstr "- Сачувај текућу сесију"
+
+#~ msgid "Save changes to the current session before closing?"
+#~ msgstr "Сачувај измене у тренутној сесији пре изласка?"
+
+#~ msgid "If you don't save, changes will be discarded."
+#~ msgstr "Ако не сачуваш, измене ће бити изгубљене."
+
+#~ msgid "_Close without Saving"
+#~ msgstr "_Затвори без чувања"
+
+#~ msgid "Current Session"
+#~ msgstr "Текућа сесија"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "Ваша сесија је сачувана."
+
+#~ msgid "could not connect to the session manager\n"
+#~ msgstr "не може се повезати са управљачем сесије\n"
+
+#~ msgid "session manager does not support MATE extensions\n"
+#~ msgstr "управљач сесије не подржава проширења за Гном\n"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "Уклони тренутно изабраног клијента из сесије"
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "Примени измене на тренутну сесију"
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "Списак програма у сесији"
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "Тренутно активни програми:"
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "Sawfish управник прозора"
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "Marco управник прозора"
+
+#~ msgid "Caja"
+#~ msgstr "Caja"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "Подешавања радне површине"
+
+#~ msgid "New Startup Program"
+#~ msgstr "Нови програм за покретање по пријави"
+
+#~ msgid "_Save current setup"
+#~ msgstr "_Сачувај текуће поставке"
+
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "С_ам сачувај измене сесије"
+
+#~ msgid "Save the current session"
+#~ msgstr "Сачувај текућу сесију"
+
+#~ msgid "There was an unknown activation error."
+#~ msgstr "Дошло је до грешке при покретању."
+
+#~ msgid "The session name cannot be empty"
+#~ msgstr "Мора се навести име сесије"
+
+#~ msgid "The session name already exists"
+#~ msgstr "Тражено име сесије већ постоји"
+
+#~ msgid "Add a new session"
+#~ msgstr "Додај нову сесију"
+
+#~ msgid "Edit session name"
+#~ msgstr "Уреди име сесије"
+
+#~ msgid "Disable"
+#~ msgstr "Искључи"
+
+#~ msgid "_Edit"
+#~ msgstr "_Уреди"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "Неке измене нису сачуване.\n"
+#~ "Да ли је у реду изаћи?"
+
+#~ msgid "Show splash screen on _login"
+#~ msgstr "Прикажи поздравни екран при _пријави"
+
+#~ msgid "As_k on logout"
+#~ msgstr "По_тврда пред пријаву"
+
+#~ msgid "_Sessions:"
+#~ msgstr "_Сесије:"
+
+#~ msgid "Initialize session settings"
+#~ msgstr "Учитавање подешавања сесије"
+
+#~ msgid "_Startup Command:"
+#~ msgstr "Наредба при учитавању:"
+
+#~ msgid "Save Current Session"
+#~ msgstr "Сними текућу сесију"
+
+#~ msgid "Save current state of desktop"
+#~ msgstr "Сними текуће стање радне површине"
diff --git a/po/[email protected] b/po/[email protected]
new file mode 100644
index 0000000..3b58283
--- /dev/null
+++ b/po/[email protected]
@@ -0,0 +1,962 @@
+# Serbian translation of mate-session
+# Courtesy of Prevod.org team (http://prevod.org/) -- 2003 - 2009
+#
+# This file is distributed under the same license as the mate-session package.
+#
+# Maintainer: Danilo Šegan <[email protected]>
+# Reviewed on 2005-07-10 by Danilo Šegan <[email protected]>
+# Translated on 2006-01-30 by: Slobodan D. Sredojević <[email protected]>
+# Miloš Popović <[email protected]>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2010-08-02 11:43+0000\n"
+"PO-Revision-Date: 2010-08-23 21:46+0200\n"
+"Last-Translator: Miloš Popović <[email protected]>\n"
+"Language-Team: Serbian <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n"
+"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Izaberite naredbu"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Dodaj program po učitavanju"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Uredi program po učitavanju"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Početna naredba se mora uneti"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Naredba programa za pokretanje po prijavi nije ispravna"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Uključen"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Ikonica"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Program"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Postavke programa za pokretanje po učitavanju"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Bez imena"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Bez opisa"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Izdanje ovog programa"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Ne mogu da prikažem dokument za pomoć"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "Gnom"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Ova sesija vas prijavljuje u Gnom"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Podrazumevana sesija"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Upravnik datotekama"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Ukoliko je uključeno, mate-session će pitati korisnika pre okončanja sesije."
+
+#: ../data/mate-session.schemas.in.in.h:4
+#| msgid ""
+#| "If enabled, mate-session will prompt the user before ending a session."
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Ukoliko je uključeno, Gnomova sesija će biti sama sačuvana."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Spisak programa koji su deo podrazumevane sesije."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Spisak delova koje su sastavni deo sesije. (Svaki element imenuje ključ u „/"
+"desktop/mate/session/required-components“.) Postavke programa za pokretanje "
+"po učitavanju neće dozvoliti korisnicima da uklone potrebni deo iz sesije i "
+"upravnik sesijama će sam dodati potrebne komponente u sesiju ukoliko one "
+"budu uklonjene."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Pitanje pred odjavu"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Potrebni delovi sesije"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Sačuvaj sesije"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Upravnik datotekama ističe ikonice na radnoj površi i omogućava rad sa "
+"sačuvanim datotekama."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "Broj minuta nakon kojih se sesija smatra neaktivnom."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Panel postavlja liniju na vrh ili dno radne površi koja sadrži menije, spisak "
+"prozora, obaveštajne ikonice, sat i drugo."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Upravnik prozorima iscrtava naslovnu liniju i okvire prozora i omogućava "
+"pomeranje i promenu veličine prozora."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Vreme nakon koga je sesija neaktivna"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Upravnik prozora"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Neki programi su još uvek pokrenuti:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"Čekam da programi završe sa radom. Izlaz iz ovih programa može dovesti do "
+"gubitka vaših radova."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Izaberite programe za pokretanje po prijavi na računar"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Programi po učitavanju"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Dodatni programi po u_čitavanju:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "Razgledaj..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Naredba:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Pri_medba:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Mogućnosti"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Programi pri učitavanju"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Sam zapamti pokrenute programe pri odjavi"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Ime:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Zapamti trenutno pokrenute programe"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Ovo nije ispravna .desktop datoteka"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Nije prepoznato izdanje desktop datoteke „%s“"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Pokrećem %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Program ne prihvata dokumente iz komandne linije"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Nije prepoznata mogućnost za pokretanje: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"Ne mogu da prosledim adresu dokumenta u „Type=Link“ unos desktop datoteke"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Stavka ne se može pokretati"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Onemogući povezivanje sa upravnikom sesije"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Odredite datoteku koja sadrži sačuvane postavke"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "DATOTEKA"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Odredite IB upravnika sesije"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "IB"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Opcije upravnika sesijama:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Prikaži opcije upravnika sesijama"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Postoji problem sa serverom za postavke.\n"
+"(%s izašao sa ispisom %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Nije nađena ikonica „%s“"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Nepoznato"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Program je još uvek pokrenut:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Neki programi su još uvek pokrenuti:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Čekam da programi završe sa radom. Izlazak iz ovih programa može dovesti do "
+"gubitka vaših radova."
+
+# Kako je potrebno da bude što kraće usudih se da promenim konstrukciju
+# „Promeni korisnika i pored toga“ u „Ipak promeni korisnika“ ~ Miloš
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Ipak promeni korisnika"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Ipak se odjavi"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Ipak obustavi rad"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Ipak zamrzni računar"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "Ipak isključi računar"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Ipak ponovo pokreni računar"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Zaključaj ekran"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Otkaži"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Bićete odjavljeni u roku od %d sekunde."
+msgstr[1] "Bićete odjavljeni u roku od %d sekunde."
+msgstr[2] "Bićete odjavljeni u roku od %d sekundi."
+msgstr[3] "Bićete odjavljeni u roku od %d sekunde."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Računar će se sam isključiti za %d sekundu."
+msgstr[1] "Računar će se sam isključiti za %d sekunde."
+msgstr[2] "Računar će se sam isključiti za %d sekundi."
+msgstr[3] "Računar će se sam isključiti za jednu sekundu."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Prijavljeni ste kao „%s“."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Da li da se odjavim sa sistema?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "Promeni _korisnika"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Odjavi se"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Da li da isključim računar?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "_Obustavi rad"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "_Zamrzni"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "_Ponovo pokreni"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "_Isključi"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Ne daje odziv"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking log out."
+msgstr "Ovaj program onemogućava odjavu."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "Odbacujem vezu sa novim klijentom jer je u toku gašenje sesije.\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Ne mogu da napravim ICE soket: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"Ne mogu da pokrenem prijavnu sesiju (i ne mogu da se povežem na X server)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Zaobiđi standardne direktorijume sa programima po učitavalju"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to lookup default session"
+msgstr "GKonf ključ sa postavkom podrazumevane sesije"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Omogući kod za uklanjanje grešaka"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Ne učitavaj programe koje je zadao korisnik"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "— Gnomov upravnik sesijama"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Odjavi se"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Odjavi se zanemarivši postojeće zabrane"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Prikaži prozorče za odjavu"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Prikaži prozorče za gašenje računara"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Koristi prozorčiće za prikaz grešaka"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Postavi ime tekuće sesije"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "IME"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Okončaj sesiju"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Ne traži potvrdu"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Ne može se povezati sa upravljačem sesije"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Program je pozvan sa nesaglasnim mogućnostima"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "Pomoćnik uslužnog programa za Gnomove postavke"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "Ukoliko je uključeno, mate-session će sam snimati sesiju. Inače, prozorče "
+#~ "za odjavu će sadržati mogućnost snimanja sesije."
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "Slika koja će se prikazivati pri prijavi"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "Prikaži pozdravni ekran pri prijavi"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "Prikaži pozdravni ekran po pokretanju sesije"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+#~ msgstr ""
+#~ "Ovo je relativna putanja u odnosu na direktorijum $datadir/pixmaps/. "
+#~ "Poddirektorijumi i imena slika su dozvoljene vrednosti. Izmena ove "
+#~ "vrednosti će uticati na narednu prijavu u sesiju."
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "— Gnomov pozdravni ekran"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "Gnomov pozdravni ekran"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "Ime programa za pokretanje po prijavi ne može biti prazno"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "Zahtevane su tehnologije za ispomoć za ovu sesiju, ali njihov registar "
+#~ "nije pronađen. Proveri da je AT-SPI paket instaliran. Sesiaj je pokrenuta "
+#~ "bez podrške za tehnologije za ispomoć."
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "Omotač AT SPI registra"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "Postavke sesije"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Izabrana opcija u prozorčetu pred odjavu"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "Ova je opcija koja će biti izabrana u prozorčetu pred odjavu, a dopuštene "
+#~ "vrednosti su „logout“ za odjavu, „shutdown“ za gašenje sistema i „restart“ "
+#~ "za ponovo pokretanje sistema."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "Podesite vaše sesije"
+
+#~ msgid "Sessions"
+#~ msgstr "Sesije"
+
+#~ msgid "Session management"
+#~ msgstr "Upravnik sesijama"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "Dozvoli TCP veze"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "Iz sigurnosnih razloga, na platformama koje imaju _IceTcpTransNoListen() "
+#~ "(XFree86 sistemi), mate-session ne očekuje veze na TCP portovima. Ova "
+#~ "opcija će omogućiti povezivanje sa (ovlašćenih) udaljenih računara. mate-"
+#~ "session se mora ponovo pokreniti kako bi ovo imalo uticaja."
+
+#~ msgid "_Order:"
+#~ msgstr "_Redosled:"
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "Šta se dešava sa programom kada se okonča."
+
+#~ msgid "_Style:"
+#~ msgstr "_Stil:"
+
+#~ msgid "Inactive"
+#~ msgstr "Neaktivan"
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "Čeka na izvršavanje, ili je već završen"
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "Pokrenut ali nije objavio stanje"
+
+#~ msgid "Running"
+#~ msgstr "Pokrenut"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "Običan član sesije."
+
+#~ msgid "Saving"
+#~ msgstr "Čuvam"
+
+#~ msgid "Saving session details."
+#~ msgstr "Čuvanje detalja sesije."
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "Stanje nije objavljeno u predviđenom roku."
+
+#~ msgid "Normal"
+#~ msgstr "Obično"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "Odjave ne utiču, ali može umreti."
+
+#~ msgid "Never allowed to die."
+#~ msgstr "Nije dozvoljeno da umre."
+
+#~ msgid "Trash"
+#~ msgstr "Smeće"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "Zanemaruje se pri odjavi, i može umreti."
+
+#~ msgid "Settings"
+#~ msgstr "Podešavanja"
+
+#~ msgid "Always started on every login."
+#~ msgstr "Pokreće se pri svakoj prijavi."
+
+#~ msgid "Order"
+#~ msgstr "Redosled"
+
+#~ msgid "Style"
+#~ msgstr "Stil"
+
+#~ msgid "State"
+#~ msgstr "Stanje"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "Došlo je do greške pri pokretanju uslužnog programa za podešavanja Gnoma.\n"
+#~ "\n"
+#~ "Neke stvari, kao što su teme, zvuci, ili podešenja pozadine možda neće "
+#~ "raditi ispravno."
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Poslednje obaveštenje o grešci je bilo:\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Gnom će i dalje pokušavati da pokrene uslužni program za podešavanja pri "
+#~ "sledećoj prijavi."
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "Uslužni program za podešavanja je iznova pokrenut previše puta."
+
+#~ msgid "List registered clients, then exit"
+#~ msgstr "Prikaži prijavljene klijente, a zatim izađi"
+
+#~ msgid "PROGRAM..."
+#~ msgstr "PROGRAM..."
+
+#~ msgid ""
+#~ "You must specify at least one program to remove. You can list the "
+#~ "programs with --list.\n"
+#~ msgstr ""
+#~ "Moraš navesti makar jedan program za uklanjanje. Možeš videti listu "
+#~ "programa sa opcijom --list.\n"
+
+#~ msgid "Error: could not connect to the session manager\n"
+#~ msgstr "Grepka: Ne može se povezati sa upravljačem sesije\n"
+
+#~ msgid "Currently registered clients:\n"
+#~ msgstr "Trenutno prijavljeni klijenti:\n"
+
+#~ msgid "Couldn't find program %s in session\n"
+#~ msgstr "Ne može pronaći program %s u sesiji\n"
+
+#~ msgid ""
+#~ "The MATE session manager cannot start properly. Please report this as a "
+#~ "MATE bug. Please include this ICE failure message in the bug report: "
+#~ "'%s'. Meanwhile you could try logging in using the failsafe session."
+#~ msgstr ""
+#~ "Gnomov upravljač sesije ne može ispravno da se pokrene. Molim prijavi ovo "
+#~ "kao grešku u Gnomu. Uključi i ovu poruku o ICE grešci u izveštaju: „%s“.U "
+#~ "međuvremenu, možeš probati da se prijaviš koristeći sesiju otpotnu na "
+#~ "greške."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to lock the file '%s'. Please "
+#~ "report this as a MATE bug. Sometimes this error may occur if the file's "
+#~ "directory is unwritable, you could try logging in via the failsafe "
+#~ "session and ensuring that it is."
+#~ msgstr ""
+#~ "Gnomov upravljač sesije ne može da zaključa datoteku „%s“. Molim prijavi "
+#~ "ovo kao grešku u Gnomu. Ponekad se greška može pojaviti ako nije moguće "
+#~ "pisati u fasciklu datoteke, možeš probati da se prijaviš koristeći sesiju "
+#~ "otpotnu na greške i proveriš da li je upisiva."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to read the file: '%s'. If this "
+#~ "file exists it must be readable by you for MATE to work properly. Try "
+#~ "logging in with the failsafe session and removing this file."
+#~ msgstr ""
+#~ "Gnomov upravljač sesije ne može da pročita datoteku „%s“. Ako ova "
+#~ "datoteka postoji Gnom mora biti u mogućnosti da je pročita da bi ispravno "
+#~ "radio. Probaj da se prijaviš koristeći sesiju otpotnu na greške i ukloniš "
+#~ "datoteku."
+
+#~ msgid ""
+#~ "Could not write to file '%s'. This file must be writable in order for "
+#~ "MATE to function properly. Try logging in with the failsafe session and "
+#~ "removing this file. Also make sure that the file's directory is writable."
+#~ msgstr ""
+#~ "Ne može da upiše u datoteku „%s“. Gnom mora biti u mogućnosti da je upiše "
+#~ "u ovu datoteku da bi ispravno radio. Probaj da se prijaviš koristeći "
+#~ "sesiju otpotnu na greške i ukloniš datoteku. Takođe, proveri da li "
+#~ "jemoguće pisati u fasciklu te datoteke."
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "Da li sigurno želite da završite?"
+
+#~ msgid "Remember running applications"
+#~ msgstr "Zapamti pokrenute programe"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "_Ponovo pokreni računar"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "Čitaj samo sesije sačuvane u datoteci default.session"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr ""
+#~ "Period u milisekundama utrošen čekajući da se klijenti prijave (0=zauvek)"
+
+#~ msgid "DELAY"
+#~ msgstr "PERIOD"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr ""
+#~ "Period u milisekundama utrošen čekajući da klijenti odgovore (0=zauvek)"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr ""
+#~ "Period u milisekundama utrošen čekajući na klijente da završe (0=zauvek)"
+
+#~ msgid "This session is running as a privileged user"
+#~ msgstr "Ova sesija je pokrenuta pod povlašćenim korisnikom"
+
+#~ msgid ""
+#~ "Running a session as a privileged user should be avoided for security "
+#~ "reasons. If possible, you should log in as a normal user."
+#~ msgstr ""
+#~ "Pokretanje sesije pod povlašćenim korisnikom treba izbegavati iz "
+#~ "bezbednosnih razloga. Ako je moguće, prijavite se kao običan korisnik."
+
+#~ msgid "_Continue"
+#~ msgstr "_Nastavi"
+
+#~ msgid ""
+#~ "The session might encounter issues if the computer clock is not properly "
+#~ "configured. Please consider adjusting it.\n"
+#~ "\n"
+#~ "Current date is <b>%s</b>."
+#~ msgstr ""
+#~ "Ova sesija može naići na neprilike ako časovnik računara nije ispravno "
+#~ "podešen. Razmotrite da ga podesite.\n"
+#~ "\n"
+#~ "Tekući datum je <b>%s</b>."
+
+#~ msgid "Failed to launch time configuration tool: %s"
+#~ msgstr "Neuspešno pokretanje alata za podešavanje vremena: %s"
+
+#~ msgid "The computer clock appears to be wrong"
+#~ msgstr "Časovnik računara je izgleda pogrešan"
+
+#~ msgid "_Ignore"
+#~ msgstr "_Zanemari"
+
+#~ msgid "_Adjust the Clock"
+#~ msgstr "Pri_lagodi časovnik"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "Ne može saznati internet adresu za %s.\n"
+#~ "Ovo će onemogućiti ispravan rad Gnoma.\n"
+#~ "Ovu nezgodu možete rešiti dodavanjem \n"
+#~ "%s u datoteku /etc/hosts."
+
+#~ msgid "Try Again"
+#~ msgstr "Pokušaj ponovo"
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "Čekanje obustavljeno zbog nesuglasica."
+
+#~ msgid "No response to the %s command."
+#~ msgstr "Nema odgovora na naredbu „%s“."
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "Program je možda spor, prekinut ili neispravan."
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "Možete sačekati njegov odgovor ili ga ukloniti."
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "Ponovno pokretanje obustavljeno zbog grešaka."
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "Okončanje sesije u toku."
+
+#~ msgid "- Save the current session"
+#~ msgstr "- Sačuvaj tekuću sesiju"
+
+#~ msgid "Save changes to the current session before closing?"
+#~ msgstr "Sačuvaj izmene u trenutnoj sesiji pre izlaska?"
+
+#~ msgid "If you don't save, changes will be discarded."
+#~ msgstr "Ako ne sačuvaš, izmene će biti izgubljene."
+
+#~ msgid "_Close without Saving"
+#~ msgstr "_Zatvori bez čuvanja"
+
+#~ msgid "Current Session"
+#~ msgstr "Tekuća sesija"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "Vaša sesija je sačuvana."
+
+#~ msgid "could not connect to the session manager\n"
+#~ msgstr "ne može se povezati sa upravljačem sesije\n"
+
+#~ msgid "session manager does not support MATE extensions\n"
+#~ msgstr "upravljač sesije ne podržava proširenja za Gnom\n"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "Ukloni trenutno izabranog klijenta iz sesije"
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "Primeni izmene na trenutnu sesiju"
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "Spisak programa u sesiji"
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "Trenutno aktivni programi:"
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "Sawfish upravnik prozora"
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "Marco upravnik prozora"
+
+#~ msgid "Caja"
+#~ msgstr "Caja"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "Podešavanja radne površine"
+
+#~ msgid "New Startup Program"
+#~ msgstr "Novi program za pokretanje po prijavi"
+
+#~ msgid "_Save current setup"
+#~ msgstr "_Sačuvaj tekuće postavke"
+
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "S_am sačuvaj izmene sesije"
+
+#~ msgid "Save the current session"
+#~ msgstr "Sačuvaj tekuću sesiju"
+
+#~ msgid "There was an unknown activation error."
+#~ msgstr "Došlo je do greške pri pokretanju."
+
+#~ msgid "The session name cannot be empty"
+#~ msgstr "Mora se navesti ime sesije"
+
+#~ msgid "The session name already exists"
+#~ msgstr "Traženo ime sesije već postoji"
+
+#~ msgid "Add a new session"
+#~ msgstr "Dodaj novu sesiju"
+
+#~ msgid "Edit session name"
+#~ msgstr "Uredi ime sesije"
+
+#~ msgid "Disable"
+#~ msgstr "Isključi"
+
+#~ msgid "_Edit"
+#~ msgstr "_Uredi"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "Neke izmene nisu sačuvane.\n"
+#~ "Da li je u redu izaći?"
+
+#~ msgid "Show splash screen on _login"
+#~ msgstr "Prikaži pozdravni ekran pri _prijavi"
+
+#~ msgid "As_k on logout"
+#~ msgstr "Po_tvrda pred prijavu"
+
+#~ msgid "_Sessions:"
+#~ msgstr "_Sesije:"
+
+#~ msgid "Initialize session settings"
+#~ msgstr "Učitavanje podešavanja sesije"
+
+#~ msgid "_Startup Command:"
+#~ msgstr "Naredba pri učitavanju:"
+
+#~ msgid "Save Current Session"
+#~ msgstr "Snimi tekuću sesiju"
+
+#~ msgid "Save current state of desktop"
+#~ msgstr "Snimi tekuće stanje radne površine"
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 0000000..5711af7
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,558 @@
+# Swedish messages for mate-session.
+# Copyright (C) 1998-2010 Free Software Foundation, Inc.
+# Martin Wahlen <[email protected]>, 1998.
+# Anders Carlsson <[email protected]>, 1999.
+# Andreas Hyden <[email protected]>, 2000.
+# Martin Norbäck <[email protected]>, 2000, 2001.
+# Christian Rose <[email protected]>, 2000, 2001, 2002, 2003, 2004, 2005.
+# Daniel Nylander <[email protected]>, 2006, 2007, 2008, 2009, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-03 01:18+0200\n"
+"PO-Revision-Date: 2010-09-03 01:19+0100\n"
+"Last-Translator: Daniel Nylander <[email protected]>\n"
+"Language-Team: Swedish <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Välj kommando"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Lägg till uppstartsprogram"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Redigera uppstartsprogram"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Uppstartsprogrammets kommando får inte vara tomt"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Uppstartsprogrammets kommando är inte giltigt"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Aktiverat"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Ikon"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Program"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Inställningar för uppstartsprogram"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Inget namn"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Ingen beskrivning"
+
+#: ../capplet/main.c:37
+#: ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "Version av detta program"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Kunde inte visa hjälpdokumentet"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Denna session loggar in dig i MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Standardsession"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Filhanterare"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "Om detta är aktiverat kommer mate-session att fråga användaren innan en session avslutas."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "Om detta är aktiverat kommer mate-session att spara sessionen automatiskt."
+
+# SUN NEW TRANSLATION
+#
+# Sun vill ha "applikationer" här
+# Jag vill ha "program"
+#
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Lista över program som är en del av standardsessionen."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid "List of components that are required as part of the session. (Each element names a key under \"/desktop/mate/session/required_components\"). The Startup Applications preferences tool will not normally allow users to remove a required component from the session, and the session manager will automatically add the required components back to the session at login time if they do get removed."
+msgstr "Lista över komponenter som är nödvändiga som en del av sessionen. (Varje element namnger en nyckel under \"/desktop/mate/session/required_components\".) Inställningsverktyget Uppstartsprogram kommer vanligtvis inte att tillåta användare att ta bort en nödvändig komponent från sessionen, och sessionshanterare kommer automatiskt att lägga tillbaka till de nödvändiga komponenterna till sessionen vid inloggning om de blir borttagna."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Utloggningsfråga"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "Nödvändiga sessionskomponenter"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "Spara sessioner"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "The file manager provides the desktop icons and allows you to interact with your saved files."
+msgstr "Filhanteraren tillhandahåller skrivbordsikoner och låter dig interagera med dina sparade filer."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "The number of minutes of inactivity before the session is considered idle."
+msgstr "Antalet minuters inaktivitet innan sessionen anses vara overksam."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "The panel provides the bar at the top or bottom of the screen containing menus, the window list, status icons, the clock, etc."
+msgstr "Panelen tillhandahåller raden på övre eller nedre delen av skärmen och innehåller menyer, fönsterlistan, statusikoner, klockan, etc."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid "The window manager is the program that draws the title bar and borders around windows, and allows you to move and resize windows."
+msgstr "Fönsterhanteraren är det program som ritar upp titellisten och ramar runt fönster samt låter dig flytta och ändra storlek på fönster."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "Tid innan sessionen anses vara overksam"
+
+#: ../data/mate-session.schemas.in.in.h:16
+#: ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Fönsterhanterare"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Några program är fortfarande igång:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2
+#: ../mate-session/gsm-inhibit-dialog.c:667
+msgid "Waiting for the program to finish. Interrupting the program may cause you to lose work."
+msgstr "Väntar på att programmet ska köras färdigt. Avbryta programmet kan innebära att du förlorar data."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Välj vilka program att starta när du loggar in"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Uppstartsprogram"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Ytterligare start_program:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "Bläddra..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "Ko_mmando:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Komm_entar:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Alternativ"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Uppstartsprogram"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "Kom _automatiskt ihåg körande program vid utloggning"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Namn:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Kom ihåg för närvarande körande program"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Filen är inte en giltig .desktop-fil"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Okänd version i skrivbordsfil \"%s\""
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Startar %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Programmet tar inte emot dokument på kommandoraden"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Okänt startalternativ: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Kan inte skicka dokument-URI:er till en \"Type=Link\"-skrivbordspost"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Inte ett startbart objekt"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Inaktivera anslutning till sessionshanterare"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Ange fil som innehåller sparad konfiguration"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FIL"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Ange sessionshanterings-id"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Flaggor för sessionshantering:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Visa flaggor för sessionshantering"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Det finns ett problem med konfigurationsservern.\n"
+"(%s avslutades med status %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Ikonen \"%s\" hittades inte"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Okänt"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Ett program körs fortfarande:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Några program körs fortfarande:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid "Waiting for programs to finish. Interrupting these programs may cause you to lose work."
+msgstr "Väntar på att programmen ska köras färdigt. Avbryta dessa program kan innebära att du förlorar data."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Växla användare ändå"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "Logga ut ändå"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Försätt i vänteläge ändå"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Försätt i viloläge ändå"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "Stäng av ändå"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Starta om ändå"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Lås skärmen"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Du kommer automatiskt att loggas ut om %d sekund."
+msgstr[1] "Du kommer automatiskt att loggas ut om %d sekunder."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Systemet kommer automatiskt att stängas av om %d sekund."
+msgstr[1] "Systemet kommer automatiskt att stängas av om %d sekunder."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Du är för närvarande inloggad som \"%s\"."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "Logga ut ur detta system nu?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "_Växla användare"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "_Logga ut"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "Stäng av detta system nu?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "Vä_nteläge"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "Vilolä_ge"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "Starta _om"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "St_äng av"
+
+#: ../mate-session/gsm-manager.c:1214
+#: ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "Svarar inte"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "Detta program blockerar utloggningen."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid "Refusing new client connection because the session is currently being shut down\n"
+msgstr "Avvisar ny klientanslutning på grund av att sessionen är på väg att stängas av\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Kunde inte skapa lyssnande ICE-uttag: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "Kunde inte starta inloggningssession (och kan inte ansluta till X-servern)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "Åsidosätt standardkataloger för automatisk start"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "MateConf-nyckeln som används för att slå upp standardsessionen"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "Aktivera felsökningskod"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "Läs inte in användarspecifika program"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "- MATE-sessionshanteraren"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Logga ut"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Logga ut, ignorera allt som förhindrar det"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Visa utloggningsdialogrutan"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Visa avstängningsdialogrutan"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Använd dialogrutor för fel"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Ange det aktuella sessionsnamnet"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAMN"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Döda session"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Kräv ingen bekräftelse"
+
+#: ../tools/mate-session-save.c:120
+#: ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Kunde inte ansluta till sessionshanteraren"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Program anropat med motsägande flaggor"
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr ""
+#~ "Väntar på att programmet ska köras färdigt. Avbryta program kan innebära "
+#~ "att du förlorar data."
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "Hjälp för MATE-inställningsdemon"
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "Om detta är aktiverat kommer mate-session att spara sessionen "
+#~ "automatiskt. Annars kommer utloggningsdialogen att ha ett alternativ för "
+#~ "att spara sessionen."
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "Föredragen bild att använda som startbild vid inloggning"
+#~ msgid "Show the splash screen"
+#~ msgstr "Visa startbilden"
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "Visa startbilden då sessionen startar"
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+#~ msgstr ""
+#~ "Detta är en relativ sökväg som baseras på katalogen $datadir/pixmaps/. "
+#~ "Giltiga värden är underkataloger och bildnamn. Att ändra detta värde "
+#~ "kommer att påverka nästa sessionsinloggning."
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- MATE-startbild"
+#~ msgid "MATE Splash Screen"
+#~ msgstr "MATE-startbild"
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "Stöd för hjälpmedelsteknik har begärts för den här sessionen, men "
+#~ "hjälpmedelsregistret hittades inte. Kontrollera att AT-SPI-paketet är "
+#~ "installerat. Din session har startats utan stöd för hjälpmedelsteknik."
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "Omslag för AT SPI-registret"
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "Namnet för uppstartsprogrammet får inte vara tomt"
+#~ msgid "Sessions Preferences"
+#~ msgstr "Sessionsinställningar"
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Markerat alternativ i utloggningsdialogen"
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "Detta är det alternativ som kommer att vara markerat i "
+#~ "utloggningsdialogen. Giltiga värden är \"logout\" för att logga ut, "
+#~ "\"shutdown\" för att stanna systemet och \"restart\" för att starta om "
+#~ "systemet."
+#~ msgid "Configure your sessions"
+#~ msgstr "Konfigurera dina sessioner"
+#~ msgid "Sessions"
+#~ msgstr "Sessioner"
+#~ msgid "Session management"
+#~ msgstr "Sessionshantering"
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "MATE-bibliotek för grafiskt gränssnitt + EggSMClient"
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "Omslag för MATE-nyckelringsdemon"
+#~ msgid "Play logout sound instead of login"
+#~ msgstr "Spela upp utloggningsljud istället för inloggning"
+#~ msgid "- MATE login/logout sound"
+#~ msgstr "- MATE inloggning-/utloggningsljud"
+#~ msgid "Allow TCP connections"
+#~ msgstr "Tillåt TCP-anslutningar"
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "Av säkerhetsskäl lyssnar inte mate-session på anslutningar på TCP-portar "
+#~ "på plattformar som har _IceTcpTransNoListen() (XFree86-system). Detta "
+#~ "alternativ tillåter anslutningar från (auktoriserade) fjärrvärdar. mate-"
+#~ "session måste startas om för att detta ska börja gälla."
+
diff --git a/po/ta.po b/po/ta.po
new file mode 100644
index 0000000..87eb945
--- /dev/null
+++ b/po/ta.po
@@ -0,0 +1,588 @@
+# translation of mate-session.HEAD.ta.po to Tamil
+# translation of ta.po to
+# Tamil translation of Mate-Session messages.
+# Copyright (C) 2001, 2004, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+#
+# Dinesh Nadarajah <[email protected]>, 2004.
+# Jayaradha N <[email protected]>, 2004.
+# Felix <[email protected]>, 2006.
+# Dr.T.Vasudevan <[email protected]>, 2007, 2008, 2009, 2010.
+# I. Felix <[email protected]>, 2008, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.HEAD.ta\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-03 19:53+0530\n"
+"PO-Revision-Date: 2010-09-03 19:56+0530\n"
+"Last-Translator: Dr.T.Vasudevan <[email protected]>\n"
+"Language-Team: Tamil <<[email protected]>>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\\n"
+"\n"
+"\n"
+"X-Generator: Lokalize 1.0\n"
+
+# gsm/session-properties-capplet.c:292
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "கட்டளையை தேர்ந்தெடு"
+
+# gsm/startup-programs.c:391
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "துவக்க நிரலுக்கு சேர் "
+
+# gsm/startup-programs.c:391
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "துவக்க நிரலை தொகு"
+
+# gsm/startup-programs.c:333
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "துவக்க கட்டளை காலியாக இருக்க முடியாது"
+
+# gsm/startup-programs.c:333
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "துவக்க கட்டளை செல்லுபடியாகாதது"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "செயலாக்கப்பட்டது"
+
+# gsm/logout.c:240
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "சின்னம்"
+
+# gsm/gsm-client-list.c:112
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "நிரல்"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "துவக்க பயன்பாடுகள் விருப்பங்கள்"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "பெயர் இல்லை"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "விவரணம் இல்லை"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "இந்த பயன்பாட்டின் பதிப்பு "
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "உதவி ஆவணத்தை காட்ட இயலவில்லை"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "இந்த அமர்வு க்நோம் இல் உங்களை நுழைக்கும் "
+
+# gsm/save-session.c:43
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "முன்னிருப்பு அமர்வு"
+
+# gsm/splash.c:67
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "சாளர மேலாளர்"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "செயல்படுத்தப்பட்ட,mate அமர்வுகளை பயன்படுத்தி அமர்வுகளை முடி."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "செயல்படுத்தப்பட்டால், க்னோம் அமர்வை தானியங்கியாக சேமிக்கும்."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "முன்னிருப்பு அமர்வுக்கு பங்களிக்கும் பயன்பாடுகள்."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"அமர்வின் பாகமாக அவசியம் இருக்க வேண்டிய உருப்புகளின் பட்டியல். (ஒவ்வொரு உருப்படியும் \"/"
+"desktop/mate/session/required-components\" இன் கீழ் ஒரு விசையை குறிக்கிறது. "
+"அமர்வு தேர்வுகள் சாதாரணமாக பயனர்களை அவசியம் வேன்டிய உருப்படியை நீக்க அனுமதிக்காது. "
+"அப்படி நீக்கினால் மீண்டும் அமர்வு மேலாளரால் அவை தானியங்கியாக சேர்க்கப்படும்."
+
+# gsm/logout.c:248
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "வெளிச்செல் ப்ராம்ட்"
+
+# gsm/splash.c:65
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "பலகம்"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "தேவையான அமர்வு கூறுகள்"
+
+# gsm/session-properties.c:272
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "அமர்வுகளை சேமிக்கவும்"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"கோப்பு மேலாளர் மேல்மேசை சின்னங்களை அளித்து உங்கள் சேமித்த கோப்புகளுடன் ஊடாட "
+"அனுமதிக்கிறது."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "The number of minutes of inactivity before the session is considered idle."
+msgstr "அமர்வு வெறுமையாக இருப்பதற்கு முன் செயலிழக்கப்பட்ட நிமிடங்கள்"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"பலகம் ஒரு பட்டியை திரையின் மேல் அல்லது கீழ் தருகிறது. இதில் சாளர பட்டியல் இருப்பு "
+"நிலை சின்னங்கள், கடிகாரம் முதலியன இருக்கும்."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"சாளரம் மேலாளர் தலைப்பு பட்டி மற்றும் சாளரங்கள் ஓரத்தில் எல்லைகள் மற்றும் சாளரங்களை "
+"நகர்த்தவும் மற்றும் மறுஅளவு செய்யவும் உதவும் நிரல் "
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "அமர்வுக்கு முன் வெறுமையாக இருக்கும்"
+
+# gsm/splash.c:67
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "சாளரமேலாளர்"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b> சில நிரல்கள் இன்னும் ஒடுகிறன</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr ""
+"நிரல் இயங்கி முடிய காத்திருக்கிறது. நிரல் இயக்கத்தை தடை செய்வது உங்கள் வேலையை "
+"சேமிக்காமல் போகச் செய்யும்."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "நீங்கள் புகுபதிவு செய்யும் போது எந்த பயன்பாடுகள் தேர்ந்தெடுக்கப்படவேண்டும்"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "துவக்க பயன்பாடுகள்"
+
+# gsm/startup-programs.c:373
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "மேலும்சில தொடங்க _நிரல்கள்:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "உலாவு... "
+
+# gsm/session-properties-capplet.c:292
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "(_m) கட்டளை:"
+
+# gsm/session-properties-capplet.c:292
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "(_e) குறிப்புரை:"
+
+# gsm/session-properties-capplet.c:262
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "தேர்வுகள்"
+
+# gsm/session-properties-capplet.c:330
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "தொடங்கும் போது இயக்கும் நிரல்கள்"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "தானியங்கியாக வெளியேறும் போது இயங்கும் பயன்பாடுகளை நினைவில் கொள்க"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "பெயர்: (_N)"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "(_R) இப்போது இயங்கும் பயன்பாடுகளை நினைவில் கொள்க"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "கோப்பு செல்லுபடியாகும் (.desktop) மேல்மேசை கோப்பு அல்ல"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "இனம் காணா மேல்மேசை கோப்பு பதிப்பு '%s'"
+
+# gsm/gsm-client-row.c:36
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "%s ஐ தொடங்குகிறது"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "பயன்பாடு ஆவணங்களை கட்டளை வரியில் ஒப்புக்கொள்ளவில்லை."
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "இனம் காண இயலாத துவக்க தேர்வு: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "'Type=Link' மேல்மேசை உள்ளீடுக்கு ஆவண யூஆர்ஐ ஐ கொடுக்க இயலாது."
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "தொடங்கக்கூடிய உருப்படி அல்ல."
+
+# gsm/save-session.c:93
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "அமர்வு மேலாளருடன் இணைப்பை விலக்கு"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "சேமித்த வடிவமைப்பு உள்ள கோப்பை குறிப்பிடுக."
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "கோப்பு "
+
+# gsm/main.c:65
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "அமர்வின் அடையாளத்தை குறிப்பிடு"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "அடையாளம் "
+
+# gsm/session-properties-capplet.c:262
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "அமர்வு மேலாண்மை தேர்வுகள்:"
+
+# gsm/session-properties-capplet.c:262
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "அமர்வு மேலாண்மை தேர்வுகளை காட்டுக"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"வடிவமைப்பு சேவையகத்துடன் ஒரு பிரச்சினை உள்ளது\n"
+"(%s வெளியேறியது நிலை %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "'%s' சின்னம் காணப்படவில்லை"
+
+# gsm/gsm-client-row.c:45
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "தெரியாத"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "ஒரு நிரல் இன்னும் ஒடுகிறது:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "நிரல்கள் சில இன்னும் ஒடுகின்றன:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr " காத்திருத்தல் க்கு வரை முடி நிரல்கள் வரை."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "எப்படியும் பயனரை மாற்று"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "எப்படி இருந்தாலும் வெளியேறுக."
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "எப்படியும் இடை நிறுத்தம் செய்க"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "எப்படி இருந்தாலும் உள்நுழையவும்."
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "எப்படி இருந்தாலும் கணினியை நிறுத்தவும்"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "எப்படி இருந்தாலும் மீள்துவக்கவும்"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "திரையைப் பூட்டுக."
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "ரத்து செய்க"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "நீங்கள் தானாக %d வினாடியில் வெளியேற்றப்படுவீர்கள்."
+msgstr[1] "நீங்கள் தானாக %d வினாடிகளில் வெளியேற்றப்படுவீர்கள்."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "இந்த கணினி தானாக %d வினாடியில் பணி நிறுத்தம் செய்யும்."
+msgstr[1] "இந்த கணினி தானாக %d வினாடிகளில் பணி நிறுத்தம் செய்யும்."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "நீங்கள் தற்போது \"%s\" ஆக புகுபதிவு செய்துள்ளீர்கள்."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "கணினியிலிருந்து இப்போது வெளிச்செல்லவா? "
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "(_S) பயனரை மாற்றுக"
+
+# panel/logout.c:73 panel/menu.c:5339
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "(_L) விலகவும்"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "இப்போது இந்த கணினியை நிறுத்தவா? "
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "இடை நிறுத்தம் (_u)"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "செயலற்றிருத்தல் (_H)"
+
+# applets/tasklist/tasklist_menu.c:258
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "(_R) மீட்டமை"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "(_S) பணி நிறுத்தம் செய்யவும்"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "பதிலளிக்க இல்லை"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "இந்த நிரல் வெளியேறுவதை தடுக்கிறது"
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "புதிய சார்ந்தோன் இணைப்பை மறுக்கிறது; ஏனெனில் இப்போதைய அமர்வு மூடப்படுகிறது\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ஐஸ் கேட்கும் பொருத்துவாயை உருவாக்க முடியவில்லை : %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+"உள்நுழைவு அமர்வை துவக்க முடியவில்லை ( மற்றும் எக்ஸ் சேவையகத்துடன் இணைக்க இயலவில்லை)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "செந்தர தானியங்கி அடைவுகளை வலுவாக புறக்கணி"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "முன்னிருப்பு அமர்வை காண ஜிகான்ஃப் விசை பயன்பட்டது "
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "பிழைத்திருத்த குறியீட்டை செயல்படுத்து."
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "பயனர் குறித்த நிரல்களை ஏற்றாதே"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "- க்னோம் அமர்வு மேலாலாளர்"
+
+# panel/logout.c:73 panel/menu.c:5339
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "வெளியேறுக"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "உள்நுழை, ஏதாவது தடை வரின் அவற்றை உதாசீனம் செய்க"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "வெளியேற்ற உரையாடலை காட்டுக"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "கணினி நிறுத்த உரையாடலை காட்டுக"
+
+# gsm/save-session.c:44
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "பிழைகளுக்கு உரையாடல் பெட்டிகளை உபயோகி"
+
+# gsm/session-properties-capplet.c:206
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "நடப்பு அமர்வு பெயரை அமைக்கவும்"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAME"
+
+# gsm/save-session.c:43
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "அமர்வைக் கொல்"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "உறுதிபடுத்தல் தேவையில்லை"
+
+# gsm/save-session.c:93
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "அமர்வு மேலாளருடன் இணைக்க முடியவில்லை"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "நிரல் முரணான தேர்வுகளை அழைத்தது"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "உதவி தொழில்நுட்ப ஆதரவு இந்த அமர்வுக்கு வேண்டப்பட்டது. ஆனால் அணுகல் பதிவேடு "
+#~ "காணப்படவில்லை. AT-SPI பொதி நிறுவப்பட்டுள்ளதா என சோதிக்கவும். உங்கள் அமர்வு உதவி "
+#~ "தொழில்நுட்ப ஆதரவு இல்லாமல் துவக்கப்பட்டுள்ளது."
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "AT SPI பதிவேட்டு உறை"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "MATE அமைப்புகள் டெய்மன் உதவியாளர்"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr "செயல்படுத்தப்பட்ட mate -அமர்வுகளை தானாகவே சேமித்துக்கொள்ள முடியும்."
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "உள் அனுமதி திரையில் விரும்பிய படத்தை பயன்படுத்தவும்"
+
+# gsm/session-properties-capplet.c:192
+#~ msgid "Show the splash screen"
+#~ msgstr "தொடக்க ஓவியத்தைக் காண்பிக்கவும்"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "அமர்வு தொடங்கும்போது தொடக்க-ஓவியம் காண்பிக்கவும்"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+#~ msgstr ""
+#~ "$datadir/pixmaps/ அடைவுக்கு தொடர்புடைய பாதையாகும். துணை-அடைவுகள் மற்றும் பட "
+#~ "பெயர்கள் ஆகியவை சரியான மதிப்புகளாகும். இந்த மதிப்புகளை மாற்றினால்அடுத்த அமர்வினை "
+#~ "பாதிக்கும்."
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr ""
+#~ "நிரல் இயங்கி முடிய காத்திருக்கிறது. நிரல் இயக்கத்தை தடை செய்வது உங்கள் வேலையை "
+#~ "சேமிக்காமல் போகச் செய்யும்."
+
+# gsm/session-properties-capplet.c:192
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "க்னோம் தொடக்க ஓவியம்"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "க்னோம் துவக்க திரை"
+
+# gsm/startup-programs.c:333
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "துவக்க நிரல் பெயர் காலியாக இருக்க முடியாது"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "அமர்வுகள் விருப்பங்கள்"
diff --git a/po/te.po b/po/te.po
new file mode 100644
index 0000000..fb836bd
--- /dev/null
+++ b/po/te.po
@@ -0,0 +1,538 @@
+# translation of mate-session.master.te.po to Telugu
+# Telugu translation of mate-session.
+# Copyright (C) 2007 Swecha Telugu Localisation team <[email protected]>
+# This file is distributed under the same license as the mate-session package.
+#
+# Pavan Kumar <[email protected]>, 2007.
+# Y.Kiran Chandra <[email protected]>, 2007.
+# J.Bharat Kumar <[email protected]>, 2007.
+# Krishna Babu K <[email protected]>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session.master.te\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-session&component=general\n"
+"POT-Creation-Date: 2009-09-07 17:27+0000\n"
+"PO-Revision-Date: 2009-09-17 17:15+0530\n"
+"Last-Translator: Krishna Babu K <[email protected]>\n"
+"Language-Team: Telugu <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
+"\n"
+"\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "ఆదేశం యెంపికచేయుము"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "ప్రారంభ కార్యక్రమాన్ని జతచేయుము"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "ప్రారంభ కార్యక్రమాన్ని సరిచేయు"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "ప్రారంభ ఆదేశం ఖాళీగా ఉండరాదు"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "ప్రారంభ ఆదేశం సరియైనదికాదు"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "క్రియాశీలీకరించబడిన"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "ప్రతిమ"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "కార్యక్రమం"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "ప్రారంభ అనువర్తనముల అభీష్టములు"
+
+#: ../capplet/gsp-app.c:269
+#| msgid "_Name:"
+msgid "No name"
+msgstr "నామము లేదు"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "వివరణ లేదు"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "ఈ అనువర్తనం యొక్క వర్షన్"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "సహాయ పత్రమును ప్రదర్శించలేక పోయింది"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "MATE అమరికల డెమోన్ సహాయకి"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "ఈ విభాగము MATEనకు లాగ్ చేస్తుంది"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "అప్రమేయ విభాగము"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "దస్త్ర నిర్వాహకి"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "క్రియాశీలీకరించిన,సమకూర్పు ముగిసే ముందు గ్నోమ్-సమకూర్పు వినియోగదారుడిని అడుగుతుంది "
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"క్రియాశీలీకరించిన,గ్నోమ్-సమకూర్పు స్వయంచాలకంగా దాచుతుంది. లేనిచో, నిష్క్రమణ ద్వారం సంభాషణ సమకూర్పుని "
+"ఇచ్ఛాపూర్వకంగా దాచుతుంది. "
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "అప్రమేయ విభాగమునందు భాగస్వామ్యం గలిగిన అనువర్తనముల జాబితా."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"విభాగమునందు భాగముగా అవసరమైన మూలకముల(కాంపోనెంట్సు)ను జాబితా చేయుము. (ప్రతి మూలకము \"/desktop/"
+"mate/session/required_components\" క్రింద వొక కీకు నామము వుంచుతుంది). ప్రారంభపు "
+"అనువర్తనముల ఆభీష్టాల సాధనం సాధారణంగా విభాగమునుండి అవసరమైన మూలకమును తీసివేయుటకు వినియోగదారులను "
+"అనుమతించదు, వొకవేళ వారు తీసివేసినట్లైతే విభాగపు నిర్వాహకి అవసరమైన మూలకాలను మరలా తిప్పి విభాగమునకు లాగిన్ "
+"సమయమందు స్వయంచాలకంగా జతచేస్తుంది."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "నిష్క్రమణ ద్వారం"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "ప్యానల్"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "స్ప్లాష్ తెర ప్రవేశానికి ఉపయోగించతగిన ప్రతిరూపం "
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "అవసరమైన విభాగపు మూలకములు"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "సమకూర్పులను దాచుము"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "స్ప్లాష్ తెరను చూపుము"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "సమకూర్పు మొదలైనప్పుడు స్ప్లాష్ తెరను చూపుము"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"దస్త్ర నిర్వాహిక డెస్కుటాప్ ప్రతిమలను అందిస్తుంది మరియు మీరు దాచిన దస్త్రములతో మీరు యింటరాక్టు అగుటకు "
+"అనుమతించును."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "The number of minutes of inactivity before the session is considered idle."
+msgstr "ఎన్ని నిముషాల అచేతనం తరువాత సమకూర్పు తీరికగా ఉందని భావించాలి."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"ఆ ప్యానల్ అనునది పైన కాని లేదా తెర క్రిందవైపున కాని పట్టీను అందిస్తుంది, అది మెనూలను, విండొ జాబితాను, "
+"స్థితి ప్రతిమలను, గడియారాన్ని, మొదలైనవి అందిస్తుంది."
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"విండో నిర్వాహిక అనునది ప్రోగ్రామ్ అది శీర్షిక పట్టీని మరియు హద్దులను విండోలచూట్టూ గీస్తుంది, మరియు విండోను "
+"పునఃపరిమాణం చేయుటకు కదుల్చుటకు మిమ్ములను అనుమతిస్తుంది."
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"$datadir/pixmaps/·వివరము ఆధారంగా సాపేక్షంగా తీసుకోబడిన దారి .ఉప వివరాలు మరియు ప్రతిరూపనామాలు "
+"చెల్లుబడి అయ్యే విలువలు.ఈ విలువ మార్పు భవిష్యత్ సమకూర్పుల ప్రవేశములో ప్రభావము చూపెను."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "సమకూర్పు తీరికగా భావించక ముందు సమయం"
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "గవాక్ష నిర్వాహకి"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>కొన్ని ప్రోగ్రామ్లు యింకనూ నడుచుచున్నవి:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"ప్రోగ్రాము ముగింపు కొరకు వేచివుంది. ప్రోగ్రామును ఆటంకపరచుట అనునది మీరు పనిని కొల్పోవుటకు కారణం "
+"కావచ్చును."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "మీరు లాగిన్ అయినప్పుడు ఏ అనువర్తనములు ప్రారంభము కావలెనో యెంచుకొనుము"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "ప్రారంభ అనువర్తనములు"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "అదనపు ప్రారంభ కార్యక్రమాలు (_p):"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "అన్వేషించుము..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "ఆదేశం (_m):"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "వ్యాఖ్య (_e):"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "ఐచ్చికములు"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "ప్రారంభ కార్యక్రమాలు"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "నిష్క్రమించేటప్పుడు నడుస్తున్న కార్యక్షేత్రాలని స్వయంచాలకంగా గుర్తుంచుకొనుము (_A)"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "పేరు (_N):"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "ప్రస్తుతము నడుస్తున్న అనువర్తనమును గుర్తుంచుకొనుము (_R)"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "ఫైలు చెల్లునటువంచి .desktop ఫైలు కాదు"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "గుర్తించబడని డెస్కుటాపు ఫైలు వర్షన్ '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "%s ప్రారంభిస్తోంది"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "ఆదేశవరుస నందు అనువర్తనములు పత్రములను ఆంగీకరించవు"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "గుర్తించబడని ప్రారంభ ఐచ్చికము: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "పత్రము URIలను Type=Link' desktop entry కు పంపలేదు."
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "దించదగిన అంశము కాదు"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "విభాగము నిర్వాహికకు అనుసంధానమును అచేతనము చేయుము"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "దాచివున్న ఆకృతీకరణను కలిగివున్న ఫైలు తెలుపుము"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FILE"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "విభాగము నిర్వహణా IDను తెలుపుము"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ఐడి"
+
+#: ../egg/eggsmclient.c:252
+#| msgid "Session Management Options"
+msgid "Session management options:"
+msgstr "సెషన్ నిర్వాహణా ఐచ్చికములు:"
+
+#: ../egg/eggsmclient.c:253
+#| msgid "Show Session Management options"
+msgid "Show session management options"
+msgstr "సెషన్ నిర్వాహణా ఐచ్చికాలను చూపుము"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"ఆకృతీకరణ సేవికతో అక్కడ కొంత సమస్యవుంది.\n"
+"(%s అనునది %d స్థితితో నిష్క్రమించినది)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "ప్రతిమ '%s' కనబడలేదు"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "అపరిచిత"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "ఒక ప్రోగ్రామ్ యిప్పటికీ నడుచుచున్నది:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "కొన్ని ప్రోగ్రాములు యిప్పటికి నడుచుచున్నవి:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"ప్రాగ్రాముల ముగింపు కొరకు వేచివుంది. ఈ ప్రోగ్రాములను ఆటంకపరచుట అనునది మీ పని కోల్పోవుటకు కారణం "
+"కావచ్చును."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "ఏమైనప్పటికి వినియోగదారిని మార్చుము"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "ఎలాగైనా లాగ్అవుట్ అవ్వుము"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "ఎలాగైనా అర్దాంతరముగా నిలిపివేయి"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "ఎలాగైనా హైబర్నేట్ చేయుము"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "ఎలాగైనా మూసివేయుము"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "ఎలాగైనా పునఃప్రారంభించుము"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "స్క్రీన్ లాక్‌చేయుము"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "రద్దు"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "మీరు స్వయంచాలకంగా %d సేకనులో లాగ్అవుట్ అవుతారు."
+msgstr[1] "మీరు స్వయంచాలకంగా %d సెకనులలో లాగ్అవుట్ అవుతారు."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "సిస్టమ్ స్వయంచాలకంగా %d సెకనులో మూసివేయబడుతుంది."
+msgstr[1] "సిస్టమ్ స్వయంచాలకంగా %d సెకనులలో మూసివేయబడుతుంది."
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "మీరు ప్రస్తుతం \"%s\" వలె లాగై వున్నారు."
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "ఈ సిస్టమ్ నుండి ఇప్పుడే లాగ్అవుట్ అవ్వాలా?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "వినియోగదారున్ని మార్చు(_S)"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "లాగ్అవుట్ (_L)"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "ఈ సిస్టమ్ ను ఇప్పుడే మూసివేయాలా?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "అర్ధాంతరంగానిలిపివేయి (_u)"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "షుప్తావస్థ (_H)"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "పునఃప్రారంభించు (_R)"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "మూసివేయి (_S)"
+
+#: ../mate-session/gsm-manager.c:1158 ../mate-session/gsm-manager.c:1850
+msgid "Not responding"
+msgstr "స్పందించుటలేదు"
+
+#: ../mate-session/gsm-xsmp-client.c:1206
+msgid "This program is blocking log out."
+msgstr "ఈ ప్రోగ్రామ్ లాగ్అవుట్‌ను నిరోధిస్తోంది."
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "కొత్త కక్షిదారి అనుసంధానమును తిరస్కరిస్తోంది యెంచేతంటే విభాగము అనునది ప్రస్తుతము మూసివేయబడుతోంది\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ICE లిజనింగ్ సాకెట్‌ను సృష్టించలేక పోయింది: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "లాగిన్ విభాగమును ప్రారంభించలేక పోయింది (మరియు X సేవికకు అనుసంధానము కాలేక పోయింది)"
+
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr "ప్రామాణిక స్వయంచాలక డైరెక్టరీలను తిరిగివ్రాయుము"
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr "అప్రమేయ సెషన్‌ను చూచుకొనుటకు MateConf కీ వుపయోగించబడింది"
+
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr "డీబగ్గింగ్ సంహిత ను చేతనంచేయి"
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr "వినియోగదారి-తెలిపిన అనువర్తనములను లోడుచేయలేక పోయింది"
+
+#: ../mate-session/main.c:457
+msgid " - the MATE session manager"
+msgstr " -MATE సెషన్ నిర్వాహిక"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- MATE స్ప్లాష్ తెర"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "MATE స్ప్లాష్ తెర"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "లాగ్ అవుట్"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "లాగ్ అవుట్, వున్నటువంటి ఏ ఇన్హిబిటర్సునైనా వదిలివేయుచున్నది"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "లాగ్అవుట్ డైలాగును చూపుము"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "మూసివేత డైలాగును చూపుము"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "దోషాలకు సంభాషణపేటికలు వాడుము"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "ప్రస్తుత సమకూర్పు పేరు ని అమర్చుము."
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "పేరు"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "సమకూర్పును చంపుము"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "దృవీకరణ అక్కర్లేదు"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "సమకూర్పు నిర్వాహకి తో బంధం సాధ్యపడలేదు"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "విభేదిస్తున్న ఐచ్చికాలతో పిలువబడిన ప్రోగ్రామ్"
+
diff --git a/po/th.po b/po/th.po
new file mode 100644
index 0000000..3d47361
--- /dev/null
+++ b/po/th.po
@@ -0,0 +1,951 @@
+# Thai translation for mate-session.
+# Copyright (C) 2003-2009 Free Software Foundation, Inc.
+# This file is distributed under the same license as the mate-session package.
+#
+# Ranee Somchaimit <[email protected]>, 2003
+# Paisa Seeluangsawat <[email protected]>, 2004
+# Theppitak Karoonboonyanan <[email protected]>, 2005-2009
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2009-08-23 13:44+0700\n"
+"PO-Revision-Date: 2009-08-23 16:25+0700\n"
+"Last-Translator: Theppitak Karoonboonyanan <[email protected]>\n"
+"Language-Team: Thai <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "เลือกคำสั่ง"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "เพิ่มโปรแกรมเริ่มวาระ"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "แก้ไขโปรแกรมเริ่มวาระ"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "คำสั่งที่ให้เรียกเมื่อเริ่มวาระจะว่างไม่ได้"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "คำสั่งที่ให้เรียกเมื่อเริ่มวาระผิดพลาด"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "เปิดใช้"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "ไอคอน"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "โปรแกรม"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "ปรับแต่งโปรแกรมเริ่มวาระ"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "ไม่มีชื่อ"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "ไม่มีคำบรรยาย"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "รุ่นของโปรแกรมนี้"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "ไม่สามารถแสดงเอกสารวิธีใช้"
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+"มีการร้องขอการรองรับเทคโนโลยีอำนวยความสะดวกในวาระนี้ "
+"แต่ไม่พบเรจิสตรีสำหรับระบบอำนวยความสะดวก กรุณาตรวจสอบให้แน่ใจ ว่าได้ติดตั้งแพกเกจ AT-SPI "
+"เรียบร้อย วาระนี้ของคุณจะเปิดโดยไม่มีการรองรับเทคโนโลยีอำนวยความสะดวก"
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr "โปรแกรมครอบเรจิสตรี AT SPI"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "ตัวช่วยดีมอนค่าตั้ง MATE"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "วาระนี้จะเข้าสู่ MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "วาระปริยาย"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "โปรแกรมจัดการแฟ้ม"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "เลือกแล้ว mate-session จะถามผู้ใช้ก่อนจะออกจากการใช้งาน"
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"เลือกแล้ว mate-session จะบันทึกรายละเอียดวาระโดยอัตโนมัติ "
+"มิฉะนั้นคุณจะถูกถามในหน้าต่างออกจากระบบว่าจะบันทึกวาระหรือไม่"
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "รายชื่อโปรแกรมที่จะเปิดในวาระปริยาย"
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"รายชื่อองค์ประกอบที่จำเป็นสำหรับวาระ (สมาชิกแต่ละตัวเป็นคีย์ที่อยู่ใต้ \"/desktop/mate/"
+"session/required-components\") โดยปกติ "
+"เครื่องมือปรับแต่งโปรแกรมเริ่มวาระจะไม่ให้ผู้ใช้ลบองค์ประกอบที่จำเป็นออกจากวาระ และถ้าถูกลบจริง "
+"โปรแกรมจัดการวาระก็จะเพิ่มองค์ประกอบที่จำเป็นกลับเข้าในวาระให้โดยอัตโนมัติขณะเข้าระบบ"
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "ถามก่อนจะออกจากระบบ"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "พาเนล"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "รูปไตเติลที่จะแสดงขณะกำลังเข้าสู่ระบบ"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "องค์ประกอบที่จำเป็นของวาระ"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "รักษารายละเอียดวาระ"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "แสดงรูปไตเติลเมื่อเริ่มระบบ"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "แสดงรูปไตเติลขณะที่กำลังเข้าสู่ระบบ"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"โปรแกรมจัดการแฟ้ม จะเตรียมไอคอนต่างๆ บนพื้นโต๊ะ และช่วยคุณโต้ตอบกับแฟ้มต่างๆ ที่เก็บไว้ในดิสก์"
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "จำนวนนาทีของช่วงไร้กิจกรรมที่จะเริ่มถือว่าวาระไม่มีการใช้งาน"
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"พาเนลคือแถบที่ด้านบนหรือด้านล่างหน้าจอ บรรจุเมนู รายชื่อหน้าต่าง ไอคอนสถานะ นาฬิกา ฯลฯ"
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"โปรแกรมจัดการหน้าต่าง คือโปรแกรมที่วาดแถบหัวและกรอบรอบหน้าต่าง "
+"และให้คุณย้ายหรือปรับขนาดหน้าต่างได้"
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"ใช้ชื่อพาธเทียบกับไดเรกทอรี $datadir/pixmaps/ "
+"โดยกำหนดเป็นไดเรกทอรีย่อยลงไปจนถึงชื่อแฟ้มรูป การเปลี่ยนค่านี้จะมีผลในการเข้าระบบครั้งหน้า"
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "ระยะเวลาที่จะเริ่มถือว่าวาระไม่มีการใช้งาน"
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "โปรแกรมจัดการหน้าต่าง"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>ยังมีบางโปรแกรมทำงานอยู่:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr "จะรอให้โปรแกรมทำงานจบ การขัดจังหวะโปรแกรมอาจทำให้เสียงานบางอย่างของคุณไป"
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "เลือกโปรแกรมที่จะเปิดเมื่อคุณเข้าระบบ"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "โปรแกรมเริ่มวาระ"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "โ_ปรแกรมเริ่มวาระเพิ่มเติม:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "เรียกดู..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_คำสั่ง:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "ห_มายเหตุ:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "ตัวเลือก"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "โปรแกรมเริ่มวาระ"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "จำรายชื่อโปรแกรมที่ทำงานอยู่โดย_อัตโนมัติเมื่อออกจากระบบ"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_ชื่อ:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_จำรายชื่อโปรแกรมที่ทำงานอยู่"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "แฟ้มนี้ไม่ใช่แฟ้ม .desktop ที่ใช้ได้"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "ไม่รู้จักแฟ้มเดสก์ท็อปรุ่น '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "กำลังเริ่ม %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "โปรแกรมไม่รับเอกสารในบรรทัดคำสั่ง"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "ไม่รู้จักตัวเลือกของการเรียกโปรแกรม: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "ไม่สามารถส่ง URI ของเอกสารไปยังรายการเดสก์ท็อปที่มี 'Type=Link'"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "ไม่ใช่รายการที่เรียกทำงานได้"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "ปิดใช้การเชื่อมต่อไปยังโปรแกรมจัดการวาระ"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "ระบุแฟ้มที่บันทึกค่าตั้งไว้"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "FILE"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "ระบุหมายเลขการจัดการวาระ"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "ตัวเลือกเกี่ยวกับการจัดการวาระ:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "แสดงตัวเลือกเกี่ยวกับการจัดการวาระ"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"มีปัญหากับเซิร์ฟเวอร์ค่าตั้ง\n"
+"(%s จบการทำงานด้วยรหัสสถานะ %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "ไม่พบไอคอน '%s'"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "ไม่ทราบ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "มีโปรแกรมที่ยังทำงานอยู่:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "ยังมีบางโปรแกรมทำงานอยู่:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr "จะรอให้โปรแกรมเหล่านี้ทำงานจบ การขัดจังหวะโปรแกรมอาจทำให้เสียงานบางอย่างของคุณไป"
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "ยืนยันการสลับผู้ใช้"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "ยืนยันการออกจากระบบ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "ยืนยันการพักเครื่อง"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "ยืนยันการจำศีลเครื่อง"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "ยืนยันการปิดเครื่อง"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "ยืนยันการเปิดเครื่องใหม่"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "ล็อคหน้าจอ"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "ยกเลิก"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "คุณจะออกจากระบบโดยอัตโนมัติภายใน %d วินาที"
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "ระบบจะปิดโดยอัตโนมัติภายใน %d วินาที"
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "คุณกำลังเข้าระบบในนาม \"%s\""
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "ออกจากระบบเดี๋ยวนี้เลยหรือไม่?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "_สลับผู้ใช้"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "_ออกจากระบบ"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "ปิดเครื่องเดี๋ยวนี้เลยหรือไม่?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "_พักเครื่อง"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "_จำศีลเครื่อง"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "_เปิดเครื่องใหม่"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "ปิ_ดเครื่อง"
+
+#: ../mate-session/gsm-manager.c:1158 ../mate-session/gsm-manager.c:1850
+msgid "Not responding"
+msgstr "ไม่ตอบสนอง"
+
+#: ../mate-session/gsm-xsmp-client.c:1206
+msgid "This program is blocking log out."
+msgstr "โปรแกรมนี้ระงับการออกจากระบบอยู่"
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "ไม่รับการเชื่อมต่อใหม่จากลูกข่าย เพราะวาระกำลังปิดตัว\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ไม่สามารถสร้างซ็อกเก็ตรอรับการเชื่อมต่อ ICE: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "ไม่สามารถเริ่มวาระเข้าระบบ (และไม่สามารถเชื่อมต่อไปยังเซิร์ฟเวอร์เอ็กซ์)"
+
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr "กำหนดค่าไดเรกทอรีเริ่มต้นอัตโนมัติทับค่ามาตรฐาน"
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr "คีย์ MateConf ที่ใช้เปิดหาวาระปริยาย"
+
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr "เปิดใช้โค้ดส่วนดีบั๊ก"
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr "ไม่ต้องโหลดโปรแกรมที่ผู้ใช้ระบุไว้"
+
+#: ../mate-session/main.c:457
+msgid " - the MATE session manager"
+msgstr "- โปรแกรมจัดการวาระ MATE"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- รูปไตเติลเริ่มระบบ MATE"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "รูปไตเติลเริ่มระบบ MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "ออกจากระบบ"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "ออกจากระบบ โดยไม่สนใจการระงับต่างๆ ที่มีอยู่"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "แสดงกล่องโต้ตอบออกจากระบบ"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "แสดงกล่องโต้ตอบปิดเครื่อง"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "ใช้กล่องโต้ตอบแสดงข้อผิดพลาด"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "กำหนดชื่อวาระปัจจุบัน"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "NAME"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "ฆ่าวาระ"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "ไม่ต้องถามการยืนยัน"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "ติดต่อโปรแกรมจัดการวาระไม่สำเร็จ"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "โปรแกรมถูกเรียกด้วยตัวเลือกที่ขัดแย้งกันเอง"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "คำสั่งที่ให้เรียกเมื่อเริ่มวาระจะว่างไม่ได้"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "ปรับแต่งวาระ"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "ตัวเลือกที่เลือกในกล่องโต้ตอบออกจากระบบ"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "ตัวเลือกที่จะเลือกไว้เมื่อเปิดกล่องโต้ตอบออกจากระบบ ค่าที่เป็นไปได้คือ \"logout\" "
+#~ "สำหรับการออกจากระบบ, \"shutdown\" สำหรับการปิดเครื่อง และ \"restart\" "
+#~ "สำหรับการเริ่มการทำงานของเครื่องใหม่"
+
+#~ msgid "Configure your sessions"
+#~ msgstr "ตั้งค่าสำหรับวาระของคุณ"
+
+#~ msgid "Sessions"
+#~ msgstr "วาระ"
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "โปรแกรมครอบดีมอนพวงกุญแจ MATE"
+
+#~ msgid "Session management"
+#~ msgstr "การจัดการวาระ"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "ไลบรารี GUI ของ MATE + EggSMClient"
+
+#~ msgid ""
+#~ "The Window manager that mate-session will start. Valid values are "
+#~ "\"marco\" and \"compiz\"."
+#~ msgstr ""
+#~ "โปรแกรมจัดการหน้าต่างที่ mate-session จะเรียกใช้ ค่าที่ใช้ได้คือ \"marco\" และ "
+#~ "\"compiz\""
+
+#~ msgid "Window Manager to start"
+#~ msgstr "โปรแกรมจัดการหน้าต่างที่จะเรียกใช้"
+
+#~ msgid "gtk-cancel"
+#~ msgstr "gtk-cancel"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "ยอมรับการเชื่อมต่อ TCP"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "บนเครื่องที่มี _IceTcpTransNoListen() (เช่นเครื่องที่ใช้ XFree86) เพื่อความปลอดภัย "
+#~ "mate-session จะไม่รับการติดต่อ TCP ตั้งค่านี้แล้วโปรแกรมจะ "
+#~ "รับการติดต่อจากเครื่องที่อนุญาต ต้องเริ่ม mate-session ใหม่ก่อนที่ค่าตั้งจะเริ่มบังคับใช้"
+
+#~ msgid "_Order:"
+#~ msgstr "_ลำดับ:"
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "เกิดอะไรขึ้นกับโปรแกรมเมื่อมันทำงานเสร็จ"
+
+#~ msgid "_Style:"
+#~ msgstr "_แบบ:"
+
+#~ msgid "Inactive"
+#~ msgstr "ไม่ทำงานอยู่"
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "รอจะเริ่ม หรือ สำเร็จแล้ว"
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "เริ่มแล้วแต่ยังไม่รายงานสถานะ"
+
+#~ msgid "Running"
+#~ msgstr "ทำงานอยู่"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "สมาชิกปกติของวาระ"
+
+#~ msgid "Saving"
+#~ msgstr "กำลังบันทึก"
+
+#~ msgid "Saving session details."
+#~ msgstr "การบันทึกรายละเอียดวาระ"
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "ไม่มีรายงานสถานะก่อนหมดเวลา"
+
+#~ msgid "Normal"
+#~ msgstr "ปกติ"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "ไม่ถูกกระทบตอนออกจากระบบ แต่หยุดทำงานได้"
+
+#~ msgid "Never allowed to die."
+#~ msgstr "ไม่อนุญาตให้หยุดการทำงาน"
+
+#~ msgid "Trash"
+#~ msgstr "ถังขยะ"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "ละทิ้งตอนออกจากระบบ และสามารถหยุดการทำงานได้"
+
+#~ msgid "Settings"
+#~ msgstr "ค่าตั้ง"
+
+#~ msgid "Always started on every login."
+#~ msgstr "เริ่มการทำงานทุกครั้งที่เข้าสู่ระบบ"
+
+#~ msgid "Order"
+#~ msgstr "ลำดับ"
+
+#~ msgid "Style"
+#~ msgstr "แบบ"
+
+#~ msgid "State"
+#~ msgstr "สถานะ"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "เกิดข้อผิดพลาดขณะเริ่มดีมอนจัดการค่าตั้งของ MATE\n"
+#~ "\n"
+#~ "บางสิ่งบางอย่าง เช่น ชุดตกแต่ง เสียง พื้นหลัง หรือ สิ่งอื่น ๆ อาจทำงานไม่ถูกต้อง"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "ข้อความผิดพลาดสุดท้ายคือ:\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "MATE จะพยายามเรียกดีมอนจัดการค่าตั้งอีกครั้งเมื่อคุณเข้าระบบครั้งต่อไป"
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "ดีมอนจัดการค่าตั้งถูกเริ่มทำงานใหม่หลายครั้งจนผิดปกติ"
+
+#~ msgid "List registered clients, then exit"
+#~ msgstr "แสดงรายการไคลเอนต์ที่ลงทะเบียนไว้ แล้วออกจากโปรแกรม"
+
+#~ msgid "PROGRAM..."
+#~ msgstr "PROGRAM..."
+
+#~ msgid ""
+#~ "You must specify at least one program to remove. You can list the "
+#~ "programs with --list.\n"
+#~ msgstr ""
+#~ "คุณต้องระบุโปรแกรมอย่างน้อยหนึ่งตัวที่จะเอาออก คุณสามารถแสดงรายการโปรแกรมได้ด้วยตัวเลือก "
+#~ "--list\n"
+
+#~ msgid "Error: could not connect to the session manager\n"
+#~ msgstr "ผิดพลาด: ไม่สามารถติดต่อโปรแกรมจัดการวาระ\n"
+
+#~ msgid "Currently registered clients:\n"
+#~ msgstr "ไคลเอนต์ที่ลงทะเบียนอยู่:\n"
+
+#~ msgid "Couldn't find program %s in session\n"
+#~ msgstr "ไม่พบโปรแกรม %s ในวาระ\n"
+
+#~ msgid ""
+#~ "The MATE session manager cannot start properly. Please report this as a "
+#~ "MATE bug. Please include this ICE failure message in the bug report: '%"
+#~ "s'. Meanwhile you could try logging in using the failsafe session."
+#~ msgstr ""
+#~ "โปรแกรมจัดการวาระ MATE ไม่สามารถเริ่มทำงานได้ กรุณารายงานข้อผิดพลาดนี้ไปยัง MATE "
+#~ "โดยแนบข้อความข้อผิดพลาดจาก ICE ต่อไปนี้ไปด้วย: '%s' ในระหว่างนี้ "
+#~ "คุณอาจลองเข้าระบบด้วยวาระ failsafe แทน"
+
+#~ msgid ""
+#~ "The MATE session manager was unable to lock the file '%s'. Please "
+#~ "report this as a MATE bug. Sometimes this error may occur if the file's "
+#~ "directory is unwritable, you could try logging in via the failsafe "
+#~ "session and ensuring that it is."
+#~ msgstr ""
+#~ "โปรแกรมจัดการวาระ MATE ไม่สามารถล็อคแฟ้ม '%s' ได้ กรุณารายงานข้อผิดพลาดนี้ไปยัง "
+#~ "MATE ในบางครั้ง ข้อผิดพลาดนี้ก็อาจเกิดขึ้นได้ ถ้าไดเรกทอรีที่เก็บแฟ้มไม่อนุญาตให้เขียน "
+#~ "คุณอาจลองเข้าระบบด้วยวาระ failsafe แล้วตรวจสอบดู"
+
+#~ msgid ""
+#~ "The MATE session manager was unable to read the file: '%s'. If this "
+#~ "file exists it must be readable by you for MATE to work properly. Try "
+#~ "logging in with the failsafe session and removing this file."
+#~ msgstr ""
+#~ "โปรแกรมจัดการวาระ MATE ไม่สามารถอ่านแฟ้ม: '%s' ถ้าแฟ้มนี้มีอยู่แล้ว "
+#~ "คุณก็จะต้องมีสิทธิ์อ่านได้ด้วย MATE จะได้ทำงานได้อย่างถูกต้อง ลองเข้าระบบด้วยวาระ "
+#~ "failsafe แล้วลบแฟ้มนี้ดู"
+
+#~ msgid ""
+#~ "Could not write to file '%s'. This file must be writable in order for "
+#~ "MATE to function properly. Try logging in with the failsafe session and "
+#~ "removing this file. Also make sure that the file's directory is writable."
+#~ msgstr ""
+#~ "ไม่สามารถเขียนแฟ้ม '%s' ได้ คุณต้องมีสิทธิ์เขียนแฟ้มนี้เพื่อให้ MATE ทำงานได้อย่างถูกต้อง "
+#~ "ลองเข้าระบบด้วยวาระ failsafe แล้วลบแฟ้มนี้ดู "
+#~ "กรุณาตรวจสอบให้แน่ใจด้วยว่าไดเรกทอรีที่เก็บแฟ้มนี้สามารถเขียนได้"
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "จะออกจากระบบหรือไม่?"
+
+#~ msgid "Remember running applications"
+#~ msgstr "จำรายชื่อโปรแกรมที่ทำงานอยู่"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "เ_ริ่มเปิดเครื่องใหม่"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "อ่านวาระที่บันทึกไว้จากแฟ้ม default.session เท่านั้น"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr "จำนวนมิลลิวินาทีที่จะรอให้โปรแกรมลูกลงทะเบียน (0=ตลอดไป)"
+
+#~ msgid "DELAY"
+#~ msgstr "DELAY"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr "จำนวนมิลลิวินาทีที่จะรอให้โปรแกรมลูกตอบกลับ (0=ตลอดไป)"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr "จำนวนมิลลิวินาทีที่จะรอให้โปรแกรมลูกหยุดทำงาน (0=ตลอดไป)"
+
+#~ msgid "This session is running as a privileged user"
+#~ msgstr "วาระนี้ดำเนินในนามผู้ใช้อภิสิทธิ์"
+
+#~ msgid ""
+#~ "Running a session as a privileged user should be avoided for security "
+#~ "reasons. If possible, you should log in as a normal user."
+#~ msgstr ""
+#~ "การเข้าวาระในฐานะผู้ใช้อภิสิทธิ์เป็นสิ่งที่ควรหลีกเลี่ยง ด้วยเหตุผลเรื่องการรักษาความปลอดภัย "
+#~ "ถ้าเป็นไปได้ คุณควรเข้าระบบในนามผู้ใช้ปกติแทน"
+
+#~ msgid "_Continue"
+#~ msgstr "เข้าระบบ_ต่อไป"
+
+#~ msgid ""
+#~ "The session might encounter issues if the computer clock is not properly "
+#~ "configured. Please consider adjusting it.\n"
+#~ "\n"
+#~ "Current date is <b>%s</b>."
+#~ msgstr ""
+#~ "วาระนี้อาจพบปัญหาต่างๆ ถ้านาฬิกาของเครื่องไม่ได้ตั้งไว้อย่างถูกต้อง กรุณาตั้งนาฬิกาใหม่\n"
+#~ "\n"
+#~ "วัน-เวลาปัจจุบันของเครื่องคือ <b>%s</b>"
+
+#~ msgid "Failed to launch time configuration tool: %s"
+#~ msgstr "เรียกเครื่องมือตั้งเวลาไม่สำเร็จ: %s"
+
+#~ msgid "The computer clock appears to be wrong"
+#~ msgstr "นาฬิกาของเครื่องไม่ถูกต้อง"
+
+#~ msgid "_Ignore"
+#~ msgstr "ไ_ม่สนใจ"
+
+#~ msgid "_Adjust the Clock"
+#~ msgstr "_ตั้งนาฬิกา"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "ไม่สามารถค้นหาที่อยู่อินเทอร์เน็ตสำหรับ %s \n"
+#~ "ซึ่งจะทำให้ MATE ทำงานไม่ถูกต้อง\n"
+#~ "อาจจะแก้ปัญหานี้ได้โดยการเพิ่ม %s ลงในแฟ้ม /etc/hosts"
+
+#~ msgid "Try Again"
+#~ msgstr "ลองอีกครั้ง"
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "เลิกคอยเนื่องจากความขัดแย้งบางอย่าง"
+
+#~ msgid "No response to the %s command."
+#~ msgstr "ไม่ได้รับการตอบสนองจากคำสั่ง %s"
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "โปรแกรมอาจจะช้า หยุดทำงาน หรือ ตาย"
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "คุณสามารถรอให้โปรแกรมตอบกลับมา หรือเลือกทิ้งมันไปก็ได้"
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "ยกเลิกการเริ่มการทำงานใหม่เนื่องจากเกิดข้อผิดพลาด"
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "กำลังปิดวาระการทำงาน"
+
+#~ msgid "- Save the current session"
+#~ msgstr "- บันทึกวาระปัจจุบัน"
+
+#~ msgid "Save changes to the current session before closing?"
+#~ msgstr "จะบันทึกรายละเอียดวาระปัจจุบันก่อนปิดหรือไม่?"
+
+#~ msgid "If you don't save, changes will be discarded."
+#~ msgstr "ถ้าคุณไม่บันทึก การเปลี่ยนแปลงต่างๆ จะถูกละทิ้งไป"
+
+#~ msgid "_Close without Saving"
+#~ msgstr "_ปิดโดยไม่บันทึก"
+
+#~ msgid "Current Session"
+#~ msgstr "วาระปัจจุบัน"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "บันทึกวาระของคุณเรียบร้อย"
+
+#~ msgid "could not connect to the session manager\n"
+#~ msgstr "ติดต่อโปรแกรมจัดการวาระไม่สำเร็จ\n"
+
+#~ msgid "session manager does not support MATE extensions\n"
+#~ msgstr "โปรแกรมจัดการวาระไม่รองรับส่วนขยายของ MATE\n"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "ลบโปรแกรมลูกที่ถูกเลือกออกจากวาระ"
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "บังคับใช้ข้อเปลี่ยนแปลงที่เลือกลงในวาระปัจจุบัน"
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "รายการของโปรแกรมที่อยู่ในวาระ"
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "โ_ปรแกรมที่กำลังทำงานอยู่:"
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "โปรแกรมจัดการหน้าต่าง Sawfish"
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "โปรแกรมจัดการหน้าต่าง Marco"
+
+#~ msgid "Caja"
+#~ msgstr "Caja"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "ค่าตั้งของพื้นโต๊ะ"
+
+#~ msgid "New Startup Program"
+#~ msgstr "เพิ่มโปรแกรมเริ่มวาระ"
+
+#~ msgid "_Save current setup"
+#~ msgstr "_รักษารายละเอียดวาระปัจจุบัน"
+
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "_บันทึกรายละเอียดวาระโดยอัตโนมัติ"
+
+#~ msgid "Save the current session"
+#~ msgstr "บันทึกวาระปัจจุบัน"
+
+#~ msgid "The session name cannot be empty"
+#~ msgstr "ชื่อวาระจะว่างไม่ได้"
+
+#~ msgid "The session name already exists"
+#~ msgstr "มีวาระชื่อนี้อยู่แล้ว"
+
+#~ msgid "Add a new session"
+#~ msgstr "เพิ่มวาระใหม่"
+
+#~ msgid "Edit session name"
+#~ msgstr "แก้ชื่อวาระ"
+
+#~ msgid "Disable"
+#~ msgstr "ปิดใช้"
+
+#~ msgid "_Edit"
+#~ msgstr "แ_ก้ไข"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "ความเปลี่ยนแปลงบางอย่างไม่ได้ถูกบันทึก \n"
+#~ "คุณยังยืนยันจะจบการทำงานหรือไม่ ?"
+
+#~ msgid "Show splash screen on _login"
+#~ msgstr "แ_สดงรูปขณะกำลังเข้าสู่ระบบ"
+
+#~ msgid "As_k on logout"
+#~ msgstr "_ถามก่อนออกจากระบบ"
+
+#~ msgid "_Sessions:"
+#~ msgstr "วา_ระ"
+
+#~ msgid "_Startup Command:"
+#~ msgstr "_คำสั่งเรียกเมื่อเริ่มวาระ:"
+
+#~ msgid "There was an unknown activation error."
+#~ msgstr "เกิดข้อผิดพลาดที่ไม่รู้จักขณะเริ่มการทำงาน"
+
+#~ msgid "Initialize session settings"
+#~ msgstr "กำลังเตรียมค่าตั้งของวาระ"
+
+#~ msgid "Save Current Session"
+#~ msgstr "บันทึกวาระปัจจุบัน"
+
+#~ msgid "Save current state of desktop"
+#~ msgstr "บันทึกสถานะปัจจุบันของพื้นที่ทำงาน"
diff --git a/po/tk.po b/po/tk.po
new file mode 100644
index 0000000..a1c24f1
--- /dev/null
+++ b/po/tk.po
@@ -0,0 +1,458 @@
+# Turkmen translation of mate-session
+# Copyright (C) 2004 Free Software Foundation
+# Copyright (C) 2004 Kakilik Project <kakilik.sourceforge.net>
+# This file is distributed under the terms of GNU General Public License (GPL)
+# Gurban Mühemmet Tewekgeli <[email protected]>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-01-11 08:59+0000\n"
+"PO-Revision-Date: 2004-08-13 03:27+0330\n"
+"Last-Translator: Gurban Mühemmet Tewekgeli <[email protected]>\n"
+"Language-Team: Turkmen <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: mate-session/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:6
+msgid ""
+"Preferred Image to use for the splash screen when logging in to the MATE "
+"Desktop"
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "Oturuşyky gaýd et"
+
+#: mate-session/mate-session.schemas.in.h:8
+msgid "Show the splash screen"
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:9
+msgid "Show the splash screen when the session starts up"
+msgstr ""
+
+#: mate-session/mate-session.schemas.in.h:10
+msgid "Splash Screen Image"
+msgstr ""
+
+#: mate-session/gsm-client-editor.c:97 mate-session/startup-programs.c:314
+msgid "_Order:"
+msgstr "_Tertib:"
+
+#: mate-session/gsm-client-editor.c:99
+msgid "The order in which applications are started in the session."
+msgstr ""
+
+#: mate-session/gsm-client-editor.c:106
+msgid "What happens to the application when it exits."
+msgstr ""
+
+#: mate-session/gsm-client-editor.c:109
+msgid "_Style:"
+msgstr ""
+
+#: mate-session/gsm-client-list.c:150
+#: mate-session/session-properties-capplet.c:412
+msgid "Order"
+msgstr "Tertib"
+
+#: mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr ""
+
+#: mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr ""
+
+#: mate-session/gsm-client-list.c:165
+msgid "Program"
+msgstr "Program"
+
+#: mate-session/gsm-client-row.c:31
+msgid "Inactive"
+msgstr ""
+
+#: mate-session/gsm-client-row.c:32
+msgid "Waiting to start or already finished."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr "Başlanýa"
+
+#: mate-session/gsm-client-row.c:35
+msgid "Started but has not yet reported state."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr ""
+
+#: mate-session/gsm-client-row.c:38
+msgid "A normal member of the session."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr "Gaýd edilýä"
+
+#: mate-session/gsm-client-row.c:41
+msgid "Saving session details."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr "Natanyş"
+
+#: mate-session/gsm-client-row.c:44
+msgid "State not reported within timeout."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr ""
+
+#: mate-session/gsm-client-row.c:51
+msgid "Unaffected by logouts but can die."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr "Ýene Başla"
+
+#: mate-session/gsm-client-row.c:54
+msgid "Never allowed to die."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr "Zibil"
+
+#: mate-session/gsm-client-row.c:57
+msgid "Discarded on logout and can die."
+msgstr ""
+
+#: mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr "Tenzimler"
+
+#: mate-session/gsm-client-row.c:60
+msgid "Always started on every login."
+msgstr ""
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: mate-session/gsm-gsd.c:41
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+
+#: mate-session/gsm-gsd.c:53
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+
+#: mate-session/gsm-gsd.c:58
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+
+#: mate-session/gsm-gsd.c:115
+msgid "There was an unknown activation error."
+msgstr ""
+
+#: mate-session/gsm-gsd.c:157
+msgid "The Settings Daemon restarted too many times."
+msgstr ""
+
+#: mate-session/logout.c:355
+msgid "Are you sure you want to log out?"
+msgstr ""
+
+#: mate-session/logout.c:372
+msgid "_Save current setup"
+msgstr ""
+
+#: mate-session/logout.c:393
+msgid "Action"
+msgstr "Emel"
+
+#: mate-session/logout.c:410
+msgid "_Log out"
+msgstr "_Çyk"
+
+#: mate-session/logout.c:416
+msgid "Sh_ut down"
+msgstr "_Söndir"
+
+#: mate-session/logout.c:423
+msgid "_Restart the computer"
+msgstr "_Kampýuteri ýene başla"
+
+#: mate-session/main.c:81
+msgid "Specify a session name to load"
+msgstr ""
+
+#: mate-session/main.c:82
+msgid "Only read saved sessions from the default.session file"
+msgstr ""
+
+#: mate-session/main.c:83
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr ""
+
+#: mate-session/main.c:84
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr ""
+
+#: mate-session/main.c:85
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr ""
+
+#: mate-session/main.c:265
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+
+#: mate-session/main.c:272
+msgid "Log in Anyway"
+msgstr ""
+
+#: mate-session/main.c:273
+msgid "Try Again"
+msgstr ""
+
+#: mate-session/manager.c:223
+msgid "Your session has been saved"
+msgstr ""
+
+#: mate-session/manager.c:527
+msgid "Wait abandoned due to conflict."
+msgstr ""
+
+#: mate-session/manager.c:1035
+#, c-format
+msgid "No response to the %s command."
+msgstr ""
+
+#: mate-session/manager.c:1036
+msgid "The program may be slow, stopped or broken."
+msgstr ""
+
+#: mate-session/manager.c:1037
+msgid "You may wait for it to respond or remove it."
+msgstr ""
+
+#: mate-session/manager.c:1760
+msgid "Restart abandoned due to failures."
+msgstr ""
+
+#: mate-session/manager.c:1956
+msgid "A session shutdown is in progress."
+msgstr ""
+
+#: mate-session/save-session.c:46
+msgid "Set the current session"
+msgstr ""
+
+#: mate-session/save-session.c:47
+msgid "Kill session"
+msgstr ""
+
+#: mate-session/save-session.c:48
+msgid "Use dialog boxes"
+msgstr ""
+
+#: mate-session/save-session.c:146 mate-session/save-session.c:179
+msgid "Could not connect to the session manager"
+msgstr ""
+
+#: mate-session/session-names.c:143
+msgid "The session name cannot be empty"
+msgstr ""
+
+#: mate-session/session-names.c:154
+msgid "The session name already exists"
+msgstr ""
+
+#: mate-session/session-names.c:188
+msgid "Add a new session"
+msgstr "Täze bir oturşuk ekle"
+
+#: mate-session/session-names.c:218
+msgid "Edit session name"
+msgstr "Oturşuk adyny editle"
+
+#: mate-session/session-properties-capplet.c:122
+msgid "_Edit"
+msgstr "_Edit"
+
+#: mate-session/session-properties-capplet.c:190
+msgid ""
+"Some changes are not saved.\n"
+"Is it still OK to exit?"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:240
+#: mate-session/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Oturşuklar"
+
+#: mate-session/session-properties-capplet.c:273
+msgid "Show splash screen on _login"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:284
+msgid "As_k on logout"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:295
+msgid "Automatically save chan_ges to session"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:306
+msgid "_Sessions:"
+msgstr "_Oturşuklar:"
+
+#: mate-session/session-properties-capplet.c:324
+msgid "Session Name"
+msgstr "Oturşuk Ady"
+
+#: mate-session/session-properties-capplet.c:375
+msgid "Session Options"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:384
+msgid "Current Session"
+msgstr "Häzirki Oturşuk"
+
+#: mate-session/session-properties-capplet.c:393
+msgid "Additional startup _programs:"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:414
+msgid "Command"
+msgstr ""
+
+#: mate-session/session-properties-capplet.c:446
+msgid "Startup Programs"
+msgstr ""
+
+#: mate-session/session-properties.c:49
+msgid "Remove the currently selected client from the session."
+msgstr ""
+
+#: mate-session/session-properties.c:55
+msgid "Apply changes to the current session"
+msgstr ""
+
+#: mate-session/session-properties.c:61
+msgid "The list of programs in the session."
+msgstr ""
+
+#: mate-session/session-properties.c:88
+msgid "Currently running _programs:"
+msgstr ""
+
+#: mate-session/session-properties.c:104
+msgid "Initialize session settings"
+msgstr ""
+
+#: mate-session/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr ""
+
+#: mate-session/splash-widget.c:43
+msgid "Sawfish Window Manager"
+msgstr "Sawfish Äpişge Müdiri"
+
+#: mate-session/splash-widget.c:44
+msgid "Marco Window Manager"
+msgstr "Marco Äpişge Müdiri"
+
+#: mate-session/splash-widget.c:45
+msgid "Window Manager"
+msgstr "Äpişge Müdiri"
+
+#: mate-session/splash-widget.c:46
+msgid "The Panel"
+msgstr "Panel"
+
+#: mate-session/splash-widget.c:47
+msgid "Session Manager Proxy"
+msgstr ""
+
+#: mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "Caja"
+
+#: mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr ""
+
+#: mate-session/startup-programs.c:292
+msgid "_Startup Command:"
+msgstr ""
+
+#: mate-session/startup-programs.c:298
+msgid "Startup Command"
+msgstr ""
+
+#: mate-session/startup-programs.c:347
+msgid "The startup command cannot be empty"
+msgstr ""
+
+#: mate-session/startup-programs.c:384
+msgid "Add Startup Program"
+msgstr ""
+
+#: mate-session/startup-programs.c:405
+msgid "Edit Startup Program"
+msgstr ""
diff --git a/po/tr.po b/po/tr.po
new file mode 100644
index 0000000..29ffe73
--- /dev/null
+++ b/po/tr.po
@@ -0,0 +1,903 @@
+# Turkish translation of mate-session.
+# Copyright (C) 2001-2003, 2004, 2008 Free Software Foundation, Inc.
+#
+# Sinan İmamoğlu <[email protected]>, 2002-2003.
+# Ömer Fadıl USTA <[email protected]>, 2002.
+# Fatih Demir <[email protected]>, 2000.
+# Görkem Cetin <[email protected]>, 2001.
+# Arman Aksoy <[email protected]>, 2003.
+# Baris Cicek <[email protected]>, 2004, 2008, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-08-30 20:24+0300\n"
+"PO-Revision-Date: 2009-08-30 20:24+0300\n"
+"Last-Translator: Baris Cicek <[email protected]>\n"
+"Language-Team: Turkish <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Komut Seç"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Başlangıç Programı Ekle"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Başlangıç Programı Düzenle"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Başlangıç komutu boş bırakılamaz"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Başlangıç komutu geçerli değil"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Etkin"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Simge"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Program"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Açılış Uygulamaları Tercihleri"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "İsimsiz"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Açıklama yok"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "Bu uygulamanın sürümü"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Yardım belgesi görüntülenemedi"
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+"Bu oturum için yardımcı teknoloji desteği istendi, ancak erişilebilirlik "
+"kaydı bulunamadı. Lütfen AT-SPI paketinin kurulu olduğundan emin olun. "
+"Oturumunuz yardımcı teknoloji desteği olmadan başlatıldı."
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr "AT SPI Kayıt Sarmallayıcı"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "MATE Ayarları Servis Yardımcısı"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Bu oturum MATE girişi yapmanızı sağlar"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Öntanımlı oturum"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Dosya Yöneticisi"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Eğer seçiliyse, mate-session oturumu kapatmadan önce kullanıcı istemini "
+"sorar."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Eğer seçiliyse, mate-session oturumu kendiliğinden kaydeder. Seçili "
+"değilse, iletişim kutusunda oturumu kaydetme seçeneği bulunur."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Öntanımlı oturumun parçası olan uygulamaların listesi."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Oturumun parçası olarak gerekli bileşenlerin listesi. (Her öğe ismi \"/"
+"desktop/mate/session/required-components\" anahtarı altındadır). Başlangıç "
+"Uygulamaları tercihleri aracı kullanıcıların normal olarak oturumdan gerekli "
+"bileşenleri silmesine izin vermez ve oturum yöneticisi gerekli bileşenleri "
+"silinirlerse oturuma kendiliğinden ekler."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Çıkış istemi"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Giriş başlangıç ekranı için tercih edilen resim"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "Gerekli oturum bileşenleri"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "Oturumları kaydet"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "Açılış ekranı göster"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "Oturum başlatılırken açılış ekranını göster"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Dosya yöneticisi, masaüstü simgeleri ile kayıtlı dosyalarınızla etkileşim "
+"olanağı sağlar."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"Oturumun atıl olarak kabul edilmesi için etkin olmama dakikaları miktarı."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Panel, ekranın üstünde ya da altında menüler, pencere listesi, durum "
+"simgeleri, saat vb. öğeler içeren çubuk sağlar."
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Pencere yöneticisi, pencerelerin başlıklarını ve çevrelerindeki kenarlıkları "
+"çizen ve pencereleri yeniden boyutlandırmanıza ve taşımanıza olanak sağlayan "
+"programdır."
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Bu $datadir/pixmaps/ dizinine göre bir yoldur. Alt dizinler ve resim "
+"isimleri geçerli değerlerdir. Bu değeri değiştirmek sonraki giriş oturumunu "
+"etkileyecektir."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "Oturum atıl kabul edilmeden önceki süre"
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Pencere Yöneticisi"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Bazı programlar hala çalışıyor:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"Programın bitmesi bekleniyor. Programı kesme yapmış olduğunuz işleri "
+"kaybetmenize neden olabilir."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Giriş yaptığınızda hangi uygulamaların başlatılacağını seçin"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Başlangıç Uygulamaları"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Ek başlangıç _programları:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "Göz At..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Komut:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "_Açıklama:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Seçenekler"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Başlangıç Uygulamaları"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "Çıkarken çalışan uygulamaları kendiliğindne _hatırla"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "İ_sim:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "Şu _An Çalışan Uygulamaları Hatırla"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Dosya geçerli bir .desktop dosyası değil"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Algılanamayan masa üstü dosya sürümü '%s'"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "%s Başlatılıyor"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Uygulama belgeleri komut satırında kabul etmiyor"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Algılanamayan başlama seçeneği: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Belge URI'lerini bir 'Tür=Bağ' masaüstü girişi olarak geçilemiyor"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Başlatılabilir bir öğe değil"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Oturum yöneticisine bağlantıyı kapat"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Kayıtlı yapılandırmayı içeren dosyayı belirtin"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "DOSYA"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Oturum yönetim ID'si belirtin"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Oturum yönetim seçenekleri:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Oturum yönetim seçeneklerini göster"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Yapılandırma sunucusu ile ilgili bir sorun var.\n"
+"(%s durum %d ile çıktı)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Simge '%s' bulunamadı"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Bilinmiyor"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Bir program hala çalışıyor:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Bazı programlar hala çalışıyor:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Programların bitmesi bekleniyor. Bu programları kesmek yaptığınız işlerin "
+"kaybolmasına sebep olabilir."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Yine de Kullanıcıyı Değiştir"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Yine de Çıkış Yap"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Yine de Beklemeye Geç"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Yine de Uyku Kipine Geç"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "Yine de Kapat"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Yine de Yeniden Başlat"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Ekranı Kilitle"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "İptal"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "%d saniye içerisinde kendiliğinden çıkış yaptırılacaksınız."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Bu sistem %d saniye içerisinde kendiliğinden kapatılacak."
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Şu anda \"%s\" olarak giriş yaptınız."
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "Bu sistemden şimdi çıkılsın mı?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "_Kullanıcı Değiştir"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "Çı_kış"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "Sistem şimdi kapatılsın mı?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "_Beklemeye Al"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "_Uyku Kipi"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "_Yeniden Başlat"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "_Kapat"
+
+#: ../mate-session/gsm-manager.c:1158 ../mate-session/gsm-manager.c:1850
+msgid "Not responding"
+msgstr "Cevap vermiyor"
+
+#: ../mate-session/gsm-xsmp-client.c:1206
+msgid "This program is blocking log out."
+msgstr "Bu program çıkışı engelliyor."
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "Oturum şu anda kapatıldığı için yeni istemci bağlantısı reddediliyor\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ICE dinleme soketi oluşturulamadı: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "Giriş oturumu başlatılamıyor (ve X sunucuya bağlanılamıyor)"
+
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr "Standart kendiliğinden başlat dizinlerinin yerine geç"
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr "Öntanımlı oturuma bakmak için kullanılan MateConf anahtarı"
+
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr "Hata ayıklama kodunu etkinleştir"
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr "Kullanıcıya özel programları yükleme"
+
+#: ../mate-session/main.c:457
+msgid " - the MATE session manager"
+msgstr "- MATE oturum yönetimi"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- MATE Açılış Ekranı"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "MATE Başlangıç Ekranı"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Çıkış"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Çıkış, mevcut tüm engelleyiciler yok sayılıyor"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Çıkış penceresini göster"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Kapatma penceresini göster"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Hatalar için iletişim kutularını kullan"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Mevcut oturum ismini ayarla"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "İSİM"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Oturumu öldür"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Onay gerektirme"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Oturum yöneticisine bağlanılamadı"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Program çakışan seçeneklerle çağırıldı"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "Başlangıç programının ismi boş olamaz"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "Oturum Tercihleri"
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "MATE Anatharlık Servisi Sarmallayıcı"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Çıkış penceresindeki seçilmiş seçenek"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "Bu çıkış penceresindeki seçilmiş seçenektir, geçerli değerler çıkış için "
+#~ "\"logout\", sistemi kapatmak için \"shutdown\" ve sistemi yeniden "
+#~ "başlatmak için \"restart\"tır."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "Oturumlarınızı yapılandırın"
+
+#~ msgid "Sessions"
+#~ msgstr "Oturumlar"
+
+#~ msgid "Session management"
+#~ msgstr "Oturum yönetimi"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "MATE Grafiksel Arayüz Kütüphanesi + EggSMClient"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "TCP bağlantılarına izin ver"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "Güvenlik gerekçesiyle, mate-session, _IceTcpTransNoListen() olan "
+#~ "platformlarda (XFree86 sistemleri) TCP portlarını dinlemez. Bu seçenek "
+#~ "(tekilendirilmemiş) uzaktan bağlantılara izin verir. Etkin olabilmesi "
+#~ "için mate-session yeniden başlatılmalıdır."
+
+#~ msgid "_Order:"
+#~ msgstr "_Sıra:"
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "Uygulamadan çıkarken ne olacağı."
+
+#~ msgid "_Style:"
+#~ msgstr "_Stil:"
+
+#~ msgid "Inactive"
+#~ msgstr "Etkin değil"
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "Başlatmak için bekleniyor veya zaten bitmiş."
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "Başlatıldı ama henüz durum rapor edilmedi."
+
+#~ msgid "Running"
+#~ msgstr "Çalışıyor"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "Oturumun sıradan bir üyesi."
+
+#~ msgid "Saving"
+#~ msgstr "Kaydediliyor"
+
+#~ msgid "Saving session details."
+#~ msgstr "Oturum ayrıntıları kaydediliyor."
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "Durum, gereken süre içinde bildirilmedi."
+
+#~ msgid "Normal"
+#~ msgstr "Olağan"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "Çıkıştan etkilenmez ama öldürülebilir."
+
+#~ msgid "Never allowed to die."
+#~ msgstr "Kesinlikle öldürülemez."
+
+#~ msgid "Trash"
+#~ msgstr "Çöp"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "Çıkışta atılır ve öldürülebilir."
+
+#~ msgid "Settings"
+#~ msgstr "Ayarlar"
+
+#~ msgid "Always started on every login."
+#~ msgstr "Her zaman her girişte başlatılır."
+
+#~ msgid "Order"
+#~ msgstr "Sıra"
+
+#~ msgid "Style"
+#~ msgstr "Stil"
+
+#~ msgid "State"
+#~ msgstr "Durum"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "MATE Ayarları Servisi başlatırken hata oluştu.\n"
+#~ "\n"
+#~ "Bazı şeyler, örneğin temalar, sesler veya arkaplan ayarları, doğru "
+#~ "çalışmayabilir."
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Son hata iletisi şuydu:\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Yine de MATE bir sonraki girişte Ayarlar Servisini yeniden başlatmayı "
+#~ "deneyecek."
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "Ayarlar Servisi çok fazla kez yeniden başlatıldı."
+
+#~ msgid "List registered clients, then exit"
+#~ msgstr "Kayıtlı istemcileri listele, sonra çık"
+
+#~ msgid "PROGRAM..."
+#~ msgstr "PROGRAM..."
+
+#~ msgid ""
+#~ "You must specify at least one program to remove. You can list the "
+#~ "programs with --list.\n"
+#~ msgstr ""
+#~ "Kaldırmak için en az bir program belirtmelisiniz. Programları --list ile "
+#~ "listeleyebilirsiniz.\n"
+
+#~ msgid "Error: could not connect to the session manager\n"
+#~ msgstr "Hata: oturum yöneticisine bağlanılamadı\n"
+
+#~ msgid "Currently registered clients:\n"
+#~ msgstr "Şu an kayıtlı istemciler:\n"
+
+#~ msgid "Couldn't find program %s in session\n"
+#~ msgstr "Program %s oturum içinde bulunamadı\n"
+
+#~ msgid ""
+#~ "The MATE session manager cannot start properly. Please report this as a "
+#~ "MATE bug. Please include this ICE failure message in the bug report: '%"
+#~ "s'. Meanwhile you could try logging in using the failsafe session."
+#~ msgstr ""
+#~ "MATE ortam yöneticisi tam olarak başlatılamıyor. Lütfen bunu MATE "
+#~ "hatası olarak raporlayın. Lütfen ICE hata mesajınız da hata bildirimine "
+#~ "ekleyin: '%s'. Bu sırada hata durumunda kullanılan oturuma giriş yapmayı "
+#~ "deneyebilirsiniz."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to lock the file '%s'. Please "
+#~ "report this as a MATE bug. Sometimes this error may occur if the file's "
+#~ "directory is unwritable, you could try logging in via the failsafe "
+#~ "session and ensuring that it is."
+#~ msgstr ""
+#~ "MATE oturum yöneticisi '%s' dosyasını kilitleyemedi. Lütfen bunu bir "
+#~ "MATE hatası olarak bildirin. Bazen bu hata dosyanın dizini yazılabilir "
+#~ "olmadığı zaman oluşur, hata durumunda kullanılan oturuma giriş yapmayı "
+#~ "deneyebilir ve dizinin yazılabilir olduğundan emin olabilirsiniz."
+
+#~ msgid ""
+#~ "The MATE session manager was unable to read the file: '%s'. If this "
+#~ "file exists it must be readable by you for MATE to work properly. Try "
+#~ "logging in with the failsafe session and removing this file."
+#~ msgstr ""
+#~ "MATE oturum yöneticisi dosyayı okuyamadı: '%s'. Eğer bu dosya mevcutsa "
+#~ "tam olarak çalışabilmesi için MATE tarafından okunabilir olması "
+#~ "gerekmektedir. Hata durumunda kullanılan oturumla giriş yapıp bu dosyayı "
+#~ "silmeyi deneyin."
+
+#~ msgid ""
+#~ "Could not write to file '%s'. This file must be writable in order for "
+#~ "MATE to function properly. Try logging in with the failsafe session and "
+#~ "removing this file. Also make sure that the file's directory is writable."
+#~ msgstr ""
+#~ "Dosya '%s' yazılamadı. Bu dosya MATE'un düzgün çalışabilmesi için "
+#~ "yazılabilir olmalıdır. Hata durumunda kullanılan oturum ile giriş yapıp "
+#~ "bu dosyayı silmeyi deneyin. Ayrıca bu dosyanın dizininin yazılabilir "
+#~ "oldugundan da emin olun."
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "Çıkmak istediğinizden emin misiniz?"
+
+#~ msgid "Remember running applications"
+#~ msgstr "Çalışan uygulamaları hatırla"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "Bilgisayarı _yeniden başlat"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "Sadece default.session dosyasından kaydedilmiş oturumları oku"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr ""
+#~ "İstemcilerin kaydolması için milisaniye cinsinden bekleme süresi "
+#~ "(0=sınırsız)"
+
+#~ msgid "DELAY"
+#~ msgstr "GECİKME"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr ""
+#~ "İstemcilerin yanıtı için milisaniye cinsinden bekleme süresi (0=sonsuz)"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr ""
+#~ "İstemcilerin ölmesi için milisaniye cinsinden bekleme süresi (0=sonsuz)"
+
+#~ msgid "This session is running as a privileged user"
+#~ msgstr "Bu oturum bir imtiyazlı kullanıcı olarak çalışıyor"
+
+#~ msgid ""
+#~ "Running a session as a privileged user should be avoided for security "
+#~ "reasons. If possible, you should log in as a normal user."
+#~ msgstr ""
+#~ "Bir imtiyazlı kullanıcı olarak oturum çalıştırmak güvenlik gerekçeleri "
+#~ "yüzünden sakınılmalıdır. Eğer mümkünse, normal kullanıcı olarak giriş "
+#~ "yapmalısınız."
+
+#~ msgid "_Continue"
+#~ msgstr "_Devam et"
+
+#~ msgid ""
+#~ "The session might encounter issues if the computer clock is not properly "
+#~ "configured. Please consider adjusting it.\n"
+#~ "\n"
+#~ "Current date is <b>%s</b>."
+#~ msgstr ""
+#~ "Bu oturumu bilgisayarın saati düzgün olarak yapılandırılmamışsa "
+#~ "sorunlarla karşılaşabilir. Lütfen saati ayarlamayı düşünün.\n"
+#~ "\n"
+#~ "Mevcut tarih <b>%s</b>."
+
+#~ msgid "Failed to launch time configuration tool: %s"
+#~ msgstr "Zaman yapılandırma aracı başlatılırken başarısız oldu: %s"
+
+#~ msgid "The computer clock appears to be wrong"
+#~ msgstr "Bu bilgisayarın saati yanlış gibi görünüyor"
+
+#~ msgid "_Ignore"
+#~ msgstr "_Yok Say"
+
+#~ msgid "_Adjust the Clock"
+#~ msgstr "_Saati Ayarla"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "%s'nin internet adresi bulunamadı.\n"
+#~ "Bu MATE'un düzgün çalışmasına engel olacaktır.\n"
+#~ "Bu sorunu belki %s adresini /etc/hosts dosyasına\n"
+#~ "ekleyerek çözebilirsiniz."
+
+#~ msgid "Try Again"
+#~ msgstr "Yeniden Dene"
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "Bir çakışmadan dolayı bekleme bırakıldı."
+
+#~ msgid "No response to the %s command."
+#~ msgstr "%s komutuna yanıt yok."
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "Uygulama yavaş, durdurulmuş ya da bozuk olabilir."
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "Yanıt vermesini bekleyebilir ya da kaldırabilirsiniz."
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "Hatalardan dolayı yeniden başlatma iptal edildi."
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "Oturum kapatılması sürüyor."
+
+#~ msgid "- Save the current session"
+#~ msgstr "- Mevcut oturumu kaydet"
+
+#~ msgid "Save changes to the current session before closing?"
+#~ msgstr "Kapatmadan önce mevcut oturumdaki değişiklikleri kaydet?"
+
+#~ msgid "If you don't save, changes will be discarded."
+#~ msgstr "Eğer kaydetmezseniz, değişiklikler kaybolacak."
+
+#~ msgid "_Close without Saving"
+#~ msgstr "_Kaydetmeden Çık"
+
+#~ msgid "Current Session"
+#~ msgstr "Geçerli Oturum"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "Oturumunuz kaydedildi."
+
+#~ msgid "could not connect to the session manager\n"
+#~ msgstr "oturum yöneticisine bağlanılamadı\n"
+
+#~ msgid "session manager does not support MATE extensions\n"
+#~ msgstr "oturum yöneticisi MATE uzantılarını desteklemiyor\n"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "Seçili istemciyi oturumdan kaldır."
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "Değişiklikleri geçerli oturuma uygula"
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "Oturumdaki programların listesi."
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "Şu _anda çalışan programlar:"
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "Sawfish Pencere Yöneticisi"
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "Marco Pencere Yöneticisi"
+
+#~ msgid "Caja"
+#~ msgstr "Caja"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "Masaüstü Ayarları"
diff --git a/po/ug.po b/po/ug.po
new file mode 100644
index 0000000..460e8fa
--- /dev/null
+++ b/po/ug.po
@@ -0,0 +1,566 @@
+# Uighur translation for mate-session
+# Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006
+# This file is distributed under the same license as the mate-session package.
+# Gheyret T.Kenji <[email protected]>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2010-08-04 20:09+0000\n"
+"PO-Revision-Date: 2010-03-26 00:43+0000\n"
+"Last-Translator: Gheyret T.Kenji <Unknown>\n"
+"Language-Team: Uyghur Computer Science Association <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Launchpad-Export-Date: 2010-08-10 08:56+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "بۇيرۇق تاللا"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "قوزغىلىش پروگراممىسى قوش"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "قوزغىلىش پروگرامما تەھرىر"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "قوزغىلىش بۇيرۇقى بوش قالسا بولمايدۇ."
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "قوزغىلىش بۇيرۇقى ئىناۋەتسىز"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "قوزغات"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "سىنبەلگە"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "پروگرامما"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "قوزغىلىش پروگرامما مايىللىقى"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "نامسىز"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "چۈشەندۈرۈش يوق"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "بۇ پروگراممىنىڭ نەشرى"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "ياردەم پۈتۈكىنى كۆرسەتكىلى بولمىدى"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "بۇ ئەڭگىمە سىزنى MATE غا ئەكىرىدۇ."
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "كۆڭۈلدىكى ئەڭگىمە"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "ھۆججەت باشقۇرغۇ"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"ئەگەر قوزغىتىلسا، mate-session ئەڭگىمە ئاخىرلىشىشتىن ئىلگىرى ئەسكەرتىدۇ."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr ""
+"ئەگەر قوزغىتىلسا، mate-session ئەڭگىمەنى ئۆزلۈكىدىن ساقلايدۇ"
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "كۆڭۈلدىكى ئەڭگىمەدىكى پروگرامما تىزىملىكى."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "تىزىمدىن چىقىش ئەسكەرتىشى"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "تاختا"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "زۆرۈر ئەڭگىمە بۆلەكلىرى"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "ئەڭگىمە ساقلا"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"ھۆججەت باشقۇرغۇ ئۈستەليۈزى سىنبەلگىسى بىلەن تەمىنلەيدۇ، ساقلانغان ھۆججەت "
+"بىلەن سۆزلىشىشكە يول قويىدۇ."
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "ئەڭگىمە بوش دەپ قارىلىشتىن ئىلگىرىكى ھەرىكەتسىز ھالىتىنىڭ مىنۇت سانى."
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"تاختا ئېكران ئۈستى ياكى ئاستىدىكى تىزىملىك ئىستونى، كۆزنەك تىزىملىك، ھالەت "
+"سىنبەلگىسى، سائەت قاتارلىقلارنى ھازىرلايدۇ."
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"كۆزنەك باشقۇرغۇ — كۆزنەك ماۋزۇسى ، كۆزنەك گىرۋىكىنى سىزىدىغان پروگرامما "
+"بولۇپ،كۆزنەكنى يۆتكەش ۋە چوڭلۇقىنى ئۆزگەرتىش قاتارلىق ئىشلارنىمۇ قىلىدۇ."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "ئەڭگىمە بوش دەپ قارىلىشتىن ئىلگىرىكى كۈتۈش ۋاقتى"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "كۆزنەك باشقۇرغۇ"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>بەزى پروگراممىلار يەنىلا ئىجرا قىلىنىۋاتىدۇ:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"پروگراممىنىڭ تاماملىنىشىنى ساقلاۋاتىدۇ. ئەگەر مەجبۇرى توختىتىۋېتىلسە بىر "
+"قىسىم خىزمەتلەر يوق بولۇپ كېتىشى مۇمكىن."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "تىزىمغا كىرگەندىن كېيىن قوزغىتىدىغان پروگراممىنى تاللاڭ"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "قوزغىتىش(باشلانغاندا ئىجرا بولىدىغان) پروگراممىلىرى"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "قوشۇمچە قوزغىلىش پروگراممىلىرى(_P):"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "كۆز يۈگۈرت…"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "بۇيرۇق (_M):"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "ئىزاھات (_E):"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "تاللانما"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "قوزغىلىش پروگراممىسى"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr ""
+"تىزىمدىن چىققاندا ئىجرا قىلغان پروگراممىلارنى ئۆزلۈكىدىن ئەستە تۇت (_A)"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "ئاتى (_N):"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "نۆۋەتتە ئىجرا قىلىنىۋاتقان پروگراممىنى ئەستە تۇت (_R)"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "ھۆججەت ئىناۋەتلىك .desktop ھۆججىتى ئەمەس."
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "ئۈستەل يۈزى ھۆججەت نەشرى '%s' ئىناۋەتسىز"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "%s قوزغىلىۋاتىدۇ"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "پروگرامما بۇيرۇق قۇرىدا پۈتۈكلەرنى قوبۇل قىلمايدۇ"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "تونۇمايدىغان ئىجرا تاللانمىسى: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "پۈتۈك URI نى 'Type=Link' ئۈستەليۈزى تۈرىگە يوللىيالمىدى."
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "ئىجراچان تۈر ئەمەس"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "ئەڭگىمە باشقۇرغۇغا باغلىنىشنى چەكلە"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "بەلگىلەنگەن سەپلىمە ساقلانغان ھۆججەت"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "ھۆججەت"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "ئەڭگىمە باشقۇرغۇ ID سېنى بەلگىلە"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "ئەڭگىمە باشقۇرغۇ تاللانمىلىرى:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "ئەڭگىمە باشقۇرغۇ تاللانمىلىرى كۆرسەت"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"سەپلىمە مۇلازىمېتىرىدا مەسىلەن كۆرۈلدى.\n"
+"(%s ئاخىرلاشقاندا %d ھالەت كودى قايتۇردى)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "سىنبەلگە '%s' تېپىلمىدى"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "نامەلۇم"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "پروگرامما يەنىلا ئىجرا قىلىنىۋاتىدۇ:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "بەزى پروگراممىلار يەنىلا ئىجرا قىلىنىۋاتىدۇ:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"پروگراممىنىڭ تاماملىنىشىنى ساقلاۋاتىدۇ. ئەگەر مەجبۇرى توختىتىۋېتىلسە بىر "
+"قىسىم خىزمەتلەر يوق بولۇپ كېتىشى مۇمكىن."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "ئىشلەتكۈچىنى مەجبۇرىي ئالماشتۇر"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "تىزىمدىن مەجبۇرىي چىق"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "مەجبۇرىي ئېسىپ قوي"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "مەجبۇرىي ئۇخلات"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "توكىنى مەجبۇرىي ئۈز"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "مەجبۇرىي قايتا قوزغات"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "ئېكراننى قۇلۇپلا"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "ۋاز كەچ"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "%d سېكۇنتتىن كېيىن ئۆزلۈكىدىن تىزىمدىن چىقىدۇ."
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "بۇ سىستېما %d سېكۇنتتىن كېيىن ئۆزلۈكىدىن يېپىلىدۇ."
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "نۆۋەتتە \"%s\" سۈپىتىدە تىزىمغا كىردىڭىز."
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "سىستېمىدىن ھازىرلا چىقسۇنمۇ؟"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "ئىشلەتكۈچى ئالماشتۇر(_S)"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "تىزىمدىن چىق(_L)"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "ئېسىپ قوي(_U)"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "تۆشەككە كىر(_N)"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "قايتا قوزغات(_R)"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "توكىنى ئۈز(_S)"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "ئىنكاس يوق"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking log out."
+msgstr "بۇ پروگرامما تىزىمدىن چىقىشنى چەكلەيدۇ."
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"يېڭى ئىشلەتكۈچىنىڭ باغلىنىشى رەت قىلىندى، چۈنكى ئەڭگىمە ئېتىلىۋاتىدۇ\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "ICE تىڭشاش روزېتكىسى قۇرالمىدى: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "كىرىش ئەڭگىمەسىنى قوزغىتالمىدى (X مۇلازىمېتىرىغا ئۇلىنالمىدى)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "كۆڭۈلدىكى ئۆزلۈكىدىن قوزغىلىش مۇندەرىجىسىنىڭ ئورنىنى ئىگىلىيەلمىدى"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to lookup default session"
+msgstr "MateConf كۇنۇپكىسى كۆڭۈلدىكى ئەڭگىمەنى كۆرۈشكە ئىشلىتىلىدۇ"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "سازلاش كودىنى قوزغات"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "ئىشلەتكۈچى بەلگىلىگەن پروگراممىنى يۈكلىمە"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - MATE ئەڭگىمە باشقۇرغۇ"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "تىزىمدىن چىق"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "تىزىمدىن چىق، نۆۋەتتىكى چەكلىمە ئامىللىرىغا پەرۋا قىلما"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "تىزىمدىن چىقىش كۆزنىكىنى كۆرسەت"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "توكنى ئۇز كۆزنىكىنى كۆرسەت"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "خاتالىق يۈز بەرگەندە سۆزلەشكۈنى ئىشلەت"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "نۆۋەتتىكى ئەڭگىمە ئاتىنى بەلگىلە"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "ئاتى"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "ئەڭگىمەنى ئاخىرلاشتۇر"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "جەزملەشنى تەلەپ قىلما"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "ئەڭگىمە باشقۇرغۇغا باغلىنالمىدى"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "چاقىرغان پروگراممىنىڭ تاللانمىسى ئۆز ئارا توقۇنۇشىدۇ"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "ئەڭگىمە ساقلاندى."
+
+#~ msgid "Failed to save session"
+#~ msgstr "ئەڭگىمەنى ساقلاش مەغلۇپ بولدى"
+
+#~ msgid "Could not connect to the session bus"
+#~ msgstr "ئەڭگىمە باش لىنىيىسىگە باغلىنالمىدى"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "MATE تەڭشەك Daemon ياردەمچىسى"
+
+#~ msgid "Failsafe MATE"
+#~ msgstr "بىخەتەر MATE"
+
+#~ msgid "This session logs you into MATE without user applications"
+#~ msgstr "بۇ ئەڭگىمە سىزنى MATE غا ئەكىرىدۇ، باشقا پروگرامما قوزغىتىلمايدۇ"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "ئەگەر قوزغىتىلسا، mate-session ئەڭگىمەنى ئۆزلۈكىدىن ساقلايدۇ. ياكى "
+#~ "بولمىسا تىزىمدىن چىقىش سۆزلەشكۈسىدە ئەڭگىمە ساقلاش تاللانمىسى بار بولىدۇ."
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "تىزىمغا كىرىشتىكى كۆزنىكىدە ئىشلىتىلىدىغان سۈرەت"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "قوزغىلىش ئېكرانى كۆرسەت"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "ئەڭگىمە باشلانغاندا قوزغىلىش كۆزنىكىنى كۆرسەت"
+
+#~ msgid "Ends your session and logs you out."
+#~ msgstr "ئەڭگىمەنى ئاخىرلاشتۇرۇپ تىزىمدىن چىق."
+
+#~ msgid ""
+#~ "Suspends your session, allowing another user to log in and use the "
+#~ "computer."
+#~ msgstr ""
+#~ "ئەڭگىمەنى ئېسىپ قويۇپ، باشقا ئىشلەتكۈچىلەرنىڭ كىرىپ كومپيۇتېرنى "
+#~ "ئىشلىتىشىگە يول قويۇلىدۇ."
+
+#~ msgid "Shut Down the Computer"
+#~ msgstr "كومپيۇتېرنىڭ توكىنى ئۈز"
+
+#~ msgid "Ends your session and turns off the computer."
+#~ msgstr "ئەڭگىمەنى ئاخىرلاشتۇرۇپ كومپيۇتېرنىڭ توكىنى ئۈز."
+
+#~ msgid "Ends your session and restarts the computer."
+#~ msgstr "ئەڭگىمەنى ئاخىرلاشتۇرۇپ كومپيۇتېرنى قايتا قوزغات."
+
+#~ msgid ""
+#~ "Suspends your session quickly, using minimal power while the computer "
+#~ "stands by."
+#~ msgstr ""
+#~ "ئەڭگىمەنى تېزلىكتە ئېسىپ قويۇلسا كومپيۇتېرغا ناھايىتى ئاز قۇۋۋەت سەرپ "
+#~ "بولىدۇ."
+
+#~ msgid ""
+#~ "Suspends your session, using no power until the computer is restarted."
+#~ msgstr ""
+#~ "ئەڭگىمەنى ئېسىپ قويغاندا كومپيۇتېر قايتا قوزغىلىشتىن ئىلگىرى ھېچقانداق "
+#~ "قۇۋۋەت سەرپ بولمايدۇ."
+
+#~ msgid "Cannot find help."
+#~ msgstr "ياردەمنى تاپالمىدى."
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- MATE قوزغىلىش كۆزنىكى"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "MATE قوزغىلىش كۆزنىكى"
diff --git a/po/uk.po b/po/uk.po
new file mode 100644
index 0000000..2abe17d
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,580 @@
+# Ukrainian translation of mate-core module
+# Copyright (C) 1999-2002 Free Software Foundation, Inc.
+# Yuri Syrota <[email protected]>, 1999-2002.
+# Maxim Dziumanenko <[email protected]>, 2002-2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-09-17 14:31+0300\n"
+"PO-Revision-Date: 2009-09-17 11:56+0300\n"
+"Last-Translator: Maxim Dziumanenko <[email protected]>\n"
+"Language-Team: Ukrainian <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "Оберіть команду"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "Додати програму, що запускається на початку"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "Змінити програму"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "Початкова команда не може бути порожньою"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "Початкова команда некоректна"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "Увімкнено"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "Значок"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "Програма"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "Параметри програм, що запускаються"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "Без назви"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "Опис відсутній"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:437
+msgid "Version of this application"
+msgstr "Версія цієї програми"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "Не вдається вивести довідку"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "Допоміжна програма служби параметрів MATE"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Це - сеанс входу у MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "Типовий сеанс"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "Файловий менеджер"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Якщо увімкнено, то mate-session буде попереджувати користувача перед "
+"завершенням сеансу."
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Якщо увімкнено, то сеанс зберігатиметься автоматично. У іншому випадку, у "
+"діалозі завершення сеансу відображається відповідне поле для вмикання/"
+"вимикання збереження сеансу."
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Список програм, які є частиною типового сеансу."
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"Список компонентів які є обо'язковими для сеансу. (Кожна елемент є назвою "
+"ключа у \"/desktop/mate/session/required_components\".) \"Параметри сенсу\" "
+"звичайно не дозволяють користувачам видаляти обов'язковий компонент з "
+"системи, та менеджер сеансів автоматично додаватиме обов'язкові компоненти "
+"назад до сеансу, якщо вони будуть видалені."
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "Попередження про завершення сеансу"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "Панель"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Зображення, що використовується як заставка входу у систему"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Required session components"
+msgstr "Обов'язкові компоненти сеансу"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid "Save sessions"
+msgstr "Зберігати сеанси"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid "Show the splash screen"
+msgstr "Показувати заставку"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "Показувати заставку під час запуску сеансу"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+"Менеджер файлів надає значки робочого столу та дозволяє працювати із "
+"збереженими файлами."
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+"Проміжок часу у хвилинах, по закінченню якого сеанс вважатиметься неактивним."
+
+#: ../data/mate-session.schemas.in.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"Панель надає смугу згори та знизу екрану, що містять меню, список вікон, "
+"значки стану, годинник та т.і."
+
+#: ../data/mate-session.schemas.in.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"Менеджер вікон - це програма, яка малює заголовок та оформлення вікна, та "
+"дозволяє переміщувати вікна та змінювати їх розмір."
+
+#: ../data/mate-session.schemas.in.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Значення цього ключа є відносним шляхом, відносно базового каталогу $datadir/"
+"pixmaps/. Допустимі значення - підкаталоги та назви файлів зображень. Зміна "
+"цього параметра набере сили при наступному вході у сеанс."
+
+#: ../data/mate-session.schemas.in.in.h:19
+msgid "Time before session is considered idle"
+msgstr "Проміжок часу, по закінченню якого сеанс буде вважатися неактивним"
+
+#: ../data/mate-session.schemas.in.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Віконний менеджер"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Деякі програми досі працюють:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+"Очікування завершення роботи програми. Переривання програми може призвести "
+"до втрати роботи."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Оберіть програми, що запускаються при вході у сеанс"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Програми, що запускаютсья"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "Додаткові по_чаткові програми для запуску:"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse..."
+msgstr "Огляд..."
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "_Команда:"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "Ко_ментар:"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "Параметри"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "Початкові програми"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Автоматично запам'ятовувати запущені програми при завершенні"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "_Назва:"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "_Запам'ятати запущені програми"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Файл не є дійсним файлом .desktop"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Нерозпізнана версія десктоп-файлу «%s»"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Запускється «%s»"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Програма не приймає документи, вказані у командному рядку"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Невизначений параметр запуску: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Не можна передавати URI документів у десктоп-запис 'Type=Link'"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "Не є елементом, що запускається"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "Вимкнути з'єднання з менеджером сеансів"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "Вказати файл, що містить збережену конфігурацію"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "ФАЙЛ"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "Вказати ідентифікатор керування сеансом"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "Параметри керування сеансами:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "Показати параметри керування сеансами"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Виникла проблема з сервером конфігурації.\n"
+"(%s завершився зі станом %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Значок «%s» не знайдено"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "Невідомо"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "Програма досі працює:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "Деякі програми досі працюють:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+"Очікування завершення роботи програм. Переривання цих програм може привести "
+"до втрати вашої роботи."
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "Перемикнути користувача попри все"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Logout Anyway"
+msgstr "Вийти з системи попри все"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "Призупинити систему попри все"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "Перевести у режим сну попри все"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shutdown Anyway"
+msgstr "Вимкнути попри все"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "Перезавантажити попри все"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "Заблокувати екран"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "Скасувати"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Сеанс буде автоматично завершено через %d секунду."
+msgstr[1] "Сеанс буде автоматично завершено через %d секунди."
+msgstr[2] "Сеанс буде автоматично завершено через %d секунд."
+
+#: ../mate-session/gsm-logout-dialog.c:282
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Систему буде вимкнено автоматично через %d секунду."
+msgstr[1] "Систему буде вимкнено автоматично через %d секунди."
+msgstr[2] "Систему буде вимкнено автоматично через %d секунд."
+
+#: ../mate-session/gsm-logout-dialog.c:314
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Ви зареєстровані у системі як користувач «%s»."
+
+#: ../mate-session/gsm-logout-dialog.c:380
+msgid "Log out of this system now?"
+msgstr "Вийти з системи зараз?"
+
+#: ../mate-session/gsm-logout-dialog.c:386
+msgid "_Switch User"
+msgstr "_Перемикнути користувача"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Log Out"
+msgstr "_Завершити сеанс"
+
+#: ../mate-session/gsm-logout-dialog.c:401
+msgid "Shut down this system now?"
+msgstr "Вимкнути систему зараз?"
+
+#: ../mate-session/gsm-logout-dialog.c:407
+msgid "S_uspend"
+msgstr "_Режим очікування"
+
+#: ../mate-session/gsm-logout-dialog.c:413
+msgid "_Hibernate"
+msgstr "_Режим сну"
+
+#: ../mate-session/gsm-logout-dialog.c:419
+msgid "_Restart"
+msgstr "Пе_резавантажити"
+
+#: ../mate-session/gsm-logout-dialog.c:429
+msgid "_Shut Down"
+msgstr "_Вимкнути"
+
+#: ../mate-session/gsm-manager.c:1208 ../mate-session/gsm-manager.c:1900
+msgid "Not responding"
+msgstr "Не відповідає"
+
+#: ../mate-session/gsm-xsmp-client.c:1206
+msgid "This program is blocking log out."
+msgstr "Ця програма блокує вихід з системи."
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+"Відхиляються нові клієнти, тому що система знаходиться у стані вимикання.\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Не вдається створити сокет прослуховування ICE: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "Не вдається запустити сеанс (та з'єднатися з X-сервером)"
+
+#: ../mate-session/main.c:433
+msgid "Override standard autostart directories"
+msgstr "Перевизначити стандартні каталоги автозапуску"
+
+#: ../mate-session/main.c:434
+msgid "MateConf key used to lookup default session"
+msgstr "Ключ MateConf, що використовується для огляду типового сеансу"
+
+#: ../mate-session/main.c:435
+msgid "Enable debugging code"
+msgstr "Увімкнути налагоджувальний код"
+
+#: ../mate-session/main.c:436
+msgid "Do not load user-specified applications"
+msgstr "Не завантажувати вибрані користувачем програми"
+
+#: ../mate-session/main.c:457
+msgid " - the MATE session manager"
+msgstr " - керування сеансом MATE"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- екран-заставка MATE"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "Екран-заставка MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "Завершити сеанс"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Завершити сеанс, ігноруючи будь-які стримування"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "Показати діалог завершення сеансу"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "Показати діалог вимикання"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "Використовувати діалогові вікна для помилок"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "Встановити назву поточного сеансу"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "НАЗВА"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "Знищити сеанс"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "Не вимагати підтвердження"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Не вдається з'єднатись із менеджером сеансів"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Програму запущено з несумісними параметрами"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "Для цього сеансу увімкнено підтримку допоміжних технологій, але не "
+#~ "знайдено реєстр допоміжних технологій. Перевірте, що встановлено пакет AT-"
+#~ "SPI. Ваш сеанс був запущений без підтримки допоміжних технологій."
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "Обгортка реєстру AT SPI"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "Назва команди запуску не може бути порожньою"
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "Обгортка служби MATE Keyring"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "Виділений параметр у діалозі виходу з сеансу"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "Параметр, який буде виділений у діалоговому вікні виходу, допустимі "
+#~ "значення \"logout\" для виходу, \"shutdown\" для зупинки системи та "
+#~ "\"restart\" для перезапуску системи."
+
+#~ msgid "Configure your sessions"
+#~ msgstr "Налаштовування сеансів"
+
+#~ msgid "Sessions"
+#~ msgstr "Сеанси"
+
+#~ msgid "Session management"
+#~ msgstr "Керування сеансами"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "MATE GUI Library + EggSMClient"
diff --git a/po/uz.po b/po/uz.po
new file mode 100644
index 0000000..86719fc
--- /dev/null
+++ b/po/uz.po
@@ -0,0 +1,522 @@
+# translation of mate-session-2.0 to Uzbek
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# This file is distributed under the same license as the mate-session package.
+#
+# Nurali Abdurahmonov <[email protected]>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session-2.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-01-07 20:40+0500\n"
+"PO-Revision-Date: 2009-01-08 19:52+0500\n"
+"Last-Translator: Nurali Abdurahmonov <[email protected]>\n"
+"Language-Team: Uzbek\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: ../capplet/gsm-app-dialog.c:126
+msgid "Select Command"
+msgstr "Buyruqni tanlash"
+
+#: ../capplet/gsm-app-dialog.c:187
+msgid "Add Startup Program"
+msgstr ""
+
+#: ../capplet/gsm-app-dialog.c:191
+msgid "Edit Startup Program"
+msgstr ""
+
+#: ../capplet/gsm-properties-dialog.c:132
+msgid "No description"
+msgstr "Taʼrif yoʻq"
+
+#: ../capplet/gsm-properties-dialog.c:977
+msgid "The name of the startup program cannot be empty"
+msgstr ""
+
+#: ../capplet/gsm-properties-dialog.c:981
+msgid "The startup command cannot be empty"
+msgstr ""
+
+#: ../capplet/gsm-properties-dialog.c:987
+msgid "The startup command is not valid"
+msgstr ""
+
+#: ../capplet/gsm-properties-dialog.c:1291
+msgid "Enabled"
+msgstr "Yoqilgan"
+
+#: ../capplet/gsm-properties-dialog.c:1304
+msgid "Icon"
+msgstr "Nishoncha"
+
+#: ../capplet/gsm-properties-dialog.c:1315
+msgid "Program"
+msgstr "Dastur"
+
+#: ../capplet/gsm-properties-dialog.c:1465
+#: ../data/session-properties.glade.h:6
+msgid "Sessions Preferences"
+msgstr "Seans parametrlari"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:508
+msgid "Version of this application"
+msgstr "Dastur versiyasi"
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr ""
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr ""
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Ushbu seans MATE'ga kirishingizni taʼminlaydi"
+
+#: ../data/mate-session.schemas.in.h:1
+msgid "Default session"
+msgstr "Andoza seans"
+
+#: ../data/mate-session.schemas.in.h:2
+msgid "File Manager"
+msgstr "Fayl boshqaruvchisi"
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "Agar belgilansa , mate-session seansni tugatishdan avval foydalanuvchini ogohlantiradi."
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required-components\".) The "
+"Session Preferences will not normally allow users to remove a required "
+"component from the session, and the session manager will automatically add "
+"the required components back to the session if they do get removed."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Logout prompt"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:8
+msgid "Panel"
+msgstr "Panel"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Required session components"
+msgstr "Kerakli seans komponentlari"
+
+#: ../data/mate-session.schemas.in.h:11
+msgid "Save sessions"
+msgstr "Seanslarni saqlash"
+
+#: ../data/mate-session.schemas.in.h:12
+msgid "Selected option in the log out dialog"
+msgstr "Seansdan chiqish dialogidagi tanlangan parametr"
+
+#: ../data/mate-session.schemas.in.h:13
+msgid "Show the splash screen"
+msgstr "Splesh oynasini koʻrsatish"
+
+#: ../data/mate-session.schemas.in.h:14
+msgid "Show the splash screen when the session starts up"
+msgstr "Seans boshlanganda splesh oynasini koʻrsatish"
+
+#: ../data/mate-session.schemas.in.h:15
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:19
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Oyna boshqaruvchisi"
+
+#: ../data/gsm-inhibit-dialog.glade.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Baʼzi dasturlar hozir ham ishlamoqda:</b>"
+
+#: ../data/gsm-inhibit-dialog.glade.h:2
+#: ../mate-session/gsm-inhibit-dialog.c:633
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Seanslarni boshqaring"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Seanslar"
+
+#: ../data/session-properties.glade.h:1
+msgid "Additional startup _programs:"
+msgstr "Qoʻshimcha avto-ishga tushadigan _dasturlar:"
+
+#: ../data/session-properties.glade.h:2
+msgid "Browse..."
+msgstr "Tanlash..."
+
+#: ../data/session-properties.glade.h:3
+msgid "Co_mmand:"
+msgstr "Buy_ruq:"
+
+#: ../data/session-properties.glade.h:4
+msgid "Comm_ent:"
+msgstr "_Izoh:"
+
+#: ../data/session-properties.glade.h:5
+msgid "Options"
+msgstr "Parametrlar"
+
+#: ../data/session-properties.glade.h:7
+msgid "Startup Programs"
+msgstr "Avto-ishga tushadigan dasturlar"
+
+#: ../data/session-properties.glade.h:8
+msgid "_Automatically remember running applications when logging out"
+msgstr "Seansdan chiqilayotganda ishlab turgan dasturlarni _avtomatik eslab qolish"
+
+#: ../data/session-properties.glade.h:9
+msgid "_Name:"
+msgstr "_Nomi:"
+
+#: ../data/session-properties.glade.h:10
+msgid "_Remember Currently Running Application"
+msgstr "Joriy ishlayotgan dasturni _eslab qolish"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Aniqlanmagan '%s' desktop fayli versiyasi"
+
+#: ../egg/eggdesktopfile.c:962
+#, c-format
+msgid "Starting %s"
+msgstr "%s ishga tushirilmoqda"
+
+#: ../egg/eggdesktopfile.c:1096
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1164
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Tanilmagan ishga tushirish opsiyasi: %d"
+
+#: ../egg/eggdesktopfile.c:1372
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1391
+#, c-format
+msgid "Not a launchable item"
+msgstr "Element ishga tushiriladigan emas"
+
+#: ../egg/eggsmclient.c:185
+msgid "Disable connection to session manager"
+msgstr ""
+
+#: ../egg/eggsmclient.c:188
+msgid "Specify file containing saved configuration"
+msgstr "Saqlangan moslamalar mavjud boʻlgan faylni koʻrsating"
+
+#: ../egg/eggsmclient.c:188
+msgid "FILE"
+msgstr "FAYL"
+
+#: ../egg/eggsmclient.c:191
+msgid "Specify session management ID"
+msgstr "Seans boshqaruvi ID'ni koʻrsating"
+
+#: ../egg/eggsmclient.c:191
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:241
+msgid "Session Management Options"
+msgstr "Seans boshqaruvi parametrlari"
+
+#: ../egg/eggsmclient.c:242
+msgid "Show Session Management options"
+msgstr "Seans boshqaruvi parametrlarini koʻrsatish"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:256
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "'%s' nishonchasi topildi"
+
+#: ../mate-session/gsm-inhibit-dialog.c:581
+msgid "Unknown"
+msgstr "Nomaʼlum"
+
+#: ../mate-session/gsm-inhibit-dialog.c:632
+msgid "A program is still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:636
+msgid "Some programs are still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:637
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:865
+msgid "Switch User Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:868
+msgid "Logout Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:871
+msgid "Suspend Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:874
+msgid "Hibernate Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:877
+msgid "Shutdown Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:880
+msgid "Reboot Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:888
+msgid "Lock Screen"
+msgstr "Ekranni qulflash"
+
+#: ../mate-session/gsm-inhibit-dialog.c:891
+msgid "Cancel"
+msgstr "Bekor qilish"
+
+#: ../mate-session/gsm-logout-dialog.c:283
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d seconds."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../mate-session/gsm-logout-dialog.c:295
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d seconds."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../mate-session/gsm-logout-dialog.c:377
+msgid "Log out of this system now?"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:383
+msgid "_Switch User"
+msgstr "Foydalanuvchini _oʻzgartirish"
+
+#: ../mate-session/gsm-logout-dialog.c:392
+msgid "_Log Out"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:398
+msgid "Shut down this system now?"
+msgstr "Kompyuter oʻchirilsinmi?"
+
+#: ../mate-session/gsm-logout-dialog.c:404
+msgid "S_uspend"
+msgstr "_Kutish usuli"
+
+#: ../mate-session/gsm-logout-dialog.c:410
+msgid "_Hibernate"
+msgstr "_Uxlash usuli"
+
+#: ../mate-session/gsm-logout-dialog.c:416
+msgid "_Restart"
+msgstr "_Oʻchirib-yoqish"
+
+#: ../mate-session/gsm-logout-dialog.c:426
+msgid "_Shut Down"
+msgstr "_Oʻchirish"
+
+#: ../mate-session/gsm-manager.c:911 ../mate-session/gsm-manager.c:1528
+msgid "Not responding"
+msgstr "Javob bermayapti"
+
+#: ../mate-session/gsm-xsmp-client.c:989
+msgid "This program is blocking log out."
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr ""
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:143
+#, c-format
+msgid "Unable to start login session (and unable connect to the X server)"
+msgstr ""
+
+#: ../mate-session/main.c:504
+msgid "Override standard autostart directories"
+msgstr ""
+
+#: ../mate-session/main.c:505
+msgid "MateConf key used to lookup default session"
+msgstr ""
+
+#: ../mate-session/main.c:506
+msgid "Enable debugging code"
+msgstr ""
+
+#: ../mate-session/main.c:507
+msgid "Do not load user-specified applications"
+msgstr "Foydalanuvchi dasturlari ishga tushirilmasin"
+
+#: ../mate-session/main.c:528
+msgid " - the MATE session manager"
+msgstr " - MATE seans boshqaruvchisi"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- MATE splesh oynasi"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "MATE splesh oynasi"
+
+#: ../tools/mate-session-save.c:65
+msgid "Set the current session name"
+msgstr "Joriy seans nomini belgilash"
+
+#: ../tools/mate-session-save.c:65
+msgid "NAME"
+msgstr "NOMI"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out"
+msgstr "Seansni tugatish"
+
+#: ../tools/mate-session-save.c:67
+msgid "Log out, ignoring any existing inhibitors"
+msgstr ""
+
+#: ../tools/mate-session-save.c:68
+msgid "Show logout dialog"
+msgstr "Seansni tugatish dialogini koʻrsatish"
+
+#: ../tools/mate-session-save.c:69
+msgid "Show shutdown dialog"
+msgstr "Kompyuterni oʻchirish dialogini koʻrsatish"
+
+#: ../tools/mate-session-save.c:70
+msgid "Kill session"
+msgstr ""
+
+#: ../tools/mate-session-save.c:71
+msgid "Use dialog boxes for errors"
+msgstr "Xatolar uchun dialog qutisidan foydalanish"
+
+#: ../tools/mate-session-save.c:72
+msgid "Do not require confirmation"
+msgstr "Tasdiqlash soʻralmasin"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Seans boshqaruvchisiga bogʻlanib boʻlmadi"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr ""
+
diff --git a/po/[email protected] b/po/[email protected]
new file mode 100644
index 0000000..c146873
--- /dev/null
+++ b/po/[email protected]
@@ -0,0 +1,522 @@
+# translation of mate-session-2.0 to Uzbek
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# This file is distributed under the same license as the mate-session package.
+#
+# Nurali Abdurahmonov <[email protected]>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session-2.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-01-07 20:40+0500\n"
+"PO-Revision-Date: 2009-01-08 19:52+0500\n"
+"Last-Translator: Nurali Abdurahmonov <[email protected]>\n"
+"Language-Team: Uzbek\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: ../capplet/gsm-app-dialog.c:126
+msgid "Select Command"
+msgstr "Буйруқни танлаш"
+
+#: ../capplet/gsm-app-dialog.c:187
+msgid "Add Startup Program"
+msgstr ""
+
+#: ../capplet/gsm-app-dialog.c:191
+msgid "Edit Startup Program"
+msgstr ""
+
+#: ../capplet/gsm-properties-dialog.c:132
+msgid "No description"
+msgstr "Таъриф йўқ"
+
+#: ../capplet/gsm-properties-dialog.c:977
+msgid "The name of the startup program cannot be empty"
+msgstr ""
+
+#: ../capplet/gsm-properties-dialog.c:981
+msgid "The startup command cannot be empty"
+msgstr ""
+
+#: ../capplet/gsm-properties-dialog.c:987
+msgid "The startup command is not valid"
+msgstr ""
+
+#: ../capplet/gsm-properties-dialog.c:1291
+msgid "Enabled"
+msgstr "Ёқилган"
+
+#: ../capplet/gsm-properties-dialog.c:1304
+msgid "Icon"
+msgstr "Нишонча"
+
+#: ../capplet/gsm-properties-dialog.c:1315
+msgid "Program"
+msgstr "Дастур"
+
+#: ../capplet/gsm-properties-dialog.c:1465
+#: ../data/session-properties.glade.h:6
+msgid "Sessions Preferences"
+msgstr "Сеанс параметрлари"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:508
+msgid "Version of this application"
+msgstr "Дастур версияси"
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr ""
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr ""
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Ушбу сеанс MATE'га киришингизни таъминлайди"
+
+#: ../data/mate-session.schemas.in.h:1
+msgid "Default session"
+msgstr "Андоза сеанс"
+
+#: ../data/mate-session.schemas.in.h:2
+msgid "File Manager"
+msgstr "Файл бошқарувчиси"
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "Агар белгиланса , mate-session сеансни тугатишдан аввал фойдаланувчини огоҳлантиради."
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required-components\".) The "
+"Session Preferences will not normally allow users to remove a required "
+"component from the session, and the session manager will automatically add "
+"the required components back to the session if they do get removed."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Logout prompt"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:8
+msgid "Panel"
+msgstr "Панел"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Required session components"
+msgstr "Керакли сеанс компонентлари"
+
+#: ../data/mate-session.schemas.in.h:11
+msgid "Save sessions"
+msgstr "Сеансларни сақлаш"
+
+#: ../data/mate-session.schemas.in.h:12
+msgid "Selected option in the log out dialog"
+msgstr "Сеансдан чиқиш диалогидаги танланган параметр"
+
+#: ../data/mate-session.schemas.in.h:13
+msgid "Show the splash screen"
+msgstr "Сплэш ойнасини кўрсатиш"
+
+#: ../data/mate-session.schemas.in.h:14
+msgid "Show the splash screen when the session starts up"
+msgstr "Сеанс бошланганда сплэш ойнасини кўрсатиш"
+
+#: ../data/mate-session.schemas.in.h:15
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:16
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:17
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:18
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:19
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:20 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Ойна бошқарувчиси"
+
+#: ../data/gsm-inhibit-dialog.glade.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Баъзи дастурлар ҳозир ҳам ишламоқда:</b>"
+
+#: ../data/gsm-inhibit-dialog.glade.h:2
+#: ../mate-session/gsm-inhibit-dialog.c:633
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Сеансларни бошқаринг"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Сеанслар"
+
+#: ../data/session-properties.glade.h:1
+msgid "Additional startup _programs:"
+msgstr "Қўшимча авто-ишга тушадиган _дастурлар:"
+
+#: ../data/session-properties.glade.h:2
+msgid "Browse..."
+msgstr "Танлаш..."
+
+#: ../data/session-properties.glade.h:3
+msgid "Co_mmand:"
+msgstr "Буй_руқ:"
+
+#: ../data/session-properties.glade.h:4
+msgid "Comm_ent:"
+msgstr "_Изоҳ:"
+
+#: ../data/session-properties.glade.h:5
+msgid "Options"
+msgstr "Параметрлар"
+
+#: ../data/session-properties.glade.h:7
+msgid "Startup Programs"
+msgstr "Авто-ишга тушадиган дастурлар"
+
+#: ../data/session-properties.glade.h:8
+msgid "_Automatically remember running applications when logging out"
+msgstr "Сеансдан чиқилаётганда ишлаб турган дастурларни _автоматик эслаб қолиш"
+
+#: ../data/session-properties.glade.h:9
+msgid "_Name:"
+msgstr "_Номи:"
+
+#: ../data/session-properties.glade.h:10
+msgid "_Remember Currently Running Application"
+msgstr "Жорий ишлаётган дастурни _эслаб қолиш"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Аниқланмаган '%s' desktop файли версияси"
+
+#: ../egg/eggdesktopfile.c:962
+#, c-format
+msgid "Starting %s"
+msgstr "%s ишга туширилмоқда"
+
+#: ../egg/eggdesktopfile.c:1096
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1164
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Танилмаган ишга тушириш опцияси: %d"
+
+#: ../egg/eggdesktopfile.c:1372
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1391
+#, c-format
+msgid "Not a launchable item"
+msgstr "Элемент ишга тушириладиган эмас"
+
+#: ../egg/eggsmclient.c:185
+msgid "Disable connection to session manager"
+msgstr ""
+
+#: ../egg/eggsmclient.c:188
+msgid "Specify file containing saved configuration"
+msgstr "Сақланган мосламалар мавжуд бўлган файлни кўрсатинг"
+
+#: ../egg/eggsmclient.c:188
+msgid "FILE"
+msgstr "ФАЙЛ"
+
+#: ../egg/eggsmclient.c:191
+msgid "Specify session management ID"
+msgstr "Сеанс бошқаруви ID'ни кўрсатинг"
+
+#: ../egg/eggsmclient.c:191
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:241
+msgid "Session Management Options"
+msgstr "Сеанс бошқаруви параметрлари"
+
+#: ../egg/eggsmclient.c:242
+msgid "Show Session Management options"
+msgstr "Сеанс бошқаруви параметрларини кўрсатиш"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:256
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "'%s' нишончаси топилди"
+
+#: ../mate-session/gsm-inhibit-dialog.c:581
+msgid "Unknown"
+msgstr "Номаълум"
+
+#: ../mate-session/gsm-inhibit-dialog.c:632
+msgid "A program is still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:636
+msgid "Some programs are still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:637
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:865
+msgid "Switch User Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:868
+msgid "Logout Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:871
+msgid "Suspend Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:874
+msgid "Hibernate Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:877
+msgid "Shutdown Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:880
+msgid "Reboot Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:888
+msgid "Lock Screen"
+msgstr "Экранни қулфлаш"
+
+#: ../mate-session/gsm-inhibit-dialog.c:891
+msgid "Cancel"
+msgstr "Бекор қилиш"
+
+#: ../mate-session/gsm-logout-dialog.c:283
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d seconds."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../mate-session/gsm-logout-dialog.c:295
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d seconds."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../mate-session/gsm-logout-dialog.c:377
+msgid "Log out of this system now?"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:383
+msgid "_Switch User"
+msgstr "Фойдаланувчини _ўзгартириш"
+
+#: ../mate-session/gsm-logout-dialog.c:392
+msgid "_Log Out"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:398
+msgid "Shut down this system now?"
+msgstr "Компьютер ўчирилсинми?"
+
+#: ../mate-session/gsm-logout-dialog.c:404
+msgid "S_uspend"
+msgstr "_Кутиш усули"
+
+#: ../mate-session/gsm-logout-dialog.c:410
+msgid "_Hibernate"
+msgstr "_Ухлаш усули"
+
+#: ../mate-session/gsm-logout-dialog.c:416
+msgid "_Restart"
+msgstr "_Ўчириб-ёқиш"
+
+#: ../mate-session/gsm-logout-dialog.c:426
+msgid "_Shut Down"
+msgstr "_Ўчириш"
+
+#: ../mate-session/gsm-manager.c:911 ../mate-session/gsm-manager.c:1528
+msgid "Not responding"
+msgstr "Жавоб бермаяпти"
+
+#: ../mate-session/gsm-xsmp-client.c:989
+msgid "This program is blocking log out."
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr ""
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:143
+#, c-format
+msgid "Unable to start login session (and unable connect to the X server)"
+msgstr ""
+
+#: ../mate-session/main.c:504
+msgid "Override standard autostart directories"
+msgstr ""
+
+#: ../mate-session/main.c:505
+msgid "MateConf key used to lookup default session"
+msgstr ""
+
+#: ../mate-session/main.c:506
+msgid "Enable debugging code"
+msgstr ""
+
+#: ../mate-session/main.c:507
+msgid "Do not load user-specified applications"
+msgstr "Фойдаланувчи дастурлари ишга туширилмасин"
+
+#: ../mate-session/main.c:528
+msgid " - the MATE session manager"
+msgstr " - MATE сеанс бошқарувчиси"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr "- MATE сплэш ойнаси"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "MATE сплэш ойнаси"
+
+#: ../tools/mate-session-save.c:65
+msgid "Set the current session name"
+msgstr "Жорий сеанс номини белгилаш"
+
+#: ../tools/mate-session-save.c:65
+msgid "NAME"
+msgstr "НОМИ"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out"
+msgstr "Сеансни тугатиш"
+
+#: ../tools/mate-session-save.c:67
+msgid "Log out, ignoring any existing inhibitors"
+msgstr ""
+
+#: ../tools/mate-session-save.c:68
+msgid "Show logout dialog"
+msgstr "Сеансни тугатиш диалогини кўрсатиш"
+
+#: ../tools/mate-session-save.c:69
+msgid "Show shutdown dialog"
+msgstr "Компьютерни ўчириш диалогини кўрсатиш"
+
+#: ../tools/mate-session-save.c:70
+msgid "Kill session"
+msgstr ""
+
+#: ../tools/mate-session-save.c:71
+msgid "Use dialog boxes for errors"
+msgstr "Хатолар учун диалог қутисидан фойдаланиш"
+
+#: ../tools/mate-session-save.c:72
+msgid "Do not require confirmation"
+msgstr "Тасдиқлаш сўралмасин"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Сеанс бошқарувчисига боғланиб бўлмади"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr ""
+
diff --git a/po/vi.po b/po/vi.po
new file mode 100644
index 0000000..945c30a
--- /dev/null
+++ b/po/vi.po
@@ -0,0 +1,513 @@
+# Vietnamese Translation for MATE Session.
+# Copyright © 2008 MATE i18n Project for Vietnamese.
+# Nguyễn Thái Ngọc Duy <[email protected]>, 2002-2004,2007-2008.
+# Clytie Siddall <[email protected]>, 2005-2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session 2.25.90\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-session&component=general\n"
+"POT-Creation-Date: 2009-02-13 09:20+0000\n"
+"PO-Revision-Date: 2009-02-13 21:51+0930\n"
+"Last-Translator: Clytie Siddall <[email protected]>\n"
+"Language-Team: Vietnamese <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: LocFactoryEditor 1.8\n"
+
+#: ../capplet/gsm-app-dialog.c:126
+msgid "Select Command"
+msgstr "Chọn câu lệnh"
+
+#: ../capplet/gsm-app-dialog.c:187
+msgid "Add Startup Program"
+msgstr "Thêm chương trình khởi động"
+
+#: ../capplet/gsm-app-dialog.c:191
+msgid "Edit Startup Program"
+msgstr "Sửa chương trình khởi động"
+
+#: ../capplet/gsm-properties-dialog.c:132
+msgid "No description"
+msgstr "Không mô tả"
+
+#: ../capplet/gsm-properties-dialog.c:952
+msgid "The name of the startup program cannot be empty"
+msgstr "Tên của chương trình khởi động không thể là rỗng"
+
+#: ../capplet/gsm-properties-dialog.c:956
+msgid "The startup command cannot be empty"
+msgstr "Không cho phép tạo lệnh khởi động rỗng"
+
+#: ../capplet/gsm-properties-dialog.c:962
+msgid "The startup command is not valid"
+msgstr "Lệnh khởi động không hợp lệ"
+
+#: ../capplet/gsm-properties-dialog.c:1279
+msgid "Enabled"
+msgstr "Bật"
+
+#: ../capplet/gsm-properties-dialog.c:1292
+msgid "Icon"
+msgstr "Biểu tượng"
+
+#: ../capplet/gsm-properties-dialog.c:1303
+msgid "Program"
+msgstr "Chương trình"
+
+#: ../capplet/gsm-properties-dialog.c:1453
+#: ../data/session-properties.glade.h:6
+msgid "Sessions Preferences"
+msgstr "Tuỳ thích phiên chạy"
+
+#: ../capplet/main.c:37
+#: ../mate-session/main.c:525
+msgid "Version of this application"
+msgstr "Phiên bản của ứng dụng"
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid "Assistive technology support has been requested for this session, but the accessibility registry was not found. Please ensure that the AT-SPI package is installed. Your session has been started without assistive technology support."
+msgstr "Khả năng hỗ trợ công nghệ giúp đỡ đã được yêu cầu cho phiên chạy này, nhưng không tìm thấy bộ đăng ký khả năng truy cập. Hãy kiểm tra xem gói AT-SPI đã được cài đặt. Phiên chạy đã được khởi chạy mà không có khả năng hỗ trợ công nghệ giúp đỡ."
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr "Bộ bao bọc đăng ký SPI AT"
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr "Trình bổ trợ Trình nền Thiết lập MATE"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "Phiên chạy này sẽ đăng nhập bạn vào MATE"
+
+#: ../data/mate-session.schemas.in.h:1
+msgid "Default session"
+msgstr "Phiên chạy mặc định"
+
+#: ../data/mate-session.schemas.in.h:2
+msgid "File Manager"
+msgstr "Bộ Quản lý Tập tin"
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "Nếu bật, mate-session sẽ nhắc người dùng trước khi kết thúc phiên chạy."
+
+#: ../data/mate-session.schemas.in.h:4
+msgid "If enabled, mate-session will save the session automatically. Otherwise, the logout dialog will have an option to save the session."
+msgstr "Nếu bật, mate-session sẽ lưu tự động phiên chạy. Nếu tắt, hộp thoại đăng xuất sẽ hiển thị tùy chọn lưu phiên chạy."
+
+#: ../data/mate-session.schemas.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "Danh sách các ứng dụng thuộc về phiên chạy mặc định."
+
+#: ../data/mate-session.schemas.in.h:6
+#| msgid ""
+#| "List of components that are required as part of the session. (Each "
+#| "element names a key under \"/desktop/mate/session/required-components"
+#| "\".) The Session Preferences will not normally allow users to remove a "
+#| "required component from the session, and the session manager will "
+#| "automatically add the required components back to the session if they do "
+#| "get removed."
+msgid "List of components that are required as part of the session. (Each element names a key under \"/desktop/mate/session/required_components\"). To be a required component of the session means that removing a required component from a running session (for instance killing related process), mate-session will start it next time you log in anyway."
+msgstr "Danh sách các thành phần cần thiết là phần của buổi hợp. (Mỗi thành phần đặt tên một khoá dưới « /desktop/mate/session/required-components ».) Gỡ bỏ khỏi buổi hợp một thành phần cần thiết (v.d. buộc kết thúc một tiến trình liên quan) thì mate-session khởi chạy lại nó lần bạn đăng nhập kế tiếp."
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Logout prompt"
+msgstr "Nhắc đăng xuất"
+
+#: ../data/mate-session.schemas.in.h:8
+msgid "Panel"
+msgstr "Bảng"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Ảnh ưa thích dùng cho màn hình giật gân đăng nhập"
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Required session components"
+msgstr "Thành phần phiên chạy đòi hỏi"
+
+#: ../data/mate-session.schemas.in.h:11
+msgid "Save sessions"
+msgstr "Lưu các phiên chạy"
+
+#: ../data/mate-session.schemas.in.h:12
+msgid "Show the splash screen"
+msgstr "Hiển thị màn hình giật gân"
+
+#: ../data/mate-session.schemas.in.h:13
+msgid "Show the splash screen when the session starts up"
+msgstr "Hiển thị màn hình giật gân khi khởi chạy phiên chạy"
+
+#: ../data/mate-session.schemas.in.h:14
+msgid "The file manager provides the desktop icons and allows you to interact with your saved files."
+msgstr "Bộ quản lý tập tin thì cung cấp các biểu tượng trên màn hình và cho phép bạn tương tác với các tập tin đã lưu của mình."
+
+#: ../data/mate-session.schemas.in.h:15
+msgid "The number of minutes of inactivity before the session is considered idle."
+msgstr "Số các phút không hoạt động trước khi phiên chạy được thấy là « nghỉ »."
+
+#: ../data/mate-session.schemas.in.h:16
+msgid "The panel provides the bar at the top or bottom of the screen containing menus, the window list, status icons, the clock, etc."
+msgstr "Bảng điều khiển cung cấp thanh ở đầu/cưới màn hình mà chứa các trình đơn, danh sách các cửa sổ, các biểu tượng trạng thái, đồng hồ v.v."
+
+#: ../data/mate-session.schemas.in.h:17
+msgid "The window manager is the program that draws the title bar and borders around windows, and allows you to move and resize windows."
+msgstr "Bộ quản lý cửa sổ là chương trình mà vẽ thanh tựa đề và các viền chung quanh cửa sổ, và cho phép bạn di chuyển và co giãn cửa sổ."
+
+#: ../data/mate-session.schemas.in.h:18
+msgid "This is a relative path value based off the $datadir/pixmaps/ directory. Sub-directories and image names are valid values. Changing this value will effect the next session login."
+msgstr "Đây là giá trị đường dẫn tương đối, dựa vào thư mục « $datadir/pixmaps/ ». Các tên của thư mục con và các tên ảnh đều là giá trị hợp lệ. Thay đổi giá trị này sẽ có tác động khi đăng nhập trong phiên chạy kế tiếp."
+
+#: ../data/mate-session.schemas.in.h:19
+msgid "Time before session is considered idle"
+msgstr "Khoảng thời gian trước khi phiên chạy được thấy là « nghỉ »"
+
+#: ../data/mate-session.schemas.in.h:20
+#: ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Bộ quản lý cửa sổ"
+
+#: ../data/gsm-inhibit-dialog.glade.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>Vài chương trình vẫn đang hoạt đọng:</b>"
+
+#: ../data/gsm-inhibit-dialog.glade.h:2
+#: ../mate-session/gsm-inhibit-dialog.c:633
+msgid "Waiting for program to finish. Interrupting program may cause you to lose work."
+msgstr "Đang chờ chương trình kết thúc. Ngắt chương trình có thể dẫn đến mất dữ liệu."
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "Hãy chọn những ứng dụng nào cần khởi chạy khi bạn đăng nhập"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "Ứng dụng Khởi chạy"
+
+#: ../data/session-properties.glade.h:1
+msgid "Additional startup _programs:"
+msgstr "_Chương trình khởi động thêm:"
+
+#: ../data/session-properties.glade.h:2
+msgid "Browse..."
+msgstr "Duyệt..."
+
+#: ../data/session-properties.glade.h:3
+msgid "Co_mmand:"
+msgstr "Lệ_nh:"
+
+#: ../data/session-properties.glade.h:4
+msgid "Comm_ent:"
+msgstr "C_hú thích:"
+
+#: ../data/session-properties.glade.h:5
+msgid "Options"
+msgstr "Tùy chọn"
+
+#: ../data/session-properties.glade.h:7
+msgid "Startup Programs"
+msgstr "Chương trình khởi động"
+
+#: ../data/session-properties.glade.h:8
+msgid "_Automatically remember running applications when logging out"
+msgstr "_Tự động nhớ các ứng dụng đang chạy khi đăng xuất"
+
+#: ../data/session-properties.glade.h:9
+msgid "_Name:"
+msgstr "_Tên:"
+
+#: ../data/session-properties.glade.h:10
+msgid "_Remember Currently Running Application"
+msgstr "_Nhớ ứng dụng đang chạy"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "Tập tin không phải là một tập tin .desktop hợp lệ"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Không nhận ra tập tin màn hình nền phiên bản « %s »"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "Đang khởi chạy %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "Ứng dụng không chấp nhận tài liệu thông qua dòng lệnh"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Không nhận ra tùy chọn khởi chạy: %d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Không thể gởi địa chỉ URI của tài liệu cho một mục nhập màn hình nền « Kiểu=Liên_kết »"
+
+#: ../egg/eggdesktopfile.c:1392
+#, c-format
+msgid "Not a launchable item"
+msgstr "Không phải một mục có thể khởi chạy"
+
+#: ../egg/eggsmclient.c:185
+msgid "Disable connection to session manager"
+msgstr "Tắt kết nối với trình quản lý phiên chạy"
+
+#: ../egg/eggsmclient.c:188
+msgid "Specify file containing saved configuration"
+msgstr "Ghi rõ tập tin chứa cấu hình đã lưu"
+
+#: ../egg/eggsmclient.c:188
+msgid "FILE"
+msgstr "TẬP_TIN"
+
+#: ../egg/eggsmclient.c:191
+msgid "Specify session management ID"
+msgstr "Xác định mã số quản lý phiên chạy"
+
+#: ../egg/eggsmclient.c:191
+msgid "ID"
+msgstr "MÃ_SỐ"
+
+#: ../egg/eggsmclient.c:245
+msgid "Session Management Options"
+msgstr "Tùy chọn Quản lý Phiên chạy"
+
+#: ../egg/eggsmclient.c:246
+msgid "Show Session Management options"
+msgstr "Hiện các tùy chọn quản lý phiên chạy"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"Gặp vấn đề với trình phục vụ cấu hình.\n"
+"(%s đã thoát với trạng thái %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:256
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "Không thấy biểu tượng '%s'"
+
+#: ../mate-session/gsm-inhibit-dialog.c:581
+msgid "Unknown"
+msgstr "Không biết"
+
+#: ../mate-session/gsm-inhibit-dialog.c:632
+msgid "A program is still running:"
+msgstr "Một chương trình vẫn đang chạy:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:636
+msgid "Some programs are still running:"
+msgstr "Vài chương trình vẫn đang chạy:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:637
+msgid "Waiting for programs to finish. Interrupting these programs may cause you to lose work."
+msgstr "Đang chờ chương trình kết thúc. Ngắt những chương trình này có thể dẫn đến mất dữ liệu."
+
+#: ../mate-session/gsm-inhibit-dialog.c:865
+msgid "Switch User Anyway"
+msgstr "Vẫn chuyển đổi người dùng"
+
+#: ../mate-session/gsm-inhibit-dialog.c:868
+msgid "Logout Anyway"
+msgstr "Vẫn đăng xuất"
+
+#: ../mate-session/gsm-inhibit-dialog.c:871
+msgid "Suspend Anyway"
+msgstr "Vẫn Ngưng"
+
+#: ../mate-session/gsm-inhibit-dialog.c:874
+msgid "Hibernate Anyway"
+msgstr "Vẫn Ngủ đông"
+
+#: ../mate-session/gsm-inhibit-dialog.c:877
+msgid "Shutdown Anyway"
+msgstr "Vẫn tắt máy"
+
+#: ../mate-session/gsm-inhibit-dialog.c:880
+msgid "Reboot Anyway"
+msgstr "Vẫn khởi động lại"
+
+#: ../mate-session/gsm-inhibit-dialog.c:888
+msgid "Lock Screen"
+msgstr "Khoá màn hình"
+
+#: ../mate-session/gsm-inhibit-dialog.c:891
+msgid "Cancel"
+msgstr "Thôi"
+
+#: ../mate-session/gsm-logout-dialog.c:284
+#, c-format
+#| msgid ""
+#| "You are currently logged in as \"%s\".\n"
+#| "You will be automatically logged out in %d second."
+#| msgid_plural ""
+#| "You are currently logged in as \"%s\".\n"
+#| "You will be automatically logged out in %d seconds."
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "Bạn sẽ bị tự động đăng xuất trong vòng %d giây."
+
+#: ../mate-session/gsm-logout-dialog.c:292
+#, c-format
+#| msgid ""
+#| "You are currently logged in as \"%s\".\n"
+#| "This system will be automatically shut down in %d second."
+#| msgid_plural ""
+#| "You are currently logged in as \"%s\".\n"
+#| "This system will be automatically shut down in %d seconds."
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "Hệ thống này sẽ bị tự động tắt trong vòng %d giây."
+
+#: ../mate-session/gsm-logout-dialog.c:324
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "Bạn đã đăng nhập dưới « %s »"
+
+#: ../mate-session/gsm-logout-dialog.c:389
+msgid "Log out of this system now?"
+msgstr "Đăng xuất ra hệ thống này ngay bây giờ ?"
+
+#: ../mate-session/gsm-logout-dialog.c:395
+msgid "_Switch User"
+msgstr "Chu_yển đổi người dùng"
+
+#: ../mate-session/gsm-logout-dialog.c:404
+msgid "_Log Out"
+msgstr "Đăng _xuất"
+
+#: ../mate-session/gsm-logout-dialog.c:410
+msgid "Shut down this system now?"
+msgstr "Tắt hệ thống này ngày bây giờ ?"
+
+#: ../mate-session/gsm-logout-dialog.c:416
+msgid "S_uspend"
+msgstr "N_gưng"
+
+#: ../mate-session/gsm-logout-dialog.c:422
+msgid "_Hibernate"
+msgstr "_Ngủ đông"
+
+#: ../mate-session/gsm-logout-dialog.c:428
+msgid "_Restart"
+msgstr "_Khởi chạy lại"
+
+#: ../mate-session/gsm-logout-dialog.c:438
+msgid "_Shut Down"
+msgstr "_Tắt máy"
+
+#: ../mate-session/gsm-manager.c:943
+#: ../mate-session/gsm-manager.c:1571
+msgid "Not responding"
+msgstr "Không trả lời"
+
+#: ../mate-session/gsm-xsmp-client.c:989
+msgid "This program is blocking log out."
+msgstr "Chương trình này đang ngăn cản đăng xuất."
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid "Refusing new client connection because the session is currently being shut down\n"
+msgstr "Đang từ chối kết nối khách mới vì phiên chạy đang bị tắt\n"
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "Không thể tạo ổ cắm lắng nghe ICE: %s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:143
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "Không thể khởi chạy buổi hợp đăng nhập (và không thể kết nối đến trình phục vụ X)"
+
+#: ../mate-session/main.c:521
+msgid "Override standard autostart directories"
+msgstr "Đè thư mục autostart chuẩn"
+
+#: ../mate-session/main.c:522
+msgid "MateConf key used to lookup default session"
+msgstr "Khoá MateConf dùng để tìm phiên làm việc mặc định"
+
+#: ../mate-session/main.c:523
+msgid "Enable debugging code"
+msgstr "Bật mã hỗ trợ tìm lỗi"
+
+#: ../mate-session/main.c:524
+msgid "Do not load user-specified applications"
+msgstr "Đừng nạp ứng dụng do người dùng xác định"
+
+#: ../mate-session/main.c:545
+msgid " - the MATE session manager"
+msgstr " — Bộ Quản lý Phiên chạy MATE"
+
+#: ../splash/mate-session-splash.c:315
+msgid "- MATE Splash Screen"
+msgstr " — Màn hình giật gân MATE"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr "Màn hình Giật gân MATE"
+
+#: ../tools/mate-session-save.c:65
+msgid "Set the current session name"
+msgstr "Đặt tên của phiên chạy hiện thời"
+
+#: ../tools/mate-session-save.c:65
+msgid "NAME"
+msgstr "TÊN"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out"
+msgstr "Đăng xuất"
+
+#: ../tools/mate-session-save.c:67
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "Đăng xuất, bỏ qua các ứng dụng ngăn cản"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show logout dialog"
+msgstr "Hiện hộp thoại đăng xuất"
+
+#: ../tools/mate-session-save.c:69
+msgid "Show shutdown dialog"
+msgstr "Hiện hộp thoại tắt máy"
+
+#: ../tools/mate-session-save.c:70
+msgid "Kill session"
+msgstr "Buộc kết thúc phiên chạy"
+
+#: ../tools/mate-session-save.c:71
+msgid "Use dialog boxes for errors"
+msgstr "Dùng hộp thoại cho lỗi"
+
+#: ../tools/mate-session-save.c:72
+msgid "Do not require confirmation"
+msgstr "Không yêu cầu xác nhận"
+
+#: ../tools/mate-session-save.c:120
+#: ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Không thể kết nối với trình quản lý phiên chạy"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "Chương trình được gọi với tuỳ chọn xung đột"
+
diff --git a/po/wa.po b/po/wa.po
new file mode 100644
index 0000000..3c94c28
--- /dev/null
+++ b/po/wa.po
@@ -0,0 +1,498 @@
+# Traduction into the walloon language.
+#
+# Si vos voloz donner on côp di spale pol ratournaedje di Mate (ou des
+# ôtes libes programes) sicrijhoz-mu a l' adresse emile
+# <[email protected]>; nos avons co bråmint di l' ovraedje a fé.
+#
+# Copyright (C) 1999,2002 Free Software Foundation, Inc.
+# Pablo Saratxaga <[email protected]> 1999-2002
+# Lucyin Mahin, 2000
+# Lorint Hendschel <[email protected]>, 1999-2000.
+# Pablo Saratxaga <[email protected]>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session 1.5.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-04-01 20:45+0200\n"
+"PO-Revision-Date: 2005-04-02 00:50+0200\n"
+"Last-Translator: Pablo Saratxaga <[email protected]>\n"
+"Language-Team: Walloon <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
+
+#: mate-session/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "Permete les raloyaedjes rantoele TCP"
+
+#: mate-session/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"Po des råjhons di såvrité, so les platfômes k' ont «_IceTcpTransNoListen"
+"()» (les sistinmes XFree86), mate-session ni schoûte nén po les raloyaedjes "
+"rantoele so les pôrts TCP. Cisse tchuze chal permete les raloyaedjes a pårti "
+"di lodjoes (otorijhîs) då lon. mate-session doet esse renondé po cisse "
+"tchuze si mete en alaedje."
+
+#: mate-session/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"S' il est metou, mate-session dmandrè a l' uzeu d' acertiner divant di "
+"clôre li session."
+
+#: mate-session/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Si metou, mate-session schaprè otomaticmint les sessions. Ôtrumint, li "
+"purnea di dmande di dislodjaedje a-st ene tchuze po schaper l' session."
+
+#: mate-session/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "Prompt di dislodjaedje"
+
+#: mate-session/mate-session.schemas.in.h:6
+msgid "Preferred Image to use for login splash screen"
+msgstr "Preferêye imådje a-z eployî pol purnea di bénvnowe"
+
+#: mate-session/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "Schaper les sessions"
+
+#: mate-session/mate-session.schemas.in.h:8
+msgid "Show the splash screen"
+msgstr "Mostrer li purnea di bénvnowe"
+
+#: mate-session/mate-session.schemas.in.h:9
+msgid "Show the splash screen when the session starts up"
+msgstr "Mostrer li purnea di bénvnowe å moumint di l' elodjaedje"
+
+#: mate-session/mate-session.schemas.in.h:10
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Çouchal c' est ene valixhance k' est on tchmin relatif a pårti do ridant "
+"$datadir/pixmaps/ Les dzo-ridants eyet les nos d' fitchîs sont des "
+"valixhances valides. On candjmint del valixhance serè-st efectif a "
+"l' elodjaedje shuvant."
+
+#: mate-session/gsm-client-editor.c:97 mate-session/startup-programs.c:314
+msgid "_Order:"
+msgstr "Ô_re:"
+
+#: mate-session/gsm-client-editor.c:99
+msgid "The order in which applications are started in the session."
+msgstr "L' ôre ki les programes sont-st enondés el session."
+
+#: mate-session/gsm-client-editor.c:106
+msgid "What happens to the application when it exits."
+msgstr "Çou k' arive å programe cwand on cwite li session."
+
+#: mate-session/gsm-client-editor.c:109
+msgid "_Style:"
+msgstr "_Stîle:"
+
+#: mate-session/gsm-client-list.c:150
+#: mate-session/session-properties-capplet.c:412
+msgid "Order"
+msgstr "Ôre"
+
+#: mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr "Stîle"
+
+#: mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr "Estat"
+
+#: mate-session/gsm-client-list.c:165
+msgid "Program"
+msgstr "Programe"
+
+#: mate-session/gsm-client-row.c:31
+msgid "Inactive"
+msgstr "Essocté"
+
+#: mate-session/gsm-client-row.c:32
+msgid "Waiting to start or already finished."
+msgstr "Ratindant po s' enonder oudonbén il a ddja fini."
+
+#: mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr "S' enondant"
+
+#: mate-session/gsm-client-row.c:35
+msgid "Started but has not yet reported state."
+msgstr "Dedja enondé mins ki n' a nén co rapoirté si estat."
+
+#: mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr "En alaedje"
+
+#: mate-session/gsm-client-row.c:38
+msgid "A normal member of the session."
+msgstr "On mimbe normå del session (programe en alaedje)."
+
+#: mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr "Schapant"
+
+#: mate-session/gsm-client-row.c:41
+msgid "Saving session details."
+msgstr "Schapant l' apontiaedje des detays pol session."
+
+#: mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr "Nén cnoxhou"
+
+#: mate-session/gsm-client-row.c:44
+msgid "State not reported within timeout."
+msgstr "Estat nén rapoirté et li tårdjaedje est houte."
+
+#: mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr "Normå"
+
+#: mate-session/gsm-client-row.c:51
+msgid "Unaffected by logouts but can die."
+msgstr "Nén afecté pal fén del session, mins i pout mori."
+
+#: mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr "Renonder"
+
+#: mate-session/gsm-client-row.c:54
+msgid "Never allowed to die."
+msgstr "Ni pout måy mori (i ravicrè)."
+
+#: mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr "Batch"
+
+#: mate-session/gsm-client-row.c:57
+msgid "Discarded on logout and can die."
+msgstr "Oisté al fén del session et pout mori."
+
+#: mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr "Apontiaedjes"
+
+#: mate-session/gsm-client-row.c:60
+msgid "Always started on every login."
+msgstr "Tofer enondé po tchaeke session."
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: mate-session/gsm-gsd.c:41
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"Åk n' a nén stî tot-z enondant li démon d' apontiaedjes di Mate.\n"
+"\n"
+"Sacwantès sacwès, come les tinmes, les sons, ou l' apontiaedje do fond del "
+"waitroûle, pôrént n' nén roter comifåt."
+
+#: mate-session/gsm-gsd.c:53
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Li dierin messaedje d' aroke fourit:\n"
+"\n"
+
+#: mate-session/gsm-gsd.c:58
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"Mate va tot l' minme rissayî d' enonder li démon d' apontiaedjes li côp ki "
+"vént k' vos vs elodjroz."
+
+#: mate-session/gsm-gsd.c:115
+msgid "There was an unknown activation error."
+msgstr "I gn a-st avou ene aroke d' activaedje nén cnoxhowe."
+
+#: mate-session/gsm-gsd.c:157
+msgid "The Settings Daemon restarted too many times."
+msgstr "Li démon d' apontiaedjes a stî renondé pår trop d' feyes."
+
+#: mate-session/logout.c:355
+msgid "Are you sure you want to log out?"
+msgstr "Estoz vs seur di vs voleur dislodjî?"
+
+#: mate-session/logout.c:372
+msgid "_Save current setup"
+msgstr "_Schaper l' apontiaedje do moumint"
+
+#: mate-session/logout.c:393
+msgid "Action"
+msgstr "Accion"
+
+#: mate-session/logout.c:410
+msgid "_Log out"
+msgstr "Si _dislodjî"
+
+#: mate-session/logout.c:416
+msgid "Sh_ut down"
+msgstr "Dis_tinde l' éndjole"
+
+#: mate-session/logout.c:423
+msgid "_Restart the computer"
+msgstr "_Renonder li copiutrece"
+
+#: mate-session/main.c:81
+msgid "Specify a session name to load"
+msgstr "Specifyî on no di session a tcherdjî"
+
+#: mate-session/main.c:82
+msgid "Only read saved sessions from the default.session file"
+msgstr "Èn lére les schapêyès sessions ki foû do fitchî «default.session»"
+
+#: mate-session/main.c:83
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr "Tins (e milisegondes) a ratinde po on cliyint s' eredjistrer (0=tofer)"
+
+#: mate-session/main.c:84
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr "Tins (e milisegondes) a ratinde po on cliyint responde (0=tofer)"
+
+#: mate-session/main.c:85
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr "Tins (e milisegondes) a ratinde po on cliyint mori (0=tofer)"
+
+#: mate-session/main.c:265
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"Dji n' sai cweri l' adresse Internet po %s.\n"
+"Çoula va fé ki MATE ni pôrè nén roter comifåt.\n"
+"Si sreut possibe di coridjî l' problinme e metant\n"
+"%s el fitchî /etc/hosts."
+
+#: mate-session/main.c:272
+msgid "Log in Anyway"
+msgstr "S' elodjî tot l' minme"
+
+#: mate-session/main.c:273
+msgid "Try Again"
+msgstr "Sayîz co on côp"
+
+#: mate-session/manager.c:223
+msgid "Your session has been saved"
+msgstr "Vosse session a stî schapêye"
+
+#: mate-session/manager.c:527
+msgid "Wait abandoned due to conflict."
+msgstr "Dji n' ratind pus: i gn a deus sacwès ki n' vont nén eshonne"
+
+#: mate-session/manager.c:1035
+#, c-format
+msgid "No response to the %s command."
+msgstr "Nole response al comande %s."
+
+#: mate-session/manager.c:1036
+msgid "The program may be slow, stopped or broken."
+msgstr "I s' pôreut ki li programe soeye londjin, djoké ou scheté."
+
+#: mate-session/manager.c:1037
+msgid "You may wait for it to respond or remove it."
+msgstr "Vos poloz rawårder ene response - oudonbén el oister!"
+
+#: mate-session/manager.c:1760
+msgid "Restart abandoned due to failures."
+msgstr ""
+"Renonder on programe k' a stî passé houte cåze des arokes tot l' enondant."
+
+#: mate-session/manager.c:1956
+msgid "A session shutdown is in progress."
+msgstr "Li session est ki s' clôt pol moumint"
+
+#: mate-session/save-session.c:46
+msgid "Set the current session"
+msgstr "Definixh li session do moumint"
+
+#: mate-session/save-session.c:47
+msgid "Kill session"
+msgstr "Touwer li session"
+
+#: mate-session/save-session.c:48
+msgid "Use dialog boxes"
+msgstr "Eployî des purneas di messaedje"
+
+#: mate-session/save-session.c:146 mate-session/save-session.c:179
+msgid "Could not connect to the session manager"
+msgstr "Dji n' a nén parvnou a m' adjonde å manaedjeu des sessions"
+
+#: mate-session/session-names.c:143
+msgid "The session name cannot be empty"
+msgstr "Li no del session ni pout nén esse vude"
+
+#: mate-session/session-names.c:154
+msgid "The session name already exists"
+msgstr "Ci no di session egzistêye dedja"
+
+#: mate-session/session-names.c:188
+msgid "Add a new session"
+msgstr "Radjouter ene novele session"
+
+#: mate-session/session-names.c:218
+msgid "Edit session name"
+msgstr "Candjî l' no del session"
+
+#: mate-session/session-properties-capplet.c:122
+msgid "_Edit"
+msgstr "_Candjî..."
+
+#: mate-session/session-properties-capplet.c:190
+msgid ""
+"Some changes are not saved.\n"
+"Is it still OK to exit?"
+msgstr ""
+"Sacwants candjmints n' ont nén stî schapés.\n"
+"Estoz todi d' acoird di moussî foû?"
+
+#: mate-session/session-properties-capplet.c:240
+#: mate-session/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Sessions"
+
+#: mate-session/session-properties-capplet.c:273
+msgid "Show splash screen on _login"
+msgstr "Mostrer li purnea di bénvnowe å moumint di l' e_lodjaedje"
+
+#: mate-session/session-properties-capplet.c:284
+msgid "As_k on logout"
+msgstr "Di_mander å moumint di s' dislodjî"
+
+#: mate-session/session-properties-capplet.c:295
+msgid "Automatically save chan_ges to session"
+msgstr "Schaper otomaticmint les cand_jmints del session"
+
+#: mate-session/session-properties-capplet.c:306
+msgid "_Sessions:"
+msgstr "_Sessions:"
+
+#: mate-session/session-properties-capplet.c:324
+msgid "Session Name"
+msgstr "No del session"
+
+#: mate-session/session-properties-capplet.c:375
+msgid "Session Options"
+msgstr "Tchuzes del session"
+
+#: mate-session/session-properties-capplet.c:384
+msgid "Current Session"
+msgstr "Session do moumint"
+
+#: mate-session/session-properties-capplet.c:393
+msgid "Additional startup _programs:"
+msgstr "_Programes di rawete a l' enondaedje:"
+
+#: mate-session/session-properties-capplet.c:414
+msgid "Command"
+msgstr "Comande"
+
+#: mate-session/session-properties-capplet.c:446
+msgid "Startup Programs"
+msgstr "Programes a l' enondaedje"
+
+#: mate-session/session-properties.c:49
+msgid "Remove the currently selected client from the session."
+msgstr "Oister del session li cliyint tchoezi pol moumint."
+
+#: mate-session/session-properties.c:55
+msgid "Apply changes to the current session"
+msgstr "Mete en ouve les candjmints pol session do moumint"
+
+#: mate-session/session-properties.c:61
+msgid "The list of programs in the session."
+msgstr "Li djivêye des programes del session."
+
+#: mate-session/session-properties.c:88
+msgid "Currently running _programs:"
+msgstr "_Programes en alaedje pol moumint:"
+
+#: mate-session/session-properties.c:104
+msgid "Initialize session settings"
+msgstr "Dj' enonde l' apontiaedje del session"
+
+#: mate-session/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Apontyî vos sessions"
+
+#: mate-session/splash-widget.c:43
+msgid "Sawfish Window Manager"
+msgstr "Manaedjeu di purneas Sawfish"
+
+#: mate-session/splash-widget.c:44
+msgid "Marco Window Manager"
+msgstr "Manaedjeu di purneas Marco"
+
+#: mate-session/splash-widget.c:45
+msgid "Window Manager"
+msgstr "Manaedjeu di purneas"
+
+#: mate-session/splash-widget.c:46
+msgid "The Panel"
+msgstr "Li scriftôr"
+
+#: mate-session/splash-widget.c:47
+msgid "Session Manager Proxy"
+msgstr "Procsi pol manaedjeu di sessions"
+
+#: mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "Caja"
+
+#: mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr "Apontiaedjes do scribanne"
+
+#: mate-session/startup-programs.c:292
+msgid "_Startup Command:"
+msgstr "Comande d' _enondaedje"
+
+#: mate-session/startup-programs.c:298
+msgid "Startup Command"
+msgstr "Comande d' enondaedje"
+
+#: mate-session/startup-programs.c:347
+msgid "The startup command cannot be empty"
+msgstr "Li cmande d' enondaedje ni pout nén esse vude"
+
+#: mate-session/startup-programs.c:384
+msgid "Add Startup Program"
+msgstr "Radjouter on programe d' enondaedje"
+
+#: mate-session/startup-programs.c:405
+msgid "Edit Startup Program"
+msgstr "Candjî on programe d' enondaedje"
diff --git a/po/xh.po b/po/xh.po
new file mode 100644
index 0000000..2bba2d0
--- /dev/null
+++ b/po/xh.po
@@ -0,0 +1,500 @@
+# Xhosa translation of mate-session
+# Copyright (C) 2005 Canonical Ltd.
+# This file is distributed under the same license as the mate-session package.
+# Translation by Canonical Ltd <[email protected]> with thanks to
+# Translation World CC in South Africa, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-03-03 16:20+0200\n"
+"PO-Revision-Date: 2005-03-01 11:15+0200\n"
+"Last-Translator: Simon Kemisho <[email protected]>\n"
+"Language-Team: Xhosa <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../mate-session/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "Vumela unxulumano lweTCP"
+
+#: ../mate-session/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"Ngezizathu zokhuseleko, kumaqonga kukho oku _IceTcpTransNoListen() (XFree86 "
+"systems), i-mate-session ayilumameli unxulumano kumazibuko eTCP. Oku "
+"kukhetha kuya kuvumela unxulumano oluvela kubamkeli beendwendwe abakude "
+"(abagunyazisiweyo). i-mate-session mayiqaliswe kwakhona ukuze oku kwenzeke."
+
+#: ../mate-session/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Xa yenzwe yangasebenzi, i-mate-session iya kuthundeza umsebenzisi phambi "
+"kokuphelisa iseshoni."
+
+#: ../mate-session/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Xa yenzwe yangasebenzi, i-mate-session iya kulondoloza iseshoni "
+"ngokuzenzekelayo. Ngaphandle koko, ingxoxo yokuphuma iya kuba nendlela "
+"yokukhetha ukuyilondoloza iseshoni."
+
+#: ../mate-session/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "Ukuthundeza ukuphuma"
+
+#: ../mate-session/mate-session.schemas.in.h:6
+#, fuzzy
+msgid "Preferred Image to use for login splash screen"
+msgstr ""
+"Umfanekiso Okhethwayo wokusetyenziswa ukwenzela iskrini esidanyazayo xa "
+"kungenwa Kulwazi Olusekrinini seMATE"
+
+#: ../mate-session/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "Londoloza iiseshoni"
+
+#: ../mate-session/mate-session.schemas.in.h:8
+msgid "Show the splash screen"
+msgstr "Bonisa iskrini esidanyazayo"
+
+#: ../mate-session/mate-session.schemas.in.h:9
+msgid "Show the splash screen when the session starts up"
+msgstr "Bonisa iskrini esidanyazayo xa kuqalisa iseshoni"
+
+#: ../mate-session/mate-session.schemas.in.h:10
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+
+#: ../mate-session/gsm-client-editor.c:97
+#: ../mate-session/startup-programs.c:314
+msgid "_Order:"
+msgstr "_Ulandelelwano:"
+
+#: ../mate-session/gsm-client-editor.c:99
+msgid "The order in which applications are started in the session."
+msgstr "Ulandelelwano apho iinkqubo ziqaliswa khona kwiseshoni."
+
+#: ../mate-session/gsm-client-editor.c:106
+msgid "What happens to the application when it exits."
+msgstr "Kwenzeka ntoni kwinkqubo xa ikhona."
+
+#: ../mate-session/gsm-client-editor.c:109
+msgid "_Style:"
+msgstr "I_simbo:"
+
+#: ../mate-session/gsm-client-list.c:150
+#: ../mate-session/session-properties-capplet.c:412
+msgid "Order"
+msgstr "Ulandelelwano"
+
+#: ../mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr "Isimbo"
+
+#: ../mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr "Isimo"
+
+#: ../mate-session/gsm-client-list.c:165
+msgid "Program"
+msgstr "Inkqubo"
+
+#: ../mate-session/gsm-client-row.c:31
+msgid "Inactive"
+msgstr "Yekisa ukusebenza kwayo"
+
+#: ../mate-session/gsm-client-row.c:32
+msgid "Waiting to start or already finished."
+msgstr "Ukulinda ukuqalisa okanye sekugqityiwe."
+
+#: ../mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr "Ukuqalisa"
+
+#: ../mate-session/gsm-client-row.c:35
+msgid "Started but has not yet reported state."
+msgstr "Kuqalisiwe kodwa isimo asikaxelwa."
+
+#: ../mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr "Kuyaphunyezwa"
+
+#: ../mate-session/gsm-client-row.c:38
+msgid "A normal member of the session."
+msgstr "Ilungu lesiqhelo leseshoni."
+
+#: ../mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr "Kuyagcinwa"
+
+#: ../mate-session/gsm-client-row.c:41
+msgid "Saving session details."
+msgstr "Kugcinwa iinkcukacha zeseshoni."
+
+#: ../mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr "Ayaziwa"
+
+#: ../mate-session/gsm-client-row.c:44
+msgid "State not reported within timeout."
+msgstr "Isimo esingaxelwanga ngethuba lokuphuma."
+
+#: ../mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr "Okuqhelekileyo"
+
+#: ../mate-session/gsm-client-row.c:51
+msgid "Unaffected by logouts but can die."
+msgstr "Akuchatshazelwa ngamaxa okuphuma kodwa kunokufa."
+
+#: ../mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr "Phinda uqalise"
+
+#: ../mate-session/gsm-client-row.c:54
+msgid "Never allowed to die."
+msgstr "Ayizange ivunyelwe ukuba ife."
+
+#: ../mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr "Okulahlwayo"
+
+#: ../mate-session/gsm-client-row.c:57
+msgid "Discarded on logout and can die."
+msgstr "Ilahlwa xa kuphunywayo kwaye inokufa."
+
+#: ../mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr "Imimiselo"
+
+#: ../mate-session/gsm-client-row.c:60
+msgid "Always started on every login."
+msgstr "Isoloko iqalisa qho xa kungenwa."
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: ../mate-session/gsm-gsd.c:41
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"Bekukho imposiso eqalise Imimiselo YeDaemon YeMATE \n"
+"\n"
+"Ezinye izinto, ezifana nemixholo, izandi, okanye imimiselo engasemva "
+"zisenokungasebenzi ngokuchanekileyo."
+
+#: ../mate-session/gsm-gsd.c:53
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Umyalezo oyimposiso wokugqibela:\n"
+"\n"
+
+#: ../mate-session/gsm-gsd.c:58
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"I-MATE iya kusoloko izama ukuqalisa Imimiselo YeDaemon kwixesha elizayo "
+"ungena."
+
+#: ../mate-session/gsm-gsd.c:115
+msgid "There was an unknown activation error."
+msgstr "Bekukho imposiso engaziwayo yokunika isakhono sokusebenza."
+
+#: ../mate-session/gsm-gsd.c:157
+msgid "The Settings Daemon restarted too many times."
+msgstr "Imimiselo YeDaemon iphinde yaqalisa amaxa amaninzi kakhulu."
+
+#: ../mate-session/logout.c:355
+msgid "Are you sure you want to log out?"
+msgstr "Uqinisekile ukuba ufuna ukuphuma?"
+
+#: ../mate-session/logout.c:372
+msgid "_Save current setup"
+msgstr "_Gcina ukusekwa kwangoku"
+
+#: ../mate-session/logout.c:393
+msgid "Action"
+msgstr "Inyathelo"
+
+#: ../mate-session/logout.c:410
+msgid "_Log out"
+msgstr "_Phuma"
+
+#: ../mate-session/logout.c:416
+msgid "Sh_ut down"
+msgstr "Vala_tu"
+
+#: ../mate-session/logout.c:423
+msgid "_Restart the computer"
+msgstr "_Qalisa kwakhona ikhompyutha"
+
+#: ../mate-session/main.c:81
+msgid "Specify a session name to load"
+msgstr "Xela igama leseshoni elayishayo"
+
+#: ../mate-session/main.c:82
+msgid "Only read saved sessions from the default.session file"
+msgstr "Funda kuphela i-default.session kwifayile yeseshoni elondoloziweyo"
+
+#: ../mate-session/main.c:83
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr ""
+"Ithuba ngokwee-millisecond elichithwe kulindwe abaxumi ukuba babhalise "
+"(0=naphakade)"
+
+#: ../mate-session/main.c:84
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr ""
+"Ithuba ngokwee-millisecond elichithwe kulindwe abaxumi ukuba baphendule "
+"(0=naphakade)"
+
+#: ../mate-session/main.c:85
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr ""
+"Ithuba ngokwee-millisecond elichithwe kulindwe abaxumi ukuba bafe "
+"(0=naphakade)"
+
+#: ../mate-session/main.c:265
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"Ayikwazanga kukhangela idilesi yothungelwano kwikhompyutha ukwenzela oku %"
+"s.\n"
+"Oku kuya kuthintela iMATE ekusebenzeni ngokuchanekileyo.\n"
+"Yinto enokwenzeka ukulungisa ingxaki ngokufakela oku\n"
+"%s efayilini /etc/hosts."
+
+#: ../mate-session/main.c:272
+msgid "Log in Anyway"
+msgstr "Ngena Nokuba Kunjalo"
+
+#: ../mate-session/main.c:273
+msgid "Try Again"
+msgstr "Zama Kwakhona"
+
+#: ../mate-session/manager.c:223
+msgid "Your session has been saved"
+msgstr "Iseshoni igciniwe"
+
+#: ../mate-session/manager.c:527
+msgid "Wait abandoned due to conflict."
+msgstr "Linda ushiyiwe ngenxa yongquzulwano."
+
+#: ../mate-session/manager.c:1035
+#, c-format
+msgid "No response to the %s command."
+msgstr "Akukho mpendulo kumyalezo woku %s."
+
+#: ../mate-session/manager.c:1036
+msgid "The program may be slow, stopped or broken."
+msgstr "Inkqubo isenokucotha, iyekiswe okanye yaphuke."
+
+#: ../mate-session/manager.c:1037
+msgid "You may wait for it to respond or remove it."
+msgstr "Usenokuyilinda ukuba iphendule okanye iyisuse."
+
+#: ../mate-session/manager.c:1760
+msgid "Restart abandoned due to failures."
+msgstr "Phinda uqalise ushiyiwe ngenxa yamaxa okusilela."
+
+#: ../mate-session/manager.c:1956
+msgid "A session shutdown is in progress."
+msgstr "Ukuvalwa kweseshoni tu kuyaqhuba."
+
+#: ../mate-session/save-session.c:46
+msgid "Set the current session"
+msgstr "Seta iseshoni yangoku"
+
+#: ../mate-session/save-session.c:47
+msgid "Kill session"
+msgstr "Bulala iseshoni"
+
+#: ../mate-session/save-session.c:48
+msgid "Use dialog boxes"
+msgstr "Sebenzisa iibhokisi zengxoxo"
+
+#: ../mate-session/save-session.c:146 ../mate-session/save-session.c:179
+msgid "Could not connect to the session manager"
+msgstr "Ayikwazanga ukunxulumana nomlawuli weseshoni"
+
+#: ../mate-session/session-names.c:143
+msgid "The session name cannot be empty"
+msgstr "Igama leseshoni alikwazi kungabi nanto"
+
+#: ../mate-session/session-names.c:154
+msgid "The session name already exists"
+msgstr "Igama leseshoni selikho"
+
+#: ../mate-session/session-names.c:188
+msgid "Add a new session"
+msgstr "Fakela iseshoni entsha"
+
+#: ../mate-session/session-names.c:218
+msgid "Edit session name"
+msgstr "Hlela igama leseshoni"
+
+#: ../mate-session/session-properties-capplet.c:122
+msgid "_Edit"
+msgstr "_Hlela"
+
+#: ../mate-session/session-properties-capplet.c:190
+msgid ""
+"Some changes are not saved.\n"
+"Is it still OK to exit?"
+msgstr ""
+"Ezinye iinguquko azigcinwanga.\n"
+"KUSALUNGILE ukuphuma?"
+
+#: ../mate-session/session-properties-capplet.c:240
+#: ../mate-session/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Iiseshoni"
+
+#: ../mate-session/session-properties-capplet.c:273
+msgid "Show splash screen on _login"
+msgstr "Bonisa iskrini esidanyazayo xa_ungena"
+
+#: ../mate-session/session-properties-capplet.c:284
+msgid "As_k on logout"
+msgstr "Bu_za xa uphuma"
+
+#: ../mate-session/session-properties-capplet.c:295
+msgid "Automatically save chan_ges to session"
+msgstr "Igcina iingu_qu kwiseshoni ngokuzenzekela"
+
+#: ../mate-session/session-properties-capplet.c:306
+msgid "_Sessions:"
+msgstr "Ii_seshoni:"
+
+#: ../mate-session/session-properties-capplet.c:324
+msgid "Session Name"
+msgstr "Igama Leseshoni"
+
+#: ../mate-session/session-properties-capplet.c:375
+msgid "Session Options"
+msgstr "Okukhethwa Kwiseshoni"
+
+#: ../mate-session/session-properties-capplet.c:384
+msgid "Current Session"
+msgstr "Iseshoni Yangoku"
+
+#: ../mate-session/session-properties-capplet.c:393
+msgid "Additional startup _programs:"
+msgstr "_Iinkqubo ezifakelweyo zokuqalisa:"
+
+#: ../mate-session/session-properties-capplet.c:414
+msgid "Command"
+msgstr "Umyalezo"
+
+#: ../mate-session/session-properties-capplet.c:446
+msgid "Startup Programs"
+msgstr "Iinkqubo Zokuqalisa"
+
+#: ../mate-session/session-properties.c:49
+msgid "Remove the currently selected client from the session."
+msgstr "Susa umxumi okhethwe ngoku kwiseshoni."
+
+#: ../mate-session/session-properties.c:55
+msgid "Apply changes to the current session"
+msgstr "Yenza iinguqu kwiseshoni yangoku"
+
+#: ../mate-session/session-properties.c:61
+msgid "The list of programs in the session."
+msgstr "Uludwe lweenkqubo kwiseshoni."
+
+#: ../mate-session/session-properties.c:88
+msgid "Currently running _programs:"
+msgstr "_Iinkqubo eziphunyezwa ngoku:"
+
+#: ../mate-session/session-properties.c:104
+msgid "Initialize session settings"
+msgstr "Ndulula imimiselo yeseshoni"
+
+#: ../mate-session/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Misela iiseshoni zakho"
+
+#: ../mate-session/splash-widget.c:43
+msgid "Sawfish Window Manager"
+msgstr "Umlawuli Wefestile Ye-Sawfish"
+
+#: ../mate-session/splash-widget.c:44
+msgid "Marco Window Manager"
+msgstr "Umlawuli Wefestile YeMatacity"
+
+#: ../mate-session/splash-widget.c:45
+msgid "Window Manager"
+msgstr "Umlawuli Wefestile"
+
+#: ../mate-session/splash-widget.c:46
+msgid "The Panel"
+msgstr "Indawo Yolawulo"
+
+#: ../mate-session/splash-widget.c:47
+msgid "Session Manager Proxy"
+msgstr "Ummeli Womlawuli Weseshoni"
+
+#: ../mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "I-Caja"
+
+#: ../mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr "Imimiselo Yolwazi Oluseskrinini"
+
+#: ../mate-session/startup-programs.c:292
+msgid "_Startup Command:"
+msgstr "_Umyalezo Wokuqalisa:"
+
+#: ../mate-session/startup-programs.c:298
+msgid "Startup Command"
+msgstr "Umyalezo Wokuqalisa"
+
+#: ../mate-session/startup-programs.c:347
+msgid "The startup command cannot be empty"
+msgstr "Umyalezo wokuqalisa awukwazi kungabi nanto"
+
+#: ../mate-session/startup-programs.c:384
+msgid "Add Startup Program"
+msgstr "Fakela Inkqubo Yokuqalisa"
+
+#: ../mate-session/startup-programs.c:405
+msgid "Edit Startup Program"
+msgstr "Hlela Inkqubo Yokuqalisa"
+
+#~ msgid "Splash Screen Image"
+#~ msgstr "Umfanekiso Weskrini Esidanyazayo"
diff --git a/po/yo.po b/po/yo.po
new file mode 100644
index 0000000..60c7c33
--- /dev/null
+++ b/po/yo.po
@@ -0,0 +1,802 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-core 1.1.2\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mate-"
+"session&component=general\n"
+"POT-Creation-Date: 2009-01-17 11:27+0000\n"
+"PO-Revision-Date: 2005-02-13 21:39+0100\n"
+"Last-Translator: David Lodge <[email protected]>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../capplet/gsm-app-dialog.c:126
+#, fuzzy
+msgid "Select Command"
+msgstr "Àṣe Fún Ìbẹ̀rẹ̀"
+
+#: ../capplet/gsm-app-dialog.c:187
+msgid "Add Startup Program"
+msgstr "Ṣàfikún Àtòjọ-ètò Fún Ìbẹ̀rẹ̀"
+
+#: ../capplet/gsm-app-dialog.c:191
+msgid "Edit Startup Program"
+msgstr "Ṣàyẹ̀wò Àtòjọ-ètò Fún Ìbẹ̀rẹ̀"
+
+#: ../capplet/gsm-properties-dialog.c:132
+msgid "No description"
+msgstr ""
+
+#: ../capplet/gsm-properties-dialog.c:952
+#, fuzzy
+msgid "The name of the startup program cannot be empty"
+msgstr "Àṣẹ fún ìbẹ̀rẹ̀ kò lè jẹ́ òfìfo"
+
+#: ../capplet/gsm-properties-dialog.c:956
+msgid "The startup command cannot be empty"
+msgstr "Àṣẹ fún ìbẹ̀rẹ̀ kò lè jẹ́ òfìfo"
+
+#: ../capplet/gsm-properties-dialog.c:962
+#, fuzzy
+msgid "The startup command is not valid"
+msgstr "Àṣẹ fún ìbẹ̀rẹ̀ kò lè jẹ́ òfìfo"
+
+#: ../capplet/gsm-properties-dialog.c:1279
+msgid "Enabled"
+msgstr ""
+
+#: ../capplet/gsm-properties-dialog.c:1292
+#, fuzzy
+msgid "Icon"
+msgstr "Iṣẹ́"
+
+#: ../capplet/gsm-properties-dialog.c:1303
+msgid "Program"
+msgstr "Àtòjọ-ètò"
+
+#: ../capplet/gsm-properties-dialog.c:1453
+#: ../data/session-properties.glade.h:6
+msgid "Sessions Preferences"
+msgstr ""
+
+#: ../capplet/main.c:37 ../mate-session/main.c:508
+msgid "Version of this application"
+msgstr ""
+
+#: ../compat/at-spi-registryd-wrapper.c:47
+msgid ""
+"Assistive technology support has been requested for this session, but the "
+"accessibility registry was not found. Please ensure that the AT-SPI package "
+"is installed. Your session has been started without assistive technology "
+"support."
+msgstr ""
+
+#: ../compat/at-spi-registryd-wrapper.desktop.in.in.in.h:1
+msgid "AT SPI Registry Wrapper"
+msgstr ""
+
+#: ../compat/mate-settings-daemon-helper.desktop.in.in.in.h:1
+msgid "MATE Settings Daemon Helper"
+msgstr ""
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr ""
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:1
+#, fuzzy
+msgid "Default session"
+msgstr "Pa sáà"
+
+#: ../data/mate-session.schemas.in.h:2
+#, fuzzy
+msgid "File Manager"
+msgstr "Alábòójútó Fèrèsé"
+
+#: ../data/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Tí a bá fún lágbára iṣẹ́ sáà mate á́ ṣí òǹlò náà lórí kó tó parí sáà kan."
+
+#: ../data/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Tí a bá fún lágbára sáà-mate á dáfi sáà náà pamọ́. Láì jẹ́ bẹ́ẹ̀, onísọ̀rọ̀gbèsì "
+"ìparí iṣẹ́ á ní ẹ̀yàn láti fi sáà náà pamọ́."
+
+#: ../data/mate-session.schemas.in.h:5
+#, fuzzy
+msgid "List of applications that are part of the default session."
+msgstr "Ètò tí a ti bẹ̀rẹ̀ àwọn ì̀ṣàmúlò-ètò nínú sáà náà."
+
+#: ../data/mate-session.schemas.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required-components\".) The "
+"Session Preferences will not normally allow users to remove a required "
+"component from the session, and the session manager will automatically add "
+"the required components back to the session if they do get removed."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:7
+msgid "Logout prompt"
+msgstr "Ìṣílórí ìparí iṣẹ́"
+
+#: ../data/mate-session.schemas.in.h:8
+#, fuzzy
+msgid "Panel"
+msgstr "Pánẹ́ẹ̀lì Náà"
+
+#: ../data/mate-session.schemas.in.h:9
+msgid "Preferred Image to use for login splash screen"
+msgstr "Àwòrán tí a fẹ́ láti lò fún ojú kọ̀ǹpútà píláàṣì"
+
+#: ../data/mate-session.schemas.in.h:10
+msgid "Required session components"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:11
+msgid "Save sessions"
+msgstr "Fi àwọn sáà pamọ́"
+
+#: ../data/mate-session.schemas.in.h:12
+msgid "Selected option in the log out dialog"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:13
+msgid "Show the splash screen"
+msgstr "Fi ojú kọ̀ǹpútà píláàṣì hàn"
+
+#: ../data/mate-session.schemas.in.h:14
+msgid "Show the splash screen when the session starts up"
+msgstr "Fi ojú kọ̀ǹpútà píláàṣì hàn tí sáà náà bá ti bẹ̀rẹ̀"
+
+#: ../data/mate-session.schemas.in.h:15
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:16
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:17
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:18
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:19
+msgid ""
+"This is a relative path value based off the $datadir/pixmaps/ directory. Sub-"
+"directories and image names are valid values. Changing this value will "
+"effect the next session login."
+msgstr ""
+"Fálù tó jẹmọ́ ipa tó dálé atọ́nà $datadir/pixmaps/ ni èyí. Àwọn ẹ̀ka-atọ́nà àti "
+"àwọn orúkọ àwòrán jẹ́ àwọn fálù tó fẹsẹ̀múlẹ̀. Ìyípadà fálù yìí á kan ìbẹ̀rẹ̀ iṣẹ́ "
+"sáà tókàn."
+
+#: ../data/mate-session.schemas.in.h:20
+msgid ""
+"This is the option that will be selected in the logout dialog, valid values "
+"are \"logout\" for logging out, \"shutdown\" for halting the system and "
+"\"restart\" for restarting the system."
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:21
+msgid "Time before session is considered idle"
+msgstr ""
+
+#: ../data/mate-session.schemas.in.h:22 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "Alábòójútó Fèrèsé"
+
+#: ../data/gsm-inhibit-dialog.glade.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr ""
+
+#: ../data/gsm-inhibit-dialog.glade.h:2
+#: ../mate-session/gsm-inhibit-dialog.c:633
+msgid ""
+"Waiting for program to finish. Interrupting program may cause you to lose "
+"work."
+msgstr ""
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Ṣàtòpọ̀ àwọn sáà rẹ"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Àwọn Sáà"
+
+#: ../data/session-properties.glade.h:1
+msgid "Additional startup _programs:"
+msgstr "Àwọn àtòjọ-ètò fún ìbẹ̀rẹ̀ _aláfikún:"
+
+#: ../data/session-properties.glade.h:2
+msgid "Browse..."
+msgstr ""
+
+#: ../data/session-properties.glade.h:3
+#, fuzzy
+msgid "Co_mmand:"
+msgstr "Àṣẹ"
+
+#: ../data/session-properties.glade.h:4
+#, fuzzy
+msgid "Comm_ent:"
+msgstr "Àṣẹ"
+
+#: ../data/session-properties.glade.h:5
+#, fuzzy
+msgid "Options"
+msgstr "Àwọn Ẹ̀yàn Sáà"
+
+#: ../data/session-properties.glade.h:7
+msgid "Startup Programs"
+msgstr "Àwọn Àtòjọ-ètò fún Ìbẹ̀rẹ̀"
+
+#: ../data/session-properties.glade.h:8
+msgid "_Automatically remember running applications when logging out"
+msgstr ""
+
+#: ../data/session-properties.glade.h:9
+msgid "_Name:"
+msgstr ""
+
+#: ../data/session-properties.glade.h:10
+msgid "_Remember Currently Running Application"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:958
+#, fuzzy, c-format
+msgid "Starting %s"
+msgstr "Ń Bẹ̀rẹ̀"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+
+#: ../egg/eggdesktopfile.c:1392
+#, c-format
+msgid "Not a launchable item"
+msgstr ""
+
+#: ../egg/eggsmclient.c:185
+#, fuzzy
+msgid "Disable connection to session manager"
+msgstr "Kò lè darapọ̀ mọ́ alábòójútó sáà"
+
+#: ../egg/eggsmclient.c:188
+msgid "Specify file containing saved configuration"
+msgstr ""
+
+#: ../egg/eggsmclient.c:188
+msgid "FILE"
+msgstr ""
+
+#: ../egg/eggsmclient.c:191
+#, fuzzy
+msgid "Specify session management ID"
+msgstr "Sọ ní pàtò orúkọ sáà tí a ó kì"
+
+#: ../egg/eggsmclient.c:191
+msgid "ID"
+msgstr ""
+
+#: ../egg/eggsmclient.c:245
+#, fuzzy
+msgid "Session Management Options"
+msgstr "Àwọn Ẹ̀yàn Sáà"
+
+#: ../egg/eggsmclient.c:246
+#, fuzzy
+msgid "Show Session Management options"
+msgstr "Aládùrófún Alábòójútó Sá́à"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:256
+#, c-format
+msgid "Icon '%s' not found"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:581
+msgid "Unknown"
+msgstr "Àìmọ̀"
+
+#: ../mate-session/gsm-inhibit-dialog.c:632
+msgid "A program is still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:636
+msgid "Some programs are still running:"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:637
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:865
+msgid "Switch User Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:868
+#, fuzzy
+msgid "Logout Anyway"
+msgstr "Bẹ̀rẹ̀ iṣẹ́ Ní Ọ̀nà kán nà"
+
+#: ../mate-session/gsm-inhibit-dialog.c:871
+msgid "Suspend Anyway"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:874
+#, fuzzy
+msgid "Hibernate Anyway"
+msgstr "Bẹ̀rẹ̀ iṣẹ́ Ní Ọ̀nà kán nà"
+
+#: ../mate-session/gsm-inhibit-dialog.c:877
+#, fuzzy
+msgid "Shutdown Anyway"
+msgstr "Bẹ̀rẹ̀ iṣẹ́ Ní Ọ̀nà kán nà"
+
+#: ../mate-session/gsm-inhibit-dialog.c:880
+#, fuzzy
+msgid "Reboot Anyway"
+msgstr "Bẹ̀rẹ̀ iṣẹ́ Ní Ọ̀nà kán nà"
+
+#: ../mate-session/gsm-inhibit-dialog.c:888
+msgid "Lock Screen"
+msgstr ""
+
+#: ../mate-session/gsm-inhibit-dialog.c:891
+msgid "Cancel"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:283
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"You will be automatically logged out in %d seconds."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../mate-session/gsm-logout-dialog.c:295
+#, c-format
+msgid ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d second."
+msgid_plural ""
+"You are currently logged in as \"%s\".\n"
+"This system will be automatically shut down in %d seconds."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../mate-session/gsm-logout-dialog.c:377
+msgid "Log out of this system now?"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:383
+msgid "_Switch User"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:392
+#, fuzzy
+msgid "_Log Out"
+msgstr "_Parí iṣẹ́"
+
+#: ../mate-session/gsm-logout-dialog.c:398
+msgid "Shut down this system now?"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:404
+msgid "S_uspend"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:410
+msgid "_Hibernate"
+msgstr ""
+
+#: ../mate-session/gsm-logout-dialog.c:416
+#, fuzzy
+msgid "_Restart"
+msgstr "Tun bẹ̀rẹ̀"
+
+#: ../mate-session/gsm-logout-dialog.c:426
+#, fuzzy
+msgid "_Shut Down"
+msgstr "Pa_á"
+
+#: ../mate-session/gsm-manager.c:943 ../mate-session/gsm-manager.c:1571
+msgid "Not responding"
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-client.c:989
+msgid "This program is blocking log out."
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:234
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr ""
+
+#: ../mate-session/gsm-xsmp-server.c:489
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr ""
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:143
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr ""
+
+#: ../mate-session/main.c:504
+msgid "Override standard autostart directories"
+msgstr ""
+
+#: ../mate-session/main.c:505
+msgid "MateConf key used to lookup default session"
+msgstr ""
+
+#: ../mate-session/main.c:506
+msgid "Enable debugging code"
+msgstr ""
+
+#: ../mate-session/main.c:507
+msgid "Do not load user-specified applications"
+msgstr ""
+
+#: ../mate-session/main.c:528
+#, fuzzy
+msgid " - the MATE session manager"
+msgstr "Kò lè darapọ̀ mọ́ alábòójútó sáà"
+
+#: ../splash/mate-session-splash.c:315
+#, fuzzy
+msgid "- MATE Splash Screen"
+msgstr "Fi ojú kọ̀ǹpútà píláàṣì hàn"
+
+#: ../splash/mate-session-splash.desktop.in.in.in.h:1
+msgid "MATE Splash Screen"
+msgstr ""
+
+#: ../tools/mate-session-save.c:65
+#, fuzzy
+msgid "Set the current session name"
+msgstr "Ṣàgbékalẹ̀ sáà lọ́wọ́lọ́wọ́"
+
+#: ../tools/mate-session-save.c:65
+msgid "NAME"
+msgstr ""
+
+#: ../tools/mate-session-save.c:66
+#, fuzzy
+msgid "Log out"
+msgstr "_Parí iṣẹ́"
+
+#: ../tools/mate-session-save.c:67
+msgid "Log out, ignoring any existing inhibitors"
+msgstr ""
+
+#: ../tools/mate-session-save.c:68
+msgid "Show logout dialog"
+msgstr ""
+
+#: ../tools/mate-session-save.c:69
+msgid "Show shutdown dialog"
+msgstr ""
+
+#: ../tools/mate-session-save.c:70
+msgid "Kill session"
+msgstr "Pa sáà"
+
+#: ../tools/mate-session-save.c:71
+#, fuzzy
+msgid "Use dialog boxes for errors"
+msgstr "Lo àwọn àpótí onísọ̀rọ̀gbèsì"
+
+#: ../tools/mate-session-save.c:72
+msgid "Do not require confirmation"
+msgstr ""
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "Kò lè darapọ̀ mọ́ alábòójútó sáà"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr ""
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "MATE á sì tún gbìyànjú láti tún Aṣojú ètò Àwọ̀n Ààtò bẹ̀rẹ̀ nígbà mìíràn tí "
+#~ "o bá tún bẹ̀rẹ̀ iṣẹ́."
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Àṣìṣe iṣẹ́ rírán tó gbẹ̀yìn ni:\n"
+#~ "\n"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "Ọmọ-ẹgbẹ́ déédéé sáà yìí."
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "Sáà tí a ti pa ṣì ń ṣiṣẹ́."
+
+#~ msgid "Add a new session"
+#~ msgstr "Ṣàfikún sáà tuntun"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "Fàyè gba àwọn ìdarapọ̀ TCP"
+
+#~ msgid "Always started on every login."
+#~ msgstr "Ó máa ń bẹ̀rẹ̀ lórí gbogbo ìbẹ̀rẹ̀ iṣẹ́."
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "Fi àwọn ìyípadà sí sáà lọ́wọ́lọ́wọ́ náà"
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "Ṣé ó dá ẹ lójú pé o fẹ́ parí iṣẹ́?"
+
+#~ msgid "As_k on logout"
+#~ msgstr "Bè_rè ì́parí iṣẹ́"
+
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "Fi àwọn àyí_padà pamọ́ sí sáà fún ra rẹ̀"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "Kò lè wo àdírẹ́sì ítánẹ́ẹ̀tì fún %s.\n"
+#~ "Èyí á dí MATE lọ́wọ́ láti ṣiṣẹ́ dáadáa.\n"
+#~ "Ó ṣeé ṣe kí tún ì̀ṣòro ná̀ ṣe nípa ṣiṣe àfikún \n"
+#~ "%s sí fáìlì /etc/hosts."
+
+#~ msgid "Current Session"
+#~ msgstr "Sáà Lọ́wọ́lọ́wọ́"
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "Àwọn àtòjọ-ètò tó ń rọ́ọ̀nù _lọ́wọ́lọ́wọ́:"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "Àwọn Ààtò Ojú-iṣẹ́"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "A tìí sẹ́ègbẹ́ nígbà ìparí iṣẹ́, ó sì lè kú."
+
+#~ msgid "Edit session name"
+#~ msgstr "Ṣàyẹ̀wò orúkọ sáà"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "Nítorí ààbò,lórí pepele tó ní _IceTcpTransNoListen() (XFree86 systems), "
+#~ "mate kò ní tẹ́tí àwọn ìdàpọ̀ lórí àwọn ààlà ìfibọ̀ TCP. Ẹ̀yàn yìí yóò fàyè "
+#~ "gba àwọn ìdarapọ̀ láti ọ̀dọ̀ agbàlejò (tí kò láṣẹ) jínjìn. A gbọ́dọ̀ tún sáà "
+#~ "mate bẹ̀rẹ̀ kí èyí tó lè wáyé."
+
+#~ msgid "Inactive"
+#~ msgstr "Kò lè siṣẹ́"
+
+#~ msgid "Initialize session settings"
+#~ msgstr "Mú àwọn ààtò sáà síwájú"
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "Alábòójútó Fèrèsé Marco"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr ""
+#~ "Ìgbà Ìdá-ọ̀kẹ́ ìsísẹ̀tí a lò fi dúró fún àwon abẹ̀wẹ̀ láti kú (0=forever)"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr ""
+#~ "Ìgbà Ìdá-ọ̀kẹ́ ìsísẹ̀tí a lò fi dúró fún àwon abẹ̀wẹ̀ láti forúkọ sílẹ̀ "
+#~ "(0=forever)"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr ""
+#~ "Ìgbà Ìdá-ọ̀kẹ́ ìsísẹ̀tí a lò fi dúró fún àwon abẹ̀wẹ̀ láti fèsì (0=forever)"
+
+#~ msgid "Caja"
+#~ msgstr "Caja"
+
+#~ msgid "Never allowed to die."
+#~ msgstr "Má gbà á láyè láti kú rárá."
+
+#~ msgid "No response to the %s command."
+#~ msgstr "Kò sí èsì sí àṣẹ %s náà."
+
+#~ msgid "Normal"
+#~ msgstr "Déédéé"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "Kàn ka àwọn sáà tí a fi pamọ́ láti inú ìpéwọ̀n fáìlì sáà"
+
+#~ msgid "Order"
+#~ msgstr "Ètò"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "Yọ abẹ̀wẹ̀ tí a ti yàn lọ́wọ́lọ́wọ́ láti inú sáà náà kúrò."
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "Tún àwọn tí a patì nítorí àwon ìkùnà."
+
+#~ msgid "Running"
+#~ msgstr "Ń Rọ́ọ̀nù"
+
+#~ msgid "Saving"
+#~ msgstr "Ìfipamọ́"
+
+#~ msgid "Saving session details."
+#~ msgstr "Ń fi àwọn àlàyé sáà pamọ́."
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "alábòójútó Fèrèsé Sawfish"
+
+#~ msgid "Session Name"
+#~ msgstr "Orúkọ Sáà"
+
+#~ msgid "Settings"
+#~ msgstr "Àwọn Ààtò"
+
+#~ msgid "Show splash screen on _login"
+#~ msgstr "Show splash screen on _login"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "A kò fi àwọn àyípadà kan pamọ́.\n"
+#~ "Ṣé ó dára ká jáde?"
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "Ó ti bẹ̀rẹ̀, ṣùgbọ́n kò tíì jíyìn ipò."
+
+#~ msgid "State"
+#~ msgstr "Ipò"
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "A kò fi ipo sùn kí àkókò tó tán."
+
+#~ msgid "Style"
+#~ msgstr "Sítáì"
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "A ti tún Aṣojú Ètò Àwọn Ààtò bẹ̀rẹ̀ jù ní ọ̀pọ̀ ìgbà."
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "Àtòjọ àwọn àtòjọ-ètò inú sáà náà."
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "Àtòjọ-ètò náà lè falẹ̀, dúró tàbí kó bàjẹ́."
+
+#~ msgid "The session name already exists"
+#~ msgstr "Orúkọ sáà náà wà nílẹ̀"
+
+#~ msgid "The session name cannot be empty"
+#~ msgstr "Orúkọ sáà náà kò lè ṣófo"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "Àṣìṣe wà láti bẹ̀rẹ̀ Aṣojú Àwọn Ààtò MATE.\n"
+#~ "\n"
+#~ "Ọ̀pọ̀lọpọ̀ àwọn nǹkan bíi àwọn kókó , àwọn ìró, tàbí àwọn ààtò ẹ̀yìn lè má "
+#~ "ṣịṣẹ́ dáadáa."
+
+#~ msgid "There was an unknown activation error."
+#~ msgstr "Àṣìṣe ìbẹ̀rẹ̀ àìmọ̀ kan wà."
+
+#~ msgid "Trash"
+#~ msgstr "Pàǹtí"
+
+#~ msgid "Try Again"
+#~ msgstr "Gbìyànjú Lẹ́ẹ̀kan si"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "Àwọn ìparí iṣẹ́ kò kàn án, ṣùgbọ́n ó lè kú."
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "Wait abandoned due to conflict."
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "Ń dúró láti bẹ̀rẹ̀ tàbí láti ó ti ẹ̀ ti parí."
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "Kí ló ṣẹ̀lẹ̀ sí ìṣàmúlò-ètò náà nígbà tí ó bá jáde."
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "O lè dúró fún èsì rẹ̀ tàbí kí o yọkúrò."
+
+#~ msgid "Your session has been saved"
+#~ msgstr "A ti fi sáà rẹ pamọ́"
+
+#~ msgid "_Edit"
+#~ msgstr "_Ṣàyẹ̀wò"
+
+#~ msgid "_Order:"
+#~ msgstr "_Ètò:"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "_Tún kọ̀ǹpútà náà bẹ̀rẹ̀"
+
+#~ msgid "_Save current setup"
+#~ msgstr "_Fi àgbékalẹ̀-ètò lọ́wọ́lọ́wọ́ pamọ́"
+
+#~ msgid "_Sessions:"
+#~ msgstr "_Àwọn Sáà:"
+
+#~ msgid "_Startup Command:"
+#~ msgstr "_Àṣe Fún Ìbẹ̀rẹ̀:"
+
+#~ msgid "_Style:"
+#~ msgstr "_Sítáì:"
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100644
index 0000000..d66ac74
--- /dev/null
+++ b/po/zh_CN.po
@@ -0,0 +1,582 @@
+# Chinese (China) translation of mate-session.
+# Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+# This file is distributed under the same license as the mate-session package.
+# Dillion Chen <[email protected]>
+# Updated and QA by Wang Jian <[email protected]>
+# Updated and QA by Jiang Xiong <[email protected]>
+# Updated and QA by Zipeco <[email protected]>
+# Updated by Funda Wang <[email protected]>, 2003
+# Yang Zhang <[email protected]>, 2009.
+# Tao Wei <[email protected]>, 2009.
+# Aron Xu <[email protected]>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session master\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-08 10:53+0800\n"
+"PO-Revision-Date: 2010-09-08 10:53+0800\n"
+"Last-Translator: Aron Xu <[email protected]>\n"
+"Language-Team: Chinese/Simplified <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+# help-browser/toc-man.c:19 help-browser/toc2-man.c:21
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "选择命令"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "添加启动程序"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "编辑启动程序"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "启动命令不能为空"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "启动命令无效"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "启用"
+
+# gsm/logout.c:240
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "图标"
+
+# applets/gkb/gkb.c:262
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "程序"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "启动应用程序首选项"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "无名称"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "无描述"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "此应用程序的版本"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "不能显示帮助文档"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "此会话将您登录到 MATE"
+
+# gsm/save-session.c:41
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "默认会话"
+
+# applets/desk-guide/deskguide_applet.c:134
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "文件管理器"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "如果启用,mate-session 将在结束会话之前提示。"
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "如果启用,mate-session 将在自动保存会话。"
+
+# SUN NEW TRANSLATION
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "默认会话所包含的应用程序列表。"
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"列出会话所包含的必需组件。(每个元素代表了“/desktop/mate/session/"
+"required_components”下的一个键。)启动应用程序首选项通常不允许用户从会话中删除"
+"所需组件,而会话管理器也会在所需组件被误删除时自动添加这些组件。"
+
+# gsm/logout.c:248
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "注销提示"
+
+# panel/menu.c:543
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "面板"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "所需的会话组件"
+
+# gsm/session-properties.c:264
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "保存会话"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr "文件管理器提供了桌面图标,并且允许您与已保存的文件进行交互。"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "会话被认为是空闲之前的不活跃分钟数。"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr "面板程序提供了屏幕上方或下方的菜单栏、窗口列表、状态图标、时钟等。"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"窗口管理器程序用于绘制标题栏、窗口周围的边框,并允许您移动窗口和更改窗口大"
+"小。"
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "会话被认为是空闲之前的时间"
+
+# applets/desk-guide/deskguide_applet.c:134
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "窗口管理器"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>某些程序仍在运行中:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr "正在等候程序完成。中断程序可能导致您的工作成果丢失。"
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "选择登录时要启动的应用程序"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "启动应用程序"
+
+# applets/gkb/gkb.c:262
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "额外的启动程序(_P):"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "浏览..."
+
+# help-browser/toc-man.c:19 help-browser/toc2-man.c:21
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "命令(_M):"
+
+# help-browser/toc-man.c:19 help-browser/toc2-man.c:21
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "注释(_E):"
+
+# panel/menu.c:3509
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "选项"
+
+# applets/gkb/gkb.c:262
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "启动程序"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "注销时自动记住正在运行的应用程序(_A)"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "名称(_N):"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "记住目前正在运行的应用程序(_R)"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "文件不是有效的 .desktop 文件"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "不可识别的桌面文件版本“%s”"
+
+# mate-terminal/mate-terminal.c:1590
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "正在启动 %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "应用程序不在命令行上接受文档"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "无法识别的调用选项:%d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "无法将文档 URI 传送给“Type=Link”桌面项"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "不是可调用项"
+
+# gsm/save-session.c:86
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "禁止连接到会话管理器"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "指定包含已保存配置的文件"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "文件"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "指定会话管理 ID"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+# panel/menu.c:3509
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "会话管理选项:"
+
+# panel/menu.c:3509
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "显示会话管理选项"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"配置服务器有错。\n"
+"(%s 的退出状态为 %d)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "图标“%s”未找到"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "未知"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "程序仍在运行中:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "程序仍在运行中:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr "正在等候程序完成。中断程序可能导致您的工作成果丢失。"
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "强制切换用户"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "强制注销"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "强制挂起"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "强制休眠"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "强制关机"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "强制重新启动"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "锁定屏幕"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "取消"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "您即将在 %d 秒后自动注销。"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "系统即将在 %d 秒后自动关闭。"
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "您目前以“%s”身份登录。"
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "现在注销系统吗?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "切换用户(_S)"
+
+# gsm/logout.c:248
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "注销(_L)"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "现在关闭此系统吗?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "挂起(_U)"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "休眠(_H)"
+
+# gmenu/edit.c:336 gsm/session-properties.c:167
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "重启(_R)"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "关闭系统(_S)"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "无响应"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "程序禁止注销。"
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "拒绝新客户连接,原因是会话正在关闭\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "无法创建 ICE 监听套接字:%s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "无法启动登录会话(并且无法连接到 X 服务器)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "取代默认的自动启动目录"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "用于查阅默认会话的 MateConf 键"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "启用调试代码"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "不装入用户指定的应用程序"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr "- MATE 会话管理器"
+
+# gsm/logout.c:248
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "注销"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "注销,且忽略现有限制因素"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "显示注销对话框"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "显示关机对话框"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "出错时使用对话框"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "设定当前会话的名称"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "名称"
+
+# gsm/save-session.c:41
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "杀死会话"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "不请求确认"
+
+# gsm/save-session.c:86
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "无法连接到会话管理器"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "调用程序的选项互相冲突"
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "登录启动画面的首选图像"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "显示启动画面"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "会话启动时显示启动画面"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will affect the next session login."
+#~ msgstr ""
+#~ "这是以 $datadir/pixmaps/ 目录出发的相对路径值。子目录及图像名称都是有效的"
+#~ "值。对此值的更改将会在下次登录时生效。"
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr "正在等候程序完成。中断程序可能导致您的工作成果丢失。"
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- MATE 启动画面"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "MATE 启动屏幕"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "如果启用,mate-session 将自动保存会话。否则,注销对话框中将出现保存会话的"
+#~ "选项。"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "MATE 设置守护程序辅助程序"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "启动程序的名称不能为空"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "此会话已请求辅助技术支持,但未找到辅助功能注册项。请确保您安装了 AT-SPI "
+#~ "包。您的会话已以不带辅助技术支持方式启动。"
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "AT SPI 注册表辅助程序"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "会话首选项"
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "MATE 密钥环守护程序辅助程序"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "注销对话框中选中的选项"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "这是注销对话框中将被选中的选项。可供选择的值有:“logout”代表注"
+#~ "销,“shutdown”代表关闭系统,“restart”代表重新启动。"
+
+#~ msgid "Configure your sessions"
+#~ msgstr "配置对话"
diff --git a/po/zh_HK.po b/po/zh_HK.po
new file mode 100644
index 0000000..5a8ec40
--- /dev/null
+++ b/po/zh_HK.po
@@ -0,0 +1,932 @@
+# Chinese (Hong Kong) translation of mate-session.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+# mate-core:
+# Yuan-Chung Cheng <[email protected]>, 1999.
+# Jing-Jong Shyue <[email protected]>, 2000.
+# Chih-Wei Huang <[email protected]>, 2000.
+# Abel Cheung <[email protected]>, 2001-2002.
+# mate-session:
+# Abel Cheung <[email protected]>, 2002-2003.
+# Woodman Tuen <[email protected]>, 2005-006.
+# Chao-Hsiung Liao <[email protected]>, 2008.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session 2.31.90\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-05 19:29+0800\n"
+"PO-Revision-Date: 2010-09-05 19:29+0800\n"
+"Last-Translator: Chao-Hsiung Liao <[email protected]>\n"
+"Language-Team: Chinese (Hong Kong) <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "選擇指令"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "新增初始啟動程式"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "修改初始啟動程式"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "初始啟動指令不可以留空"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "初始啟動指令無效"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "已啟用"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "圖示"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "程式"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "啟動應用程式偏好設定"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "沒有名稱"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "沒有描述"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "這個程式的版本"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "無法顯示求助文件"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "這個作業階段讓你登入 MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "預設作業階段"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "檔案管理程式"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "如啟用本選項,mate-session 會在作業階段終止前先提示使用者。"
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "如啟用本選項,mate-session 會自動儲存作業階段。"
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "預設作業階段中的應用程式清單。"
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr "做為此作業階段一部分的必要元件清單。(每個元件都會在「/desktop/mate/session/required_components」有一個設定鍵。)啟動應用程式偏好設定工具一般不會允許使用者自作業階段中移除必要的元件,而作業階段管理員會在這些必要元件被移除時自動將它們加回作業階段中。"
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "登出提示"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "面板"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "要求的作業階段元件"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "儲存作業階段"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr "檔案管理程式提供桌面圖示功能並且讓你能操作儲存的檔案。"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "不使用電腦幾分鐘後將作業階段判定為閒置。"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr "面板提供了螢幕頂端或底部的工具列,包含了選單、視窗清單、狀態圖示、時鐘等功能。"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr "視窗管理程式是一種在視窗周圍繪出標題列、邊框的程式,並且讓你能移動和改變視窗大小。"
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "判定作業階段閒置的時間"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "視窗管理員"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>某些程式仍在執行:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr "正在等待程式結束。中斷這些程式可能造成你的工作遺失。"
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "選擇在你登入時要啟動哪些應用程式"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "啟動應用程式"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "啟動時額外執行以下的程式(_P):"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "瀏覽…"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "指令(_M):"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "註解(_E):"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "選項"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "初始啟動程式"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "登出時自動記住還在執行中的應用程式(_A)"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "名稱(_N):"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "記住目前執行的應用程式(_R)"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "檔案不是有效的 .desktop 檔案"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "無法辨識的桌面檔案版本「%s」"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "準備啟動 %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "應用程式不接受以命令列開啟文件"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "無法辨識的啟動選項:%d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "不能傳送文件 URI 至「Type=Link」桌面項目"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "不是可以啟動的項目"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "停用到作業階段管理程式的連線"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "指定含有已儲存組態的檔案"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "檔案"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "指定作業階段管理 ID"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "作業階段管理選項:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "顯示作業階段管理選項"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"組態伺服器發生問題。\n"
+"(%s 以狀態 %d 關閉)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "找不到圖示「%s」"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "不明"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "一個程式仍在執行中:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "有些程式仍在執行中:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr "正在等待程式結束。中斷這些程式可能造成你進行中的工作遺失。"
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "強制切換使用者"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "強制登出"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "強制暫停"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "強制休眠"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "強制關閉電腦"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "強制重新開機"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "鎖定螢幕"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "取消"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "你會在 %d 秒後自動登出。"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "本系統會在 %d 秒後自動關閉。"
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "你目前以「%s」的身分登入。"
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "是否立刻登出系統?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "切換使用者(_S)"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "登出(_L)"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "是否立刻關閉這個系統?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "暫停(_U)"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "休眠(_H)"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "重新啟動(_R)"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "關閉電腦(_S)"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "沒有回應"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "這個程式正在阻擋登出。"
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "因為目前此作業階段即將關閉電腦,拒絕新的客戶端連線\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "無法建立 ICE 監聽插槽:%s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "無法啟動登入作業階段(並且無法連線至 X 伺服器)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "覆蓋標準的自動啟動目錄"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "用來查詢預設作業階段的 MateConf 設定鍵"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "啟用除錯碼"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "不要載入使用者指定的應用程式"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - MATE 作業階段管理員"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "登出"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "登出,忽略任何既存的限制因素"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "顯示登出對話盒"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "顯示關機對話盒"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "使用對話視窗顯示錯誤"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "設定目前作業階段名稱"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "名稱"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "強行中止作業階段"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "無需確定"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "無法連接作業階段總管"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "以相衝突的選項呼叫程式"
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr "正在等待程式結束。中斷程式可能造成您進行中的工作遺失。"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "MATE 設定值伺服程式協助"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "如啟用本選項,mate-session 會自動儲存作業階段,否則在登出時,對話方塊會提"
+#~ "供選項,讓您選擇是否儲存作業階段。"
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "當登入 MATE 桌面時,優先使用作為啟動畫面的圖像"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "登入時顯示啟動畫面"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "當啟動作業階段時顯示啟動畫面"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+#~ msgstr ""
+#~ "這是以目錄 $datadir/pixmaps/ 作為起始的相對路徑數值。子目錄及圖像名稱皆是"
+#~ "有效數值。改變這些數值後會在下次登入時生效。"
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- MATE 歡迎畫面"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "MATE 歡迎畫面"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "本作業階段要求使用無障礙環境。但是找不到無障礙環境註冊表。請確定 AT-SPI 套"
+#~ "件已安裝正確。作業階段會以沒有無障礙環境的支援方式執行。"
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "AT SPI 註冊表包裹器"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "初始啟動程式不能留空"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "作業階段偏好設定"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "在登出對話方塊中已選的選項"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "這是會在登出對話方塊中選擇的選項,有效的數值是:“logout”-登"
+#~ "出,“shutdown”-關機,及“restart”-重新啟動。"
+
+#~ msgid "Configure your sessions"
+#~ msgstr "設定作業階段"
+
+#~ msgid "Sessions"
+#~ msgstr "作業階段"
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "MATE Keyring 伺服程式包裹器"
+
+#~ msgid "Session management"
+#~ msgstr "作業階段管理"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "MATE GUI 程式庫 + EggSMClient"
+
+#~ msgid ""
+#~ "The Window manager that mate-session will start. Valid values are "
+#~ "\"marco\" and \"compiz\"."
+#~ msgstr ""
+#~ "mate-session 要啟動的視窗管理程式。有效的數值為「marco」和「compiz」。"
+
+#~ msgid "Window Manager to start"
+#~ msgstr "要啟動的視窗管理程式"
+
+#~ msgid "gtk-cancel"
+#~ msgstr "gtk-cancel"
+
+#~ msgid "Could not connect to the session manager\n"
+#~ msgstr "無法連接作業階段管理員\n"
+
+#~ msgid "Play logout sound instead of login"
+#~ msgstr "播放登出音效來代替登入"
+
+#~ msgid "- MATE login/logout sound"
+#~ msgstr "- MATE 登入/登出音效"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "允許 TCP 連線"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "因安全理由,在支援 _IceTcpTransNoListen() 的平台中 (XFree86 系統),mate-"
+#~ "session 不會監聽在 TCP 埠的連接。本選項會允許 (獲授權的) 遠端主機的連線。"
+#~ "mate-session 必須重新啟動方可令本選項生效。"
+
+#~ msgid "_Order:"
+#~ msgstr "次序(_O):"
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "當離開應用程式時發生的事件。"
+
+#~ msgid "_Style:"
+#~ msgstr "樣式(_S):"
+
+#~ msgid "Inactive"
+#~ msgstr "不使用"
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "正在等待啟動或已經結束。"
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "已經啟動但尚未回報狀態。"
+
+#~ msgid "Running"
+#~ msgstr "執行中"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "作業階段中的普通成員。"
+
+#~ msgid "Saving"
+#~ msgstr "儲存中"
+
+#~ msgid "Saving session details."
+#~ msgstr "正在儲存作業階段詳細資料。"
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "未在時限內回報狀態。"
+
+#~ msgid "Normal"
+#~ msgstr "一般"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "不受登出影響但可以終止。"
+
+#~ msgid "Never allowed to die."
+#~ msgstr "永遠不允許終止。"
+
+#~ msgid "Trash"
+#~ msgstr "丟棄"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "登出時會被忽略也可能會終止。"
+
+#~ msgid "Settings"
+#~ msgstr "設定值"
+
+#~ msgid "Always started on every login."
+#~ msgstr "每次登入時都會啟動。"
+
+#~ msgid "Order"
+#~ msgstr "次序"
+
+#~ msgid "Style"
+#~ msgstr "處理方式"
+
+#~ msgid "State"
+#~ msgstr "狀態"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "啟動 MATE 設定伺服程式時發生錯誤。\n"
+#~ "\n"
+#~ "部份例如佈景主題、音效或背景圖案等的設定將無法正常運作。"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "最後的錯誤訊息是:\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "下次登入時,MATE 仍然會嘗試重新啟動「設定伺服程式」。"
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "「設定伺服程式」重新啟動的次數太多。"
+
+#~ msgid "List registered clients, then exit"
+#~ msgstr "列出目前已註冊的客戶端,然後離開"
+
+#~ msgid "PROGRAM..."
+#~ msgstr "程式..."
+
+#~ msgid ""
+#~ "You must specify at least one program to remove. You can list the "
+#~ "programs with --list.\n"
+#~ msgstr "必須最少指定一個要移除的程式。可以 --list 將程式列出。\n"
+
+#~ msgid "Error: could not connect to the session manager\n"
+#~ msgstr "錯誤:無法連接作業階段總管\n"
+
+#~ msgid "Currently registered clients:\n"
+#~ msgstr "目前已註冊的客戶端:\n"
+
+#~ msgid "Couldn't find program %s in session\n"
+#~ msgstr "在作業階段中無法找到程式 %s\n"
+
+#~ msgid ""
+#~ "The MATE session manager cannot start properly. Please report this as a "
+#~ "MATE bug. Please include this ICE failure message in the bug report: '%"
+#~ "s'. Meanwhile you could try logging in using the failsafe session."
+#~ msgstr ""
+#~ "MATE 作業階段無法啟動。請向 MATE 匯報錯誤。在匯報時請包含此 ICE 錯誤訊"
+#~ "息:‘%s’同時可以嘗試以安全模式作業階段登入。"
+
+#~ msgid ""
+#~ "The MATE session manager was unable to lock the file '%s'. Please "
+#~ "report this as a MATE bug. Sometimes this error may occur if the file's "
+#~ "directory is unwritable, you could try logging in via the failsafe "
+#~ "session and ensuring that it is."
+#~ msgstr ""
+#~ "MATE 作業階段無法鎖定檔案‘%s’。請向 MATE 匯報錯誤。有時這情況發生可能是"
+#~ "資料夾無法可寫入。嘗試以安全模式作業階段登入,確定其為可寫。"
+
+#~ msgid ""
+#~ "The MATE session manager was unable to read the file: '%s'. If this "
+#~ "file exists it must be readable by you for MATE to work properly. Try "
+#~ "logging in with the failsafe session and removing this file."
+#~ msgstr ""
+#~ "MATE 作業階段總管無法讀取檔案‘%s’。如果該檔案存在,其必須為可讀,MATE 的"
+#~ "功能才能正常地使用。嘗試以安全模式作業階段登入,然後將其移除。"
+
+#~ msgid ""
+#~ "Could not write to file '%s'. This file must be writable in order for "
+#~ "MATE to function properly. Try logging in with the failsafe session and "
+#~ "removing this file. Also make sure that the file's directory is writable."
+#~ msgstr ""
+#~ "無法寫入檔案‘%s’。該檔案必須為可寫,MATE 的功能才能正常地使用。嘗試以安全"
+#~ "模式作業階段登入,然後將其移除。同時亦請確定該資料夾為可寫。"
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "是否確定要登出?"
+
+#~ msgid "Remember running applications"
+#~ msgstr "記住目前執行的應用程式"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "重新啟動電腦(_R)"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "只從預設的作業階段檔案 (default.session) 中讀取已儲存的作業階段"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr "等待客戶端註冊的時限[亳秒](0=沒有限制)"
+
+#~ msgid "DELAY"
+#~ msgstr "延遲"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr "等待客戶端回應的時限[亳秒](0=沒有限制)"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr "等待客戶端終止的時限[亳秒](0=沒有限制)"
+
+#~ msgid "This session is running as a privileged user"
+#~ msgstr "這個作業階段以具有管理權限的使用者身分執行"
+
+#~ msgid ""
+#~ "Running a session as a privileged user should be avoided for security "
+#~ "reasons. If possible, you should log in as a normal user."
+#~ msgstr ""
+#~ "基於安全性的考量,應該避免以具有管理權限的使用者身分執行作業階段。如果可"
+#~ "能,您應該以一般使用者的身分登入。"
+
+#~ msgid "_Continue"
+#~ msgstr "繼續(_C)"
+
+#~ msgid ""
+#~ "The session might encounter issues if the computer clock is not properly "
+#~ "configured. Please consider adjusting it.\n"
+#~ "\n"
+#~ "Current date is <b>%s</b>."
+#~ msgstr ""
+#~ "如果電腦的時鐘沒有正確設定,這個作業階段可能會發生問題。請試著調整它。\n"
+#~ "\n"
+#~ "目前的日期設定是 <b>%s</b>。"
+
+#~ msgid "Failed to launch time configuration tool: %s"
+#~ msgstr "無法執行時間設置工具:%s"
+
+#~ msgid "The computer clock appears to be wrong"
+#~ msgstr "電腦的時鐘似乎有誤"
+
+#~ msgid "_Ignore"
+#~ msgstr "忽略(_I)"
+
+#~ msgid "_Adjust the Clock"
+#~ msgstr "調整時鐘(_A)"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "找不到 %s 的網路位址。\n"
+#~ "這會妨礙 MATE 的正常運作。\n"
+#~ "將 %s 加入 /etc/hosts\n"
+#~ "可能可以避免此問題出現。"
+
+#~ msgid "Try Again"
+#~ msgstr "重試"
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "因為有衝突所以不會等待。"
+
+#~ msgid "No response to the %s command."
+#~ msgstr "指令 %s 沒有回應。"
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "程式可能很慢,已停止或中斷。"
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "可以等待回應或中止該程式。"
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "因為多次失敗所以放棄重新啟動。"
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "己經正在關閉作業階段。"
+
+#~ msgid "- Save the current session"
+#~ msgstr "- 儲存目前的作業階段"
+
+#~ msgid "Save changes to the current session before closing?"
+#~ msgstr "關閉前儲存目前的作業階段?"
+
+#~ msgid "If you don't save, changes will be discarded."
+#~ msgstr "如不儲存,將會放棄全部所作的變更。"
+
+#~ msgid "_Close without Saving"
+#~ msgstr "關閉但不儲存(_C)"
+
+#~ msgid "Current Session"
+#~ msgstr "目前的作業階段"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "作業階段已經儲存。"
+
+#~ msgid "could not connect to the session manager\n"
+#~ msgstr "無法連接作業階段總管\n"
+
+#~ msgid "session manager does not support MATE extensions\n"
+#~ msgstr "作業階段總管不支援 MATE 伸延\n"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "在作業階段中移除選定的程式。"
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "將更改後的設定套用至目前的作業階段"
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "目前作業階段中正在運行的程式的清單。"
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "目前正在執行的程式(_P):"
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "Sawfish 視窗管理員"
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "Marco 視窗管理員"
+
+#~ msgid "Caja"
+#~ msgstr "Caja"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "桌面設定值"
+
+#~ msgid "_Save current setup"
+#~ msgstr "儲存目前的設定(_S)"
+
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "自動儲存作業階段(_G)"
+
+#~ msgid "Save the current session"
+#~ msgstr "儲存目前的作業階段"
+
+#~ msgid "New Startup Program"
+#~ msgstr "新增初始啟動程式"
+
+#~ msgid "The session name cannot be empty"
+#~ msgstr "作業階段名稱不能留空"
+
+#~ msgid "The session name already exists"
+#~ msgstr "該作業階段名稱已經存在"
+
+#~ msgid "Add a new session"
+#~ msgstr "加入新的作業階段"
+
+#~ msgid "Disable"
+#~ msgstr "停用"
+
+#~ msgid "_Edit"
+#~ msgstr "編輯(_E)"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "部份改變仍未儲存。\n"
+#~ "是否仍然要離開?"
+
+#~ msgid "Show splash screen on _login"
+#~ msgstr "登入時顯示啟動畫面(_L)"
+
+#~ msgid "As_k on logout"
+#~ msgstr "登出前作出詢問(_K)"
+
+#~ msgid "_Sessions:"
+#~ msgstr "作業階段(_S):"
+
+#~ msgid "_Startup Command:"
+#~ msgstr "初始啟動指令(_S):"
diff --git a/po/zh_TW.po b/po/zh_TW.po
new file mode 100644
index 0000000..9b2f35d
--- /dev/null
+++ b/po/zh_TW.po
@@ -0,0 +1,940 @@
+# Chinese (Taiwan) translation of mate-session.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+# mate-core:
+# Yuan-Chung Cheng <[email protected]>, 1999.
+# Jing-Jong Shyue <[email protected]>, 2000.
+# Chih-Wei Huang <[email protected]>, 2000.
+# Abel Cheung <[email protected]>, 2001-2002.
+# mate-session:
+# Abel Cheung <[email protected]>, 2002-2003.
+# Woodman Tuen <[email protected]>, 2005-006.
+# Chao-Hsiung Liao <[email protected]>, 2008.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session 2.31.90\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-05 19:29+0800\n"
+"PO-Revision-Date: 2010-09-04 16:40+0800\n"
+"Last-Translator: Chao-Hsiung Liao <[email protected]>\n"
+"Language-Team: Chinese (Taiwan) <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../capplet/gsm-app-dialog.c:120
+msgid "Select Command"
+msgstr "選擇指令"
+
+#: ../capplet/gsm-app-dialog.c:194
+msgid "Add Startup Program"
+msgstr "新增初始啟動程式"
+
+#: ../capplet/gsm-app-dialog.c:198
+msgid "Edit Startup Program"
+msgstr "修改初始啟動程式"
+
+#: ../capplet/gsm-app-dialog.c:486
+msgid "The startup command cannot be empty"
+msgstr "初始啟動指令不可以留空"
+
+#: ../capplet/gsm-app-dialog.c:492
+msgid "The startup command is not valid"
+msgstr "初始啟動指令無效"
+
+#: ../capplet/gsm-properties-dialog.c:555
+msgid "Enabled"
+msgstr "已啟用"
+
+#: ../capplet/gsm-properties-dialog.c:567
+msgid "Icon"
+msgstr "圖示"
+
+#: ../capplet/gsm-properties-dialog.c:579
+msgid "Program"
+msgstr "程式"
+
+#: ../capplet/gsm-properties-dialog.c:792
+msgid "Startup Applications Preferences"
+msgstr "啟動應用程式偏好設定"
+
+#: ../capplet/gsp-app.c:269
+msgid "No name"
+msgstr "沒有名稱"
+
+#: ../capplet/gsp-app.c:275
+msgid "No description"
+msgstr "沒有描述"
+
+#: ../capplet/main.c:37 ../mate-session/main.c:441
+msgid "Version of this application"
+msgstr "這個程式的版本"
+
+#: ../capplet/main.c:63
+msgid "Could not display help document"
+msgstr "無法顯示求助文件"
+
+#: ../data/mate.desktop.in.h:1
+msgid "MATE"
+msgstr "MATE"
+
+#: ../data/mate.desktop.in.h:2
+msgid "This session logs you into MATE"
+msgstr "這個作業階段讓您登入 MATE"
+
+#: ../data/mate-session.schemas.in.in.h:1
+msgid "Default session"
+msgstr "預設作業階段"
+
+#: ../data/mate-session.schemas.in.in.h:2
+msgid "File Manager"
+msgstr "檔案管理程式"
+
+#: ../data/mate-session.schemas.in.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr "如啟用本選項,mate-session 會在作業階段終止前先提示使用者。"
+
+#: ../data/mate-session.schemas.in.in.h:4
+msgid "If enabled, mate-session will save the session automatically."
+msgstr "如啟用本選項,mate-session 會自動儲存作業階段。"
+
+#: ../data/mate-session.schemas.in.in.h:5
+msgid "List of applications that are part of the default session."
+msgstr "預設作業階段中的應用程式清單。"
+
+#: ../data/mate-session.schemas.in.in.h:6
+msgid ""
+"List of components that are required as part of the session. (Each element "
+"names a key under \"/desktop/mate/session/required_components\"). The "
+"Startup Applications preferences tool will not normally allow users to "
+"remove a required component from the session, and the session manager will "
+"automatically add the required components back to the session at login time "
+"if they do get removed."
+msgstr ""
+"做為此作業階段一部分的必要元件清單。(每個元件都會在「/desktop/mate/session/"
+"required_components」有一個設定鍵。)啟動應用程式偏好設定工具一般不會允許使用"
+"者自作業階段中移除必要的元件,而作業階段管理員會在這些必要元件被移除時自動將"
+"它們加回作業階段中。"
+
+#: ../data/mate-session.schemas.in.in.h:7
+msgid "Logout prompt"
+msgstr "登出提示"
+
+#: ../data/mate-session.schemas.in.in.h:8
+msgid "Panel"
+msgstr "面板"
+
+#: ../data/mate-session.schemas.in.in.h:9
+msgid "Required session components"
+msgstr "要求的作業階段元件"
+
+#: ../data/mate-session.schemas.in.in.h:10
+msgid "Save sessions"
+msgstr "儲存作業階段"
+
+#: ../data/mate-session.schemas.in.in.h:11
+msgid ""
+"The file manager provides the desktop icons and allows you to interact with "
+"your saved files."
+msgstr "檔案管理程式提供桌面圖示功能並且讓您能操作儲存的檔案。"
+
+#: ../data/mate-session.schemas.in.in.h:12
+msgid ""
+"The number of minutes of inactivity before the session is considered idle."
+msgstr "不使用電腦幾分鐘後將作業階段判定為閒置。"
+
+#: ../data/mate-session.schemas.in.in.h:13
+msgid ""
+"The panel provides the bar at the top or bottom of the screen containing "
+"menus, the window list, status icons, the clock, etc."
+msgstr ""
+"面板提供了螢幕頂端或底部的工具列,包含了選單、視窗清單、狀態圖示、時鐘等功"
+"能。"
+
+#: ../data/mate-session.schemas.in.in.h:14
+msgid ""
+"The window manager is the program that draws the title bar and borders "
+"around windows, and allows you to move and resize windows."
+msgstr ""
+"視窗管理程式是一種在視窗周圍繪出標題列、邊框的程式,並且讓您能移動和改變視窗"
+"大小。"
+
+#: ../data/mate-session.schemas.in.in.h:15
+msgid "Time before session is considered idle"
+msgstr "判定作業階段閒置的時間"
+
+#: ../data/mate-session.schemas.in.in.h:16 ../data/mate-wm.desktop.in.in.h:1
+msgid "Window Manager"
+msgstr "視窗管理員"
+
+#: ../data/gsm-inhibit-dialog.ui.h:1
+msgid "<b>Some programs are still running:</b>"
+msgstr "<b>某些程式仍在執行:</b>"
+
+#: ../data/gsm-inhibit-dialog.ui.h:2 ../mate-session/gsm-inhibit-dialog.c:667
+msgid ""
+"Waiting for the program to finish. Interrupting the program may cause you "
+"to lose work."
+msgstr "正在等待程式結束。中斷這些程式可能造成您的工作遺失。"
+
+#: ../data/session-properties.desktop.in.in.h:1
+msgid "Choose what applications to start when you log in"
+msgstr "選擇在您登入時要啟動哪些應用程式"
+
+#: ../data/session-properties.desktop.in.in.h:2
+msgid "Startup Applications"
+msgstr "啟動應用程式"
+
+#: ../data/session-properties.ui.h:1
+msgid "Additional startup _programs:"
+msgstr "啟動時額外執行以下的程式(_P):"
+
+#: ../data/session-properties.ui.h:2
+msgid "Browse…"
+msgstr "瀏覽…"
+
+#: ../data/session-properties.ui.h:3
+msgid "Co_mmand:"
+msgstr "指令(_M):"
+
+#: ../data/session-properties.ui.h:4
+msgid "Comm_ent:"
+msgstr "註解(_E):"
+
+#: ../data/session-properties.ui.h:5
+msgid "Options"
+msgstr "選項"
+
+#: ../data/session-properties.ui.h:6
+msgid "Startup Programs"
+msgstr "初始啟動程式"
+
+#: ../data/session-properties.ui.h:7
+msgid "_Automatically remember running applications when logging out"
+msgstr "登出時自動記住還在執行中的應用程式(_A)"
+
+#: ../data/session-properties.ui.h:8
+msgid "_Name:"
+msgstr "名稱(_N):"
+
+#: ../data/session-properties.ui.h:9
+msgid "_Remember Currently Running Application"
+msgstr "記住目前執行的應用程式(_R)"
+
+#: ../egg/eggdesktopfile.c:165
+#, c-format
+msgid "File is not a valid .desktop file"
+msgstr "檔案不是有效的 .desktop 檔案"
+
+#: ../egg/eggdesktopfile.c:188
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "無法辨識的桌面檔案版本「%s」"
+
+#: ../egg/eggdesktopfile.c:958
+#, c-format
+msgid "Starting %s"
+msgstr "準備啟動 %s"
+
+#: ../egg/eggdesktopfile.c:1100
+#, c-format
+msgid "Application does not accept documents on command line"
+msgstr "應用程式不接受以命令列開啟文件"
+
+#: ../egg/eggdesktopfile.c:1168
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "無法辨識的啟動選項:%d"
+
+#: ../egg/eggdesktopfile.c:1373
+#, c-format
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "不能傳送文件 URI 至「Type=Link」桌面項目"
+
+#: ../egg/eggdesktopfile.c:1394
+#, c-format
+msgid "Not a launchable item"
+msgstr "不是可以啟動的項目"
+
+#: ../egg/eggsmclient.c:225
+msgid "Disable connection to session manager"
+msgstr "停用到作業階段管理程式的連線"
+
+#: ../egg/eggsmclient.c:228
+msgid "Specify file containing saved configuration"
+msgstr "指定含有已儲存組態的檔案"
+
+#: ../egg/eggsmclient.c:228
+msgid "FILE"
+msgstr "檔案"
+
+#: ../egg/eggsmclient.c:231
+msgid "Specify session management ID"
+msgstr "指定作業階段管理 ID"
+
+#: ../egg/eggsmclient.c:231
+msgid "ID"
+msgstr "ID"
+
+#: ../egg/eggsmclient.c:252
+msgid "Session management options:"
+msgstr "作業階段管理選項:"
+
+#: ../egg/eggsmclient.c:253
+msgid "Show session management options"
+msgstr "顯示作業階段管理選項"
+
+#: ../mate-session/gsm-mateconf.c:106
+#, c-format
+msgid ""
+"There is a problem with the configuration server.\n"
+"(%s exited with status %d)"
+msgstr ""
+"組態伺服器發生問題。\n"
+"(%s 以狀態 %d 關閉)"
+
+#: ../mate-session/gsm-inhibit-dialog.c:255
+#, c-format
+msgid "Icon '%s' not found"
+msgstr "找不到圖示「%s」"
+
+#: ../mate-session/gsm-inhibit-dialog.c:615
+msgid "Unknown"
+msgstr "不明"
+
+#: ../mate-session/gsm-inhibit-dialog.c:666
+msgid "A program is still running:"
+msgstr "一個程式仍在執行中:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:670
+msgid "Some programs are still running:"
+msgstr "有些程式仍在執行中:"
+
+#: ../mate-session/gsm-inhibit-dialog.c:671
+msgid ""
+"Waiting for programs to finish. Interrupting these programs may cause you "
+"to lose work."
+msgstr "正在等待程式結束。中斷這些程式可能造成您進行中的工作遺失。"
+
+#: ../mate-session/gsm-inhibit-dialog.c:901
+msgid "Switch User Anyway"
+msgstr "強制切換使用者"
+
+#: ../mate-session/gsm-inhibit-dialog.c:904
+msgid "Log Out Anyway"
+msgstr "強制登出"
+
+#: ../mate-session/gsm-inhibit-dialog.c:907
+msgid "Suspend Anyway"
+msgstr "強制暫停"
+
+#: ../mate-session/gsm-inhibit-dialog.c:910
+msgid "Hibernate Anyway"
+msgstr "強制休眠"
+
+#: ../mate-session/gsm-inhibit-dialog.c:913
+msgid "Shut Down Anyway"
+msgstr "強制關閉電腦"
+
+#: ../mate-session/gsm-inhibit-dialog.c:916
+msgid "Reboot Anyway"
+msgstr "強制重新開機"
+
+#: ../mate-session/gsm-inhibit-dialog.c:924
+msgid "Lock Screen"
+msgstr "鎖定螢幕"
+
+#: ../mate-session/gsm-inhibit-dialog.c:927
+msgid "Cancel"
+msgstr "取消"
+
+#: ../mate-session/gsm-logout-dialog.c:266
+#, c-format
+msgid "You will be automatically logged out in %d second."
+msgid_plural "You will be automatically logged out in %d seconds."
+msgstr[0] "您會在 %d 秒後自動登出。"
+
+#: ../mate-session/gsm-logout-dialog.c:274
+#, c-format
+msgid "This system will be automatically shut down in %d second."
+msgid_plural "This system will be automatically shut down in %d seconds."
+msgstr[0] "本系統會在 %d 秒後自動關閉。"
+
+#: ../mate-session/gsm-logout-dialog.c:306
+#, c-format
+msgid "You are currently logged in as \"%s\"."
+msgstr "您目前以「%s」的身分登入。"
+
+#: ../mate-session/gsm-logout-dialog.c:372
+msgid "Log out of this system now?"
+msgstr "是否立刻登出系統?"
+
+#: ../mate-session/gsm-logout-dialog.c:378
+msgid "_Switch User"
+msgstr "切換使用者(_S)"
+
+#: ../mate-session/gsm-logout-dialog.c:387
+msgid "_Log Out"
+msgstr "登出(_L)"
+
+#: ../mate-session/gsm-logout-dialog.c:393
+msgid "Shut down this system now?"
+msgstr "是否立刻關閉這個系統?"
+
+#: ../mate-session/gsm-logout-dialog.c:399
+msgid "S_uspend"
+msgstr "暫停(_U)"
+
+#: ../mate-session/gsm-logout-dialog.c:405
+msgid "_Hibernate"
+msgstr "休眠(_H)"
+
+#: ../mate-session/gsm-logout-dialog.c:411
+msgid "_Restart"
+msgstr "重新啟動(_R)"
+
+#: ../mate-session/gsm-logout-dialog.c:421
+msgid "_Shut Down"
+msgstr "關閉電腦(_S)"
+
+#: ../mate-session/gsm-manager.c:1214 ../mate-session/gsm-manager.c:1906
+msgid "Not responding"
+msgstr "沒有回應"
+
+#: ../mate-session/gsm-xsmp-client.c:1189
+msgid "This program is blocking logout."
+msgstr "這個程式正在阻擋登出。"
+
+#: ../mate-session/gsm-xsmp-server.c:325
+msgid ""
+"Refusing new client connection because the session is currently being shut "
+"down\n"
+msgstr "因為目前此作業階段即將關閉電腦,拒絕新的客戶端連線\n"
+
+#: ../mate-session/gsm-xsmp-server.c:587
+#, c-format
+msgid "Could not create ICE listening socket: %s"
+msgstr "無法建立 ICE 監聽插槽:%s"
+
+#. Oh well, no X for you!
+#: ../mate-session/gsm-util.c:354
+#, c-format
+msgid "Unable to start login session (and unable to connect to the X server)"
+msgstr "無法啟動登入作業階段(並且無法連線至 X 伺服器)"
+
+#: ../mate-session/main.c:437
+msgid "Override standard autostart directories"
+msgstr "覆蓋標準的自動啟動目錄"
+
+#: ../mate-session/main.c:438
+msgid "MateConf key used to look up default session"
+msgstr "用來查詢預設作業階段的 MateConf 設定鍵"
+
+#: ../mate-session/main.c:439
+msgid "Enable debugging code"
+msgstr "啟用除錯碼"
+
+#: ../mate-session/main.c:440
+msgid "Do not load user-specified applications"
+msgstr "不要載入使用者指定的應用程式"
+
+#: ../mate-session/main.c:461
+msgid " - the MATE session manager"
+msgstr " - MATE 作業階段管理員"
+
+#: ../tools/mate-session-save.c:65
+msgid "Log out"
+msgstr "登出"
+
+#: ../tools/mate-session-save.c:66
+msgid "Log out, ignoring any existing inhibitors"
+msgstr "登出,忽略任何既存的限制因素"
+
+#: ../tools/mate-session-save.c:67
+msgid "Show logout dialog"
+msgstr "顯示登出對話盒"
+
+#: ../tools/mate-session-save.c:68
+msgid "Show shutdown dialog"
+msgstr "顯示關機對話盒"
+
+#: ../tools/mate-session-save.c:69
+msgid "Use dialog boxes for errors"
+msgstr "使用對話視窗顯示錯誤"
+
+#. deprecated options
+#: ../tools/mate-session-save.c:71
+msgid "Set the current session name"
+msgstr "設定目前作業階段名稱"
+
+#: ../tools/mate-session-save.c:71
+msgid "NAME"
+msgstr "名稱"
+
+#: ../tools/mate-session-save.c:72
+msgid "Kill session"
+msgstr "強行中止作業階段"
+
+#: ../tools/mate-session-save.c:73
+msgid "Do not require confirmation"
+msgstr "無需確定"
+
+#: ../tools/mate-session-save.c:120 ../tools/mate-session-save.c:130
+msgid "Could not connect to the session manager"
+msgstr "無法連接作業階段總管"
+
+#: ../tools/mate-session-save.c:273
+msgid "Program called with conflicting options"
+msgstr "以相衝突的選項呼叫程式"
+
+#~ msgid ""
+#~ "Waiting for program to finish. Interrupting program may cause you to "
+#~ "lose work."
+#~ msgstr "正在等待程式結束。中斷程式可能造成您進行中的工作遺失。"
+
+#~ msgid "MATE Settings Daemon Helper"
+#~ msgstr "MATE 設定值伺服程式協助"
+
+#~ msgid ""
+#~ "If enabled, mate-session will save the session automatically. Otherwise, "
+#~ "the logout dialog will have an option to save the session."
+#~ msgstr ""
+#~ "如啟用本選項,mate-session 會自動儲存作業階段,否則在登出時,對話方塊會提"
+#~ "供選項,讓您選擇是否儲存作業階段。"
+
+#~ msgid "Preferred Image to use for login splash screen"
+#~ msgstr "當登入 MATE 桌面時,優先使用作為啟動畫面的圖像"
+
+#~ msgid "Show the splash screen"
+#~ msgstr "登入時顯示啟動畫面"
+
+#~ msgid "Show the splash screen when the session starts up"
+#~ msgstr "當啟動作業階段時顯示啟動畫面"
+
+#~ msgid ""
+#~ "This is a relative path value based off the $datadir/pixmaps/ directory. "
+#~ "Sub-directories and image names are valid values. Changing this value "
+#~ "will effect the next session login."
+#~ msgstr ""
+#~ "這是以目錄 $datadir/pixmaps/ 作為起始的相對路徑數值。子目錄及圖像名稱皆是"
+#~ "有效數值。改變這些數值後會在下次登入時生效。"
+
+#~ msgid "- MATE Splash Screen"
+#~ msgstr "- MATE 歡迎畫面"
+
+#~ msgid "MATE Splash Screen"
+#~ msgstr "MATE 歡迎畫面"
+
+#~ msgid ""
+#~ "Assistive technology support has been requested for this session, but the "
+#~ "accessibility registry was not found. Please ensure that the AT-SPI "
+#~ "package is installed. Your session has been started without assistive "
+#~ "technology support."
+#~ msgstr ""
+#~ "本作業階段要求使用無障礙環境。但是找不到無障礙環境註冊表。請確定 AT-SPI 套"
+#~ "件已安裝正確。作業階段會以沒有無障礙環境的支援方式執行。"
+
+#~ msgid "AT SPI Registry Wrapper"
+#~ msgstr "AT SPI 註冊表包裹器"
+
+#~ msgid "The name of the startup program cannot be empty"
+#~ msgstr "初始啟動程式不能留空"
+
+#~ msgid "Sessions Preferences"
+#~ msgstr "作業階段偏好設定"
+
+#~ msgid "Selected option in the log out dialog"
+#~ msgstr "在登出對話方塊中已選的選項"
+
+#~ msgid ""
+#~ "This is the option that will be selected in the logout dialog, valid "
+#~ "values are \"logout\" for logging out, \"shutdown\" for halting the "
+#~ "system and \"restart\" for restarting the system."
+#~ msgstr ""
+#~ "這是會在登出對話方塊中選擇的選項,有效的數值是:“logout”-登"
+#~ "出,“shutdown”-關機,及“restart”-重新啟動。"
+
+#~ msgid "Configure your sessions"
+#~ msgstr "設定作業階段"
+
+#~ msgid "Sessions"
+#~ msgstr "作業階段"
+
+#~ msgid "MATE Keyring Daemon Wrapper"
+#~ msgstr "MATE Keyring 伺服程式包裹器"
+
+#~ msgid "Session management"
+#~ msgstr "作業階段管理"
+
+#~ msgid "MATE GUI Library + EggSMClient"
+#~ msgstr "MATE GUI 程式庫 + EggSMClient"
+
+#~ msgid ""
+#~ "The Window manager that mate-session will start. Valid values are "
+#~ "\"marco\" and \"compiz\"."
+#~ msgstr ""
+#~ "mate-session 要啟動的視窗管理程式。有效的數值為「marco」和「compiz」。"
+
+#~ msgid "Window Manager to start"
+#~ msgstr "要啟動的視窗管理程式"
+
+#~ msgid "gtk-cancel"
+#~ msgstr "gtk-cancel"
+
+#~ msgid "Could not connect to the session manager\n"
+#~ msgstr "無法連接作業階段管理員\n"
+
+#~ msgid "Play logout sound instead of login"
+#~ msgstr "播放登出音效來代替登入"
+
+#~ msgid "- MATE login/logout sound"
+#~ msgstr "- MATE 登入/登出音效"
+
+#~ msgid "Allow TCP connections"
+#~ msgstr "允許 TCP 連線"
+
+#~ msgid ""
+#~ "For security reasons, on platforms which have _IceTcpTransNoListen() "
+#~ "(XFree86 systems), mate-session does not listen for connections on TCP "
+#~ "ports. This option will allow connections from (authorized) remote hosts. "
+#~ "mate-session must be restarted for this to take effect."
+#~ msgstr ""
+#~ "因安全理由,在支援 _IceTcpTransNoListen() 的平台中 (XFree86 系統),mate-"
+#~ "session 不會監聽在 TCP 埠的連接。本選項會允許 (獲授權的) 遠端主機的連線。"
+#~ "mate-session 必須重新啟動方可令本選項生效。"
+
+#~ msgid "_Order:"
+#~ msgstr "次序(_O):"
+
+#~ msgid "What happens to the application when it exits."
+#~ msgstr "當離開應用程式時發生的事件。"
+
+#~ msgid "_Style:"
+#~ msgstr "樣式(_S):"
+
+#~ msgid "Inactive"
+#~ msgstr "不使用"
+
+#~ msgid "Waiting to start or already finished."
+#~ msgstr "正在等待啟動或已經結束。"
+
+#~ msgid "Started but has not yet reported state."
+#~ msgstr "已經啟動但尚未回報狀態。"
+
+#~ msgid "Running"
+#~ msgstr "執行中"
+
+#~ msgid "A normal member of the session."
+#~ msgstr "作業階段中的普通成員。"
+
+#~ msgid "Saving"
+#~ msgstr "儲存中"
+
+#~ msgid "Saving session details."
+#~ msgstr "正在儲存作業階段詳細資料。"
+
+#~ msgid "State not reported within timeout."
+#~ msgstr "未在時限內回報狀態。"
+
+#~ msgid "Normal"
+#~ msgstr "一般"
+
+#~ msgid "Unaffected by logouts but can die."
+#~ msgstr "不受登出影響但可以終止。"
+
+#~ msgid "Never allowed to die."
+#~ msgstr "永遠不允許終止。"
+
+#~ msgid "Trash"
+#~ msgstr "丟棄"
+
+#~ msgid "Discarded on logout and can die."
+#~ msgstr "登出時會被忽略也可能會終止。"
+
+#~ msgid "Settings"
+#~ msgstr "設定值"
+
+#~ msgid "Always started on every login."
+#~ msgstr "每次登入時都會啟動。"
+
+#~ msgid "Order"
+#~ msgstr "次序"
+
+#~ msgid "Style"
+#~ msgstr "處理方式"
+
+#~ msgid "State"
+#~ msgstr "狀態"
+
+#~ msgid ""
+#~ "There was an error starting the MATE Settings Daemon.\n"
+#~ "\n"
+#~ "Some things, such as themes, sounds, or background settings may not work "
+#~ "correctly."
+#~ msgstr ""
+#~ "啟動 MATE 設定伺服程式時發生錯誤。\n"
+#~ "\n"
+#~ "部份例如佈景主題、音效或背景圖案等的設定將無法正常運作。"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "The last error message was:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "最後的錯誤訊息是:\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "MATE will still try to restart the Settings Daemon next time you log in."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "下次登入時,MATE 仍然會嘗試重新啟動「設定伺服程式」。"
+
+#~ msgid "The Settings Daemon restarted too many times."
+#~ msgstr "「設定伺服程式」重新啟動的次數太多。"
+
+#~ msgid "List registered clients, then exit"
+#~ msgstr "列出目前已註冊的客戶端,然後離開"
+
+#~ msgid "PROGRAM..."
+#~ msgstr "程式..."
+
+#~ msgid ""
+#~ "You must specify at least one program to remove. You can list the "
+#~ "programs with --list.\n"
+#~ msgstr "必須最少指定一個要移除的程式。可以 --list 將程式列出。\n"
+
+#~ msgid "Error: could not connect to the session manager\n"
+#~ msgstr "錯誤:無法連接作業階段總管\n"
+
+#~ msgid "Currently registered clients:\n"
+#~ msgstr "目前已註冊的客戶端:\n"
+
+#~ msgid "Couldn't find program %s in session\n"
+#~ msgstr "在作業階段中無法找到程式 %s\n"
+
+#~ msgid ""
+#~ "The MATE session manager cannot start properly. Please report this as a "
+#~ "MATE bug. Please include this ICE failure message in the bug report: '%"
+#~ "s'. Meanwhile you could try logging in using the failsafe session."
+#~ msgstr ""
+#~ "MATE 作業階段無法啟動。請向 MATE 匯報錯誤。在匯報時請包含此 ICE 錯誤訊"
+#~ "息:‘%s’同時可以嘗試以安全模式作業階段登入。"
+
+#~ msgid ""
+#~ "The MATE session manager was unable to lock the file '%s'. Please "
+#~ "report this as a MATE bug. Sometimes this error may occur if the file's "
+#~ "directory is unwritable, you could try logging in via the failsafe "
+#~ "session and ensuring that it is."
+#~ msgstr ""
+#~ "MATE 作業階段無法鎖定檔案‘%s’。請向 MATE 匯報錯誤。有時這情況發生可能是"
+#~ "資料夾無法可寫入。嘗試以安全模式作業階段登入,確定其為可寫。"
+
+#~ msgid ""
+#~ "The MATE session manager was unable to read the file: '%s'. If this "
+#~ "file exists it must be readable by you for MATE to work properly. Try "
+#~ "logging in with the failsafe session and removing this file."
+#~ msgstr ""
+#~ "MATE 作業階段總管無法讀取檔案‘%s’。如果該檔案存在,其必須為可讀,MATE 的"
+#~ "功能才能正常地使用。嘗試以安全模式作業階段登入,然後將其移除。"
+
+#~ msgid ""
+#~ "Could not write to file '%s'. This file must be writable in order for "
+#~ "MATE to function properly. Try logging in with the failsafe session and "
+#~ "removing this file. Also make sure that the file's directory is writable."
+#~ msgstr ""
+#~ "無法寫入檔案‘%s’。該檔案必須為可寫,MATE 的功能才能正常地使用。嘗試以安全"
+#~ "模式作業階段登入,然後將其移除。同時亦請確定該資料夾為可寫。"
+
+#~ msgid "Are you sure you want to log out?"
+#~ msgstr "是否確定要登出?"
+
+#~ msgid "Remember running applications"
+#~ msgstr "記住目前執行的應用程式"
+
+#~ msgid "_Restart the computer"
+#~ msgstr "重新啟動電腦(_R)"
+
+#~ msgid "Only read saved sessions from the default.session file"
+#~ msgstr "只從預設的作業階段檔案 (default.session) 中讀取已儲存的作業階段"
+
+#~ msgid "Millisecond period spent waiting for clients to register (0=forever)"
+#~ msgstr "等待客戶端註冊的時限[亳秒](0=沒有限制)"
+
+#~ msgid "DELAY"
+#~ msgstr "延遲"
+
+#~ msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+#~ msgstr "等待客戶端回應的時限[亳秒](0=沒有限制)"
+
+#~ msgid "Millisecond period spent waiting for clients to die (0=forever)"
+#~ msgstr "等待客戶端終止的時限[亳秒](0=沒有限制)"
+
+#~ msgid "This session is running as a privileged user"
+#~ msgstr "這個作業階段以具有管理權限的使用者身分執行"
+
+#~ msgid ""
+#~ "Running a session as a privileged user should be avoided for security "
+#~ "reasons. If possible, you should log in as a normal user."
+#~ msgstr ""
+#~ "基於安全性的考量,應該避免以具有管理權限的使用者身分執行作業階段。如果可"
+#~ "能,您應該以一般使用者的身分登入。"
+
+#~ msgid "_Continue"
+#~ msgstr "繼續(_C)"
+
+#~ msgid ""
+#~ "The session might encounter issues if the computer clock is not properly "
+#~ "configured. Please consider adjusting it.\n"
+#~ "\n"
+#~ "Current date is <b>%s</b>."
+#~ msgstr ""
+#~ "如果電腦的時鐘沒有正確設定,這個作業階段可能會發生問題。請試著調整它。\n"
+#~ "\n"
+#~ "目前的日期設定是 <b>%s</b>。"
+
+#~ msgid "Failed to launch time configuration tool: %s"
+#~ msgstr "無法執行時間設置工具:%s"
+
+#~ msgid "The computer clock appears to be wrong"
+#~ msgstr "電腦的時鐘似乎有誤"
+
+#~ msgid "_Ignore"
+#~ msgstr "忽略(_I)"
+
+#~ msgid "_Adjust the Clock"
+#~ msgstr "調整時鐘(_A)"
+
+#~ msgid ""
+#~ "Could not look up internet address for %s.\n"
+#~ "This will prevent MATE from operating correctly.\n"
+#~ "It may be possible to correct the problem by adding\n"
+#~ "%s to the file /etc/hosts."
+#~ msgstr ""
+#~ "找不到 %s 的網路位址。\n"
+#~ "這會妨礙 MATE 的正常運作。\n"
+#~ "將 %s 加入 /etc/hosts\n"
+#~ "可能可以避免此問題出現。"
+
+#~ msgid "Try Again"
+#~ msgstr "重試"
+
+#~ msgid "Wait abandoned due to conflict."
+#~ msgstr "因為有衝突所以不會等待。"
+
+#~ msgid "No response to the %s command."
+#~ msgstr "指令 %s 沒有回應。"
+
+#~ msgid "The program may be slow, stopped or broken."
+#~ msgstr "程式可能很慢,已停止或中斷。"
+
+#~ msgid "You may wait for it to respond or remove it."
+#~ msgstr "可以等待回應或中止該程式。"
+
+#~ msgid "Restart abandoned due to failures."
+#~ msgstr "因為多次失敗所以放棄重新啟動。"
+
+#~ msgid "A session shutdown is in progress."
+#~ msgstr "己經正在關閉作業階段。"
+
+#~ msgid "- Save the current session"
+#~ msgstr "- 儲存目前的作業階段"
+
+#~ msgid "Save changes to the current session before closing?"
+#~ msgstr "關閉前儲存目前的作業階段?"
+
+#~ msgid "If you don't save, changes will be discarded."
+#~ msgstr "如不儲存,將會放棄全部所作的變更。"
+
+#~ msgid "_Close without Saving"
+#~ msgstr "關閉但不儲存(_C)"
+
+#~ msgid "Current Session"
+#~ msgstr "目前的作業階段"
+
+#~ msgid "Your session has been saved."
+#~ msgstr "作業階段已經儲存。"
+
+#~ msgid "could not connect to the session manager\n"
+#~ msgstr "無法連接作業階段總管\n"
+
+#~ msgid "session manager does not support MATE extensions\n"
+#~ msgstr "作業階段總管不支援 MATE 伸延\n"
+
+#~ msgid "Remove the currently selected client from the session."
+#~ msgstr "在作業階段中移除選定的程式。"
+
+#~ msgid "Apply changes to the current session"
+#~ msgstr "將更改後的設定套用至目前的作業階段"
+
+#~ msgid "The list of programs in the session."
+#~ msgstr "目前作業階段中正在運行的程式的清單。"
+
+#~ msgid "Currently running _programs:"
+#~ msgstr "目前正在執行的程式(_P):"
+
+#~ msgid "Sawfish Window Manager"
+#~ msgstr "Sawfish 視窗管理員"
+
+#~ msgid "Marco Window Manager"
+#~ msgstr "Marco 視窗管理員"
+
+#~ msgid "Caja"
+#~ msgstr "Caja"
+
+#~ msgid "Desktop Settings"
+#~ msgstr "桌面設定值"
+
+#~ msgid "_Save current setup"
+#~ msgstr "儲存目前的設定(_S)"
+
+#~ msgid "Automatically save chan_ges to session"
+#~ msgstr "自動儲存作業階段(_G)"
+
+#~ msgid "Save the current session"
+#~ msgstr "儲存目前的作業階段"
+
+#~ msgid "New Startup Program"
+#~ msgstr "新增初始啟動程式"
+
+#~ msgid "The session name cannot be empty"
+#~ msgstr "作業階段名稱不能留空"
+
+#~ msgid "The session name already exists"
+#~ msgstr "該作業階段名稱已經存在"
+
+#~ msgid "Add a new session"
+#~ msgstr "加入新的作業階段"
+
+#~ msgid "Disable"
+#~ msgstr "停用"
+
+#~ msgid "_Edit"
+#~ msgstr "編輯(_E)"
+
+#~ msgid ""
+#~ "Some changes are not saved.\n"
+#~ "Is it still OK to exit?"
+#~ msgstr ""
+#~ "部份改變仍未儲存。\n"
+#~ "是否仍然要離開?"
+
+#~ msgid "Show splash screen on _login"
+#~ msgstr "登入時顯示啟動畫面(_L)"
+
+#~ msgid "As_k on logout"
+#~ msgstr "登出前作出詢問(_K)"
+
+#~ msgid "_Sessions:"
+#~ msgstr "作業階段(_S):"
+
+#~ msgid "_Startup Command:"
+#~ msgstr "初始啟動指令(_S):"
diff --git a/po/zu.po b/po/zu.po
new file mode 100644
index 0000000..a8eb362
--- /dev/null
+++ b/po/zu.po
@@ -0,0 +1,493 @@
+# Zulu translation of mate-session.
+# Copyright (C) 2004 Zuza Software Foundation (Translate.org.za)
+# This file is distributed under the same license as the mate-session package.
+#
+# Zuza Software Foundation <[email protected]>, 2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mate-session HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-01-11 08:59+0000\n"
+"PO-Revision-Date: 2004-12-02 17:02+0200\n"
+"Last-Translator: Zuza Software Foundation <[email protected]>\n"
+"Language-Team: Zulu <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: mate-session/mate-session.schemas.in.h:1
+msgid "Allow TCP connections"
+msgstr "Vumela ukuxhumana kwe TCP"
+
+#: mate-session/mate-session.schemas.in.h:2
+msgid ""
+"For security reasons, on platforms which have _IceTcpTransNoListen() "
+"(XFree86 systems), mate-session does not listen for connections on TCP "
+"ports. This option will allow connections from (authorized) remote hosts. "
+"mate-session must be restarted for this to take effect."
+msgstr ""
+"Ngezizathu zokuvikeleka, kumganga one _IceTcpTransNoListen() (XFree86 "
+"isisakazi), iziqephu ze mate azilaleli ukuxhumana kwezitheleli ze TCP. Lolu "
+"khetho lizo vumela ukuxhumana okuvela kwizindawo eziphethe (ezivunyiwe "
+"ngokomthetho). isiqephu-mate kumelwe siphinde siqalwe kabusha ukuze lokhu "
+"kusebenze."
+
+#: mate-session/mate-session.schemas.in.h:3
+msgid "If enabled, mate-session will prompt the user before ending a session."
+msgstr ""
+"Uma sikhona, isiqephu-mate siyawucela umsebenzisi phambi kokuqeda isiqephu."
+
+#: mate-session/mate-session.schemas.in.h:4
+msgid ""
+"If enabled, mate-session will save the session automatically. Otherwise, "
+"the logout dialog will have an option to save the session."
+msgstr ""
+"Uma sikhona, isiqephu-mate sizawuhlenga isiqephu ngokuzenzakalela. "
+"Kungenjalo, ikonombho lokucisha lizawuba nethuba lokuhlenga."
+
+#: mate-session/mate-session.schemas.in.h:5
+msgid "Logout prompt"
+msgstr "Isicelo sokuphuma"
+
+#: mate-session/mate-session.schemas.in.h:6
+msgid ""
+"Preferred Image to use for the splash screen when logging in to the MATE "
+"Desktop"
+msgstr ""
+"Isithombe esithandekayo ukusebenzisela ukuphucukisa ubuso besiga-nyezi uma "
+"ungena kwisiga-nyezi se MATE"
+
+#: mate-session/mate-session.schemas.in.h:7
+msgid "Save sessions"
+msgstr "Iziqephu zokuhlenga"
+
+#: mate-session/mate-session.schemas.in.h:8
+msgid "Show the splash screen"
+msgstr "Tshengisa ubuso besiga-nyezi obuphucukile"
+
+#: mate-session/mate-session.schemas.in.h:9
+msgid "Show the splash screen when the session starts up"
+msgstr "Tshengisa ubuso besiga-nyezi obuphuchukile uma kuqala isiqephu"
+
+#: mate-session/mate-session.schemas.in.h:10
+msgid "Splash Screen Image"
+msgstr "Isithombe esiphucukile sobuso besinga-nyezi"
+
+#: mate-session/gsm-client-editor.c:97 mate-session/startup-programs.c:314
+msgid "_Order:"
+msgstr "_Inhlelo:"
+
+#: mate-session/gsm-client-editor.c:99
+msgid "The order in which applications are started in the session."
+msgstr "Uhlelo lapho izithobo ziqalwa ngakho phakathi kwesiqephu."
+
+#: mate-session/gsm-client-editor.c:106
+msgid "What happens to the application when it exits."
+msgstr "Kwenzekani phakathi kwesithobo uma siphuma."
+
+#: mate-session/gsm-client-editor.c:109
+msgid "_Style:"
+msgstr "_Inhlobo:"
+
+#: mate-session/gsm-client-list.c:150
+#: mate-session/session-properties-capplet.c:412
+msgid "Order"
+msgstr "Uhlelo"
+
+#: mate-session/gsm-client-list.c:155
+msgid "Style"
+msgstr "Inhlobo"
+
+#: mate-session/gsm-client-list.c:160
+msgid "State"
+msgstr "Isimo"
+
+#: mate-session/gsm-client-list.c:165
+msgid "Program"
+msgstr "Uhlelo"
+
+#: mate-session/gsm-client-row.c:31
+msgid "Inactive"
+msgstr "Engenamandla"
+
+#: mate-session/gsm-client-row.c:32
+msgid "Waiting to start or already finished."
+msgstr "Imele ukuqala kumbe sele iqedile."
+
+#: mate-session/gsm-client-row.c:34
+msgid "Starting"
+msgstr "Iyaqala"
+
+#: mate-session/gsm-client-row.c:35
+msgid "Started but has not yet reported state."
+msgstr "Iqalile kodwa ayikachazi isimo."
+
+#: mate-session/gsm-client-row.c:37
+msgid "Running"
+msgstr "Iyagijima"
+
+#: mate-session/gsm-client-row.c:38
+msgid "A normal member of the session."
+msgstr "Ilungu elejwayelekile lesiqephu."
+
+#: mate-session/gsm-client-row.c:40
+msgid "Saving"
+msgstr "Iyahlenga"
+
+#: mate-session/gsm-client-row.c:41
+msgid "Saving session details."
+msgstr "Ihlenga imininingwane yesiqephu."
+
+#: mate-session/gsm-client-row.c:43
+msgid "Unknown"
+msgstr "Ayaziwa"
+
+#: mate-session/gsm-client-row.c:44
+msgid "State not reported within timeout."
+msgstr "Isimo asitshelwanga phakathi kwesikhathi."
+
+#: mate-session/gsm-client-row.c:50
+msgid "Normal"
+msgstr "Yejwayelekile"
+
+#: mate-session/gsm-client-row.c:51
+msgid "Unaffected by logouts but can die."
+msgstr "Ayithintwanga yizinhlelo zokuphuma kodwa yingafa."
+
+#: mate-session/gsm-client-row.c:53
+msgid "Restart"
+msgstr "Qala kabusha"
+
+#: mate-session/gsm-client-row.c:54
+msgid "Never allowed to die."
+msgstr "Ungayivumeli ife."
+
+#: mate-session/gsm-client-row.c:56
+msgid "Trash"
+msgstr "Emgqonyeni"
+
+#: mate-session/gsm-client-row.c:57
+msgid "Discarded on logout and can die."
+msgstr "Ilahliwe makuphunywa futhi ingafa."
+
+#: mate-session/gsm-client-row.c:59
+msgid "Settings"
+msgstr "Ukuhlelwa"
+
+#: mate-session/gsm-client-row.c:60
+msgid "Always started on every login."
+msgstr "Njalo iqalwe uma ivulwa."
+
+#.
+#. * it would be nice to have a dialog which either:
+#. *
+#. * 1. lets you change the message on it
+#. * 2. lets you append messages and has a "history"
+#. *
+#. * for now, we just kill the old dialog and pop up a new one.
+#.
+#: mate-session/gsm-gsd.c:41
+msgid ""
+"There was an error starting the MATE Settings Daemon.\n"
+"\n"
+"Some things, such as themes, sounds, or background settings may not work "
+"correctly."
+msgstr ""
+"Kuye kwaba khona nephutha makuqalwa izinhlelo MATE Daemon.\n"
+"\n"
+"Ezinye izinto, njenge zihloko, imisindo, okanye izinhlelo zesizinda ngeke "
+"zisebenze kahle."
+
+#: mate-session/gsm-gsd.c:53
+msgid ""
+"\n"
+"\n"
+"The last error message was:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Umyalezo wokugcina onephuta bowuthi:\n"
+"\n"
+
+#: mate-session/gsm-gsd.c:58
+msgid ""
+"\n"
+"\n"
+"MATE will still try to restart the Settings Daemon next time you log in."
+msgstr ""
+"\n"
+"\n"
+"MATE izoqhubeka ukuzama ukuqala kabusha amahlelo we Daemon uma uphinde "
+"wabuya wangena."
+
+#: mate-session/gsm-gsd.c:115
+msgid "There was an unknown activation error."
+msgstr "Kuye kwaba khona iphutha lokusebenza elingaziwa."
+
+#: mate-session/gsm-gsd.c:157
+msgid "The Settings Daemon restarted too many times."
+msgstr "Izinhlelo ze Daemon ziqale kabusha izikhathi eziningi kakhulu."
+
+#: mate-session/logout.c:355
+msgid "Are you sure you want to log out?"
+msgstr "Ingabe uqinisile ufuna ukucisha?"
+
+#: mate-session/logout.c:372
+msgid "_Save current setup"
+msgstr "_Hlenga ukuhlela kwamanje"
+
+#: mate-session/logout.c:393
+msgid "Action"
+msgstr "Isinyathelo"
+
+#: mate-session/logout.c:410
+msgid "_Log out"
+msgstr "_Phuma"
+
+#: mate-session/logout.c:416
+msgid "Sh_ut down"
+msgstr "Cis_ha ngokuphelele"
+
+#: mate-session/logout.c:423
+msgid "_Restart the computer"
+msgstr "_Qala kabusha isiga-nyezi"
+
+#: mate-session/main.c:81
+msgid "Specify a session name to load"
+msgstr "Cacisa igama lesiqephu ozolifaka"
+
+#: mate-session/main.c:82
+msgid "Only read saved sessions from the default.session file"
+msgstr "Funda kuphela iziqephu ezihlengiwe kwihele lesiqephu.sephutha"
+
+#: mate-session/main.c:83
+msgid "Millisecond period spent waiting for clients to register (0=forever)"
+msgstr ""
+"Isikhathi esiyisigamu somzuzwana sichithiwe kumelwe okhasimente ukuba "
+"babhalise (0=phakade)"
+
+#: mate-session/main.c:84
+msgid "Millisecond period spent waiting for clients to respond (0=forever)"
+msgstr ""
+"Isikhathi esiyisigamu somzuzwana sichithiwe kumelwe okhasimente ukuba "
+"baphendule (0=phakade)"
+
+#: mate-session/main.c:85
+msgid "Millisecond period spent waiting for clients to die (0=forever)"
+msgstr ""
+"Isikhathi esiyisigamu somzuzuwana sichithiwe kumelwe okhasimente ukuba bafe "
+"(0=phakade)"
+
+#: mate-session/main.c:265
+#, c-format
+msgid ""
+"Could not look up internet address for %s.\n"
+"This will prevent MATE from operating correctly.\n"
+"It may be possible to correct the problem by adding\n"
+"%s to the file /etc/hosts."
+msgstr ""
+"Ihlulekile ukubheka ikheli lolwembu lwe %s.\n"
+"Lokhu kuzothintela MATE ekusebenzeni kahle.\n"
+"Kunga khoneka ukuxazulula inkinga ngoku hlanganisa\n"
+"%s phakathi kwehele /etc/hosts."
+
+#: mate-session/main.c:272
+msgid "Log in Anyway"
+msgstr "Ungangena nomakunjalo"
+
+#: mate-session/main.c:273
+msgid "Try Again"
+msgstr "Zama futhi"
+
+#: mate-session/manager.c:223
+msgid "Your session has been saved"
+msgstr "Isiqephu sakho sihlengiwe"
+
+#: mate-session/manager.c:527
+msgid "Wait abandoned due to conflict."
+msgstr "Linda isikhathi esifikile ukuba sikuphikise."
+
+#: mate-session/manager.c:1035
+#, c-format
+msgid "No response to the %s command."
+msgstr "Akuna mpendulo kumyalelo %s."
+
+#: mate-session/manager.c:1036
+msgid "The program may be slow, stopped or broken."
+msgstr "Uhlelo longabe lwenza ngonwabo, limisiwe kumbe liphukile."
+
+#: mate-session/manager.c:1037
+msgid "You may wait for it to respond or remove it."
+msgstr "Ungayilinda ukuba iphendule kumbe uyikhiphe."
+
+#: mate-session/manager.c:1760
+msgid "Restart abandoned due to failures."
+msgstr "Ukuqala kabusha kuyekeliwe ngenxa yokwehluleka."
+
+#: mate-session/manager.c:1956
+msgid "A session shutdown is in progress."
+msgstr "Isiqephu sokucisha sisasebenza."
+
+#: mate-session/save-session.c:46
+msgid "Set the current session"
+msgstr "Hlela isiqephu samanje"
+
+#: mate-session/save-session.c:47
+msgid "Kill session"
+msgstr "Bulala isiqephu"
+
+#: mate-session/save-session.c:48
+msgid "Use dialog boxes"
+msgstr "Sebenzisa amabhokisi ukushayela"
+
+#: mate-session/save-session.c:146 mate-session/save-session.c:179
+msgid "Could not connect to the session manager"
+msgstr "Ihlulekile ukuxhumana kumphathi wesiqephu"
+
+#: mate-session/session-names.c:143
+msgid "The session name cannot be empty"
+msgstr "Igama lesiqephu ngekhe libe yize"
+
+#: mate-session/session-names.c:154
+msgid "The session name already exists"
+msgstr "Igama lesiqephu likhona"
+
+#: mate-session/session-names.c:188
+msgid "Add a new session"
+msgstr "Faka isiqephu esisha"
+
+#: mate-session/session-names.c:218
+msgid "Edit session name"
+msgstr "Hlela igama lesiqephu"
+
+#: mate-session/session-properties-capplet.c:122
+msgid "_Edit"
+msgstr "_Hlela"
+
+#: mate-session/session-properties-capplet.c:190
+msgid ""
+"Some changes are not saved.\n"
+"Is it still OK to exit?"
+msgstr ""
+"Olunye ushintsho aluhlengangwa.\n"
+"Ingabe kulungile ukuphuma?"
+
+#: mate-session/session-properties-capplet.c:240
+#: mate-session/session-properties.desktop.in.in.h:2
+msgid "Sessions"
+msgstr "Iziqephu"
+
+#: mate-session/session-properties-capplet.c:273
+msgid "Show splash screen on _login"
+msgstr "Khombisa ukuphucuka kobuso besiga-nyezi uma _ungena"
+
+#: mate-session/session-properties-capplet.c:284
+#, fuzzy
+msgid "As_k on logout"
+msgstr "_Cela uma uphuma"
+
+#: mate-session/session-properties-capplet.c:295
+msgid "Automatically save chan_ges to session"
+msgstr "Hlenga ngokuzenzakalela ushint_sho esiqephini"
+
+#: mate-session/session-properties-capplet.c:306
+msgid "_Sessions:"
+msgstr "_Iziqephu:"
+
+#: mate-session/session-properties-capplet.c:324
+msgid "Session Name"
+msgstr "Igama lesiqephu"
+
+#: mate-session/session-properties-capplet.c:375
+msgid "Session Options"
+msgstr "Ukukhetha isiqephu"
+
+#: mate-session/session-properties-capplet.c:384
+msgid "Current Session"
+msgstr "Isiqephu samanje"
+
+#: mate-session/session-properties-capplet.c:393
+msgid "Additional startup _programs:"
+msgstr "_Izinhlelo ezifakiwe zokuqala:"
+
+#: mate-session/session-properties-capplet.c:414
+msgid "Command"
+msgstr "Imiyalelo"
+
+#: mate-session/session-properties-capplet.c:446
+msgid "Startup Programs"
+msgstr "Izinhlelo zokuqala"
+
+#: mate-session/session-properties.c:49
+msgid "Remove the currently selected client from the session."
+msgstr "Khipha ukhasimente okhethiwe manje esiqephini."
+
+#: mate-session/session-properties.c:55
+msgid "Apply changes to the current session"
+msgstr "Yenza ushintsho esiqephini samanje"
+
+#: mate-session/session-properties.c:61
+msgid "The list of programs in the session."
+msgstr "Uhlu lwezinhlelo esiqephini."
+
+#: mate-session/session-properties.c:88
+msgid "Currently running _programs:"
+msgstr "_Izinhlelo ezisebenzayo manje:"
+
+#: mate-session/session-properties.c:104
+msgid "Initialize session settings"
+msgstr "Qala izinhlelo zesiqephu"
+
+#: mate-session/session-properties.desktop.in.in.h:1
+msgid "Configure your sessions"
+msgstr "Shintsha isimo seziqephu zakho"
+
+#: mate-session/splash-widget.c:43
+msgid "Sawfish Window Manager"
+msgstr "Bheka njengenhlanzi umphathi wefasitela"
+
+#: mate-session/splash-widget.c:44
+msgid "Marco Window Manager"
+msgstr "Lawula umphathi wefasitela"
+
+#: mate-session/splash-widget.c:45
+msgid "Window Manager"
+msgstr "Umphathi wefasitela"
+
+#: mate-session/splash-widget.c:46
+msgid "The Panel"
+msgstr "Uhlu lwamagama"
+
+#: mate-session/splash-widget.c:47
+msgid "Session Manager Proxy"
+msgstr "Umthetho womphathi wesiqephu"
+
+#: mate-session/splash-widget.c:48
+msgid "Caja"
+msgstr "Caja"
+
+#: mate-session/splash-widget.c:49
+msgid "Desktop Settings"
+msgstr "Izinhlelo zobuso besiga-nyezi"
+
+#: mate-session/startup-programs.c:292
+msgid "_Startup Command:"
+msgstr "Umyalelo woku _qala kabusha:"
+
+#: mate-session/startup-programs.c:298
+msgid "Startup Command"
+msgstr "Umyalelo wokuqala kabusha"
+
+#: mate-session/startup-programs.c:347
+msgid "The startup command cannot be empty"
+msgstr "Umyalelo wokuqala kabusha ngekhe ube yize"
+
+#: mate-session/startup-programs.c:384
+msgid "Add Startup Program"
+msgstr "Faka uhlelo lokuqala kabusha"
+
+#: mate-session/startup-programs.c:405
+msgid "Edit Startup Program"
+msgstr "Hlela uhlelo lokuqala kabusha"
diff --git a/tools/Makefile.am b/tools/Makefile.am
new file mode 100644
index 0000000..4e3ba0f
--- /dev/null
+++ b/tools/Makefile.am
@@ -0,0 +1,22 @@
+bin_PROGRAMS = mate-session-save
+
+AM_CPPFLAGS = \
+ $(MATE_SESSION_CFLAGS) \
+ $(DBUS_GLIB_CFLAGS) \
+ $(MATECONF_FLAGS) \
+ -DLOCALE_DIR=\""$(datadir)/locale"\" \
+ $(DISABLE_DEPRECATED_CFLAGS)
+
+AM_CFLAGS = $(WARN_CFLAGS)
+
+mate_session_save_SOURCES = \
+ mate-session-save.c
+
+mate_session_save_LDADD = \
+ $(SM_LIBS) \
+ $(ICE_LIBS) \
+ $(MATE_SESSION_LIBS) \
+ $(DBUS_GLIB_LIBS) \
+ $(MATECONF_LIBS)
+
+-include $(top_srcdir)/git.mk
diff --git a/tools/Makefile.in b/tools/Makefile.in
new file mode 100644
index 0000000..10b3315
--- /dev/null
+++ b/tools/Makefile.in
@@ -0,0 +1,618 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+bin_PROGRAMS = mate-session-save$(EXEEXT)
+subdir = tools
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+PROGRAMS = $(bin_PROGRAMS)
+am_mate_session_save_OBJECTS = mate-session-save.$(OBJEXT)
+mate_session_save_OBJECTS = $(am_mate_session_save_OBJECTS)
+am__DEPENDENCIES_1 =
+mate_session_save_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo " CC " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo " CCLD " $@;
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+SOURCES = $(mate_session_save_SOURCES)
+DIST_SOURCES = $(mate_session_save_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DEFAULT_WM = @DEFAULT_WM@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGG_SMCLIENT_CFLAGS = @EGG_SMCLIENT_CFLAGS@
+EGG_SMCLIENT_LIBS = @EGG_SMCLIENT_LIBS@
+EGREP = @EGREP@
+EXECINFO_LIBS = @EXECINFO_LIBS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HAVE_XRENDER = @HAVE_XRENDER@
+HAVE_XTEST = @HAVE_XTEST@
+ICE_CFLAGS = @ICE_CFLAGS@
+ICE_LIBS = @ICE_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATECONFTOOL = @MATECONFTOOL@
+MATECONF_CFLAGS = @MATECONF_CFLAGS@
+MATECONF_LIBS = @MATECONF_LIBS@
+MATECONF_SANITY_CHECK = @MATECONF_SANITY_CHECK@
+MATECONF_SCHEMA_CONFIG_SOURCE = @MATECONF_SCHEMA_CONFIG_SOURCE@
+MATECONF_SCHEMA_FILE_DIR = @MATECONF_SCHEMA_FILE_DIR@
+MATE_SESSION_CFLAGS = @MATE_SESSION_CFLAGS@
+MATE_SESSION_LIBS = @MATE_SESSION_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+REBUILD = @REBUILD@
+SED = @SED@
+SESSION_PROPERTIES_CFLAGS = @SESSION_PROPERTIES_CFLAGS@
+SESSION_PROPERTIES_LIBS = @SESSION_PROPERTIES_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SM_CFLAGS = @SM_CFLAGS@
+SM_LIBS = @SM_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XGETTEXT = @XGETTEXT@
+XMKMF = @XMKMF@
+XMLTO = @XMLTO@
+XRENDER_CFLAGS = @XRENDER_CFLAGS@
+XRENDER_LIBS = @XRENDER_LIBS@
+XSLTPROC = @XSLTPROC@
+XTEST_CFLAGS = @XTEST_CFLAGS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CPPFLAGS = \
+ $(MATE_SESSION_CFLAGS) \
+ $(DBUS_GLIB_CFLAGS) \
+ $(MATECONF_FLAGS) \
+ -DLOCALE_DIR=\""$(datadir)/locale"\" \
+ $(DISABLE_DEPRECATED_CFLAGS)
+
+AM_CFLAGS = $(WARN_CFLAGS)
+mate_session_save_SOURCES = \
+ mate-session-save.c
+
+mate_session_save_LDADD = \
+ $(SM_LIBS) \
+ $(ICE_LIBS) \
+ $(MATE_SESSION_LIBS) \
+ $(DBUS_GLIB_LIBS) \
+ $(MATECONF_LIBS)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tools/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu tools/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p || test -f $$p1; \
+ then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+ @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+mate-session-save$(EXEEXT): $(mate_session_save_OBJECTS) $(mate_session_save_DEPENDENCIES)
+ @rm -f mate-session-save$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mate_session_save_OBJECTS) $(mate_session_save_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mate-session-save.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+ clean-generic clean-libtool ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-binPROGRAMS install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-binPROGRAMS
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tools/mate-session-save.c b/tools/mate-session-save.c
new file mode 100644
index 0000000..857f339
--- /dev/null
+++ b/tools/mate-session-save.c
@@ -0,0 +1,320 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ * save-session.c - Small program to talk to session manager.
+
+ Copyright (C) 1998 Tom Tromey
+ Copyright (C) 2008 Red Hat, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ 02111-1307, USA.
+*/
+
+#include <config.h>
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+
+#include <dbus/dbus-glib.h>
+#include <dbus/dbus-glib-lowlevel.h>
+
+#define GSM_SERVICE_DBUS "org.mate.SessionManager"
+#define GSM_PATH_DBUS "/org/mate/SessionManager"
+#define GSM_INTERFACE_DBUS "org.mate.SessionManager"
+
+enum {
+ GSM_LOGOUT_MODE_NORMAL = 0,
+ GSM_LOGOUT_MODE_NO_CONFIRMATION,
+ GSM_LOGOUT_MODE_FORCE
+};
+
+/* True if killing. This is deprecated, but we keep it for compatibility
+ * reasons. */
+static gboolean kill_session = FALSE;
+
+/* The real options that should be used now. They are not ambiguous. */
+static gboolean logout = FALSE;
+static gboolean force_logout = FALSE;
+static gboolean logout_dialog = FALSE;
+static gboolean shutdown_dialog = FALSE;
+
+/* True if we should use dialog boxes */
+static gboolean show_error_dialogs = FALSE;
+
+/* True if we should do the requested action without confirmation */
+static gboolean no_interaction = FALSE;
+
+static char* session_name = NULL;
+
+static GOptionEntry options[] = {
+ {"logout", '\0', 0, G_OPTION_ARG_NONE, &logout, N_("Log out"), NULL},
+ {"force-logout", '\0', 0, G_OPTION_ARG_NONE, &force_logout, N_("Log out, ignoring any existing inhibitors"), NULL},
+ {"logout-dialog", '\0', 0, G_OPTION_ARG_NONE, &logout_dialog, N_("Show logout dialog"), NULL},
+ {"shutdown-dialog", '\0', 0, G_OPTION_ARG_NONE, &shutdown_dialog, N_("Show shutdown dialog"), NULL},
+ {"gui", '\0', 0, G_OPTION_ARG_NONE, &show_error_dialogs, N_("Use dialog boxes for errors"), NULL},
+ /* deprecated options */
+ {"session-name", 's', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_STRING, &session_name, N_("Set the current session name"), N_("NAME")},
+ {"kill", '\0', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, &kill_session, N_("Kill session"), NULL},
+ {"silent", '\0', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, &no_interaction, N_("Do not require confirmation"), NULL},
+ {NULL}
+};
+
+static void display_error(const char* message)
+{
+ if (show_error_dialogs && !no_interaction)
+ {
+ GtkWidget* dialog = gtk_message_dialog_new(NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", message);
+
+ /*gtk_window_set_default_icon_name (GTK_STOCK_SAVE);*/
+
+ gtk_dialog_run(GTK_DIALOG(dialog));
+ gtk_widget_destroy(dialog);
+ }
+ else
+ {
+ g_printerr("%s\n", message);
+ }
+}
+
+static DBusGConnection* get_session_bus(void)
+{
+ GError* error = NULL;
+ DBusGConnection* bus = dbus_g_bus_get(DBUS_BUS_SESSION, &error);
+
+ if (bus == NULL)
+ {
+ g_warning("Couldn't connect to session bus: %s", error->message);
+ g_error_free(error);
+ }
+
+ return bus;
+}
+
+static DBusGProxy* get_sm_proxy(void)
+{
+ DBusGConnection* connection;
+ DBusGProxy* sm_proxy;
+
+ connection = get_session_bus();
+
+ if (connection == NULL)
+ {
+ display_error(_("Could not connect to the session manager"));
+ return NULL;
+ }
+
+ sm_proxy = dbus_g_proxy_new_for_name(connection, GSM_SERVICE_DBUS, GSM_PATH_DBUS, GSM_INTERFACE_DBUS);
+
+ if (sm_proxy == NULL)
+ {
+ display_error(_("Could not connect to the session manager"));
+ return NULL;
+ }
+
+ return sm_proxy;
+}
+
+#if 0
+static void set_session_name(const char* session_name)
+{
+ DBusGProxy* sm_proxy;
+ GError* error;
+ gboolean res;
+
+ sm_proxy = get_sm_proxy();
+
+ if (sm_proxy == NULL)
+ {
+ return;
+ }
+
+ error = NULL;
+ res = dbus_g_proxy_call(sm_proxy, "SetName", &error, G_TYPE_STRING, session_name, G_TYPE_INVALID, G_TYPE_INVALID);
+
+ if (!res)
+ {
+ if (error != NULL)
+ {
+ g_warning("Failed to set session name '%s': %s", session_name, error->message);
+ g_error_free(error);
+ }
+ else
+ {
+ g_warning("Failed to set session name '%s'", session_name);
+ }
+ }
+
+ if (sm_proxy != NULL)
+ {
+ g_object_unref(sm_proxy);
+ }
+}
+#endif
+
+static void do_logout(unsigned int mode)
+{
+ DBusGProxy* sm_proxy;
+ GError* error;
+ gboolean res;
+
+ sm_proxy = get_sm_proxy();
+
+ if (sm_proxy == NULL)
+ {
+ return;
+ }
+
+ error = NULL;
+ res = dbus_g_proxy_call(sm_proxy, "Logout", &error, G_TYPE_UINT, mode, G_TYPE_INVALID, G_TYPE_INVALID);
+
+ if (!res)
+ {
+ if (error != NULL)
+ {
+ g_warning("Failed to call logout: %s", error->message);
+ g_error_free(error);
+ }
+ else
+ {
+ g_warning("Failed to call logout");
+ }
+ }
+
+ if (sm_proxy != NULL)
+ {
+ g_object_unref(sm_proxy);
+ }
+}
+
+static void do_shutdown_dialog(void)
+{
+ DBusGProxy* sm_proxy;
+ GError* error;
+ gboolean res;
+
+ sm_proxy = get_sm_proxy();
+
+ if (sm_proxy == NULL)
+ {
+ return;
+ }
+
+ error = NULL;
+ res = dbus_g_proxy_call(sm_proxy, "Shutdown", &error, G_TYPE_INVALID, G_TYPE_INVALID);
+
+ if (!res)
+ {
+ if (error != NULL)
+ {
+ g_warning("Failed to call shutdown: %s", error->message);
+ g_error_free(error);
+ }
+ else
+ {
+ g_warning("Failed to call shutdown");
+ }
+ }
+
+ if (sm_proxy != NULL)
+ {
+ g_object_unref(sm_proxy);
+ }
+}
+
+int main(int argc, char* argv[])
+{
+ GError* error;
+ int conflicting_options;
+
+ /* Initialize the i18n stuff */
+ bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR);
+ bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
+ textdomain(GETTEXT_PACKAGE);
+
+ error = NULL;
+
+ if (!gtk_init_with_args(&argc, &argv, NULL, options, NULL, &error))
+ {
+ g_warning("Unable to start: %s", error->message);
+ g_error_free(error);
+ exit(1);
+ }
+
+ conflicting_options = 0;
+
+ if (kill_session)
+ {
+ conflicting_options++;
+ }
+
+ if (logout)
+ {
+ conflicting_options++;
+ }
+
+ if (force_logout)
+ {
+ conflicting_options++;
+ }
+
+ if (logout_dialog)
+ {
+ conflicting_options++;
+ }
+
+ if (shutdown_dialog)
+ {
+ conflicting_options++;
+ }
+
+ if (conflicting_options > 1)
+ {
+ display_error(_("Program called with conflicting options"));
+ }
+
+ if (kill_session)
+ {
+ if (no_interaction)
+ {
+ force_logout = TRUE;
+ }
+ else
+ {
+ logout_dialog = TRUE;
+ }
+ }
+
+ if (logout)
+ {
+ do_logout(GSM_LOGOUT_MODE_NO_CONFIRMATION);
+ }
+ else if (force_logout)
+ {
+ do_logout(GSM_LOGOUT_MODE_FORCE);
+ }
+ else if (logout_dialog)
+ {
+ do_logout(GSM_LOGOUT_MODE_NORMAL);
+ }
+ else if (shutdown_dialog)
+ {
+ do_shutdown_dialog();
+ }
+
+ return 0;
+}