Compare commits

...

94 Commits

Author SHA1 Message Date
Giovanni Campagna
de173d0e1c Bump version to 3.1.3
To go with recently released GNOME Shell 3.1.3
Fixed gjs version and distcheck at the same time
2011-07-02 14:23:09 +02:00
Giovanni Campagna
939994d07d dock: fix showing in overview with gnome-shell master
Chrome module no longer updates the visibility of objects when
the overview is shown or hidden, so we need to do it ourselves.
2011-06-30 21:52:18 +02:00
Gabor Kelemen
18912db64e Added Hungarian translation 2011-06-07 23:09:50 +02:00
Gabor Kelemen
d5366cb800 Added hu to LINGUAS 2011-06-07 23:09:35 +02:00
Yuri Myasoedov
da89fe53fb Updated Russian translation 2011-06-05 15:01:52 +04:00
Nguyễn Thái Ngọc Duy
31ee462a0b Updated Vietnamese translation 2011-06-04 14:00:06 +07:00
A S Alam
4d8af00bba added Punjabi Translation and update LINGUAS file for locale 2011-06-03 08:19:15 +05:30
Vamsi Krishna Brahmajosyula
bdbf44805d New Extension: applications menu on the panel 2011-05-31 22:03:34 +02:00
Giovanni Campagna
47b478df60 Revert "Add 3.0 to user-theme"
This reverts commit 60bc404d95.

master branch is for master gnome-shell, which is 3.0.1 and unstable.
gnome-3-0 branch is for stable shell, and has 3.0 for everything
which is supported by shell developers.
Next time, please ask me before committing.
2011-05-31 20:25:19 +02:00
John Stowers
60bc404d95 Add 3.0 to user-theme 2011-05-31 14:10:11 +12:00
Martin Dengler
72583b1bf6 fix undeclared file variable in user-theme/extension.js
Eliminates the warning message about assigning to an undeclared
variable when User Theme extension is used. Fixes BZ #651374.
2011-05-31 14:09:16 +12:00
Giovanni Campagna
63dd27c4f5 drive-menu: rework to use PlacesManager from the Shell
Rewrite to use similar code to that used by places-menu, and the
mounts shown by searching in the overview.
Should fix the issue in bug #650076 that prevented remounting the
drives after ejecting, and should be compatible with what Nautilus
does by default.
2011-05-23 23:25:02 +02:00
Marc Alcalà
41d9b71b26 Allow dock allows multiple positions in screen
Use GSettings to store configuration and make the dock position
customizabile. Currently, supported are left and right of the
primary monitor; more could be added in the future.

(Commit message edited by Giovanni Campagna)

https://bugzilla.gnome.org/show_bug.cgi?id=647394

Signed-off-by: Giovanni Campagna <gcampagna@src.gnome.org>
2011-05-23 22:42:07 +02:00
Arash Mousavi
93dbe4cb6b Added Persian translation 2011-05-23 22:38:48 +04:30
Giovanni Campagna
212bf6c70c Add NEWS file, and update gnome-shell-extensions.doap
Necessary for releasing tarballs.
2011-05-21 16:17:15 +02:00
Yaron Shahrabani
251b1cc935 Updated Hebrew translation. 2011-05-13 13:19:59 +03:00
Yaron Shahrabani
ed5bb6cf9a Updated Hebrew translation. 2011-05-13 13:18:59 +03:00
Yaron Shahrabani
40ca668f0c Added he to the LINGUAS 2011-05-13 13:17:07 +03:00
Giovanni Campagna
03660f45b1 drive-menu: do nothing if the drive is has no volume
If the drive is not partitioned, or the volume has not appeared yet,
return early from activate, to avoid an exception.
2011-05-12 19:40:52 +02:00
Giovanni Campagna
1a00ee38fe native-window-placement: make placement strategy a setting
Now it is possible to use GSettings to configure the placement
strategy (natural KDE-like or default grid) and whether to consolidate
the windows more tigthly, as well as the position of the window
captions.
2011-05-12 19:35:55 +02:00
Giovanni Campagna
190f722fe6 Update README
Add the new extensions that were left out.
2011-05-12 18:59:40 +02:00
Giovanni Campagna
2d1e3560b3 native-window-placement: update coding style and indentation
Mostly a whitespace patch, plus the removal of some commented out
code.
2011-05-12 18:58:30 +02:00
Giovanni Campagna
f24365520c New extension: native-window-placement
This extension employs an algorithm (taken from KDE) for layouting
the thumbnails in the overview that more closely reflects the positions
and relative sizes of the actual windows, instead of using a fixed
grid.
2011-05-12 18:42:53 +02:00
Giovanni Campagna
bfd107cef0 xrandr-indicator: require the right gjs version
xrandr-indicator makes the whole shell crash if the right gjs
features are missing, but instead of asking not to install it, we
can use gjs versioning.
2011-05-12 18:32:06 +02:00
Giovanni Campagna
eae099f97c Rework how external packages are pulled in
Now if a required external package cannot be found, it doesn't fail
and instead prints a warning. This is to allow building with
--enable-extensions=all without the required libraries.
Also bump required libgtop version to the one with the typelib.
2011-05-12 18:28:48 +02:00
Giovanni Campagna
3281a10031 Rework how default extensions are chosen
Now we enable by default only extensions that are unlikely to
conflict much with the shell experience (so no alternate-tab, no
auto-move-windows, etc.) and require no GSettings or external
packages.
2011-05-12 18:06:32 +02:00
Maxim Ermilov
30273d09df systemMonitor: new extension
https://bugzilla.gnome.org/show_bug.cgi?id=634080
2011-05-11 00:42:37 +04:00
Giovanni Campagna
b20cba35a8 places-menu: don't show "removable drives" if none is attached
Having an empty submenu is weird, it's better to hide it completely
in that case.
Plus a bunch of whitespace fixes.
2011-05-04 16:29:22 +02:00
Vamsi Krishna Brahmajosyula
a78e42e4fc New Extension: Places Menu Status Indicator
Signed-off-by: Vamsi Krishna Brahmajosyula <vamsikrishna.brahmajosyula@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=648724
2011-05-04 16:10:32 +02:00
Giovanni Campagna
5b212bd1fd Add COPYING
License file for GNU General Public Licence v2
2011-05-03 18:36:10 +02:00
Elad Alfassa
268fd462ac Support globally installed themes
If a theme cannot be found in the user directory, try in system
data dirs (XDG_DATA_DIRS, usually /usr/share and /usr/local/share)

Signed-off-by: Giovanni Campagna <gcampagna@src.gnome.org>
2011-05-02 18:31:19 +02:00
Giovanni Campagna
d942e255f7 user-theme: fix resetting theme to null
Previously null stylesheets were ignored, making it impossible to
reset the default. We still need to filter out invalid (non existing)
stylesheets, as no check is performed by shell code.
2011-05-02 18:07:39 +02:00
Giovanni Campagna
f016b95f77 Update Italian translation 2011-04-26 15:35:56 +02:00
Giovanni Campagna
6756ad4630 StatusMenu: update to latest GNOME Shell API
The hook to access the status menu was changed in panel.js. Also
replace the alternating menu item with two separate menu items (which
side-steps bug 643631) and use own translations instead of those
provided by gnome-shell (so Hibernate is translated)
2011-04-26 15:35:44 +02:00
Giovanni Campagna
2df002955e New extension: Removable Drive Menu
Adds a menu in the system status area that tracks removable disk devices
attached and offers to browse them and eject/unmount them.

https://bugzilla.gnome.org/show_bug.cgi?id=647027
2011-04-26 01:21:53 +02:00
Giovanni Campagna
0ce994ba46 Revert "Mark extensions that require only public API"
This reverts commit 6cd9530862, and
reopens development againts GNOME Shell master. Time for 3.2!
2011-04-26 01:17:23 +02:00
Rudolfs Mazurs
52104d5bd1 Added Latvian translation. 2011-04-25 20:59:31 +03:00
Rodolfo Ribeiro Gomes
b2233963b4 Updated Brazilian Portuguese translation 2011-04-25 10:32:40 -03:00
Daniel Mustieles
5b4cb3b527 Updated Spanish translation 2011-04-21 19:42:57 +02:00
Claude Paroz
8b73c8209f Updated French translation 2011-04-21 16:51:28 +02:00
Yinghua Wang
9c455db395 update zh_CN translation 2011-04-21 03:47:37 +08:00
Piotr Drąg
e6e8f9e55a Updated Polish translation 2011-04-19 09:16:45 +02:00
Lê Trường An
af09393e50 Updated Vietnamese translation
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
2011-04-18 21:07:09 +07:00
Nguyễn Thái Ngọc Duy
954aa1fa7e po/vi.po: import from Damned Lies 2011-04-18 21:04:38 +07:00
Mario Blättermann
569e80c132 [l10n] Updated German translation 2011-04-17 11:15:39 +02:00
Marek Černocký
908a6752c1 Updated Czech translation 2011-04-17 11:11:28 +02:00
Matej Urbančič
f41aa6a0fa Updated Slovenian translation 2011-04-16 21:08:43 +02:00
Kjartan Maraas
94de7095c6 Add missing file to POTFILES.in 2011-04-16 18:32:43 +02:00
Kjartan Maraas
d28a9d7bed Updated Norwegian bokmål translation 2011-04-16 18:32:27 +02:00
Kjartan Maraas
6563a5b9db Added Norwegian bokmål translation 2011-04-16 18:19:26 +02:00
Kjartan Maraas
ff43078ff3 Add nb 2011-04-16 18:19:18 +02:00
Fran Diéguez
a4d2ef959b Updated Galician translations 2011-04-14 09:58:58 +02:00
Fran Diéguez
e09b0f3b5f Updated Galician translations 2011-04-14 09:58:32 +02:00
Christian Kirbach
4335a52997 [l10n] Updated German translation. 2011-04-09 12:42:11 +02:00
Daniel Nylander
2b024315f7 Updated Swedish translation 2011-04-08 21:02:13 +02:00
Kris Thomsen
6d56cf6d98 Updated Danish translation 2011-04-06 22:28:44 +02:00
Matej Urbančič
f0f78b097b Updated Slovenian translation 2011-04-06 12:31:47 +02:00
Adam Dingle
17e8373513 Added a brief description of each extension to the README file.
https://bugzilla.gnome.org/show_bug.cgi?id=646802
2011-04-05 22:53:39 +02:00
Giovanni Campagna
26f5c03040 Release 3.0.0
To go with GNOME Shell 3.0.0.
Note that a last minute regression broke extension loading and
requires patching gnome-shell (bug 646333).
2011-04-05 16:47:24 +02:00
Giovanni Campagna
6cd9530862 Mark extensions that require only public API
Extensions that use public Shell API are expected to work for all
stable 3.0 releases, so we skip setting the minor version. (This
means that they'll work in 3.0.0 and 3.0.1 without rebuilding).
Notably absent are auto-move-windows and windowsNavigator, that
hook deep into Shell code and could be broken by next minor release.
2011-04-05 16:42:48 +02:00
Rodrigo Padula de Oliveira
fcddcc5185 Updated Brazilian Portuguese translation 2011-04-05 09:30:12 -03:00
Daniel Mustieles
311accd815 Updated Spanish translation 2011-04-04 19:57:27 +02:00
Marek Černocký
ac8d16674c Updated Czech translation 2011-04-02 19:21:27 +02:00
Duarte Loreto
941c819604 Updated Portuguese translation 2011-04-02 00:15:34 +01:00
Philippe Normand
6edb1c7c60 new gajim extension. Requires gajim-nightly >= 20110326
https://bugzilla.gnome.org/show_bug.cgi?id=645760
2011-04-01 18:36:56 +02:00
Kris Thomsen
5a5b7e56a1 Updated Danish translation 2011-03-30 22:37:57 +02:00
Kenneth Nielsen
0f3e93a39a Added da to list of languages 2011-03-30 22:37:56 +02:00
Djavan Fagundes
a0181ce802 Added Brazilian Portuguese translation in LINGUAS 2011-03-29 14:50:41 -03:00
Felipe Borges
0307c59f0e Added Brazilian Portuguese translation 2011-03-29 14:49:28 -03:00
Giovanni Campagna
46e959845d Release 2.91.93 (3.0 second release candidate)
To go with GNOME Shell 2.91.93
2011-03-29 15:21:07 +02:00
Nguyễn Thái Ngọc Duy
610bdb0b52 Added Vietnamese translation 2011-03-27 17:37:57 +07:00
Maxim Ermilov
0ecccc7868 windowsNavigator: correct restore focus
previously it conflict with runDialog
2011-03-26 18:48:26 +03:00
Maxim Ermilov
e0f27e9496 windowsNavigator: fix work with 2.91.92 on multimonitor 2011-03-26 18:48:22 +03:00
Giovanni Campagna
9563164d76 Release version 2.91.92 (3.0 release candidate)
To go with GNOME Shell 2.91.92
2011-03-23 17:10:54 +01:00
Giovanni Campagna
223e934ba9 AlternativeStatusMenu: fix power off string
Make it "Power Off...", not "Power off...", so it's picked from
gnome-shell translations.
2011-03-23 16:46:50 +01:00
Giovanni Campagna
a4d7a4eba4 User Themes: don't load a null stylesheet
If the stylesheet is not set, or it cannot be found, don't try to
load it.
2011-03-19 18:21:27 +01:00
Giovanni Campagna
1639f9f624 Add possibility to build all extensions
For testing, for packaging, and for jhbuild installations, you can
use --enable-extensions=all to get back to previous behaviour of
installing all extensions.
2011-03-19 17:49:41 +01:00
Claude Paroz
1148415672 Added French translation 2011-03-19 09:38:17 +01:00
Giovanni Campagna
1d9a26d7d7 Disable example, xrandr-indicator, auto-move-windows, user-theme by default.
example: not really useful for the general public.
xrandr-indicator: requires some features in gjs and gobject-introspection
that are not merged yet (bugs 634253 and 643620).
auto-move-windows and user-theme: these are very useful, but require
GSettings, so can only be installed in the same prefix as GLib, or
otherwise one needs to set GSETTINGS_SCHEMA_DIR in .profile)
2011-03-18 15:07:16 +01:00
Yinghua Wang
783ec6cf68 Add Simplified Chinese translation. 2011-03-18 20:56:44 +08:00
Mario Blättermann
5514ecbc3e [l10n] Added German translation 2011-03-17 17:54:37 +01:00
Matej Urbančič
2cc0eec19d Added sl for Slovenian translation 2011-03-16 17:06:39 +01:00
Matej Urbančič
40dff3d08f Added Slovenian translation 2011-03-16 17:06:23 +01:00
Marek Černocký
f28e3c78ab Added Czech language 2011-03-14 11:27:32 +01:00
Marek Černocký
a1ae5a338a Czech translation 2011-03-14 11:27:06 +01:00
Daniel Nylander
441d4b6b01 Added Swedish translation 2011-03-14 10:11:03 +01:00
Piotr Drąg
e4602fd890 Updated Polish translation 2011-03-13 17:06:55 +01:00
Daniel Mustieles
6e5114d897 Updated Spanish translation 2011-03-13 12:17:21 +01:00
Daniel Mustieles
6177734a65 Added Spanish translation 2011-03-13 12:16:55 +01:00
Maxim Ermilov
3825069e52 windowsNavigator: support current gnome-shell
workspace._getVisibleClones was removed.
2011-03-13 00:47:10 +03:00
Giovanni Campagna
c3e1e63eef [i18n] Updated Italian translation 2011-03-12 22:12:30 +01:00
Giovanni Campagna
064a4c5891 Add Alternative Status Menu extensions
For those who just cannot understand the design behind current
status menu, and want a power off item visible at all the time.
Adds the ability to hibernate as well.
2011-03-12 22:10:23 +01:00
John Stowers
c828d09539 Remove backup file from git 2011-03-11 13:46:17 +13:00
John Stowers
27a1714f37 Add user-theme extension
https://bugzilla.gnome.org/show_bug.cgi?id=644271
2011-03-11 13:12:27 +13:00
73 changed files with 5090 additions and 201 deletions

340
COPYING Normal file
View File

@@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<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 Library General
Public License instead of this License.

View File

@@ -1,3 +1,5 @@
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
SUBDIRS = extensions po
DISTCHECK_CONFIGURE_FLAGS = --enable-extensions=all

16
NEWS Normal file
View File

@@ -0,0 +1,16 @@
3.1.1 (unreleased)
==================
* New extensions: drive-menu, places-menu, native-window-placement,
systemMonitor
* Dock position is configurable
* Compatibility with released Shell was broken, API usage
was updated
3.0.2
=====
* Updated translations.
* Fixed bug #647386 (reverting of user-theme to default)
* Fixed bug #647599 (support globally installed themes)
* Added license and README

66
README
View File

@@ -17,6 +17,72 @@ For general information about GNOME Shell
Bugs should be reported at http://bugzilla.gnome.org against the 'gnome-shell'
product, with the 'extensions' component.
Extensions
==========
alternate-tab
Lets you use classic Alt+Tab (window-based instead of app-based) in GNOME Shell.
alternative-status-menu
For those who want a power off item visible at all the time, replaces GNOME Shell
status menu with one featuring separate Suspend and Power Off. Adds the ability to
hibernate as well.
apps-menu
Lets you reach an application using gnome 2.x style menu on the panel.
auto-move-windows
Lets you manage your workspaces more easily, assigning a specific workspace to
each application as soon as it creates a window, in a manner configurable with a
GSettings key.
dock
Shows a dock-style task switcher on the right side of the screen.
drive-menu
Shows a status menu for rapid unmount and power off of external storage devices
(i.e. pendrives)
example
A minimal example illustrating how to write extensions.
gajim
Integration with Gajim, a Jabber/XMPP instant messaging client.
native-window-placement
An alternative algorithm for layouting the thumbnails in the windows overview, that
more closely reflects the actual positions and sizes.
places-menu
Shows a status Indicator for navigating to Places.
systemMonitor
An message tray indicator showing CPU and memory loads.
user-theme
Loads a shell theme from ~/.themes/<name>/gnome-shell.
windowsNavigator
Allow keyboard selection of windows and workspaces in overlay mode.
xrandr-indicator
Replace the GTK+ based indicator from gnome-settings-daemon with
a native one. Lets the user rotate the laptop monitor and open
display preferences quickly.
License
=======
GNOME Shell Extensions are distributed under the terms of the GNU General Public License,

View File

@@ -1,5 +1,5 @@
AC_PREREQ(2.63)
AC_INIT([gnome-shell-extensions],[2.91.91],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&component=extensions])
AC_INIT([gnome-shell-extensions],[3.1.3],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&component=extensions])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([config])
@@ -18,23 +18,39 @@ PKG_PROG_PKG_CONFIG([0.22])
GLIB_GSETTINGS
ADDITIONAL_PACKAGES=
dnl keep this in sync with extensions/Makefile.am
ALL_EXTENSIONS="example alternate-tab xrandr-indicator windowsNavigator auto-move-windows dock"
dnl keep this in alphabetic order
dnl by default, install only extensions that do not change completely the shell experience,
dnl that don't require GSettings and that don't require external packages for typelibs
dnl (so basically only menus, status icons, search providers, overview tabs, message tray sources, etc.)
DEFAULT_EXTENSIONS="alternative-status-menu apps-menu dock drive-menu gajim places-menu windowsNavigator"
ALL_EXTENSIONS="$DEFAULT_EXTENSIONS alternate-tab auto-move-windows example native-window-placement systemMonitor user-theme xrandr-indicator"
AC_SUBST(ALL_EXTENSIONS, [$ALL_EXTENSIONS])
AC_ARG_ENABLE([extensions],
[AS_HELP_STRING([--enable-extensions],[Space separated list of extensions to enable. Default is that all extensions are built.])],
[AS_HELP_STRING([--enable-extensions],[Space separated list of extensions to enable.
The default is to build all extensions that can be installed in the home directory and have no external depedencies.
Use "all" to enable all available extensions.])],
[],
[enable_extensions=$ALL_EXTENSIONS]
[enable_extensions=$DEFAULT_EXTENSIONS]
)
if test x$enable_extensions = xall; then
enable_extensions="$ALL_EXTENSIONS"
fi
ENABLED_EXTENSIONS=
for e in $enable_extensions; do
case $e in
xrandr-indicator)
ENABLED_EXTENSIONS="$ENABLED_EXTENSIONS $e"
ADDITIONAL_PACKAGES="gnome-desktop-3.0 >= 2.91.6"
systemMonitor)
PKG_CHECK_MODULES(GTOP, libgtop-2.0 >= 2.28.4,
[ENABLED_EXTENSIONS="$ENABLED_EXTENSIONS $e"],
[AC_MSG_WARN([libgtop-2.0 not found, disabling systemMonitor])])
;;
alternate-tab|example|windowsNavigator|auto-move-windows|dock)
xrandr-indicator)
PKG_CHECK_MODULES(GNOME_DESKTOP, gnome-desktop-3.0 >= 2.91.6,
[ENABLED_EXTENSIONS="$ENABLED_EXTENSIONS $e"],
[AC_MSG_WARN([gnome-desktop-3.0 not found, disabling xrandr-indicator])])
;;
dnl keep this in alphabetic order
alternate-tab|alternative-status-menu|apps-menu|auto-move-windows|dock|drive-menu|example|gajim|native-window-placement|places-menu|user-theme|windowsNavigator)
ENABLED_EXTENSIONS="$ENABLED_EXTENSIONS $e"
;;
*)
@@ -44,21 +60,22 @@ done
AC_SUBST(ENABLED_EXTENSIONS, [$ENABLED_EXTENSIONS])
dnl We don't really need cflags or libdirs, we just check
dnl to ensure we don't fail at runtime.
if test "x$ADDITIONAL_PACKAGES" != x; then
PKG_CHECK_MODULES(ADDITIONAL, [$ADDITIONAL_PACKAGES])
fi
dnl Please keep this sorted alphabetically
AC_CONFIG_FILES([
extensions/alternate-tab/Makefile
extensions/alternative-status-menu/Makefile
extensions/apps-menu/Makefile
extensions/auto-move-windows/Makefile
extensions/dock/Makefile
extensions/drive-menu/Makefile
extensions/example/Makefile
extensions/systemMonitor/Makefile
extensions/windowsNavigator/Makefile
extensions/gajim/Makefile
extensions/native-window-placement/Makefile
extensions/places-menu/Makefile
extensions/xrandr-indicator/Makefile
extensions/user-theme/Makefile
extensions/Makefile
Makefile
po/Makefile.in

View File

@@ -1,3 +1,3 @@
DIST_SUBDIRS = example alternate-tab xrandr-indicator windowsNavigator auto-move-windows dock
DIST_SUBDIRS = $(ALL_EXTENSIONS)
SUBDIRS = $(ENABLED_EXTENSIONS)

View File

@@ -3,7 +3,7 @@
"name": "AlternateTab",
"description": "A replacement for Alt-Tab, allows to cycle between windows and does not group by application",
"original-author": "thomas.bouffon@gmail.com",
"shell-version": [ "2.91.5", "@shell_current@" ],
"shell-version": [ "@shell_current@" ],
"localedir": "@LOCALEDIR@",
"url": "@url@"
}

View File

@@ -0,0 +1,3 @@
EXTENSION_ID = alternative-status-menu
include ../../extension.mk

View File

@@ -0,0 +1,105 @@
/* -*- mode: js2 - indent-tabs-mode: nil - js2-basic-offset: 4 -*- */
const Lang = imports.lang;
const St = imports.gi.St;
const Main = imports.ui.main;
const PopupMenu = imports.ui.popupMenu;
const GnomeSession = imports.misc.gnomeSession;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
function updateSuspend(object, pspec, item) {
item.actor.visible = object.get_can_suspend();
}
function updateHibernate(object, pspec, item) {
item.actor.visible = object.get_can_hibernate();
}
function onSuspendActivate(item) {
Main.overview.hide();
this._screenSaverProxy.LockRemote(Lang.bind(this, function() {
this._upClient.suspend_sync(null);
}));
}
function onHibernateActivate(item) {
Main.overview.hide();
this._screenSaverProxy.LockRemote(Lang.bind(this, function() {
this._upClient.hibernate_sync(null);
}));
}
function createSubMenu() {
let item;
item = new PopupMenu.PopupImageMenuItem(_("Available"), 'user-available');
item.connect('activate', Lang.bind(this, this._setPresenceStatus, GnomeSession.PresenceStatus.AVAILABLE));
this.menu.addMenuItem(item);
this._presenceItems[GnomeSession.PresenceStatus.AVAILABLE] = item;
item = new PopupMenu.PopupImageMenuItem(_("Busy"), 'user-busy');
item.connect('activate', Lang.bind(this, this._setPresenceStatus, GnomeSession.PresenceStatus.BUSY));
this.menu.addMenuItem(item);
this._presenceItems[GnomeSession.PresenceStatus.BUSY] = item;
item = new PopupMenu.PopupSeparatorMenuItem();
this.menu.addMenuItem(item);
item = new PopupMenu.PopupMenuItem(_("My Account"));
item.connect('activate', Lang.bind(this, this._onMyAccountActivate));
this.menu.addMenuItem(item);
item = new PopupMenu.PopupMenuItem(_("System Settings"));
item.connect('activate', Lang.bind(this, this._onPreferencesActivate));
this.menu.addMenuItem(item);
item = new PopupMenu.PopupSeparatorMenuItem();
this.menu.addMenuItem(item);
item = new PopupMenu.PopupMenuItem(_("Lock Screen"));
item.connect('activate', Lang.bind(this, this._onLockScreenActivate));
this.menu.addMenuItem(item);
item = new PopupMenu.PopupMenuItem(_("Switch User"));
item.connect('activate', Lang.bind(this, this._onLoginScreenActivate));
this.menu.addMenuItem(item);
this._loginScreenItem = item;
item = new PopupMenu.PopupMenuItem(_("Log Out..."));
item.connect('activate', Lang.bind(this, this._onQuitSessionActivate));
this.menu.addMenuItem(item);
item = new PopupMenu.PopupSeparatorMenuItem();
this.menu.addMenuItem(item);
item = new PopupMenu.PopupMenuItem(_("Suspend"));
item.connect('activate', Lang.bind(this, onSuspendActivate));
this._upClient.connect('notify::can-suspend', Lang.bind(this, updateSuspend, item));
updateSuspend(this._upClient, null, item);
this.menu.addMenuItem(item);
item = new PopupMenu.PopupMenuItem(_("Hibernate"));
item.connect('activate', Lang.bind(this, onHibernateActivate));
this._upClient.connect('notify::can-hibernate', Lang.bind(this, updateHibernate, item));
updateHibernate(this._upClient, null, item);
this.menu.addMenuItem(item);
item = new PopupMenu.PopupMenuItem(_("Power Off..."));
item.connect('activate', Lang.bind(this, function() {
this._session.ShutdownRemote();
}));
this.menu.addMenuItem(item);
}
// Put your extension initialization code here
function main(metadata) {
imports.gettext.bindtextdomain('gnome-shell-extensions', metadata.localedir);
let statusMenu = Main.panel._userMenu;
statusMenu.menu.removeAll();
createSubMenu.call(statusMenu);
}

View File

@@ -0,0 +1,8 @@
{
"uuid": "@uuid@",
"name": "Alternative Status Menu",
"description": "Replaces GNOME Shell Status Menu with one showing Suspend/Hibernate and Power Off as separate items",
"shell-version": [ "@shell_current@" ],
"localedir": "@LOCALEDIR@",
"url": "@url@"
}

View File

@@ -0,0 +1,3 @@
.popup-alternating-menu-item:alternate {
font-weight: normal !important;
}

View File

@@ -0,0 +1,3 @@
EXTENSION_ID = apps-menu
include ../../extension.mk

View File

@@ -0,0 +1,97 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
const St = imports.gi.St;
const Main = imports.ui.main;
const PopupMenu = imports.ui.popupMenu;
const PanelMenu = imports.ui.panelMenu;
const Shell = imports.gi.Shell;
const Lang = imports.lang;
const ICON_SIZE = 28;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
let appsys = Shell.AppSystem.get_default();
function AppMenuItem(appInfo,params) {
this._init(appInfo,params);
}
AppMenuItem.prototype = {
__proto__: PopupMenu.PopupBaseMenuItem.prototype,
_init: function (appInfo, params) {
PopupMenu.PopupBaseMenuItem.prototype._init.call(this, params);
let app = appsys.get_app(appInfo.get_id());
this.label = new St.Label({ text: appInfo.get_name() });
this.addActor(this.label);
this._icon = app.create_icon_texture(ICON_SIZE);
this.addActor(this._icon,{expand : false});
this._appInfo = appInfo;
},
_onButtonReleaseEvent: function (actor, event) {
let id = this._appInfo.get_id();
appsys.get_app(id).activate(-1);
this.activate(event);
}
};
function ApplicationsButton() {
this._init();
}
ApplicationsButton.prototype = {
__proto__: PanelMenu.SystemStatusButton.prototype,
_init: function() {
PanelMenu.SystemStatusButton.prototype._init.call(this, 'start-here');
this._display();
appsys.connect('installed-changed', Lang.bind(this,this.reDisplay));
},
reDisplay : function() {
this._clearAll();
this._display();
},
_clearAll : function() {
this.menu.removeAll();
},
_display : function() {
let id;
this.appItems = [];
this.categories = appsys.get_sections();
for ( id = 0; id < this.categories.length; id++) {
this.appItems[this.categories[id]] = new PopupMenu.PopupSubMenuMenuItem(this.categories[id]);
this.menu.addMenuItem(this.appItems[this.categories[id]]);
}
this._addSubMenuItems();
for ( id = 0; id < this.categories.length; id++) {
let item = this.appItems[this.categories[id]];
if(item.menu._getMenuItems().length == 0){
item.actor.hide();
}
}
},
_addSubMenuItems: function() {
let appInfos = appsys.get_flattened_apps().filter(function(app) {
return !app.get_is_nodisplay();
});
for (let appid = appInfos.length-1 ; appid >= 0; appid--) {
let appInfo = appInfos[appid];
let appItem = new AppMenuItem(appInfo);
this.appItems[appInfo.get_section()].menu.addMenuItem(appItem);
}
},
_onDestroy: function() {
this._clearAll();
}
};
function main(metadata) {
let appsMenuButton = new ApplicationsButton();
Main.panel._leftBox.insert_actor(appsMenuButton.actor, 1);
Main.panel._leftBox.child_set(appsMenuButton.actor, { y_fill : true } );
Main.panel._menus.addMenu(appsMenuButton.menu);
}

View File

@@ -0,0 +1,8 @@
{
"uuid": "@uuid@",
"name": "Applications Menu",
"description": "Add a gnome 2.x style menu for applications",
"shell-version": [ "@shell_current@" ],
"localedir": "@LOCALEDIR@",
"url": "@url@"
}

View File

@@ -0,0 +1 @@
/* none used*/

View File

@@ -1,3 +1,14 @@
EXTENSION_ID = dock
include ../../extension.mk
gschemas_in = org.gnome.shell.extensions.dock.gschema.xml.in
@INTLTOOL_XML_NOMERGE_RULE@
gsettings_SCHEMAS = $(gschemas_in:.xml.in=.xml)
@GSETTINGS_RULES@
CLEANFILES += $(gschemas_in:.xml.in=.valid) $(gsettings_SCHEMAS)
EXTRA_DIST += $(gschemas_in)

View File

@@ -25,7 +25,19 @@ const AltTab = imports.ui.altTab;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const DOCKICON_SIZE = 48;
// Settings
const DOCK_SETTINGS_SCHEMA = 'org.gnome.shell.extensions.dock';
const DOCK_POSITION_KEY = 'position';
const DOCK_SIZE_KEY = 'size';
// Keep enums in sync with GSettings schemas
const PositionMode = {
LEFT: 0,
RIGHT: 1
};
let position = PositionMode.RIGHT;
let dockicon_size = 48;
const DND_RAISE_APP_TIMEOUT = 500;
function Dock() {
@@ -40,8 +52,16 @@ Dock.prototype = {
this._favorites = [];
// Load Settings
this._settings = new Gio.Settings({ schema: DOCK_SETTINGS_SCHEMA });
position = this._settings.get_enum(DOCK_POSITION_KEY);
dockicon_size = this._settings.get_int(DOCK_SIZE_KEY);
//global.log("POSITION: " + position);
//global.log("dockicon_size: " + dockicon_size);
this._spacing = 4;
this._item_size = DOCKICON_SIZE;
this._item_size = dockicon_size;
this.actor = new St.BoxLayout({ name: 'dock', vertical: true, reactive: true });
@@ -62,7 +82,13 @@ Dock.prototype = {
AppFavorites.getAppFavorites().connect('changed', Lang.bind(this, this._queueRedisplay));
this._tracker.connect('app-state-changed', Lang.bind(this, this._queueRedisplay));
Main.chrome.addActor(this.actor, { visibleInOverview: false });
Main.overview.connect('showing', Lang.bind(this, function() {
this.actor.hide();
}));
Main.overview.connect('hidden', Lang.bind(this, function() {
this.actor.show();
}));
Main.chrome.addActor(this.actor);
this.actor.lower_bottom();
},
@@ -119,8 +145,18 @@ Dock.prototype = {
let primary = global.get_primary_monitor();
let height = (icons)*(this._item_size + this._spacing) + 2*this._spacing;
this.actor.set_size(this._item_size + 4*this._spacing, height);
this.actor.set_position(primary.width-this._item_size-this._spacing-2, (primary.height-height)/2);
let width = (icons)*(this._item_size + this._spacing) + 2*this._spacing;
switch (position) {
case PositionMode.LEFT:
this.actor.set_size(this._item_size + 4*this._spacing, height);
this.actor.set_position(0-this._spacing-4, (primary.height-height)/2);
break;
case PositionMode.RIGHT:
default:
this.actor.set_size(this._item_size + 4*this._spacing, height);
this.actor.set_position(primary.width-this._item_size-this._spacing-2, (primary.height-height)/2);
}
},
_getPreferredWidth: function (grid, forHeight, alloc) {
@@ -141,6 +177,8 @@ Dock.prototype = {
let children = this._grid.get_children();
let x = box.x1 + this._spacing;
if (position == PositionMode.LEFT)
x = box.x1 + 2*this._spacing;
let y = box.y1 + this._spacing;
for (let i = 0; i < children.length; i++) {
@@ -191,9 +229,9 @@ DockIcon.prototype = {
x_fill: true,
y_fill: true });
this.actor._delegate = this;
this.actor.set_size(DOCKICON_SIZE, DOCKICON_SIZE);
this.actor.set_size(dockicon_size, dockicon_size);
this._icon = this.app.create_icon_texture(DOCKICON_SIZE);
this._icon = this.app.create_icon_texture(dockicon_size);
this.actor.set_child(this._icon);
this.actor.connect('clicked', Lang.bind(this, this._onClicked));
@@ -371,7 +409,14 @@ DockIconMenu.prototype = {
__proto__: AppDisplay.AppIconMenu.prototype,
_init: function(source) {
PopupMenu.PopupMenu.prototype._init.call(this, source.actor, St.Align.MIDDLE, St.Side.RIGHT, 0);
switch (position) {
case PositionMode.LEFT:
PopupMenu.PopupMenu.prototype._init.call(this, source.actor, St.Align.MIDDLE, St.Side.LEFT, 0);
break;
case PositionMode.RIGHT:
default:
PopupMenu.PopupMenu.prototype._init.call(this, source.actor, St.Align.MIDDLE, St.Side.RIGHT, 0);
}
this._source = source;

View File

@@ -0,0 +1,19 @@
<schemalist gettext-domain="gnome-shell-extensions">
<enum id='org.gnome.shell.extensions.dock.PositionMode'>
<value nick='left' value='0'/>
<value nick='right' value='1'/>
</enum>
<schema id="org.gnome.shell.extensions.dock" path="/org/gnome/shell/extensions/dock/">
<key name="position" enum="org.gnome.shell.extensions.dock.PositionMode">
<default>'right'</default>
<_summary>Position of the dock</_summary>
<_description>Sets the position of the dock in the screen. Allowed values are 'right' or 'left'</_description>
</key>
<key name="size" type="i">
<default>48</default>
<_summary>Icon size</_summary>
<_description>Sets icon size of the dock.</_description>
</key>
</schema>
</schemalist>

View File

@@ -0,0 +1,3 @@
EXTENSION_ID = drive-menu
include ../../extension.mk

View File

@@ -0,0 +1,98 @@
// Drive menu extension
const Gio = imports.gi.Gio;
const Lang = imports.lang;
const St = imports.gi.St;
const Shell = imports.gi.Shell;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const Main = imports.ui.main;
const Panel = imports.ui.panel;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
function DriveMenuItem(place) {
this._init(place);
}
DriveMenuItem.prototype = {
__proto__: PopupMenu.PopupBaseMenuItem.prototype,
_init: function(place) {
PopupMenu.PopupBaseMenuItem.prototype._init.call(this);
this.place = place;
this.label = new St.Label({ text: place.name });
this.addActor(this.label);
let ejectIcon = new St.Icon({ icon_name: 'media-eject',
icon_type: St.IconType.SYMBOLIC,
style_class: 'popup-menu-icon ' });
let ejectButton = new St.Button({ child: ejectIcon });
ejectButton.connect('clicked', Lang.bind(this, this._eject));
this.addActor(ejectButton);
},
_eject: function() {
this.place.remove();
},
activate: function(event) {
this.place.launch({ timestamp: event.get_time() });
PopupMenu.PopupBaseMenuItem.prototype.activate.call(this, event);
}
};
function DriveMenu() {
this._init();
}
DriveMenu.prototype = {
__proto__: PanelMenu.SystemStatusButton.prototype,
_init: function() {
// is 'media-eject' better?
PanelMenu.SystemStatusButton.prototype._init.call(this, 'media-optical');
this._manager = Main.placesManager;
this._manager.connect('mounts-updated', Lang.bind(this, this._update));
this._contentSection = new PopupMenu.PopupMenuSection();
this.menu.addMenuItem(this._contentSection);
this._update();
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
this.menu.addAction(_("Open file manager"), function(event) {
let appSystem = Shell.AppSystem.get_default();
let app = appSystem.get_app('nautilus.desktop');
app.activate(-1);
});
},
_update: function() {
this._contentSection.removeAll();
let mounts = this._manager.getMounts();
let any = false;
for (let i = 0; i < mounts.length; i++) {
if (mounts[i].isRemovable()) {
this._contentSection.addMenuItem(new DriveMenuItem(mounts[i]));
any = true;
}
}
this.actor.visible = any;
},
}
// Put your extension initialization code here
function main(metadata) {
imports.gettext.bindtextdomain('gnome-shell-extensions', metadata.localedir);
Panel.STANDARD_TRAY_ICON_ORDER.unshift('drive-menu');
Panel.STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION['drive-menu'] = DriveMenu;
}

View File

@@ -0,0 +1,8 @@
{
"uuid": "@uuid@",
"name": "Removable Drive Menu",
"description": "A status menu for accessing and unmounting removable devices",
"shell-version": [ "@shell_current@" ],
"localedir": "@LOCALEDIR@",
"url": "@url@"
}

View File

@@ -0,0 +1 @@
/* This extensions requires no custom styling */

View File

@@ -0,0 +1,3 @@
EXTENSION_ID = gajim
include ../../extension.mk

View File

@@ -0,0 +1,313 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
const DBus = imports.dbus;
const Gettext = imports.gettext.domain('gnome-shell');
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const Signals = imports.signals;
const St = imports.gi.St;
const Tp = imports.gi.TelepathyGLib;
const Main = imports.ui.main;
const Mainloop = imports.mainloop;
const MessageTray = imports.ui.messageTray;
const Shell = imports.gi.Shell;
const TelepathyClient = imports.ui.telepathyClient;
const _ = Gettext.gettext;
// http://ntt.cc/ext/base64-Encoding-Decoding.html
const keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function decode64(input) {
let output = "";
let chr1, chr2, chr3;
let enc1, enc2, enc3, enc4;
let i = 0;
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
do {
enc1 = keyStr.indexOf(input.charAt(i++));
enc2 = keyStr.indexOf(input.charAt(i++));
enc3 = keyStr.indexOf(input.charAt(i++));
enc4 = keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
chr1 = chr2 = chr3 = "";
enc1 = enc2 = enc3 = enc4 = "";
} while (i < input.length);
return unescape(output);
}
function wrappedText(text, sender, timestamp, direction) {
return {
messageType: Tp.ChannelTextMessageType.NORMAL,
text: text,
sender: sender,
timestamp: timestamp,
direction: direction
};
}
function Source(gajimClient, accountName, author, initialMessage) {
this._init(gajimClient, accountName, author, initialMessage);
}
Source.prototype = {
__proto__: MessageTray.Source.prototype,
_init: function(gajimClient, accountName, author, initialMessage) {
MessageTray.Source.prototype._init.call(this, author);
this.isChat = true;
this._author = author;
this._gajimClient = gajimClient;
this._accountName = accountName;
this._initialMessage = initialMessage;
this._iconUri = null;
this._presence = "online";
this._notification = new TelepathyClient.Notification(this);
this._notification.setUrgency(MessageTray.Urgency.HIGH);
let jid = author.split('/')[0];
let proxy = this._gajimClient.proxy();
proxy.contact_infoRemote(jid, Lang.bind(this, this._gotContactInfos));
this._statusChangeId = proxy.connect('ContactStatus',
Lang.bind(this, this._onStatusChange));
this._contactAbsenceId = proxy.connect('ContactAbsence',
Lang.bind(this, this._onStatusChange));
this._chatStateId = proxy.connect('ChatState',
Lang.bind(this, this._onChatState));
this._messageSentId = proxy.connect('MessageSent',
Lang.bind(this, this._messageSent));
this._newMessageId = proxy.connect('NewMessage',
Lang.bind(this, this._messageReceived));
},
destroy: function() {
let proxy = this._gajimClient.proxy();
proxy.disconnect(this._statusChangeId);
proxy.disconnect(this._contactAbsenceId);
proxy.disconnect(this._chatStateId);
proxy.disconnect(this._messageSentId);
proxy.disconnect(this._newMessageId);
MessageTray.Source.prototype.destroy.call(this);
},
_gotContactInfos: function(result, excp) {
this.title = result['FN'];
let avatarUri = null;
if (result['PHOTO']) {
let mimeType = result['PHOTO']['TYPE'];
let avatarData = decode64(result['PHOTO']['BINVAL']);
let sha = result['PHOTO']['SHA'];
avatarUri = this._gajimClient.cacheAvatar(mimeType, sha, avatarData);
}
this._iconUri = avatarUri;
this._setSummaryIcon(this.createNotificationIcon());
let message = wrappedText(this._initialMessage, this._author, null, TelepathyClient.NotificationDirection.RECEIVED);
this._notification.appendMessage(message, false);
if (!Main.messageTray.contains(this))
Main.messageTray.add(this);
this.notify(this._notification);
},
createNotificationIcon: function() {
let iconBox = new St.Bin({ style_class: 'avatar-box' });
iconBox._size = this.ICON_SIZE;
if (!this._iconUri) {
iconBox.child = new St.Icon({ icon_name: 'avatar-default',
icon_type: St.IconType.FULLCOLOR,
icon_size: iconBox._size });
} else {
let textureCache = St.TextureCache.get_default();
iconBox.child = textureCache.load_uri_async(this._iconUri, iconBox._size, iconBox._size);
}
return iconBox;
},
open: function(notification) {
// Lookup for the messages window and display it. In the case where it's not o
// opened yet fallback to the roster window.
let windows = global.get_window_actors();
for (let i = 0; i < windows.length; i++) {
let metaWindow = windows[i].metaWindow;
if (metaWindow.get_wm_class_instance() == "gajim" &&
metaWindow.get_role() == "messages") {
Main.activateWindow(metaWindow);
return;
}
}
let app = Shell.AppSystem.get_default().get_app('gajim.desktop');
app.activate_window(null, global.get_current_time());
},
_onChatState: function(emitter, data) {
let chatstate = data[1][5];
if (chatstate == 'gone')
this.destroy();
},
_messageReceived: function(emitter, data) {
let author = data[1][0];
let text = data[1][1];
if (text && (author == this._author)) {
let message = wrappedText(text, this._author, null, TelepathyClient.NotificationDirection.RECEIVED);
this._notification.appendMessage(message, false);
this.notify(this._notification);
}
},
_messageSent: function(emitter, data) {
let text = data[1][1];
let chatstate = data[1][3];
if (text) {
let message = wrappedText(text, this._author, null, TelepathyClient.NotificationDirection.SENT);
this._notification.appendMessage(message, false);
} else if (chatstate == 'gone')
this.destroy();
},
notify: function() {
MessageTray.Source.prototype.notify.call(this, this._notification);
},
respond: function(text) {
let jid = this._author;
let keyID = ""; // unencrypted.
this._gajimClient.proxy().send_chat_messageRemote(jid, text, keyID, this._accountName);
},
_onStatusChange: function(emitter, data) {
if (!this.title)
return;
let jid = data[1][0];
let presence = data[1][1];
let message = data[1][2];
if (jid != this._author.split('/')[0])
return;
let presenceMessage, shouldNotify, title;
title = GLib.markup_escape_text(this.title, -1);
if (presence == "away") {
presenceMessage = _("%s is away.").format(title);
shouldNotify = false;
} else if (presence == "offline") {
presenceMessage = _("%s is offline.").format(title);
shouldNotify = (this._presence != "offline");
} else if (presence == "online") {
presenceMessage = _("%s is online.").format(title);
shouldNotify = (this._presence == "offline");
} else if (presence == "dnd") {
presenceMessage = _("%s is busy.").format(title);
shouldNotify = false;
} else
return;
this._presence = presence;
if (message)
presenceMessage += ' <i>(' + GLib.markup_escape_text(message, -1) + ')</i>';
this._notification.appendPresence(presenceMessage, shouldNotify);
if (shouldNotify)
this.notify(this._notification);
}
};
const GajimIface = {
name: 'org.gajim.dbus.RemoteInterface',
properties: [],
methods: [{ name: 'send_chat_message', inSignature: 'ssss', outSignature: 'b'},
{ name: 'contact_info', inSignature: 's', outSignature: 'a{sv}'}],
signals: [{ name: 'NewMessage', inSignature: 'av' },
{ name: 'ChatState', inSignature: 'av' },
{ name: 'ContactStatus', inSignature: 'av' },
{ name: 'ContactAbsence', inSignature: 'av' },
{ name: 'MessageSent', inSignature: 'av' }]
};
let Gajim = DBus.makeProxyClass(GajimIface);
function GajimClient() {
this._init();
}
GajimClient.prototype = {
_init: function() {
this._sources = {};
this._cacheDir = GLib.get_user_cache_dir() + '/gnome-shell/gajim-avatars';
GLib.mkdir_with_parents(this._cacheDir, 0x1c0); // 0x1c0 = octal 0700
this._proxy = new Gajim(DBus.session, 'org.gajim.dbus', '/org/gajim/dbus/RemoteObject');
this._proxy.connect('NewMessage', Lang.bind(this, this._messageReceived));
},
proxy : function() {
return this._proxy;
},
_messageReceived : function(emitter, data) {
let author = data[1][0];
let message = data[1][1];
let account = data[0];
let source = this._sources[author];
if (!source) {
source = new Source(this, account, author, message);
source.connect('destroy', Lang.bind(this,
function() {
delete this._sources[author];
}));
this._sources[author] = source;
}
},
cacheAvatar : function(mimeType, sha, avatarData) {
let ext = mimeType.split('/')[1];
let file = this._cacheDir + '/' + sha + '.' + ext;
let uri = GLib.filename_to_uri(file, null);
if (GLib.file_test(file, GLib.FileTest.EXISTS))
return uri;
let success = false;
try {
success = GLib.file_set_contents(file, avatarData, avatarData.length);
} catch (e) {
logError(e, 'Error caching avatar data');
}
return uri;
}
};
function main() {
let client = new GajimClient();
}

View File

@@ -0,0 +1,8 @@
{
"uuid": "@uuid@",
"name": "Gajim IM integration",
"description": "Display Gajim incoming chats as notifications in the Shell message tray.",
"shell-version": [ "@shell_current@" ],
"localedir": "@LOCALEDIR@",
"url": "http://base-art.net"
}

View File

View File

@@ -0,0 +1,14 @@
EXTENSION_ID = native-window-placement
include ../../extension.mk
gschemas_in = org.gnome.shell.extensions.native-window-placement.gschema.xml.in
@INTLTOOL_XML_NOMERGE_RULE@
gsettings_SCHEMAS = $(gschemas_in:.xml.in=.xml)
@GSETTINGS_RULES@
CLEANFILES += $(gschemas_in:.xml.in=.valid) $(gsettings_SCHEMAS)
EXTRA_DIST += $(gschemas_in)

View File

@@ -0,0 +1,493 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// import just everything from workspace.js:
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
const Lang = imports.lang;
const Mainloop = imports.mainloop;
const Meta = imports.gi.Meta;
const Pango = imports.gi.Pango;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const Signals = imports.signals;
const DND = imports.ui.dnd;
const Lightbox = imports.ui.lightbox;
const Main = imports.ui.main;
const Overview = imports.ui.overview;
const Panel = imports.ui.panel;
const Tweener = imports.ui.tweener;
const Workspace = imports.ui.workspace;
const WindowPositionFlags = Workspace.WindowPositionFlags;
const WindowPlacementStrategy = {
NATURAL: 0,
GRID: 1,
};
// testing settings for natural window placement strategy:
const WINDOW_PLACEMENT_NATURAL_FILLGAPS = true; // enlarge windows at the end to fill gaps // not implemented yet
const WINDOW_PLACEMENT_NATURAL_GRID_FALLBACK = true; // fallback to grid mode if all windows have the same size and positions. // not implemented yet
const WINDOW_PLACEMENT_NATURAL_ACCURACY = 20; // accuracy of window translate moves (KDE-default: 20)
const WINDOW_PLACEMENT_NATURAL_GAPS = 5; // half of the minimum gap between windows
const WINDOW_PLACEMENT_NATURAL_MAX_TRANSLATIONS = 5000; // safety limit for preventing endless loop if something is wrong in the algorithm
const PLACE_WINDOW_CAPTIONS_ON_TOP = true; // place window titles in overview on top of windows with overlap parameter
function injectToFunction(parent, name, func) {
let origin = parent[name];
parent[name] = function() {
let ret;
ret = origin.apply(this, arguments);
if (ret === undefined)
ret = func.apply(this, arguments);
return ret;
}
}
function Rect(x, y, width, height) {
[this.x, this.y, this.width, this.height] = arguments;
}
Rect.prototype = {
/**
* used in _calculateWindowTransformationsNatural to replace Meta.Rectangle that is too slow.
*/
copy: function() {
return new Rect(this.x, this.y, this.width, this.height);
},
union: function(rect2) {
let dest = this.copy();
if (rect2.x < dest.x)
{
dest.width += dest.x - rect2.x;
dest.x = rect2.x;
}
if (rect2.y < dest.y)
{
dest.height += dest.y - rect2.y;
dest.y = rect2.y;
}
if (rect2.x + rect2.width > dest.x + dest.width)
dest.width = rect2.x + rect2.width - dest.x;
if (rect2.y + rect2.height > dest.y + dest.height)
dest.height = rect2.y + rect2.height - dest.y;
return dest;
},
adjusted: function(dx, dy, dx2, dy2) {
let dest = this.copy();
dest.x += dx;
dest.y += dy;
dest.width += -dx + dx2;
dest.height += -dy + dy2;
return dest;
},
overlap: function(rect2) {
return !((this.x + this.width <= rect2.x) ||
(rect2.x + rect2.width <= this.x) ||
(this.y + this.height <= rect2.y) ||
(rect2.y + rect2.height <= this.y));
},
center: function() {
return [this.x + this.width / 2, this.y + this.height / 2];
},
translate: function(dx, dy) {
this.x += dx;
this.y += dy;
}
};
// Put your extension initialization code here
function main() {
let settings = new Gio.Settings({ schema: 'org.gnome.shell.extensions.native-window-placement' });
let placementStrategy = settings.get_enum('strategy');
settings.connect('changed::strategy', function() {
placementStrategy = settings.get_enum('strategy');
// we don't update immediately, we wait for a relayout
// (and hope for the best)
});
let useMoreScreen = settings.get_boolean('use-more-screen');
settings.connect('changed::use-more-screen', function() {
useMoreScreen = settings.get_boolean('use-more-screen');
});
/**
* _calculateWindowTransformationsNatural:
* @clones: Array of #MetaWindow
*
* Returns clones with matching target coordinates and scales to arrange windows in a natural way that no overlap exists and relative window size is preserved.
* This function is almost a 1:1 copy of the function
* PresentWindowsEffect::calculateWindowTransformationsNatural() from KDE, see:
* https://projects.kde.org/projects/kde/kdebase/kde-workspace/repository/revisions/master/entry/kwin/effects/presentwindows/presentwindows.cpp
*/
Workspace.Workspace.prototype._calculateWindowTransformationsNatural = function(clones) {
// As we are using pseudo-random movement (See "slot") we need to make sure the list
// is always sorted the same way no matter which window is currently active.
clones = clones.sort(function (win1, win2) {
return win2.metaWindow.get_stable_sequence() - win1.metaWindow.get_stable_sequence();
});
// 2 * 10 px gaps at the border
let area = new Rect(this._x + 10, this._y + 10, this._width - 20, this._height - 20);
let bounds = area.copy();
let direction = 0;
let directions = [];
let rects = [];
for (let i = 0; i < clones.length; i++) {
// save rectangles into 4-dimensional arrays representing two corners of the rectangular: [left_x, top_y, right_x, bottom_y]
let rect = clones[i].metaWindow.get_outer_rect();
rects[i] = new Rect(rect.x, rect.y, rect.width, rect.height);
bounds = bounds.union(rects[i]);
// This is used when the window is on the edge of the screen to try to use as much screen real estate as possible.
directions[i] = direction;
direction++;
if (direction == 4) {
direction = 0;
}
}
let loop_counter = 0;
let overlap;
do {
overlap = false;
for (let i = 0; i < rects.length; i++) {
for (let j = 0; j < rects.length; j++) {
if (i != j && rects[i].adjusted(-WINDOW_PLACEMENT_NATURAL_GAPS, -WINDOW_PLACEMENT_NATURAL_GAPS,
WINDOW_PLACEMENT_NATURAL_GAPS, WINDOW_PLACEMENT_NATURAL_GAPS).overlap(
rects[j].adjusted(-WINDOW_PLACEMENT_NATURAL_GAPS, -WINDOW_PLACEMENT_NATURAL_GAPS,
WINDOW_PLACEMENT_NATURAL_GAPS, WINDOW_PLACEMENT_NATURAL_GAPS))) {
loop_counter++;
overlap = true;
// TODO: something like a Point2D would be nicer here:
// Determine pushing direction
let i_center = rects[i].center();
let j_center = rects[j].center();
let diff = [j_center[0] - i_center[0], j_center[1] - i_center[1]];
// Prevent dividing by zero and non-movement
if (diff[0] == 0 && diff[1] == 0)
diff[0] = 1;
// Try to keep screen/workspace aspect ratio
if ( bounds.height / bounds.width > area.height / area.width )
diff[0] *= 2;
else
diff[1] *= 2;
// Approximate a vector of between 10px and 20px in magnitude in the same direction
let length = Math.sqrt(diff[0] * diff[0] + diff[1] * diff[1]);
diff[0] = diff[0] * WINDOW_PLACEMENT_NATURAL_ACCURACY / length;
diff[1] = diff[1] * WINDOW_PLACEMENT_NATURAL_ACCURACY / length;
// Move both windows apart
rects[i].translate(-diff[0], -diff[1]);
rects[j].translate(diff[0], diff[1]);
if (useMoreScreen) {
// Try to keep the bounding rect the same aspect as the screen so that more
// screen real estate is utilised. We do this by splitting the screen into nine
// equal sections, if the window center is in any of the corner sections pull the
// window towards the outer corner. If it is in any of the other edge sections
// alternate between each corner on that edge. We don't want to determine it
// randomly as it will not produce consistant locations when using the filter.
// Only move one window so we don't cause large amounts of unnecessary zooming
// in some situations. We need to do this even when expanding later just in case
// all windows are the same size.
// (We are using an old bounding rect for this, hopefully it doesn't matter)
let xSection = Math.round((rects[i].x - bounds.x) / (bounds.width / 3));
let ySection = Math.round((rects[i].y - bounds.y) / (bounds.height / 3));
let i_center = rects[i].center();
diff[0] = 0;
diff[1] = 0;
if (xSection != 1 || ySection != 1) { // Remove this if you want the center to pull as well
if (xSection == 1)
xSection = (directions[i] / 2 ? 2 : 0);
if (ySection == 1)
ySection = (directions[i] % 2 ? 2 : 0);
}
if (xSection == 0 && ySection == 0) {
diff[0] = bounds.x - i_center[0];
diff[1] = bounds.y - i_center[1];
}
if (xSection == 2 && ySection == 0) {
diff[0] = bounds.x + bounds.width - i_center[0];
diff[1] = bounds.y - i_center[1];
}
if (xSection == 2 && ySection == 2) {
diff[0] = bounds.x + bounds.width - i_center[0];
diff[1] = bounds.y + bounds.height - i_center[1];
}
if (xSection == 0 && ySection == 2) {
diff[0] = bounds.x - i_center[0];
diff[1] = bounds.y + bounds.height - i_center[1];
}
if (diff[0] != 0 || diff[1] != 0) {
let length = Math.sqrt(diff[0]*diff[0] + diff[1]*diff[1]);
diff[0] *= WINDOW_PLACEMENT_NATURAL_ACCURACY / length / 2; // /2 to make it less influencing than the normal center-move above
diff[1] *= WINDOW_PLACEMENT_NATURAL_ACCURACY / length / 2;
rects[i].translate(diff[0], diff[1]);
}
}
// Update bounding rect
bounds = bounds.union(rects[i]);
bounds = bounds.union(rects[j]);
}
}
}
} while (overlap && loop_counter < WINDOW_PLACEMENT_NATURAL_MAX_TRANSLATIONS);
// Work out scaling by getting the most top-left and most bottom-right window coords.
// The 20's and 10's are so that the windows don't touch the edge of the screen.
// Most 20's and 10's are already calculated into area now.
let scale;
scale = Math.min(area.width / bounds.width,
area.height / bounds.height,
1.0);
// Make bounding rect fill the screen size for later steps
bounds.x = bounds.x - (area.width - bounds.width * scale) / 2 - 10 / scale;
bounds.y = bounds.y - (area.height - bounds.height * scale) / 2 - 10 / scale;
bounds.width = area.width / scale;
bounds.height = area.height / scale;
// Move all windows back onto the screen and set their scale
for (let i = 0; i < rects.length; i++) {
rects[i].translate(-bounds.x, -bounds.y);
}
// TODO: Implement the KDE part "Try to fill the gaps by enlarging windows if they have the space" here. (If this is wanted)
// rescale to workspace
let scales = [];
let buttonOuterHeight, captionHeight;
let buttonOuterWidth = 0;
let targets = [];
for (let i = 0; i < rects.length; i++) {
rects[i].x = rects[i].x * scale + this._x;
rects[i].y = rects[i].y * scale + this._y;
targets[i] = [rects[i].x, rects[i].y, scale];
}
return [clones, targets];
},
/**
* _calculateWindowTransformationsGrid:
* @clones: Array of #MetaWindow
*
* Returns clones with matching target coordinates and scales to arrange windows in a grid.
*/
Workspace.Workspace.prototype._calculateWindowTransformationsGrid = function(clones) {
let slots = this._computeAllWindowSlots(clones.length);
clones = this._orderWindowsByMotionAndStartup(clones, slots);
let targets = [];
for (let i = 0; i < clones.length; i++) {
targets[i] = this._computeWindowLayout(clones[i].metaWindow, slots[i]);
}
return [clones, targets];
}
/**
* positionWindows:
* @flags:
* INITIAL - this is the initial positioning of the windows.
* ANIMATE - Indicates that we need animate changing position.
*/
Workspace.Workspace.prototype.positionWindows = function(flags) {
if (this._repositionWindowsId > 0) {
Mainloop.source_remove(this._repositionWindowsId);
this._repositionWindowsId = 0;
}
let clones = this._windows.slice();
if (this._reservedSlot)
clones.push(this._reservedSlot);
let initialPositioning = flags & WindowPositionFlags.INITIAL;
let animate = flags & WindowPositionFlags.ANIMATE;
// Start the animations
let targets = [];
let scales = [];
switch (placementStrategy) {
case WindowPlacementStrategy.NATURAL:
[clones, targets] = this._calculateWindowTransformationsNatural(clones);
break;
default:
log ('Invalid window placement strategy');
placementStrategy = WindowPlacementStrategy.GRID;
case WindowPlacementStrategy.GRID:
[clones, targets] = this._calculateWindowTransformationsGrid(clones);
break;
}
let currentWorkspace = global.screen.get_active_workspace();
let isOnCurrentWorkspace = this.metaWorkspace == null || this.metaWorkspace == currentWorkspace;
for (let i = 0; i < clones.length; i++) {
let clone = clones[i];
let [x, y , scale] = targets[i];
let metaWindow = clone.metaWindow;
let mainIndex = this._lookupIndex(metaWindow);
let overlay = this._windowOverlays[mainIndex];
// Positioning a window currently being dragged must be avoided;
// we'll just leave a blank spot in the layout for it.
if (clone.inDrag)
continue;
if (overlay)
overlay.hide();
if (animate && isOnCurrentWorkspace) {
if (!metaWindow.showing_on_its_workspace()) {
/* Hidden windows should fade in and grow
* therefore we need to resize them now so they
* can be scaled up later */
if (initialPositioning) {
clone.actor.opacity = 0;
clone.actor.scale_x = 0;
clone.actor.scale_y = 0;
clone.actor.x = x;
clone.actor.y = y;
}
// Make the window slightly transparent to indicate it's hidden
Tweener.addTween(clone.actor,
{ opacity: 255,
time: Overview.ANIMATION_TIME,
transition: 'easeInQuad'
});
}
Tweener.addTween(clone.actor,
{ x: x,
y: y,
scale_x: scale,
scale_y: scale,
time: Overview.ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: Lang.bind(this, function() {
this._showWindowOverlay(clone, overlay, true);
})
});
} else {
clone.actor.set_position(x, y);
clone.actor.set_scale(scale, scale);
this._showWindowOverlay(clone, overlay, isOnCurrentWorkspace);
}
}
}
/// position window titles on top of windows in overlay ////
if (settings.get_boolean('window-captions-on-top')) {
Workspace.WindowOverlay.prototype._init = function(windowClone, parentActor) {
let metaWindow = windowClone.metaWindow;
this._windowClone = windowClone;
this._parentActor = parentActor;
this._hidden = false;
let title = new St.Label({ style_class: 'window-caption',
text: metaWindow.title });
title.clutter_text.ellipsize = Pango.EllipsizeMode.END;
title._spacing = 0;
title._overlap = 0;
this._updateCaptionId = metaWindow.connect('notify::title', Lang.bind(this, function(w) {
this.title.text = w.title;
}));
let button = new St.Button({ style_class: 'window-close' });
button._overlap = 0;
this._idleToggleCloseId = 0;
button.connect('clicked', Lang.bind(this, this._closeWindow));
windowClone.actor.connect('destroy', Lang.bind(this, this._onDestroy));
windowClone.actor.connect('enter-event', Lang.bind(this, this._onEnter));
windowClone.actor.connect('leave-event', Lang.bind(this, this._onLeave));
this._windowAddedId = 0;
windowClone.connect('zoom-start', Lang.bind(this, this.hide));
windowClone.connect('zoom-end', Lang.bind(this, this.show));
button.hide();
this.title = title;
this.closeButton = button;
parentActor.add_actor(this.title);
parentActor.add_actor(this.closeButton);
title.connect('style-changed', Lang.bind(this, this._onStyleChanged));
button.connect('style-changed', Lang.bind(this, this._onStyleChanged));
// force a style change if we are already on a stage - otherwise
// the signal will be emitted normally when we are added
if (parentActor.get_stage())
this._onStyleChanged();
},
Workspace.WindowOverlay.prototype.chromeHeights = function () {
return [Math.max( this.closeButton.height - this.closeButton._overlap, this.title.height - this.title._overlap),
0];
},
Workspace.WindowOverlay.prototype.updatePositions = function(cloneX, cloneY, cloneWidth, cloneHeight) {
let button = this.closeButton;
let title = this.title;
let buttonX;
let buttonY = cloneY - (button.height - button._overlap);
if (St.Widget.get_default_direction() == St.TextDirection.RTL)
buttonX = cloneX - (button.width - button._overlap);
else
buttonX = cloneX + (cloneWidth - button._overlap);
button.set_position(Math.floor(buttonX), Math.floor(buttonY));
if (!title.fullWidth)
title.fullWidth = title.width;
title.width = Math.min(title.fullWidth, cloneWidth);
let titleX = cloneX + (cloneWidth - title.width) / 2;
let titleY = cloneY - title.height + title._overlap;
title.set_position(Math.floor(titleX), Math.floor(titleY));
},
Workspace.WindowOverlay.prototype._onStyleChanged = function() {
let titleNode = this.title.get_theme_node();
this.title._spacing = titleNode.get_length('-shell-caption-spacing');
this.title._overlap = titleNode.get_length('-shell-caption-overlap');
let closeNode = this.closeButton.get_theme_node();
this.closeButton._overlap = closeNode.get_length('-shell-close-overlap');
this._parentActor.queue_relayout();
}
}
}

View File

@@ -0,0 +1,9 @@
{
"uuid": "@uuid@",
"name": "Native Window Placement",
"description": "Arrange windows in overview in a more native way",
"shell-version": [ "@shell_current@" ],
"localedir": "@LOCALEDIR@",
"url": "@url@",
"original-authors": [ "wepmaschda@gmx.de" ]
}

View File

@@ -0,0 +1,26 @@
<schemalist gettext-domain="gnome-shell-extensions">
<enum id="org.gnome.shell.extensions.native-window-placement.strategy">
<value nick="natural" value="0" />
<value nick="grid" value="1" />
</enum>
<schema id="org.gnome.shell.extensions.native-window-placement" path="/org/gnome/shell/extensions/native-window-placement/">
<key name="strategy" enum="org.gnome.shell.extensions.native-window-placement.strategy">
<default>'natural'</default>
<_summary>Window placement strategy</_summary>
<_description>The algorithm used to layout thumbnails in the overview. 'grid' to use the default grid based algorithm,
'natural' to use another one that reflects more the position and size of the actual window</_description>
</key>
<key name="use-more-screen" type="b">
<default>true</default>
<_summary>Use more screen for windows</_summary>
<_description>Try to use more screen for placing window thumbnails by adapting to screen aspect ratio, and consolidating
them further to reduce the bounding box. This setting applies only with the natural placement strategy.</_description>
</key>
<key name="window-captions-on-top" type="b">
<default>true</default>
<_summary>Place window captions on top</_summary>
<_description>If true, place window captions on top the respective thumbnail, overriding shell default of placing it at
the bottom. Changing this setting requires restarting the shell to have any effect.</_description>
</key>
</schema>
</schemalist>

View File

@@ -0,0 +1,4 @@
.window-caption {
color: red;
-shell-caption-overlap: 10px;
}

View File

@@ -0,0 +1,3 @@
EXTENSION_ID = places-menu
include ../../extension.mk

View File

@@ -0,0 +1,121 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
const Gdk = imports.gi.Gdk;
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const Panel = imports.ui.panel;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const PLACE_ICON_SIZE = 22;
function PlacesMenu() {
this._init.apply(this, arguments);
}
PlacesMenu.prototype = {
__proto__: PanelMenu.SystemStatusButton.prototype,
_init: function() {
PanelMenu.SystemStatusButton.prototype._init.call(this, 'folder');
this.defaultItems = [];
this.bookmarkItems = [];
this.deviceItems = [];
this._createDefaultPlaces();
this._bookmarksSection = new PopupMenu.PopupMenuSection();
this.menu.addMenuItem(this._bookmarksSection);
this._createBookmarks();
this._devicesMenuItem = new PopupMenu.PopupSubMenuMenuItem('Removable Devices');
this.menu.addMenuItem(this._devicesMenuItem);
this._createDevices();
Main.placesManager.connect('bookmarks-updated',Lang.bind(this,this._redisplayBookmarks));
Main.placesManager.connect('mounts-updated',Lang.bind(this,this._redisplayDevices));
},
_redisplayBookmarks: function(){
this._clearBookmarks();
this._createBookmarks();
},
_redisplayDevices: function(){
this._clearDevices();
this._createDevices();
},
_createDefaultPlaces : function() {
this.defaultPlaces = Main.placesManager.getDefaultPlaces();
for (let placeid = 0; placeid < this.defaultPlaces.length; placeid++) {
this.defaultItems[placeid] = new PopupMenu.PopupMenuItem(_(this.defaultPlaces[placeid].name));
let icon = this.defaultPlaces[placeid].iconFactory(PLACE_ICON_SIZE);
this.defaultItems[placeid].addActor(icon, { align: St.Align.END});
this.defaultItems[placeid].place = this.defaultPlaces[placeid];
this.menu.addMenuItem(this.defaultItems[placeid]);
this.defaultItems[placeid].connect('activate', function(actor,event) {
actor.place.launch();
});
}
},
_createBookmarks : function() {
this.bookmarks = Main.placesManager.getBookmarks();
for (let bookmarkid = 0; bookmarkid < this.bookmarks.length; bookmarkid++) {
this.bookmarkItems[bookmarkid] = new PopupMenu.PopupMenuItem(_(this.bookmarks[bookmarkid].name));
let icon = this.bookmarks[bookmarkid].iconFactory(PLACE_ICON_SIZE);
this.bookmarkItems[bookmarkid].addActor(icon, { align: St.Align.END});
this.bookmarkItems[bookmarkid].place = this.bookmarks[bookmarkid];
this._bookmarksSection.addMenuItem(this.bookmarkItems[bookmarkid]);
this.bookmarkItems[bookmarkid].connect('activate', function(actor,event) {
actor.place.launch();
});
}
},
_createDevices : function() {
this.devices = Main.placesManager.getMounts();
for (let devid = 0; devid < this.devices.length; devid++) {
this.deviceItems[devid] = new PopupMenu.PopupMenuItem(_(this.devices[devid].name));
let icon = this.devices[devid].iconFactory(PLACE_ICON_SIZE);
this.deviceItems[devid].addActor(icon, { align: St.Align.END});
this.deviceItems[devid].place = this.devices[devid];
this._devicesMenuItem.menu.addMenuItem(this.deviceItems[devid]);
this.deviceItems[devid].connect('activate', function(actor,event) {
actor.place.launch();
});
}
if (this.devices.length == 0)
this._devicesMenuItem.actor.hide();
else
this._devicesMenuItem.actor.show();
},
_clearBookmarks : function(){
this._bookmarksSection.removeAll();
this.bookmarkItems = [];
},
_clearDevices : function(){
this._devicesMenuItem.menu.removeAll();
this.DeviceItems = [];
},
};
function main(metadata) {
imports.gettext.bindtextdomain('gnome-shell-extensions', metadata.localedir);
Panel.STANDARD_TRAY_ICON_ORDER.unshift('places-menu');
Panel.STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION['places-menu'] = PlacesMenu;
}

View File

@@ -0,0 +1,8 @@
{
"uuid": "@uuid@",
"name": "Places Status Indicator",
"description": "Add a systems status menu for quickly navigating places in the system",
"shell-version": [ "@shell_current@" ],
"localedir": "@LOCALEDIR@",
"url": "@url@"
}

View File

@@ -0,0 +1 @@
/* none used*/

View File

@@ -0,0 +1,3 @@
EXTENSION_ID = systemMonitor
include ../../extension.mk

View File

@@ -0,0 +1,133 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
const Clutter = imports.gi.Clutter;
const GTop = imports.gi.GTop;
const Lang = imports.lang;
const Mainloop = imports.mainloop;
const St = imports.gi.St;
const Shell = imports.gi.Shell;
const Main = imports.ui.main;
function Indicator() {
this._init();
}
Indicator.prototype = {
_init: function() {
this._initValues();
this.actor = new St.DrawingArea({ style_class: "extension-systemMonitor-indicator-area",
reactive: true});
this.actor.connect('repaint', Lang.bind(this, this._draw));
this.actor.connect('button-press-event', function() {
let app = Shell.AppSystem.get_default().get_app("gnome-system-monitor.desktop");
app.open_new_window(-1);
});
Mainloop.timeout_add(250, Lang.bind(this, function () {
this._updateValues();
this.actor.queue_repaint();
return true;
}));
},
_initValues: function() {
},
_updateValues: function() {
},
_draw: function(area) {
let [width, height] = area.get_surface_size();
let themeNode = this.actor.get_theme_node();
let cr = area.get_context();
for (let i = this.values.length - 1; i >= 0; i--) {
let color = themeNode.get_color(this.values[i].color);
cr.moveTo(0, height);
let k;
for (k = 0; k < this.values[i].values.length; k++) {
cr.lineTo(k, (1 - this.values[i].values[k]) * height);
}
if (k > width)
this.values[i].values.shift();
cr.lineTo(k, height);
cr.lineTo(0, height);
cr.closePath();
Clutter.cairo_set_source_color(cr, color);
cr.fill();
}
}
};
function CpuIndicator() {
this._init();
}
CpuIndicator.prototype = {
__proto__: Indicator.prototype,
_initValues: function() {
this._prev = new GTop.glibtop_cpu;
GTop.glibtop_get_cpu(this._prev);
this.values = [];
this.values.push({color: "-cpu-user-color", values: []});
this.values.push({color: "-cpu-sys-color", values: []});
this.values.push({color: "-cpu-iowait-color", values: []});
},
_updateValues: function() {
let cpu = new GTop.glibtop_cpu;
let t = 0.0;
GTop.glibtop_get_cpu(cpu);
let total = cpu.total - this._prev.total;
let user = cpu.user - this._prev.user;
let sys = cpu.sys - this._prev.sys;
let iowait = cpu.iowait - this._prev.iowait;
t = user / total;
this.values[0].values.push(t);
t += sys / total;
this.values[1].values.push(t);
t += iowait / total;
this.values[2].values.push(t);
this._prev = cpu;
}
};
function MemoryIndicator() {
this._init();
}
MemoryIndicator.prototype = {
__proto__: Indicator.prototype,
_initValues: function() {
this.mem = new GTop.glibtop_mem;
this.values = [];
this.values.push({ color: "-mem-user-color", values: [] });
this.values.push({ color: "-mem-other-color", values: [] });
this.values.push({ color: "-mem-cached-color", values: [] });
},
_updateValues: function() {
GTop.glibtop_get_mem(this.mem);
let t = this.mem.user / this.mem.total;
this.values[0].values.push(t);
t += (this.mem.used - this.mem.user - this.mem.cached) / this.mem.total;
this.values[1].values.push(t);
t += this.mem.cached / this.mem.total;
this.values[2].values.push(t);
}
};
function main() {
let box = new St.BoxLayout({ style_class: 'extension-systemMonitor-container' });
box.add((new CpuIndicator()).actor);
box.add((new MemoryIndicator()).actor);
Main.messageTray.actor.add_actor(box);
}

View File

@@ -0,0 +1,9 @@
{
"shell-version": ["@shell_current@"],
"uuid": "@uuid@",
"localedir": "@LOCALEDIR@",
"original-author": "zaspire@rambler.ru",
"name": "SystemMonitor",
"description": "System Monitor",
"url": "@url@"
}

View File

@@ -0,0 +1,16 @@
.extension-systemMonitor-container {
spacing: 5px;
}
.extension-systemMonitor-indicator-area {
border: 1px solid #000;
width: 100px;
height: 34px;
-cpu-user-color: #f00;
-cpu-sys-color: #0f0;
-cpu-iowait-color: #00f;
-mem-user-color: #ff0;
-mem-cached-color: #0ff;
-mem-other-color: #111;
background-color: #fff;
}

View File

@@ -0,0 +1,14 @@
EXTENSION_ID = user-theme
include ../../extension.mk
gschemas_in = org.gnome.shell.extensions.user-theme.gschema.xml.in
@INTLTOOL_XML_NOMERGE_RULE@
gsettings_SCHEMAS = $(gschemas_in:.xml.in=.xml)
@GSETTINGS_RULES@
CLEANFILES += $(gschemas_in:.xml.in=.valid) $(gsettings_SCHEMAS)
EXTRA_DIST += $(gschemas_in)

View File

@@ -0,0 +1,57 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// Load shell theme from ~/.themes/name/gnome-shell
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;
const Lang = imports.lang;
const Main = imports.ui.main;
const SETTINGS_SCHEMA = 'org.gnome.shell.extensions.user-theme';
const SETTINGS_KEY = 'name';
function ThemeManager() {
this._init();
}
ThemeManager.prototype = {
_init: function() {
this._settings = new Gio.Settings({ schema: SETTINGS_SCHEMA });
this._settings.connect('changed::'+SETTINGS_KEY, Lang.bind(this, this._changeTheme));
this._changeTheme();
},
_changeTheme: function() {
let _stylesheet = null;
let _themeName = this._settings.get_string(SETTINGS_KEY);
if (_themeName) {
let _userCssStylesheet = GLib.get_home_dir() + '/.themes/' + _themeName + '/gnome-shell/gnome-shell.css';
let file = Gio.file_new_for_path(_userCssStylesheet);
if (file.query_exists(null))
_stylesheet = _userCssStylesheet;
else {
let sysdirs = GLib.get_system_data_dirs();
for (let i = 0; i < sysdirs.length; i++) {
_userCssStylesheet = sysdirs[i] + '/themes/' + _themeName + '/gnome-shell/gnome-shell.css';
let file = Gio.file_new_for_path(_userCssStylesheet);
if (file.query_exists(null)) {
_stylesheet = _userCssStylesheet;
break;
}
}
}
}
if (_stylesheet)
global.log('loading user theme: ' + _stylesheet);
else
global.log('loading default theme (Adwaita)');
Main.setThemeStylesheet(_stylesheet);
Main.loadTheme();
}
}
function main(metadata) {
new ThemeManager();
}

View File

@@ -0,0 +1,9 @@
{
"uuid": "@uuid@",
"name": "User Themes",
"description": "Load shell themes from user directory",
"shell-version": [ "@shell_current@" ],
"localedir": "@LOCALEDIR@",
"original-authors": [ "john.stowers@gmail.com" ],
"url": "@url@"
}

View File

@@ -0,0 +1,9 @@
<schemalist gettext-domain="gnome-shell-extensions">
<schema id="org.gnome.shell.extensions.user-theme" path="/org/gnome/shell/extensions/user-theme/">
<key name="name" type="s">
<default>""</default>
<_summary>Theme name</_summary>
<_description>The name of the theme, to be loaded from ~/.themes/name/gnome-shell</_description>
</key>
</schema>
</schemalist>

View File

View File

@@ -45,9 +45,10 @@ function main() {
Workspace.Workspace.prototype.showTooltip = function() {
if (this._tip == null)
return;
if (this.parent)
return;
this.actor.add_actor(this._tip);
this._tip.text = (this.metaWorkspace.index() + 1).toString();
this._tip.x = this._x;
this._tip.y = this._y;
this._tip.show();
this._tip.raise_top();
}
Workspace.Workspace.prototype.hideTooltip = function() {
@@ -55,7 +56,7 @@ function main() {
return;
if (!this._tip.get_parent())
return;
this.actor.remove_actor(this._tip);
this._tip.hide();
}
Workspace.Workspace.prototype.getWindowWithTooltip = function(id) {
for (let i in this._windowOverlays) {
@@ -80,7 +81,8 @@ function main() {
}
WorkspacesView.WorkspacesView.prototype._hideTooltips = function() {
global.stage.set_key_focus(this._prevFocusActor);
if (global.stage.get_key_focus() == global.stage)
global.stage.set_key_focus(this._prevFocusActor);
this._pickWindow = false;
for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].hideWindowsTooltips();
@@ -153,7 +155,7 @@ function main() {
injectToFunction(Workspace.WindowOverlay.prototype, '_init', function(windowClone, parentActor) {
this._id = null;
this._text = new St.Label({ style_class: 'window-tooltip' });
this._text = new St.Label({ style_class: 'extension-windowsNavigator-window-tooltip' });
this._text.hide();
parentActor.add_actor(this._text);
});
@@ -164,9 +166,11 @@ function main() {
this._text.raise_top();
});
injectToFunction(Workspace.Workspace.prototype, '_init', function(metaWorkspace) {
if (metaWorkspace.index() < 9) {
this._tip = new St.Label({ style_class: 'window-tooltip',
text: (metaWorkspace.index() + 1).toString() });
if (metaWorkspace && metaWorkspace.index() < 9) {
this._tip = new St.Label({ style_class: 'extension-windowsNavigator-window-tooltip',
visible: false });
this.actor.add_actor(this._tip);
this.actor.connect('notify::scale-x', Lang.bind(this, function() {
this._tip.set_scale(1 / this.actor.scale_x, 1 / this.actor.scale_x);
}));
@@ -174,7 +178,7 @@ function main() {
this._tip = null;
});
injectToFunction(Workspace.Workspace.prototype, 'positionWindows', function(flags) {
let visibleClones = this._getVisibleClones();
let visibleClones = this._windows.slice();
if (this._reservedSlot)
visibleClones.push(this._reservedSlot);

View File

@@ -1,5 +1,5 @@
{
"shell-version": ["2.91.5", "@shell_current@"],
"shell-version": ["@shell_current@"],
"uuid": "@uuid@",
"localedir": "@LOCALEDIR@",
"original-author": "zaspire@rambler.ru",

View File

@@ -1,4 +1,4 @@
.window-tooltip {
.extension-windowsNavigator-window-tooltip {
color: #ff0000;
background: rgba(0,0,0,0.8);
border: 1px solid rgba(128,128,128,0.40);

View File

@@ -1,132 +0,0 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
const DBus = imports.dbus;
const Gdk = imports.gi.Gdk;
const GLib = imports.gi.GLib;
const GnomeDesktop = imports.gi.GnomeDesktop;
const Lang = imports.lang;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const Panel = imports.ui.panel;
const Gettext = imports.gettext.domain('gnome-shell');
const _ = Gettext.gettext;
const possibleRotations = [ GnomeDesktop.RRRotation.ROTATION_0,
GnomeDesktop.RRRotation.ROTATION_90,
GnomeDesktop.RRRotation.ROTATION_180,
GnomeDesktop.RRRotation.ROTATION_270
];
let rotations = [ [ GnomeDesktop.RRRotation.ROTATION_0, _("Normal") ],
[ GnomeDesktop.RRRotation.ROTATION_90, _("Left") ],
[ GnomeDesktop.RRRotation.ROTATION_270, _("Right") ],
[ GnomeDesktop.RRRotation.ROTATION_180, _("Upside-down") ]
];
const XRandr2Iface = {
name: 'org.gnome.SettingsDaemon.XRANDR_2',
methods: [
{ name: 'ApplyConfiguration', inSignature: 'xx', outSignature: '' },
]
};
let XRandr2 = DBus.makeProxyClass(XRandr2Iface);
function Indicator() {
this._init.apply(this, arguments);
}
Indicator.prototype = {
__proto__: PanelMenu.SystemStatusButton.prototype,
_init: function() {
PanelMenu.SystemStatusButton.prototype._init.call(this, 'preferences-desktop-display');
this._proxy = new XRandr2(DBus.session, 'org.gnome.SettingsDaemon', '/org/gnome/SettingsDaemon/XRANDR');
try {
this._screen = new GnomeDesktop.RRScreen({ gdk_screen: Gdk.Screen.get_default() });
this._screen.init(null);
} catch(e) {
// an error means there is no XRandR extension
this.actor.hide();
return;
}
this._createMenu();
this._screen.connect('screen-changed', Lang.bind(this, this._randrEvent));
},
_randrEvent: function() {
this.menu.removeAll();
this._createMenu();
},
_createMenu: function() {
let config = GnomeDesktop.RRConfig.new_current(this._screen);
let outputs = config.get_outputs();
for (let i = 0; i < outputs.length; i++) {
if (outputs[i].get_connected())
this._addOutputItem(config, outputs[i]);
}
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
this.menu.addAction(_("Configure display settings..."), function() {
GLib.spawn_command_line_async('gnome-control-center display');
});
},
_addOutputItem: function(config, output) {
let item = new PopupMenu.PopupMenuItem(output.get_display_name());
item.label.add_style_class_name('display-subtitle');
item.actor.reactive = false;
item.actor.can_focus = false;
this.menu.addMenuItem(item);
let allowedRotations = this._getAllowedRotations(config, output);
for (let i = 0; i < rotations.length; i++) {
let [bitmask, name] = rotations[i];
if (bitmask & allowedRotations) {
this.menu.addAction(name, Lang.bind(this, function(event) {
/* ensure config is saved so we get a backup if anything goes wrong */
config.save();
output.set_rotation(bitmask);
try {
config.save();
this._proxy.ApplyConfigurationRemote(global.stage_xwindow, event.get_time());
} catch (e) {
logError ('Could not save monitor configuration: ' + e);
}
}));
}
}
},
_getAllowedRotations: function(config, output) {
let retval = 0;
let current = output.get_rotation();
for (let i = 0; i < possibleRotations.length; i++) {
output.set_rotation(possibleRotations[i]);
if (config.applicable(this._screen)) {
retval |= possibleRotations[i];
}
}
output.set_rotation(current);
if (retval.lenght == 0) {
// what, no rotation?
// what's current then?
retval = current;
}
return retval;
}
}
Panel.STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION['display'] = Indicator;

View File

@@ -3,6 +3,7 @@
"name": "Monitor Status Indicator",
"description": "Add a systems status menu for rotating monitors (overrides what is currently provided by gnome-settings-daemon)",
"shell-version": [ "@shell_current@" ],
"js-version": [ "0.7.15", "1.29.1" ],
"localedir": "@LOCALEDIR@",
"url": "@url@"
}

View File

@@ -6,6 +6,13 @@
<name xml:lang="en">GNOME Shell Extensions</name>
<shortdesc xml:lang="en">Modify and extend GNOME Shell functionality and behavior</shortdesc>
<description xml:lang="en">
GNOME Shell Extensions is a collection of extensions providing
additional and optional functionality to GNOME Shell.
Most extensions can be installed by configuring --prefix=$HOME/.local,
and will be picked automatically at next login.
</description>
<bug-database rdf:resource="http://bugzilla.gnome.org/browse.cgi?product=gnome-shell&amp;component=extensions" />
<homepage rdf:resource="http://live.gnome.org/GnomeShell/Extenstions" />
<maintainer>

View File

@@ -1 +1,21 @@
cs
da
de
es
fa
fr
gl
he
hu
it
lv
nb
pa
pt
pt_BR
pl
ru
sl
sv
vi
zh_CN

View File

@@ -1,7 +1,12 @@
extensions/example/extension.js
extensions/windowsNavigator/extension.js
extensions/xrandr-indicator/extension.js
extensions/alternative-status-menu/extension.js
extensions/alternate-tab/extension.js
extensions/auto-move-windows/extension.js
extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in
extensions/dock/extension.js
extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in
extensions/example/extension.js
extensions/gajim/extension.js
extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in
extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in
extensions/windowsNavigator/extension.js
extensions/xrandr-indicator/extension.js

146
po/cs.po Normal file
View File

@@ -0,0 +1,146 @@
# Czech translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Marek Černocký <marek@manet.cz>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2011-04-16 16:32+0000\n"
"PO-Revision-Date: 2011-04-17 11:10+0200\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#: ../extensions/alternative-status-menu/extension.js:23
#: ../extensions/alternative-status-menu/extension.js:27
#: ../extensions/alternative-status-menu/extension.js:93
msgid "Hibernate"
msgstr "Uspat na disk"
#: ../extensions/alternative-status-menu/extension.js:26
#: ../extensions/alternative-status-menu/extension.js:92
msgid "Suspend"
msgstr "Uspat do paměti"
#: ../extensions/alternative-status-menu/extension.js:52
msgid "Available"
msgstr "Dostupný"
#: ../extensions/alternative-status-menu/extension.js:57
msgid "Busy"
msgstr "Zaneprázdněný"
#: ../extensions/alternative-status-menu/extension.js:65
msgid "My Account"
msgstr "Můj účet"
#: ../extensions/alternative-status-menu/extension.js:69
msgid "System Settings"
msgstr "Nastavení systému"
#: ../extensions/alternative-status-menu/extension.js:76
msgid "Lock Screen"
msgstr "Zamknout obrazovku"
#: ../extensions/alternative-status-menu/extension.js:80
msgid "Switch User"
msgstr "Přepnout uživatele"
#: ../extensions/alternative-status-menu/extension.js:85
msgid "Log Out..."
msgstr "Odhlásit se…"
#: ../extensions/alternative-status-menu/extension.js:100
msgid "Power Off..."
msgstr "Vypnout…"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Seznam řetězců, z nichž každý obsahuje ID aplikace (název souboru pracovní "
"plochy), následovaný dvojtečkou a číslem pracovní plochy"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Seznam aplikací a pracovních ploch"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "Přetažením sem přidáte do oblíbených"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "Nové okno"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "Ukončit aplikaci"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "Odebrat z oblíbených"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "Přidat do oblíbených"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "Ahoj světe!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s je pryč."
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s je odpojen."
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s je připojen."
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s je zaneprázdněn."
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Název motivu, který se má načíst z ~/.themes/name/gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Název motivu"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Normální"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Doleva"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Doprava"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "Vzhůru nohama"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Upravit nastavení zobrazení…"

103
po/da.po Normal file
View File

@@ -0,0 +1,103 @@
# Danish translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
#
# Kris Thomsen <lakristho@gmail.com>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-06 22:28+0200\n"
"PO-Revision-Date: 2011-04-06 09:07+0000\n"
"Last-Translator: Kris Thomsen <lakristho@gmail.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\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"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"En liste over strenge, som hver indeholder et program-id "
"(skrivebordsfilnavn), efterfulgt af et kolon og arbejdsområdets nummer"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Liste over programmer og arbejdsområder"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "Træk hertil for at føje til favoritter"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "Nyt vindue"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "Afslut program"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "Fjern fra favoritter"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "Føj til favoritter"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "Hej verden!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s er ikke til stede."
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s er frakoblet."
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s er tilgængelig."
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s er optaget."
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Navnet på temaet, som indlæses fra ~/.themes/name/gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Temanavn"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Normal"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Venstre"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Højre"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "På hovedet"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Konfigurér skærmindstillinger..."

147
po/de.po Normal file
View File

@@ -0,0 +1,147 @@
# German translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Mario Blättermann <mariobl@freenet.de>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2011-04-16 16:32+0000\n"
"PO-Revision-Date: 2011-04-17 11:12+0100\n"
"Last-Translator: Mario Blättermann <mariobl@freenet.de>\n"
"Language-Team: German <gnome-de@gnome.org>\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"
#: ../extensions/alternative-status-menu/extension.js:23
#: ../extensions/alternative-status-menu/extension.js:27
#: ../extensions/alternative-status-menu/extension.js:93
msgid "Hibernate"
msgstr "Ruhezustand"
#: ../extensions/alternative-status-menu/extension.js:26
#: ../extensions/alternative-status-menu/extension.js:92
msgid "Suspend"
msgstr "Bereitschaft"
#: ../extensions/alternative-status-menu/extension.js:52
msgid "Available"
msgstr "Verfügbar"
#: ../extensions/alternative-status-menu/extension.js:57
msgid "Busy"
msgstr "Beschäftigt"
#: ../extensions/alternative-status-menu/extension.js:65
msgid "My Account"
msgstr "Mein Konto"
#: ../extensions/alternative-status-menu/extension.js:69
msgid "System Settings"
msgstr "Systemeinstellungen"
#: ../extensions/alternative-status-menu/extension.js:76
msgid "Lock Screen"
msgstr "Bildschirm sperren"
#: ../extensions/alternative-status-menu/extension.js:80
msgid "Switch User"
msgstr "Benutzer wechseln"
#: ../extensions/alternative-status-menu/extension.js:85
msgid "Log Out..."
msgstr "Abmelden …"
#: ../extensions/alternative-status-menu/extension.js:100
msgid "Power Off..."
msgstr "Ausschalten …"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Eine Liste aus Zeichenketten, wovon jede eine Anwendungskennung (*.desktop-"
"Datei) enthält, gefolgt von einem Doppelpunkt und der Nummer der Arbeitsfläche"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Anwendungs- und Arbeitsflächenliste"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "Hierher ziehen, um zu Favoriten hinzuzufügen"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "Neues Fenster"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "Anwendung beenden"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "Aus Favoriten entfernen"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "Zu Favoriten hinzufügen"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "Hallo, Welt!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s ist abwesend."
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s ist abgemeldet."
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s ist angemeldet."
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s ist beschäftigt."
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr ""
"Der Name des Themas, welches aus ~/.themes/name/gnome-shell geladen werden "
"soll"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Themenname"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Normal"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Links"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Rechts"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "Kopfüber"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Bildschirmeinstellungen festlegen …"

146
po/es.po Normal file
View File

@@ -0,0 +1,146 @@
# Spanish translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2011-04-16 16:32+0000\n"
"PO-Revision-Date: 2011-04-21 19:31+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Español <gnome-es-list@gnome.org>\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"
#: ../extensions/alternative-status-menu/extension.js:23
#: ../extensions/alternative-status-menu/extension.js:27
#: ../extensions/alternative-status-menu/extension.js:93
msgid "Hibernate"
msgstr "Hibernar"
#: ../extensions/alternative-status-menu/extension.js:26
#: ../extensions/alternative-status-menu/extension.js:92
msgid "Suspend"
msgstr "Suspender"
#: ../extensions/alternative-status-menu/extension.js:52
msgid "Available"
msgstr "Disponible"
#: ../extensions/alternative-status-menu/extension.js:57
msgid "Busy"
msgstr "Ocupado"
#: ../extensions/alternative-status-menu/extension.js:65
msgid "My Account"
msgstr "Mi cuenta"
#: ../extensions/alternative-status-menu/extension.js:69
msgid "System Settings"
msgstr "Configuración del sistema"
#: ../extensions/alternative-status-menu/extension.js:76
msgid "Lock Screen"
msgstr "Bloquear la pantalla"
#: ../extensions/alternative-status-menu/extension.js:80
msgid "Switch User"
msgstr "Cambiar de usuario"
#: ../extensions/alternative-status-menu/extension.js:85
msgid "Log Out..."
msgstr "Cerrar la sesión…"
#: ../extensions/alternative-status-menu/extension.js:100
msgid "Power Off..."
msgstr "Apagar…"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Una lista de cadenas, conteniendo cada una un ID de aplicación (nombre de "
"archivo de escritorio), seguido de dos puntos y el número del espacio de "
"trabajo"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Lista de aplicaciones y espacios de trabajo"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "Arrastrar aquí para añadir a favoritos"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "Ventana nueva"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "Salir de la aplicación"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "Quitar de favoritos"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "Añadir a favoritos"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "¡Hola, Mundo!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s no está disponible."
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s está desconectado."
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s está conectado."
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s está ocupado."
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "El nombre del tema, que se carga desde ~/.themes/nombre/gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Nombre del tema"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Normal"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Izquierda"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Derecha"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "Hacia abajo"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Configurar las opciones de pantalla…"

143
po/fa.po Normal file
View File

@@ -0,0 +1,143 @@
# Persian translation for gnome-shell-extensions.
# Copyright (C) 2011 Iranian Free Software Users Group (IFSUG.org) translation team.
# This file is distributed under the same license as the gnome-shell-extensions package.
# Arash Mousavi <mousavi.arash@gmail.com>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2011-05-21 14:17+0000\n"
"PO-Revision-Date: 2011-05-23 22:28+0330\n"
"Last-Translator: Arash Mousavi <mousavi.arash@gmail.com>\n"
"Language-Team: Persian <translate@ifsug.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Persian\n"
"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n"
"X-Poedit-SourceCharset: utf-8\n"
#: ../extensions/alternative-status-menu/extension.js:23
#: ../extensions/alternative-status-menu/extension.js:27
#: ../extensions/alternative-status-menu/extension.js:93
msgid "Hibernate"
msgstr "خواب‌زمستانی"
#: ../extensions/alternative-status-menu/extension.js:26
#: ../extensions/alternative-status-menu/extension.js:92
msgid "Suspend"
msgstr "تعلیق"
#: ../extensions/alternative-status-menu/extension.js:52
msgid "Available"
msgstr "موجود"
#: ../extensions/alternative-status-menu/extension.js:57
msgid "Busy"
msgstr "مشغول"
#: ../extensions/alternative-status-menu/extension.js:65
msgid "My Account"
msgstr "حساب من"
#: ../extensions/alternative-status-menu/extension.js:69
msgid "System Settings"
msgstr "تنظیمات سیستم"
#: ../extensions/alternative-status-menu/extension.js:76
msgid "Lock Screen"
msgstr "قفل‌کردن صفحه‌نمایش"
#: ../extensions/alternative-status-menu/extension.js:80
msgid "Switch User"
msgstr "تعویض کاربر"
#: ../extensions/alternative-status-menu/extension.js:85
msgid "Log Out..."
msgstr "خروج از سیستم..."
#: ../extensions/alternative-status-menu/extension.js:100
msgid "Power Off..."
msgstr "خاموش کردن..."
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid "A list of strings, each containing an application id (desktop file name), followed by a colon and the workspace number"
msgstr "فهرستی از رشته‌ها، هرکدام حاوی شناسه‌ی یک برنامه (نام پرونده رومیزی)، در ادامه‌ی یک ویرگول و شماره‌ی فضای کاری"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "فهرست برنامه‌ها و فضای‌کاری"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "به اینجا بکشید تا به علاقه‌مندی‌ها اضافه شود"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "پنجره جدید"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "خروج از برنامه"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "حذف از علاقه‌مندی‌ها"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "اضافه کردن به علاقه‌مندی‌ها"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "سلام دنیا!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s غائب است."
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s برون‌خط است."
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s برخط است."
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s مشغول است."
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "نام تم، جهت بارگیری از شاخه themes/name/gnome-shell./~"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "نام تم"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "عادی"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "چپ"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "راست"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "برعکس"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "پیکربندی تنظیمات نمایش..."

146
po/fr.po Normal file
View File

@@ -0,0 +1,146 @@
# French translation for gnome-shell-extensions.
# Copyright (C) 2011 Listed translators
# This file is distributed under the same license as the gnome-shell-extensions package.
# Claude Paroz <claude@2xlibre.net>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2011-04-16 16:32+0000\n"
"PO-Revision-Date: 2011-04-21 16:51+0200\n"
"Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
"Language-Team: French <gnomefr@traduc.org>\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"
#: ../extensions/alternative-status-menu/extension.js:23
#: ../extensions/alternative-status-menu/extension.js:27
#: ../extensions/alternative-status-menu/extension.js:93
msgid "Hibernate"
msgstr "Hiberner"
#: ../extensions/alternative-status-menu/extension.js:26
#: ../extensions/alternative-status-menu/extension.js:92
msgid "Suspend"
msgstr "Mettre en veille"
#: ../extensions/alternative-status-menu/extension.js:52
msgid "Available"
msgstr "Disponible"
#: ../extensions/alternative-status-menu/extension.js:57
msgid "Busy"
msgstr "Occupé"
#: ../extensions/alternative-status-menu/extension.js:65
msgid "My Account"
msgstr "Mon compte"
#: ../extensions/alternative-status-menu/extension.js:69
msgid "System Settings"
msgstr "Paramètres système"
#: ../extensions/alternative-status-menu/extension.js:76
msgid "Lock Screen"
msgstr "Verrouiller l'écran"
#: ../extensions/alternative-status-menu/extension.js:80
msgid "Switch User"
msgstr "Changer d'utilisateur"
#: ../extensions/alternative-status-menu/extension.js:85
msgid "Log Out..."
msgstr "Fermer la session..."
#: ../extensions/alternative-status-menu/extension.js:100
msgid "Power Off..."
msgstr "Éteindre..."
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Une liste de chaînes, contenant chacune un identifiant d'application (nom de "
"fichier desktop), suivi par un deux-points et le numéro de l'espace de "
"travail"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Liste d'applications et d'espaces de travail"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "Déposez ici pour ajouter aux favoris"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "Nouvelle fenêtre"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "Quitter l'application"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "Enlever des favoris"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "Ajouter aux favoris"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "Bonjour le monde !"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s est absent(e)."
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s n'est pas en ligne."
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s est en ligne."
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s est occupé(e)."
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Le nom du thème, à charger à partir de ~/.themes/name/gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Nom du thème"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Normal"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Gauche"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Droite"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "Renversé"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Configurer les paramètres d'affichage..."

103
po/gl.po Normal file
View File

@@ -0,0 +1,103 @@
# Galician translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# Fran Diéguez <frandieguez@gnome.org>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-14 09:58+0200\n"
"PO-Revision-Date: 2011-04-14 09:54+0200\n"
"Last-Translator: Fran Diéguez <frandieguez@gnome.org>\n"
"Language-Team: Galician <gnome-l10n-gl@gnome.org>\n"
"Language: gl\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"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Unha lista de cadeas, cada unha das cales contén un id de aplicativo (nome "
"de ficheiro desktop), seguido por unha coma e o número do espazo de traballo"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Lista de aplicativos e espazos de traballo"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "Arrastre aquí para engadir aos favoritos"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "Nova xanela"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "Saír do aplicativo"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "Eliminar dos favoritos"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "Engadir aos favoritos"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "Hola, mundo!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s está ausente."
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s está desconectado."
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s está conectado."
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s está ocupado."
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "O nome do tema, a cargar desde ~/.themes/name/gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Nome do tema"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Normal"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Esquerda"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Dereita"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "Co de arriba cara abaixo"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Configurar as configuracións de pantalla..."

187
po/he.po Normal file
View File

@@ -0,0 +1,187 @@
# Hebrew translations for PACKAGE package.
# Copyright (C) 2011 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Yaron Shahrabani <sh.yaron@gmail.com>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-13 13:11+0300\n"
"PO-Revision-Date: 2011-05-13 13:15+0200\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"Language-Team: Hebrew <sh.yaron@gmail.com>\n"
"Language: he\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: Hebrew\n"
"X-Poedit-Country: ISRAEL\n"
"X-Poedit-SourceCharset: UTF-8\n"
#: ../extensions/alternative-status-menu/extension.js:39
msgid "Available"
msgstr "פנוי"
#: ../extensions/alternative-status-menu/extension.js:44
msgid "Busy"
msgstr "עסוק"
#: ../extensions/alternative-status-menu/extension.js:52
msgid "My Account"
msgstr "החשבון שלי"
#: ../extensions/alternative-status-menu/extension.js:56
msgid "System Settings"
msgstr "הגדרות המערכת"
#: ../extensions/alternative-status-menu/extension.js:63
msgid "Lock Screen"
msgstr "נעילת המסך"
#: ../extensions/alternative-status-menu/extension.js:67
msgid "Switch User"
msgstr "החלפת משתמש"
#: ../extensions/alternative-status-menu/extension.js:72
msgid "Log Out..."
msgstr "יציאה..."
#: ../extensions/alternative-status-menu/extension.js:79
msgid "Suspend"
msgstr "השהיה"
#: ../extensions/alternative-status-menu/extension.js:85
msgid "Hibernate"
msgstr "תרדמת"
#: ../extensions/alternative-status-menu/extension.js:91
msgid "Power Off..."
msgstr "כיבוי..."
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Application and workspace list"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "יש לגרור לכאן כדי להוסיף למועדפים"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "חלון חדש"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "יציאה מהיישום"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "הסרה מהמועדפים"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "הוספה למועדפים"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "שלום, עולם!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s הופיע/ה כמרוחק/ת."
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s התנתק/ה."
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s פנוי/ה."
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s עסוק/ה."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
msgid ""
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
msgstr ""
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2
msgid "Place window captions on top"
msgstr "Place window captions on top"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
msgid ""
"The algorithm used to layout thumbnails in the overview. 'grid' to use the "
"default grid based algorithm, 'natural' to use another one that reflects "
"more the position and size of the actual window"
msgstr ""
"The algorithm used to layout thumbnails in the overview. 'grid' to use the "
"default grid based algorithm, 'natural' to use another one that reflects "
"more the position and size of the actual window"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4
msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:5
msgid "Use more screen for windows"
msgstr "Use more screen for windows"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:6
msgid "Window placement strategy"
msgstr "Window placement strategy"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Theme name"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "רגיל"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "שמאל"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "ימין"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "הפוך"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "הגדרת תצורת התצוגה..."

177
po/hu.po Normal file
View File

@@ -0,0 +1,177 @@
# Hungarian translation of
# Copyright (C) 2011. Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell-extensions package.
#
# Biró Balázs <arch.scar at gmail dot com>, 2011.
# Gabor Kelemen <kelemeng at gnome dot hu>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-06-07 22:45+0200\n"
"PO-Revision-Date: 2011-06-07 22:44+0200\n"
"Last-Translator: Gabor Kelemen <kelemeng at gnome dot hu>\n"
"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../extensions/alternative-status-menu/extension.js:39
msgid "Available"
msgstr "Elérhető"
#: ../extensions/alternative-status-menu/extension.js:44
msgid "Busy"
msgstr "Elfoglalt"
#: ../extensions/alternative-status-menu/extension.js:52
msgid "My Account"
msgstr "Saját fiók"
#: ../extensions/alternative-status-menu/extension.js:56
msgid "System Settings"
msgstr "Rendszerbeállítások"
#: ../extensions/alternative-status-menu/extension.js:63
msgid "Lock Screen"
msgstr "Képernyő zárolása"
#: ../extensions/alternative-status-menu/extension.js:67
msgid "Switch User"
msgstr "Felhasználóváltás"
#: ../extensions/alternative-status-menu/extension.js:72
msgid "Log Out..."
msgstr "Kijelentkezés…"
#: ../extensions/alternative-status-menu/extension.js:79
msgid "Suspend"
msgstr "Felfüggesztés"
#: ../extensions/alternative-status-menu/extension.js:85
msgid "Hibernate"
msgstr "Hibernálás"
#: ../extensions/alternative-status-menu/extension.js:91
msgid "Power Off..."
msgstr "Kikapcsolás…"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Alkalmazásazonosítókat (.desktop fájl neve), majd kettősponttal elválasztva "
"a munkaterület számát tartalmazó karakterláncok sorozata"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Alkalmazások és munkaterületek listája"
#: ../extensions/dock/extension.js:136
msgid "Drag here to add favorites"
msgstr "Húzza ide kedvenceit"
#: ../extensions/dock/extension.js:456
msgid "New Window"
msgstr "Új ablak"
#: ../extensions/dock/extension.js:458
msgid "Quit Application"
msgstr "Alkalmazás bezárása"
#: ../extensions/dock/extension.js:463
msgid "Remove from Favorites"
msgstr "Eltávolítás a Kedvencek közül"
#: ../extensions/dock/extension.js:464
msgid "Add to Favorites"
msgstr "Hozzáadás a Kedvencekhez"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "Helló, világ!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s távol van."
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s kilépett."
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s elérhető."
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s elfoglalt."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
msgid ""
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
msgstr ""
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2
msgid "Place window captions on top"
msgstr ""
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
msgid ""
"The algorithm used to layout thumbnails in the overview. 'grid' to use the "
"default grid based algorithm, 'natural' to use another one that reflects "
"more the position and size of the actual window"
msgstr ""
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4
msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:5
msgid "Use more screen for windows"
msgstr ""
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:6
msgid "Window placement strategy"
msgstr ""
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "A ~/.themes/név/gnome-shell alól betöltendő téma neve"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Témanév"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Normál"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Balra"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Jobbra"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "Fejjel lefelé"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Kijelzőbeállítások…"

122
po/it.po
View File

@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions 2.91.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-02-19 20:39+0100\n"
"PO-Revision-Date: 2011-02-20 18:04+0100\n"
"POT-Creation-Date: 2011-04-26 15:14+0200\n"
"PO-Revision-Date: 2011-04-26 15:27+0200\n"
"Last-Translator: Giovanni Campagna <scampa.giovanni@gmail.com>\n"
"Language-Team: none <LL@li.org>\n"
"Language: \n"
@@ -17,56 +17,126 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "Ciao, mondo!"
#: ../extensions/alternative-status-menu/extension.js:39
msgid "Available"
msgstr "Disponibile"
#: ../extensions/xrandr-indicator/extension.js:25
msgid "Normal"
msgstr "Normale"
#: ../extensions/alternative-status-menu/extension.js:44
msgid "Busy"
msgstr "Non disponibile"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Left"
msgstr "Sinistra"
#: ../extensions/alternative-status-menu/extension.js:52
msgid "My Account"
msgstr "Account personale"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Right"
msgstr "Destra"
#: ../extensions/alternative-status-menu/extension.js:56
msgid "System Settings"
msgstr "Impostazioni di sistema"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Upside-down"
msgstr "Rovesciato"
#: ../extensions/alternative-status-menu/extension.js:63
msgid "Lock Screen"
msgstr "Blocca schermo"
#: ../extensions/xrandr-indicator/extension.js:77
msgid "Configure display settings..."
msgstr "Configura impostazioni display..."
#: ../extensions/alternative-status-menu/extension.js:67
msgid "Switch User"
msgstr "Cambia utente"
#: ../extensions/alternative-status-menu/extension.js:72
msgid "Log Out..."
msgstr "Termina sessione..."
#: ../extensions/alternative-status-menu/extension.js:79
msgid "Suspend"
msgstr "Sospendi"
#: ../extensions/alternative-status-menu/extension.js:85
msgid "Hibernate"
msgstr "Iberna"
#: ../extensions/alternative-status-menu/extension.js:91
msgid "Power Off..."
msgstr "Spegni..."
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr "Una lista di stringhe, ognuna contenente un id applicazione (nome del file .desktop), seguito da due punti e il numero dello spazio di lavoro"
msgstr ""
"Una lista di stringhe, ognuna contenente un id applicazione (nome del file ."
"desktop), seguito da due punti e il numero dello spazio di lavoro"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Lista applicazioni e spazi di lavoro"
#: ../extensions/dock/extension.js:115
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "Trascina qui per aggiungere ai preferiti"
#: ../extensions/dock/extension.js:415
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "Nuova finestra"
#: ../extensions/dock/extension.js:417
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "Chiudi applicazione"
#: ../extensions/dock/extension.js:422
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "Rimuovi dai preferiti"
#: ../extensions/dock/extension.js:423
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "Aggiungi ai preferiti"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "Ciao, mondo!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s è assente"
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s è fuori rete"
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s è disponibile"
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s non è disponibile"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Il nome del tema, da caricare in ~/.themes/nome/gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Nome del tema"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Normale"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Sinistra"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Destra"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "Rovesciato"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Configura impostazioni display..."

147
po/lv.po Normal file
View File

@@ -0,0 +1,147 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Rūdofls Mazurs <rudolfs.mazurs@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug."
"cgi?product=gnome-shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2011-04-18 14:10+0000\n"
"PO-Revision-Date: 2011-04-20 12:42+0300\n"
"Last-Translator: Rūdofls Mazurs <rudolfs.mazurs@gmail.com>\n"
"Language-Team: Latvian <lata-l10n@googlegroups.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 1.1\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
"2);\n"
#: ../extensions/alternative-status-menu/extension.js:23
#: ../extensions/alternative-status-menu/extension.js:27
#: ../extensions/alternative-status-menu/extension.js:93
msgid "Hibernate"
msgstr "Iemidzināt"
#: ../extensions/alternative-status-menu/extension.js:26
#: ../extensions/alternative-status-menu/extension.js:92
msgid "Suspend"
msgstr "Iesnaudināt"
#: ../extensions/alternative-status-menu/extension.js:52
msgid "Available"
msgstr "Pieejams"
#: ../extensions/alternative-status-menu/extension.js:57
msgid "Busy"
msgstr "Aizņemts"
#: ../extensions/alternative-status-menu/extension.js:65
msgid "My Account"
msgstr "Mans konts"
#: ../extensions/alternative-status-menu/extension.js:69
msgid "System Settings"
msgstr "Sistēmas iestatījumi"
#: ../extensions/alternative-status-menu/extension.js:76
msgid "Lock Screen"
msgstr "Bloķēt ekrānu"
#: ../extensions/alternative-status-menu/extension.js:80
msgid "Switch User"
msgstr "Mainīt lietotāju"
#: ../extensions/alternative-status-menu/extension.js:85
msgid "Log Out..."
msgstr "Izrakstīties..."
#: ../extensions/alternative-status-menu/extension.js:100
msgid "Power Off..."
msgstr "Izslēgt..."
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Saraksts ar virknēm, kas katra satur lietotnes id (darbvirsmas faila "
"nosaukums), kam seko kols un darbvietas numurs"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Lietotņu un darbvietu saraksts"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "Velciet šeit, lai pievienotu izlasei"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "Jauns logs"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "Iziet no lietotnes"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "Izņemt no izlases"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "Pievienot izlasei"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "Sveika pasaule!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s\" ir prom."
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s ir nesaistē."
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s ir tiešsaistē."
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s\" ir aizņemts."
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Tēmas nosaukums, ko ielādēt no ~/.themes/name/gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Tēmas nosaukums"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Normāls"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Pa kreisi"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Pa labi"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "Otrādi"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Konfigurēt displeja iestatījumus..."

144
po/nb.po Normal file
View File

@@ -0,0 +1,144 @@
# Norwegian bokmål translation of gnome-shell-extensions.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Kjartan Maraas <kmaraas@gnome.org>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-16 18:30+0200\n"
"PO-Revision-Date: 2011-04-16 18:31+0200\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../extensions/alternative-status-menu/extension.js:23
#: ../extensions/alternative-status-menu/extension.js:27
#: ../extensions/alternative-status-menu/extension.js:93
msgid "Hibernate"
msgstr "Dvalemodus"
#: ../extensions/alternative-status-menu/extension.js:26
#: ../extensions/alternative-status-menu/extension.js:92
msgid "Suspend"
msgstr "Hvilemodus"
#: ../extensions/alternative-status-menu/extension.js:52
msgid "Available"
msgstr "Tilgjengelig"
#: ../extensions/alternative-status-menu/extension.js:57
msgid "Busy"
msgstr "Opptatt"
#: ../extensions/alternative-status-menu/extension.js:65
msgid "My Account"
msgstr "Min konto"
#: ../extensions/alternative-status-menu/extension.js:69
msgid "System Settings"
msgstr "Systeminnstillinger"
#: ../extensions/alternative-status-menu/extension.js:76
msgid "Lock Screen"
msgstr "Lås skjem"
#: ../extensions/alternative-status-menu/extension.js:80
msgid "Switch User"
msgstr "Bytt bruker"
#: ../extensions/alternative-status-menu/extension.js:85
msgid "Log Out..."
msgstr "Logg ut …"
#: ../extensions/alternative-status-menu/extension.js:100
msgid "Power Off..."
msgstr "Slå av …"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"En liste med strenger som inneholder en ID for et program (navn på .desktop-"
"fil), fulgt av et kolon og arbeidsområdenummeret"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Liste med programmer og arbeidsområder"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "Dra hit for å legge til favoritter"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "Nytt vindu"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "Avslutt programmet"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "Fjern fra favoritter"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "Legg til i favoritter"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "Hallo verden!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s er borte."
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s er frakoblet."
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s er tilkoblet."
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s er opptatt."
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Navn på tema som skal lastes fra ~/.themes/name/gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Navn på tema"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Normal"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Venstre"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Høyre"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "Opp-ned"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Konfigurer innstillinger for skjerm …"

149
po/pa.po Normal file
View File

@@ -0,0 +1,149 @@
# Punjabi translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
#
# A S Alam <aalam@users.sf.net>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2011-05-21 14:17+0000\n"
"PO-Revision-Date: 2011-06-03 08:18+0530\n"
"Last-Translator: A S Alam <aalam@users.sf.net>\n"
"Language-Team: Punjabi/Panjabi <punjabi-users@lists.sf.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pa\n"
"X-Generator: Lokalize 1.2\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
#: ../extensions/alternative-status-menu/extension.js:23
#: ../extensions/alternative-status-menu/extension.js:27
#: ../extensions/alternative-status-menu/extension.js:93
msgid "Hibernate"
msgstr "ਹਾਈਬਰਨੇਟ"
#: ../extensions/alternative-status-menu/extension.js:26
#: ../extensions/alternative-status-menu/extension.js:92
msgid "Suspend"
msgstr "ਸਸਪੈਂਡ"
#: ../extensions/alternative-status-menu/extension.js:52
msgid "Available"
msgstr "ਉਪਲੱਬਧ"
#: ../extensions/alternative-status-menu/extension.js:57
msgid "Busy"
msgstr "ਰੁਝਿਆ"
#: ../extensions/alternative-status-menu/extension.js:65
msgid "My Account"
msgstr "ਮੇਰਾ ਅਕਾਊਂਟ"
#: ../extensions/alternative-status-menu/extension.js:69
msgid "System Settings"
msgstr "ਸਿਸਟਮ ਸੈਟਿੰਗ"
#: ../extensions/alternative-status-menu/extension.js:76
msgid "Lock Screen"
msgstr "ਸਕਰੀਨ ਲਾਕ ਕਰੋ"
#: ../extensions/alternative-status-menu/extension.js:80
msgid "Switch User"
msgstr "ਯੂਜ਼ਰ ਬਦਲੋ"
#: ../extensions/alternative-status-menu/extension.js:85
msgid "Log Out..."
msgstr "ਲਾਗਆਉਟ..."
#: ../extensions/alternative-status-menu/extension.js:100
msgid "Power Off..."
msgstr "...ਬੰਦ ਕਰੋ"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"ਲਾਈਨਾਂ ਦੀ ਲਿਸਟ, ਜੋ ਕਿ ਐਪਲੀਕੇਸ਼ਨ ID (ਡੈਸਕਟਾਪ ਫਾਇਲ ਨਾਂ), ਬਾਅਦ 'ਚ ਕਾਲਮ ਅਤੇ "
"ਵਰਕਸਪੇਸ "
"ਨੰਬਰ ਰੱਖਦਾ ਹੈ"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਅਤੇ ਵਰਕਸਪੇਸ ਲਿਸਟ"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "ਪਸੰਦ ਵਿੱਚ ਜੋੜਨ ਲਈ ਇੱਥੇ ਸੁੱਟੋ"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "ਨਵੀਂ ਵਿੰਡੋ"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਬੰਦ ਕਰੋ"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "ਪਸੰਦ ਵਿੱਚੋਂ ਹਟਾਓ"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "ਪਸੰਦ 'ਚ ਸ਼ਾਮਲ ਕਰੋ"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "ਹੈਲੋ, ਵਰਲਡ!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s ਦੂਰ ਹੈ।"
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s ਆਫਲਾਈਨ ਹੈ।"
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s ਆਨਲਾਈਨ ਹੈ।"
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s ਰੁੱਝਿਆ/ਰੁੱਝੀ ਹੈ।"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "ਥੀਮ ਦਾ ਨਾਂ, ਜੋ ~/.themes/name/gnome-shell ਤੋਂ ਲੋਡ ਕੀਤਾ ਜਾਵੇਗਾ"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "ਥੀਮ ਨਾਂ"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "ਸਧਾਰਨ"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "ਖੱਬੇ"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "ਸੱਜੇ"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "ਉਤਲਾ ਹੇਠ"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "ਡਿਸਪਲੇਅ ਸੈਟਿੰਗ ਸੰਰਚਨਾ..."

149
po/pl.po Normal file
View File

@@ -0,0 +1,149 @@
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# 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:
# gnomepl@aviary.pl
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-19 09:14+0200\n"
"PO-Revision-Date: 2011-04-19 09:16+0200\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <gnomepl@aviary.pl>\n"
"Language: pl\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%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
"X-Poedit-Language: Polish\n"
"X-Poedit-Country: Poland\n"
#: ../extensions/alternative-status-menu/extension.js:23
#: ../extensions/alternative-status-menu/extension.js:27
#: ../extensions/alternative-status-menu/extension.js:93
msgid "Hibernate"
msgstr "Hibernuj"
#: ../extensions/alternative-status-menu/extension.js:26
#: ../extensions/alternative-status-menu/extension.js:92
msgid "Suspend"
msgstr "Uśpij"
#: ../extensions/alternative-status-menu/extension.js:52
msgid "Available"
msgstr "Dostępny"
#: ../extensions/alternative-status-menu/extension.js:57
msgid "Busy"
msgstr "Zajęty"
#: ../extensions/alternative-status-menu/extension.js:65
msgid "My Account"
msgstr "Moje konto"
#: ../extensions/alternative-status-menu/extension.js:69
msgid "System Settings"
msgstr "Ustawienia systemu"
#: ../extensions/alternative-status-menu/extension.js:76
msgid "Lock Screen"
msgstr "Zablokuj ekran"
#: ../extensions/alternative-status-menu/extension.js:80
msgid "Switch User"
msgstr "Przełącz użytkownika"
#: ../extensions/alternative-status-menu/extension.js:85
msgid "Log Out..."
msgstr "Wyloguj się..."
#: ../extensions/alternative-status-menu/extension.js:100
msgid "Power Off..."
msgstr "Wyłącz komputer..."
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Lista ciągów, każdy zawierający identyfikator programu (nazwę pliku ."
"desktop) z przecinkiem i numerem obszaru roboczego"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Lista programów i obszarów roboczych"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "Przeciągnięcie tutaj dodaje do ulubionych"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "Nowe okno"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "Zakończ program"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "Usuń z ulubionych"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "Dodaj do ulubionych"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "Witaj, świecie!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "Użytkownik %s jest nieobecny."
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "Użytkownik %s jest w trybie offline."
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "Użytkownik %s jest w trybie online."
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "Użytkownik %s jest zajęty."
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Nazwa motywu do wczytania z katalogu ~/.themes/name/gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Nazwa motywu"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Normalnie"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "W lewo"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "W prawo"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "Odbicie poziomo"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Skonfiguruj ustawienia ekranu..."

102
po/pt.po Normal file
View File

@@ -0,0 +1,102 @@
# gnome-shell-extensions' Portuguese translation.
# Copyright © 2011 gnome-shell-extensions
# This file is distributed under the same license as the gnome-shell-extensions package.
# Duarte Loreto <happyguy_pt@hotmail.com>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: 3.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2011-04-01 16:40+0000\n"
"PO-Revision-Date: 2011-04-02 00:20+0000\n"
"Last-Translator: Duarte Loreto <happyguy_pt@hotmail.com>\n"
"Language-Team: Portuguese <gnome_pt@yahoogroups.com>\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Uma lista de expressões, cada uma contendo o id de uma aplicação (nome do "
"ficheiro desktop), seguido de dois pontos e o número da área de trabalho"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Lista de aplicações e áreas de trabalho"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "Arrastar para aqui para adicionar favoritos"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "Nova Janela"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "Sair da Aplicação"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "Remover dos Favoritos"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "Adicionar aos Favoritos"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "Olá, mundo!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s está ausente."
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s está desligado."
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s está ligado."
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s está ocupado."
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "O nome do tema, a ser lido de ~/.themes/name/gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Nome do tema"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Normal"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Esquerda"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Direita"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "Pernas para o ar"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Configurar as definições de ecrã..."

147
po/pt_BR.po Normal file
View File

@@ -0,0 +1,147 @@
# Brazilian Portuguese translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Felipe Borges <felipe10borges@gmail.com>, 2011.
# Rodrigo Padula <contato@rodrigopadula.com>, 2011.
# Rodolfo Ribeiro Gomes <rodolforg@gmail.com>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2011-04-20 19:47+0000\n"
"PO-Revision-Date: 2011-04-21 11:11-0300\n"
"Last-Translator: Rodolfo Ribeiro Gomes <rodolforg@gmail.com>\n"
"Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\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"
#: ../extensions/alternative-status-menu/extension.js:23
#: ../extensions/alternative-status-menu/extension.js:27
#: ../extensions/alternative-status-menu/extension.js:93
msgid "Hibernate"
msgstr "Hibernar"
#: ../extensions/alternative-status-menu/extension.js:26
#: ../extensions/alternative-status-menu/extension.js:92
msgid "Suspend"
msgstr "Supender"
#: ../extensions/alternative-status-menu/extension.js:52
msgid "Available"
msgstr "Disponível"
#: ../extensions/alternative-status-menu/extension.js:57
msgid "Busy"
msgstr "Ocupado"
#: ../extensions/alternative-status-menu/extension.js:65
msgid "My Account"
msgstr "Minha conta"
#: ../extensions/alternative-status-menu/extension.js:69
msgid "System Settings"
msgstr "Configurações de sistema"
#: ../extensions/alternative-status-menu/extension.js:76
msgid "Lock Screen"
msgstr "Bloquear tela"
#: ../extensions/alternative-status-menu/extension.js:80
msgid "Switch User"
msgstr "Trocar de usuário"
#: ../extensions/alternative-status-menu/extension.js:85
msgid "Log Out..."
msgstr "Encerrar sessão..."
#: ../extensions/alternative-status-menu/extension.js:100
msgid "Power Off..."
msgstr "Desligar..."
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Uma lista de strings, cada uma contendo um id do aplicativo (nome de arquivo "
"desktop), seguido por dois pontos e o número do espaço de trabalho"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Lista de aplicativo e espaço de trabalho"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "Arraste aqui para adicionar aos favoritos"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "Nova janela"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "Fechar aplicativo"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "Remover dos favoritos"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "Adicionar aos favoritos"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "Olá, mundo!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s está ausente."
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s está desconectado."
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s está conectado."
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s está ocupado."
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "O nome do tema, para ser carregado de ~/.themes/name/gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Nome do tema"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Normal"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Esquerda"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Direita"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "De cabeça pra baixo"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Alterar configurações de exibição..."

141
po/ru.po Normal file
View File

@@ -0,0 +1,141 @@
# Russian translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Yuri Myasoedov <omerta13@yandex.ru>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2011-06-04 07:00+0000\n"
"PO-Revision-Date: 2011-06-05 14:59+0300\n"
"Last-Translator: Yuri Myasoedov <omerta13@yandex.ru>\n"
"Language-Team: Russian <gnome-cyr@gnome.org>\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"
#: ../extensions/alternative-status-menu/extension.js:23
#: ../extensions/alternative-status-menu/extension.js:27
#: ../extensions/alternative-status-menu/extension.js:93
msgid "Hibernate"
msgstr "Спящий режим"
#: ../extensions/alternative-status-menu/extension.js:26
#: ../extensions/alternative-status-menu/extension.js:92
msgid "Suspend"
msgstr "Ждущий режим"
#: ../extensions/alternative-status-menu/extension.js:52
msgid "Available"
msgstr "Доступен"
#: ../extensions/alternative-status-menu/extension.js:57
msgid "Busy"
msgstr "Занят"
#: ../extensions/alternative-status-menu/extension.js:65
msgid "My Account"
msgstr "Моя учётная запись"
#: ../extensions/alternative-status-menu/extension.js:69
msgid "System Settings"
msgstr "Системные параметры"
#: ../extensions/alternative-status-menu/extension.js:76
msgid "Lock Screen"
msgstr "Заблокировать экран"
#: ../extensions/alternative-status-menu/extension.js:80
msgid "Switch User"
msgstr "Переключить пользователя"
#: ../extensions/alternative-status-menu/extension.js:85
msgid "Log Out..."
msgstr "Выйти…"
#: ../extensions/alternative-status-menu/extension.js:100
msgid "Power Off..."
msgstr "Выключить…"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid "A list of strings, each containing an application id (desktop file name), followed by a colon and the workspace number"
msgstr "Список строк, содержащих id приложения (имя desktop-файла), далее следует двоеточие и номер рабочего места"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Приложение и список рабочих мест"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "Перетащите, чтобы добавить в избранное"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "Создать окно"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "Закрыть приложение"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "Удалить из избранного"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "Добавить в избранное"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "Привет, мир!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s отошёл."
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s не в сети."
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s в сети."
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s занят."
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Название темы, загружаемой из ~/.themes/name/gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Название темы"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Обычно"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Влево"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Вправо"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "На 180 градусов"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Настроить параметры экрана…"

145
po/sl.po Normal file
View File

@@ -0,0 +1,145 @@
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
#
# Matej Urbančič <mateju@svn.gnome.org>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2011-04-16 16:32+0000\n"
"PO-Revision-Date: 2011-04-16 21:08+0100\n"
"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
"Language: \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"
#: ../extensions/alternative-status-menu/extension.js:23
#: ../extensions/alternative-status-menu/extension.js:27
#: ../extensions/alternative-status-menu/extension.js:93
msgid "Hibernate"
msgstr "V mirovanje"
#: ../extensions/alternative-status-menu/extension.js:26
#: ../extensions/alternative-status-menu/extension.js:92
msgid "Suspend"
msgstr "V pripravljenost"
#: ../extensions/alternative-status-menu/extension.js:52
msgid "Available"
msgstr "Na voljo"
#: ../extensions/alternative-status-menu/extension.js:57
msgid "Busy"
msgstr "Zasedeno"
#: ../extensions/alternative-status-menu/extension.js:65
msgid "My Account"
msgstr "Račun"
#: ../extensions/alternative-status-menu/extension.js:69
msgid "System Settings"
msgstr "Sistemske nastavitve"
#: ../extensions/alternative-status-menu/extension.js:76
msgid "Lock Screen"
msgstr "Zakleni zaslon"
#: ../extensions/alternative-status-menu/extension.js:80
msgid "Switch User"
msgstr "Preklopi uporabnika"
#: ../extensions/alternative-status-menu/extension.js:85
msgid "Log Out..."
msgstr "Odjava ..."
#: ../extensions/alternative-status-menu/extension.js:100
msgid "Power Off..."
msgstr "Izklopi ..."
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid "A list of strings, each containing an application id (desktop file name), followed by a colon and the workspace number"
msgstr "Seznam nizov z določilom ID programa (namizno ime programa), ki mu sledi dvopičje in nato številka delovne površine."
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Seznam programov in delovnih površin"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "Potegnite sem, za dodajanje med priljubljene"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "Novo okno"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "Končaj program"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "Odstrani iz priljubljenih"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "Dodaj med priljubljene"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "Pozdravljen, svet!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s ni prisoten."
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s ni povezan."
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s je na zvezi."
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s je zaseden."
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Ime teme, ki bo naložena iz ~/.themes/name/gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Ime teme"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Običajno"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Levo"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Desno"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "Zgoraj-navzdol"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Nastavitve zaslona ..."

98
po/sv.po Normal file
View File

@@ -0,0 +1,98 @@
# Swedish translation for gnome-shell-extensions.
# Copyright (C) 2011 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell-extensions package.
# Daniel Nylander <po@danielnylander.se>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-08 21:01+0200\n"
"PO-Revision-Date: 2011-04-08 21:02+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid "A list of strings, each containing an application id (desktop file name), followed by a colon and the workspace number"
msgstr "En lista över strängar, var och en innehållande ett program-id (skrivbordsfilnamn), följt av ett kolontecken och arbetsytans nummer"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Lista över program och arbetsyta"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "Dra hit för att lägga till i favoriter"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "Nytt fönster"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "Avsluta programmet"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "Ta bort från favoriter"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "Lägg till i favoriter"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "Hej, världen!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s är borta."
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s är frånkopplad."
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s är ansluten."
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s är upptagen."
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Namnet på temat, kommer att läsas in från ~/.themes/name/gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Temanamn"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Normal"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Vänster"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Höger"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "Upp och ner"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Konfigurera skärminställningar.."

144
po/vi.po Normal file
View File

@@ -0,0 +1,144 @@
# Vietnamese translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2011-04-01 16:40+0000\n"
"PO-Revision-Date: 2011-04-18 21:07+0700\n"
"Last-Translator: Lê Trường An <xinemdungkhoc1@gmail.com>\n"
"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\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"
#: ../extensions/alternative-status-menu/extension.js:23
#: ../extensions/alternative-status-menu/extension.js:27
#: ../extensions/alternative-status-menu/extension.js:93
msgid "Hibernate"
msgstr "Ngủ đông"
#: ../extensions/alternative-status-menu/extension.js:26
#: ../extensions/alternative-status-menu/extension.js:92
msgid "Suspend"
msgstr "Ngừng"
#: ../extensions/alternative-status-menu/extension.js:52
msgid "Available"
msgstr "Có mặt"
#: ../extensions/alternative-status-menu/extension.js:57
msgid "Busy"
msgstr "Bận"
#: ../extensions/alternative-status-menu/extension.js:65
msgid "My Account"
msgstr "Tài khoản của tôi"
#: ../extensions/alternative-status-menu/extension.js:69
msgid "System Settings"
msgstr "Thiết lập hệ thống"
#: ../extensions/alternative-status-menu/extension.js:76
msgid "Lock Screen"
msgstr "Khoá màn hình"
#: ../extensions/alternative-status-menu/extension.js:80
msgid "Switch User"
msgstr "Đổi người dùng"
#: ../extensions/alternative-status-menu/extension.js:85
msgid "Log Out..."
msgstr "Đăng xuất..."
#: ../extensions/alternative-status-menu/extension.js:100
msgid "Power Off..."
msgstr "Tắt máy..."
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Danh sách chuỗi các id ứng dụng (tên tập tin .desktop), theo sau là dấu hai "
"chấm và mã số vùng làm việc"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Danh sách ứng dụng và vùng làm việc"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "Thả vào đây để thêm ưa thích"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "Cửa sổ mới"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "Thoát ứng dụng"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "Hết ưa thích"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "Đánh dấu ưa thích"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "Xin chào!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s không có mặt."
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s đang ngoại tuyến."
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s đang trực tuyến."
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s đang bận."
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Tên chủ đề, nạp từ ~/.themes/name/gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Tên chủ đề"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Bình thường"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Trái"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Phải"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "Trên xuống"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Cấu hình thiết lập hiển thị..."

143
po/zh_CN.po Normal file
View File

@@ -0,0 +1,143 @@
# Chinese (China) translation for gnome-shell-extensions.
# Copyright (C) 2011 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell-extensions package.
# Yinghua_Wang <wantinghard@gmail.com>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2011-04-19 07:16+0000\n"
"PO-Revision-Date: 2011-04-20 20:49+0800\n"
"Last-Translator: Yinghua Wang <wantinghard@gmail.com>\n"
"Language-Team: Chinese (China) <i18n-zh@googlegroups.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../extensions/alternative-status-menu/extension.js:23
#: ../extensions/alternative-status-menu/extension.js:27
#: ../extensions/alternative-status-menu/extension.js:93
msgid "Hibernate"
msgstr "休眠"
#: ../extensions/alternative-status-menu/extension.js:26
#: ../extensions/alternative-status-menu/extension.js:92
msgid "Suspend"
msgstr "挂起"
#: ../extensions/alternative-status-menu/extension.js:52
msgid "Available"
msgstr "可用"
#: ../extensions/alternative-status-menu/extension.js:57
msgid "Busy"
msgstr "忙碌"
#: ../extensions/alternative-status-menu/extension.js:65
msgid "My Account"
msgstr "我的账户"
#: ../extensions/alternative-status-menu/extension.js:69
msgid "System Settings"
msgstr "系统设置"
#: ../extensions/alternative-status-menu/extension.js:76
msgid "Lock Screen"
msgstr "锁定屏幕"
#: ../extensions/alternative-status-menu/extension.js:80
msgid "Switch User"
msgstr "切换用户"
#: ../extensions/alternative-status-menu/extension.js:85
msgid "Log Out..."
msgstr "注销..."
#: ../extensions/alternative-status-menu/extension.js:100
msgid "Power Off..."
msgstr "关机..."
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"一系列字符串,每个字符串包含一个应用程序标识(桌面文件名称)、冒号加工作区号"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "应用程序和工作区列表"
#: ../extensions/dock/extension.js:116
msgid "Drag here to add favorites"
msgstr "拖放到这里以添加收藏"
#: ../extensions/dock/extension.js:417
msgid "New Window"
msgstr "新窗口"
#: ../extensions/dock/extension.js:419
msgid "Quit Application"
msgstr "退出应用程序"
#: ../extensions/dock/extension.js:424
msgid "Remove from Favorites"
msgstr "移除收藏"
#: ../extensions/dock/extension.js:425
msgid "Add to Favorites"
msgstr "添加收藏"
#: ../extensions/example/extension.js:11
msgid "Hello, world!"
msgstr "世界,你好!"
#: ../extensions/gajim/extension.js:219
#, c-format
msgid "%s is away."
msgstr "%s 不在。"
#: ../extensions/gajim/extension.js:222
#, c-format
msgid "%s is offline."
msgstr "%s 已离线。"
#: ../extensions/gajim/extension.js:225
#, c-format
msgid "%s is online."
msgstr "%s 在线。"
#: ../extensions/gajim/extension.js:228
#, c-format
msgid "%s is busy."
msgstr "%s 正忙。"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "将从 ~/.themes/name/gnome-shell 加载的主题名称"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "主题名称"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "正常"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "左"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "右"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "上下翻转"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "配置显示设置..."