Compare commits
53 Commits
gnome-3-4
...
wip/input-
Author | SHA1 | Date | |
---|---|---|---|
d4802861ed | |||
a8fa0b8146 | |||
cf0bb62f40 | |||
de8106967d | |||
1a24f061cf | |||
e038845458 | |||
b03273c765 | |||
915524e1ab | |||
d579cd1605 | |||
cb5941ec55 | |||
a5ac183d86 | |||
a36de92bb9 | |||
01f9d551f1 | |||
399df66b18 | |||
723a1c843a | |||
e333263fd6 | |||
507df9eea1 | |||
a9a3687ea0 | |||
f05c649c61 | |||
a2dfba1842 | |||
c199da4dfa | |||
ee9033e12f | |||
54788d750e | |||
78e894c6f2 | |||
32107ba8b5 | |||
6122f65e7a | |||
43fd29f9bf | |||
54c624b356 | |||
8c33adfd29 | |||
2e8881b77c | |||
64aa729edd | |||
ccf95b738d | |||
b2847fedd3 | |||
8befcb9bba | |||
988fc52303 | |||
7293ddb22c | |||
f23c118e81 | |||
f68b3be35a | |||
3d95e7bb11 | |||
337c484f01 | |||
5d98e2bf04 | |||
6f300d0cc6 | |||
3422e1dca7 | |||
963c6ae567 | |||
6304169926 | |||
221afde55e | |||
0ae87270ad | |||
9d33baec70 | |||
0f37b22cdb | |||
47afd87e84 | |||
700c06023e | |||
4fea5b5ca3 | |||
521bddc1cc |
3
.gitignore
vendored
3
.gitignore
vendored
@ -23,6 +23,8 @@ data/gnome-shell-extension-prefs.desktop.in
|
|||||||
data/gschemas.compiled
|
data/gschemas.compiled
|
||||||
data/org.gnome.shell.gschema.xml
|
data/org.gnome.shell.gschema.xml
|
||||||
data/org.gnome.shell.gschema.valid
|
data/org.gnome.shell.gschema.valid
|
||||||
|
data/org.gnome.shell.evolution.calendar.gschema.xml
|
||||||
|
data/org.gnome.shell.evolution.calendar.gschema.valid
|
||||||
docs/reference/*/*.args
|
docs/reference/*/*.args
|
||||||
docs/reference/*/*.bak
|
docs/reference/*/*.bak
|
||||||
docs/reference/*/*.hierarchy
|
docs/reference/*/*.hierarchy
|
||||||
@ -68,6 +70,7 @@ src/gnome-shell-extension-prefs
|
|||||||
src/gnome-shell-hotplug-sniffer
|
src/gnome-shell-hotplug-sniffer
|
||||||
src/gnome-shell-jhbuild
|
src/gnome-shell-jhbuild
|
||||||
src/gnome-shell-perf-helper
|
src/gnome-shell-perf-helper
|
||||||
|
src/gnome-shell-perf-tool
|
||||||
src/gnome-shell-real
|
src/gnome-shell-real
|
||||||
src/hotplug-sniffer/org.gnome.Shell.HotplugSniffer.service
|
src/hotplug-sniffer/org.gnome.Shell.HotplugSniffer.service
|
||||||
src/run-js-test
|
src/run-js-test
|
||||||
|
20
NEWS
20
NEWS
@ -1,23 +1,3 @@
|
|||||||
3.4.2
|
|
||||||
=====
|
|
||||||
* Mirror Evolution calendar settings into our own schema [Owen; #674424]
|
|
||||||
* gdm: don't fail if fprintd unavailable [Ray; #675006]
|
|
||||||
* Fix broken extension loading [Owen, Alexandre; #670477]
|
|
||||||
* Fix filtering of Empathy notifications [Guillaume; #675370]
|
|
||||||
* telepathyClient: Ignore invalidated channels [Guillaume; #677457]
|
|
||||||
* popupMenu: Fix freeze when appMenu is not populated in one go [Alban; #676447]
|
|
||||||
* mount-operation: fix exceptions when showing password entry [Cosimo; #678428]
|
|
||||||
* Misc. fixes [Guillaume, Jasper, Rico; #677441, #676175]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Alban Browaeys, Cosimo Cecchi, Guillaume Desmottes, Alexandre Rostovtsev,
|
|
||||||
Jasper St. Pierre, Ray Strode, Owen Taylor, Rico Tzschichholz
|
|
||||||
|
|
||||||
Translations:
|
|
||||||
OKANO Takayoshi [ja], Changwoo Ryu [ko], Jonh Wendell [pt_BR],
|
|
||||||
Luca Ferretti [it], Sandeep Sheshrao Shedmake [mr], Takanori MATSUURA [ja],
|
|
||||||
Andika Triwidada [id], Mantas Kriaučiūnas [lt], Nilamdyuti Goswami [as]
|
|
||||||
|
|
||||||
3.4.1
|
3.4.1
|
||||||
=====
|
=====
|
||||||
* Fix crash that occurred when an icon theme change caused unexpected
|
* Fix crash that occurred when an icon theme change caused unexpected
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
AC_PREREQ(2.63)
|
AC_PREREQ(2.63)
|
||||||
AC_INIT([gnome-shell],[3.4.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
|
AC_INIT([gnome-shell],[3.4.1],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
|
||||||
|
|
||||||
AC_CONFIG_HEADERS([config.h])
|
AC_CONFIG_HEADERS([config.h])
|
||||||
AC_CONFIG_SRCDIR([src/shell-global.c])
|
AC_CONFIG_SRCDIR([src/shell-global.c])
|
||||||
@ -108,8 +108,6 @@ AC_DEFINE_UNQUOTED([GJS_VERSION], ["$GJS_VERSION"], [The version of GJS we're li
|
|||||||
AC_SUBST([GJS_VERSION], ["$GJS_VERSION"])
|
AC_SUBST([GJS_VERSION], ["$GJS_VERSION"])
|
||||||
|
|
||||||
GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_MIN_VERSION])
|
GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_MIN_VERSION])
|
||||||
JHBUILD_TYPELIBDIR="$INTROSPECTION_TYPELIBDIR"
|
|
||||||
AC_SUBST(JHBUILD_TYPELIBDIR)
|
|
||||||
|
|
||||||
saved_CFLAGS=$CFLAGS
|
saved_CFLAGS=$CFLAGS
|
||||||
saved_LIBS=$LIBS
|
saved_LIBS=$LIBS
|
||||||
|
@ -88,6 +88,13 @@ value here is from the GsmPresenceStatus enumeration.</_summary>
|
|||||||
Keybinding to open the application menu.
|
Keybinding to open the application menu.
|
||||||
</_description>
|
</_description>
|
||||||
</key>
|
</key>
|
||||||
|
<key name="toggle-recording" type="as">
|
||||||
|
<default><![CDATA[['<Control><Shift><Alt>r']]]></default>
|
||||||
|
<_summary>Keybinding to toggle the screen recorder</_summary>
|
||||||
|
<_description>
|
||||||
|
Keybinding to start/stop the builtin screen recorder.
|
||||||
|
</_description>
|
||||||
|
</key>
|
||||||
</schema>
|
</schema>
|
||||||
|
|
||||||
<schema id="org.gnome.shell.keyboard" path="/org/gnome/shell/keyboard/"
|
<schema id="org.gnome.shell.keyboard" path="/org/gnome/shell/keyboard/"
|
||||||
|
@ -1203,7 +1203,8 @@ StScrollBar StButton#vhandle:hover
|
|||||||
height: 36px;
|
height: 36px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#notification {
|
.notification {
|
||||||
|
font-size: 11pt;
|
||||||
border-radius: 10px 10px 0px 0px;
|
border-radius: 10px 10px 0px 0px;
|
||||||
background: rgba(0,0,0,0.8);
|
background: rgba(0,0,0,0.8);
|
||||||
padding: 8px 8px 4px 8px;
|
padding: 8px 8px 4px 8px;
|
||||||
@ -1212,7 +1213,7 @@ StScrollBar StButton#vhandle:hover
|
|||||||
width: 34em;
|
width: 34em;
|
||||||
}
|
}
|
||||||
|
|
||||||
#notification.multi-line-notification {
|
.notification.multi-line-notification {
|
||||||
padding-bottom: 8px;
|
padding-bottom: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1234,7 +1235,7 @@ StScrollBar StButton#vhandle:hover
|
|||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.summary-boxpointer #notification {
|
.summary-boxpointer .notification {
|
||||||
border-radius: 9px;
|
border-radius: 9px;
|
||||||
background: rgba(0,0,0,0) !important;
|
background: rgba(0,0,0,0) !important;
|
||||||
padding-bottom: 12px;
|
padding-bottom: 12px;
|
||||||
@ -1251,10 +1252,6 @@ StScrollBar StButton#vhandle:hover
|
|||||||
padding-bottom: 6px;
|
padding-bottom: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#summary-notification-stack-scrollview > .top-shadow, #summary-notification-stack-scrollview > .bottom-shadow {
|
|
||||||
height: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#summary-notification-stack-scrollview:ltr {
|
#summary-notification-stack-scrollview:ltr {
|
||||||
padding-right: 8px;
|
padding-right: 8px;
|
||||||
}
|
}
|
||||||
@ -1263,28 +1260,24 @@ StScrollBar StButton#vhandle:hover
|
|||||||
padding-left: 8px;
|
padding-left: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#notification-scrollview {
|
.notification-scrollview {
|
||||||
max-height: 10em;
|
max-height: 10em;
|
||||||
-st-vfade-offset: 24px;
|
-st-vfade-offset: 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#notification-scrollview > .top-shadow, #notification-scrollview > .bottom-shadow {
|
.notification-scrollview:ltr > StScrollBar {
|
||||||
height: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#notification-scrollview:ltr > StScrollBar {
|
|
||||||
padding-left: 6px;
|
padding-left: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#notification-scrollview:rtl > StScrollBar {
|
.notification-scrollview:rtl > StScrollBar {
|
||||||
padding-right: 6px;
|
padding-right: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#notification-body {
|
.notification-body {
|
||||||
spacing: 5px;
|
spacing: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#notification-actions {
|
.notification-actions {
|
||||||
spacing: 10px;
|
spacing: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1411,7 +1404,7 @@ StScrollBar StButton#vhandle:hover
|
|||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
#notification StEntry {
|
.notification StEntry {
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
color: #a8a8a8;
|
color: #a8a8a8;
|
||||||
@ -1427,7 +1420,7 @@ StScrollBar StButton#vhandle:hover
|
|||||||
caret-size: 1px;
|
caret-size: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#notification StEntry:focus {
|
.notification StEntry:focus {
|
||||||
border: 1px solid #8b8b8b;
|
border: 1px solid #8b8b8b;
|
||||||
color: #333333;
|
color: #333333;
|
||||||
background-gradient-direction: vertical;
|
background-gradient-direction: vertical;
|
||||||
@ -2047,3 +2040,30 @@ StScrollBar StButton#vhandle:hover
|
|||||||
-arrow-rise: 10px;
|
-arrow-rise: 10px;
|
||||||
-boxpointer-gap: 5px;
|
-boxpointer-gap: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Candidate Window */
|
||||||
|
.candidate-panel {
|
||||||
|
min-width: 100px;
|
||||||
|
padding: .5em;
|
||||||
|
spacing: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.candidate-area {
|
||||||
|
padding-top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.candidate-label {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.candidate-hlabel-content {
|
||||||
|
padding: 0em .5em 0em 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.candidate-htext-content {
|
||||||
|
padding: 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.candidate-vcontent {
|
||||||
|
padding: 0em .5em 0em 0em;
|
||||||
|
}
|
||||||
|
@ -84,6 +84,7 @@ nobase_dist_js_DATA = \
|
|||||||
ui/shellDBus.js \
|
ui/shellDBus.js \
|
||||||
ui/statusIconDispatcher.js \
|
ui/statusIconDispatcher.js \
|
||||||
ui/status/accessibility.js \
|
ui/status/accessibility.js \
|
||||||
|
ui/status/candidatePanel.js \
|
||||||
ui/status/keyboard.js \
|
ui/status/keyboard.js \
|
||||||
ui/status/network.js \
|
ui/status/network.js \
|
||||||
ui/status/power.js \
|
ui/status/power.js \
|
||||||
|
@ -60,10 +60,8 @@ const PowerMenuButton = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_updateVisibility: function() {
|
_updateVisibility: function() {
|
||||||
if (!this._haveSuspend && !this._haveShutdown && !this._haveRestart)
|
let shouldBeVisible = (this._haveSuspend || this._haveShutdown || this._haveRestart);
|
||||||
this.actor.hide();
|
this.actor.visible = shouldBeVisible;
|
||||||
else
|
|
||||||
this.actor.show();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_updateHaveShutdown: function() {
|
_updateHaveShutdown: function() {
|
||||||
@ -76,11 +74,7 @@ const PowerMenuButton = new Lang.Class({
|
|||||||
else
|
else
|
||||||
this._haveShutdown = false;
|
this._haveShutdown = false;
|
||||||
|
|
||||||
if (this._haveShutdown)
|
this._powerOffItem.actor.visible = this._haveShutdown;
|
||||||
this._powerOffItem.actor.show();
|
|
||||||
else
|
|
||||||
this._powerOffItem.actor.hide();
|
|
||||||
|
|
||||||
this._updateVisibility();
|
this._updateVisibility();
|
||||||
}));
|
}));
|
||||||
} else {
|
} else {
|
||||||
@ -91,12 +85,7 @@ const PowerMenuButton = new Lang.Class({
|
|||||||
else
|
else
|
||||||
this._haveShutdown = false;
|
this._haveShutdown = false;
|
||||||
|
|
||||||
if (this._haveShutdown) {
|
this._powerOffItem.actor.visible = this._haveShutdown;
|
||||||
this._powerOffItem.actor.show();
|
|
||||||
} else {
|
|
||||||
this._powerOffItem.actor.hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
this._updateVisibility();
|
this._updateVisibility();
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
@ -112,11 +101,7 @@ const PowerMenuButton = new Lang.Class({
|
|||||||
else
|
else
|
||||||
this._haveRestart = false;
|
this._haveRestart = false;
|
||||||
|
|
||||||
if (this._haveRestart)
|
this._restartItem.actor.visible = this._haveRestart;
|
||||||
this._restartItem.actor.show();
|
|
||||||
else
|
|
||||||
this._restartItem.actor.hide();
|
|
||||||
|
|
||||||
this._updateVisibility();
|
this._updateVisibility();
|
||||||
}));
|
}));
|
||||||
} else {
|
} else {
|
||||||
@ -127,12 +112,7 @@ const PowerMenuButton = new Lang.Class({
|
|||||||
else
|
else
|
||||||
this._haveRestart = false;
|
this._haveRestart = false;
|
||||||
|
|
||||||
if (this._haveRestart) {
|
this._restartItem.actor.visible = this._haveRestart;
|
||||||
this._restartItem.actor.show();
|
|
||||||
} else {
|
|
||||||
this._restartItem.actor.hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
this._updateVisibility();
|
this._updateVisibility();
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
@ -140,12 +120,7 @@ const PowerMenuButton = new Lang.Class({
|
|||||||
|
|
||||||
_updateHaveSuspend: function() {
|
_updateHaveSuspend: function() {
|
||||||
this._haveSuspend = this._upClient.get_can_suspend();
|
this._haveSuspend = this._upClient.get_can_suspend();
|
||||||
|
this._suspendItem.actor.visible = this._haveSuspend;
|
||||||
if (this._haveSuspend)
|
|
||||||
this._suspendItem.actor.show();
|
|
||||||
else
|
|
||||||
this._suspendItem.actor.hide();
|
|
||||||
|
|
||||||
this._updateVisibility();
|
this._updateVisibility();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -168,7 +168,17 @@ const DashItemContainer = new Lang.Class({
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
destroy: function() {
|
||||||
|
if (this.label)
|
||||||
|
this.label.destroy();
|
||||||
|
|
||||||
|
this.actor.destroy();
|
||||||
|
},
|
||||||
|
|
||||||
animateOutAndDestroy: function() {
|
animateOutAndDestroy: function() {
|
||||||
|
if (this.label)
|
||||||
|
this.label.destroy();
|
||||||
|
|
||||||
if (this.child == null) {
|
if (this.child == null) {
|
||||||
this.actor.destroy();
|
this.actor.destroy();
|
||||||
return;
|
return;
|
||||||
@ -691,7 +701,7 @@ const Dash = new Lang.Class({
|
|||||||
if (Main.overview.visible)
|
if (Main.overview.visible)
|
||||||
item.animateOutAndDestroy();
|
item.animateOutAndDestroy();
|
||||||
else
|
else
|
||||||
item.actor.destroy();
|
item.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
this._adjustIconSize();
|
this._adjustIconSize();
|
||||||
|
@ -39,11 +39,19 @@ function _patchContainerClass(containerClass) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _makeLoggingFunc(func) {
|
||||||
|
return function() {
|
||||||
|
return func([].join.call(arguments, ', '));
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
// Add some bindings to the global JS namespace; (gjs keeps the web
|
// Add some bindings to the global JS namespace; (gjs keeps the web
|
||||||
// browser convention of having that namespace be called 'window'.)
|
// browser convention of having that namespace be called 'window'.)
|
||||||
window.global = Shell.Global.get();
|
window.global = Shell.Global.get();
|
||||||
|
|
||||||
|
window.log = _makeLoggingFunc(window.log);
|
||||||
|
|
||||||
window._ = Gettext.gettext;
|
window._ = Gettext.gettext;
|
||||||
window.C_ = Gettext.pgettext;
|
window.C_ = Gettext.pgettext;
|
||||||
window.ngettext = Gettext.ngettext;
|
window.ngettext = Gettext.ngettext;
|
||||||
|
@ -634,45 +634,6 @@ const Inspector = new Lang.Class({
|
|||||||
|
|
||||||
Signals.addSignalMethods(Inspector.prototype);
|
Signals.addSignalMethods(Inspector.prototype);
|
||||||
|
|
||||||
const ErrorLog = new Lang.Class({
|
|
||||||
Name: 'ErrorLog',
|
|
||||||
|
|
||||||
_init: function() {
|
|
||||||
this.actor = new St.BoxLayout();
|
|
||||||
this.text = new St.Label();
|
|
||||||
this.actor.add(this.text);
|
|
||||||
// We need to override StLabel's default ellipsization when
|
|
||||||
// using line_wrap; otherwise ClutterText's layout is going
|
|
||||||
// to constrain both the width and height, which prevents
|
|
||||||
// scrolling.
|
|
||||||
this.text.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
|
|
||||||
this.text.clutter_text.line_wrap = true;
|
|
||||||
this.actor.connect('notify::mapped', Lang.bind(this, this._renderText));
|
|
||||||
},
|
|
||||||
|
|
||||||
_formatTime: function(d){
|
|
||||||
function pad(n) { return n < 10 ? '0' + n : n; }
|
|
||||||
return d.getUTCFullYear()+'-'
|
|
||||||
+ pad(d.getUTCMonth()+1)+'-'
|
|
||||||
+ pad(d.getUTCDate())+'T'
|
|
||||||
+ pad(d.getUTCHours())+':'
|
|
||||||
+ pad(d.getUTCMinutes())+':'
|
|
||||||
+ pad(d.getUTCSeconds())+'Z';
|
|
||||||
},
|
|
||||||
|
|
||||||
_renderText: function() {
|
|
||||||
if (!this.actor.mapped)
|
|
||||||
return;
|
|
||||||
let text = this.text.text;
|
|
||||||
let stack = Main._getAndClearErrorStack();
|
|
||||||
for (let i = 0; i < stack.length; i++) {
|
|
||||||
let logItem = stack[i];
|
|
||||||
text += logItem.category + ' t=' + this._formatTime(new Date(logItem.timestamp)) + ' ' + logItem.message + '\n';
|
|
||||||
}
|
|
||||||
this.text.text = text;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const Memory = new Lang.Class({
|
const Memory = new Lang.Class({
|
||||||
Name: 'Memory',
|
Name: 'Memory',
|
||||||
|
|
||||||
@ -947,9 +908,6 @@ const LookingGlass = new Lang.Class({
|
|||||||
}));
|
}));
|
||||||
notebook.appendPage('Windows', this._windowList.actor);
|
notebook.appendPage('Windows', this._windowList.actor);
|
||||||
|
|
||||||
this._errorLog = new ErrorLog();
|
|
||||||
notebook.appendPage('Errors', this._errorLog.actor);
|
|
||||||
|
|
||||||
this._memory = new Memory();
|
this._memory = new Memory();
|
||||||
notebook.appendPage('Memory', this._memory.actor);
|
notebook.appendPage('Memory', this._memory.actor);
|
||||||
|
|
||||||
|
@ -1228,10 +1228,7 @@ const Crosshairs = new Lang.Class({
|
|||||||
crosshairsActor = new Clutter.Clone({ source: this._actor });
|
crosshairsActor = new Clutter.Clone({ source: this._actor });
|
||||||
this._clones.push(crosshairsActor);
|
this._clones.push(crosshairsActor);
|
||||||
}
|
}
|
||||||
if (this._actor.visible)
|
crosshairsActor.visible = this._actor.visible;
|
||||||
crosshairsActor.show();
|
|
||||||
else
|
|
||||||
crosshairsActor.hide();
|
|
||||||
|
|
||||||
container.add_actor(crosshairsActor);
|
container.add_actor(crosshairsActor);
|
||||||
container.raise_child(magnifiedMouse, crosshairsActor);
|
container.raise_child(magnifiedMouse, crosshairsActor);
|
||||||
|
@ -67,7 +67,6 @@ let statusIconDispatcher = null;
|
|||||||
let keyboard = null;
|
let keyboard = null;
|
||||||
let layoutManager = null;
|
let layoutManager = null;
|
||||||
let networkAgent = null;
|
let networkAgent = null;
|
||||||
let _errorLogStack = [];
|
|
||||||
let _startDate;
|
let _startDate;
|
||||||
let _defaultCssStylesheet = null;
|
let _defaultCssStylesheet = null;
|
||||||
let _cssStylesheet = null;
|
let _cssStylesheet = null;
|
||||||
@ -101,14 +100,17 @@ function _createGDMSession() {
|
|||||||
|
|
||||||
function _initRecorder() {
|
function _initRecorder() {
|
||||||
let recorderSettings = new Gio.Settings({ schema: 'org.gnome.shell.recorder' });
|
let recorderSettings = new Gio.Settings({ schema: 'org.gnome.shell.recorder' });
|
||||||
|
let bindingSettings = new Gio.Settings({ schema: 'org.gnome.shell.keybindings' });
|
||||||
|
|
||||||
global.screen.connect('toggle-recording', function() {
|
global.display.add_keybinding('toggle-recording',
|
||||||
|
bindingSettings,
|
||||||
|
Meta.KeyBindingFlags.NONE, function() {
|
||||||
if (recorder == null) {
|
if (recorder == null) {
|
||||||
recorder = new Shell.Recorder({ stage: global.stage });
|
recorder = new Shell.Recorder({ stage: global.stage });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (recorder.is_recording()) {
|
if (recorder.is_recording()) {
|
||||||
recorder.pause();
|
recorder.close();
|
||||||
Meta.enable_unredirect_for_screen(global.screen);
|
Meta.enable_unredirect_for_screen(global.screen);
|
||||||
} else {
|
} else {
|
||||||
// read the parameters from GSettings always in case they have changed
|
// read the parameters from GSettings always in case they have changed
|
||||||
@ -150,11 +152,9 @@ function _initUserSession() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
// Monkey patch utility functions into the global proxy;
|
// These are here so we don't break compatibility.
|
||||||
// This is easier and faster than indirecting down into global
|
global.logError = window.log;
|
||||||
// if we want to call back up into JS.
|
global.log = window.log;
|
||||||
global.logError = _logError;
|
|
||||||
global.log = _logDebug;
|
|
||||||
|
|
||||||
// Chain up async errors reported from C
|
// Chain up async errors reported from C
|
||||||
global.connect('notify-error', function (global, msg, detail) { notifyError(msg, detail); });
|
global.connect('notify-error', function (global, msg, detail) { notifyError(msg, detail); });
|
||||||
@ -251,7 +251,6 @@ function start() {
|
|||||||
|
|
||||||
global.stage.connect('captured-event', _globalKeyPressHandler);
|
global.stage.connect('captured-event', _globalKeyPressHandler);
|
||||||
|
|
||||||
_log('info', 'loaded at ' + _startDate);
|
|
||||||
log('GNOME Shell started at ' + _startDate);
|
log('GNOME Shell started at ' + _startDate);
|
||||||
|
|
||||||
let perfModuleName = GLib.getenv("SHELL_PERF_MODULE");
|
let perfModuleName = GLib.getenv("SHELL_PERF_MODULE");
|
||||||
@ -537,59 +536,6 @@ function notifyError(msg, details) {
|
|||||||
notify(msg, details);
|
notify(msg, details);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* _log:
|
|
||||||
* @category: string message type ('info', 'error')
|
|
||||||
* @msg: A message string
|
|
||||||
* ...: Any further arguments are converted into JSON notation,
|
|
||||||
* and appended to the log message, separated by spaces.
|
|
||||||
*
|
|
||||||
* Log a message into the LookingGlass error
|
|
||||||
* stream. This is primarily intended for use by the
|
|
||||||
* extension system as well as debugging.
|
|
||||||
*/
|
|
||||||
function _log(category, msg) {
|
|
||||||
let text = msg;
|
|
||||||
if (arguments.length > 2) {
|
|
||||||
text += ': ';
|
|
||||||
for (let i = 2; i < arguments.length; i++) {
|
|
||||||
text += JSON.stringify(arguments[i]);
|
|
||||||
if (i < arguments.length - 1)
|
|
||||||
text += ' ';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_errorLogStack.push({timestamp: new Date().getTime(),
|
|
||||||
category: category,
|
|
||||||
message: text });
|
|
||||||
}
|
|
||||||
|
|
||||||
function _logError(msg) {
|
|
||||||
return _log('error', msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
function _logDebug(msg) {
|
|
||||||
return _log('debug', msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Used by the error display in lookingGlass.js
|
|
||||||
function _getAndClearErrorStack() {
|
|
||||||
let errors = _errorLogStack;
|
|
||||||
_errorLogStack = [];
|
|
||||||
return errors;
|
|
||||||
}
|
|
||||||
|
|
||||||
function logStackTrace(msg) {
|
|
||||||
try {
|
|
||||||
throw new Error();
|
|
||||||
} catch (e) {
|
|
||||||
// e.stack must have at least two lines, with the first being
|
|
||||||
// logStackTrace() (which we strip off), and the second being
|
|
||||||
// our caller.
|
|
||||||
let trace = e.stack.substr(e.stack.indexOf('\n') + 1);
|
|
||||||
log(msg ? (msg + '\n' + trace) : trace);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function isWindowActorDisplayedOnWorkspace(win, workspaceIndex) {
|
function isWindowActorDisplayedOnWorkspace(win, workspaceIndex) {
|
||||||
return win.get_workspace() == workspaceIndex ||
|
return win.get_workspace() == workspaceIndex ||
|
||||||
(win.get_meta_window() && win.get_meta_window().is_on_all_workspaces());
|
(win.get_meta_window() && win.get_meta_window().is_on_all_workspaces());
|
||||||
|
@ -441,7 +441,7 @@ const Notification = new Lang.Class({
|
|||||||
this.actor.connect('clicked', Lang.bind(this, this._onClicked));
|
this.actor.connect('clicked', Lang.bind(this, this._onClicked));
|
||||||
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
|
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
|
||||||
|
|
||||||
this._table = new St.Table({ name: 'notification',
|
this._table = new St.Table({ style_class: 'notification',
|
||||||
reactive: true });
|
reactive: true });
|
||||||
this._table.connect('style-changed', Lang.bind(this, this._styleChanged));
|
this._table.connect('style-changed', Lang.bind(this, this._styleChanged));
|
||||||
this.actor.set_child(this._table);
|
this.actor.set_child(this._table);
|
||||||
@ -586,19 +586,21 @@ const Notification = new Lang.Class({
|
|||||||
|
|
||||||
enableScrolling: function(enableScrolling) {
|
enableScrolling: function(enableScrolling) {
|
||||||
this._scrollPolicy = enableScrolling ? Gtk.PolicyType.AUTOMATIC : Gtk.PolicyType.NEVER;
|
this._scrollPolicy = enableScrolling ? Gtk.PolicyType.AUTOMATIC : Gtk.PolicyType.NEVER;
|
||||||
if (this._scrollArea)
|
if (this._scrollArea) {
|
||||||
this._scrollArea.vscrollbar_policy = this._scrollPolicy;
|
this._scrollArea.vscrollbar_policy = this._scrollPolicy;
|
||||||
|
this._scrollArea.enable_mouse_scrolling = enableScrolling;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_createScrollArea: function() {
|
_createScrollArea: function() {
|
||||||
this._table.add_style_class_name('multi-line-notification');
|
this._table.add_style_class_name('multi-line-notification');
|
||||||
this._scrollArea = new St.ScrollView({ name: 'notification-scrollview',
|
this._scrollArea = new St.ScrollView({ style_class: 'notification-scrollview',
|
||||||
vscrollbar_policy: this._scrollPolicy,
|
vscrollbar_policy: this._scrollPolicy,
|
||||||
hscrollbar_policy: Gtk.PolicyType.NEVER });
|
hscrollbar_policy: Gtk.PolicyType.NEVER });
|
||||||
this._table.add(this._scrollArea, { row: 1,
|
this._table.add(this._scrollArea, { row: 1,
|
||||||
col: 2 });
|
col: 2 });
|
||||||
this._updateLastColumnSettings();
|
this._updateLastColumnSettings();
|
||||||
this._contentArea = new St.BoxLayout({ name: 'notification-body',
|
this._contentArea = new St.BoxLayout({ style_class: 'notification-body',
|
||||||
vertical: true });
|
vertical: true });
|
||||||
this._scrollArea.add_actor(this._contentArea);
|
this._scrollArea.add_actor(this._contentArea);
|
||||||
// If we know the notification will be expandable, we need to add
|
// If we know the notification will be expandable, we need to add
|
||||||
@ -734,7 +736,7 @@ const Notification = new Lang.Class({
|
|||||||
addButton: function(id, label) {
|
addButton: function(id, label) {
|
||||||
if (!this._buttonBox) {
|
if (!this._buttonBox) {
|
||||||
|
|
||||||
let box = new St.BoxLayout({ name: 'notification-actions' });
|
let box = new St.BoxLayout({ style_class: 'notification-actions' });
|
||||||
this.setActionArea(box, { x_expand: false,
|
this.setActionArea(box, { x_expand: false,
|
||||||
y_expand: false,
|
y_expand: false,
|
||||||
x_fill: false,
|
x_fill: false,
|
||||||
|
@ -221,19 +221,12 @@ const NotificationDaemon = new Lang.Class({
|
|||||||
let [appName, replacesId, icon, summary, body, actions, hints, timeout] = params;
|
let [appName, replacesId, icon, summary, body, actions, hints, timeout] = params;
|
||||||
let id;
|
let id;
|
||||||
|
|
||||||
for (let hint in hints) {
|
|
||||||
// unpack the variants
|
|
||||||
hints[hint] = hints[hint].deep_unpack();
|
|
||||||
}
|
|
||||||
|
|
||||||
hints = Params.parse(hints, { urgency: Urgency.NORMAL }, true);
|
|
||||||
|
|
||||||
// Filter out chat, presence, calls and invitation notifications from
|
// Filter out chat, presence, calls and invitation notifications from
|
||||||
// Empathy, since we handle that information from telepathyClient.js
|
// Empathy, since we handle that information from telepathyClient.js
|
||||||
if (appName == 'Empathy' && (hints['category'] == 'im.received' ||
|
if (appName == 'Empathy' && (hints['category'] == 'im.received' ||
|
||||||
hints['category'] == 'x-empathy.im.room-invitation' ||
|
hints['category'] == 'x-empathy.im.room-invitation' ||
|
||||||
hints['category'] == 'x-empathy.call.incoming' ||
|
hints['category'] == 'x-empathy.call.incoming' ||
|
||||||
hints['category'] == 'x-empathy.transfer.incoming' ||
|
hints['category'] == 'x-empathy.call.incoming"' ||
|
||||||
hints['category'] == 'x-empathy.im.subscription-request' ||
|
hints['category'] == 'x-empathy.im.subscription-request' ||
|
||||||
hints['category'] == 'presence.online' ||
|
hints['category'] == 'presence.online' ||
|
||||||
hints['category'] == 'presence.offline')) {
|
hints['category'] == 'presence.offline')) {
|
||||||
@ -256,6 +249,13 @@ const NotificationDaemon = new Lang.Class({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (let hint in hints) {
|
||||||
|
// unpack the variants
|
||||||
|
hints[hint] = hints[hint].deep_unpack();
|
||||||
|
}
|
||||||
|
|
||||||
|
hints = Params.parse(hints, { urgency: Urgency.NORMAL }, true);
|
||||||
|
|
||||||
// Be compatible with the various hints for image data and image path
|
// Be compatible with the various hints for image data and image path
|
||||||
// 'image-data' and 'image-path' are the latest name of these hints, introduced in 1.2
|
// 'image-data' and 'image-path' are the latest name of these hints, introduced in 1.2
|
||||||
|
|
||||||
@ -578,11 +578,27 @@ const Source = new Lang.Class({
|
|||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_getApp: function() {
|
||||||
|
let app;
|
||||||
|
|
||||||
|
app = Shell.WindowTracker.get_default().get_app_from_pid(this.pid);
|
||||||
|
if (app != null)
|
||||||
|
return app;
|
||||||
|
|
||||||
|
if (this.trayIcon) {
|
||||||
|
app = Shell.AppSystem.get_default().lookup_wmclass(this.trayIcon.wmclass);
|
||||||
|
if (app != null)
|
||||||
|
return app;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
|
||||||
_setApp: function() {
|
_setApp: function() {
|
||||||
if (this.app)
|
if (this.app)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this.app = Shell.WindowTracker.get_default().get_app_from_pid(this.pid);
|
this.app = this._getApp();
|
||||||
if (!this.app)
|
if (!this.app)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ const STANDARD_STATUS_AREA_SHELL_IMPLEMENTATION = {
|
|||||||
'a11y': imports.ui.status.accessibility.ATIndicator,
|
'a11y': imports.ui.status.accessibility.ATIndicator,
|
||||||
'volume': imports.ui.status.volume.Indicator,
|
'volume': imports.ui.status.volume.Indicator,
|
||||||
'battery': imports.ui.status.power.Indicator,
|
'battery': imports.ui.status.power.Indicator,
|
||||||
'keyboard': imports.ui.status.keyboard.XKBIndicator,
|
'keyboard': imports.ui.status.keyboard.InputSourceIndicator,
|
||||||
'userMenu': imports.ui.userMenu.UserMenuButton
|
'userMenu': imports.ui.userMenu.UserMenuButton
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -55,7 +55,7 @@ const GDM_STATUS_AREA_SHELL_IMPLEMENTATION = {
|
|||||||
'a11y': imports.ui.status.accessibility.ATIndicator,
|
'a11y': imports.ui.status.accessibility.ATIndicator,
|
||||||
'volume': imports.ui.status.volume.Indicator,
|
'volume': imports.ui.status.volume.Indicator,
|
||||||
'battery': imports.ui.status.power.Indicator,
|
'battery': imports.ui.status.power.Indicator,
|
||||||
'keyboard': imports.ui.status.keyboard.XKBIndicator,
|
'keyboard': imports.ui.status.keyboard.InputSourceIndicator,
|
||||||
'powerMenu': imports.gdm.powerMenu.PowerMenuButton
|
'powerMenu': imports.gdm.powerMenu.PowerMenuButton
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -546,6 +546,10 @@ const PopupSliderMenuItem = new Lang.Class({
|
|||||||
this._slider.connect('repaint', Lang.bind(this, this._sliderRepaint));
|
this._slider.connect('repaint', Lang.bind(this, this._sliderRepaint));
|
||||||
this.actor.connect('button-press-event', Lang.bind(this, this._startDragging));
|
this.actor.connect('button-press-event', Lang.bind(this, this._startDragging));
|
||||||
this.actor.connect('scroll-event', Lang.bind(this, this._onScrollEvent));
|
this.actor.connect('scroll-event', Lang.bind(this, this._onScrollEvent));
|
||||||
|
this.actor.connect('notify::mapped', Lang.bind(this, function() {
|
||||||
|
if (!this.actor.mapped)
|
||||||
|
this._endDragging();
|
||||||
|
}));
|
||||||
|
|
||||||
this._releaseId = this._motionId = 0;
|
this._releaseId = this._motionId = 0;
|
||||||
this._dragging = false;
|
this._dragging = false;
|
||||||
@ -1917,7 +1921,7 @@ const RemoteMenu = new Lang.Class({
|
|||||||
while (k0 < currentItems.length && currentItems[k0]._ignored)
|
while (k0 < currentItems.length && currentItems[k0]._ignored)
|
||||||
k0++;
|
k0++;
|
||||||
// find the right menu item matching the model item
|
// find the right menu item matching the model item
|
||||||
for (j0 = 0; k0 < currentItems.length && j0 < position; j0++, k0++) {
|
for (j0 = 0; j0 < position; j0++, k0++) {
|
||||||
if (currentItems[k0]._ignored)
|
if (currentItems[k0]._ignored)
|
||||||
k0++;
|
k0++;
|
||||||
}
|
}
|
||||||
@ -1927,7 +1931,7 @@ const RemoteMenu = new Lang.Class({
|
|||||||
for (k = k0; k < currentItems.length; k++)
|
for (k = k0; k < currentItems.length; k++)
|
||||||
currentItems[k].destroy();
|
currentItems[k].destroy();
|
||||||
} else {
|
} else {
|
||||||
for (j = j0, k = k0; k < currentItems.length && j < j0 + removed; j++, k++) {
|
for (j = j0, k = k0; j < j0 + removed; j++, k++) {
|
||||||
currentItems[k].destroy();
|
currentItems[k].destroy();
|
||||||
|
|
||||||
if (currentItems[k]._ignored)
|
if (currentItems[k]._ignored)
|
||||||
@ -1958,9 +1962,8 @@ const RemoteMenu = new Lang.Class({
|
|||||||
k++;
|
k++;
|
||||||
}
|
}
|
||||||
} else if (changeSignal) {
|
} else if (changeSignal) {
|
||||||
let signalId = this.actionGroup.connect(changeSignal, Lang.bind(this, function(actionGroup, actionName) {
|
let signalId = this.actionGroup.connect(changeSignal, Lang.bind(this, function() {
|
||||||
actionGroup.disconnect(signalId);
|
this.actionGroup.disconnect(signalId);
|
||||||
if (this._actions[actionName]) return;
|
|
||||||
|
|
||||||
// force a full update
|
// force a full update
|
||||||
this._modelChanged(model, 0, -1, model.get_n_items(), target);
|
this._modelChanged(model, 0, -1, model.get_n_items(), target);
|
||||||
|
@ -395,10 +395,17 @@ const SearchResults = new Lang.Class({
|
|||||||
function(metas) {
|
function(metas) {
|
||||||
this._clearDisplayForProvider(provider);
|
this._clearDisplayForProvider(provider);
|
||||||
meta.actor.show();
|
meta.actor.show();
|
||||||
|
|
||||||
|
// Hinding drops the key focus if we have it
|
||||||
|
let focus = global.stage.get_key_focus();
|
||||||
this._content.hide();
|
this._content.hide();
|
||||||
|
|
||||||
meta.resultDisplay.renderResults(metas);
|
meta.resultDisplay.renderResults(metas);
|
||||||
this._maybeSetInitialSelection();
|
this._maybeSetInitialSelection();
|
||||||
|
|
||||||
this._content.show();
|
this._content.show();
|
||||||
|
if (this._content.contains(focus))
|
||||||
|
global.stage.set_key_focus(focus);
|
||||||
}));
|
}));
|
||||||
} else {
|
} else {
|
||||||
let metas = provider.getResultMetas(results);
|
let metas = provider.getResultMetas(results);
|
||||||
|
@ -48,11 +48,6 @@ function _setLabelsForMessage(dialog, message) {
|
|||||||
_setLabelText(dialog.descriptionLabel, labels[1]);
|
_setLabelText(dialog.descriptionLabel, labels[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
function _createIcon(gicon) {
|
|
||||||
return new St.Icon({ gicon: gicon,
|
|
||||||
style_class: 'shell-mount-operation-icon' })
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------------------- */
|
/* -------------------------------------------------------- */
|
||||||
|
|
||||||
const ListItem = new Lang.Class({
|
const ListItem = new Lang.Class({
|
||||||
@ -114,11 +109,12 @@ const ShellMountOperation = new Lang.Class({
|
|||||||
this.mountOp.connect('aborted',
|
this.mountOp.connect('aborted',
|
||||||
Lang.bind(this, this._onAborted));
|
Lang.bind(this, this._onAborted));
|
||||||
|
|
||||||
this._gicon = source.get_icon();
|
this._icon = new St.Icon({ gicon: source.get_icon(),
|
||||||
|
style_class: 'shell-mount-operation-icon' });
|
||||||
},
|
},
|
||||||
|
|
||||||
_onAskQuestion: function(op, message, choices) {
|
_onAskQuestion: function(op, message, choices) {
|
||||||
this._dialog = new ShellMountQuestionDialog(this._gicon);
|
this._dialog = new ShellMountQuestionDialog(this._icon);
|
||||||
|
|
||||||
this._dialog.connect('response',
|
this._dialog.connect('response',
|
||||||
Lang.bind(this, function(object, choice) {
|
Lang.bind(this, function(object, choice) {
|
||||||
@ -135,7 +131,7 @@ const ShellMountOperation = new Lang.Class({
|
|||||||
|
|
||||||
_onAskPassword: function(op, message) {
|
_onAskPassword: function(op, message) {
|
||||||
this._notificationShowing = true;
|
this._notificationShowing = true;
|
||||||
this._source = new ShellMountPasswordSource(message, this._gicon, this._reaskPassword);
|
this._source = new ShellMountPasswordSource(message, this._icon, this._reaskPassword);
|
||||||
|
|
||||||
this._source.connect('password-ready',
|
this._source.connect('password-ready',
|
||||||
Lang.bind(this, function(source, password) {
|
Lang.bind(this, function(source, password) {
|
||||||
@ -170,7 +166,7 @@ const ShellMountOperation = new Lang.Class({
|
|||||||
let message = op.get_show_processes_message();
|
let message = op.get_show_processes_message();
|
||||||
|
|
||||||
if (!this._processesDialog) {
|
if (!this._processesDialog) {
|
||||||
this._processesDialog = new ShellProcessesDialog(this._gicon);
|
this._processesDialog = new ShellProcessesDialog(this._icon);
|
||||||
this._dialog = this._processesDialog;
|
this._dialog = this._processesDialog;
|
||||||
|
|
||||||
this._processesDialog.connect('response',
|
this._processesDialog.connect('response',
|
||||||
@ -196,14 +192,14 @@ const ShellMountQuestionDialog = new Lang.Class({
|
|||||||
Name: 'ShellMountQuestionDialog',
|
Name: 'ShellMountQuestionDialog',
|
||||||
Extends: ModalDialog.ModalDialog,
|
Extends: ModalDialog.ModalDialog,
|
||||||
|
|
||||||
_init: function(gicon) {
|
_init: function(icon) {
|
||||||
this.parent({ styleClass: 'mount-question-dialog' });
|
this.parent({ styleClass: 'mount-question-dialog' });
|
||||||
|
|
||||||
let mainContentLayout = new St.BoxLayout();
|
let mainContentLayout = new St.BoxLayout();
|
||||||
this.contentLayout.add(mainContentLayout, { x_fill: true,
|
this.contentLayout.add(mainContentLayout, { x_fill: true,
|
||||||
y_fill: false });
|
y_fill: false });
|
||||||
|
|
||||||
this._iconBin = new St.Bin({ child: _createIcon(gicon) });
|
this._iconBin = new St.Bin({ child: icon });
|
||||||
mainContentLayout.add(this._iconBin,
|
mainContentLayout.add(this._iconBin,
|
||||||
{ x_fill: true,
|
{ x_fill: true,
|
||||||
y_fill: false,
|
y_fill: false,
|
||||||
@ -242,21 +238,16 @@ const ShellMountPasswordSource = new Lang.Class({
|
|||||||
Name: 'ShellMountPasswordSource',
|
Name: 'ShellMountPasswordSource',
|
||||||
Extends: MessageTray.Source,
|
Extends: MessageTray.Source,
|
||||||
|
|
||||||
_init: function(message, gicon, reaskPassword) {
|
_init: function(message, icon, reaskPassword) {
|
||||||
this._gicon = gicon;
|
|
||||||
|
|
||||||
let strings = message.split('\n');
|
let strings = message.split('\n');
|
||||||
this.parent(strings[0]);
|
this.parent(strings[0]);
|
||||||
this._notification = new ShellMountPasswordNotification(this, strings, reaskPassword);
|
|
||||||
|
this._notification = new ShellMountPasswordNotification(this, strings, icon, reaskPassword);
|
||||||
|
|
||||||
// add ourselves as a source, and popup the notification
|
// add ourselves as a source, and popup the notification
|
||||||
Main.messageTray.add(this);
|
Main.messageTray.add(this);
|
||||||
this.notify(this._notification);
|
this.notify(this._notification);
|
||||||
},
|
},
|
||||||
|
|
||||||
createNotificationIcon: function() {
|
|
||||||
return _createIcon(this._gicon);
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
Signals.addSignalMethods(ShellMountPasswordSource.prototype);
|
Signals.addSignalMethods(ShellMountPasswordSource.prototype);
|
||||||
|
|
||||||
@ -264,8 +255,8 @@ const ShellMountPasswordNotification = new Lang.Class({
|
|||||||
Name: 'ShellMountPasswordNotification',
|
Name: 'ShellMountPasswordNotification',
|
||||||
Extends: MessageTray.Notification,
|
Extends: MessageTray.Notification,
|
||||||
|
|
||||||
_init: function(source, strings, reaskPassword) {
|
_init: function(source, strings, icon, reaskPassword) {
|
||||||
this.parent(source, strings[0], null, { customContent: true });
|
this.parent(source, strings[0], null, { customContent: true, icon: icon });
|
||||||
|
|
||||||
// set the notification to transient and urgent, so that it
|
// set the notification to transient and urgent, so that it
|
||||||
// expands out
|
// expands out
|
||||||
@ -306,14 +297,14 @@ const ShellProcessesDialog = new Lang.Class({
|
|||||||
Name: 'ShellProcessesDialog',
|
Name: 'ShellProcessesDialog',
|
||||||
Extends: ModalDialog.ModalDialog,
|
Extends: ModalDialog.ModalDialog,
|
||||||
|
|
||||||
_init: function(gicon) {
|
_init: function(icon) {
|
||||||
this.parent({ styleClass: 'show-processes-dialog' });
|
this.parent({ styleClass: 'show-processes-dialog' });
|
||||||
|
|
||||||
let mainContentLayout = new St.BoxLayout();
|
let mainContentLayout = new St.BoxLayout();
|
||||||
this.contentLayout.add(mainContentLayout, { x_fill: true,
|
this.contentLayout.add(mainContentLayout, { x_fill: true,
|
||||||
y_fill: false });
|
y_fill: false });
|
||||||
|
|
||||||
this._iconBin = new St.Bin({ child: _createIcon(gicon) });
|
this._iconBin = new St.Bin({ child: icon });
|
||||||
mainContentLayout.add(this._iconBin,
|
mainContentLayout.add(this._iconBin,
|
||||||
{ x_fill: true,
|
{ x_fill: true,
|
||||||
y_fill: false,
|
y_fill: false,
|
||||||
|
@ -106,10 +106,7 @@ const Indicator = new Lang.Class({
|
|||||||
/* TRANSLATORS: this means that bluetooth was disabled by hardware rfkill */
|
/* TRANSLATORS: this means that bluetooth was disabled by hardware rfkill */
|
||||||
this._killswitch.setStatus(_("hardware disabled"));
|
this._killswitch.setStatus(_("hardware disabled"));
|
||||||
|
|
||||||
if (has_adapter)
|
this.actor.visible = has_adapter;
|
||||||
this.actor.show();
|
|
||||||
else
|
|
||||||
this.actor.hide();
|
|
||||||
|
|
||||||
if (on) {
|
if (on) {
|
||||||
this._discoverable.actor.show();
|
this._discoverable.actor.show();
|
||||||
|
584
js/ui/status/candidatePanel.js
Normal file
584
js/ui/status/candidatePanel.js
Normal file
@ -0,0 +1,584 @@
|
|||||||
|
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||||
|
/*
|
||||||
|
* Copyright 2012 Red Hat, Inc.
|
||||||
|
* Copyright 2012 Peng Huang <shawn.p.huang@gmail.com>
|
||||||
|
* Copyright 2012 Takao Fujiwara <tfujiwar@redhat.com>
|
||||||
|
* Copyright 2012 Tiger Soldier <tigersoldi@gmail.com>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Lesser General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 2.1 of
|
||||||
|
* the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT ANY
|
||||||
|
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
|
||||||
|
* more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
const St = imports.gi.St;
|
||||||
|
const GLib = imports.gi.GLib;
|
||||||
|
const IBus = imports.gi.IBus;
|
||||||
|
const Lang = imports.lang;
|
||||||
|
const Signals = imports.signals;
|
||||||
|
const Shell = imports.gi.Shell;
|
||||||
|
|
||||||
|
const BoxPointer = imports.ui.boxpointer;
|
||||||
|
const Main = imports.ui.main;
|
||||||
|
const PopupMenu = imports.ui.popupMenu;
|
||||||
|
|
||||||
|
const ORIENTATION_HORIZONTAL = 0;
|
||||||
|
const ORIENTATION_VERTICAL = 1;
|
||||||
|
const ORIENTATION_SYSTEM = 2;
|
||||||
|
|
||||||
|
const StCandidateArea = new Lang.Class({
|
||||||
|
Name: 'StCandidateArea',
|
||||||
|
|
||||||
|
_init: function(orientation) {
|
||||||
|
this.actor = new St.BoxLayout({ style_class: 'candidate-area' });
|
||||||
|
this._orientation = orientation;
|
||||||
|
this._labels = [];
|
||||||
|
this._labelBoxes = [];
|
||||||
|
this._createUI();
|
||||||
|
},
|
||||||
|
|
||||||
|
_removeOldWidgets: function() {
|
||||||
|
this.actor.destroy_all_children();
|
||||||
|
this._labels = [];
|
||||||
|
this._labelBoxes = [];
|
||||||
|
},
|
||||||
|
|
||||||
|
_createUI: function() {
|
||||||
|
let vbox = null;
|
||||||
|
let hbox = null;
|
||||||
|
if (this._orientation == ORIENTATION_VERTICAL) {
|
||||||
|
vbox = new St.BoxLayout({ vertical: true,
|
||||||
|
style_class: 'candidate-vertical' });
|
||||||
|
this.actor.add_child(vbox,
|
||||||
|
{ expand: true,
|
||||||
|
x_fill: true,
|
||||||
|
y_fill: true
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
hbox = new St.BoxLayout({ vertical: false,
|
||||||
|
style_class: 'candidate-horizontal' });
|
||||||
|
this.actor.add_child(hbox,
|
||||||
|
{ expand: true,
|
||||||
|
x_fill: true,
|
||||||
|
y_fill: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
for (let i = 0; i < 16; i++) {
|
||||||
|
let label1 = new St.Label({ text: '1234567890abcdef'.charAt(i) + '.',
|
||||||
|
style_class: 'popup-menu-item',
|
||||||
|
reactive: true });
|
||||||
|
|
||||||
|
let label2 = new St.Label({ text: '' ,
|
||||||
|
style_class: 'popup-menu-item',
|
||||||
|
reactive: true });
|
||||||
|
|
||||||
|
if (this._orientation == ORIENTATION_VERTICAL) {
|
||||||
|
let candidateHBox = new St.BoxLayout({vertical: false});
|
||||||
|
let labelBox = new St.Bin({ style_class: 'candidate-hlabel-content' });
|
||||||
|
labelBox.set_child(label1);
|
||||||
|
labelBox.set_fill(true, true);
|
||||||
|
let textBox = new St.Bin({ style_class: 'candidate-htext-content' });
|
||||||
|
|
||||||
|
textBox.set_child(label2);
|
||||||
|
textBox.set_fill(true, true);
|
||||||
|
candidateHBox.add_child(labelBox,
|
||||||
|
{ expand: false,
|
||||||
|
x_fill: false,
|
||||||
|
y_fill: true
|
||||||
|
});
|
||||||
|
candidateHBox.add_child(textBox,
|
||||||
|
{ expand: true,
|
||||||
|
x_fill: true,
|
||||||
|
y_fill: true
|
||||||
|
});
|
||||||
|
vbox.add_child(candidateHBox);
|
||||||
|
this._labelBoxes.push(candidateHBox);
|
||||||
|
} else {
|
||||||
|
let candidateHBox = new St.BoxLayout({ style_class: 'candidate-vcontent',
|
||||||
|
vertical: false });
|
||||||
|
candidateHBox.add_child(label1);
|
||||||
|
candidateHBox.add_child(label2);
|
||||||
|
hbox.add_child(candidateHBox);
|
||||||
|
this._labelBoxes.push(candidateHBox);
|
||||||
|
}
|
||||||
|
|
||||||
|
this._labels.push([label1, label2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let i = 0; i < this._labels.length; i++) {
|
||||||
|
for(let j = 0; j < this._labels[i].length; j++) {
|
||||||
|
let widget = this._labels[i][j];
|
||||||
|
widget.candidateIndex = i;
|
||||||
|
widget.connect('button-press-event',
|
||||||
|
Lang.bind(this, function (widget, event) {
|
||||||
|
this._candidateClickedCB(widget, event);
|
||||||
|
}));
|
||||||
|
widget.connect('enter-event',
|
||||||
|
function(widget, event) {
|
||||||
|
widget.add_style_pseudo_class('hover');
|
||||||
|
});
|
||||||
|
widget.connect('leave-event',
|
||||||
|
function(widget, event) {
|
||||||
|
widget.remove_style_pseudo_class('hover');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_recreateUI: function() {
|
||||||
|
this._removeOldWidgets();
|
||||||
|
this._createUI();
|
||||||
|
},
|
||||||
|
|
||||||
|
_candidateClickedCB: function(widget, event) {
|
||||||
|
this.emit('candidate-clicked',
|
||||||
|
widget.candidateIndex,
|
||||||
|
event.get_button(),
|
||||||
|
event.get_state());
|
||||||
|
},
|
||||||
|
|
||||||
|
setLabels: function(labels) {
|
||||||
|
if (!labels || labels.length == 0) {
|
||||||
|
for (let i = 0; i < 16; i++) {
|
||||||
|
this._labels[i][0].set_text('1234567890abcdef'.charAt(i) + '.');
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let i = 0; i < labels.length && i < this._labels.length; i++) {
|
||||||
|
/* Use a ClutterActor attribute of Shell's theme instead of
|
||||||
|
* Pango.AttrList for the lookup window GUI and
|
||||||
|
* can ignore 'attrs' simply from IBus engines?
|
||||||
|
*/
|
||||||
|
let [text, attrs] = labels[i];
|
||||||
|
this._labels[i][0].set_text(text);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
setCandidates: function(candidates, focusCandidate, showCursor) {
|
||||||
|
if (focusCandidate == undefined) {
|
||||||
|
focusCandidate = 0;
|
||||||
|
}
|
||||||
|
if (showCursor == undefined) {
|
||||||
|
showCursor = true;
|
||||||
|
}
|
||||||
|
if (candidates.length > this._labels.length) {
|
||||||
|
assert();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let i = 0; i < candidates.length; i++) {
|
||||||
|
/* Use a ClutterActor attribute of Shell's theme instead of
|
||||||
|
* Pango.AttrList for the lookup window GUI and
|
||||||
|
* can ignore 'attrs' simply from IBus engines?
|
||||||
|
*/
|
||||||
|
let [text, attrs] = candidates[i];
|
||||||
|
if (i == focusCandidate && showCursor) {
|
||||||
|
this._labels[i][1].add_style_pseudo_class('active');
|
||||||
|
} else {
|
||||||
|
this._labels[i][1].remove_style_pseudo_class('active');
|
||||||
|
}
|
||||||
|
this._labels[i][1].set_text(text);
|
||||||
|
this._labelBoxes[i].show();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let i = this._labelBoxes.length - 1; i >= candidates.length; i--) {
|
||||||
|
this._labelBoxes[i].hide();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
setOrientation: function(orientation) {
|
||||||
|
if (orientation == this._orientation)
|
||||||
|
return;
|
||||||
|
this._orientation = orientation;
|
||||||
|
this._recreateUI();
|
||||||
|
},
|
||||||
|
|
||||||
|
showAll: function() {
|
||||||
|
this.actor.show();
|
||||||
|
},
|
||||||
|
|
||||||
|
hideAll: function() {
|
||||||
|
this.actor.hide();
|
||||||
|
},
|
||||||
|
});
|
||||||
|
Signals.addSignalMethods(StCandidateArea.prototype);
|
||||||
|
|
||||||
|
const CandidatePanel = new Lang.Class({
|
||||||
|
Name: 'CandidatePanel',
|
||||||
|
|
||||||
|
_init: function() {
|
||||||
|
this._orientation = ORIENTATION_VERTICAL;
|
||||||
|
this._currentOrientation = this._orientation;
|
||||||
|
this._preeditVisible = false;
|
||||||
|
this._auxStringVisible = false;
|
||||||
|
this._lookupTableVisible = false;
|
||||||
|
this._lookupTable = null;
|
||||||
|
|
||||||
|
this._cursorLocation = [0, 0, 0, 0];
|
||||||
|
this._movedCursorLocation = null;
|
||||||
|
|
||||||
|
this._initSt();
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
_initSt: function() {
|
||||||
|
this._arrowSide = St.Side.TOP;
|
||||||
|
this._arrowAlignment = 0.0;
|
||||||
|
this._boxPointer = new BoxPointer.BoxPointer(this._arrowSide,
|
||||||
|
{ x_fill: true,
|
||||||
|
y_fill: true,
|
||||||
|
x_align: St.Align.START });
|
||||||
|
this.actor = this._boxPointer.actor;
|
||||||
|
this.actor._delegate = this;
|
||||||
|
this.actor.style_class = 'popup-menu-boxpointer';
|
||||||
|
this.actor.add_style_class_name('popup-menu');
|
||||||
|
this.actor.add_style_class_name('candidate-panel');
|
||||||
|
this._cursorActor = new Shell.GenericContainer();
|
||||||
|
Main.uiGroup.add_actor(this.actor);
|
||||||
|
Main.uiGroup.add_actor(this._cursorActor);
|
||||||
|
|
||||||
|
this._stCandidatePanel = new St.BoxLayout({ style_class: 'candidate-panel',
|
||||||
|
vertical: true });
|
||||||
|
this._boxPointer.bin.set_child(this._stCandidatePanel);
|
||||||
|
|
||||||
|
this._stPreeditLabel = new St.Label({ style_class: 'popup-menu-item',
|
||||||
|
text: '' });
|
||||||
|
if (!this._preeditVisible) {
|
||||||
|
this._stPreeditLabel.hide();
|
||||||
|
}
|
||||||
|
this._stAuxLabel = new St.Label({ style_class: 'popup-menu-item',
|
||||||
|
text: '' });
|
||||||
|
if (!this._auxVisible) {
|
||||||
|
this._stAuxLabel.hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
this._separator = new PopupMenu.PopupSeparatorMenuItem();
|
||||||
|
if (!this._preeditVisible && !this._auxVisible) {
|
||||||
|
this._separator.actor.hide();
|
||||||
|
}
|
||||||
|
// create candidates area
|
||||||
|
this._stCandidateArea = new StCandidateArea(this._currentOrientation);
|
||||||
|
this._stCandidateArea.connect('candidate-clicked',
|
||||||
|
Lang.bind(this, function(x, i, b, s) {
|
||||||
|
this.emit('candidate-clicked', i, b, s);}));
|
||||||
|
this.updateLookupTable(this._lookupTable, this._lookupTableVisible);
|
||||||
|
|
||||||
|
// TODO: page up/down GUI
|
||||||
|
|
||||||
|
this._packAllStWidgets();
|
||||||
|
this._isVisible = true;
|
||||||
|
this.hideAll();
|
||||||
|
this._checkShowStates();
|
||||||
|
},
|
||||||
|
|
||||||
|
_packAllStWidgets: function() {
|
||||||
|
this._stCandidatePanel.add_child(this._stPreeditLabel,
|
||||||
|
{ x_fill: true,
|
||||||
|
y_fill: false,
|
||||||
|
x_align: St.Align.MIDDLE,
|
||||||
|
y_align: St.Align.START });
|
||||||
|
this._stCandidatePanel.add_child(this._stAuxLabel,
|
||||||
|
{ x_fill: true,
|
||||||
|
y_fill: false,
|
||||||
|
x_align: St.Align.MIDDLE,
|
||||||
|
y_align: St.Align.MIDDLE });
|
||||||
|
this._stCandidatePanel.add_child(this._separator.actor,
|
||||||
|
{ x_fill: true,
|
||||||
|
y_fill: false,
|
||||||
|
x_align: St.Align.MIDDLE,
|
||||||
|
y_align: St.Align.MIDDLE });
|
||||||
|
this._stCandidatePanel.add_child(this._stCandidateArea.actor,
|
||||||
|
{ x_fill: true,
|
||||||
|
y_fill: false,
|
||||||
|
x_align: St.Align.MIDDLE,
|
||||||
|
y_align: St.Align.END });
|
||||||
|
},
|
||||||
|
|
||||||
|
showPreeditText: function() {
|
||||||
|
this._preeditVisible = true;
|
||||||
|
this._stPreeditLabel.show();
|
||||||
|
this._checkShowStates();
|
||||||
|
},
|
||||||
|
|
||||||
|
hidePreeditText: function() {
|
||||||
|
this._preeditVisible = false;
|
||||||
|
this._checkShowStates();
|
||||||
|
this._stPreeditLabel.hide();
|
||||||
|
},
|
||||||
|
|
||||||
|
updatePreeditText: function(text, cursorPos, visible) {
|
||||||
|
if (visible) {
|
||||||
|
this.showPreeditText();
|
||||||
|
} else {
|
||||||
|
this.hidePreeditText();
|
||||||
|
}
|
||||||
|
let str = text.get_text();
|
||||||
|
this._stPreeditLabel.set_text(str);
|
||||||
|
|
||||||
|
let attrs = text.get_attributes();
|
||||||
|
for (let i = 0; attrs != null && attrs.get(i) != null; i++) {
|
||||||
|
let attr = attrs.get(i);
|
||||||
|
if (attr.get_attr_type() == IBus.AttrType.BACKGROUND) {
|
||||||
|
let startIndex = attr.get_start_index();
|
||||||
|
let endIndex = attr.get_end_index();
|
||||||
|
let len = GLib.utf8_strlen(str, -1);
|
||||||
|
let markup = '';
|
||||||
|
if (startIndex == 0 &&
|
||||||
|
endIndex == GLib.utf8_strlen(str, -1)) {
|
||||||
|
markup = markup.concat(str);
|
||||||
|
} else {
|
||||||
|
if (startIndex > 0) {
|
||||||
|
markup = markup.concat(GLib.utf8_substring(str,
|
||||||
|
0,
|
||||||
|
startIndex));
|
||||||
|
}
|
||||||
|
if (startIndex != endIndex) {
|
||||||
|
markup = markup.concat('<span background=\"#555555\">');
|
||||||
|
markup = markup.concat(GLib.utf8_substring(str,
|
||||||
|
startIndex,
|
||||||
|
endIndex));
|
||||||
|
markup = markup.concat('</span>');
|
||||||
|
}
|
||||||
|
if (endIndex < len) {
|
||||||
|
markup = markup.concat(GLib.utf8_substring(str,
|
||||||
|
endIndex,
|
||||||
|
len));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let clutter_text = this._stPreeditLabel.get_clutter_text();
|
||||||
|
clutter_text.set_markup(markup);
|
||||||
|
clutter_text.queue_redraw();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
showAuxiliaryText: function() {
|
||||||
|
this._auxStringVisible = true;
|
||||||
|
this._stAuxLabel.show();
|
||||||
|
this._checkShowStates();
|
||||||
|
},
|
||||||
|
|
||||||
|
hideAuxiliaryText: function() {
|
||||||
|
this._auxStringVisible = false;
|
||||||
|
this._checkShowStates();
|
||||||
|
this._stAuxLabel.hide();
|
||||||
|
},
|
||||||
|
|
||||||
|
updateAuxiliaryText: function(text, show) {
|
||||||
|
if (show) {
|
||||||
|
this.showAuxiliaryText();
|
||||||
|
} else {
|
||||||
|
this.hideAuxiliaryText();
|
||||||
|
}
|
||||||
|
|
||||||
|
this._stAuxLabel.set_text(text.get_text());
|
||||||
|
},
|
||||||
|
|
||||||
|
_refreshLabels: function() {
|
||||||
|
let newLabels = [];
|
||||||
|
for (let i = 0; this._lookupTable.get_label(i) != null; i++) {
|
||||||
|
let label = this._lookupTable.get_label(i);
|
||||||
|
newLabels.push([label.get_text(), label.get_attributes()]);
|
||||||
|
}
|
||||||
|
this._stCandidateArea.setLabels(newLabels);
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
_getCandidatesInCurrentPage: function() {
|
||||||
|
let cursorPos = this._lookupTable.get_cursor_pos();
|
||||||
|
let pageSize = this._lookupTable.get_page_size();
|
||||||
|
let page = ((cursorPos == 0) ? 0 : Math.floor(cursorPos / pageSize));
|
||||||
|
let startIndex = page * pageSize;
|
||||||
|
let endIndex = Math.min((page + 1) * pageSize,
|
||||||
|
this._lookupTable.get_number_of_candidates());
|
||||||
|
let candidates = [];
|
||||||
|
for (let i = startIndex; i < endIndex; i++) {
|
||||||
|
candidates.push(this._lookupTable.get_candidate(i));
|
||||||
|
}
|
||||||
|
return candidates;
|
||||||
|
},
|
||||||
|
|
||||||
|
_getCursorPosInCurrentPage: function() {
|
||||||
|
let cursorPos = this._lookupTable.get_cursor_pos();
|
||||||
|
let pageSize = this._lookupTable.get_page_size();
|
||||||
|
let posInPage = cursorPos % pageSize;
|
||||||
|
return posInPage;
|
||||||
|
},
|
||||||
|
|
||||||
|
_refreshCandidates: function() {
|
||||||
|
let candidates = this._getCandidatesInCurrentPage();
|
||||||
|
let newCandidates = [];
|
||||||
|
for (let i = 0; i < candidates.length; i++) {
|
||||||
|
let candidate = candidates[i];
|
||||||
|
newCandidates.push([candidate.get_text(),
|
||||||
|
candidate.get_attributes()]);
|
||||||
|
}
|
||||||
|
this._stCandidateArea.setCandidates(newCandidates,
|
||||||
|
this._getCursorPosInCurrentPage(),
|
||||||
|
this._lookupTable.is_cursor_visible());
|
||||||
|
},
|
||||||
|
|
||||||
|
updateLookupTable: function(lookupTable, visible) {
|
||||||
|
// hide lookup table
|
||||||
|
if (!visible) {
|
||||||
|
this.hideLookupTable();
|
||||||
|
}
|
||||||
|
|
||||||
|
this._lookupTable = lookupTable || new IBus.LookupTable();
|
||||||
|
let orientation = this._lookupTable.get_orientation();
|
||||||
|
if (orientation != ORIENTATION_HORIZONTAL &&
|
||||||
|
orientation != ORIENTATION_VERTICAL) {
|
||||||
|
orientation = this._orientation;
|
||||||
|
}
|
||||||
|
this.setCurrentOrientation(orientation);
|
||||||
|
this._refreshCandidates();
|
||||||
|
this._refreshLabels();
|
||||||
|
|
||||||
|
// show lookup table
|
||||||
|
if (visible) {
|
||||||
|
this.showLookupTable();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
showLookupTable: function() {
|
||||||
|
this._lookupTableVisible = true;
|
||||||
|
this._stCandidateArea.showAll();
|
||||||
|
this._checkShowStates();
|
||||||
|
},
|
||||||
|
|
||||||
|
hideLookupTable: function() {
|
||||||
|
this._lookupTableVisible = false;
|
||||||
|
this._checkShowStates();
|
||||||
|
this._stCandidateArea.hideAll();
|
||||||
|
},
|
||||||
|
|
||||||
|
pageUpLookupTable: function() {
|
||||||
|
this._lookupTable.page_up();
|
||||||
|
this._refreshCandidates();
|
||||||
|
},
|
||||||
|
|
||||||
|
pageDownLookup_table: function() {
|
||||||
|
this._lookupTable.page_down();
|
||||||
|
this._refreshCandidates();
|
||||||
|
},
|
||||||
|
|
||||||
|
cursorUpLookupTable: function() {
|
||||||
|
this._lookupTable.cursor_up();
|
||||||
|
this._refreshCandidates();
|
||||||
|
},
|
||||||
|
|
||||||
|
cursorDownLookupTable: function() {
|
||||||
|
this._lookupTable.cursor_down();
|
||||||
|
this._refreshCandidates();
|
||||||
|
},
|
||||||
|
|
||||||
|
setCursorLocation: function(x, y, w, h) {
|
||||||
|
// if cursor location is changed, we reset the moved cursor location
|
||||||
|
if (this._cursorLocation.join() != [x, y, w, h].join()) {
|
||||||
|
this._cursorLocation = [x, y, w, h];
|
||||||
|
this._movedCursorLocation = null;
|
||||||
|
this._checkPosition();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_checkShowStates: function() {
|
||||||
|
this._checkSeparatorShowStates();
|
||||||
|
if (this._preeditVisible ||
|
||||||
|
this._auxStringVisible ||
|
||||||
|
this._lookupTableVisible) {
|
||||||
|
this._checkPosition();
|
||||||
|
this.showAll();
|
||||||
|
this.emit('show');
|
||||||
|
} else {
|
||||||
|
this.hideAll();
|
||||||
|
this.emit('hide');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_checkSeparatorShowStates: function() {
|
||||||
|
if (this._preeditVisible || this._auxStringVisible) {
|
||||||
|
this._separator.actor.show();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
this._separator.actor.hide();
|
||||||
|
},
|
||||||
|
|
||||||
|
reset: function() {
|
||||||
|
let text = IBus.Text.new_from_string('');
|
||||||
|
this.updatePreeditText(text, 0, false);
|
||||||
|
text = IBus.Text.new_from_string('');
|
||||||
|
this.updateAuxiliaryText(text, false);
|
||||||
|
this.updateLookupTable(null, false);
|
||||||
|
this.hideAll();
|
||||||
|
},
|
||||||
|
|
||||||
|
setCurrentOrientation: function(orientation) {
|
||||||
|
if (this._currentOrientation == orientation) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this._currentOrientation = orientation;
|
||||||
|
this._stCandidateArea.setOrientation(orientation);
|
||||||
|
},
|
||||||
|
|
||||||
|
setOrientation: function(orientation) {
|
||||||
|
this._orientation = orientation;
|
||||||
|
this.updateLookupTable(this._lookupTable, this._lookupTableVisible);
|
||||||
|
},
|
||||||
|
|
||||||
|
getCurrentOrientation: function() {
|
||||||
|
return this._currentOrientation;
|
||||||
|
},
|
||||||
|
|
||||||
|
_checkPosition: function() {
|
||||||
|
let cursorLocation = this._movedCursorLocation || this._cursorLocation;
|
||||||
|
let [cursorX, cursorY, cursorWidth, cursorHeight] = cursorLocation;
|
||||||
|
|
||||||
|
let windowRight = cursorX + cursorWidth + this.actor.get_width();
|
||||||
|
let windowBottom = cursorY + cursorHeight + this.actor.get_height();
|
||||||
|
|
||||||
|
this._cursorActor.set_position(cursorX, cursorY);
|
||||||
|
this._cursorActor.set_size(cursorWidth, cursorHeight);
|
||||||
|
|
||||||
|
let monitor = Main.layoutManager.findMonitorForActor(this._cursorActor);
|
||||||
|
let [sx, sy] = [monitor.x + monitor.width, monitor.y + monitor.height];
|
||||||
|
|
||||||
|
if (windowBottom > sy) {
|
||||||
|
this._arrowSide = St.Side.BOTTOM;
|
||||||
|
} else {
|
||||||
|
this._arrowSide = St.Side.TOP;
|
||||||
|
}
|
||||||
|
|
||||||
|
this._boxPointer._arrowSide = this._arrowSide;
|
||||||
|
this._boxPointer.setArrowOrigin(this._arrowSide);
|
||||||
|
this._boxPointer.setPosition(this._cursorActor, this._arrowAlignment);
|
||||||
|
},
|
||||||
|
|
||||||
|
showAll: function() {
|
||||||
|
if (!this._isVisible) {
|
||||||
|
this.actor.opacity = 255;
|
||||||
|
this.actor.show();
|
||||||
|
this._isVisible = true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
hideAll: function() {
|
||||||
|
if (this._isVisible) {
|
||||||
|
this.actor.opacity = 0;
|
||||||
|
this.actor.hide();
|
||||||
|
this._isVisible = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
move: function(x, y) {
|
||||||
|
this.actor.set_position(x, y);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Signals.addSignalMethods(CandidatePanel.prototype);
|
@ -2,42 +2,52 @@
|
|||||||
|
|
||||||
const Clutter = imports.gi.Clutter;
|
const Clutter = imports.gi.Clutter;
|
||||||
const GdkPixbuf = imports.gi.GdkPixbuf;
|
const GdkPixbuf = imports.gi.GdkPixbuf;
|
||||||
const Gkbd = imports.gi.Gkbd;
|
|
||||||
const Gio = imports.gi.Gio;
|
const Gio = imports.gi.Gio;
|
||||||
const GLib = imports.gi.GLib;
|
const GLib = imports.gi.GLib;
|
||||||
const Lang = imports.lang;
|
const Lang = imports.lang;
|
||||||
|
const Meta = imports.gi.Meta;
|
||||||
const Shell = imports.gi.Shell;
|
const Shell = imports.gi.Shell;
|
||||||
const St = imports.gi.St;
|
const St = imports.gi.St;
|
||||||
|
|
||||||
|
try {
|
||||||
|
var IBus = imports.gi.IBus;
|
||||||
|
const CandidatePanel = imports.ui.status.candidatePanel;
|
||||||
|
} catch (e) {
|
||||||
|
var IBus = null;
|
||||||
|
}
|
||||||
|
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
const PopupMenu = imports.ui.popupMenu;
|
const PopupMenu = imports.ui.popupMenu;
|
||||||
const PanelMenu = imports.ui.panelMenu;
|
const PanelMenu = imports.ui.panelMenu;
|
||||||
const Util = imports.misc.util;
|
const Util = imports.misc.util;
|
||||||
|
|
||||||
|
const DESKTOP_INPUT_SOURCES_KEYBINDINGS_SCHEMA = 'org.gnome.desktop.input-sources.keybindings';
|
||||||
|
const DESKTOP_INPUT_SOURCES_SCHEMA = 'org.gnome.desktop.input-sources';
|
||||||
|
const KEY_CURRENT_IS = 'current';
|
||||||
|
const KEY_INPUT_SOURCES = 'sources';
|
||||||
|
|
||||||
const LayoutMenuItem = new Lang.Class({
|
const LayoutMenuItem = new Lang.Class({
|
||||||
Name: 'LayoutMenuItem',
|
Name: 'LayoutMenuItem',
|
||||||
Extends: PopupMenu.PopupBaseMenuItem,
|
Extends: PopupMenu.PopupBaseMenuItem,
|
||||||
|
|
||||||
_init: function(config, id, indicator, long_name) {
|
_init: function(name, shortName, xkbLayout, xkbVariant, ibusEngine) {
|
||||||
this.parent();
|
this.parent();
|
||||||
|
|
||||||
this._config = config;
|
this.label = new St.Label({ text: name });
|
||||||
this._id = id;
|
this.indicator = new St.Label({ text: shortName });
|
||||||
this.label = new St.Label({ text: long_name });
|
|
||||||
this.indicator = indicator;
|
|
||||||
this.addActor(this.label);
|
this.addActor(this.label);
|
||||||
this.addActor(this.indicator);
|
this.addActor(this.indicator);
|
||||||
},
|
|
||||||
|
|
||||||
activate: function(event) {
|
this.sourceName = name;
|
||||||
this.parent(event);
|
this.shortName = shortName;
|
||||||
|
this.xkbLayout = xkbLayout;
|
||||||
this._config.lock_group(this._id);
|
this.xkbVariant = xkbVariant;
|
||||||
|
this.ibusEngine = ibusEngine;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const XKBIndicator = new Lang.Class({
|
const InputSourceIndicator = new Lang.Class({
|
||||||
Name: 'XKBIndicator',
|
Name: 'InputSourceIndicator',
|
||||||
Extends: PanelMenu.Button,
|
Extends: PanelMenu.Button,
|
||||||
|
|
||||||
_init: function() {
|
_init: function() {
|
||||||
@ -50,61 +60,237 @@ const XKBIndicator = new Lang.Class({
|
|||||||
this.actor.add_actor(this._container);
|
this.actor.add_actor(this._container);
|
||||||
this.actor.add_style_class_name('panel-status-button');
|
this.actor.add_style_class_name('panel-status-button');
|
||||||
|
|
||||||
this._iconActor = new St.Icon({ icon_name: 'keyboard', icon_type: St.IconType.SYMBOLIC, style_class: 'system-status-icon' });
|
|
||||||
this._container.add_actor(this._iconActor);
|
|
||||||
this._labelActors = [ ];
|
this._labelActors = [ ];
|
||||||
this._layoutItems = [ ];
|
this._layoutItems = [ ];
|
||||||
|
|
||||||
this._showFlags = false;
|
this._settings = new Gio.Settings({ schema: DESKTOP_INPUT_SOURCES_SCHEMA });
|
||||||
this._config = Gkbd.Configuration.get();
|
this._settings.connect('changed::' + KEY_CURRENT_IS, Lang.bind(this, this._currentISChanged));
|
||||||
this._config.connect('changed', Lang.bind(this, this._syncConfig));
|
this._settings.connect('changed::' + KEY_INPUT_SOURCES, Lang.bind(this, this._inputSourcesChanged));
|
||||||
this._config.connect('group-changed', Lang.bind(this, this._syncGroup));
|
|
||||||
this._config.start_listen();
|
|
||||||
|
|
||||||
this._syncConfig();
|
if (IBus)
|
||||||
|
this._ibusInit();
|
||||||
|
|
||||||
|
this._inputSourcesChanged();
|
||||||
|
|
||||||
if (global.session_type == Shell.SessionType.USER) {
|
if (global.session_type == Shell.SessionType.USER) {
|
||||||
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
|
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
|
||||||
this.menu.addAction(_("Show Keyboard Layout"), Lang.bind(this, function() {
|
this.menu.addAction(_("Show Keyboard Layout"), Lang.bind(this, function() {
|
||||||
Main.overview.hide();
|
Main.overview.hide();
|
||||||
Util.spawn(['gkbd-keyboard-display', '-g', String(this._config.get_current_group() + 1)]);
|
let description = this._selectedLayout.xkbLayout;
|
||||||
|
if (this._selectedLayout.xkbVariant.length > 0)
|
||||||
|
description = description + '\t' + this._selectedLayout.xkbVariant;
|
||||||
|
Util.spawn(['gkbd-keyboard-display', '-l', description]);
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
this.menu.addSettingsAction(_("Region and Language Settings"), 'gnome-region-panel.desktop');
|
this.menu.addSettingsAction(_("Region and Language Settings"), 'gnome-region-panel.desktop');
|
||||||
|
|
||||||
|
global.display.add_keybinding('switch-next',
|
||||||
|
new Gio.Settings({ schema: DESKTOP_INPUT_SOURCES_KEYBINDINGS_SCHEMA }),
|
||||||
|
Meta.KeyBindingFlags.NONE,
|
||||||
|
Lang.bind(this, this._switchNext));
|
||||||
|
global.display.add_keybinding('switch-previous',
|
||||||
|
new Gio.Settings({ schema: DESKTOP_INPUT_SOURCES_KEYBINDINGS_SCHEMA }),
|
||||||
|
Meta.KeyBindingFlags.NONE,
|
||||||
|
Lang.bind(this, this._switchPrevious));
|
||||||
},
|
},
|
||||||
|
|
||||||
_adjustGroupNames: function(names) {
|
_ibusInit: function() {
|
||||||
// Disambiguate duplicate names with a subscript
|
IBus.init();
|
||||||
// This is O(N^2) to avoid sorting names
|
this._ibus = new IBus.Bus();
|
||||||
// but N <= 4 so who cares?
|
if (!this._ibus.is_connected()) {
|
||||||
|
log('ibus-daemon is not running');
|
||||||
for (let i = 0; i < names.length; i++) {
|
return;
|
||||||
let name = names[i];
|
|
||||||
let cnt = 0;
|
|
||||||
for (let j = i + 1; j < names.length; j++) {
|
|
||||||
if (names[j] == name) {
|
|
||||||
cnt++;
|
|
||||||
// U+2081 SUBSCRIPT ONE
|
|
||||||
names[j] = name + String.fromCharCode(0x2081 + cnt);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (cnt != 0)
|
|
||||||
names[i] = name + '\u2081';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return names;
|
this._ibus.request_name(IBus.SERVICE_PANEL,
|
||||||
|
IBus.BusNameFlag.ALLOW_REPLACEMENT |
|
||||||
|
IBus.BusNameFlag.REPLACE_EXISTING);
|
||||||
|
this._panel = new IBus.PanelService({ connection: this._ibus.get_connection(),
|
||||||
|
object_path: IBus.PATH_PANEL });
|
||||||
|
this._ibusInitPanelService();
|
||||||
|
|
||||||
|
this._candidatePanel = new CandidatePanel.CandidatePanel();
|
||||||
|
this._ibusInitCandidatePanel();
|
||||||
},
|
},
|
||||||
|
|
||||||
_syncConfig: function() {
|
_ibusInitCandidatePanel: function() {
|
||||||
this._showFlags = this._config.if_flags_shown();
|
this._candidatePanel.connect('cursor-up',
|
||||||
if (this._showFlags) {
|
Lang.bind(this, function(widget) {
|
||||||
this._container.set_skip_paint(this._iconActor, false);
|
this.cursorUp();
|
||||||
} else {
|
}));
|
||||||
this._container.set_skip_paint(this._iconActor, true);
|
this._candidatePanel.connect('cursor-down',
|
||||||
|
Lang.bind(this, function(widget) {
|
||||||
|
this.cursorDown();
|
||||||
|
}));
|
||||||
|
this._candidatePanel.connect('page-up',
|
||||||
|
Lang.bind(this, function(widget) {
|
||||||
|
this.pageUp();
|
||||||
|
}));
|
||||||
|
this._candidatePanel.connect('page-down',
|
||||||
|
Lang.bind(this, function(widget) {
|
||||||
|
this.pageDown();
|
||||||
|
}));
|
||||||
|
this._candidatePanel.connect('candidate-clicked',
|
||||||
|
Lang.bind(this, function(widget, index, button, state) {
|
||||||
|
this.candidateClicked(index, button, state);
|
||||||
|
}));
|
||||||
|
},
|
||||||
|
|
||||||
|
_ibusInitPanelService: function() {
|
||||||
|
this._panel.connect('set-cursor-location',
|
||||||
|
Lang.bind(this, this.setCursorLocation));
|
||||||
|
this._panel.connect('update-preedit-text',
|
||||||
|
Lang.bind(this, this.updatePreeditText));
|
||||||
|
this._panel.connect('show-preedit-text',
|
||||||
|
Lang.bind(this, this.showPreeditText));
|
||||||
|
this._panel.connect('hide-preedit-text',
|
||||||
|
Lang.bind(this, this.hidePreeditText));
|
||||||
|
this._panel.connect('update-auxiliary-text',
|
||||||
|
Lang.bind(this, this.updateAuxiliaryText));
|
||||||
|
this._panel.connect('show-auxiliary-text',
|
||||||
|
Lang.bind(this, this.showAuxiliaryText));
|
||||||
|
this._panel.connect('hide-auxiliary-text',
|
||||||
|
Lang.bind(this, this.hideAuxiliaryText));
|
||||||
|
this._panel.connect('update-lookup-table',
|
||||||
|
Lang.bind(this, this.updateLookupTable));
|
||||||
|
this._panel.connect('show-lookup-table',
|
||||||
|
Lang.bind(this, this.showLookupTable));
|
||||||
|
this._panel.connect('hide-lookup-table',
|
||||||
|
Lang.bind(this, this.hideLookupTable));
|
||||||
|
this._panel.connect('page-up-lookup-table',
|
||||||
|
Lang.bind(this, this.pageUpLookupTable));
|
||||||
|
this._panel.connect('page-down-lookup-table',
|
||||||
|
Lang.bind(this, this.pageDownLookupTable));
|
||||||
|
this._panel.connect('cursor-up-lookup-table',
|
||||||
|
Lang.bind(this, this.cursorUpLookupTable));
|
||||||
|
this._panel.connect('cursor-down-lookup-table',
|
||||||
|
Lang.bind(this, this.cursorDownLookupTable));
|
||||||
|
this._panel.connect('focus-in', Lang.bind(this, this.focusIn));
|
||||||
|
this._panel.connect('focus-out', Lang.bind(this, this.focusOut));
|
||||||
|
},
|
||||||
|
|
||||||
|
setCursorLocation: function(panel, x, y, w, h) {
|
||||||
|
this._candidatePanel.setCursorLocation(x, y, w, h);
|
||||||
|
},
|
||||||
|
|
||||||
|
updatePreeditText: function(panel, text, cursorPos, visible) {
|
||||||
|
this._candidatePanel.updatePreeditText(text, cursorPos, visible);
|
||||||
|
},
|
||||||
|
|
||||||
|
showPreeditText: function(panel) {
|
||||||
|
this._candidatePanel.showPreeditText();
|
||||||
|
},
|
||||||
|
|
||||||
|
hidePreeditText: function(panel) {
|
||||||
|
this._candidatePanel.hidePreeditText();
|
||||||
|
},
|
||||||
|
|
||||||
|
updateAuxiliaryText: function(panel, text, visible) {
|
||||||
|
this._candidatePanel.updateAuxiliaryText(text, visible);
|
||||||
|
},
|
||||||
|
|
||||||
|
showAuxiliaryText: function(panel) {
|
||||||
|
this._candidatePanel.showAuxiliaryText();
|
||||||
|
},
|
||||||
|
|
||||||
|
hideAuxiliaryText: function(panel) {
|
||||||
|
this._candidatePanel.hideAuxiliaryText();
|
||||||
|
},
|
||||||
|
|
||||||
|
updateLookupTable: function(panel, lookupTable, visible) {
|
||||||
|
this._candidatePanel.updateLookupTable(lookupTable, visible);
|
||||||
|
},
|
||||||
|
|
||||||
|
showLookupTable: function(panel) {
|
||||||
|
this._candidatePanel.showLookupTable();
|
||||||
|
},
|
||||||
|
|
||||||
|
hideLookupTable: function(panel) {
|
||||||
|
this._candidatePanel.hideLookupTable();
|
||||||
|
},
|
||||||
|
|
||||||
|
pageUpLookupTable: function(panel) {
|
||||||
|
this._candidatePanel.pageUpLookupTable();
|
||||||
|
},
|
||||||
|
|
||||||
|
pageDownLookupTable: function(panel) {
|
||||||
|
this._candidatePanel.pageDownLookupTable();
|
||||||
|
},
|
||||||
|
|
||||||
|
cursorUpLookupTable: function(panel) {
|
||||||
|
this._candidatePanel.cursorUpLookupTable();
|
||||||
|
},
|
||||||
|
|
||||||
|
cursorDownLookupTable: function(panel) {
|
||||||
|
this._candidatePanel.cursorDownLookupTable();
|
||||||
|
},
|
||||||
|
|
||||||
|
focusIn: function(panel, path) {
|
||||||
|
},
|
||||||
|
|
||||||
|
focusOut: function(panel, path) {
|
||||||
|
this._candidatePanel.reset();
|
||||||
|
},
|
||||||
|
|
||||||
|
cursorUp: function() {
|
||||||
|
this._panel.cursor_up();
|
||||||
|
},
|
||||||
|
|
||||||
|
cursorDown: function() {
|
||||||
|
this._panel.cursor_down();
|
||||||
|
},
|
||||||
|
|
||||||
|
pageUp: function() {
|
||||||
|
this._panel.page_up();
|
||||||
|
},
|
||||||
|
|
||||||
|
pageDown: function() {
|
||||||
|
this._panel.page_down();
|
||||||
|
},
|
||||||
|
|
||||||
|
candidateClicked: function(index, button, state) {
|
||||||
|
this._panel.candidate_clicked(index, button, state);
|
||||||
|
},
|
||||||
|
|
||||||
|
_currentISChanged: function() {
|
||||||
|
let source = this._settings.get_value(KEY_CURRENT_IS);
|
||||||
|
let name = source.get_child_value(0).get_string()[0];
|
||||||
|
|
||||||
|
if (this._selectedLayout) {
|
||||||
|
this._selectedLayout.setShowDot(false);
|
||||||
|
this._selectedLayout = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
let groups = this._config.get_group_names();
|
if (this._selectedLabel) {
|
||||||
if (groups.length > 1) {
|
this._container.set_skip_paint(this._selectedLabel, true);
|
||||||
|
this._selectedLabel = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let i = 0; i < this._layoutItems.length; ++i) {
|
||||||
|
let item = this._layoutItems[i];
|
||||||
|
if (item.sourceName == name) {
|
||||||
|
item.setShowDot(true);
|
||||||
|
this._selectedLayout = item;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let i = 0; i < this._labelActors.length; ++i) {
|
||||||
|
let actor = this._labelActors[i];
|
||||||
|
if (actor.sourceName == name) {
|
||||||
|
this._selectedLabel = actor;
|
||||||
|
this._container.set_skip_paint(actor, false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this._selectedLayout || !this._selectedLabel)
|
||||||
|
this._layoutItems[0].activate();
|
||||||
|
},
|
||||||
|
|
||||||
|
_inputSourcesChanged: function() {
|
||||||
|
let sources = this._settings.get_value(KEY_INPUT_SOURCES);
|
||||||
|
if (sources.n_children() > 1) {
|
||||||
this.actor.show();
|
this.actor.show();
|
||||||
} else {
|
} else {
|
||||||
this.menu.close();
|
this.menu.close();
|
||||||
@ -117,55 +303,69 @@ const XKBIndicator = new Lang.Class({
|
|||||||
for (let i = 0; i < this._labelActors.length; i++)
|
for (let i = 0; i < this._labelActors.length; i++)
|
||||||
this._labelActors[i].destroy();
|
this._labelActors[i].destroy();
|
||||||
|
|
||||||
let short_names = this._adjustGroupNames(this._config.get_short_group_names());
|
|
||||||
|
|
||||||
this._selectedLayout = null;
|
this._selectedLayout = null;
|
||||||
this._layoutItems = [ ];
|
this._layoutItems = [ ];
|
||||||
this._selectedLabel = null;
|
this._selectedLabel = null;
|
||||||
this._labelActors = [ ];
|
this._labelActors = [ ];
|
||||||
for (let i = 0; i < groups.length; i++) {
|
|
||||||
let icon_name = this._config.get_group_name(i);
|
for (let i = 0; i < sources.n_children(); ++i) {
|
||||||
let actor;
|
let name = sources.get_child_value(i).get_child_value(0).get_string()[0];
|
||||||
if (this._showFlags)
|
let shortName = sources.get_child_value(i).get_child_value(1).get_string()[0];
|
||||||
actor = new St.Icon({ icon_name: icon_name, icon_type: St.IconType.SYMBOLIC, style_class: 'popup-menu-icon' });
|
let xkbLayout = sources.get_child_value(i).get_child_value(2).get_string()[0];
|
||||||
else
|
let xkbVariant = sources.get_child_value(i).get_child_value(3).get_string()[0];
|
||||||
actor = new St.Label({ text: short_names[i] });
|
let ibusEngine = sources.get_child_value(i).get_child_value(4).get_string()[0];
|
||||||
let item = new LayoutMenuItem(this._config, i, actor, groups[i]);
|
|
||||||
item._short_group_name = short_names[i];
|
let item = new LayoutMenuItem(name, shortName, xkbLayout, xkbVariant, ibusEngine);
|
||||||
item._icon_name = icon_name;
|
|
||||||
this._layoutItems.push(item);
|
this._layoutItems.push(item);
|
||||||
this.menu.addMenuItem(item, i);
|
this.menu.addMenuItem(item, i);
|
||||||
|
item.connect('activate', Lang.bind(this, function() {
|
||||||
|
if (this._selectedLayout == null || item.sourceName != this._selectedLayout.sourceName) {
|
||||||
|
let name = GLib.Variant.new_string(item.sourceName);
|
||||||
|
let shortName = GLib.Variant.new_string(item.shortName);
|
||||||
|
let xkbLayout = GLib.Variant.new_string(item.xkbLayout);
|
||||||
|
let xkbVariant = GLib.Variant.new_string(item.xkbVariant);
|
||||||
|
let ibusEngine = GLib.Variant.new_string(item.ibusEngine);
|
||||||
|
let tuple = GLib.Variant.new_tuple([name, shortName, xkbLayout, xkbVariant, ibusEngine], 5);
|
||||||
|
this._settings.set_value(KEY_CURRENT_IS, tuple);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
let shortLabel = new St.Label({ text: short_names[i] });
|
let shortLabel = new St.Label({ text: shortName });
|
||||||
|
shortLabel.sourceName = name;
|
||||||
this._labelActors.push(shortLabel);
|
this._labelActors.push(shortLabel);
|
||||||
this._container.add_actor(shortLabel);
|
this._container.add_actor(shortLabel);
|
||||||
this._container.set_skip_paint(shortLabel, true);
|
this._container.set_skip_paint(shortLabel, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
this._syncGroup();
|
this._currentISChanged();
|
||||||
},
|
},
|
||||||
|
|
||||||
_syncGroup: function() {
|
_switchNext: function() {
|
||||||
let selected = this._config.get_current_group();
|
if (!this._selectedLayout || !this._selectedLabel) {
|
||||||
|
this._layoutItems[0].activate();
|
||||||
if (this._selectedLayout) {
|
return;
|
||||||
this._selectedLayout.setShowDot(false);
|
|
||||||
this._selectedLayout = null;
|
|
||||||
}
|
}
|
||||||
|
for (let i = 0; i < this._layoutItems.length; ++i) {
|
||||||
if (this._selectedLabel) {
|
let item = this._layoutItems[i];
|
||||||
this._container.set_skip_paint(this._selectedLabel, true);
|
if (item.sourceName == this._selectedLayout.sourceName) {
|
||||||
this._selectedLabel = null;
|
this._layoutItems[(++i == this._layoutItems.length) ? 0 : i].activate();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
let item = this._layoutItems[selected];
|
_switchPrevious: function() {
|
||||||
item.setShowDot(true);
|
if (!this._selectedLayout || !this._selectedLabel) {
|
||||||
|
this._layoutItems[0].activate();
|
||||||
this._iconActor.icon_name = item._icon_name;
|
return;
|
||||||
this._selectedLabel = this._labelActors[selected];
|
}
|
||||||
this._container.set_skip_paint(this._selectedLabel, this._showFlags);
|
for (let i = 0; i < this._layoutItems.length; ++i) {
|
||||||
|
let item = this._layoutItems[i];
|
||||||
this._selectedLayout = item;
|
if (item.sourceName == this._selectedLayout.sourceName) {
|
||||||
|
this._layoutItems[(--i == -1) ? (this._layoutItems.length - 1) : i].activate();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_containerGetPreferredWidth: function(container, for_height, alloc) {
|
_containerGetPreferredWidth: function(container, for_height, alloc) {
|
||||||
@ -173,16 +373,12 @@ const XKBIndicator = new Lang.Class({
|
|||||||
// for the height of all children, but we ignore the results
|
// for the height of all children, but we ignore the results
|
||||||
// for those we don't actually display.
|
// for those we don't actually display.
|
||||||
let max_min_width = 0, max_natural_width = 0;
|
let max_min_width = 0, max_natural_width = 0;
|
||||||
if (this._showFlags)
|
|
||||||
[max_min_width, max_natural_width] = this._iconActor.get_preferred_width(for_height);
|
|
||||||
|
|
||||||
for (let i = 0; i < this._labelActors.length; i++) {
|
for (let i = 0; i < this._labelActors.length; i++) {
|
||||||
let [min_width, natural_width] = this._labelActors[i].get_preferred_width(for_height);
|
let [min_width, natural_width] = this._labelActors[i].get_preferred_width(for_height);
|
||||||
if (!this._showFlags) {
|
|
||||||
max_min_width = Math.max(max_min_width, min_width);
|
max_min_width = Math.max(max_min_width, min_width);
|
||||||
max_natural_width = Math.max(max_natural_width, natural_width);
|
max_natural_width = Math.max(max_natural_width, natural_width);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
alloc.min_size = max_min_width;
|
alloc.min_size = max_min_width;
|
||||||
alloc.natural_size = max_natural_width;
|
alloc.natural_size = max_natural_width;
|
||||||
@ -190,16 +386,12 @@ const XKBIndicator = new Lang.Class({
|
|||||||
|
|
||||||
_containerGetPreferredHeight: function(container, for_width, alloc) {
|
_containerGetPreferredHeight: function(container, for_width, alloc) {
|
||||||
let max_min_height = 0, max_natural_height = 0;
|
let max_min_height = 0, max_natural_height = 0;
|
||||||
if (this._showFlags)
|
|
||||||
[max_min_height, max_natural_height] = this._iconActor.get_preferred_height(for_width);
|
|
||||||
|
|
||||||
for (let i = 0; i < this._labelActors.length; i++) {
|
for (let i = 0; i < this._labelActors.length; i++) {
|
||||||
let [min_height, natural_height] = this._labelActors[i].get_preferred_height(for_width);
|
let [min_height, natural_height] = this._labelActors[i].get_preferred_height(for_width);
|
||||||
if (!this._showFlags) {
|
|
||||||
max_min_height = Math.max(max_min_height, min_height);
|
max_min_height = Math.max(max_min_height, min_height);
|
||||||
max_natural_height = Math.max(max_natural_height, natural_height);
|
max_natural_height = Math.max(max_natural_height, natural_height);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
alloc.min_size = max_min_height;
|
alloc.min_size = max_min_height;
|
||||||
alloc.natural_size = max_natural_height;
|
alloc.natural_size = max_natural_height;
|
||||||
@ -212,7 +404,6 @@ const XKBIndicator = new Lang.Class({
|
|||||||
box.y2 -= box.y1;
|
box.y2 -= box.y1;
|
||||||
box.y1 = 0;
|
box.y1 = 0;
|
||||||
|
|
||||||
this._iconActor.allocate_align_fill(box, 0.5, 0, false, false, flags);
|
|
||||||
for (let i = 0; i < this._labelActors.length; i++)
|
for (let i = 0; i < this._labelActors.length; i++)
|
||||||
this._labelActors[i].allocate_align_fill(box, 0.5, 0, false, false, flags);
|
this._labelActors[i].allocate_align_fill(box, 0.5, 0, false, false, flags);
|
||||||
}
|
}
|
||||||
|
@ -707,10 +707,7 @@ const NMDeviceWired = new Lang.Class({
|
|||||||
// the device
|
// the device
|
||||||
// we can do it here because addConnection and removeConnection
|
// we can do it here because addConnection and removeConnection
|
||||||
// both call _createSection at some point
|
// both call _createSection at some point
|
||||||
if (this._connections.length <= 1)
|
this.section.actor.visible = this._connections.length > 1;
|
||||||
this.section.actor.hide();
|
|
||||||
else
|
|
||||||
this.section.actor.show();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_createAutomaticConnection: function() {
|
_createAutomaticConnection: function() {
|
||||||
@ -1038,13 +1035,8 @@ const NMDeviceWireless = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
setEnabled: function(enabled) {
|
setEnabled: function(enabled) {
|
||||||
if (enabled) {
|
this.statusItem.actor.visible = enabled;
|
||||||
this.statusItem.actor.show();
|
this.section.actor.visible = enabled;
|
||||||
this.section.actor.show();
|
|
||||||
} else {
|
|
||||||
this.statusItem.actor.hide();
|
|
||||||
this.section.actor.hide();
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
activate: function() {
|
activate: function() {
|
||||||
@ -1538,7 +1530,7 @@ const NMApplet = new Lang.Class({
|
|||||||
Extends: PanelMenu.SystemStatusButton,
|
Extends: PanelMenu.SystemStatusButton,
|
||||||
|
|
||||||
_init: function() {
|
_init: function() {
|
||||||
this.parent('network-error', _("Network"));
|
this.parent('network-offline', _("Network"));
|
||||||
|
|
||||||
this._client = NMClient.Client.new();
|
this._client = NMClient.Client.new();
|
||||||
|
|
||||||
|
@ -149,13 +149,9 @@ const Indicator = new Lang.Class({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (showInput) {
|
|
||||||
this._inputTitle.actor.show();
|
this._inputTitle.actor.visible = showInput;
|
||||||
this._inputSlider.actor.show();
|
this._inputSlider.actor.visible = showInput;
|
||||||
} else {
|
|
||||||
this._inputTitle.actor.hide();
|
|
||||||
this._inputSlider.actor.hide();
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_volumeToIcon: function(volume) {
|
_volumeToIcon: function(volume) {
|
||||||
|
@ -132,9 +132,6 @@ const Client = new Lang.Class({
|
|||||||
let channel = channels[i];
|
let channel = channels[i];
|
||||||
let [targetHandle, targetHandleType] = channel.get_handle();
|
let [targetHandle, targetHandleType] = channel.get_handle();
|
||||||
|
|
||||||
if (Shell.is_channel_invalidated(channel))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
/* Only observe contact text channels */
|
/* Only observe contact text channels */
|
||||||
if ((!(channel instanceof Tp.TextChannel)) ||
|
if ((!(channel instanceof Tp.TextChannel)) ||
|
||||||
targetHandleType != Tp.HandleType.CONTACT)
|
targetHandleType != Tp.HandleType.CONTACT)
|
||||||
@ -184,9 +181,6 @@ const Client = new Lang.Class({
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Shell.is_channel_invalidated(channel))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
// 'notify' will be true when coming from an actual HandleChannels
|
// 'notify' will be true when coming from an actual HandleChannels
|
||||||
// call, and not when from a successful Claim call. The point is
|
// call, and not when from a successful Claim call. The point is
|
||||||
// we don't want to notify for a channel we just claimed which
|
// we don't want to notify for a channel we just claimed which
|
||||||
@ -237,19 +231,12 @@ const Client = new Lang.Class({
|
|||||||
let channel = channels[0];
|
let channel = channels[0];
|
||||||
let chanType = channel.get_channel_type();
|
let chanType = channel.get_channel_type();
|
||||||
|
|
||||||
if (Shell.is_channel_invalidated(channel)) {
|
|
||||||
Shell.decline_dispatch_op(context, 'Channel is invalidated');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (chanType == Tp.IFACE_CHANNEL_TYPE_TEXT)
|
if (chanType == Tp.IFACE_CHANNEL_TYPE_TEXT)
|
||||||
this._approveTextChannel(account, conn, channel, dispatchOp, context);
|
this._approveTextChannel(account, conn, channel, dispatchOp, context);
|
||||||
else if (chanType == Tp.IFACE_CHANNEL_TYPE_CALL)
|
else if (chanType == Tp.IFACE_CHANNEL_TYPE_CALL)
|
||||||
this._approveCall(account, conn, channel, dispatchOp, context);
|
this._approveCall(account, conn, channel, dispatchOp, context);
|
||||||
else if (chanType == Tp.IFACE_CHANNEL_TYPE_FILE_TRANSFER)
|
else if (chanType == Tp.IFACE_CHANNEL_TYPE_FILE_TRANSFER)
|
||||||
this._approveFileTransfer(account, conn, channel, dispatchOp, context);
|
this._approveFileTransfer(account, conn, channel, dispatchOp, context);
|
||||||
else
|
|
||||||
Shell.decline_dispatch_op(context, 'Unsupported channel type');
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_approveTextChannel: function(account, conn, channel, dispatchOp, context) {
|
_approveTextChannel: function(account, conn, channel, dispatchOp, context) {
|
||||||
|
@ -554,18 +554,12 @@ const UserMenuButton = new Lang.Class({
|
|||||||
|
|
||||||
_updateLogout: function() {
|
_updateLogout: function() {
|
||||||
let allowLogout = !this._lockdownSettings.get_boolean(DISABLE_LOG_OUT_KEY);
|
let allowLogout = !this._lockdownSettings.get_boolean(DISABLE_LOG_OUT_KEY);
|
||||||
if (allowLogout)
|
this._logoutItem.actor.visible = allowLogout;
|
||||||
this._logoutItem.actor.show();
|
|
||||||
else
|
|
||||||
this._logoutItem.actor.hide();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_updateLockScreen: function() {
|
_updateLockScreen: function() {
|
||||||
let allowLockScreen = !this._lockdownSettings.get_boolean(DISABLE_LOCK_SCREEN_KEY);
|
let allowLockScreen = !this._lockdownSettings.get_boolean(DISABLE_LOCK_SCREEN_KEY);
|
||||||
if (allowLockScreen)
|
this._logoutItem.actor.visible = allowLockScreen;
|
||||||
this._lockScreenItem.actor.show();
|
|
||||||
else
|
|
||||||
this._lockScreenItem.actor.hide();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_updateHaveShutdown: function() {
|
_updateHaveShutdown: function() {
|
||||||
@ -584,10 +578,7 @@ const UserMenuButton = new Lang.Class({
|
|||||||
if (!this._suspendOrPowerOffItem)
|
if (!this._suspendOrPowerOffItem)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!this._haveShutdown && !this._haveSuspend)
|
this._suspendOrPowerOffItem.actor.visible = this._haveShutdown || this._haveSuspend;
|
||||||
this._suspendOrPowerOffItem.actor.hide();
|
|
||||||
else
|
|
||||||
this._suspendOrPowerOffItem.actor.show();
|
|
||||||
|
|
||||||
// If we can't suspend show Power Off... instead
|
// If we can't suspend show Power Off... instead
|
||||||
// and disable the alt key
|
// and disable the alt key
|
||||||
|
@ -1134,7 +1134,6 @@ const Workspace = new Lang.Class({
|
|||||||
_hideAllOverlays: function() {
|
_hideAllOverlays: function() {
|
||||||
for (let i = 0; i < this._windows.length; i++) {
|
for (let i = 0; i < this._windows.length; i++) {
|
||||||
let clone = this._windows[i];
|
let clone = this._windows[i];
|
||||||
Tweener.removeTweens(clone.actor);
|
|
||||||
let overlay = this._windowOverlays[i];
|
let overlay = this._windowOverlays[i];
|
||||||
if (overlay)
|
if (overlay)
|
||||||
overlay.hide();
|
overlay.hide();
|
||||||
@ -1252,7 +1251,7 @@ const Workspace = new Lang.Class({
|
|||||||
if (!this._isMyWindow(win) || !this._isOverviewWindow(win))
|
if (!this._isMyWindow(win) || !this._isOverviewWindow(win))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
let clone = this._addWindowClone(win);
|
let [clone, overlay] = this._addWindowClone(win);
|
||||||
|
|
||||||
if (win._overviewHint) {
|
if (win._overviewHint) {
|
||||||
let x = win._overviewHint.x - this.actor.x;
|
let x = win._overviewHint.x - this.actor.x;
|
||||||
@ -1262,6 +1261,7 @@ const Workspace = new Lang.Class({
|
|||||||
|
|
||||||
clone.actor.set_position (x, y);
|
clone.actor.set_position (x, y);
|
||||||
clone.actor.set_scale (scale, scale);
|
clone.actor.set_scale (scale, scale);
|
||||||
|
this._updateWindowOverlayPositions(clone, overlay, x, y, scale, false);
|
||||||
} else {
|
} else {
|
||||||
// Position new windows at the top corner of the workspace rather
|
// Position new windows at the top corner of the workspace rather
|
||||||
// than where they were placed for real to avoid the window
|
// than where they were placed for real to avoid the window
|
||||||
@ -1321,7 +1321,10 @@ const Workspace = new Lang.Class({
|
|||||||
|
|
||||||
this.leavingOverview = true;
|
this.leavingOverview = true;
|
||||||
|
|
||||||
this._hideAllOverlays();
|
for (let i = 0; i < this._windows.length; i++) {
|
||||||
|
let clone = this._windows[i];
|
||||||
|
Tweener.removeTweens(clone.actor);
|
||||||
|
}
|
||||||
|
|
||||||
if (this._repositionWindowsId > 0) {
|
if (this._repositionWindowsId > 0) {
|
||||||
Mainloop.source_remove(this._repositionWindowsId);
|
Mainloop.source_remove(this._repositionWindowsId);
|
||||||
@ -1361,6 +1364,7 @@ const Workspace = new Lang.Class({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this._hideAllOverlays();
|
||||||
},
|
},
|
||||||
|
|
||||||
destroy : function() {
|
destroy : function() {
|
||||||
@ -1451,7 +1455,7 @@ const Workspace = new Lang.Class({
|
|||||||
this._windows.push(clone);
|
this._windows.push(clone);
|
||||||
this._windowOverlays.push(overlay);
|
this._windowOverlays.push(overlay);
|
||||||
|
|
||||||
return clone;
|
return [clone, overlay];
|
||||||
},
|
},
|
||||||
|
|
||||||
_onShowOverlayClose: function (windowOverlay) {
|
_onShowOverlayClose: function (windowOverlay) {
|
||||||
|
@ -844,10 +844,7 @@ const WorkspacesDisplay = new Lang.Class({
|
|||||||
if (!primaryView)
|
if (!primaryView)
|
||||||
return;
|
return;
|
||||||
primaryView.actor.opacity = opacity;
|
primaryView.actor.opacity = opacity;
|
||||||
if (opacity == 0)
|
primaryView.actor.visible = opacity != 0;
|
||||||
primaryView.actor.hide();
|
|
||||||
else
|
|
||||||
primaryView.actor.show();
|
|
||||||
}));
|
}));
|
||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
|
@ -43,7 +43,6 @@ ms
|
|||||||
nb
|
nb
|
||||||
nl
|
nl
|
||||||
nn
|
nn
|
||||||
oc
|
|
||||||
or
|
or
|
||||||
pa
|
pa
|
||||||
pl
|
pl
|
||||||
|
311
po/as.po
311
po/as.po
@ -9,8 +9,8 @@ msgstr ""
|
|||||||
"Project-Id-Version: gnome-shell master\n"
|
"Project-Id-Version: gnome-shell master\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug."
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug."
|
||||||
"cgi?product=gnome-shell&keywords=I18N+L10N&component=general\n"
|
"cgi?product=gnome-shell&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2012-04-19 21:14+0000\n"
|
"POT-Creation-Date: 2012-03-19 14:09+0000\n"
|
||||||
"PO-Revision-Date: 2012-07-05 20:28+0530\n"
|
"PO-Revision-Date: 2012-03-19 20:17+0530\n"
|
||||||
"Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n"
|
"Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n"
|
||||||
"Language-Team: as_IN <kde-i18n-doc@kde.org>\n"
|
"Language-Team: as_IN <kde-i18n-doc@kde.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -39,7 +39,7 @@ msgstr "GNOME শ্বেল সম্প্ৰসাৰনসমূহ সং
|
|||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:1
|
#: ../data/org.gnome.shell.gschema.xml.in.h:1
|
||||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Alt-F2 ৰ পৰা উন্নয়নকাৰী আৰু পৰীক্ষকসমূহৰ কাৰণে লাভদায়ক অভ্যন্তৰীক সঁজুলিসমূহ "
|
"Alt-F2 -ৰ পৰা উন্নয়নকাৰী আৰু পৰীক্ষকসমূহৰ কাৰণে লাভদায়ক অভ্যন্তৰীক সঁজুলিসমূহ "
|
||||||
"সামৰ্থবান কৰক"
|
"সামৰ্থবান কৰক"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:2
|
#: ../data/org.gnome.shell.gschema.xml.in.h:2
|
||||||
@ -61,7 +61,7 @@ msgid ""
|
|||||||
"list. You can also manipulate this list with the EnableExtension and "
|
"list. You can also manipulate this list with the EnableExtension and "
|
||||||
"DisableExtension DBus methods on org.gnome.Shell."
|
"DisableExtension DBus methods on org.gnome.Shell."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"GNOME শ্বেল সম্প্ৰসাৰণসমূহৰ এটা uuid বৈশিষ্ট আছে; এই কি'য়ে ল'ড হব লগিয়া "
|
"GNOME শ্বেল সম্প্ৰসাৰণসমূহৰ এটা uuid বৈশিষ্ট আছে; এই চাবিয়ে ল'ড হব লগিয়া "
|
||||||
"সমপ্ৰসাৰণসমূহ তালিকাভুক্ত কৰে। যিকোনো সম্প্ৰসাৰন যি ল'ড হব বিচাৰে এই তালিকাত থাকিব "
|
"সমপ্ৰসাৰণসমূহ তালিকাভুক্ত কৰে। যিকোনো সম্প্ৰসাৰন যি ল'ড হব বিচাৰে এই তালিকাত থাকিব "
|
||||||
"লাগিব। আপুনি এই তালিকাক org.gnome.Shell ত EnableExtension আৰু DisableExtension "
|
"লাগিব। আপুনি এই তালিকাক org.gnome.Shell ত EnableExtension আৰু DisableExtension "
|
||||||
"DBus পদ্ধতিসমূহৰ সৈতে সলনি কৰিব পাৰিব।"
|
"DBus পদ্ধতিসমূহৰ সৈতে সলনি কৰিব পাৰিব।"
|
||||||
@ -77,7 +77,7 @@ msgid ""
|
|||||||
"want to disable this for privacy reasons. Please note that doing so won't "
|
"want to disable this for privacy reasons. Please note that doing so won't "
|
||||||
"remove already saved data."
|
"remove already saved data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"শ্বেলে সাধাৰণত সক্ৰিয় অনুপ্ৰয়োগসমূহ মনিটৰ কৰে যাতে সকলোতকৈ অধিক ব্যৱহৃতসমূহ "
|
"শ্বেলে সাধাৰনত সক্ৰিয় অনুপ্ৰয়োগসমূহ মনিটৰ কৰে যাতে সকলোতকৈ অধিক ব্যৱহৃতসমূহ "
|
||||||
"(উদাহৰনস্বৰুপে লঞ্চাৰসমূহত) ক দেখুৱাব পাৰে। যত এই তথ্য গোপন ৰখা হব, আপুনি ইয়াক "
|
"(উদাহৰনস্বৰুপে লঞ্চাৰসমূহত) ক দেখুৱাব পাৰে। যত এই তথ্য গোপন ৰখা হব, আপুনি ইয়াক "
|
||||||
"গোপনীয়তা কাৰণসমূহৰ কাৰণে অসামৰ্থবান কৰিব পাৰে। অনুগ্ৰহ কৰি মন কৰিব যে এনেকুৱা "
|
"গোপনীয়তা কাৰণসমূহৰ কাৰণে অসামৰ্থবান কৰিব পাৰে। অনুগ্ৰহ কৰি মন কৰিব যে এনেকুৱা "
|
||||||
"কৰাত ইতিমধ্যে সংৰক্ষীত তথ্য আতৰি নাযায়।"
|
"কৰাত ইতিমধ্যে সংৰক্ষীত তথ্য আতৰি নাযায়।"
|
||||||
@ -129,54 +129,46 @@ msgid "If true, display the ISO week date in the calendar."
|
|||||||
msgstr "যদি সত্য, ISO সপ্তাহ তাৰিখক কেলেণ্ডাৰত দেখুৱাওক।"
|
msgstr "যদি সত্য, ISO সপ্তাহ তাৰিখক কেলেণ্ডাৰত দেখুৱাওক।"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:16
|
#: ../data/org.gnome.shell.gschema.xml.in.h:16
|
||||||
msgid "Keybinding to open the application menu"
|
|
||||||
msgstr "অনুপ্ৰয়োগ মেনু খোলিবলে Keybinding"
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:17
|
|
||||||
msgid "Keybinding to open the application menu."
|
|
||||||
msgstr "অনুপ্ৰয়োগ মেনু খোলিবলে Keybinding।"
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:18
|
|
||||||
msgid "Which keyboard to use"
|
msgid "Which keyboard to use"
|
||||||
msgstr "কোনটো কিবৰ্ড ব্যৱহাৰ কৰা হব"
|
msgstr "কোনটো কিবৰ্ড ব্যৱহাৰ কৰা হব"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:19
|
#: ../data/org.gnome.shell.gschema.xml.in.h:17
|
||||||
msgid "The type of keyboard to use."
|
msgid "The type of keyboard to use."
|
||||||
msgstr "ব্যৱহাৰ কৰিব লগিয়া কিবৰ্ডৰ ধৰণ।"
|
msgstr "ব্যৱহাৰ কৰিব লগিয়া কিবৰ্ডৰ ধৰণ।"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:20
|
#: ../data/org.gnome.shell.gschema.xml.in.h:18
|
||||||
msgid "Show time with seconds"
|
msgid "Show time with seconds"
|
||||||
msgstr "সময়ক ছেকেণ্ডসমূহৰ সৈতে দেখুৱাওক"
|
msgstr "সময়ক ছেকেণ্ডসমূহৰ সৈতে দেখুৱাওক"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:21
|
#: ../data/org.gnome.shell.gschema.xml.in.h:19
|
||||||
msgid "If true, display seconds in time."
|
msgid "If true, display seconds in time."
|
||||||
msgstr "যদি সত্য, ছেকেণ্ডসমূহ সময়ত দেখুৱাওক।"
|
msgstr "যদি সত্য, ছেকেণ্ডসমূহ সময়ত দেখুৱাওক।"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:22
|
#: ../data/org.gnome.shell.gschema.xml.in.h:20
|
||||||
msgid "Show date in clock"
|
msgid "Show date in clock"
|
||||||
msgstr "ঘড়িত তাৰিখ দেখুৱাওক"
|
msgstr "ঘড়িত তাৰিখ দেখুৱাওক"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:23
|
#: ../data/org.gnome.shell.gschema.xml.in.h:21
|
||||||
msgid "If true, display date in the clock, in addition to time."
|
msgid "If true, display date in the clock, in addition to time."
|
||||||
msgstr "যদি সত্য, ঘড়িত তাৰিখ প্ৰদৰ্শন কৰক, সময়ৰ অতিৰিক্তভাৱে।"
|
msgstr "যদি সত্য, ঘড়িত তাৰিখ প্ৰদৰ্শন কৰক, সময়ৰ অতিৰিক্তভাৱে।"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:24
|
#: ../data/org.gnome.shell.gschema.xml.in.h:22
|
||||||
msgid "Framerate used for recording screencasts."
|
msgid "Framerate used for recording screencasts."
|
||||||
msgstr "screencasts ৰেকৰ্ড কৰাৰ কাৰণে ব্যৱহৃত Framerate"
|
msgstr "screencasts ৰেকৰ্ড কৰাৰ কাৰণে ব্যৱহৃত Framerate"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:25
|
#: ../data/org.gnome.shell.gschema.xml.in.h:23
|
||||||
msgid ""
|
msgid ""
|
||||||
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
||||||
"screencast recorder in frames-per-second."
|
"screencast recorder in frames-per-second."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"GNOME শ্বেলৰ screencast ৰেকৰ্ডাৰে ফ্ৰেইম-প্ৰতি ছেকেণ্ডত ৰেকৰ্ড কৰা পৰিণাম "
|
"GNOME শ্বেলৰ screencast ৰেকৰ্ডাৰে ফ্ৰেইম-প্ৰতি ছেকেণ্ডত ৰেকৰ্ড কৰা পৰিণাম "
|
||||||
"screencast ৰ framerate।"
|
"screencast -ৰ framerate।"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:24
|
||||||
|
msgid "The gstreamer pipeline used to encode the screencast"
|
||||||
|
msgstr "screencast এনকোড কৰিবলে ব্যৱহাৰ কৰা gstreamer পাইপলাইন"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:26
|
#: ../data/org.gnome.shell.gschema.xml.in.h:26
|
||||||
msgid "The gstreamer pipeline used to encode the screencast"
|
|
||||||
msgstr "screencast এনক'ড কৰিবলে ব্যৱহাৰ কৰা gstreamer পাইপলাইন"
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:28
|
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
||||||
@ -190,29 +182,29 @@ msgid ""
|
|||||||
"using the VP8 codec. %T is used as a placeholder for a guess at the optimal "
|
"using the VP8 codec. %T is used as a placeholder for a guess at the optimal "
|
||||||
"thread count on the system."
|
"thread count on the system."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ৰেকৰ্ডিংসমূহ এনক'ড কৰোতে ব্যৱহৃত GStreamer পাইপলাইন সংহতি কৰে। ই gst-launch ৰ "
|
"ৰেকৰ্ডিংসমূহ এনকোড কৰোতে ব্যৱহৃত GStreamer পাইপলাইন সংহতি কৰে। ই gst-launch -ৰ "
|
||||||
"কাৰণে ব্যৱহৃত বাক্যবিন্যাস অনুকৰন কৰে। পাইপলাইনৰ এটা অসংযোগিত চিঙ্ক পেড থাকিব লাগে "
|
"কাৰণে ব্যৱহৃত বাক্যবিন্যাস অনুকৰন কৰে। পাইপলাইনৰ এটা অসংযোগিত চিঙ্ক পেড থাকিব লাগে "
|
||||||
"যত ৰেকৰ্ড কৰা ভিডিঅ' ৰেকৰ্ড কৰা হয়। ইয়াৰ সাধাৰণত এটা অসংযোগিত উৎস পেড থাকিব; "
|
"যত ৰেকৰ্ড কৰা ভিডিঅ' ৰেকৰ্ড কৰা হয়। ইয়াৰ সাধাৰনত এটা অসংযোগিত উৎস পেড থাকিব; "
|
||||||
"সেই পেডৰ পৰা আউটপুট এটা আউটপুট নথিপত্ৰলে লিখা হব। যি কি নহওক পাইপলাইনে নিজৰ "
|
"সেই পেডৰ পৰা আউটপুট এটা আউটপুট নথিপত্ৰলে লিখা হব। যি কি নহওক পাইপলাইনে নিজৰ "
|
||||||
"আউটপুটৰ যত্ন লব পাৰে - ইয়াৰ হওতো আউটপুটক shout2send অথবা সমসাময়িকৰে এটা icecast "
|
"আউটপুটৰ যত্ন লব পাৰে - ইয়াৰ হওতো আউটপুটক shout2send অথবা সমসাময়িকৰে এটা icecast "
|
||||||
"চাৰ্ভাৰত পঠাবলে ব্যৱহাৰ হব পাৰে। যেতিয়া এটা ৰিক্ত মানলে অসংহিত বা সংহিত, "
|
"চাৰ্ভাৰত পঠাবলে ব্যৱহাৰ হব পাৰে। যেতিয়া এটা ৰিক্ত মানলে অসংহিত বা সংহিত, "
|
||||||
"অবিকল্পিত পাইপলাইন ব্যৱহাৰ কৰা হব। এইটো বৰ্তমানত 'vp8enc quality=8 speed=6 "
|
"অবিকল্পিত পাইপলাইন ব্যৱহাৰ কৰা হব। এইটো বৰ্তমানত 'vp8enc quality=8 speed=6 "
|
||||||
"threads=%T ! queue ! webmmux' আৰু VP8 কডেক ব্যৱহাৰ কৰি WEBM ত ৰেকৰ্ড কৰে। %T -"
|
"threads=%T ! queue ! webmmux' আৰু VP8 কডেক ব্যৱহাৰ কৰি WEBM -ত ৰেকৰ্ড কৰে। %T -"
|
||||||
"ক চিস্টেমত অনুকূলিত থ্ৰেড কাওন্টত এটা অনুমানৰ প্লেইচহল্ডাৰ হিচাপে ব্যৱহাৰ কৰা হয়। "
|
"ক চিস্টেমত অনুকূলিত থ্ৰেড কাওন্টত এটা অনুমানৰ প্লেইচহল্ডাৰ হিচাপে ব্যৱহাৰ কৰা হয়। "
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:29
|
#: ../data/org.gnome.shell.gschema.xml.in.h:27
|
||||||
msgid "File extension used for storing the screencast"
|
msgid "File extension used for storing the screencast"
|
||||||
msgstr "screencast সংৰক্ষণ কৰাৰ কাৰণে লথিপত্ৰ সম্প্ৰসাৰন"
|
msgstr "screencast সংৰক্ষণ কৰাৰ কাৰণে লথিপত্ৰ সম্প্ৰসাৰন"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:30
|
#: ../data/org.gnome.shell.gschema.xml.in.h:28
|
||||||
msgid ""
|
msgid ""
|
||||||
"The filename for recorded screencasts will be a unique filename based on the "
|
"The filename for recorded screencasts will be a unique filename based on the "
|
||||||
"current date, and use this extension. It should be changed when recording to "
|
"current date, and use this extension. It should be changed when recording to "
|
||||||
"a different container format."
|
"a different container format."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ৰেকৰ্ড কৰা screencasts ৰ কাৰণে নথিপত্ৰ নাম বৰ্তমান তাৰিখৰ উপৰত ভিত্তি কৰি এটা "
|
"ৰেকৰ্ড কৰা screencasts -ৰ কাৰণে নথিপত্ৰ নাম বৰ্তমান তাৰিখৰ উপৰত ভিত্তি কৰি এটা "
|
||||||
"অবিকল্প নথিপত্ৰ নাম হব, আৰু এই সম্প্ৰসাৰন ব্যৱহাৰ কৰিব। ইয়াক এটা ভিন্ন অন্তৰ্ভুক্তক "
|
"অবিকল্প নথিপত্ৰ নাম হব, আৰু এই সম্প্ৰসাৰন ব্যৱহাৰ কৰিব। ইয়াক এটা ভিন্ন অন্তৰ্ভুক্তক "
|
||||||
"বিন্যাসত ৰেকৰ্ড কৰোতে পৰিৱৰ্তন কৰিব লাগিব।"
|
"বিন্যাসত কেকৰ্ড কৰোতে পৰিৱৰ্তন কৰিব লাগিব।"
|
||||||
|
|
||||||
#: ../js/extensionPrefs/main.js:125
|
#: ../js/extensionPrefs/main.js:125
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -227,40 +219,40 @@ msgstr "<b>সম্প্ৰসাৰন</b>"
|
|||||||
msgid "Select an extension to configure using the combobox above."
|
msgid "Select an extension to configure using the combobox above."
|
||||||
msgstr "উপৰত দিয়া কম্বোবাকচ ব্যৱহাৰ কৰি সংৰূপণ কৰিবলে এটা সম্প্ৰসাৰন বাছক।"
|
msgstr "উপৰত দিয়া কম্বোবাকচ ব্যৱহাৰ কৰি সংৰূপণ কৰিবলে এটা সম্প্ৰসাৰন বাছক।"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:627
|
#: ../js/gdm/loginDialog.js:624
|
||||||
msgid "Session..."
|
msgid "Session..."
|
||||||
msgstr "অধিবেশন..."
|
msgstr "অধিবেশন..."
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:789
|
#: ../js/gdm/loginDialog.js:786
|
||||||
msgctxt "title"
|
msgctxt "title"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "ছাইন ইন কৰক"
|
msgstr "ছাইন ইন কৰক"
|
||||||
|
|
||||||
#. Translators: this message is shown below the password entry field
|
#. Translators: this message is shown below the password entry field
|
||||||
#. to indicate the user can swipe their finger instead
|
#. to indicate the user can swipe their finger instead
|
||||||
#: ../js/gdm/loginDialog.js:834
|
#: ../js/gdm/loginDialog.js:831
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(অথবা আঙুলি স্বাইপ কৰক)"
|
msgstr "(অথবা আঙুলি স্বাইপ কৰক)"
|
||||||
|
|
||||||
#. translators: this message is shown below the user list on the
|
#. translators: this message is shown below the user list on the
|
||||||
#. login screen. It can be activated to reveal an entry for
|
#. login screen. It can be activated to reveal an entry for
|
||||||
#. manually entering the username.
|
#. manually entering the username.
|
||||||
#: ../js/gdm/loginDialog.js:855
|
#: ../js/gdm/loginDialog.js:852
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "তালিকাভুক্ত নহয়?"
|
msgstr "তালিকাভুক্ত নহয়?"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1023 ../js/ui/endSessionDialog.js:401
|
#: ../js/gdm/loginDialog.js:1020 ../js/ui/endSessionDialog.js:401
|
||||||
#: ../js/ui/extensionSystem.js:400 ../js/ui/networkAgent.js:153
|
#: ../js/ui/extensionSystem.js:399 ../js/ui/networkAgent.js:153
|
||||||
#: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462
|
#: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "বাতিল কৰক"
|
msgstr "বাতিল কৰক"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1028
|
#: ../js/gdm/loginDialog.js:1025
|
||||||
msgctxt "button"
|
msgctxt "button"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "ছাইন ইন কৰক"
|
msgstr "ছাইন ইন কৰক"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1380
|
#: ../js/gdm/loginDialog.js:1377
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "লগিন উইন্ডো"
|
msgstr "লগিন উইন্ডো"
|
||||||
|
|
||||||
@ -290,7 +282,7 @@ msgstr "কমান্ড বিশ্লেষন কৰিব নোৱাৰ
|
|||||||
#: ../js/misc/util.js:127
|
#: ../js/misc/util.js:127
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Execution of '%s' failed:"
|
msgid "Execution of '%s' failed:"
|
||||||
msgstr "'%s' ৰ প্ৰেৰণ ব্যৰ্থ হল:"
|
msgstr "'%s' -ৰ প্ৰেৰণ ব্যৰ্থ হল:"
|
||||||
|
|
||||||
#. Translators: Filter to display all applications
|
#. Translators: Filter to display all applications
|
||||||
#: ../js/ui/appDisplay.js:255
|
#: ../js/ui/appDisplay.js:255
|
||||||
@ -320,12 +312,12 @@ msgstr "পছন্দলে যোগ কৰক"
|
|||||||
#: ../js/ui/appFavorites.js:87
|
#: ../js/ui/appFavorites.js:87
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s has been added to your favorites."
|
msgid "%s has been added to your favorites."
|
||||||
msgstr "%s ক আপোনাৰ পছন্দলে যোগ কৰা হৈছে।"
|
msgstr "%s -ক আপোনাৰ পছন্দলে যোগ কৰা হৈছে।"
|
||||||
|
|
||||||
#: ../js/ui/appFavorites.js:118
|
#: ../js/ui/appFavorites.js:118
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s has been removed from your favorites."
|
msgid "%s has been removed from your favorites."
|
||||||
msgstr "%s ক আপোনাৰ পছন্দৰ পৰা আতৰোৱা হৈছে।"
|
msgstr "%s -ক আপোনাৰ পছন্দৰ পৰা আতৰোৱা হৈছে।"
|
||||||
|
|
||||||
#: ../js/ui/autorunManager.js:265
|
#: ../js/ui/autorunManager.js:265
|
||||||
msgid "Removable Devices"
|
msgid "Removable Devices"
|
||||||
@ -334,7 +326,7 @@ msgstr "আতৰাব পৰা ডিভাইচসমূহ"
|
|||||||
#: ../js/ui/autorunManager.js:560
|
#: ../js/ui/autorunManager.js:560
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "%s ৰ সৈতে খোলক"
|
msgstr "%s -ৰ সৈতে খোলক"
|
||||||
|
|
||||||
#: ../js/ui/autorunManager.js:586
|
#: ../js/ui/autorunManager.js:586
|
||||||
msgid "Eject"
|
msgid "Eject"
|
||||||
@ -596,8 +588,8 @@ msgstr[1] "%s স্বচালিতভাৱে %d ছেকেণ্ডৰ
|
|||||||
#, c-format
|
#, c-format
|
||||||
msgid "You will be logged out automatically in %d second."
|
msgid "You will be logged out automatically in %d second."
|
||||||
msgid_plural "You will be logged out automatically in %d seconds."
|
msgid_plural "You will be logged out automatically in %d seconds."
|
||||||
msgstr[0] "আপুনি স্বচালিতভাৱে %d ছেকেণ্ডৰ পিছত লগ আউট হৈ যাব।"
|
msgstr[0] "আপুনি স্বচালিতভাৱে %d ছেকেণ্ডসমূহৰ পিছত লগ আউট হৈ যাব।"
|
||||||
msgstr[1] "আপুনি স্বচালিতভাৱে %d ছেকেণ্ডৰ পিছত লগ আউট হৈ যাব।"
|
msgstr[1] "আপুনি স্বচালিতভাৱে %d ছেকেণ্ড পিছত লগ আউট হৈ যাব।"
|
||||||
|
|
||||||
#: ../js/ui/endSessionDialog.js:74
|
#: ../js/ui/endSessionDialog.js:74
|
||||||
msgid "Logging out of the system."
|
msgid "Logging out of the system."
|
||||||
@ -621,7 +613,7 @@ msgstr "এই অনুপ্ৰয়োগসমূহক প্ৰস্থা
|
|||||||
#, c-format
|
#, c-format
|
||||||
msgid "The system will power off automatically in %d second."
|
msgid "The system will power off automatically in %d second."
|
||||||
msgid_plural "The system will power off automatically in %d seconds."
|
msgid_plural "The system will power off automatically in %d seconds."
|
||||||
msgstr[0] "চিস্টেম %d ছেকেণ্ড পিছত স্বচালিতভাৱে পাৱাৰ অফ হব। "
|
msgstr[0] "চিস্টেম %d ছেকেণ্ডসমূহৰ পিছত স্বচালিতভাৱে পাৱাৰ অফ হব। "
|
||||||
msgstr[1] "চিস্টেম %d ছেকেণ্ডৰ পিছত স্বচালিতভাৱে বন্ধ হব। "
|
msgstr[1] "চিস্টেম %d ছেকেণ্ডৰ পিছত স্বচালিতভাৱে বন্ধ হব। "
|
||||||
|
|
||||||
#: ../js/ui/endSessionDialog.js:88
|
#: ../js/ui/endSessionDialog.js:88
|
||||||
@ -651,28 +643,27 @@ msgstr "এই অনুপ্ৰয়োগসমূহক প্ৰস্থা
|
|||||||
#, c-format
|
#, c-format
|
||||||
msgid "The system will restart automatically in %d second."
|
msgid "The system will restart automatically in %d second."
|
||||||
msgid_plural "The system will restart automatically in %d seconds."
|
msgid_plural "The system will restart automatically in %d seconds."
|
||||||
msgstr[0] "চিস্টেম %d ছেকেণ্ডত স্বচালিতভাৱে পুনৰাম্ভ হব।"
|
msgstr[0] "চিস্টেম %d ছেকেণ্ডসমূহত স্বচালিতভাৱে পুনৰাম্ভ হব।"
|
||||||
msgstr[1] "চিস্টেম %d ছেকেণ্ডত স্বচালিতভাৱে পুনৰাম্ভ হব।"
|
msgstr[1] "চিস্টেম %d ছেকেণ্ডত স্বচালিতভাৱে পুনৰাম্ভ হব।"
|
||||||
|
|
||||||
#: ../js/ui/endSessionDialog.js:105
|
#: ../js/ui/endSessionDialog.js:105
|
||||||
msgid "Restarting the system."
|
msgid "Restarting the system."
|
||||||
msgstr "চিস্টেম পুনৰাম্ভ কৰা হৈ আছে।"
|
msgstr "চিস্টেম পুনৰাম্ভ কৰা হৈ আছে।"
|
||||||
|
|
||||||
#: ../js/ui/extensionSystem.js:404
|
#: ../js/ui/extensionSystem.js:403
|
||||||
msgid "Install"
|
msgid "Install"
|
||||||
msgstr "ইনস্টল কৰক"
|
msgstr "ইনস্টল কৰক"
|
||||||
|
|
||||||
#: ../js/ui/extensionSystem.js:408
|
#: ../js/ui/extensionSystem.js:407
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Download and install '%s' from extensions.gnome.org?"
|
msgid "Download and install '%s' from extensions.gnome.org?"
|
||||||
msgstr "extensions.gnome.org ৰ পৰা '%s' ক ডাউনল'ড আৰু ইনস্টল কৰিব নে?"
|
msgstr "extensions.gnome.org -ৰ পৰা '%s' -ক ডাউনল'ড আৰু ইনস্টল কৰিব নে?"
|
||||||
|
|
||||||
#: ../js/ui/keyboard.js:327
|
#: ../js/ui/keyboard.js:327
|
||||||
msgid "tray"
|
msgid "tray"
|
||||||
msgstr "ট্ৰে"
|
msgstr "ট্ৰে"
|
||||||
|
|
||||||
#: ../js/ui/keyboard.js:544 ../js/ui/status/keyboard.js:44
|
#: ../js/ui/keyboard.js:544 ../js/ui/status/power.js:203
|
||||||
#: ../js/ui/status/power.js:203
|
|
||||||
msgid "Keyboard"
|
msgid "Keyboard"
|
||||||
msgstr "কিবৰ্ড"
|
msgstr "কিবৰ্ড"
|
||||||
|
|
||||||
@ -684,51 +675,51 @@ msgstr "পাছৱাৰ্ড:"
|
|||||||
msgid "Type again:"
|
msgid "Type again:"
|
||||||
msgstr "আকৌ টাইপ কৰক:"
|
msgstr "আকৌ টাইপ কৰক:"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:732
|
#: ../js/ui/lookingGlass.js:725
|
||||||
msgid "No extensions installed"
|
msgid "No extensions installed"
|
||||||
msgstr "কোনো সম্প্ৰসাৰন ইনস্টল কৰা হোৱা নাই"
|
msgstr "কোনো সম্প্ৰসাৰন ইনস্টল কৰা হোৱা নাই"
|
||||||
|
|
||||||
#. Translators: argument is an extension UUID.
|
#. Translators: argument is an extension UUID.
|
||||||
#: ../js/ui/lookingGlass.js:786
|
#: ../js/ui/lookingGlass.js:779
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s has not emitted any errors."
|
msgid "%s has not emitted any errors."
|
||||||
msgstr "%s এ কোনো ত্ৰুটি প্ৰেৰণ কৰা নাই।"
|
msgstr "%s এ কোনো ত্ৰুটি প্ৰেৰণ কৰা নাই।"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:792
|
#: ../js/ui/lookingGlass.js:785
|
||||||
msgid "Hide Errors"
|
msgid "Hide Errors"
|
||||||
msgstr "ত্ৰুটিসমূহ লুকুৱাওক"
|
msgstr "ত্ৰুটিসমূহ লুকুৱাওক"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:796 ../js/ui/lookingGlass.js:847
|
#: ../js/ui/lookingGlass.js:789 ../js/ui/lookingGlass.js:840
|
||||||
msgid "Show Errors"
|
msgid "Show Errors"
|
||||||
msgstr "ত্ৰুটিসমূহ দেখুৱাওক"
|
msgstr "ত্ৰুটিসমূহ দেখুৱাওক"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:805
|
#: ../js/ui/lookingGlass.js:798
|
||||||
msgid "Enabled"
|
msgid "Enabled"
|
||||||
msgstr "সামৰ্থবান কৰা আছে"
|
msgstr "সামৰ্থবান কৰা আছে"
|
||||||
|
|
||||||
#. translators:
|
#. translators:
|
||||||
#. * The device has been disabled
|
#. * The device has been disabled
|
||||||
#: ../js/ui/lookingGlass.js:808 ../src/gvc/gvc-mixer-control.c:1082
|
#: ../js/ui/lookingGlass.js:801 ../src/gvc/gvc-mixer-control.c:1093
|
||||||
msgid "Disabled"
|
msgid "Disabled"
|
||||||
msgstr "অসামৰ্থবান কৰা আছে"
|
msgstr "অসামৰ্থবান কৰা আছে"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:810
|
#: ../js/ui/lookingGlass.js:803
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "ত্ৰুটি"
|
msgstr "ত্ৰুটি"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:812
|
#: ../js/ui/lookingGlass.js:805
|
||||||
msgid "Out of date"
|
msgid "Out of date"
|
||||||
msgstr "পুৰনি"
|
msgstr "পুৰনি"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:814
|
#: ../js/ui/lookingGlass.js:807
|
||||||
msgid "Downloading"
|
msgid "Downloading"
|
||||||
msgstr "ডাউনল'ড কৰা হৈ আছে"
|
msgstr "ডাউনলোড কৰা হৈ আছে"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:835
|
#: ../js/ui/lookingGlass.js:828
|
||||||
msgid "View Source"
|
msgid "View Source"
|
||||||
msgstr "উৎস দৰ্শন কৰক"
|
msgstr "উৎস দৰ্শন কৰক"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:841
|
#: ../js/ui/lookingGlass.js:834
|
||||||
msgid "Web Page"
|
msgid "Web Page"
|
||||||
msgstr "ৱেব পৃষ্ঠা"
|
msgstr "ৱেব পৃষ্ঠা"
|
||||||
|
|
||||||
@ -768,7 +759,7 @@ msgstr "পাছৱাৰ্ড: "
|
|||||||
#. static WEP
|
#. static WEP
|
||||||
#: ../js/ui/networkAgent.js:248
|
#: ../js/ui/networkAgent.js:248
|
||||||
msgid "Key: "
|
msgid "Key: "
|
||||||
msgstr "কি': "
|
msgstr "চাবি: "
|
||||||
|
|
||||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||||
#. is not visible here since we only care about phase2 authentication
|
#. is not visible here since we only care about phase2 authentication
|
||||||
@ -783,7 +774,7 @@ msgstr "পৰিচয়: "
|
|||||||
|
|
||||||
#: ../js/ui/networkAgent.js:288
|
#: ../js/ui/networkAgent.js:288
|
||||||
msgid "Private key password: "
|
msgid "Private key password: "
|
||||||
msgstr "ব্যক্তিগত কি' পাছৱাৰ্ড: "
|
msgstr "ব্যক্তিগত চাবি পাছৱাৰ্ড: "
|
||||||
|
|
||||||
#: ../js/ui/networkAgent.js:300
|
#: ../js/ui/networkAgent.js:300
|
||||||
msgid "Service: "
|
msgid "Service: "
|
||||||
@ -799,7 +790,7 @@ msgid ""
|
|||||||
"Passwords or encryption keys are required to access the wireless network '%"
|
"Passwords or encryption keys are required to access the wireless network '%"
|
||||||
"s'."
|
"s'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"বেতাঁৰ নেটৱাৰ্ক '%s' অভিগম কৰিবলে পাছৱাৰ্ডসমূহ অথবা ইনক্ৰিপষণ কি'সমূহৰ প্ৰয়োজন।"
|
"বেতাঁৰ নেটৱাৰ্ক '%s' অভিগম কৰিবলে পাছৱাৰ্ডসমূহ অথবা ইনক্ৰিপষণ চাবিসমূহৰ প্ৰয়োজন।"
|
||||||
|
|
||||||
#: ../js/ui/networkAgent.js:334
|
#: ../js/ui/networkAgent.js:334
|
||||||
msgid "Wired 802.1X authentication"
|
msgid "Wired 802.1X authentication"
|
||||||
@ -815,11 +806,11 @@ msgstr "DSL প্ৰমাণীকৰণ"
|
|||||||
|
|
||||||
#: ../js/ui/networkAgent.js:348
|
#: ../js/ui/networkAgent.js:348
|
||||||
msgid "PIN code required"
|
msgid "PIN code required"
|
||||||
msgstr "PIN ক'ডৰ প্ৰয়োজন"
|
msgstr "PIN কোডৰ প্ৰয়োজন"
|
||||||
|
|
||||||
#: ../js/ui/networkAgent.js:349
|
#: ../js/ui/networkAgent.js:349
|
||||||
msgid "PIN code is needed for the mobile broadband device"
|
msgid "PIN code is needed for the mobile broadband device"
|
||||||
msgstr "মবাইল ব্ৰডবেণ্ড সেৱাৰ বাবে PIN ক'ডৰ প্ৰয়োজন"
|
msgstr "মবাইল ব্ৰডবেণ্ড সেৱাৰ বাবে PIN কোডৰ প্ৰয়োজন"
|
||||||
|
|
||||||
#: ../js/ui/networkAgent.js:350
|
#: ../js/ui/networkAgent.js:350
|
||||||
msgid "PIN: "
|
msgid "PIN: "
|
||||||
@ -832,7 +823,7 @@ msgstr "মবাইল ব্ৰডবেণ্ড নেটৱাৰ্ক প
|
|||||||
#: ../js/ui/networkAgent.js:357
|
#: ../js/ui/networkAgent.js:357
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "A password is required to connect to '%s'."
|
msgid "A password is required to connect to '%s'."
|
||||||
msgstr "'%s' লে সংযোগ কৰিবলে এটা পাছৱাৰ্ডৰ প্ৰয়োজন।"
|
msgstr "'%s' -লে সংযোগ কৰিবলে এটা পাছৱাৰ্ডৰ প্ৰয়োজন।"
|
||||||
|
|
||||||
#: ../js/ui/overview.js:90
|
#: ../js/ui/overview.js:90
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
@ -856,17 +847,17 @@ msgstr "অনুপ্ৰয়োগসমূহ"
|
|||||||
msgid "Dash"
|
msgid "Dash"
|
||||||
msgstr "ডেশ"
|
msgstr "ডেশ"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:592
|
#: ../js/ui/panel.js:591
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "প্ৰস্থান কৰক"
|
msgstr "প্ৰস্থান কৰক"
|
||||||
|
|
||||||
#. Translators: If there is no suitable word for "Activities"
|
#. Translators: If there is no suitable word for "Activities"
|
||||||
#. in your language, you can use the word for "Overview".
|
#. in your language, you can use the word for "Overview".
|
||||||
#: ../js/ui/panel.js:624
|
#: ../js/ui/panel.js:623
|
||||||
msgid "Activities"
|
msgid "Activities"
|
||||||
msgstr "কাৰ্য্যসমূহ"
|
msgstr "কাৰ্য্যসমূহ"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:999
|
#: ../js/ui/panel.js:998
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "উপৰৰ বাৰ"
|
msgstr "উপৰৰ বাৰ"
|
||||||
|
|
||||||
@ -881,7 +872,7 @@ msgstr "পুনৰ চেষ্টা কৰক"
|
|||||||
|
|
||||||
#: ../js/ui/placeDisplay.js:156
|
#: ../js/ui/placeDisplay.js:156
|
||||||
msgid "Connect to..."
|
msgid "Connect to..."
|
||||||
msgstr "লে সংযোগ কৰক..."
|
msgstr "-লে সংযোগ কৰক..."
|
||||||
|
|
||||||
#: ../js/ui/placeDisplay.js:367
|
#: ../js/ui/placeDisplay.js:367
|
||||||
msgid "PLACES & DEVICES"
|
msgid "PLACES & DEVICES"
|
||||||
@ -918,13 +909,13 @@ msgstr "toggle-switch-us"
|
|||||||
|
|
||||||
#: ../js/ui/runDialog.js:205
|
#: ../js/ui/runDialog.js:205
|
||||||
msgid "Please enter a command:"
|
msgid "Please enter a command:"
|
||||||
msgstr "অনুগ্ৰহ কৰি এটা কমান্ড সুমুৱাওক:"
|
msgstr "অনুগ্ৰহ কৰি এটা কমান্ড সোমাওক:"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:332
|
#: ../js/ui/searchDisplay.js:331
|
||||||
msgid "Searching..."
|
msgid "Searching..."
|
||||||
msgstr "সন্ধান কৰা হৈছে..."
|
msgstr "বিচৰা হৈ আছে..."
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:415
|
#: ../js/ui/searchDisplay.js:413
|
||||||
msgid "No matching results."
|
msgid "No matching results."
|
||||||
msgstr "কোনো মিল থকা ফলাফল নাই।"
|
msgstr "কোনো মিল থকা ফলাফল নাই।"
|
||||||
|
|
||||||
@ -969,19 +960,19 @@ msgstr "চক্ষ সতৰ্কবাৰ্তাসমূহ"
|
|||||||
|
|
||||||
#: ../js/ui/status/accessibility.js:70
|
#: ../js/ui/status/accessibility.js:70
|
||||||
msgid "Sticky Keys"
|
msgid "Sticky Keys"
|
||||||
msgstr "স্টিকি কি'সমূহ"
|
msgstr "স্টিকি চাবিসমূহ"
|
||||||
|
|
||||||
#: ../js/ui/status/accessibility.js:73
|
#: ../js/ui/status/accessibility.js:73
|
||||||
msgid "Slow Keys"
|
msgid "Slow Keys"
|
||||||
msgstr "মন্থৰ কি'সমূহ"
|
msgstr "মন্থৰ চাবিসমূহ"
|
||||||
|
|
||||||
#: ../js/ui/status/accessibility.js:76
|
#: ../js/ui/status/accessibility.js:76
|
||||||
msgid "Bounce Keys"
|
msgid "Bounce Keys"
|
||||||
msgstr "বাউঞ্চ কি'সমূহ"
|
msgstr "বাউঞ্চ চাবিসমূহ"
|
||||||
|
|
||||||
#: ../js/ui/status/accessibility.js:79
|
#: ../js/ui/status/accessibility.js:79
|
||||||
msgid "Mouse Keys"
|
msgid "Mouse Keys"
|
||||||
msgstr "মাউছ কি'সমূহ"
|
msgstr "মাউচ চাবিসমূহ"
|
||||||
|
|
||||||
#: ../js/ui/status/accessibility.js:83
|
#: ../js/ui/status/accessibility.js:83
|
||||||
msgid "Universal Access Settings"
|
msgid "Universal Access Settings"
|
||||||
@ -1058,7 +1049,7 @@ msgstr "কিবৰ্ড সংহতিসমূহ"
|
|||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:271
|
#: ../js/ui/status/bluetooth.js:271
|
||||||
msgid "Mouse Settings"
|
msgid "Mouse Settings"
|
||||||
msgstr "মাউছ আৰু টাচপেড সংহতিসমূহ"
|
msgstr "মাউচ আৰু টাচপেড সংহতিসমূহ"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:276 ../js/ui/status/volume.js:59
|
#: ../js/ui/status/bluetooth.js:276 ../js/ui/status/volume.js:59
|
||||||
msgid "Sound Settings"
|
msgid "Sound Settings"
|
||||||
@ -1067,12 +1058,12 @@ msgstr "শব্দ সংহতিসমূহ"
|
|||||||
#: ../js/ui/status/bluetooth.js:372
|
#: ../js/ui/status/bluetooth.js:372
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Authorization request from %s"
|
msgid "Authorization request from %s"
|
||||||
msgstr "%s ৰ পৰা প্ৰমাণীকৰণ অনুৰোধ"
|
msgstr "%s -ৰ পৰা প্ৰমাণীকৰণ অনুৰোধ"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:378
|
#: ../js/ui/status/bluetooth.js:378
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Device %s wants access to the service '%s'"
|
msgid "Device %s wants access to the service '%s'"
|
||||||
msgstr "ডিভাইচ %s এ সেৱা '%s' লে অভিগম বিচাৰে"
|
msgstr "ডিভাইচ %s -এ সেৱা '%s' -লে অভিগম বিচাৰে"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:380
|
#: ../js/ui/status/bluetooth.js:380
|
||||||
msgid "Always grant access"
|
msgid "Always grant access"
|
||||||
@ -1082,24 +1073,24 @@ msgstr "সদায় অভিগম প্ৰদান কৰক"
|
|||||||
msgid "Grant this time only"
|
msgid "Grant this time only"
|
||||||
msgstr "কেৱল এইবাৰৰ কাৰণে প্ৰদান কৰক"
|
msgstr "কেৱল এইবাৰৰ কাৰণে প্ৰদান কৰক"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1093
|
#: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1091
|
||||||
msgid "Reject"
|
msgid "Reject"
|
||||||
msgstr "নাকচ কৰক"
|
msgstr "নাকচ কৰক"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:408
|
#: ../js/ui/status/bluetooth.js:408
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Pairing confirmation for %s"
|
msgid "Pairing confirmation for %s"
|
||||||
msgstr "%s ৰ কাৰণে যোৰ প্ৰতিশ্ৰুতি"
|
msgstr "%s -ৰ কাৰণে যোৰ প্ৰতিশ্ৰুতি"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:414 ../js/ui/status/bluetooth.js:444
|
#: ../js/ui/status/bluetooth.js:414 ../js/ui/status/bluetooth.js:444
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Device %s wants to pair with this computer"
|
msgid "Device %s wants to pair with this computer"
|
||||||
msgstr "ডিভাইচ %s এ এই কমপিউটাৰৰ লগত সংযোগ কৰিব বিচাৰে"
|
msgstr "ডিভাইচ %s -এ এই কমপিউটাৰৰ লগত সংযোগ কৰিব বিচাৰে"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:415
|
#: ../js/ui/status/bluetooth.js:415
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Please confirm whether the PIN '%s' matches the one on the device."
|
msgid "Please confirm whether the PIN '%s' matches the one on the device."
|
||||||
msgstr "অনুগ্ৰহ কৰি সুনিশ্চিত কৰক যে PIN '%s' ডিভাইচত থকাটোৰ সৈতে মিল খায়।"
|
msgstr "অনুগ্ৰহ কৰি সুনিশ্চিত কৰক যে PIN '%s' ডিভাইচত থকাটোৰ লগত মিল খায়।"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:417
|
#: ../js/ui/status/bluetooth.js:417
|
||||||
msgid "Matches"
|
msgid "Matches"
|
||||||
@ -1112,11 +1103,11 @@ msgstr "মিল নাখায়"
|
|||||||
#: ../js/ui/status/bluetooth.js:437
|
#: ../js/ui/status/bluetooth.js:437
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Pairing request for %s"
|
msgid "Pairing request for %s"
|
||||||
msgstr "%s ৰ কাৰণে যোৰ অনুৰোধ"
|
msgstr "%s -ৰ কাৰণে যোৰ অনুৰোধ"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:445
|
#: ../js/ui/status/bluetooth.js:445
|
||||||
msgid "Please enter the PIN mentioned on the device."
|
msgid "Please enter the PIN mentioned on the device."
|
||||||
msgstr "অনুগ্ৰহ কৰি ডিভাইচত উল্লেখ কৰা PIN সুমুৱাওক।"
|
msgstr "অনুগ্ৰহ কৰি ডিভাইচত উল্লেখ কৰা PIN সোমাওক।"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:461
|
#: ../js/ui/status/bluetooth.js:461
|
||||||
msgid "OK"
|
msgid "OK"
|
||||||
@ -1270,7 +1261,7 @@ msgstr "অনুমান কৰা হৈ আছে..."
|
|||||||
msgid "%d hour remaining"
|
msgid "%d hour remaining"
|
||||||
msgid_plural "%d hours remaining"
|
msgid_plural "%d hours remaining"
|
||||||
msgstr[0] "%d ঘন্টা অৱশিষ্ট"
|
msgstr[0] "%d ঘন্টা অৱশিষ্ট"
|
||||||
msgstr[1] "%d ঘন্টা অৱশিষ্ট"
|
msgstr[1] "%d ঘন্টাসমূহ অৱশিষ্ট"
|
||||||
|
|
||||||
#. TRANSLATORS: this is a time string, as in "%d hours %d minutes remaining"
|
#. TRANSLATORS: this is a time string, as in "%d hours %d minutes remaining"
|
||||||
#: ../js/ui/status/power.js:108
|
#: ../js/ui/status/power.js:108
|
||||||
@ -1282,20 +1273,20 @@ msgstr "%d %s %d %s অৱশিষ্ট"
|
|||||||
msgid "hour"
|
msgid "hour"
|
||||||
msgid_plural "hours"
|
msgid_plural "hours"
|
||||||
msgstr[0] "ঘন্টা"
|
msgstr[0] "ঘন্টা"
|
||||||
msgstr[1] "ঘন্টা"
|
msgstr[1] "ঘন্টাসমূহ"
|
||||||
|
|
||||||
#: ../js/ui/status/power.js:110
|
#: ../js/ui/status/power.js:110
|
||||||
msgid "minute"
|
msgid "minute"
|
||||||
msgid_plural "minutes"
|
msgid_plural "minutes"
|
||||||
msgstr[0] "মিনিট"
|
msgstr[0] "মিনিট"
|
||||||
msgstr[1] "মিনিট"
|
msgstr[1] "মিনিটসমূহ"
|
||||||
|
|
||||||
#: ../js/ui/status/power.js:113
|
#: ../js/ui/status/power.js:113
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d minute remaining"
|
msgid "%d minute remaining"
|
||||||
msgid_plural "%d minutes remaining"
|
msgid_plural "%d minutes remaining"
|
||||||
msgstr[0] "%d মিনিট অৱশিষ্ট"
|
msgstr[0] "%d মিনিট অৱশিষ্ট"
|
||||||
msgstr[1] "%d মিনিট অৱশিষ্ট"
|
msgstr[1] "%d মিনিটসমূহ অৱশিষ্ট"
|
||||||
|
|
||||||
#: ../js/ui/status/power.js:116 ../js/ui/status/power.js:186
|
#: ../js/ui/status/power.js:116 ../js/ui/status/power.js:186
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -1346,7 +1337,7 @@ msgstr "কমপিউটাৰ"
|
|||||||
#. Translators: This is the label for audio volume
|
#. Translators: This is the label for audio volume
|
||||||
#: ../js/ui/status/volume.js:25 ../js/ui/status/volume.js:39
|
#: ../js/ui/status/volume.js:25 ../js/ui/status/volume.js:39
|
||||||
msgid "Volume"
|
msgid "Volume"
|
||||||
msgstr "ভলিউম"
|
msgstr "আয়তন"
|
||||||
|
|
||||||
#: ../js/ui/status/volume.js:51
|
#: ../js/ui/status/volume.js:51
|
||||||
msgid "Microphone"
|
msgid "Microphone"
|
||||||
@ -1399,71 +1390,71 @@ msgstr "%s ব্যস্ত আছে।"
|
|||||||
#. Translators: this is a time format string followed by a date.
|
#. Translators: this is a time format string followed by a date.
|
||||||
#. If applicable, replace %X with a strftime format valid for your
|
#. If applicable, replace %X with a strftime format valid for your
|
||||||
#. locale, without seconds.
|
#. locale, without seconds.
|
||||||
#: ../js/ui/telepathyClient.js:889
|
#: ../js/ui/telepathyClient.js:887
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sent at <b>%X</b> on <b>%A</b>"
|
msgid "Sent at <b>%X</b> on <b>%A</b>"
|
||||||
msgstr "<b>%X</b> on <b>%A</b> ত পঠোৱা হৈছে"
|
msgstr "<b>%X</b> on <b>%A</b> -ত পঠোৱা হৈছে"
|
||||||
|
|
||||||
#. Translators: this is a time format in the style of "Wednesday, May 25",
|
#. Translators: this is a time format in the style of "Wednesday, May 25",
|
||||||
#. shown when you get a chat message in the same year.
|
#. shown when you get a chat message in the same year.
|
||||||
#: ../js/ui/telepathyClient.js:895
|
#: ../js/ui/telepathyClient.js:893
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
|
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
|
||||||
msgstr "<b>%A</b> ত পঠোৱা হৈছে, <b>%B %d</b>"
|
msgstr "<b>%A</b> -ত পঠোৱা হৈছে, <b>%B %d</b>"
|
||||||
|
|
||||||
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
|
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
|
||||||
#. shown when you get a chat message in a different year.
|
#. shown when you get a chat message in a different year.
|
||||||
#: ../js/ui/telepathyClient.js:900
|
#: ../js/ui/telepathyClient.js:898
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
|
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
|
||||||
msgstr "<b>%A</b> ত পঠোৱা হৈছে, <b>%B %d</b>, %Y"
|
msgstr "<b>%A</b> -ত পঠোৱা হৈছে, <b>%B %d</b>, %Y"
|
||||||
|
|
||||||
#. Translators: this is the other person changing their old IM name to their new
|
#. Translators: this is the other person changing their old IM name to their new
|
||||||
#. IM name.
|
#. IM name.
|
||||||
#: ../js/ui/telepathyClient.js:942
|
#: ../js/ui/telepathyClient.js:940
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is now known as %s"
|
msgid "%s is now known as %s"
|
||||||
msgstr "%s এতিয়া %s হিচাপে জনাজাত"
|
msgstr "%s এতিয়া %s হিচাপে জনাজাত"
|
||||||
|
|
||||||
#. translators: argument is a room name like
|
#. translators: argument is a room name like
|
||||||
#. * room@jabber.org for example.
|
#. * room@jabber.org for example.
|
||||||
#: ../js/ui/telepathyClient.js:1044
|
#: ../js/ui/telepathyClient.js:1042
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invitation to %s"
|
msgid "Invitation to %s"
|
||||||
msgstr "%s লে নিমন্ত্ৰণ"
|
msgstr "%s -লে নিমন্ত্ৰণ"
|
||||||
|
|
||||||
#. translators: first argument is the name of a contact and the second
|
#. translators: first argument is the name of a contact and the second
|
||||||
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
||||||
#. * for example.
|
#. * for example.
|
||||||
#: ../js/ui/telepathyClient.js:1052
|
#: ../js/ui/telepathyClient.js:1050
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is inviting you to join %s"
|
msgid "%s is inviting you to join %s"
|
||||||
msgstr "%s এ আপোনাক %s ত অংশগ্ৰহণ কৰিবলে আমন্ত্ৰণ জনাইছে"
|
msgstr "%s -এ আপোনাক %s -ত অংশগ্ৰহণ কৰিবলে আমন্ত্ৰণ জনাইছে"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1054 ../js/ui/telepathyClient.js:1133
|
#: ../js/ui/telepathyClient.js:1052 ../js/ui/telepathyClient.js:1131
|
||||||
#: ../js/ui/telepathyClient.js:1231
|
#: ../js/ui/telepathyClient.js:1229
|
||||||
msgid "Decline"
|
msgid "Decline"
|
||||||
msgstr "নাকচ কৰক"
|
msgstr "নাকচ কৰক"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1055 ../js/ui/telepathyClient.js:1134
|
#: ../js/ui/telepathyClient.js:1053 ../js/ui/telepathyClient.js:1132
|
||||||
#: ../js/ui/telepathyClient.js:1232
|
#: ../js/ui/telepathyClient.js:1230
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "গ্ৰহন কৰক"
|
msgstr "গ্ৰহন কৰক"
|
||||||
|
|
||||||
#. translators: argument is a contact name like Alice for example.
|
#. translators: argument is a contact name like Alice for example.
|
||||||
#: ../js/ui/telepathyClient.js:1085
|
#: ../js/ui/telepathyClient.js:1083
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Video call from %s"
|
msgid "Video call from %s"
|
||||||
msgstr "%s ৰ পৰা ভিডিঅ' কল"
|
msgstr "%s -ৰ পৰা ভিডিঅ' কল"
|
||||||
|
|
||||||
#. translators: argument is a contact name like Alice for example.
|
#. translators: argument is a contact name like Alice for example.
|
||||||
#: ../js/ui/telepathyClient.js:1088
|
#: ../js/ui/telepathyClient.js:1086
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Call from %s"
|
msgid "Call from %s"
|
||||||
msgstr "%s - পৰা কল"
|
msgstr "%s - পৰা কল"
|
||||||
|
|
||||||
#. translators: this is a button label (verb), not a noun
|
#. translators: this is a button label (verb), not a noun
|
||||||
#: ../js/ui/telepathyClient.js:1095
|
#: ../js/ui/telepathyClient.js:1093
|
||||||
msgid "Answer"
|
msgid "Answer"
|
||||||
msgstr "উত্তৰ"
|
msgstr "উত্তৰ"
|
||||||
|
|
||||||
@ -1472,107 +1463,107 @@ msgstr "উত্তৰ"
|
|||||||
#. * file name. The string will be something
|
#. * file name. The string will be something
|
||||||
#. * like: "Alice is sending you test.ogg"
|
#. * like: "Alice is sending you test.ogg"
|
||||||
#.
|
#.
|
||||||
#: ../js/ui/telepathyClient.js:1127
|
#: ../js/ui/telepathyClient.js:1125
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is sending you %s"
|
msgid "%s is sending you %s"
|
||||||
msgstr "%s এ আপোনাক %s পঠাই আছে"
|
msgstr "%s -এ আপোনাক %s পঠাই আছে"
|
||||||
|
|
||||||
#. To translators: The parameter is the contact's alias
|
#. To translators: The parameter is the contact's alias
|
||||||
#: ../js/ui/telepathyClient.js:1196
|
#: ../js/ui/telepathyClient.js:1194
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s would like permission to see when you are online"
|
msgid "%s would like permission to see when you are online"
|
||||||
msgstr "আপুনি কেতিয়া অনলাইন আছে চাবলে %s এ অনুমতি বিচাৰিব"
|
msgstr "আপুনি কেতিয়া অনলাইন আছে চাবলে %s -এ অনুমতি বিচাৰিব"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1289
|
#: ../js/ui/telepathyClient.js:1287
|
||||||
msgid "Network error"
|
msgid "Network error"
|
||||||
msgstr "নেটৱাৰ্ক ত্ৰুটি"
|
msgstr "নেটৱাৰ্ক ত্ৰুটি"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1291
|
#: ../js/ui/telepathyClient.js:1289
|
||||||
msgid "Authentication failed"
|
msgid "Authentication failed"
|
||||||
msgstr "প্ৰমাণীকৰণ ব্যৰ্থ"
|
msgstr "প্ৰমাণীকৰণ ব্যৰ্থ"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1293
|
#: ../js/ui/telepathyClient.js:1291
|
||||||
msgid "Encryption error"
|
msgid "Encryption error"
|
||||||
msgstr "ইনক্ৰিপষণ ত্ৰুটি"
|
msgstr "ইনক্ৰিপষণ ত্ৰুটি"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1295
|
#: ../js/ui/telepathyClient.js:1293
|
||||||
msgid "Certificate not provided"
|
msgid "Certificate not provided"
|
||||||
msgstr "প্ৰমাণপত্ৰ প্ৰদান কৰা হোৱা নাই"
|
msgstr "প্ৰমাণপত্ৰ প্ৰদান কৰা হোৱা নাই"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1297
|
#: ../js/ui/telepathyClient.js:1295
|
||||||
msgid "Certificate untrusted"
|
msgid "Certificate untrusted"
|
||||||
msgstr "প্ৰমাণপত্ৰক ভৰষা কৰিব নোৱাৰি"
|
msgstr "প্ৰমাণপত্ৰক ভৰষা কৰিব নোৱাৰি"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1299
|
#: ../js/ui/telepathyClient.js:1297
|
||||||
msgid "Certificate expired"
|
msgid "Certificate expired"
|
||||||
msgstr "প্ৰমাণপত্ৰৰ অৱসান ঘটিছে"
|
msgstr "প্ৰমাণপত্ৰৰ অৱসান ঘটিছে"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1301
|
#: ../js/ui/telepathyClient.js:1299
|
||||||
msgid "Certificate not activated"
|
msgid "Certificate not activated"
|
||||||
msgstr "প্ৰমাণপত্ৰ সক্ৰিয় কৰা হোৱা নাই"
|
msgstr "প্ৰমাণপত্ৰ সক্ৰিয় কৰা হোৱা নাই"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1303
|
#: ../js/ui/telepathyClient.js:1301
|
||||||
msgid "Certificate hostname mismatch"
|
msgid "Certificate hostname mismatch"
|
||||||
msgstr "প্ৰমাণপত্ৰ হস্টনাম অমিল"
|
msgstr "প্ৰমাণপত্ৰ হস্টনাম অমিল"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1305
|
#: ../js/ui/telepathyClient.js:1303
|
||||||
msgid "Certificate fingerprint mismatch"
|
msgid "Certificate fingerprint mismatch"
|
||||||
msgstr "প্ৰমাণপত্ৰ ফিংগাৰপ্ৰিন্ট অমিল"
|
msgstr "প্ৰমাণপত্ৰ ফিন্গাৰপ্ৰিন্ট অমিল"
|
||||||
|
|
||||||
|
#: ../js/ui/telepathyClient.js:1305
|
||||||
|
msgid "Certificate self-signed"
|
||||||
|
msgstr "প্ৰমাণপত্ৰ স্বস্বাক্ষৰীত"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1307
|
#: ../js/ui/telepathyClient.js:1307
|
||||||
msgid "Certificate self-signed"
|
|
||||||
msgstr "প্ৰমাণপত্ৰ স্ব-স্বাক্ষৰীত"
|
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1309
|
|
||||||
msgid "Status is set to offline"
|
msgid "Status is set to offline"
|
||||||
msgstr "অৱস্থা অফলাইনলে সংহতি কৰা হৈছে"
|
msgstr "অৱস্থা অফলাইনলে সংহতি কৰা হৈছে"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1311
|
#: ../js/ui/telepathyClient.js:1309
|
||||||
msgid "Encryption is not available"
|
msgid "Encryption is not available"
|
||||||
msgstr "ইনক্ৰিপষণ উপলব্ধ নহয়"
|
msgstr "ইনক্ৰিপষণ উপলব্ধ নহয়"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1313
|
#: ../js/ui/telepathyClient.js:1311
|
||||||
msgid "Certificate is invalid"
|
msgid "Certificate is invalid"
|
||||||
msgstr "প্ৰমাণপত্ৰ অবৈধ"
|
msgstr "প্ৰমাণপত্ৰ অবৈধ"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1315
|
#: ../js/ui/telepathyClient.js:1313
|
||||||
msgid "Connection has been refused"
|
msgid "Connection has been refused"
|
||||||
msgstr "সংযোগ নাকচ কৰা হৈছে"
|
msgstr "সংযোগ নাকচ কৰা হৈছে"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1317
|
#: ../js/ui/telepathyClient.js:1315
|
||||||
msgid "Connection can't be established"
|
msgid "Connection can't be established"
|
||||||
msgstr "সংযোগ স্থাপন কৰিব নোৱাৰি"
|
msgstr "সংযোগ স্থাপন কৰিব নোৱাৰি"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1319
|
#: ../js/ui/telepathyClient.js:1317
|
||||||
msgid "Connection has been lost"
|
msgid "Connection has been lost"
|
||||||
msgstr "সংযোগ হেৰাইছে"
|
msgstr "সংযোগ হেৰাইছে"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1321
|
#: ../js/ui/telepathyClient.js:1319
|
||||||
msgid "This account is already connected to the server"
|
msgid "This account is already connected to the server"
|
||||||
msgstr "এই একাওন্ট ইতিমধ্যে চাৰ্ভাৰৰ সৈতে সংযোগিত"
|
msgstr "এই একাওন্ট ইতিমধ্যে চাৰ্ভাৰৰ সৈতে সংযোগিত"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1323
|
#: ../js/ui/telepathyClient.js:1321
|
||||||
msgid "Connection has been replaced by a new connection using the same resource"
|
msgid "Connection has been replaced by a new connection using the same resource"
|
||||||
msgstr "সংযোগক একে সম্পদ ব্যৱহাৰ কৰি এটা নতুন সংযোগৰে প্ৰতিস্থাপন কৰা হৈছে"
|
msgstr "সংযোগক একে সম্পদ ব্যৱহাৰ কৰি এটা নতুন সংযোগৰে প্ৰতিস্থাপন কৰা হৈছে"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1325
|
#: ../js/ui/telepathyClient.js:1323
|
||||||
msgid "The account already exists on the server"
|
msgid "The account already exists on the server"
|
||||||
msgstr "একাওন্ট ইতিমধ্যে চাৰ্ভাৰত উপস্থিত"
|
msgstr "একাওন্ট ইতিমধ্যে চাৰ্ভাৰত উপস্থিত"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1327
|
#: ../js/ui/telepathyClient.js:1325
|
||||||
msgid "Server is currently too busy to handle the connection"
|
msgid "Server is currently too busy to handle the connection"
|
||||||
msgstr "চাৰ্ভাৰ সংযোগ ব্যৱস্থাপনা কৰিবলে বৰ্তমানে অতি ব্যস্ত"
|
msgstr "চাৰ্ভাৰ সংযোগ ব্যৱস্থাপনা কৰিবলে বৰ্তমানে অতি ব্যস্ত"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1329
|
#: ../js/ui/telepathyClient.js:1327
|
||||||
msgid "Certificate has been revoked"
|
msgid "Certificate has been revoked"
|
||||||
msgstr "প্ৰমাণপত্ৰ প্ৰত্যাহাৰ কৰা হৈছে"
|
msgstr "প্ৰমাণপত্ৰ প্ৰত্যাহাৰ কৰা হৈছে"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1331
|
#: ../js/ui/telepathyClient.js:1329
|
||||||
msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"প্ৰমাণপত্ৰয় এটা অসুৰক্ষিত চিফাৰ এলগৰিথম ব্যৱহাৰ কৰে অথবা ক্ৰিপ্টোগ্ৰাফিয়ভাৱে দুৰ্বল"
|
"প্ৰমাণপত্ৰয় এটা অসুৰক্ষিত চিফাৰ এলগৰিথম ব্যৱহাৰ কৰে অথবা ক্ৰিপ্টোগ্ৰাফিয়ভাৱে দুৰ্বল"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1333
|
#: ../js/ui/telepathyClient.js:1331
|
||||||
msgid ""
|
msgid ""
|
||||||
"The length of the server certificate, or the depth of the server certificate "
|
"The length of the server certificate, or the depth of the server certificate "
|
||||||
"chain, exceed the limits imposed by the cryptography library"
|
"chain, exceed the limits imposed by the cryptography library"
|
||||||
@ -1580,26 +1571,26 @@ msgstr ""
|
|||||||
"চাৰ্ভাৰ প্ৰমাণপত্ৰৰ দৈৰ্ঘ, অথবা চাৰ্ভাৰ প্ৰমাণপত্ৰ শৃংখলৰ গভীৰতা, ক্ৰিপ্টোগ্ৰাফী "
|
"চাৰ্ভাৰ প্ৰমাণপত্ৰৰ দৈৰ্ঘ, অথবা চাৰ্ভাৰ প্ৰমাণপত্ৰ শৃংখলৰ গভীৰতা, ক্ৰিপ্টোগ্ৰাফী "
|
||||||
"লাইব্ৰেৰীয়ে প্ৰণয়ন কৰা সীমাসমূহত অতিক্ৰম কৰে"
|
"লাইব্ৰেৰীয়ে প্ৰণয়ন কৰা সীমাসমূহত অতিক্ৰম কৰে"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1335
|
#: ../js/ui/telepathyClient.js:1333
|
||||||
msgid "Internal error"
|
msgid "Internal error"
|
||||||
msgstr "অভ্যন্তৰীক ত্ৰুটি"
|
msgstr "অভ্যন্তৰীক ত্ৰুটি"
|
||||||
|
|
||||||
#. translators: argument is the account name, like
|
#. translators: argument is the account name, like
|
||||||
#. * name@jabber.org for example.
|
#. * name@jabber.org for example.
|
||||||
#: ../js/ui/telepathyClient.js:1345
|
#: ../js/ui/telepathyClient.js:1343
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Connection to %s failed"
|
msgid "Connection to %s failed"
|
||||||
msgstr "%s লে সংযোগ ব্যৰ্থ"
|
msgstr "%s -লে সংযোগ ব্যৰ্থ"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1354
|
#: ../js/ui/telepathyClient.js:1352
|
||||||
msgid "Reconnect"
|
msgid "Reconnect"
|
||||||
msgstr "পুনৰ সংযোগ কৰক"
|
msgstr "পুনৰ সংযোগ কৰক"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1355
|
#: ../js/ui/telepathyClient.js:1353
|
||||||
msgid "Edit account"
|
msgid "Edit account"
|
||||||
msgstr "একাওন্ট সম্পাদন কৰক"
|
msgstr "একাওন্ট সম্পাদন কৰক"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1401
|
#: ../js/ui/telepathyClient.js:1399
|
||||||
msgid "Unknown reason"
|
msgid "Unknown reason"
|
||||||
msgstr "অজ্ঞাত কাৰণ"
|
msgstr "অজ্ঞাত কাৰণ"
|
||||||
|
|
||||||
@ -1617,7 +1608,7 @@ msgstr "উপলব্ধ নাই"
|
|||||||
|
|
||||||
#: ../js/ui/userMenu.js:595 ../js/ui/userMenu.js:599 ../js/ui/userMenu.js:669
|
#: ../js/ui/userMenu.js:595 ../js/ui/userMenu.js:599 ../js/ui/userMenu.js:669
|
||||||
msgid "Power Off..."
|
msgid "Power Off..."
|
||||||
msgstr "পাৱাৰ অফ"
|
msgstr "১"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:631
|
#: ../js/ui/userMenu.js:631
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
@ -1637,11 +1628,11 @@ msgstr "পৰ্দা লক কৰক"
|
|||||||
|
|
||||||
#: ../js/ui/userMenu.js:655
|
#: ../js/ui/userMenu.js:655
|
||||||
msgid "Switch User"
|
msgid "Switch User"
|
||||||
msgstr "ব্যৱহাৰকাৰী পৰিবৰ্তন কৰক"
|
msgstr "ব্যৱহাৰকাৰী অদল বদল কৰক"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:660
|
#: ../js/ui/userMenu.js:660
|
||||||
msgid "Log Out..."
|
msgid "Log Out..."
|
||||||
msgstr "লগ আউট কৰক..."
|
msgstr "লগ আউট..."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:688
|
#: ../js/ui/userMenu.js:688
|
||||||
msgid "Your chat status will be set to busy"
|
msgid "Your chat status will be set to busy"
|
||||||
@ -1662,7 +1653,7 @@ msgstr ""
|
|||||||
#. characters.
|
#. characters.
|
||||||
#: ../js/ui/viewSelector.js:113
|
#: ../js/ui/viewSelector.js:113
|
||||||
msgid "Type to search..."
|
msgid "Type to search..."
|
||||||
msgstr "সন্ধান কৰিবলে টাইপ কৰক..."
|
msgstr "বিচাৰিবলে টাইপ কৰক..."
|
||||||
|
|
||||||
#: ../js/ui/viewSelector.js:131 ../src/shell-util.c:252
|
#: ../js/ui/viewSelector.js:131 ../src/shell-util.c:252
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
@ -1693,7 +1684,7 @@ msgstr "'%s' প্ৰস্তুত"
|
|||||||
|
|
||||||
#. translators:
|
#. translators:
|
||||||
#. * The number of sound outputs on a particular device
|
#. * The number of sound outputs on a particular device
|
||||||
#: ../src/gvc/gvc-mixer-control.c:1089
|
#: ../src/gvc/gvc-mixer-control.c:1100
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%u Output"
|
msgid "%u Output"
|
||||||
msgid_plural "%u Outputs"
|
msgid_plural "%u Outputs"
|
||||||
@ -1702,14 +1693,14 @@ msgstr[1] "%u আউটপুটসমূহ"
|
|||||||
|
|
||||||
#. translators:
|
#. translators:
|
||||||
#. * The number of sound inputs on a particular device
|
#. * The number of sound inputs on a particular device
|
||||||
#: ../src/gvc/gvc-mixer-control.c:1099
|
#: ../src/gvc/gvc-mixer-control.c:1110
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%u Input"
|
msgid "%u Input"
|
||||||
msgid_plural "%u Inputs"
|
msgid_plural "%u Inputs"
|
||||||
msgstr[0] "%u ইনপুট"
|
msgstr[0] "%u ইনপুট"
|
||||||
msgstr[1] "%u ইনপুটসমূহ"
|
msgstr[1] "%u ইনপুটসমূহ"
|
||||||
|
|
||||||
#: ../src/gvc/gvc-mixer-control.c:1397
|
#: ../src/gvc/gvc-mixer-control.c:1408
|
||||||
msgid "System Sounds"
|
msgid "System Sounds"
|
||||||
msgstr "চিস্টেম শব্দসমূহ"
|
msgstr "চিস্টেম শব্দসমূহ"
|
||||||
|
|
||||||
@ -1775,7 +1766,7 @@ msgstr "%1$s: %2$s"
|
|||||||
#~ msgstr "পাছৱাৰ্ড দেখুৱাওক"
|
#~ msgstr "পাছৱাৰ্ড দেখুৱাওক"
|
||||||
|
|
||||||
#~ msgid "%s has finished starting"
|
#~ msgid "%s has finished starting"
|
||||||
#~ msgstr "%s এ আৰম্ভ কৰা সমাপ্ত কৰিছে"
|
#~ msgstr "%s -এ আৰম্ভ কৰা সমাপ্ত কৰিছে"
|
||||||
|
|
||||||
#~ msgid "Home Folder"
|
#~ msgid "Home Folder"
|
||||||
#~ msgstr "ঘৰ ফোল্ডাৰ"
|
#~ msgstr "ঘৰ ফোল্ডাৰ"
|
||||||
|
208
po/da.po
208
po/da.po
@ -16,8 +16,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell\n"
|
"Project-Id-Version: gnome-shell\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-10-07 22:45+0200\n"
|
"POT-Creation-Date: 2012-03-22 15:47+0100\n"
|
||||||
"PO-Revision-Date: 2013-10-06 15:29+0200\n"
|
"PO-Revision-Date: 2012-03-22 13:02+0100\n"
|
||||||
"Last-Translator: Kris Thomsen <lakristho@gmail.com>\n"
|
"Last-Translator: Kris Thomsen <lakristho@gmail.com>\n"
|
||||||
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
|
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
|
||||||
"Language: da\n"
|
"Language: da\n"
|
||||||
@ -137,42 +137,34 @@ msgid "If true, display the ISO week date in the calendar."
|
|||||||
msgstr "Hvis sand vises ISO-ugenummeret i kalenderen."
|
msgstr "Hvis sand vises ISO-ugenummeret i kalenderen."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:16
|
#: ../data/org.gnome.shell.gschema.xml.in.h:16
|
||||||
msgid "Keybinding to open the application menu"
|
|
||||||
msgstr "Tastebinding til at åbne programmenuen"
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:17
|
|
||||||
msgid "Keybinding to open the application menu."
|
|
||||||
msgstr "Tastebinding til at åbne programmenuen."
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:18
|
|
||||||
msgid "Which keyboard to use"
|
msgid "Which keyboard to use"
|
||||||
msgstr "Hvilket tastatur bruges"
|
msgstr "Hvilket tastatur bruges"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:19
|
#: ../data/org.gnome.shell.gschema.xml.in.h:17
|
||||||
msgid "The type of keyboard to use."
|
msgid "The type of keyboard to use."
|
||||||
msgstr "Tastaturtypen som bruges."
|
msgstr "Tastaturtypen som bruges."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:20
|
#: ../data/org.gnome.shell.gschema.xml.in.h:18
|
||||||
msgid "Show time with seconds"
|
msgid "Show time with seconds"
|
||||||
msgstr "Vis tid med sekunder"
|
msgstr "Vis tid med sekunder"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:21
|
#: ../data/org.gnome.shell.gschema.xml.in.h:19
|
||||||
msgid "If true, display seconds in time."
|
msgid "If true, display seconds in time."
|
||||||
msgstr "Hvis sand vises sekunder i klokkeslæt."
|
msgstr "Hvis sand vises sekunder i klokkeslæt."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:22
|
#: ../data/org.gnome.shell.gschema.xml.in.h:20
|
||||||
msgid "Show date in clock"
|
msgid "Show date in clock"
|
||||||
msgstr "Vis dato i uret"
|
msgstr "Vis dato i uret"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:23
|
#: ../data/org.gnome.shell.gschema.xml.in.h:21
|
||||||
msgid "If true, display date in the clock, in addition to time."
|
msgid "If true, display date in the clock, in addition to time."
|
||||||
msgstr "Hvis sand vises datoen i uret, som tillæg til tiden."
|
msgstr "Hvis sand vises datoen i uret, som tillæg til tiden."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:24
|
#: ../data/org.gnome.shell.gschema.xml.in.h:22
|
||||||
msgid "Framerate used for recording screencasts."
|
msgid "Framerate used for recording screencasts."
|
||||||
msgstr "Billedfrekvens brugt til skærmoptagelser."
|
msgstr "Billedfrekvens brugt til skærmoptagelser."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:25
|
#: ../data/org.gnome.shell.gschema.xml.in.h:23
|
||||||
msgid ""
|
msgid ""
|
||||||
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
||||||
"screencast recorder in frames-per-second."
|
"screencast recorder in frames-per-second."
|
||||||
@ -180,11 +172,11 @@ msgstr ""
|
|||||||
"Billedfrekvensen på den endelige skærmoptagelse, optaget af GNOME-Shells "
|
"Billedfrekvensen på den endelige skærmoptagelse, optaget af GNOME-Shells "
|
||||||
"skærmoptager i billeder-per-sekund."
|
"skærmoptager i billeder-per-sekund."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:26
|
#: ../data/org.gnome.shell.gschema.xml.in.h:24
|
||||||
msgid "The gstreamer pipeline used to encode the screencast"
|
msgid "The gstreamer pipeline used to encode the screencast"
|
||||||
msgstr "Datakanalen for Gstreamer bruges til indkodning af skærmoptagelsen"
|
msgstr "Datakanalen for Gstreamer bruges til indkodning af skærmoptagelsen"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:28
|
#: ../data/org.gnome.shell.gschema.xml.in.h:26
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
||||||
@ -209,11 +201,11 @@ msgstr ""
|
|||||||
"webmmux\" og optager i WEBM-formatet med VP8-codec'et. %T bruges som "
|
"webmmux\" og optager i WEBM-formatet med VP8-codec'et. %T bruges som "
|
||||||
"pladsholder for et gæt om det optimale trådantal på systemet."
|
"pladsholder for et gæt om det optimale trådantal på systemet."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:29
|
#: ../data/org.gnome.shell.gschema.xml.in.h:27
|
||||||
msgid "File extension used for storing the screencast"
|
msgid "File extension used for storing the screencast"
|
||||||
msgstr "Filendelse til at gemme skærmoptagelser"
|
msgstr "Filendelse til at gemme skærmoptagelser"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:30
|
#: ../data/org.gnome.shell.gschema.xml.in.h:28
|
||||||
msgid ""
|
msgid ""
|
||||||
"The filename for recorded screencasts will be a unique filename based on the "
|
"The filename for recorded screencasts will be a unique filename based on the "
|
||||||
"current date, and use this extension. It should be changed when recording to "
|
"current date, and use this extension. It should be changed when recording to "
|
||||||
@ -237,40 +229,40 @@ msgid "Select an extension to configure using the combobox above."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Vælg en udvidelse at konfigurere ved hjælp af kombinationsboksen ovenfor."
|
"Vælg en udvidelse at konfigurere ved hjælp af kombinationsboksen ovenfor."
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:627
|
#: ../js/gdm/loginDialog.js:624
|
||||||
msgid "Session..."
|
msgid "Session..."
|
||||||
msgstr "Session..."
|
msgstr "Session..."
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:789
|
#: ../js/gdm/loginDialog.js:786
|
||||||
msgctxt "title"
|
msgctxt "title"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Log ind"
|
msgstr "Log ind"
|
||||||
|
|
||||||
#. Translators: this message is shown below the password entry field
|
#. Translators: this message is shown below the password entry field
|
||||||
#. to indicate the user can swipe their finger instead
|
#. to indicate the user can swipe their finger instead
|
||||||
#: ../js/gdm/loginDialog.js:834
|
#: ../js/gdm/loginDialog.js:831
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(eller indlæs fingeraftryk)"
|
msgstr "(eller indlæs fingeraftryk)"
|
||||||
|
|
||||||
#. translators: this message is shown below the user list on the
|
#. translators: this message is shown below the user list on the
|
||||||
#. login screen. It can be activated to reveal an entry for
|
#. login screen. It can be activated to reveal an entry for
|
||||||
#. manually entering the username.
|
#. manually entering the username.
|
||||||
#: ../js/gdm/loginDialog.js:855
|
#: ../js/gdm/loginDialog.js:852
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "Ikke listet?"
|
msgstr "Ikke listet?"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1023 ../js/ui/endSessionDialog.js:401
|
#: ../js/gdm/loginDialog.js:1020 ../js/ui/endSessionDialog.js:401
|
||||||
#: ../js/ui/extensionSystem.js:400 ../js/ui/networkAgent.js:153
|
#: ../js/ui/extensionSystem.js:399 ../js/ui/networkAgent.js:153
|
||||||
#: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462
|
#: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Annullér"
|
msgstr "Annullér"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1028
|
#: ../js/gdm/loginDialog.js:1025
|
||||||
msgctxt "button"
|
msgctxt "button"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Log ind"
|
msgstr "Log ind"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1380
|
#: ../js/gdm/loginDialog.js:1377
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Indlogningsvindue"
|
msgstr "Indlogningsvindue"
|
||||||
|
|
||||||
@ -668,11 +660,11 @@ msgstr[1] "Systemet vil genstarte automatisk om %d sekunder."
|
|||||||
msgid "Restarting the system."
|
msgid "Restarting the system."
|
||||||
msgstr "Genstarter systemet."
|
msgstr "Genstarter systemet."
|
||||||
|
|
||||||
#: ../js/ui/extensionSystem.js:404
|
#: ../js/ui/extensionSystem.js:403
|
||||||
msgid "Install"
|
msgid "Install"
|
||||||
msgstr "Installér"
|
msgstr "Installér"
|
||||||
|
|
||||||
#: ../js/ui/extensionSystem.js:408
|
#: ../js/ui/extensionSystem.js:407
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Download and install '%s' from extensions.gnome.org?"
|
msgid "Download and install '%s' from extensions.gnome.org?"
|
||||||
msgstr "Hent og installér \"%s\" fra extensions.gnome.org?"
|
msgstr "Hent og installér \"%s\" fra extensions.gnome.org?"
|
||||||
@ -681,8 +673,7 @@ msgstr "Hent og installér \"%s\" fra extensions.gnome.org?"
|
|||||||
msgid "tray"
|
msgid "tray"
|
||||||
msgstr "statusfelt"
|
msgstr "statusfelt"
|
||||||
|
|
||||||
#: ../js/ui/keyboard.js:544 ../js/ui/status/keyboard.js:44
|
#: ../js/ui/keyboard.js:544 ../js/ui/status/power.js:203
|
||||||
#: ../js/ui/status/power.js:203
|
|
||||||
msgid "Keyboard"
|
msgid "Keyboard"
|
||||||
msgstr "Tastatur"
|
msgstr "Tastatur"
|
||||||
|
|
||||||
@ -694,51 +685,51 @@ msgstr "Adgangskode:"
|
|||||||
msgid "Type again:"
|
msgid "Type again:"
|
||||||
msgstr "Indtast igen:"
|
msgstr "Indtast igen:"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:732
|
#: ../js/ui/lookingGlass.js:725
|
||||||
msgid "No extensions installed"
|
msgid "No extensions installed"
|
||||||
msgstr "Ingen udvidelser er installeret"
|
msgstr "Ingen udvidelser er installeret"
|
||||||
|
|
||||||
#. Translators: argument is an extension UUID.
|
#. Translators: argument is an extension UUID.
|
||||||
#: ../js/ui/lookingGlass.js:786
|
#: ../js/ui/lookingGlass.js:779
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s has not emitted any errors."
|
msgid "%s has not emitted any errors."
|
||||||
msgstr "%s er ikke kommet med nogen fejl."
|
msgstr "%s er ikke kommet med nogen fejl."
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:792
|
#: ../js/ui/lookingGlass.js:785
|
||||||
msgid "Hide Errors"
|
msgid "Hide Errors"
|
||||||
msgstr "Skjul fejl"
|
msgstr "Skjul fejl"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:796 ../js/ui/lookingGlass.js:847
|
#: ../js/ui/lookingGlass.js:789 ../js/ui/lookingGlass.js:840
|
||||||
msgid "Show Errors"
|
msgid "Show Errors"
|
||||||
msgstr "Vis fejl"
|
msgstr "Vis fejl"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:805
|
#: ../js/ui/lookingGlass.js:798
|
||||||
msgid "Enabled"
|
msgid "Enabled"
|
||||||
msgstr "Aktiveret"
|
msgstr "Aktiveret"
|
||||||
|
|
||||||
#. translators:
|
#. translators:
|
||||||
#. * The device has been disabled
|
#. * The device has been disabled
|
||||||
#: ../js/ui/lookingGlass.js:808 ../src/gvc/gvc-mixer-control.c:1082
|
#: ../js/ui/lookingGlass.js:801 ../src/gvc/gvc-mixer-control.c:1093
|
||||||
msgid "Disabled"
|
msgid "Disabled"
|
||||||
msgstr "Deaktiveret"
|
msgstr "Deaktiveret"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:810
|
#: ../js/ui/lookingGlass.js:803
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Fejl"
|
msgstr "Fejl"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:812
|
#: ../js/ui/lookingGlass.js:805
|
||||||
msgid "Out of date"
|
msgid "Out of date"
|
||||||
msgstr "Udløbet"
|
msgstr "Udløbet"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:814
|
#: ../js/ui/lookingGlass.js:807
|
||||||
msgid "Downloading"
|
msgid "Downloading"
|
||||||
msgstr "Henter"
|
msgstr "Henter"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:835
|
#: ../js/ui/lookingGlass.js:828
|
||||||
msgid "View Source"
|
msgid "View Source"
|
||||||
msgstr "Vis kilde"
|
msgstr "Vis kilde"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:841
|
#: ../js/ui/lookingGlass.js:834
|
||||||
msgid "Web Page"
|
msgid "Web Page"
|
||||||
msgstr "Webside"
|
msgstr "Webside"
|
||||||
|
|
||||||
@ -867,17 +858,17 @@ msgstr "Programmer"
|
|||||||
msgid "Dash"
|
msgid "Dash"
|
||||||
msgstr "Favoritområde"
|
msgstr "Favoritområde"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:592
|
#: ../js/ui/panel.js:591
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Afslut"
|
msgstr "Afslut"
|
||||||
|
|
||||||
#. Translators: If there is no suitable word for "Activities"
|
#. Translators: If there is no suitable word for "Activities"
|
||||||
#. in your language, you can use the word for "Overview".
|
#. in your language, you can use the word for "Overview".
|
||||||
#: ../js/ui/panel.js:624
|
#: ../js/ui/panel.js:623
|
||||||
msgid "Activities"
|
msgid "Activities"
|
||||||
msgstr "Aktiviteter"
|
msgstr "Aktiviteter"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:999
|
#: ../js/ui/panel.js:998
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Toppanel"
|
msgstr "Toppanel"
|
||||||
|
|
||||||
@ -935,7 +926,7 @@ msgstr "Indtast en kommando:"
|
|||||||
msgid "Searching..."
|
msgid "Searching..."
|
||||||
msgstr "Søger..."
|
msgstr "Søger..."
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:415
|
#: ../js/ui/searchDisplay.js:414
|
||||||
msgid "No matching results."
|
msgid "No matching results."
|
||||||
msgstr "Ingen resultater fundet."
|
msgstr "Ingen resultater fundet."
|
||||||
|
|
||||||
@ -955,7 +946,7 @@ msgstr "Vis tekst"
|
|||||||
msgid "Hide Text"
|
msgid "Hide Text"
|
||||||
msgstr "Skjul tekst"
|
msgstr "Skjul tekst"
|
||||||
|
|
||||||
#: ../js/ui/shellMountOperation.js:280
|
#: ../js/ui/shellMountOperation.js:271
|
||||||
msgid "Wrong password, please try again"
|
msgid "Wrong password, please try again"
|
||||||
msgstr "Forkert adgangskode, forsøg venligst igen"
|
msgstr "Forkert adgangskode, forsøg venligst igen"
|
||||||
|
|
||||||
@ -1093,7 +1084,7 @@ msgstr "Giv altid adgang"
|
|||||||
msgid "Grant this time only"
|
msgid "Grant this time only"
|
||||||
msgstr "Giv kun lov denne gang"
|
msgstr "Giv kun lov denne gang"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1106
|
#: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1091
|
||||||
msgid "Reject"
|
msgid "Reject"
|
||||||
msgstr "Afvis"
|
msgstr "Afvis"
|
||||||
|
|
||||||
@ -1365,44 +1356,44 @@ msgstr "Mikrofon"
|
|||||||
|
|
||||||
#. FIXME: We don't have a 'chat room' icon (bgo #653737) use
|
#. FIXME: We don't have a 'chat room' icon (bgo #653737) use
|
||||||
#. system-users for now as Empathy does.
|
#. system-users for now as Empathy does.
|
||||||
#: ../js/ui/telepathyClient.js:226
|
#: ../js/ui/telepathyClient.js:220
|
||||||
msgid "Invitation"
|
msgid "Invitation"
|
||||||
msgstr "Invitation"
|
msgstr "Invitation"
|
||||||
|
|
||||||
#. We got the TpContact
|
#. We got the TpContact
|
||||||
#: ../js/ui/telepathyClient.js:284
|
#: ../js/ui/telepathyClient.js:271
|
||||||
msgid "Call"
|
msgid "Call"
|
||||||
msgstr "Opkald"
|
msgstr "Opkald"
|
||||||
|
|
||||||
#. We got the TpContact
|
#. We got the TpContact
|
||||||
#: ../js/ui/telepathyClient.js:300
|
#: ../js/ui/telepathyClient.js:287
|
||||||
msgid "File Transfer"
|
msgid "File Transfer"
|
||||||
msgstr "Filoverførsel"
|
msgstr "Filoverførsel"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:382
|
#: ../js/ui/telepathyClient.js:369
|
||||||
msgid "Subscription request"
|
msgid "Subscription request"
|
||||||
msgstr "Godkendelsesforespørgsel"
|
msgstr "Godkendelsesforespørgsel"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:418
|
#: ../js/ui/telepathyClient.js:405
|
||||||
msgid "Connection error"
|
msgid "Connection error"
|
||||||
msgstr "Forbindelsesfejl"
|
msgstr "Forbindelsesfejl"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:676
|
#: ../js/ui/telepathyClient.js:663
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is online."
|
msgid "%s is online."
|
||||||
msgstr "%s er online."
|
msgstr "%s er online."
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:680
|
#: ../js/ui/telepathyClient.js:667
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is offline."
|
msgid "%s is offline."
|
||||||
msgstr "%s er offline."
|
msgstr "%s er offline."
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:684
|
#: ../js/ui/telepathyClient.js:671
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is away."
|
msgid "%s is away."
|
||||||
msgstr "%s er ikke til stede."
|
msgstr "%s er ikke til stede."
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:687
|
#: ../js/ui/telepathyClient.js:674
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is busy."
|
msgid "%s is busy."
|
||||||
msgstr "%s er optaget."
|
msgstr "%s er optaget."
|
||||||
@ -1410,35 +1401,35 @@ msgstr "%s er optaget."
|
|||||||
#. Translators: this is a time format string followed by a date.
|
#. Translators: this is a time format string followed by a date.
|
||||||
#. If applicable, replace %X with a strftime format valid for your
|
#. If applicable, replace %X with a strftime format valid for your
|
||||||
#. locale, without seconds.
|
#. locale, without seconds.
|
||||||
#: ../js/ui/telepathyClient.js:902
|
#: ../js/ui/telepathyClient.js:887
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sent at <b>%X</b> on <b>%A</b>"
|
msgid "Sent at <b>%X</b> on <b>%A</b>"
|
||||||
msgstr "Sendt <b>%A</b> kl. <b>%H:%M</b>"
|
msgstr "Sendt <b>%A</b> kl. <b>%H:%M</b>"
|
||||||
|
|
||||||
#. Translators: this is a time format in the style of "Wednesday, May 25",
|
#. Translators: this is a time format in the style of "Wednesday, May 25",
|
||||||
#. shown when you get a chat message in the same year.
|
#. shown when you get a chat message in the same year.
|
||||||
#: ../js/ui/telepathyClient.js:908
|
#: ../js/ui/telepathyClient.js:893
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
|
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
|
||||||
msgstr "Sendt <b>%A</b> den <b>%e. %B</b>"
|
msgstr "Sendt <b>%A</b> den <b>%e. %B</b>"
|
||||||
|
|
||||||
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
|
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
|
||||||
#. shown when you get a chat message in a different year.
|
#. shown when you get a chat message in a different year.
|
||||||
#: ../js/ui/telepathyClient.js:913
|
#: ../js/ui/telepathyClient.js:898
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
|
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
|
||||||
msgstr "Sendt <b>%A</b> den <b>%e. %B</b>, %Y"
|
msgstr "Sendt <b>%A</b> den <b>%e. %B</b>, %Y"
|
||||||
|
|
||||||
#. Translators: this is the other person changing their old IM name to their new
|
#. Translators: this is the other person changing their old IM name to their new
|
||||||
#. IM name.
|
#. IM name.
|
||||||
#: ../js/ui/telepathyClient.js:955
|
#: ../js/ui/telepathyClient.js:940
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is now known as %s"
|
msgid "%s is now known as %s"
|
||||||
msgstr "%s kalder sig nu %s"
|
msgstr "%s kalder sig nu %s"
|
||||||
|
|
||||||
#. translators: argument is a room name like
|
#. translators: argument is a room name like
|
||||||
#. * room@jabber.org for example.
|
#. * room@jabber.org for example.
|
||||||
#: ../js/ui/telepathyClient.js:1057
|
#: ../js/ui/telepathyClient.js:1042
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invitation to %s"
|
msgid "Invitation to %s"
|
||||||
msgstr "Invitation til %s"
|
msgstr "Invitation til %s"
|
||||||
@ -1446,35 +1437,35 @@ msgstr "Invitation til %s"
|
|||||||
#. translators: first argument is the name of a contact and the second
|
#. translators: first argument is the name of a contact and the second
|
||||||
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
||||||
#. * for example.
|
#. * for example.
|
||||||
#: ../js/ui/telepathyClient.js:1065
|
#: ../js/ui/telepathyClient.js:1050
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is inviting you to join %s"
|
msgid "%s is inviting you to join %s"
|
||||||
msgstr "%s inviterer dig til at deltage i %s"
|
msgstr "%s inviterer dig til at deltage i %s"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1067 ../js/ui/telepathyClient.js:1146
|
#: ../js/ui/telepathyClient.js:1052 ../js/ui/telepathyClient.js:1131
|
||||||
#: ../js/ui/telepathyClient.js:1244
|
#: ../js/ui/telepathyClient.js:1229
|
||||||
msgid "Decline"
|
msgid "Decline"
|
||||||
msgstr "Afvis"
|
msgstr "Afvis"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1068 ../js/ui/telepathyClient.js:1147
|
#: ../js/ui/telepathyClient.js:1053 ../js/ui/telepathyClient.js:1132
|
||||||
#: ../js/ui/telepathyClient.js:1245
|
#: ../js/ui/telepathyClient.js:1230
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "Acceptér"
|
msgstr "Acceptér"
|
||||||
|
|
||||||
#. translators: argument is a contact name like Alice for example.
|
#. translators: argument is a contact name like Alice for example.
|
||||||
#: ../js/ui/telepathyClient.js:1098
|
#: ../js/ui/telepathyClient.js:1083
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Video call from %s"
|
msgid "Video call from %s"
|
||||||
msgstr "Videoopkald fra %s"
|
msgstr "Videoopkald fra %s"
|
||||||
|
|
||||||
#. translators: argument is a contact name like Alice for example.
|
#. translators: argument is a contact name like Alice for example.
|
||||||
#: ../js/ui/telepathyClient.js:1101
|
#: ../js/ui/telepathyClient.js:1086
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Call from %s"
|
msgid "Call from %s"
|
||||||
msgstr "Opkald fra %s"
|
msgstr "Opkald fra %s"
|
||||||
|
|
||||||
#. translators: this is a button label (verb), not a noun
|
#. translators: this is a button label (verb), not a noun
|
||||||
#: ../js/ui/telepathyClient.js:1108
|
#: ../js/ui/telepathyClient.js:1093
|
||||||
msgid "Answer"
|
msgid "Answer"
|
||||||
msgstr "Svar"
|
msgstr "Svar"
|
||||||
|
|
||||||
@ -1483,111 +1474,111 @@ msgstr "Svar"
|
|||||||
#. * file name. The string will be something
|
#. * file name. The string will be something
|
||||||
#. * like: "Alice is sending you test.ogg"
|
#. * like: "Alice is sending you test.ogg"
|
||||||
#.
|
#.
|
||||||
#: ../js/ui/telepathyClient.js:1140
|
#: ../js/ui/telepathyClient.js:1125
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is sending you %s"
|
msgid "%s is sending you %s"
|
||||||
msgstr "%s sender dig %s"
|
msgstr "%s sender dig %s"
|
||||||
|
|
||||||
#. To translators: The parameter is the contact's alias
|
#. To translators: The parameter is the contact's alias
|
||||||
#: ../js/ui/telepathyClient.js:1209
|
#: ../js/ui/telepathyClient.js:1194
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s would like permission to see when you are online"
|
msgid "%s would like permission to see when you are online"
|
||||||
msgstr "%s vil gerne have tilladelse til at se, når du er online"
|
msgstr "%s vil gerne have tilladelse til at se, når du er online"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1302
|
#: ../js/ui/telepathyClient.js:1287
|
||||||
msgid "Network error"
|
msgid "Network error"
|
||||||
msgstr "Netværksfejl"
|
msgstr "Netværksfejl"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1304
|
#: ../js/ui/telepathyClient.js:1289
|
||||||
msgid "Authentication failed"
|
msgid "Authentication failed"
|
||||||
msgstr "Godkendelse mislykkedes"
|
msgstr "Godkendelse mislykkedes"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1306
|
#: ../js/ui/telepathyClient.js:1291
|
||||||
msgid "Encryption error"
|
msgid "Encryption error"
|
||||||
msgstr "Krypteringsfejl"
|
msgstr "Krypteringsfejl"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1308
|
#: ../js/ui/telepathyClient.js:1293
|
||||||
msgid "Certificate not provided"
|
msgid "Certificate not provided"
|
||||||
msgstr "Certifikat ikke angivet"
|
msgstr "Certifikat ikke angivet"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1310
|
#: ../js/ui/telepathyClient.js:1295
|
||||||
msgid "Certificate untrusted"
|
msgid "Certificate untrusted"
|
||||||
msgstr "Utroværdigt certifikat"
|
msgstr "Utroværdigt certifikat"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1312
|
#: ../js/ui/telepathyClient.js:1297
|
||||||
msgid "Certificate expired"
|
msgid "Certificate expired"
|
||||||
msgstr "Certifikat udløbet"
|
msgstr "Certifikat udløbet"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1314
|
#: ../js/ui/telepathyClient.js:1299
|
||||||
msgid "Certificate not activated"
|
msgid "Certificate not activated"
|
||||||
msgstr "Certifikat ikke aktiveret"
|
msgstr "Certifikat ikke aktiveret"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1316
|
#: ../js/ui/telepathyClient.js:1301
|
||||||
msgid "Certificate hostname mismatch"
|
msgid "Certificate hostname mismatch"
|
||||||
msgstr "Certifikat-værtsnavn stemmer ikke"
|
msgstr "Certifikat-værtsnavn stemmer ikke"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1318
|
#: ../js/ui/telepathyClient.js:1303
|
||||||
msgid "Certificate fingerprint mismatch"
|
msgid "Certificate fingerprint mismatch"
|
||||||
msgstr "Certifikat-fingeraftryk stemmer ikke"
|
msgstr "Certifikat-fingeraftryk stemmer ikke"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1320
|
#: ../js/ui/telepathyClient.js:1305
|
||||||
msgid "Certificate self-signed"
|
msgid "Certificate self-signed"
|
||||||
msgstr "Certifikat selv-underskrevet"
|
msgstr "Certifikat selv-underskrevet"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1322
|
#: ../js/ui/telepathyClient.js:1307
|
||||||
msgid "Status is set to offline"
|
msgid "Status is set to offline"
|
||||||
msgstr "Status er angivet til offline"
|
msgstr "Status er angivet til offline"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1324
|
#: ../js/ui/telepathyClient.js:1309
|
||||||
msgid "Encryption is not available"
|
msgid "Encryption is not available"
|
||||||
msgstr "Kryptering er ikke tilgængelig"
|
msgstr "Kryptering er ikke tilgængelig"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1326
|
#: ../js/ui/telepathyClient.js:1311
|
||||||
msgid "Certificate is invalid"
|
msgid "Certificate is invalid"
|
||||||
msgstr "Ugyldigt certifikat"
|
msgstr "Ugyldigt certifikat"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1328
|
#: ../js/ui/telepathyClient.js:1313
|
||||||
msgid "Connection has been refused"
|
msgid "Connection has been refused"
|
||||||
msgstr "Forbindelse er blevet afvist"
|
msgstr "Forbindelse er blevet afvist"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1330
|
#: ../js/ui/telepathyClient.js:1315
|
||||||
msgid "Connection can't be established"
|
msgid "Connection can't be established"
|
||||||
msgstr "Forbindelse kan ikke oprettes"
|
msgstr "Forbindelse kan ikke oprettes"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1332
|
#: ../js/ui/telepathyClient.js:1317
|
||||||
msgid "Connection has been lost"
|
msgid "Connection has been lost"
|
||||||
msgstr "Forbindelse er mistet"
|
msgstr "Forbindelse er mistet"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1334
|
#: ../js/ui/telepathyClient.js:1319
|
||||||
msgid "This account is already connected to the server"
|
msgid "This account is already connected to the server"
|
||||||
msgstr "Denne konto er allerede forbundet til serveren"
|
msgstr "Denne konto er allerede forbundet til serveren"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1336
|
#: ../js/ui/telepathyClient.js:1321
|
||||||
msgid ""
|
msgid ""
|
||||||
"Connection has been replaced by a new connection using the same resource"
|
"Connection has been replaced by a new connection using the same resource"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Forbindelsen er blevet erstattet af en ny forbindelse, som bruger samme "
|
"Forbindelsen er blevet erstattet af en ny forbindelse, som bruger samme "
|
||||||
"ressource"
|
"ressource"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1338
|
#: ../js/ui/telepathyClient.js:1323
|
||||||
msgid "The account already exists on the server"
|
msgid "The account already exists on the server"
|
||||||
msgstr "Kontoen findes allerede på serveren"
|
msgstr "Kontoen findes allerede på serveren"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1340
|
#: ../js/ui/telepathyClient.js:1325
|
||||||
msgid "Server is currently too busy to handle the connection"
|
msgid "Server is currently too busy to handle the connection"
|
||||||
msgstr "Serveren er i øjeblikket for travl til at behandle forbindelsen"
|
msgstr "Serveren er i øjeblikket for travl til at behandle forbindelsen"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1342
|
#: ../js/ui/telepathyClient.js:1327
|
||||||
msgid "Certificate has been revoked"
|
msgid "Certificate has been revoked"
|
||||||
msgstr "Certifikat er blevet påberåbt"
|
msgstr "Certifikat er blevet påberåbt"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1344
|
#: ../js/ui/telepathyClient.js:1329
|
||||||
msgid ""
|
msgid ""
|
||||||
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Certifikat bruger en usikker cipher-algoritme eller er kryptografisk svag"
|
"Certifikat bruger en usikker cipher-algoritme eller er kryptografisk svag"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1346
|
#: ../js/ui/telepathyClient.js:1331
|
||||||
msgid ""
|
msgid ""
|
||||||
"The length of the server certificate, or the depth of the server certificate "
|
"The length of the server certificate, or the depth of the server certificate "
|
||||||
"chain, exceed the limits imposed by the cryptography library"
|
"chain, exceed the limits imposed by the cryptography library"
|
||||||
@ -1595,26 +1586,26 @@ msgstr ""
|
|||||||
"Længden på servercertifikatet, eller dybden af servercertifikat-kæden, "
|
"Længden på servercertifikatet, eller dybden af servercertifikat-kæden, "
|
||||||
"overskrider grænsen, som er fastsat af det kryptografiske-programbibliotek"
|
"overskrider grænsen, som er fastsat af det kryptografiske-programbibliotek"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1348
|
#: ../js/ui/telepathyClient.js:1333
|
||||||
msgid "Internal error"
|
msgid "Internal error"
|
||||||
msgstr "Intern fejl"
|
msgstr "Intern fejl"
|
||||||
|
|
||||||
#. translators: argument is the account name, like
|
#. translators: argument is the account name, like
|
||||||
#. * name@jabber.org for example.
|
#. * name@jabber.org for example.
|
||||||
#: ../js/ui/telepathyClient.js:1358
|
#: ../js/ui/telepathyClient.js:1343
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Connection to %s failed"
|
msgid "Connection to %s failed"
|
||||||
msgstr "Forbindelse til %s mislykkedes"
|
msgstr "Forbindelse til %s mislykkedes"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1367
|
#: ../js/ui/telepathyClient.js:1352
|
||||||
msgid "Reconnect"
|
msgid "Reconnect"
|
||||||
msgstr "Forbind igen"
|
msgstr "Forbind igen"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1368
|
#: ../js/ui/telepathyClient.js:1353
|
||||||
msgid "Edit account"
|
msgid "Edit account"
|
||||||
msgstr "Redigér konto"
|
msgstr "Redigér konto"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1414
|
#: ../js/ui/telepathyClient.js:1399
|
||||||
msgid "Unknown reason"
|
msgid "Unknown reason"
|
||||||
msgstr "Ukendt årsag"
|
msgstr "Ukendt årsag"
|
||||||
|
|
||||||
@ -1708,7 +1699,7 @@ msgstr "\"%s\" er klar"
|
|||||||
|
|
||||||
#. translators:
|
#. translators:
|
||||||
#. * The number of sound outputs on a particular device
|
#. * The number of sound outputs on a particular device
|
||||||
#: ../src/gvc/gvc-mixer-control.c:1089
|
#: ../src/gvc/gvc-mixer-control.c:1100
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%u Output"
|
msgid "%u Output"
|
||||||
msgid_plural "%u Outputs"
|
msgid_plural "%u Outputs"
|
||||||
@ -1717,22 +1708,22 @@ msgstr[1] "%u outputs"
|
|||||||
|
|
||||||
#. translators:
|
#. translators:
|
||||||
#. * The number of sound inputs on a particular device
|
#. * The number of sound inputs on a particular device
|
||||||
#: ../src/gvc/gvc-mixer-control.c:1099
|
#: ../src/gvc/gvc-mixer-control.c:1110
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%u Input"
|
msgid "%u Input"
|
||||||
msgid_plural "%u Inputs"
|
msgid_plural "%u Inputs"
|
||||||
msgstr[0] "%u input"
|
msgstr[0] "%u input"
|
||||||
msgstr[1] "%u inputs"
|
msgstr[1] "%u inputs"
|
||||||
|
|
||||||
#: ../src/gvc/gvc-mixer-control.c:1397
|
#: ../src/gvc/gvc-mixer-control.c:1408
|
||||||
msgid "System Sounds"
|
msgid "System Sounds"
|
||||||
msgstr "Systemlyde"
|
msgstr "Systemlyde"
|
||||||
|
|
||||||
#: ../src/main.c:256
|
#: ../src/main.c:255
|
||||||
msgid "Print version"
|
msgid "Print version"
|
||||||
msgstr "Udskriv version"
|
msgstr "Udskriv version"
|
||||||
|
|
||||||
#: ../src/main.c:262
|
#: ../src/main.c:261
|
||||||
msgid "Mode used by GDM for login screen"
|
msgid "Mode used by GDM for login screen"
|
||||||
msgstr "Tilstand brugt af GDM til indlogningskærm"
|
msgstr "Tilstand brugt af GDM til indlogningskærm"
|
||||||
|
|
||||||
@ -1783,9 +1774,6 @@ msgstr "Filsystem"
|
|||||||
msgid "%1$s: %2$s"
|
msgid "%1$s: %2$s"
|
||||||
msgstr "%1$s: %2$s"
|
msgstr "%1$s: %2$s"
|
||||||
|
|
||||||
#~ msgid "calendar:MY"
|
|
||||||
#~ msgstr "calendar:MY"
|
|
||||||
|
|
||||||
#~ msgid "RECENT ITEMS"
|
#~ msgid "RECENT ITEMS"
|
||||||
#~ msgstr "SENESTE ELEMENTER"
|
#~ msgstr "SENESTE ELEMENTER"
|
||||||
|
|
||||||
|
208
po/es.po
208
po/es.po
@ -10,8 +10,8 @@ msgstr ""
|
|||||||
"Project-Id-Version: gnome-shell.master\n"
|
"Project-Id-Version: gnome-shell.master\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"shell&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2012-03-30 17:59+0000\n"
|
"POT-Creation-Date: 2012-04-24 15:39+0000\n"
|
||||||
"PO-Revision-Date: 2012-04-01 19:11+0200\n"
|
"PO-Revision-Date: 2012-04-25 12:09+0200\n"
|
||||||
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
||||||
"Language-Team: Español <gnome-es-list@gnome.org>\n"
|
"Language-Team: Español <gnome-es-list@gnome.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -141,34 +141,44 @@ msgid "Keybinding to open the application menu."
|
|||||||
msgstr "Asociación de teclas para abrir el menú de la aplicación."
|
msgstr "Asociación de teclas para abrir el menú de la aplicación."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:18
|
#: ../data/org.gnome.shell.gschema.xml.in.h:18
|
||||||
|
#| msgid "Keybinding to open the application menu"
|
||||||
|
msgid "Keybinding to toggle the screen recorder"
|
||||||
|
msgstr "Asociación de teclas cambiar el grabador de pantalla"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:19
|
||||||
|
#| msgid "Keybinding to open the application menu."
|
||||||
|
msgid "Keybinding to start/stop the builtin screen recorder."
|
||||||
|
msgstr "Asociación de teclas para iniciar/detener el grabador de pantalla."
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:20
|
||||||
msgid "Which keyboard to use"
|
msgid "Which keyboard to use"
|
||||||
msgstr "Qué teclado usar"
|
msgstr "Qué teclado usar"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:19
|
#: ../data/org.gnome.shell.gschema.xml.in.h:21
|
||||||
msgid "The type of keyboard to use."
|
msgid "The type of keyboard to use."
|
||||||
msgstr "El tipo de teclado que usar."
|
msgstr "El tipo de teclado que usar."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:20
|
#: ../data/org.gnome.shell.gschema.xml.in.h:22
|
||||||
msgid "Show time with seconds"
|
msgid "Show time with seconds"
|
||||||
msgstr "Mostrar la hora con segundos"
|
msgstr "Mostrar la hora con segundos"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:21
|
#: ../data/org.gnome.shell.gschema.xml.in.h:23
|
||||||
msgid "If true, display seconds in time."
|
msgid "If true, display seconds in time."
|
||||||
msgstr "Si es cierta, muestra los segundos en la hora."
|
msgstr "Si es cierta, muestra los segundos en la hora."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:22
|
#: ../data/org.gnome.shell.gschema.xml.in.h:24
|
||||||
msgid "Show date in clock"
|
msgid "Show date in clock"
|
||||||
msgstr "Mostrar la fecha en el reloj"
|
msgstr "Mostrar la fecha en el reloj"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:23
|
#: ../data/org.gnome.shell.gschema.xml.in.h:25
|
||||||
msgid "If true, display date in the clock, in addition to time."
|
msgid "If true, display date in the clock, in addition to time."
|
||||||
msgstr "Si es cierta, muestra la fecha en el reloj, además de la hora."
|
msgstr "Si es cierta, muestra la fecha en el reloj, además de la hora."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:24
|
#: ../data/org.gnome.shell.gschema.xml.in.h:26
|
||||||
msgid "Framerate used for recording screencasts."
|
msgid "Framerate used for recording screencasts."
|
||||||
msgstr "Tasa de fotogramas usada para grabar «screencast»."
|
msgstr "Tasa de fotogramas usada para grabar «screencast»."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:25
|
#: ../data/org.gnome.shell.gschema.xml.in.h:27
|
||||||
msgid ""
|
msgid ""
|
||||||
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
||||||
"screencast recorder in frames-per-second."
|
"screencast recorder in frames-per-second."
|
||||||
@ -176,11 +186,11 @@ msgstr ""
|
|||||||
"La tasa de fotogramas de la grabación resultante grabada por el grabador de "
|
"La tasa de fotogramas de la grabación resultante grabada por el grabador de "
|
||||||
"«screencast» de GNOME Shell, en fotogramas por segundo."
|
"«screencast» de GNOME Shell, en fotogramas por segundo."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:26
|
#: ../data/org.gnome.shell.gschema.xml.in.h:28
|
||||||
msgid "The gstreamer pipeline used to encode the screencast"
|
msgid "The gstreamer pipeline used to encode the screencast"
|
||||||
msgstr "La tubería de gstreamer usada para codificar el «screencast»"
|
msgstr "La tubería de gstreamer usada para codificar el «screencast»"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:28
|
#: ../data/org.gnome.shell.gschema.xml.in.h:30
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
||||||
@ -195,22 +205,22 @@ msgid ""
|
|||||||
"thread count on the system."
|
"thread count on the system."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Establece la tubería GStreamer usada para codificar grabaciones. Sigue la "
|
"Establece la tubería GStreamer usada para codificar grabaciones. Sigue la "
|
||||||
"sintaxis usada para gst-launch. La tubería debería tener un sumidero "
|
"sintaxis usada para gst-launch. La tubería debería tener un sumidero («sink») "
|
||||||
"(«sink») desconectado donde grabar el vídeo que se está grabando. "
|
"desconectado donde grabar el vídeo que se está grabando. Generalmente tendrá "
|
||||||
"Generalmente tendrá un punto de origen desconectado; la salida de ese punto "
|
"un punto de origen desconectado; la salida de ese punto se escribirá en el "
|
||||||
"se escribirá en el archivo de salida. Sin embargo, la tubería también puede "
|
"archivo de salida. Sin embargo, la tubería también puede tomar parte en su "
|
||||||
"tomar parte en su propia salida; esto se puede usar para enviar la salida a "
|
"propia salida; esto se puede usar para enviar la salida a un servidor "
|
||||||
"un servidor «icecast» a través de shout2send o similar. Cuando no está "
|
"«icecast» a través de shout2send o similar. Cuando no está establecido o lo "
|
||||||
"establecido o lo está a un valor vacío, se usará la tubería predeterminada. "
|
"está a un valor vacío, se usará la tubería predeterminada. Actualmente es "
|
||||||
"Actualmente es «'vp8enc quality=8 speed=6 threads=%T ! queue ! webmmux» y "
|
"«'vp8enc quality=8 speed=6 threads=%T ! queue ! webmmux» y graba en WEBM "
|
||||||
"graba en WEBM usando el códec VP8. Se usa %T como marcador de posición para "
|
"usando el códec VP8. Se usa %T como marcador de posición para el número de "
|
||||||
"el número de hilos óptimos en el sistema."
|
"hilos óptimos en el sistema."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:29
|
#: ../data/org.gnome.shell.gschema.xml.in.h:31
|
||||||
msgid "File extension used for storing the screencast"
|
msgid "File extension used for storing the screencast"
|
||||||
msgstr "Extensión de archivo que usar para almacenar los «screencast»"
|
msgstr "Extensión de archivo que usar para almacenar los «screencast»"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:30
|
#: ../data/org.gnome.shell.gschema.xml.in.h:32
|
||||||
msgid ""
|
msgid ""
|
||||||
"The filename for recorded screencasts will be a unique filename based on the "
|
"The filename for recorded screencasts will be a unique filename based on the "
|
||||||
"current date, and use this extension. It should be changed when recording to "
|
"current date, and use this extension. It should be changed when recording to "
|
||||||
@ -234,40 +244,40 @@ msgid "Select an extension to configure using the combobox above."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Seleccione una extensión que configurar usando la caja combinada de arriba."
|
"Seleccione una extensión que configurar usando la caja combinada de arriba."
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:624
|
#: ../js/gdm/loginDialog.js:627
|
||||||
msgid "Session..."
|
msgid "Session..."
|
||||||
msgstr "Sesión…"
|
msgstr "Sesión…"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:786
|
#: ../js/gdm/loginDialog.js:789
|
||||||
msgctxt "title"
|
msgctxt "title"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Iniciar sesión"
|
msgstr "Iniciar sesión"
|
||||||
|
|
||||||
#. Translators: this message is shown below the password entry field
|
#. Translators: this message is shown below the password entry field
|
||||||
#. to indicate the user can swipe their finger instead
|
#. to indicate the user can swipe their finger instead
|
||||||
#: ../js/gdm/loginDialog.js:831
|
#: ../js/gdm/loginDialog.js:834
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(o pase el dedo)"
|
msgstr "(o pase el dedo)"
|
||||||
|
|
||||||
#. translators: this message is shown below the user list on the
|
#. translators: this message is shown below the user list on the
|
||||||
#. login screen. It can be activated to reveal an entry for
|
#. login screen. It can be activated to reveal an entry for
|
||||||
#. manually entering the username.
|
#. manually entering the username.
|
||||||
#: ../js/gdm/loginDialog.js:852
|
#: ../js/gdm/loginDialog.js:855
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "¿No está en la lista?"
|
msgstr "¿No está en la lista?"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1020 ../js/ui/endSessionDialog.js:401
|
#: ../js/gdm/loginDialog.js:1023 ../js/ui/endSessionDialog.js:401
|
||||||
#: ../js/ui/extensionSystem.js:399 ../js/ui/networkAgent.js:153
|
#: ../js/ui/extensionSystem.js:400 ../js/ui/networkAgent.js:153
|
||||||
#: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462
|
#: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Cancelar"
|
msgstr "Cancelar"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1025
|
#: ../js/gdm/loginDialog.js:1028
|
||||||
msgctxt "button"
|
msgctxt "button"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Iniciar sesión"
|
msgstr "Iniciar sesión"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1377
|
#: ../js/gdm/loginDialog.js:1380
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Ventana de inicio de sesión"
|
msgstr "Ventana de inicio de sesión"
|
||||||
|
|
||||||
@ -668,11 +678,11 @@ msgstr[1] "El sistema se reiniciará automáticamente en %d segundos."
|
|||||||
msgid "Restarting the system."
|
msgid "Restarting the system."
|
||||||
msgstr "Reiniciando el sistema."
|
msgstr "Reiniciando el sistema."
|
||||||
|
|
||||||
#: ../js/ui/extensionSystem.js:403
|
#: ../js/ui/extensionSystem.js:404
|
||||||
msgid "Install"
|
msgid "Install"
|
||||||
msgstr "Instalar"
|
msgstr "Instalar"
|
||||||
|
|
||||||
#: ../js/ui/extensionSystem.js:407
|
#: ../js/ui/extensionSystem.js:408
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Download and install '%s' from extensions.gnome.org?"
|
msgid "Download and install '%s' from extensions.gnome.org?"
|
||||||
msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?"
|
msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?"
|
||||||
@ -681,7 +691,8 @@ msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?"
|
|||||||
msgid "tray"
|
msgid "tray"
|
||||||
msgstr "bandeja"
|
msgstr "bandeja"
|
||||||
|
|
||||||
#: ../js/ui/keyboard.js:544 ../js/ui/status/power.js:203
|
#: ../js/ui/keyboard.js:544 ../js/ui/status/keyboard.js:44
|
||||||
|
#: ../js/ui/status/power.js:203
|
||||||
msgid "Keyboard"
|
msgid "Keyboard"
|
||||||
msgstr "Teclado"
|
msgstr "Teclado"
|
||||||
|
|
||||||
@ -717,7 +728,7 @@ msgstr "Activado"
|
|||||||
|
|
||||||
#. translators:
|
#. translators:
|
||||||
#. * The device has been disabled
|
#. * The device has been disabled
|
||||||
#: ../js/ui/lookingGlass.js:808 ../src/gvc/gvc-mixer-control.c:1093
|
#: ../js/ui/lookingGlass.js:808 ../src/gvc/gvc-mixer-control.c:1082
|
||||||
msgid "Disabled"
|
msgid "Disabled"
|
||||||
msgstr "Desactivado"
|
msgstr "Desactivado"
|
||||||
|
|
||||||
@ -742,7 +753,7 @@ msgid "Web Page"
|
|||||||
msgstr "Página web"
|
msgstr "Página web"
|
||||||
|
|
||||||
#. Translators: this is a filename used for screencast recording
|
#. Translators: this is a filename used for screencast recording
|
||||||
#: ../js/ui/main.js:118
|
#: ../js/ui/main.js:121
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Screencast from %d %t"
|
msgid "Screencast from %d %t"
|
||||||
msgstr "Screencast desde %d %t"
|
msgstr "Screencast desde %d %t"
|
||||||
@ -805,8 +816,8 @@ msgstr "La red inalámbrica requiere autenticación"
|
|||||||
#: ../js/ui/networkAgent.js:330
|
#: ../js/ui/networkAgent.js:330
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Passwords or encryption keys are required to access the wireless network "
|
"Passwords or encryption keys are required to access the wireless network '%"
|
||||||
"'%s'."
|
"s'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Se necesitan contraseñas o claves de cifrado para acceder a la red "
|
"Se necesitan contraseñas o claves de cifrado para acceder a la red "
|
||||||
"inalámbrica «%s»."
|
"inalámbrica «%s»."
|
||||||
@ -934,7 +945,7 @@ msgstr "Introduzca un comando:"
|
|||||||
msgid "Searching..."
|
msgid "Searching..."
|
||||||
msgstr "Buscando…"
|
msgstr "Buscando…"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:414
|
#: ../js/ui/searchDisplay.js:415
|
||||||
msgid "No matching results."
|
msgid "No matching results."
|
||||||
msgstr "No se encontró ningún resultado coincidente."
|
msgstr "No se encontró ningún resultado coincidente."
|
||||||
|
|
||||||
@ -1092,7 +1103,7 @@ msgstr "Conceder acceso siempre"
|
|||||||
msgid "Grant this time only"
|
msgid "Grant this time only"
|
||||||
msgstr "Conceder sólo esta vez"
|
msgstr "Conceder sólo esta vez"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1091
|
#: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1093
|
||||||
msgid "Reject"
|
msgid "Reject"
|
||||||
msgstr "Rechazar"
|
msgstr "Rechazar"
|
||||||
|
|
||||||
@ -1409,35 +1420,35 @@ msgstr "%s está ocupado/a."
|
|||||||
#. Translators: this is a time format string followed by a date.
|
#. Translators: this is a time format string followed by a date.
|
||||||
#. If applicable, replace %X with a strftime format valid for your
|
#. If applicable, replace %X with a strftime format valid for your
|
||||||
#. locale, without seconds.
|
#. locale, without seconds.
|
||||||
#: ../js/ui/telepathyClient.js:887
|
#: ../js/ui/telepathyClient.js:889
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sent at <b>%X</b> on <b>%A</b>"
|
msgid "Sent at <b>%X</b> on <b>%A</b>"
|
||||||
msgstr "Enviado el <b>%A</b> a las <b>%H:%M</b>"
|
msgstr "Enviado el <b>%A</b> a las <b>%H:%M</b>"
|
||||||
|
|
||||||
#. Translators: this is a time format in the style of "Wednesday, May 25",
|
#. Translators: this is a time format in the style of "Wednesday, May 25",
|
||||||
#. shown when you get a chat message in the same year.
|
#. shown when you get a chat message in the same year.
|
||||||
#: ../js/ui/telepathyClient.js:893
|
#: ../js/ui/telepathyClient.js:895
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
|
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
|
||||||
msgstr "Enviado el <b>%A</b>, <b>%d de %B</b>"
|
msgstr "Enviado el <b>%A</b>, <b>%d de %B</b>"
|
||||||
|
|
||||||
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
|
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
|
||||||
#. shown when you get a chat message in a different year.
|
#. shown when you get a chat message in a different year.
|
||||||
#: ../js/ui/telepathyClient.js:898
|
#: ../js/ui/telepathyClient.js:900
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
|
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
|
||||||
msgstr "Enviado el <b>%A</b>, <b>%d de %B</b> de %Y"
|
msgstr "Enviado el <b>%A</b>, <b>%d de %B</b> de %Y"
|
||||||
|
|
||||||
#. Translators: this is the other person changing their old IM name to their new
|
#. Translators: this is the other person changing their old IM name to their new
|
||||||
#. IM name.
|
#. IM name.
|
||||||
#: ../js/ui/telepathyClient.js:940
|
#: ../js/ui/telepathyClient.js:942
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is now known as %s"
|
msgid "%s is now known as %s"
|
||||||
msgstr "Ahora %s se llama %s"
|
msgstr "Ahora %s se llama %s"
|
||||||
|
|
||||||
#. translators: argument is a room name like
|
#. translators: argument is a room name like
|
||||||
#. * room@jabber.org for example.
|
#. * room@jabber.org for example.
|
||||||
#: ../js/ui/telepathyClient.js:1042
|
#: ../js/ui/telepathyClient.js:1044
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invitation to %s"
|
msgid "Invitation to %s"
|
||||||
msgstr "Invitación a %s"
|
msgstr "Invitación a %s"
|
||||||
@ -1445,35 +1456,35 @@ msgstr "Invitación a %s"
|
|||||||
#. translators: first argument is the name of a contact and the second
|
#. translators: first argument is the name of a contact and the second
|
||||||
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
||||||
#. * for example.
|
#. * for example.
|
||||||
#: ../js/ui/telepathyClient.js:1050
|
#: ../js/ui/telepathyClient.js:1052
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is inviting you to join %s"
|
msgid "%s is inviting you to join %s"
|
||||||
msgstr "%s le está invitando a unirse a %s"
|
msgstr "%s le está invitando a unirse a %s"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1052 ../js/ui/telepathyClient.js:1131
|
#: ../js/ui/telepathyClient.js:1054 ../js/ui/telepathyClient.js:1133
|
||||||
#: ../js/ui/telepathyClient.js:1229
|
#: ../js/ui/telepathyClient.js:1231
|
||||||
msgid "Decline"
|
msgid "Decline"
|
||||||
msgstr "Rechazar"
|
msgstr "Rechazar"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1053 ../js/ui/telepathyClient.js:1132
|
#: ../js/ui/telepathyClient.js:1055 ../js/ui/telepathyClient.js:1134
|
||||||
#: ../js/ui/telepathyClient.js:1230
|
#: ../js/ui/telepathyClient.js:1232
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "Aceptar"
|
msgstr "Aceptar"
|
||||||
|
|
||||||
#. translators: argument is a contact name like Alice for example.
|
#. translators: argument is a contact name like Alice for example.
|
||||||
#: ../js/ui/telepathyClient.js:1083
|
#: ../js/ui/telepathyClient.js:1085
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Video call from %s"
|
msgid "Video call from %s"
|
||||||
msgstr "Videollamada de %s"
|
msgstr "Videollamada de %s"
|
||||||
|
|
||||||
#. translators: argument is a contact name like Alice for example.
|
#. translators: argument is a contact name like Alice for example.
|
||||||
#: ../js/ui/telepathyClient.js:1086
|
#: ../js/ui/telepathyClient.js:1088
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Call from %s"
|
msgid "Call from %s"
|
||||||
msgstr "Llamada de %s"
|
msgstr "Llamada de %s"
|
||||||
|
|
||||||
#. translators: this is a button label (verb), not a noun
|
#. translators: this is a button label (verb), not a noun
|
||||||
#: ../js/ui/telepathyClient.js:1093
|
#: ../js/ui/telepathyClient.js:1095
|
||||||
msgid "Answer"
|
msgid "Answer"
|
||||||
msgstr "Responder"
|
msgstr "Responder"
|
||||||
|
|
||||||
@ -1482,112 +1493,112 @@ msgstr "Responder"
|
|||||||
#. * file name. The string will be something
|
#. * file name. The string will be something
|
||||||
#. * like: "Alice is sending you test.ogg"
|
#. * like: "Alice is sending you test.ogg"
|
||||||
#.
|
#.
|
||||||
#: ../js/ui/telepathyClient.js:1125
|
#: ../js/ui/telepathyClient.js:1127
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is sending you %s"
|
msgid "%s is sending you %s"
|
||||||
msgstr "%s le está enviando %s"
|
msgstr "%s le está enviando %s"
|
||||||
|
|
||||||
#. To translators: The parameter is the contact's alias
|
#. To translators: The parameter is the contact's alias
|
||||||
#: ../js/ui/telepathyClient.js:1194
|
#: ../js/ui/telepathyClient.js:1196
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s would like permission to see when you are online"
|
msgid "%s would like permission to see when you are online"
|
||||||
msgstr "%s solicita permiso para ver cuándo está en línea"
|
msgstr "%s solicita permiso para ver cuándo está en línea"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1287
|
#: ../js/ui/telepathyClient.js:1289
|
||||||
msgid "Network error"
|
msgid "Network error"
|
||||||
msgstr "Error de la red"
|
msgstr "Error de la red"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1289
|
#: ../js/ui/telepathyClient.js:1291
|
||||||
msgid "Authentication failed"
|
msgid "Authentication failed"
|
||||||
msgstr "Falló la autenticación"
|
msgstr "Falló la autenticación"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1291
|
#: ../js/ui/telepathyClient.js:1293
|
||||||
msgid "Encryption error"
|
msgid "Encryption error"
|
||||||
msgstr "Error de cifrado"
|
msgstr "Error de cifrado"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1293
|
#: ../js/ui/telepathyClient.js:1295
|
||||||
msgid "Certificate not provided"
|
msgid "Certificate not provided"
|
||||||
msgstr "Certificado no proporcionado"
|
msgstr "Certificado no proporcionado"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1295
|
#: ../js/ui/telepathyClient.js:1297
|
||||||
msgid "Certificate untrusted"
|
msgid "Certificate untrusted"
|
||||||
msgstr "No se confía en el certificado"
|
msgstr "No se confía en el certificado"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1297
|
#: ../js/ui/telepathyClient.js:1299
|
||||||
msgid "Certificate expired"
|
msgid "Certificate expired"
|
||||||
msgstr "Certificado caducado"
|
msgstr "Certificado caducado"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1299
|
#: ../js/ui/telepathyClient.js:1301
|
||||||
msgid "Certificate not activated"
|
msgid "Certificate not activated"
|
||||||
msgstr "Certificado no activado"
|
msgstr "Certificado no activado"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1301
|
#: ../js/ui/telepathyClient.js:1303
|
||||||
msgid "Certificate hostname mismatch"
|
msgid "Certificate hostname mismatch"
|
||||||
msgstr "El nombre del servidor dle certificado no coincide"
|
msgstr "El nombre del servidor dle certificado no coincide"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1303
|
#: ../js/ui/telepathyClient.js:1305
|
||||||
msgid "Certificate fingerprint mismatch"
|
msgid "Certificate fingerprint mismatch"
|
||||||
msgstr "La huella del certificado no coincide"
|
msgstr "La huella del certificado no coincide"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1305
|
#: ../js/ui/telepathyClient.js:1307
|
||||||
msgid "Certificate self-signed"
|
msgid "Certificate self-signed"
|
||||||
msgstr "Certificado autofirmado"
|
msgstr "Certificado autofirmado"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1307
|
#: ../js/ui/telepathyClient.js:1309
|
||||||
msgid "Status is set to offline"
|
msgid "Status is set to offline"
|
||||||
msgstr "El estado está establecido a «desconectado»"
|
msgstr "El estado está establecido a «desconectado»"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1309
|
#: ../js/ui/telepathyClient.js:1311
|
||||||
msgid "Encryption is not available"
|
msgid "Encryption is not available"
|
||||||
msgstr "El cifrado no está disponible"
|
msgstr "El cifrado no está disponible"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1311
|
#: ../js/ui/telepathyClient.js:1313
|
||||||
msgid "Certificate is invalid"
|
msgid "Certificate is invalid"
|
||||||
msgstr "El certificado no es válido"
|
msgstr "El certificado no es válido"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1313
|
#: ../js/ui/telepathyClient.js:1315
|
||||||
msgid "Connection has been refused"
|
msgid "Connection has been refused"
|
||||||
msgstr "Se ha rechazado la conexión"
|
msgstr "Se ha rechazado la conexión"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1315
|
#: ../js/ui/telepathyClient.js:1317
|
||||||
msgid "Connection can't be established"
|
msgid "Connection can't be established"
|
||||||
msgstr "No se puede establecer la conexión"
|
msgstr "No se puede establecer la conexión"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1317
|
#: ../js/ui/telepathyClient.js:1319
|
||||||
msgid "Connection has been lost"
|
msgid "Connection has been lost"
|
||||||
msgstr "Se ha perdido la conexión"
|
msgstr "Se ha perdido la conexión"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1319
|
#: ../js/ui/telepathyClient.js:1321
|
||||||
msgid "This account is already connected to the server"
|
msgid "This account is already connected to the server"
|
||||||
msgstr "Esta cuenta ya está conectada al servidor"
|
msgstr "Esta cuenta ya está conectada al servidor"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1321
|
#: ../js/ui/telepathyClient.js:1323
|
||||||
msgid ""
|
msgid ""
|
||||||
"Connection has been replaced by a new connection using the same resource"
|
"Connection has been replaced by a new connection using the same resource"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Se ha sustituido la conexión por una nueva conexión usando el mismo recurso"
|
"Se ha sustituido la conexión por una nueva conexión usando el mismo recurso"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1323
|
#: ../js/ui/telepathyClient.js:1325
|
||||||
msgid "The account already exists on the server"
|
msgid "The account already exists on the server"
|
||||||
msgstr "La cuenta ya existe en el servidor"
|
msgstr "La cuenta ya existe en el servidor"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1325
|
#: ../js/ui/telepathyClient.js:1327
|
||||||
msgid "Server is currently too busy to handle the connection"
|
msgid "Server is currently too busy to handle the connection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Actualmente el servidor está muy ocupado intentando gestionar la conexión"
|
"Actualmente el servidor está muy ocupado intentando gestionar la conexión"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1327
|
#: ../js/ui/telepathyClient.js:1329
|
||||||
msgid "Certificate has been revoked"
|
msgid "Certificate has been revoked"
|
||||||
msgstr "Se ha revocado el certificado"
|
msgstr "Se ha revocado el certificado"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1329
|
#: ../js/ui/telepathyClient.js:1331
|
||||||
msgid ""
|
msgid ""
|
||||||
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"El certificado usa un algoritmo de cifrado inseguro o es criptográficamente "
|
"El certificado usa un algoritmo de cifrado inseguro o es criptográficamente "
|
||||||
"débil"
|
"débil"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1331
|
#: ../js/ui/telepathyClient.js:1333
|
||||||
msgid ""
|
msgid ""
|
||||||
"The length of the server certificate, or the depth of the server certificate "
|
"The length of the server certificate, or the depth of the server certificate "
|
||||||
"chain, exceed the limits imposed by the cryptography library"
|
"chain, exceed the limits imposed by the cryptography library"
|
||||||
@ -1596,26 +1607,26 @@ msgstr ""
|
|||||||
"certificado del servidor exceden los límites impuestos por la biblioteca de "
|
"certificado del servidor exceden los límites impuestos por la biblioteca de "
|
||||||
"criptografía"
|
"criptografía"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1333
|
#: ../js/ui/telepathyClient.js:1335
|
||||||
msgid "Internal error"
|
msgid "Internal error"
|
||||||
msgstr "Error interno"
|
msgstr "Error interno"
|
||||||
|
|
||||||
#. translators: argument is the account name, like
|
#. translators: argument is the account name, like
|
||||||
#. * name@jabber.org for example.
|
#. * name@jabber.org for example.
|
||||||
#: ../js/ui/telepathyClient.js:1343
|
#: ../js/ui/telepathyClient.js:1345
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Connection to %s failed"
|
msgid "Connection to %s failed"
|
||||||
msgstr "Falló la conexión a %s"
|
msgstr "Falló la conexión a %s"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1352
|
#: ../js/ui/telepathyClient.js:1354
|
||||||
msgid "Reconnect"
|
msgid "Reconnect"
|
||||||
msgstr "Reconectar"
|
msgstr "Reconectar"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1353
|
#: ../js/ui/telepathyClient.js:1355
|
||||||
msgid "Edit account"
|
msgid "Edit account"
|
||||||
msgstr "Editar cuenta"
|
msgstr "Editar cuenta"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1399
|
#: ../js/ui/telepathyClient.js:1401
|
||||||
msgid "Unknown reason"
|
msgid "Unknown reason"
|
||||||
msgstr "Razón desconocida"
|
msgstr "Razón desconocida"
|
||||||
|
|
||||||
@ -1709,7 +1720,7 @@ msgstr "«%s» está preparado"
|
|||||||
|
|
||||||
#. translators:
|
#. translators:
|
||||||
#. * The number of sound outputs on a particular device
|
#. * The number of sound outputs on a particular device
|
||||||
#: ../src/gvc/gvc-mixer-control.c:1100
|
#: ../src/gvc/gvc-mixer-control.c:1089
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%u Output"
|
msgid "%u Output"
|
||||||
msgid_plural "%u Outputs"
|
msgid_plural "%u Outputs"
|
||||||
@ -1718,14 +1729,14 @@ msgstr[1] "%u salidas"
|
|||||||
|
|
||||||
#. translators:
|
#. translators:
|
||||||
#. * The number of sound inputs on a particular device
|
#. * The number of sound inputs on a particular device
|
||||||
#: ../src/gvc/gvc-mixer-control.c:1110
|
#: ../src/gvc/gvc-mixer-control.c:1099
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%u Input"
|
msgid "%u Input"
|
||||||
msgid_plural "%u Inputs"
|
msgid_plural "%u Inputs"
|
||||||
msgstr[0] "%u entrada"
|
msgstr[0] "%u entrada"
|
||||||
msgstr[1] "%u entradas"
|
msgstr[1] "%u entradas"
|
||||||
|
|
||||||
#: ../src/gvc/gvc-mixer-control.c:1408
|
#: ../src/gvc/gvc-mixer-control.c:1397
|
||||||
msgid "System Sounds"
|
msgid "System Sounds"
|
||||||
msgstr "Sonidos del sistema"
|
msgstr "Sonidos del sistema"
|
||||||
|
|
||||||
@ -2059,8 +2070,8 @@ msgstr "%1$s: %2$s"
|
|||||||
#~ "If true and format is either \"12-hour\" or \"24-hour\", display seconds "
|
#~ "If true and format is either \"12-hour\" or \"24-hour\", display seconds "
|
||||||
#~ "in time."
|
#~ "in time."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Si es cierta y el formato es «12-horas» o «24-horas», muestra los "
|
#~ "Si es cierta y el formato es «12-horas» o «24-horas», muestra los segundos "
|
||||||
#~ "segundos en la hora."
|
#~ "en la hora."
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "This key specifies the format used by the panel clock when the format key "
|
#~ "This key specifies the format used by the panel clock when the format key "
|
||||||
@ -2077,19 +2088,18 @@ msgstr "%1$s: %2$s"
|
|||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "This key specifies the hour format used by the panel clock. Possible "
|
#~ "This key specifies the hour format used by the panel clock. Possible "
|
||||||
#~ "values are \"12-hour\", \"24-hour\", \"unix\" and \"custom\". If set to "
|
#~ "values are \"12-hour\", \"24-hour\", \"unix\" and \"custom\". If set to "
|
||||||
#~ "\"unix\", the clock will display time in seconds since Epoch, i.e. "
|
#~ "\"unix\", the clock will display time in seconds since Epoch, i.e. 1970-"
|
||||||
#~ "1970-01-01. If set to \"custom\", the clock will display time according "
|
#~ "01-01. If set to \"custom\", the clock will display time according to the "
|
||||||
#~ "to the format specified in the custom_format key. Note that if set to "
|
#~ "format specified in the custom_format key. Note that if set to either "
|
||||||
#~ "either \"unix\" or \"custom\", the show_date and show_seconds keys are "
|
#~ "\"unix\" or \"custom\", the show_date and show_seconds keys are ignored."
|
||||||
#~ "ignored."
|
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Esta clave especifica el formato de la hora especificado por el reloj del "
|
#~ "Esta clave especifica el formato de la hora especificado por el reloj del "
|
||||||
#~ "panel. Los valores posibles son «12-hour» (12 horas), «24-hour» (24 "
|
#~ "panel. Los valores posibles son «12-hour» (12 horas), «24-hour» (24 horas), "
|
||||||
#~ "horas), «unix» y «custom» (personalizado).Si se establece a «unix» el "
|
#~ "«unix» y «custom» (personalizado).Si se establece a «unix» el reloj mostrará "
|
||||||
#~ "reloj mostrará la hora en segundos desde la época (1 de enero de 1970). "
|
#~ "la hora en segundos desde la época (1 de enero de 1970). Si se establece "
|
||||||
#~ "Si se establece a «custom» el reloj mostrará la hora según el formato "
|
#~ "a «custom» el reloj mostrará la hora según el formato especificado en la "
|
||||||
#~ "especificado en la clave «custom_format». Note que si se establece a "
|
#~ "clave «custom_format». Note que si se establece a «unix» o «custom» se "
|
||||||
#~ "«unix» o «custom» se ignoran las claves «show_date» y «show_seconds»."
|
#~ "ignoran las claves «show_date» y «show_seconds»."
|
||||||
|
|
||||||
#~ msgid "Clock Format"
|
#~ msgid "Clock Format"
|
||||||
#~ msgstr "Formato del reloj"
|
#~ msgstr "Formato del reloj"
|
||||||
|
301
po/he.po
301
po/he.po
@ -8,8 +8,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell master\n"
|
"Project-Id-Version: gnome-shell master\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2012-04-09 22:48+0300\n"
|
"POT-Creation-Date: 2012-04-26 15:30+0300\n"
|
||||||
"PO-Revision-Date: 2012-04-09 22:48+0200\n"
|
"PO-Revision-Date: 2012-04-26 15:30+0200\n"
|
||||||
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
|
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
|
||||||
"Language-Team: Hebrew <sh.yaron@gmail.com>\n"
|
"Language-Team: Hebrew <sh.yaron@gmail.com>\n"
|
||||||
"Language: he\n"
|
"Language: he\n"
|
||||||
@ -30,131 +30,139 @@ msgid "Window management and application launching"
|
|||||||
msgstr "ניהול חלונות והרצת יישומים"
|
msgstr "ניהול חלונות והרצת יישומים"
|
||||||
|
|
||||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||||
msgid "Configure GNOME Shell Extensions"
|
|
||||||
msgstr "הגדרת הרחבות GNOME Shell"
|
|
||||||
|
|
||||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2
|
|
||||||
#: ../js/extensionPrefs/main.js:153
|
#: ../js/extensionPrefs/main.js:153
|
||||||
msgid "GNOME Shell Extension Preferences"
|
msgid "GNOME Shell Extension Preferences"
|
||||||
msgstr "העדפות ההרחבות של GNOME Shell"
|
msgstr "העדפות ההרחבות של GNOME Shell"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:1
|
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2
|
||||||
msgid "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog."
|
msgid "Configure GNOME Shell Extensions"
|
||||||
msgstr "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog."
|
msgstr "הגדרת הרחבות GNOME Shell"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:2
|
#: ../data/org.gnome.shell.gschema.xml.in.h:1
|
||||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||||
msgstr "Enable internal tools useful for developers and testers from Alt-F2"
|
msgstr "Enable internal tools useful for developers and testers from Alt-F2"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:2
|
||||||
|
msgid "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog."
|
||||||
|
msgstr "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:3
|
#: ../data/org.gnome.shell.gschema.xml.in.h:3
|
||||||
msgid "File extension used for storing the screencast"
|
msgid "Uuids of extensions to enable"
|
||||||
msgstr "File extension used for storing the screencast"
|
msgstr "Uuids of extensions to enable"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:4
|
#: ../data/org.gnome.shell.gschema.xml.in.h:4
|
||||||
msgid "Framerate used for recording screencasts."
|
|
||||||
msgstr "Framerate used for recording screencasts."
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:5
|
|
||||||
msgid "GNOME Shell extensions have a uuid property; this key lists extensions which should be loaded. Any extension that wants to be loaded needs to be in this list. You can also manipulate this list with the EnableExtension and DisableExtension DBus methods on org.gnome.Shell."
|
msgid "GNOME Shell extensions have a uuid property; this key lists extensions which should be loaded. Any extension that wants to be loaded needs to be in this list. You can also manipulate this list with the EnableExtension and DisableExtension DBus methods on org.gnome.Shell."
|
||||||
msgstr "GNOME Shell extensions have a uuid property; this key lists extensions which should be loaded. Any extension that wants to be loaded needs to be in this list. You can also manipulate this list with the EnableExtension and DisableExtension DBus methods on org.gnome.Shell."
|
msgstr "GNOME Shell extensions have a uuid property; this key lists extensions which should be loaded. Any extension that wants to be loaded needs to be in this list. You can also manipulate this list with the EnableExtension and DisableExtension DBus methods on org.gnome.Shell."
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:5
|
||||||
|
msgid "Whether to collect stats about applications usage"
|
||||||
|
msgstr "Whether to collect stats about applications usage"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:6
|
#: ../data/org.gnome.shell.gschema.xml.in.h:6
|
||||||
msgid "History for command (Alt-F2) dialog"
|
msgid "The shell normally monitors active applications in order to present the most used ones (e.g. in launchers). While this data will be kept private, you may want to disable this for privacy reasons. Please note that doing so won't remove already saved data."
|
||||||
msgstr "History for command (Alt-F2) dialog"
|
msgstr "The shell normally monitors active applications in order to present the most used ones (e.g. in launchers). While this data will be kept private, you may want to disable this for privacy reasons. Please note that doing so won't remove already saved data."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:7
|
#: ../data/org.gnome.shell.gschema.xml.in.h:7
|
||||||
msgid "History for the looking glass dialog"
|
|
||||||
msgstr "History for the looking glass dialog"
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:8
|
|
||||||
msgid "If true, display date in the clock, in addition to time."
|
|
||||||
msgstr "If true, display date in the clock, in addition to time."
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:9
|
|
||||||
msgid "If true, display seconds in time."
|
|
||||||
msgstr "If true, display seconds in time."
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:10
|
|
||||||
msgid "If true, display the ISO week date in the calendar."
|
|
||||||
msgstr "If true, display the ISO week date in the calendar."
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:11
|
|
||||||
msgid "Internally used to store the last IM presence explicitly set by the user. The value here is from the TpConnectionPresenceType enumeration."
|
|
||||||
msgstr "Internally used to store the last IM presence explicitly set by the user. The value here is from the TpConnectionPresenceType enumeration."
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:12
|
|
||||||
msgid "Internally used to store the last session presence status for the user. The value here is from the GsmPresenceStatus enumeration."
|
|
||||||
msgstr "Internally used to store the last session presence status for the user. The value here is from the GsmPresenceStatus enumeration."
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:13
|
|
||||||
msgid "Keybinding to open the application menu"
|
|
||||||
msgstr "Keybinding to open the application menu"
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:14
|
|
||||||
msgid "Keybinding to open the application menu."
|
|
||||||
msgstr "Keybinding to open the application menu."
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:15
|
|
||||||
msgid "List of desktop file IDs for favorite applications"
|
msgid "List of desktop file IDs for favorite applications"
|
||||||
msgstr "List of desktop file IDs for favorite applications"
|
msgstr "List of desktop file IDs for favorite applications"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:8
|
||||||
|
msgid "The applications corresponding to these identifiers will be displayed in the favorites area."
|
||||||
|
msgstr "The applications corresponding to these identifiers will be displayed in the favorites area."
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:9
|
||||||
|
msgid "disabled OpenSearch providers"
|
||||||
|
msgstr "disabled OpenSearch providers"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:10
|
||||||
|
msgid "History for command (Alt-F2) dialog"
|
||||||
|
msgstr "History for command (Alt-F2) dialog"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:11
|
||||||
|
msgid "History for the looking glass dialog"
|
||||||
|
msgstr "History for the looking glass dialog"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:12
|
||||||
|
msgid "Internally used to store the last IM presence explicitly set by the user. The value here is from the TpConnectionPresenceType enumeration."
|
||||||
|
msgstr "Internally used to store the last IM presence explicitly set by the user. The value here is from the TpConnectionPresenceType enumeration."
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:13
|
||||||
|
msgid "Internally used to store the last session presence status for the user. The value here is from the GsmPresenceStatus enumeration."
|
||||||
|
msgstr "Internally used to store the last session presence status for the user. The value here is from the GsmPresenceStatus enumeration."
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:14
|
||||||
|
msgid "Show the week date in the calendar"
|
||||||
|
msgstr "Show the week date in the calendar"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:15
|
||||||
|
msgid "If true, display the ISO week date in the calendar."
|
||||||
|
msgstr "If true, display the ISO week date in the calendar."
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:16
|
||||||
|
msgid "Keybinding to open the application menu"
|
||||||
|
msgstr "Keybinding to open the application menu"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:17
|
#: ../data/org.gnome.shell.gschema.xml.in.h:17
|
||||||
|
msgid "Keybinding to open the application menu."
|
||||||
|
msgstr "Keybinding to open the application menu."
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:18
|
||||||
|
msgid "Keybinding to toggle the screen recorder"
|
||||||
|
msgstr "Keybinding to toggle the screen recorder"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:19
|
||||||
|
msgid "Keybinding to start/stop the builtin screen recorder."
|
||||||
|
msgstr "Keybinding to start/stop the builtin screen recorder."
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:20
|
||||||
|
msgid "Which keyboard to use"
|
||||||
|
msgstr "באיזו מקלדת להשתמש"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:21
|
||||||
|
msgid "The type of keyboard to use."
|
||||||
|
msgstr "סוג המקלדת לשימוש."
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:22
|
||||||
|
msgid "Show time with seconds"
|
||||||
|
msgstr "Show time with seconds"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:23
|
||||||
|
msgid "If true, display seconds in time."
|
||||||
|
msgstr "If true, display seconds in time."
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:24
|
||||||
|
msgid "Show date in clock"
|
||||||
|
msgstr "Show date in clock"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:25
|
||||||
|
msgid "If true, display date in the clock, in addition to time."
|
||||||
|
msgstr "If true, display date in the clock, in addition to time."
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:26
|
||||||
|
msgid "Framerate used for recording screencasts."
|
||||||
|
msgstr "Framerate used for recording screencasts."
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:27
|
||||||
|
msgid "The framerate of the resulting screencast recordered by GNOME Shell's screencast recorder in frames-per-second."
|
||||||
|
msgstr "The framerate of the resulting screencast recordered by GNOME Shell's screencast recorder in frames-per-second."
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:28
|
||||||
|
msgid "The gstreamer pipeline used to encode the screencast"
|
||||||
|
msgstr "The gstreamer pipeline used to encode the screencast"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:30
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sets the GStreamer pipeline used to encode recordings. It follows the syntax used for gst-launch. The pipeline should have an unconnected sink pad where the recorded video is recorded. It will normally have a unconnected source pad; output from that pad will be written into the output file. However the pipeline can also take care of its own output - this might be used to send the output to an icecast server via shout2send or similar. When unset or set to an empty value, the default pipeline will be used. This is currently 'vp8enc quality=8 speed=6 threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. %T is used as a placeholder for a guess at the optimal thread count on the system."
|
msgid "Sets the GStreamer pipeline used to encode recordings. It follows the syntax used for gst-launch. The pipeline should have an unconnected sink pad where the recorded video is recorded. It will normally have a unconnected source pad; output from that pad will be written into the output file. However the pipeline can also take care of its own output - this might be used to send the output to an icecast server via shout2send or similar. When unset or set to an empty value, the default pipeline will be used. This is currently 'vp8enc quality=8 speed=6 threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. %T is used as a placeholder for a guess at the optimal thread count on the system."
|
||||||
msgstr "Sets the GStreamer pipeline used to encode recordings. It follows the syntax used for gst-launch. The pipeline should have an unconnected sink pad where the recorded video is recorded. It will normally have a unconnected source pad; output from that pad will be written into the output file. However the pipeline can also take care of its own output - this might be used to send the output to an icecast server via shout2send or similar. When unset or set to an empty value, the default pipeline will be used. This is currently 'vp8enc quality=8 speed=6 threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. %T is used as a placeholder for a guess at the optimal thread count on the system."
|
msgstr "Sets the GStreamer pipeline used to encode recordings. It follows the syntax used for gst-launch. The pipeline should have an unconnected sink pad where the recorded video is recorded. It will normally have a unconnected source pad; output from that pad will be written into the output file. However the pipeline can also take care of its own output - this might be used to send the output to an icecast server via shout2send or similar. When unset or set to an empty value, the default pipeline will be used. This is currently 'vp8enc quality=8 speed=6 threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. %T is used as a placeholder for a guess at the optimal thread count on the system."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:18
|
#: ../data/org.gnome.shell.gschema.xml.in.h:31
|
||||||
msgid "Show date in clock"
|
msgid "File extension used for storing the screencast"
|
||||||
msgstr "Show date in clock"
|
msgstr "File extension used for storing the screencast"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:19
|
#: ../data/org.gnome.shell.gschema.xml.in.h:32
|
||||||
msgid "Show the week date in the calendar"
|
|
||||||
msgstr "Show the week date in the calendar"
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:20
|
|
||||||
msgid "Show time with seconds"
|
|
||||||
msgstr "Show time with seconds"
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:21
|
|
||||||
msgid "The applications corresponding to these identifiers will be displayed in the favorites area."
|
|
||||||
msgstr "The applications corresponding to these identifiers will be displayed in the favorites area."
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:22
|
|
||||||
msgid "The filename for recorded screencasts will be a unique filename based on the current date, and use this extension. It should be changed when recording to a different container format."
|
msgid "The filename for recorded screencasts will be a unique filename based on the current date, and use this extension. It should be changed when recording to a different container format."
|
||||||
msgstr "The filename for recorded screencasts will be a unique filename based on the current date, and use this extension. It should be changed when recording to a different container format."
|
msgstr "The filename for recorded screencasts will be a unique filename based on the current date, and use this extension. It should be changed when recording to a different container format."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:23
|
|
||||||
msgid "The framerate of the resulting screencast recordered by GNOME Shell's screencast recorder in frames-per-second."
|
|
||||||
msgstr "The framerate of the resulting screencast recordered by GNOME Shell's screencast recorder in frames-per-second."
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:24
|
|
||||||
msgid "The gstreamer pipeline used to encode the screencast"
|
|
||||||
msgstr "The gstreamer pipeline used to encode the screencast"
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:25
|
|
||||||
msgid "The shell normally monitors active applications in order to present the most used ones (e.g. in launchers). While this data will be kept private, you may want to disable this for privacy reasons. Please note that doing so won't remove already saved data."
|
|
||||||
msgstr "The shell normally monitors active applications in order to present the most used ones (e.g. in launchers). While this data will be kept private, you may want to disable this for privacy reasons. Please note that doing so won't remove already saved data."
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:26
|
|
||||||
msgid "The type of keyboard to use."
|
|
||||||
msgstr "סוג המקלדת לשימוש."
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:27
|
|
||||||
msgid "Uuids of extensions to enable"
|
|
||||||
msgstr "Uuids of extensions to enable"
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:28
|
|
||||||
msgid "Whether to collect stats about applications usage"
|
|
||||||
msgstr "Whether to collect stats about applications usage"
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:29
|
|
||||||
msgid "Which keyboard to use"
|
|
||||||
msgstr "באיזו מקלדת להשתמש"
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:30
|
|
||||||
msgid "disabled OpenSearch providers"
|
|
||||||
msgstr "disabled OpenSearch providers"
|
|
||||||
|
|
||||||
#: ../js/extensionPrefs/main.js:125
|
#: ../js/extensionPrefs/main.js:125
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "There was an error loading the preferences dialog for %s:"
|
msgid "There was an error loading the preferences dialog for %s:"
|
||||||
@ -629,6 +637,7 @@ msgid "tray"
|
|||||||
msgstr "מגש מערכת"
|
msgstr "מגש מערכת"
|
||||||
|
|
||||||
#: ../js/ui/keyboard.js:544
|
#: ../js/ui/keyboard.js:544
|
||||||
|
#: ../js/ui/status/keyboard.js:44
|
||||||
#: ../js/ui/status/power.js:203
|
#: ../js/ui/status/power.js:203
|
||||||
msgid "Keyboard"
|
msgid "Keyboard"
|
||||||
msgstr "מקלדת"
|
msgstr "מקלדת"
|
||||||
@ -693,7 +702,7 @@ msgid "Web Page"
|
|||||||
msgstr "דף אינטרנט"
|
msgstr "דף אינטרנט"
|
||||||
|
|
||||||
#. Translators: this is a filename used for screencast recording
|
#. Translators: this is a filename used for screencast recording
|
||||||
#: ../js/ui/main.js:118
|
#: ../js/ui/main.js:121
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Screencast from %d %t"
|
msgid "Screencast from %d %t"
|
||||||
msgstr "צילום מסך מהקובץ %d %t"
|
msgstr "צילום מסך מהקובץ %d %t"
|
||||||
@ -872,7 +881,7 @@ msgstr "פעולה זו לא הצליחה, נא לנסות שוב. עמך הסל
|
|||||||
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
||||||
#. switches containing "◯" and "|"). Other values will
|
#. switches containing "◯" and "|"). Other values will
|
||||||
#. simply result in invisible toggle switches.
|
#. simply result in invisible toggle switches.
|
||||||
#: ../js/ui/popupMenu.js:724
|
#: ../js/ui/popupMenu.js:728
|
||||||
msgid "toggle-switch-us"
|
msgid "toggle-switch-us"
|
||||||
msgstr "toggle-switch-intl"
|
msgstr "toggle-switch-intl"
|
||||||
|
|
||||||
@ -1051,7 +1060,7 @@ msgid "Grant this time only"
|
|||||||
msgstr "הענקת גישה הפעם בלבד"
|
msgstr "הענקת גישה הפעם בלבד"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:382
|
#: ../js/ui/status/bluetooth.js:382
|
||||||
#: ../js/ui/telepathyClient.js:1091
|
#: ../js/ui/telepathyClient.js:1093
|
||||||
msgid "Reject"
|
msgid "Reject"
|
||||||
msgstr "סירוב"
|
msgstr "סירוב"
|
||||||
|
|
||||||
@ -1378,35 +1387,35 @@ msgstr "%s עסוק/ה."
|
|||||||
#. Translators: this is a time format string followed by a date.
|
#. Translators: this is a time format string followed by a date.
|
||||||
#. If applicable, replace %X with a strftime format valid for your
|
#. If applicable, replace %X with a strftime format valid for your
|
||||||
#. locale, without seconds.
|
#. locale, without seconds.
|
||||||
#: ../js/ui/telepathyClient.js:887
|
#: ../js/ui/telepathyClient.js:889
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sent at <b>%X</b> on <b>%A</b>"
|
msgid "Sent at <b>%X</b> on <b>%A</b>"
|
||||||
msgstr "נשלח ב־<b>%X</b> בשעה <b>%A</b>"
|
msgstr "נשלח ב־<b>%X</b> בשעה <b>%A</b>"
|
||||||
|
|
||||||
#. Translators: this is a time format in the style of "Wednesday, May 25",
|
#. Translators: this is a time format in the style of "Wednesday, May 25",
|
||||||
#. shown when you get a chat message in the same year.
|
#. shown when you get a chat message in the same year.
|
||||||
#: ../js/ui/telepathyClient.js:893
|
#: ../js/ui/telepathyClient.js:895
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
|
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
|
||||||
msgstr "נשלח ב<b>%A</b>, <b>ה־%d ב%B</b>"
|
msgstr "נשלח ב<b>%A</b>, <b>ה־%d ב%B</b>"
|
||||||
|
|
||||||
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
|
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
|
||||||
#. shown when you get a chat message in a different year.
|
#. shown when you get a chat message in a different year.
|
||||||
#: ../js/ui/telepathyClient.js:898
|
#: ../js/ui/telepathyClient.js:900
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
|
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
|
||||||
msgstr "נשלח ב<b>%A</b>, <b>ה־%d ב%B</b>, %Y"
|
msgstr "נשלח ב<b>%A</b>, <b>ה־%d ב%B</b>, %Y"
|
||||||
|
|
||||||
#. Translators: this is the other person changing their old IM name to their new
|
#. Translators: this is the other person changing their old IM name to their new
|
||||||
#. IM name.
|
#. IM name.
|
||||||
#: ../js/ui/telepathyClient.js:940
|
#: ../js/ui/telepathyClient.js:942
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is now known as %s"
|
msgid "%s is now known as %s"
|
||||||
msgstr "השם של %s הוחלף ל־%s"
|
msgstr "השם של %s הוחלף ל־%s"
|
||||||
|
|
||||||
#. translators: argument is a room name like
|
#. translators: argument is a room name like
|
||||||
#. * room@jabber.org for example.
|
#. * room@jabber.org for example.
|
||||||
#: ../js/ui/telepathyClient.js:1042
|
#: ../js/ui/telepathyClient.js:1044
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invitation to %s"
|
msgid "Invitation to %s"
|
||||||
msgstr "הזמנה ל־%s"
|
msgstr "הזמנה ל־%s"
|
||||||
@ -1414,37 +1423,37 @@ msgstr "הזמנה ל־%s"
|
|||||||
#. translators: first argument is the name of a contact and the second
|
#. translators: first argument is the name of a contact and the second
|
||||||
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
||||||
#. * for example.
|
#. * for example.
|
||||||
#: ../js/ui/telepathyClient.js:1050
|
#: ../js/ui/telepathyClient.js:1052
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is inviting you to join %s"
|
msgid "%s is inviting you to join %s"
|
||||||
msgstr "הוזמנת על ידי %s להצטרף אל %s"
|
msgstr "הוזמנת על ידי %s להצטרף אל %s"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1052
|
#: ../js/ui/telepathyClient.js:1054
|
||||||
#: ../js/ui/telepathyClient.js:1131
|
#: ../js/ui/telepathyClient.js:1133
|
||||||
#: ../js/ui/telepathyClient.js:1229
|
#: ../js/ui/telepathyClient.js:1231
|
||||||
msgid "Decline"
|
msgid "Decline"
|
||||||
msgstr "דחייה"
|
msgstr "דחייה"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1053
|
#: ../js/ui/telepathyClient.js:1055
|
||||||
#: ../js/ui/telepathyClient.js:1132
|
#: ../js/ui/telepathyClient.js:1134
|
||||||
#: ../js/ui/telepathyClient.js:1230
|
#: ../js/ui/telepathyClient.js:1232
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "אישור"
|
msgstr "אישור"
|
||||||
|
|
||||||
#. translators: argument is a contact name like Alice for example.
|
#. translators: argument is a contact name like Alice for example.
|
||||||
#: ../js/ui/telepathyClient.js:1083
|
#: ../js/ui/telepathyClient.js:1085
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Video call from %s"
|
msgid "Video call from %s"
|
||||||
msgstr "שיחת וידאו מאת %s"
|
msgstr "שיחת וידאו מאת %s"
|
||||||
|
|
||||||
#. translators: argument is a contact name like Alice for example.
|
#. translators: argument is a contact name like Alice for example.
|
||||||
#: ../js/ui/telepathyClient.js:1086
|
#: ../js/ui/telepathyClient.js:1088
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Call from %s"
|
msgid "Call from %s"
|
||||||
msgstr "שיחה מאת %s"
|
msgstr "שיחה מאת %s"
|
||||||
|
|
||||||
#. translators: this is a button label (verb), not a noun
|
#. translators: this is a button label (verb), not a noun
|
||||||
#: ../js/ui/telepathyClient.js:1093
|
#: ../js/ui/telepathyClient.js:1095
|
||||||
msgid "Answer"
|
msgid "Answer"
|
||||||
msgstr "מענה"
|
msgstr "מענה"
|
||||||
|
|
||||||
@ -1453,129 +1462,129 @@ msgstr "מענה"
|
|||||||
#. * file name. The string will be something
|
#. * file name. The string will be something
|
||||||
#. * like: "Alice is sending you test.ogg"
|
#. * like: "Alice is sending you test.ogg"
|
||||||
#.
|
#.
|
||||||
#: ../js/ui/telepathyClient.js:1125
|
#: ../js/ui/telepathyClient.js:1127
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is sending you %s"
|
msgid "%s is sending you %s"
|
||||||
msgstr "%s שולח/ת אליך %s"
|
msgstr "%s שולח/ת אליך %s"
|
||||||
|
|
||||||
#. To translators: The parameter is the contact's alias
|
#. To translators: The parameter is the contact's alias
|
||||||
#: ../js/ui/telepathyClient.js:1194
|
#: ../js/ui/telepathyClient.js:1196
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s would like permission to see when you are online"
|
msgid "%s would like permission to see when you are online"
|
||||||
msgstr "%s רוצה לקבל הרשאות כדי לראות מתי מצבך הוא מקוון"
|
msgstr "%s רוצה לקבל הרשאות כדי לראות מתי מצבך הוא מקוון"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1287
|
#: ../js/ui/telepathyClient.js:1289
|
||||||
msgid "Network error"
|
msgid "Network error"
|
||||||
msgstr "שגיאת רשת"
|
msgstr "שגיאת רשת"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1289
|
#: ../js/ui/telepathyClient.js:1291
|
||||||
msgid "Authentication failed"
|
msgid "Authentication failed"
|
||||||
msgstr "האימות נכשל"
|
msgstr "האימות נכשל"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1291
|
#: ../js/ui/telepathyClient.js:1293
|
||||||
msgid "Encryption error"
|
msgid "Encryption error"
|
||||||
msgstr "שגיאת הצפנה"
|
msgstr "שגיאת הצפנה"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1293
|
#: ../js/ui/telepathyClient.js:1295
|
||||||
msgid "Certificate not provided"
|
msgid "Certificate not provided"
|
||||||
msgstr "לא סופק אישור"
|
msgstr "לא סופק אישור"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1295
|
#: ../js/ui/telepathyClient.js:1297
|
||||||
msgid "Certificate untrusted"
|
msgid "Certificate untrusted"
|
||||||
msgstr "האישור אינו מהימן"
|
msgstr "האישור אינו מהימן"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1297
|
#: ../js/ui/telepathyClient.js:1299
|
||||||
msgid "Certificate expired"
|
msgid "Certificate expired"
|
||||||
msgstr "האישור פג"
|
msgstr "האישור פג"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1299
|
#: ../js/ui/telepathyClient.js:1301
|
||||||
msgid "Certificate not activated"
|
msgid "Certificate not activated"
|
||||||
msgstr "האישור לא מופעל"
|
msgstr "האישור לא מופעל"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1301
|
#: ../js/ui/telepathyClient.js:1303
|
||||||
msgid "Certificate hostname mismatch"
|
msgid "Certificate hostname mismatch"
|
||||||
msgstr "שם המארח באישור אינו תואם"
|
msgstr "שם המארח באישור אינו תואם"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1303
|
#: ../js/ui/telepathyClient.js:1305
|
||||||
msgid "Certificate fingerprint mismatch"
|
msgid "Certificate fingerprint mismatch"
|
||||||
msgstr "חוסר התאמה בטביעת האצבע של האישור"
|
msgstr "חוסר התאמה בטביעת האצבע של האישור"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1305
|
#: ../js/ui/telepathyClient.js:1307
|
||||||
msgid "Certificate self-signed"
|
msgid "Certificate self-signed"
|
||||||
msgstr "אישור בחתימה עצמית"
|
msgstr "אישור בחתימה עצמית"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1307
|
#: ../js/ui/telepathyClient.js:1309
|
||||||
msgid "Status is set to offline"
|
msgid "Status is set to offline"
|
||||||
msgstr "המצב הוגדר ל'מנותק'"
|
msgstr "המצב הוגדר ל'מנותק'"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1309
|
#: ../js/ui/telepathyClient.js:1311
|
||||||
msgid "Encryption is not available"
|
msgid "Encryption is not available"
|
||||||
msgstr "ההצפנה אינה זמינה"
|
msgstr "ההצפנה אינה זמינה"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1311
|
#: ../js/ui/telepathyClient.js:1313
|
||||||
msgid "Certificate is invalid"
|
msgid "Certificate is invalid"
|
||||||
msgstr "האישור אינו תקף"
|
msgstr "האישור אינו תקף"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1313
|
#: ../js/ui/telepathyClient.js:1315
|
||||||
msgid "Connection has been refused"
|
msgid "Connection has been refused"
|
||||||
msgstr "ההתחברות נשללה"
|
msgstr "ההתחברות נשללה"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1315
|
#: ../js/ui/telepathyClient.js:1317
|
||||||
msgid "Connection can't be established"
|
msgid "Connection can't be established"
|
||||||
msgstr "לא ניתן להפעיל את החיבור"
|
msgstr "לא ניתן להפעיל את החיבור"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1317
|
#: ../js/ui/telepathyClient.js:1319
|
||||||
msgid "Connection has been lost"
|
msgid "Connection has been lost"
|
||||||
msgstr "החיבור אבד"
|
msgstr "החיבור אבד"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1319
|
#: ../js/ui/telepathyClient.js:1321
|
||||||
msgid "This account is already connected to the server"
|
msgid "This account is already connected to the server"
|
||||||
msgstr "חשבון זה כבר מחובר לשרת"
|
msgstr "חשבון זה כבר מחובר לשרת"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1321
|
#: ../js/ui/telepathyClient.js:1323
|
||||||
msgid "Connection has been replaced by a new connection using the same resource"
|
msgid "Connection has been replaced by a new connection using the same resource"
|
||||||
msgstr "החיבור הוחלף בחיבור חדש באמצעות אותו המשאב"
|
msgstr "החיבור הוחלף בחיבור חדש באמצעות אותו המשאב"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1323
|
#: ../js/ui/telepathyClient.js:1325
|
||||||
msgid "The account already exists on the server"
|
msgid "The account already exists on the server"
|
||||||
msgstr "החשבון כבר קיים בשרת"
|
msgstr "החשבון כבר קיים בשרת"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1325
|
#: ../js/ui/telepathyClient.js:1327
|
||||||
msgid "Server is currently too busy to handle the connection"
|
msgid "Server is currently too busy to handle the connection"
|
||||||
msgstr "השרת עסוק ברגע זה מכדי לטפל בחיבור"
|
msgstr "השרת עסוק ברגע זה מכדי לטפל בחיבור"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1327
|
#: ../js/ui/telepathyClient.js:1329
|
||||||
msgid "Certificate has been revoked"
|
msgid "Certificate has been revoked"
|
||||||
msgstr "האישור נשלל"
|
msgstr "האישור נשלל"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1329
|
#: ../js/ui/telepathyClient.js:1331
|
||||||
msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
||||||
msgstr "האישור משתמש באלגוריתם הצפנה שאינו בטוח או חלש מבחינת הצפנה"
|
msgstr "האישור משתמש באלגוריתם הצפנה שאינו בטוח או חלש מבחינת הצפנה"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1331
|
#: ../js/ui/telepathyClient.js:1333
|
||||||
msgid "The length of the server certificate, or the depth of the server certificate chain, exceed the limits imposed by the cryptography library"
|
msgid "The length of the server certificate, or the depth of the server certificate chain, exceed the limits imposed by the cryptography library"
|
||||||
msgstr "אורך אישור השרת, או עומק שרשרת אישור השרת, חורגים מהמגבלות שנכפו על ידי ספריית ההצפנה"
|
msgstr "אורך אישור השרת, או עומק שרשרת אישור השרת, חורגים מהמגבלות שנכפו על ידי ספריית ההצפנה"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1333
|
#: ../js/ui/telepathyClient.js:1335
|
||||||
msgid "Internal error"
|
msgid "Internal error"
|
||||||
msgstr "שגיאה פנימית"
|
msgstr "שגיאה פנימית"
|
||||||
|
|
||||||
#. translators: argument is the account name, like
|
#. translators: argument is the account name, like
|
||||||
#. * name@jabber.org for example.
|
#. * name@jabber.org for example.
|
||||||
#: ../js/ui/telepathyClient.js:1343
|
#: ../js/ui/telepathyClient.js:1345
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Connection to %s failed"
|
msgid "Connection to %s failed"
|
||||||
msgstr "החיבור אל %s נכשל"
|
msgstr "החיבור אל %s נכשל"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1352
|
#: ../js/ui/telepathyClient.js:1354
|
||||||
msgid "Reconnect"
|
msgid "Reconnect"
|
||||||
msgstr "התחברות מחדש"
|
msgstr "התחברות מחדש"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1353
|
#: ../js/ui/telepathyClient.js:1355
|
||||||
msgid "Edit account"
|
msgid "Edit account"
|
||||||
msgstr "עריכת חשבון"
|
msgstr "עריכת חשבון"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1399
|
#: ../js/ui/telepathyClient.js:1401
|
||||||
msgid "Unknown reason"
|
msgid "Unknown reason"
|
||||||
msgstr "סיבה לא ידועה"
|
msgstr "סיבה לא ידועה"
|
||||||
|
|
||||||
|
11
po/ja.po
11
po/ja.po
@ -6,16 +6,15 @@
|
|||||||
# Jiro Matsuzawa <jmatsuzawa@src.gnome.org>, 2011, 2012.
|
# Jiro Matsuzawa <jmatsuzawa@src.gnome.org>, 2011, 2012.
|
||||||
# Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>, 2011, 2012.
|
# Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>, 2011, 2012.
|
||||||
# Hideki Yamane <henrich@debian.org>, 2011.
|
# Hideki Yamane <henrich@debian.org>, 2011.
|
||||||
# Takanori MATSUURA <t.matsuu@gmail.com>, 2012.
|
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell master\n"
|
"Project-Id-Version: gnome-shell master\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"shell&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2012-05-10 04:40+0000\n"
|
"POT-Creation-Date: 2012-04-19 21:14+0000\n"
|
||||||
"PO-Revision-Date: 2012-05-15 00:48+0900\n"
|
"PO-Revision-Date: 2012-04-21 21:35+0900\n"
|
||||||
"Last-Translator: Takanori MATSUURA <t.matsuu@gmail.com>\n"
|
"Last-Translator: OKANO Takayoshi <kano@na.rim.or.jp>\n"
|
||||||
"Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n"
|
"Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -525,11 +524,11 @@ msgstr "カレンダーを開く"
|
|||||||
#. in 24-hour mode.
|
#. in 24-hour mode.
|
||||||
#: ../js/ui/dateMenu.js:187
|
#: ../js/ui/dateMenu.js:187
|
||||||
msgid "%a %b %e, %R:%S"
|
msgid "%a %b %e, %R:%S"
|
||||||
msgstr "%B%e日 (%a) %R:%S"
|
msgstr "%m/%d (%a) %R:%S"
|
||||||
|
|
||||||
#: ../js/ui/dateMenu.js:188
|
#: ../js/ui/dateMenu.js:188
|
||||||
msgid "%a %b %e, %R"
|
msgid "%a %b %e, %R"
|
||||||
msgstr "%B%e日 (%a) %R"
|
msgstr "%m/%d (%a) %R"
|
||||||
|
|
||||||
#. Translators: This is the time format without date used
|
#. Translators: This is the time format without date used
|
||||||
#. in 24-hour mode.
|
#. in 24-hour mode.
|
||||||
|
44
po/ko.po
44
po/ko.po
@ -13,7 +13,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: gnome-shell\n"
|
"Project-Id-Version: gnome-shell\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=general\n"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2012-04-19 21:14+0000\n"
|
"POT-Creation-Date: 2012-04-19 21:14+0000\n"
|
||||||
"PO-Revision-Date: 2012-05-19 22:57+0900\n"
|
"PO-Revision-Date: 2012-04-26 01:05+0900\n"
|
||||||
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
|
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
|
||||||
"Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n"
|
"Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -51,7 +51,7 @@ msgstr "Alt-F2 대화 상자에서 내부 디버깅 및 감시 기능에 접근
|
|||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:3
|
#: ../data/org.gnome.shell.gschema.xml.in.h:3
|
||||||
msgid "Uuids of extensions to enable"
|
msgid "Uuids of extensions to enable"
|
||||||
msgstr "사용할 확장의 UUID 목록"
|
msgstr "사용할 확장 기능의 UUID 목록"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:4
|
#: ../data/org.gnome.shell.gschema.xml.in.h:4
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -71,7 +71,11 @@ msgid ""
|
|||||||
"used ones (e.g. in launchers). While this data will be kept private, you may "
|
"used ones (e.g. in launchers). While this data will be kept private, you may "
|
||||||
"want to disable this for privacy reasons. Please note that doing so won't "
|
"want to disable this for privacy reasons. Please note that doing so won't "
|
||||||
"remove already saved data."
|
"remove already saved data."
|
||||||
msgstr "셸에서는 최근에 사용한 프로그램을(실행 메뉴 등에서) 표시하는 목적으로, 현재 사용 중인 프로그램을 감시합니다. 이 데이터는 비공개 데이터이지만 사생활 문제가 걱정된다면 이 기능을 끌 수도 있습니다. 단 이 기능을 사용하지 않더라도 이미 저장된 데이터를 제거하지는 않습니다."
|
msgstr ""
|
||||||
|
"셸에서는 최근에 사용한 프로그램을 (실행 메뉴 등에서) 표시하는 목적으로, 현재 "
|
||||||
|
"사용 중인 프로그램을 감시합니다. 이 데이터는 비공개 데이터이지만 사생활 문제"
|
||||||
|
"가 걱정된다면 이 기능을 끌 수도 있습니다. 단 이 기능을 사용하지 않더라도 이"
|
||||||
|
"미 저장된 데이터를 제거하지는 않습니다."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:7
|
#: ../data/org.gnome.shell.gschema.xml.in.h:7
|
||||||
msgid "List of desktop file IDs for favorite applications"
|
msgid "List of desktop file IDs for favorite applications"
|
||||||
@ -89,7 +93,7 @@ msgstr "사용하지 않는 OpenSearch 서비스"
|
|||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:10
|
#: ../data/org.gnome.shell.gschema.xml.in.h:10
|
||||||
msgid "History for command (Alt-F2) dialog"
|
msgid "History for command (Alt-F2) dialog"
|
||||||
msgstr "명령어 대화 상자에(Alt-F2) 기록 기능"
|
msgstr "명령어 대화 상자에 (Alt-F2) 기록 기능"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:11
|
#: ../data/org.gnome.shell.gschema.xml.in.h:11
|
||||||
msgid "History for the looking glass dialog"
|
msgid "History for the looking glass dialog"
|
||||||
@ -162,7 +166,7 @@ msgid "The gstreamer pipeline used to encode the screencast"
|
|||||||
msgstr "스크린 방송 인코딩에 사용할 gstreamer 파이프라인"
|
msgstr "스크린 방송 인코딩에 사용할 gstreamer 파이프라인"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:28
|
#: ../data/org.gnome.shell.gschema.xml.in.h:28
|
||||||
#, no-c-format
|
#, no-c-format, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
||||||
"used for gst-launch. The pipeline should have an unconnected sink pad where "
|
"used for gst-launch. The pipeline should have an unconnected sink pad where "
|
||||||
@ -174,31 +178,45 @@ msgid ""
|
|||||||
"'vp8enc quality=8 speed=6 threads=%T ! queue ! webmmux' and records to WEBM "
|
"'vp8enc quality=8 speed=6 threads=%T ! queue ! webmmux' and records to WEBM "
|
||||||
"using the VP8 codec. %T is used as a placeholder for a guess at the optimal "
|
"using the VP8 codec. %T is used as a placeholder for a guess at the optimal "
|
||||||
"thread count on the system."
|
"thread count on the system."
|
||||||
msgstr "녹화 인코딩에 사용할 GStreamer 파이프라인을 지정합니다. gst-launch 프로그램에 사용하는 문법을 따릅니다. 녹화한 영상이 입력되는 싱크 패드는 이 파이프라인에 연결하지 않은 상태여야 합니다. 보통은 소스 패드도 연결하지 않고, 소스 패드의 출력을 출력 파일에 기록합니다. 하지만 파이프라인에서 이 출력을 처리할 수도 있습니다. shout2send 같은 프로그램을 이용해 아이스캐스트 서버로 출력을 보내거나 하는 용도로 사용할 수 있습니다. 설정을 취소하거나 빈 값으로 설정하면, 기본 파이프라인을 사용합니다. 기본 파이프라인은 'vp8enc quality=8 speed=6 threads=%T ! queue ! webmmux'이고 VP8 코덱을 사용해 WEBM 형식으로 녹화합니다. '%T' 기호는 시스템에서 최적으로 생각되는 스레드 수로 대체됩니다."
|
msgstr ""
|
||||||
|
"녹화 인코딩에 사용할 GStreamer 파이프라인을 지정합니다. gst-launch에 사용하"
|
||||||
|
"는 문법을 따릅니다. 파이프라인은 녹화한 영상이 있는 싱크 패드를 연결하지 않"
|
||||||
|
"은 상태여야 합니다. 보통 소스 패드와 연결하지 않았을 것입니다. 이 패드의 출력"
|
||||||
|
"은 출력 파일에 기록할 것입니다. 그러나 파이프라인은 이 출력을 다룰 수 있기도 "
|
||||||
|
"합니다 - 아마 shout2send와 같은 것을 통해 icecast 서버로 출력을 보내는데 사용"
|
||||||
|
"할지도 모릅니다. 만약 설정을 취소하거나 빈 값으로 설정한다면, 기본 파이프라인"
|
||||||
|
"을 사용할 것입니다. 이것은 현재 'vp8enc quality=8 speed=6 threads=%T ! "
|
||||||
|
"queue ! webmmux' 이며 VP8 코덱을 사용하여 WEBM으로 녹화합니다. %T는 시스템 상"
|
||||||
|
"의 최적의 스레드 수를 추측하기 위해 대체기호로 사용합니다."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:29
|
#: ../data/org.gnome.shell.gschema.xml.in.h:29
|
||||||
msgid "File extension used for storing the screencast"
|
msgid "File extension used for storing the screencast"
|
||||||
msgstr "스크린 방송을 저장할 때 사용할 파일 확장자"
|
msgstr "스크린 방송을 저장할 때 사용할 파일 확장자"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:30
|
#: ../data/org.gnome.shell.gschema.xml.in.h:30
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"The filename for recorded screencasts will be a unique filename based on the "
|
"The filename for recorded screencasts will be a unique filename based on the "
|
||||||
"current date, and use this extension. It should be changed when recording to "
|
"current date, and use this extension. It should be changed when recording to "
|
||||||
"a different container format."
|
"a different container format."
|
||||||
msgstr "녹화한 스크린 방송 영상 파일은, 현재 날짜와 여기서 설정하는 확장자를 붙여 파일 이름을 만듭니다. 다른 컨테이너 형식으로 녹화하려면 이 값을 바꿔야 합니다."
|
msgstr ""
|
||||||
|
"스크린 방송 녹화 파일 이름은 현재 날짜와 이 확장자를 사용해서 결정됩니다. 녹"
|
||||||
|
"화할 때 다른 형식으로 바꿀 수도 있습니다."
|
||||||
|
|
||||||
#: ../js/extensionPrefs/main.js:125
|
#: ../js/extensionPrefs/main.js:125
|
||||||
#, c-format
|
#, c-format, fuzzy
|
||||||
msgid "There was an error loading the preferences dialog for %s:"
|
msgid "There was an error loading the preferences dialog for %s:"
|
||||||
msgstr "%s에 대한 기본 설정 대화상자를 불러오는데 오류가 발생했습니다:"
|
msgstr "%s에 대한 기본 설정 대화상자를 불러오는데 오류가 발생했습니다:"
|
||||||
|
|
||||||
#: ../js/extensionPrefs/main.js:165
|
#: ../js/extensionPrefs/main.js:165
|
||||||
|
#, fuzzy
|
||||||
msgid "<b>Extension</b>"
|
msgid "<b>Extension</b>"
|
||||||
msgstr "<b>확장</b>"
|
msgstr "<b>확장</b>"
|
||||||
|
|
||||||
#: ../js/extensionPrefs/main.js:189
|
#: ../js/extensionPrefs/main.js:189
|
||||||
|
#, fuzzy
|
||||||
msgid "Select an extension to configure using the combobox above."
|
msgid "Select an extension to configure using the combobox above."
|
||||||
msgstr "위의 콤보상자를 사용해 설정할 확장을 선택하십시오."
|
msgstr "위의 콤보상자를 사용하여 설정할 확장을 선택하십시오."
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:627
|
#: ../js/gdm/loginDialog.js:627
|
||||||
msgid "Session..."
|
msgid "Session..."
|
||||||
@ -656,13 +674,13 @@ msgstr "다시 입력하십시오:"
|
|||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:732
|
#: ../js/ui/lookingGlass.js:732
|
||||||
msgid "No extensions installed"
|
msgid "No extensions installed"
|
||||||
msgstr "확장을 설치하지 않았습니다"
|
msgstr "확장 기능을 설치하지 않았습니다"
|
||||||
|
|
||||||
#. Translators: argument is an extension UUID.
|
#. Translators: argument is an extension UUID.
|
||||||
#: ../js/ui/lookingGlass.js:786
|
#: ../js/ui/lookingGlass.js:786
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s has not emitted any errors."
|
msgid "%s has not emitted any errors."
|
||||||
msgstr "%s에서 발생한 에러가 없습니다."
|
msgstr "%s이(가) 발생한 에러가 없습니다."
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:792
|
#: ../js/ui/lookingGlass.js:792
|
||||||
msgid "Hide Errors"
|
msgid "Hide Errors"
|
||||||
@ -1149,7 +1167,7 @@ msgstr "더 보기..."
|
|||||||
#. and we cannot access its settings (including the name)
|
#. and we cannot access its settings (including the name)
|
||||||
#: ../js/ui/status/network.js:621 ../js/ui/status/network.js:1440
|
#: ../js/ui/status/network.js:621 ../js/ui/status/network.js:1440
|
||||||
msgid "Connected (private)"
|
msgid "Connected (private)"
|
||||||
msgstr "연결됨(개인)"
|
msgstr "연결됨 (개인)"
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:696
|
#: ../js/ui/status/network.js:696
|
||||||
msgid "Auto Ethernet"
|
msgid "Auto Ethernet"
|
||||||
@ -1555,7 +1573,7 @@ msgstr "내부 오류"
|
|||||||
#. translators: argument is the account name, like
|
#. translators: argument is the account name, like
|
||||||
#. * name@jabber.org for example.
|
#. * name@jabber.org for example.
|
||||||
#: ../js/ui/telepathyClient.js:1345
|
#: ../js/ui/telepathyClient.js:1345
|
||||||
#, c-format
|
#, c-format, fuzzy
|
||||||
msgid "Connection to %s failed"
|
msgid "Connection to %s failed"
|
||||||
msgstr "%s에 연결이 실패했습니다"
|
msgstr "%s에 연결이 실패했습니다"
|
||||||
|
|
||||||
|
159
po/lt.po
159
po/lt.po
@ -3,20 +3,19 @@
|
|||||||
# This file is distributed under the same license as the gnome-shell package.
|
# This file is distributed under the same license as the gnome-shell package.
|
||||||
# Žygimantas Beručka <zygis@gnome.org>, 2010, 2011, 2012.
|
# Žygimantas Beručka <zygis@gnome.org>, 2010, 2011, 2012.
|
||||||
# Algimantas Margevičius <gymka@mail.ru>, 2011.
|
# Algimantas Margevičius <gymka@mail.ru>, 2011.
|
||||||
# Mantas Kriaučiūnas <mantas@akl.lt>, 2012.
|
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell master\n"
|
"Project-Id-Version: gnome-shell master\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"shell&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2012-05-19 13:58+0000\n"
|
"POT-Creation-Date: 2012-03-30 17:59+0000\n"
|
||||||
"PO-Revision-Date: 2012-04-05 15:14+0300\n"
|
"PO-Revision-Date: 2012-04-05 15:14+0300\n"
|
||||||
"Last-Translator: Mantas Kriaučiūnas <mantas@akl.lt>\n"
|
"Last-Translator: Žygimantas Beručka <zygis@gnome.org>\n"
|
||||||
"Language-Team: Lithuanian\n"
|
"Language-Team: Lithuanian\n"
|
||||||
|
"Language: lt\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Language: lt\n"
|
|
||||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%"
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%"
|
||||||
"100<10 || n%100>=20) ? 1 : 2);\n"
|
"100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
"X-Generator: Virtaal 0.7.0\n"
|
"X-Generator: Virtaal 0.7.0\n"
|
||||||
@ -24,7 +23,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||||
msgid "GNOME Shell"
|
msgid "GNOME Shell"
|
||||||
msgstr "GNOME Shell aplinka"
|
msgstr "GNOME Shell"
|
||||||
|
|
||||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||||
msgid "Window management and application launching"
|
msgid "Window management and application launching"
|
||||||
@ -80,11 +79,10 @@ msgid ""
|
|||||||
"want to disable this for privacy reasons. Please note that doing so won't "
|
"want to disable this for privacy reasons. Please note that doing so won't "
|
||||||
"remove already saved data."
|
"remove already saved data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Įprastai GNOME aplinka stebi aktyvias programas siekiant pateikti "
|
"Apvalkalas paprastai stebi aktyvias programas siekiant pateikti dažniausiai "
|
||||||
"dažniausiai naudojamas (pvz., leistukuose). Nors šie duomenys "
|
"naudojamas (pvz., leistukuose). Nors šie duomenys konfidencialiai saugomi, "
|
||||||
"konfidencialiai saugomi, jei norite, saugumo sumetimais galite šią funkciją "
|
"jei norite, saugumo sumetimais galite šią funkciją išjungti. Atminkite, kad "
|
||||||
"išjungti. Atminkite, kad išjungus šią funkciją anksčiau įrašyti duomenys "
|
"tai padarius jau įrašyti duomenys jau nebus įrašyti."
|
||||||
"nebus pašalinti."
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:7
|
#: ../data/org.gnome.shell.gschema.xml.in.h:7
|
||||||
msgid "List of desktop file IDs for favorite applications"
|
msgid "List of desktop file IDs for favorite applications"
|
||||||
@ -224,7 +222,7 @@ msgstr ""
|
|||||||
#: ../js/extensionPrefs/main.js:125
|
#: ../js/extensionPrefs/main.js:125
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "There was an error loading the preferences dialog for %s:"
|
msgid "There was an error loading the preferences dialog for %s:"
|
||||||
msgstr "Įvyko klaida įkeliant %s nustatymų dialogą:"
|
msgstr "Kilo klaida įkeliant %s nustatymų dialogą:"
|
||||||
|
|
||||||
#: ../js/extensionPrefs/main.js:165
|
#: ../js/extensionPrefs/main.js:165
|
||||||
msgid "<b>Extension</b>"
|
msgid "<b>Extension</b>"
|
||||||
@ -234,40 +232,40 @@ msgstr "<b>Plėtinys</b>"
|
|||||||
msgid "Select an extension to configure using the combobox above."
|
msgid "Select an extension to configure using the combobox above."
|
||||||
msgstr "Išskleidžiamajame sąraše pasirinkite konfigūruotiną plėtinį."
|
msgstr "Išskleidžiamajame sąraše pasirinkite konfigūruotiną plėtinį."
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:627
|
#: ../js/gdm/loginDialog.js:624
|
||||||
msgid "Session..."
|
msgid "Session..."
|
||||||
msgstr "Seansas..."
|
msgstr "Seansas..."
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:789
|
#: ../js/gdm/loginDialog.js:786
|
||||||
msgctxt "title"
|
msgctxt "title"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Prisijungti"
|
msgstr "Prisijungti"
|
||||||
|
|
||||||
#. Translators: this message is shown below the password entry field
|
#. Translators: this message is shown below the password entry field
|
||||||
#. to indicate the user can swipe their finger instead
|
#. to indicate the user can swipe their finger instead
|
||||||
#: ../js/gdm/loginDialog.js:834
|
#: ../js/gdm/loginDialog.js:831
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(arba perbraukite pirštu)"
|
msgstr "(arba perbraukite pirštu)"
|
||||||
|
|
||||||
#. translators: this message is shown below the user list on the
|
#. translators: this message is shown below the user list on the
|
||||||
#. login screen. It can be activated to reveal an entry for
|
#. login screen. It can be activated to reveal an entry for
|
||||||
#. manually entering the username.
|
#. manually entering the username.
|
||||||
#: ../js/gdm/loginDialog.js:855
|
#: ../js/gdm/loginDialog.js:852
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "Nėra sąraše?"
|
msgstr "Nėra sąraše?"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1023 ../js/ui/endSessionDialog.js:401
|
#: ../js/gdm/loginDialog.js:1020 ../js/ui/endSessionDialog.js:401
|
||||||
#: ../js/ui/extensionSystem.js:400 ../js/ui/networkAgent.js:153
|
#: ../js/ui/extensionSystem.js:399 ../js/ui/networkAgent.js:153
|
||||||
#: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462
|
#: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Atsisakyti"
|
msgstr "Atšaukti"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1028
|
#: ../js/gdm/loginDialog.js:1025
|
||||||
msgctxt "button"
|
msgctxt "button"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Prisijungti"
|
msgstr "Prisijungti"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1380
|
#: ../js/gdm/loginDialog.js:1377
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Prisijungimo langas"
|
msgstr "Prisijungimo langas"
|
||||||
|
|
||||||
@ -675,11 +673,11 @@ msgstr[2] "Sistema bus paleista iš naujo po %d sekundžių."
|
|||||||
msgid "Restarting the system."
|
msgid "Restarting the system."
|
||||||
msgstr "Sistema paleidžiama iš naujo."
|
msgstr "Sistema paleidžiama iš naujo."
|
||||||
|
|
||||||
#: ../js/ui/extensionSystem.js:404
|
#: ../js/ui/extensionSystem.js:403
|
||||||
msgid "Install"
|
msgid "Install"
|
||||||
msgstr "Įdiegti"
|
msgstr "Įdiegti"
|
||||||
|
|
||||||
#: ../js/ui/extensionSystem.js:408
|
#: ../js/ui/extensionSystem.js:407
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Download and install '%s' from extensions.gnome.org?"
|
msgid "Download and install '%s' from extensions.gnome.org?"
|
||||||
msgstr "Atsiųsti ir įdiegti „%s“ iš extensions.gnome.org?"
|
msgstr "Atsiųsti ir įdiegti „%s“ iš extensions.gnome.org?"
|
||||||
@ -688,8 +686,7 @@ msgstr "Atsiųsti ir įdiegti „%s“ iš extensions.gnome.org?"
|
|||||||
msgid "tray"
|
msgid "tray"
|
||||||
msgstr "dėklas"
|
msgstr "dėklas"
|
||||||
|
|
||||||
#: ../js/ui/keyboard.js:544 ../js/ui/status/keyboard.js:44
|
#: ../js/ui/keyboard.js:544 ../js/ui/status/power.js:203
|
||||||
#: ../js/ui/status/power.js:203
|
|
||||||
msgid "Keyboard"
|
msgid "Keyboard"
|
||||||
msgstr "Klaviatūra"
|
msgstr "Klaviatūra"
|
||||||
|
|
||||||
@ -725,7 +722,7 @@ msgstr "Įjungta"
|
|||||||
|
|
||||||
#. translators:
|
#. translators:
|
||||||
#. * The device has been disabled
|
#. * The device has been disabled
|
||||||
#: ../js/ui/lookingGlass.js:808 ../src/gvc/gvc-mixer-control.c:1082
|
#: ../js/ui/lookingGlass.js:808 ../src/gvc/gvc-mixer-control.c:1093
|
||||||
msgid "Disabled"
|
msgid "Disabled"
|
||||||
msgstr "Išjungta"
|
msgstr "Išjungta"
|
||||||
|
|
||||||
@ -942,7 +939,7 @@ msgstr "Įveskite komandą:"
|
|||||||
msgid "Searching..."
|
msgid "Searching..."
|
||||||
msgstr "Ieškoma..."
|
msgstr "Ieškoma..."
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:415
|
#: ../js/ui/searchDisplay.js:414
|
||||||
msgid "No matching results."
|
msgid "No matching results."
|
||||||
msgstr "Nerasta atitikmenų."
|
msgstr "Nerasta atitikmenų."
|
||||||
|
|
||||||
@ -1100,7 +1097,7 @@ msgstr "Visada leisti prieigą"
|
|||||||
msgid "Grant this time only"
|
msgid "Grant this time only"
|
||||||
msgstr "Leisti tik šį kartą"
|
msgstr "Leisti tik šį kartą"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1093
|
#: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1091
|
||||||
msgid "Reject"
|
msgid "Reject"
|
||||||
msgstr "Atmesti"
|
msgstr "Atmesti"
|
||||||
|
|
||||||
@ -1177,7 +1174,7 @@ msgstr "Trūksta integruotos programinės įrangos (firmware)"
|
|||||||
#. Translators: this is for wired network devices that are physically disconnected
|
#. Translators: this is for wired network devices that are physically disconnected
|
||||||
#: ../js/ui/status/network.js:517
|
#: ../js/ui/status/network.js:517
|
||||||
msgid "cable unplugged"
|
msgid "cable unplugged"
|
||||||
msgstr "atjungtas laidas"
|
msgstr "kabelis neįjungtas"
|
||||||
|
|
||||||
#. Translators: this is for a network device that cannot be activated (for example it
|
#. Translators: this is for a network device that cannot be activated (for example it
|
||||||
#. is disabled by rfkill, or it has no coverage
|
#. is disabled by rfkill, or it has no coverage
|
||||||
@ -1191,7 +1188,7 @@ msgstr "nepavyko prisijungti"
|
|||||||
|
|
||||||
#: ../js/ui/status/network.js:585 ../js/ui/status/network.js:1505
|
#: ../js/ui/status/network.js:585 ../js/ui/status/network.js:1505
|
||||||
msgid "More..."
|
msgid "More..."
|
||||||
msgstr "Rodyti daugiau tinklų..."
|
msgstr "Daugiau..."
|
||||||
|
|
||||||
#. TRANSLATORS: this is the indication that a connection for another logged in user is active,
|
#. TRANSLATORS: this is the indication that a connection for another logged in user is active,
|
||||||
#. and we cannot access its settings (including the name)
|
#. and we cannot access its settings (including the name)
|
||||||
@ -1388,7 +1385,7 @@ msgstr "Skambutis"
|
|||||||
#. We got the TpContact
|
#. We got the TpContact
|
||||||
#: ../js/ui/telepathyClient.js:287
|
#: ../js/ui/telepathyClient.js:287
|
||||||
msgid "File Transfer"
|
msgid "File Transfer"
|
||||||
msgstr "Failo persiuntimas"
|
msgstr "Failo perdavimas"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:369
|
#: ../js/ui/telepathyClient.js:369
|
||||||
msgid "Subscription request"
|
msgid "Subscription request"
|
||||||
@ -1421,35 +1418,35 @@ msgstr "%s yra užsiėmęs (-usi)."
|
|||||||
#. Translators: this is a time format string followed by a date.
|
#. Translators: this is a time format string followed by a date.
|
||||||
#. If applicable, replace %X with a strftime format valid for your
|
#. If applicable, replace %X with a strftime format valid for your
|
||||||
#. locale, without seconds.
|
#. locale, without seconds.
|
||||||
#: ../js/ui/telepathyClient.js:889
|
#: ../js/ui/telepathyClient.js:887
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sent at <b>%X</b> on <b>%A</b>"
|
msgid "Sent at <b>%X</b> on <b>%A</b>"
|
||||||
msgstr "Išsiųsta <b>%X</b> <b>%A</b>"
|
msgstr "Išsiųsta <b>%X</b> <b>%A</b>"
|
||||||
|
|
||||||
#. Translators: this is a time format in the style of "Wednesday, May 25",
|
#. Translators: this is a time format in the style of "Wednesday, May 25",
|
||||||
#. shown when you get a chat message in the same year.
|
#. shown when you get a chat message in the same year.
|
||||||
#: ../js/ui/telepathyClient.js:895
|
#: ../js/ui/telepathyClient.js:893
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
|
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
|
||||||
msgstr "Išsiųsta <b>%B %d</b>, <b>%A</b>"
|
msgstr "Išsiųsta <b>%B %d</b>, <b>%A</b>"
|
||||||
|
|
||||||
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
|
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
|
||||||
#. shown when you get a chat message in a different year.
|
#. shown when you get a chat message in a different year.
|
||||||
#: ../js/ui/telepathyClient.js:900
|
#: ../js/ui/telepathyClient.js:898
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
|
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
|
||||||
msgstr "Išsiųsta %Y <b>%B %d</b>, <b>%A</b>"
|
msgstr "Išsiųsta %Y <b>%B %d</b>, <b>%A</b>"
|
||||||
|
|
||||||
#. Translators: this is the other person changing their old IM name to their new
|
#. Translators: this is the other person changing their old IM name to their new
|
||||||
#. IM name.
|
#. IM name.
|
||||||
#: ../js/ui/telepathyClient.js:942
|
#: ../js/ui/telepathyClient.js:940
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is now known as %s"
|
msgid "%s is now known as %s"
|
||||||
msgstr "%s nuo šiol vadinasi %s"
|
msgstr "%s nuo šiol vadinasi %s"
|
||||||
|
|
||||||
#. translators: argument is a room name like
|
#. translators: argument is a room name like
|
||||||
#. * room@jabber.org for example.
|
#. * room@jabber.org for example.
|
||||||
#: ../js/ui/telepathyClient.js:1044
|
#: ../js/ui/telepathyClient.js:1042
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invitation to %s"
|
msgid "Invitation to %s"
|
||||||
msgstr "Kvietimas į %s"
|
msgstr "Kvietimas į %s"
|
||||||
@ -1457,35 +1454,35 @@ msgstr "Kvietimas į %s"
|
|||||||
#. translators: first argument is the name of a contact and the second
|
#. translators: first argument is the name of a contact and the second
|
||||||
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
||||||
#. * for example.
|
#. * for example.
|
||||||
#: ../js/ui/telepathyClient.js:1052
|
#: ../js/ui/telepathyClient.js:1050
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is inviting you to join %s"
|
msgid "%s is inviting you to join %s"
|
||||||
msgstr "%s jus kviečia prisijungti prie %s"
|
msgstr "%s jus kviečia prisijungti prie %s"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1054 ../js/ui/telepathyClient.js:1133
|
#: ../js/ui/telepathyClient.js:1052 ../js/ui/telepathyClient.js:1131
|
||||||
#: ../js/ui/telepathyClient.js:1231
|
#: ../js/ui/telepathyClient.js:1229
|
||||||
msgid "Decline"
|
msgid "Decline"
|
||||||
msgstr "Atmesti"
|
msgstr "Atmesti"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1055 ../js/ui/telepathyClient.js:1134
|
#: ../js/ui/telepathyClient.js:1053 ../js/ui/telepathyClient.js:1132
|
||||||
#: ../js/ui/telepathyClient.js:1232
|
#: ../js/ui/telepathyClient.js:1230
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "Priimti"
|
msgstr "Priimti"
|
||||||
|
|
||||||
#. translators: argument is a contact name like Alice for example.
|
#. translators: argument is a contact name like Alice for example.
|
||||||
#: ../js/ui/telepathyClient.js:1085
|
#: ../js/ui/telepathyClient.js:1083
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Video call from %s"
|
msgid "Video call from %s"
|
||||||
msgstr "Vaizdo skambutis nuo %s"
|
msgstr "Vaizdo skambutis nuo %s"
|
||||||
|
|
||||||
#. translators: argument is a contact name like Alice for example.
|
#. translators: argument is a contact name like Alice for example.
|
||||||
#: ../js/ui/telepathyClient.js:1088
|
#: ../js/ui/telepathyClient.js:1086
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Call from %s"
|
msgid "Call from %s"
|
||||||
msgstr "Skambutis nuo %s"
|
msgstr "Skambutis nuo %s"
|
||||||
|
|
||||||
#. translators: this is a button label (verb), not a noun
|
#. translators: this is a button label (verb), not a noun
|
||||||
#: ../js/ui/telepathyClient.js:1095
|
#: ../js/ui/telepathyClient.js:1093
|
||||||
msgid "Answer"
|
msgid "Answer"
|
||||||
msgstr "Atsiliepti"
|
msgstr "Atsiliepti"
|
||||||
|
|
||||||
@ -1494,110 +1491,110 @@ msgstr "Atsiliepti"
|
|||||||
#. * file name. The string will be something
|
#. * file name. The string will be something
|
||||||
#. * like: "Alice is sending you test.ogg"
|
#. * like: "Alice is sending you test.ogg"
|
||||||
#.
|
#.
|
||||||
#: ../js/ui/telepathyClient.js:1127
|
#: ../js/ui/telepathyClient.js:1125
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is sending you %s"
|
msgid "%s is sending you %s"
|
||||||
msgstr "%s jums siunčia %s"
|
msgstr "%s jums siunčia %s"
|
||||||
|
|
||||||
#. To translators: The parameter is the contact's alias
|
#. To translators: The parameter is the contact's alias
|
||||||
#: ../js/ui/telepathyClient.js:1196
|
#: ../js/ui/telepathyClient.js:1194
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s would like permission to see when you are online"
|
msgid "%s would like permission to see when you are online"
|
||||||
msgstr "%s pageidauja matyti, kai esate prisijungę prie interneto"
|
msgstr "%s pageidauja matyti, kai esate prisijungę prie interneto"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1289
|
#: ../js/ui/telepathyClient.js:1287
|
||||||
msgid "Network error"
|
msgid "Network error"
|
||||||
msgstr "Tinklo klaida"
|
msgstr "Tinklo klaida"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1291
|
#: ../js/ui/telepathyClient.js:1289
|
||||||
msgid "Authentication failed"
|
msgid "Authentication failed"
|
||||||
msgstr "Nepavyko patvirtinti tapatybės"
|
msgstr "Nepavyko patvirtinti tapatybės"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1293
|
#: ../js/ui/telepathyClient.js:1291
|
||||||
msgid "Encryption error"
|
msgid "Encryption error"
|
||||||
msgstr "Šifravimo klaida"
|
msgstr "Šifravimo klaida"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1295
|
#: ../js/ui/telepathyClient.js:1293
|
||||||
msgid "Certificate not provided"
|
msgid "Certificate not provided"
|
||||||
msgstr "Liudijimas nepateiktas"
|
msgstr "Liudijimas nepateiktas"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1297
|
#: ../js/ui/telepathyClient.js:1295
|
||||||
msgid "Certificate untrusted"
|
msgid "Certificate untrusted"
|
||||||
msgstr "Liudijimas nepatikimas"
|
msgstr "Liudijimas nepatikimas"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1299
|
#: ../js/ui/telepathyClient.js:1297
|
||||||
msgid "Certificate expired"
|
msgid "Certificate expired"
|
||||||
msgstr "Liudijimo galiojimas pasibaigęs"
|
msgstr "Liudijimo galiojimas pasibaigęs"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1301
|
#: ../js/ui/telepathyClient.js:1299
|
||||||
msgid "Certificate not activated"
|
msgid "Certificate not activated"
|
||||||
msgstr "Liudijimas neaktyvuotas"
|
msgstr "Liudijimas neaktyvuotas"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1303
|
#: ../js/ui/telepathyClient.js:1301
|
||||||
msgid "Certificate hostname mismatch"
|
msgid "Certificate hostname mismatch"
|
||||||
msgstr "Liudijimo serverio vardo nesutapimas"
|
msgstr "Liudijimo serverio vardo nesutapimas"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1305
|
#: ../js/ui/telepathyClient.js:1303
|
||||||
msgid "Certificate fingerprint mismatch"
|
msgid "Certificate fingerprint mismatch"
|
||||||
msgstr "Liudijimo piršto atspaudo nesutapimas"
|
msgstr "Liudijimo piršto atspaudo nesutapimas"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1307
|
#: ../js/ui/telepathyClient.js:1305
|
||||||
msgid "Certificate self-signed"
|
msgid "Certificate self-signed"
|
||||||
msgstr "Liudijimas pačių pasirašytas"
|
msgstr "Liudijimas pačių pasirašytas"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1309
|
#: ../js/ui/telepathyClient.js:1307
|
||||||
msgid "Status is set to offline"
|
msgid "Status is set to offline"
|
||||||
msgstr "Nustatyta atsijungimo būsena"
|
msgstr "Nustatyta atsijungimo būsena"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1311
|
#: ../js/ui/telepathyClient.js:1309
|
||||||
msgid "Encryption is not available"
|
msgid "Encryption is not available"
|
||||||
msgstr "Šifravimas negalimas"
|
msgstr "Šifravimas negalimas"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1313
|
#: ../js/ui/telepathyClient.js:1311
|
||||||
msgid "Certificate is invalid"
|
msgid "Certificate is invalid"
|
||||||
msgstr "Liudijimas netinkamas"
|
msgstr "Liudijimas netinkamas"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1315
|
#: ../js/ui/telepathyClient.js:1313
|
||||||
msgid "Connection has been refused"
|
msgid "Connection has been refused"
|
||||||
msgstr "Ryšys atmestas"
|
msgstr "Ryšys atmestas"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1317
|
#: ../js/ui/telepathyClient.js:1315
|
||||||
msgid "Connection can't be established"
|
msgid "Connection can't be established"
|
||||||
msgstr "Nepavyko užmegzti ryšio"
|
msgstr "Nepavyko užmegzti ryšio"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1319
|
#: ../js/ui/telepathyClient.js:1317
|
||||||
msgid "Connection has been lost"
|
msgid "Connection has been lost"
|
||||||
msgstr "Ryšys nutrūko"
|
msgstr "Ryšys nutrūko"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1321
|
#: ../js/ui/telepathyClient.js:1319
|
||||||
msgid "This account is already connected to the server"
|
msgid "This account is already connected to the server"
|
||||||
msgstr "Ši paskyra jau prijungta prie serverio"
|
msgstr "Ši paskyra jau prijungta prie serverio"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1323
|
#: ../js/ui/telepathyClient.js:1321
|
||||||
msgid ""
|
msgid ""
|
||||||
"Connection has been replaced by a new connection using the same resource"
|
"Connection has been replaced by a new connection using the same resource"
|
||||||
msgstr "Ryšys pakeistas nauju ryšiu naudojant tą patį išteklių"
|
msgstr "Ryšys pakeistas nauju ryšiu naudojant tą patį išteklių"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1325
|
#: ../js/ui/telepathyClient.js:1323
|
||||||
msgid "The account already exists on the server"
|
msgid "The account already exists on the server"
|
||||||
msgstr "Tokia paskyra serveryje jau yra"
|
msgstr "Tokia paskyra serveryje jau yra"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1327
|
#: ../js/ui/telepathyClient.js:1325
|
||||||
msgid "Server is currently too busy to handle the connection"
|
msgid "Server is currently too busy to handle the connection"
|
||||||
msgstr "Šiuo metu serveris per daug užimtas šiai užklausai apdoroti"
|
msgstr "Šiuo metu serveris per daug užimtas šiai užklausai apdoroti"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1329
|
#: ../js/ui/telepathyClient.js:1327
|
||||||
msgid "Certificate has been revoked"
|
msgid "Certificate has been revoked"
|
||||||
msgstr "Liudijimas atšauktas"
|
msgstr "Liudijimas atšauktas"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1331
|
#: ../js/ui/telepathyClient.js:1329
|
||||||
msgid ""
|
msgid ""
|
||||||
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Liudijimui naudojamas nesaugus šifravimo algoritmas arba jis kriptografiškai "
|
"Liudijimui naudojamas nesaugus šifravimo algoritmas arba jis kriptografiškai "
|
||||||
"silpnas"
|
"silpnas"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1333
|
#: ../js/ui/telepathyClient.js:1331
|
||||||
msgid ""
|
msgid ""
|
||||||
"The length of the server certificate, or the depth of the server certificate "
|
"The length of the server certificate, or the depth of the server certificate "
|
||||||
"chain, exceed the limits imposed by the cryptography library"
|
"chain, exceed the limits imposed by the cryptography library"
|
||||||
@ -1605,26 +1602,26 @@ msgstr ""
|
|||||||
"Serverio liudijimo ilgis arba liudijimų eilės dydis viršija kriptografijos "
|
"Serverio liudijimo ilgis arba liudijimų eilės dydis viršija kriptografijos "
|
||||||
"bibliotekos apribojimus"
|
"bibliotekos apribojimus"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1335
|
#: ../js/ui/telepathyClient.js:1333
|
||||||
msgid "Internal error"
|
msgid "Internal error"
|
||||||
msgstr "Vidinė klaida"
|
msgstr "Vidinė klaida"
|
||||||
|
|
||||||
#. translators: argument is the account name, like
|
#. translators: argument is the account name, like
|
||||||
#. * name@jabber.org for example.
|
#. * name@jabber.org for example.
|
||||||
#: ../js/ui/telepathyClient.js:1345
|
#: ../js/ui/telepathyClient.js:1343
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Connection to %s failed"
|
msgid "Connection to %s failed"
|
||||||
msgstr "Nepavyko prisijungti prie %s"
|
msgstr "Nepavyko prisijungti prie %s"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1354
|
#: ../js/ui/telepathyClient.js:1352
|
||||||
msgid "Reconnect"
|
msgid "Reconnect"
|
||||||
msgstr "Prisijungti iš naujo"
|
msgstr "Prisijungti iš naujo"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1355
|
#: ../js/ui/telepathyClient.js:1353
|
||||||
msgid "Edit account"
|
msgid "Edit account"
|
||||||
msgstr "Taisyti paskyrą"
|
msgstr "Taisyti paskyrą"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1401
|
#: ../js/ui/telepathyClient.js:1399
|
||||||
msgid "Unknown reason"
|
msgid "Unknown reason"
|
||||||
msgstr "Nežinoma priežastis"
|
msgstr "Nežinoma priežastis"
|
||||||
|
|
||||||
@ -1650,7 +1647,7 @@ msgstr "Pranešimai"
|
|||||||
|
|
||||||
#: ../js/ui/userMenu.js:639
|
#: ../js/ui/userMenu.js:639
|
||||||
msgid "Online Accounts"
|
msgid "Online Accounts"
|
||||||
msgstr "Interneto paskyros"
|
msgstr "Tinklo paskyros"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:643
|
#: ../js/ui/userMenu.js:643
|
||||||
msgid "System Settings"
|
msgid "System Settings"
|
||||||
@ -1709,7 +1706,7 @@ msgstr "Orakulė sako %s"
|
|||||||
|
|
||||||
#: ../js/ui/wanda.js:168
|
#: ../js/ui/wanda.js:168
|
||||||
msgid "Your favorite Easter Egg"
|
msgid "Your favorite Easter Egg"
|
||||||
msgstr "Jūsų mėgstamiausias Velykinis kiaušinis"
|
msgstr "Jūsų mėgstamiausias vėlykinis kiaušinis"
|
||||||
|
|
||||||
#: ../js/ui/windowAttentionHandler.js:19
|
#: ../js/ui/windowAttentionHandler.js:19
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -1718,7 +1715,7 @@ msgstr "„%s“ yra pasirengusi"
|
|||||||
|
|
||||||
#. translators:
|
#. translators:
|
||||||
#. * The number of sound outputs on a particular device
|
#. * The number of sound outputs on a particular device
|
||||||
#: ../src/gvc/gvc-mixer-control.c:1089
|
#: ../src/gvc/gvc-mixer-control.c:1100
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%u Output"
|
msgid "%u Output"
|
||||||
msgid_plural "%u Outputs"
|
msgid_plural "%u Outputs"
|
||||||
@ -1728,7 +1725,7 @@ msgstr[2] "%u išvestys"
|
|||||||
|
|
||||||
#. translators:
|
#. translators:
|
||||||
#. * The number of sound inputs on a particular device
|
#. * The number of sound inputs on a particular device
|
||||||
#: ../src/gvc/gvc-mixer-control.c:1099
|
#: ../src/gvc/gvc-mixer-control.c:1110
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%u Input"
|
msgid "%u Input"
|
||||||
msgid_plural "%u Inputs"
|
msgid_plural "%u Inputs"
|
||||||
@ -1736,15 +1733,15 @@ msgstr[0] "%u įvestis"
|
|||||||
msgstr[1] "%u įvestys"
|
msgstr[1] "%u įvestys"
|
||||||
msgstr[2] "%u įvestys"
|
msgstr[2] "%u įvestys"
|
||||||
|
|
||||||
#: ../src/gvc/gvc-mixer-control.c:1397
|
#: ../src/gvc/gvc-mixer-control.c:1408
|
||||||
msgid "System Sounds"
|
msgid "System Sounds"
|
||||||
msgstr "Sistemos garsai"
|
msgstr "Sistemos garsai"
|
||||||
|
|
||||||
#: ../src/main.c:256
|
#: ../src/main.c:255
|
||||||
msgid "Print version"
|
msgid "Print version"
|
||||||
msgstr "Išvesti versijos numerį"
|
msgstr "Išvesti versijos numerį"
|
||||||
|
|
||||||
#: ../src/main.c:262
|
#: ../src/main.c:261
|
||||||
msgid "Mode used by GDM for login screen"
|
msgid "Mode used by GDM for login screen"
|
||||||
msgstr "Veiksena, naudojama GDM prisijungimo ekrane"
|
msgstr "Veiksena, naudojama GDM prisijungimo ekrane"
|
||||||
|
|
||||||
@ -1777,7 +1774,7 @@ msgstr "Naudotojas užvėrė tapatybės patvirtinimo dialogą"
|
|||||||
#. * nautilus
|
#. * nautilus
|
||||||
#: ../src/shell-util.c:97
|
#: ../src/shell-util.c:97
|
||||||
msgid "Home"
|
msgid "Home"
|
||||||
msgstr "Namų aplankas"
|
msgstr "Namai"
|
||||||
|
|
||||||
#. Translators: this is the same string as the one found in
|
#. Translators: this is the same string as the one found in
|
||||||
#. * nautilus
|
#. * nautilus
|
||||||
|
4
po/mr.po
4
po/mr.po
@ -780,12 +780,12 @@ msgstr "उघडा"
|
|||||||
#| msgid "minute"
|
#| msgid "minute"
|
||||||
#| msgid_plural "minutes"
|
#| msgid_plural "minutes"
|
||||||
msgid "Unmute"
|
msgid "Unmute"
|
||||||
msgstr "बंद करणे अशक्य करा"
|
msgstr "मंद करणे अशक्य करा"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1217
|
#: ../js/ui/messageTray.js:1217
|
||||||
#| msgid "Mouse"
|
#| msgid "Mouse"
|
||||||
msgid "Mute"
|
msgid "Mute"
|
||||||
msgstr "बंद करा"
|
msgstr "मंद करा"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:2490
|
#: ../js/ui/messageTray.js:2490
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
|
157
po/nb.po
157
po/nb.po
@ -6,10 +6,10 @@
|
|||||||
# Torstein Adolf Winterseth <kvikende@fsfe.org>, 2010.
|
# Torstein Adolf Winterseth <kvikende@fsfe.org>, 2010.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell 3.3.x\n"
|
"Project-Id-Version: gnome-shell 3.5.x\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2012-04-11 12:50+0200\n"
|
"POT-Creation-Date: 2012-04-30 11:12+0200\n"
|
||||||
"PO-Revision-Date: 2012-04-11 12:50+0200\n"
|
"PO-Revision-Date: 2012-04-30 11:13+0200\n"
|
||||||
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
|
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
|
||||||
"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
|
"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
|
||||||
"Language: \n"
|
"Language: \n"
|
||||||
@ -132,34 +132,42 @@ msgid "Keybinding to open the application menu."
|
|||||||
msgstr "Tastaturbinding som åpner programmenyen."
|
msgstr "Tastaturbinding som åpner programmenyen."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:18
|
#: ../data/org.gnome.shell.gschema.xml.in.h:18
|
||||||
|
msgid "Keybinding to toggle the screen recorder"
|
||||||
|
msgstr "Tastaturbinding som slår av/på skjermopptak"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:19
|
||||||
|
msgid "Keybinding to start/stop the builtin screen recorder."
|
||||||
|
msgstr "Tastaturbinding som starter/stopper innebygget opptak av skjerm."
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.h:20
|
||||||
msgid "Which keyboard to use"
|
msgid "Which keyboard to use"
|
||||||
msgstr "Tastatur som skal brukes"
|
msgstr "Tastatur som skal brukes"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:19
|
#: ../data/org.gnome.shell.gschema.xml.in.h:21
|
||||||
msgid "The type of keyboard to use."
|
msgid "The type of keyboard to use."
|
||||||
msgstr "Type tastatur som skal brukes."
|
msgstr "Type tastatur som skal brukes."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:20
|
#: ../data/org.gnome.shell.gschema.xml.in.h:22
|
||||||
msgid "Show time with seconds"
|
msgid "Show time with seconds"
|
||||||
msgstr "Vis tid med sekunder"
|
msgstr "Vis tid med sekunder"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:21
|
#: ../data/org.gnome.shell.gschema.xml.in.h:23
|
||||||
msgid "If true, display seconds in time."
|
msgid "If true, display seconds in time."
|
||||||
msgstr "Viser sekunder i klokken hvis «true»."
|
msgstr "Viser sekunder i klokken hvis «true»."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:22
|
#: ../data/org.gnome.shell.gschema.xml.in.h:24
|
||||||
msgid "Show date in clock"
|
msgid "Show date in clock"
|
||||||
msgstr "Vis dato i klokken"
|
msgstr "Vis dato i klokken"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:23
|
#: ../data/org.gnome.shell.gschema.xml.in.h:25
|
||||||
msgid "If true, display date in the clock, in addition to time."
|
msgid "If true, display date in the clock, in addition to time."
|
||||||
msgstr "Viser dato i tillegg til tid i klokken hvis «true»."
|
msgstr "Viser dato i tillegg til tid i klokken hvis «true»."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:24
|
#: ../data/org.gnome.shell.gschema.xml.in.h:26
|
||||||
msgid "Framerate used for recording screencasts."
|
msgid "Framerate used for recording screencasts."
|
||||||
msgstr "Bildefrekvens i bruk ved lagring av skjermvideoer."
|
msgstr "Bildefrekvens i bruk ved lagring av skjermvideoer."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:25
|
#: ../data/org.gnome.shell.gschema.xml.in.h:27
|
||||||
msgid ""
|
msgid ""
|
||||||
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
||||||
"screencast recorder in frames-per-second."
|
"screencast recorder in frames-per-second."
|
||||||
@ -167,11 +175,11 @@ msgstr ""
|
|||||||
"Bildefrekvensen i den ferdige skjermvideoen tatt opp med GNOME Shells "
|
"Bildefrekvensen i den ferdige skjermvideoen tatt opp med GNOME Shells "
|
||||||
"skjermvideoopptaker i bilder per sekund."
|
"skjermvideoopptaker i bilder per sekund."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:26
|
#: ../data/org.gnome.shell.gschema.xml.in.h:28
|
||||||
msgid "The gstreamer pipeline used to encode the screencast"
|
msgid "The gstreamer pipeline used to encode the screencast"
|
||||||
msgstr "Gstreamer-kommandokø brukt til å kode skjermvideoen"
|
msgstr "Gstreamer-kommandokø brukt til å kode skjermvideoen"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:28
|
#: ../data/org.gnome.shell.gschema.xml.in.h:30
|
||||||
#, fuzzy, no-c-format
|
#, fuzzy, no-c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
||||||
@ -188,11 +196,11 @@ msgstr ""
|
|||||||
"Setter GStreamer-rør som brukes til å kode opptak. Den følger syntaksen som "
|
"Setter GStreamer-rør som brukes til å kode opptak. Den følger syntaksen som "
|
||||||
"brukes for gst-launch. Røret må ha en..."
|
"brukes for gst-launch. Røret må ha en..."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:29
|
#: ../data/org.gnome.shell.gschema.xml.in.h:31
|
||||||
msgid "File extension used for storing the screencast"
|
msgid "File extension used for storing the screencast"
|
||||||
msgstr "Filendelse i bruk ved lagring av skjermvideo"
|
msgstr "Filendelse i bruk ved lagring av skjermvideo"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.h:30
|
#: ../data/org.gnome.shell.gschema.xml.in.h:32
|
||||||
msgid ""
|
msgid ""
|
||||||
"The filename for recorded screencasts will be a unique filename based on the "
|
"The filename for recorded screencasts will be a unique filename based on the "
|
||||||
"current date, and use this extension. It should be changed when recording to "
|
"current date, and use this extension. It should be changed when recording to "
|
||||||
@ -499,7 +507,7 @@ msgstr "Frakoblet"
|
|||||||
msgid "CONTACTS"
|
msgid "CONTACTS"
|
||||||
msgstr "KONTAKTER"
|
msgstr "KONTAKTER"
|
||||||
|
|
||||||
#: ../js/ui/dash.js:229 ../js/ui/messageTray.js:1207
|
#: ../js/ui/dash.js:239 ../js/ui/messageTray.js:1207
|
||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Fjern"
|
msgstr "Fjern"
|
||||||
|
|
||||||
@ -663,7 +671,8 @@ msgstr "Last ned og installer «%s» fra extensions.gnome.org?"
|
|||||||
msgid "tray"
|
msgid "tray"
|
||||||
msgstr "varslingsområde"
|
msgstr "varslingsområde"
|
||||||
|
|
||||||
#: ../js/ui/keyboard.js:544 ../js/ui/status/power.js:203
|
#: ../js/ui/keyboard.js:544 ../js/ui/status/keyboard.js:44
|
||||||
|
#: ../js/ui/status/power.js:203
|
||||||
msgid "Keyboard"
|
msgid "Keyboard"
|
||||||
msgstr "Tastatur"
|
msgstr "Tastatur"
|
||||||
|
|
||||||
@ -675,56 +684,56 @@ msgstr "Passord:"
|
|||||||
msgid "Type again:"
|
msgid "Type again:"
|
||||||
msgstr "Skriv på nytt:"
|
msgstr "Skriv på nytt:"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:732
|
#: ../js/ui/lookingGlass.js:693
|
||||||
msgid "No extensions installed"
|
msgid "No extensions installed"
|
||||||
msgstr "Ingen utvidelser installert"
|
msgstr "Ingen utvidelser installert"
|
||||||
|
|
||||||
#. Translators: argument is an extension UUID.
|
#. Translators: argument is an extension UUID.
|
||||||
#: ../js/ui/lookingGlass.js:786
|
#: ../js/ui/lookingGlass.js:747
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s has not emitted any errors."
|
msgid "%s has not emitted any errors."
|
||||||
msgstr "%s har ikke avgitt noen feil."
|
msgstr "%s har ikke avgitt noen feil."
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:792
|
#: ../js/ui/lookingGlass.js:753
|
||||||
msgid "Hide Errors"
|
msgid "Hide Errors"
|
||||||
msgstr "Skjul feil"
|
msgstr "Skjul feil"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:796 ../js/ui/lookingGlass.js:847
|
#: ../js/ui/lookingGlass.js:757 ../js/ui/lookingGlass.js:808
|
||||||
msgid "Show Errors"
|
msgid "Show Errors"
|
||||||
msgstr "Vis feil"
|
msgstr "Vis feil"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:805
|
#: ../js/ui/lookingGlass.js:766
|
||||||
msgid "Enabled"
|
msgid "Enabled"
|
||||||
msgstr "Aktivert"
|
msgstr "Aktivert"
|
||||||
|
|
||||||
#. translators:
|
#. translators:
|
||||||
#. * The device has been disabled
|
#. * The device has been disabled
|
||||||
#: ../js/ui/lookingGlass.js:808 ../src/gvc/gvc-mixer-control.c:1082
|
#: ../js/ui/lookingGlass.js:769 ../src/gvc/gvc-mixer-control.c:1082
|
||||||
msgid "Disabled"
|
msgid "Disabled"
|
||||||
msgstr "Deaktivert"
|
msgstr "Deaktivert"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:810
|
#: ../js/ui/lookingGlass.js:771
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Feil"
|
msgstr "Feil"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:812
|
#: ../js/ui/lookingGlass.js:773
|
||||||
msgid "Out of date"
|
msgid "Out of date"
|
||||||
msgstr "Utdatert"
|
msgstr "Utdatert"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:814
|
#: ../js/ui/lookingGlass.js:775
|
||||||
msgid "Downloading"
|
msgid "Downloading"
|
||||||
msgstr "Laster ned"
|
msgstr "Laster ned"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:835
|
#: ../js/ui/lookingGlass.js:796
|
||||||
msgid "View Source"
|
msgid "View Source"
|
||||||
msgstr "Vis kildekode"
|
msgstr "Vis kildekode"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:841
|
#: ../js/ui/lookingGlass.js:802
|
||||||
msgid "Web Page"
|
msgid "Web Page"
|
||||||
msgstr "Nettside"
|
msgstr "Nettside"
|
||||||
|
|
||||||
#. Translators: this is a filename used for screencast recording
|
#. Translators: this is a filename used for screencast recording
|
||||||
#: ../js/ui/main.js:118
|
#: ../js/ui/main.js:120
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Screencast from %d %t"
|
msgid "Screencast from %d %t"
|
||||||
msgstr "Skjermvideo fra %d %t"
|
msgstr "Skjermvideo fra %d %t"
|
||||||
@ -904,7 +913,7 @@ msgstr "Beklager, det virket ikke. Vennligst prøv igjen."
|
|||||||
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
||||||
#. switches containing "◯" and "|"). Other values will
|
#. switches containing "◯" and "|"). Other values will
|
||||||
#. simply result in invisible toggle switches.
|
#. simply result in invisible toggle switches.
|
||||||
#: ../js/ui/popupMenu.js:724
|
#: ../js/ui/popupMenu.js:728
|
||||||
msgid "toggle-switch-us"
|
msgid "toggle-switch-us"
|
||||||
msgstr "toggle-switch-intl"
|
msgstr "toggle-switch-intl"
|
||||||
|
|
||||||
@ -916,7 +925,7 @@ msgstr "Oppgi en kommando:"
|
|||||||
msgid "Searching..."
|
msgid "Searching..."
|
||||||
msgstr "Søker …"
|
msgstr "Søker …"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:415
|
#: ../js/ui/searchDisplay.js:422
|
||||||
msgid "No matching results."
|
msgid "No matching results."
|
||||||
msgstr "Ingen treff."
|
msgstr "Ingen treff."
|
||||||
|
|
||||||
@ -1074,7 +1083,7 @@ msgstr "Alltid gi tilgang"
|
|||||||
msgid "Grant this time only"
|
msgid "Grant this time only"
|
||||||
msgstr "Gi tilgang kun denne ene gangen"
|
msgstr "Gi tilgang kun denne ene gangen"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1091
|
#: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1093
|
||||||
msgid "Reject"
|
msgid "Reject"
|
||||||
msgstr "Avvis"
|
msgstr "Avvis"
|
||||||
|
|
||||||
@ -1391,35 +1400,35 @@ msgstr "%s er opptatt."
|
|||||||
#. Translators: this is a time format string followed by a date.
|
#. Translators: this is a time format string followed by a date.
|
||||||
#. If applicable, replace %X with a strftime format valid for your
|
#. If applicable, replace %X with a strftime format valid for your
|
||||||
#. locale, without seconds.
|
#. locale, without seconds.
|
||||||
#: ../js/ui/telepathyClient.js:887
|
#: ../js/ui/telepathyClient.js:889
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sent at <b>%X</b> on <b>%A</b>"
|
msgid "Sent at <b>%X</b> on <b>%A</b>"
|
||||||
msgstr "Sendt <b>%X</b> på <b>%A</b>"
|
msgstr "Sendt <b>%X</b> på <b>%A</b>"
|
||||||
|
|
||||||
#. Translators: this is a time format in the style of "Wednesday, May 25",
|
#. Translators: this is a time format in the style of "Wednesday, May 25",
|
||||||
#. shown when you get a chat message in the same year.
|
#. shown when you get a chat message in the same year.
|
||||||
#: ../js/ui/telepathyClient.js:893
|
#: ../js/ui/telepathyClient.js:895
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
|
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
|
||||||
msgstr "Sendt <b>%A</b>, <b>%B %d</b>"
|
msgstr "Sendt <b>%A</b>, <b>%B %d</b>"
|
||||||
|
|
||||||
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
|
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
|
||||||
#. shown when you get a chat message in a different year.
|
#. shown when you get a chat message in a different year.
|
||||||
#: ../js/ui/telepathyClient.js:898
|
#: ../js/ui/telepathyClient.js:900
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
|
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
|
||||||
msgstr "Sendt <b>%A</b>, <b>%B %d</b>, %Y"
|
msgstr "Sendt <b>%A</b>, <b>%B %d</b>, %Y"
|
||||||
|
|
||||||
#. Translators: this is the other person changing their old IM name to their new
|
#. Translators: this is the other person changing their old IM name to their new
|
||||||
#. IM name.
|
#. IM name.
|
||||||
#: ../js/ui/telepathyClient.js:940
|
#: ../js/ui/telepathyClient.js:942
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is now known as %s"
|
msgid "%s is now known as %s"
|
||||||
msgstr "%s er nå kjent som %s"
|
msgstr "%s er nå kjent som %s"
|
||||||
|
|
||||||
#. translators: argument is a room name like
|
#. translators: argument is a room name like
|
||||||
#. * room@jabber.org for example.
|
#. * room@jabber.org for example.
|
||||||
#: ../js/ui/telepathyClient.js:1042
|
#: ../js/ui/telepathyClient.js:1044
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invitation to %s"
|
msgid "Invitation to %s"
|
||||||
msgstr "Invitasjon til %s"
|
msgstr "Invitasjon til %s"
|
||||||
@ -1427,35 +1436,35 @@ msgstr "Invitasjon til %s"
|
|||||||
#. translators: first argument is the name of a contact and the second
|
#. translators: first argument is the name of a contact and the second
|
||||||
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
||||||
#. * for example.
|
#. * for example.
|
||||||
#: ../js/ui/telepathyClient.js:1050
|
#: ../js/ui/telepathyClient.js:1052
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is inviting you to join %s"
|
msgid "%s is inviting you to join %s"
|
||||||
msgstr "%s inviterer deg til å bli med i %s"
|
msgstr "%s inviterer deg til å bli med i %s"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1052 ../js/ui/telepathyClient.js:1131
|
#: ../js/ui/telepathyClient.js:1054 ../js/ui/telepathyClient.js:1133
|
||||||
#: ../js/ui/telepathyClient.js:1229
|
#: ../js/ui/telepathyClient.js:1231
|
||||||
msgid "Decline"
|
msgid "Decline"
|
||||||
msgstr "Avslå"
|
msgstr "Avslå"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1053 ../js/ui/telepathyClient.js:1132
|
#: ../js/ui/telepathyClient.js:1055 ../js/ui/telepathyClient.js:1134
|
||||||
#: ../js/ui/telepathyClient.js:1230
|
#: ../js/ui/telepathyClient.js:1232
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "Godta"
|
msgstr "Godta"
|
||||||
|
|
||||||
#. translators: argument is a contact name like Alice for example.
|
#. translators: argument is a contact name like Alice for example.
|
||||||
#: ../js/ui/telepathyClient.js:1083
|
#: ../js/ui/telepathyClient.js:1085
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Video call from %s"
|
msgid "Video call from %s"
|
||||||
msgstr "Videosamtale fra %s"
|
msgstr "Videosamtale fra %s"
|
||||||
|
|
||||||
#. translators: argument is a contact name like Alice for example.
|
#. translators: argument is a contact name like Alice for example.
|
||||||
#: ../js/ui/telepathyClient.js:1086
|
#: ../js/ui/telepathyClient.js:1088
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Call from %s"
|
msgid "Call from %s"
|
||||||
msgstr "Samtale fra %s"
|
msgstr "Samtale fra %s"
|
||||||
|
|
||||||
#. translators: this is a button label (verb), not a noun
|
#. translators: this is a button label (verb), not a noun
|
||||||
#: ../js/ui/telepathyClient.js:1093
|
#: ../js/ui/telepathyClient.js:1095
|
||||||
msgid "Answer"
|
msgid "Answer"
|
||||||
msgstr "Svar"
|
msgstr "Svar"
|
||||||
|
|
||||||
@ -1464,110 +1473,110 @@ msgstr "Svar"
|
|||||||
#. * file name. The string will be something
|
#. * file name. The string will be something
|
||||||
#. * like: "Alice is sending you test.ogg"
|
#. * like: "Alice is sending you test.ogg"
|
||||||
#.
|
#.
|
||||||
#: ../js/ui/telepathyClient.js:1125
|
#: ../js/ui/telepathyClient.js:1127
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is sending you %s"
|
msgid "%s is sending you %s"
|
||||||
msgstr "%s sender deg %s"
|
msgstr "%s sender deg %s"
|
||||||
|
|
||||||
#. To translators: The parameter is the contact's alias
|
#. To translators: The parameter is the contact's alias
|
||||||
#: ../js/ui/telepathyClient.js:1194
|
#: ../js/ui/telepathyClient.js:1196
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s would like permission to see when you are online"
|
msgid "%s would like permission to see when you are online"
|
||||||
msgstr "%s vil ha rettigheter til å se når du er tilkoblet"
|
msgstr "%s vil ha rettigheter til å se når du er tilkoblet"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1287
|
#: ../js/ui/telepathyClient.js:1289
|
||||||
msgid "Network error"
|
msgid "Network error"
|
||||||
msgstr "Nettverksfeil"
|
msgstr "Nettverksfeil"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1289
|
#: ../js/ui/telepathyClient.js:1291
|
||||||
msgid "Authentication failed"
|
msgid "Authentication failed"
|
||||||
msgstr "Autentisering feilet"
|
msgstr "Autentisering feilet"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1291
|
#: ../js/ui/telepathyClient.js:1293
|
||||||
msgid "Encryption error"
|
msgid "Encryption error"
|
||||||
msgstr "Feil ved kryptering"
|
msgstr "Feil ved kryptering"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1293
|
#: ../js/ui/telepathyClient.js:1295
|
||||||
msgid "Certificate not provided"
|
msgid "Certificate not provided"
|
||||||
msgstr "Sertifikat ikke oppgitt"
|
msgstr "Sertifikat ikke oppgitt"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1295
|
#: ../js/ui/telepathyClient.js:1297
|
||||||
msgid "Certificate untrusted"
|
msgid "Certificate untrusted"
|
||||||
msgstr "Stoler ikke på sertifikatet"
|
msgstr "Stoler ikke på sertifikatet"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1297
|
#: ../js/ui/telepathyClient.js:1299
|
||||||
msgid "Certificate expired"
|
msgid "Certificate expired"
|
||||||
msgstr "Sertifikatet er utløpt"
|
msgstr "Sertifikatet er utløpt"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1299
|
#: ../js/ui/telepathyClient.js:1301
|
||||||
msgid "Certificate not activated"
|
msgid "Certificate not activated"
|
||||||
msgstr "Sertifikatet er ikke aktivert"
|
msgstr "Sertifikatet er ikke aktivert"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1301
|
#: ../js/ui/telepathyClient.js:1303
|
||||||
msgid "Certificate hostname mismatch"
|
msgid "Certificate hostname mismatch"
|
||||||
msgstr "Feil vertsnavn for sertifikat"
|
msgstr "Feil vertsnavn for sertifikat"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1303
|
#: ../js/ui/telepathyClient.js:1305
|
||||||
msgid "Certificate fingerprint mismatch"
|
msgid "Certificate fingerprint mismatch"
|
||||||
msgstr "Feil fingeravtrykk for sertifikat"
|
msgstr "Feil fingeravtrykk for sertifikat"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1305
|
#: ../js/ui/telepathyClient.js:1307
|
||||||
msgid "Certificate self-signed"
|
msgid "Certificate self-signed"
|
||||||
msgstr "Sertifikatet er selvsignert"
|
msgstr "Sertifikatet er selvsignert"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1307
|
#: ../js/ui/telepathyClient.js:1309
|
||||||
msgid "Status is set to offline"
|
msgid "Status is set to offline"
|
||||||
msgstr "Status er satt til frakoblet"
|
msgstr "Status er satt til frakoblet"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1309
|
#: ../js/ui/telepathyClient.js:1311
|
||||||
msgid "Encryption is not available"
|
msgid "Encryption is not available"
|
||||||
msgstr "Kryptering er ikke tilgjengelig"
|
msgstr "Kryptering er ikke tilgjengelig"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1311
|
#: ../js/ui/telepathyClient.js:1313
|
||||||
msgid "Certificate is invalid"
|
msgid "Certificate is invalid"
|
||||||
msgstr "Sertifikatet er ugyldig"
|
msgstr "Sertifikatet er ugyldig"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1313
|
#: ../js/ui/telepathyClient.js:1315
|
||||||
msgid "Connection has been refused"
|
msgid "Connection has been refused"
|
||||||
msgstr "Tilkobling ble nektet"
|
msgstr "Tilkobling ble nektet"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1315
|
#: ../js/ui/telepathyClient.js:1317
|
||||||
msgid "Connection can't be established"
|
msgid "Connection can't be established"
|
||||||
msgstr "Tilkobling kan ikke etableres"
|
msgstr "Tilkobling kan ikke etableres"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1317
|
#: ../js/ui/telepathyClient.js:1319
|
||||||
msgid "Connection has been lost"
|
msgid "Connection has been lost"
|
||||||
msgstr "Tilkobling tapt"
|
msgstr "Tilkobling tapt"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1319
|
#: ../js/ui/telepathyClient.js:1321
|
||||||
msgid "This account is already connected to the server"
|
msgid "This account is already connected to the server"
|
||||||
msgstr "Denne kontoen er allerede koblet til tjeneren"
|
msgstr "Denne kontoen er allerede koblet til tjeneren"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1321
|
#: ../js/ui/telepathyClient.js:1323
|
||||||
msgid ""
|
msgid ""
|
||||||
"Connection has been replaced by a new connection using the same resource"
|
"Connection has been replaced by a new connection using the same resource"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Tilkoblingen har blitt erstattet av en ny tilkobling som bruker samme ressurs"
|
"Tilkoblingen har blitt erstattet av en ny tilkobling som bruker samme ressurs"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1323
|
#: ../js/ui/telepathyClient.js:1325
|
||||||
msgid "The account already exists on the server"
|
msgid "The account already exists on the server"
|
||||||
msgstr "Kontoen eksisterer allerede på tjeneren"
|
msgstr "Kontoen eksisterer allerede på tjeneren"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1325
|
#: ../js/ui/telepathyClient.js:1327
|
||||||
msgid "Server is currently too busy to handle the connection"
|
msgid "Server is currently too busy to handle the connection"
|
||||||
msgstr "Tjener er for opptatt til å håndtere tilkoblingen"
|
msgstr "Tjener er for opptatt til å håndtere tilkoblingen"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1327
|
#: ../js/ui/telepathyClient.js:1329
|
||||||
msgid "Certificate has been revoked"
|
msgid "Certificate has been revoked"
|
||||||
msgstr "Sertifikatet er tilbaketrukket"
|
msgstr "Sertifikatet er tilbaketrukket"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1329
|
#: ../js/ui/telepathyClient.js:1331
|
||||||
msgid ""
|
msgid ""
|
||||||
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Sertifikatet bruker en usikker sifferalgoritme eller er krytografisk svakt"
|
"Sertifikatet bruker en usikker sifferalgoritme eller er krytografisk svakt"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1331
|
#: ../js/ui/telepathyClient.js:1333
|
||||||
msgid ""
|
msgid ""
|
||||||
"The length of the server certificate, or the depth of the server certificate "
|
"The length of the server certificate, or the depth of the server certificate "
|
||||||
"chain, exceed the limits imposed by the cryptography library"
|
"chain, exceed the limits imposed by the cryptography library"
|
||||||
@ -1575,26 +1584,26 @@ msgstr ""
|
|||||||
"Lengden eller dybden på tjenersertifikatet oversteg grensen som er satt i "
|
"Lengden eller dybden på tjenersertifikatet oversteg grensen som er satt i "
|
||||||
"kryptografibiblioteket"
|
"kryptografibiblioteket"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1333
|
#: ../js/ui/telepathyClient.js:1335
|
||||||
msgid "Internal error"
|
msgid "Internal error"
|
||||||
msgstr "Intern feil"
|
msgstr "Intern feil"
|
||||||
|
|
||||||
#. translators: argument is the account name, like
|
#. translators: argument is the account name, like
|
||||||
#. * name@jabber.org for example.
|
#. * name@jabber.org for example.
|
||||||
#: ../js/ui/telepathyClient.js:1343
|
#: ../js/ui/telepathyClient.js:1345
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Connection to %s failed"
|
msgid "Connection to %s failed"
|
||||||
msgstr "Tilkobling til %s feilet"
|
msgstr "Tilkobling til %s feilet"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1352
|
#: ../js/ui/telepathyClient.js:1354
|
||||||
msgid "Reconnect"
|
msgid "Reconnect"
|
||||||
msgstr "Koble til på nytt"
|
msgstr "Koble til på nytt"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1353
|
#: ../js/ui/telepathyClient.js:1355
|
||||||
msgid "Edit account"
|
msgid "Edit account"
|
||||||
msgstr "Rediger konto"
|
msgstr "Rediger konto"
|
||||||
|
|
||||||
#: ../js/ui/telepathyClient.js:1399
|
#: ../js/ui/telepathyClient.js:1401
|
||||||
msgid "Unknown reason"
|
msgid "Unknown reason"
|
||||||
msgstr "Ukjent årsak"
|
msgstr "Ukjent årsak"
|
||||||
|
|
||||||
|
649
po/sr@latin.po
649
po/sr@latin.po
File diff suppressed because it is too large
Load Diff
@ -27,8 +27,10 @@ CLEANFILES += $(service_DATA)
|
|||||||
|
|
||||||
CLEANFILES += $(gir_DATA) $(typelib_DATA)
|
CLEANFILES += $(gir_DATA) $(typelib_DATA)
|
||||||
|
|
||||||
bin_SCRIPTS += gnome-shell-extension-tool gnome-shell-extension-prefs
|
bin_SCRIPTS += gnome-shell-extension-tool gnome-shell-extension-prefs \
|
||||||
EXTRA_DIST += gnome-shell-extension-tool.in gnome-shell-extension-prefs.in
|
gnome-shell-perf-tool
|
||||||
|
EXTRA_DIST += gnome-shell-extension-tool.in gnome-shell-extension-prefs.in \
|
||||||
|
gnome-shell-perf-tool.in
|
||||||
bin_PROGRAMS = gnome-shell-real
|
bin_PROGRAMS = gnome-shell-real
|
||||||
|
|
||||||
if USE_JHBUILD_WRAPPER_SCRIPT
|
if USE_JHBUILD_WRAPPER_SCRIPT
|
||||||
@ -53,7 +55,6 @@ generated_script_substitutions = \
|
|||||||
-e "s|@libexecdir[@]|$(libexecdir)|g" \
|
-e "s|@libexecdir[@]|$(libexecdir)|g" \
|
||||||
-e "s|@libdir[@]|$(libdir)|g" \
|
-e "s|@libdir[@]|$(libdir)|g" \
|
||||||
-e "s|@pkglibdir[@]|$(pkglibdir)|g" \
|
-e "s|@pkglibdir[@]|$(pkglibdir)|g" \
|
||||||
-e "s|@JHBUILD_TYPELIBDIR[@]|$(JHBUILD_TYPELIBDIR)|g" \
|
|
||||||
-e "s|@pkgdatadir[@]|$(pkgdatadir)|g" \
|
-e "s|@pkgdatadir[@]|$(pkgdatadir)|g" \
|
||||||
-e "s|@PYTHON[@]|$(PYTHON)|g" \
|
-e "s|@PYTHON[@]|$(PYTHON)|g" \
|
||||||
-e "s|@VERSION[@]|$(VERSION)|g" \
|
-e "s|@VERSION[@]|$(VERSION)|g" \
|
||||||
@ -71,6 +72,9 @@ gnome-shell-extension-tool: gnome-shell-extension-tool.in Makefile
|
|||||||
gnome-shell-extension-prefs: gnome-shell-extension-prefs.in Makefile
|
gnome-shell-extension-prefs: gnome-shell-extension-prefs.in Makefile
|
||||||
$(AM_V_GEN) sed $(generated_script_substitutions) $< > $@.tmp && mv $@.tmp $@ && chmod a+x $@
|
$(AM_V_GEN) sed $(generated_script_substitutions) $< > $@.tmp && mv $@.tmp $@ && chmod a+x $@
|
||||||
|
|
||||||
|
gnome-shell-perf-tool: gnome-shell-perf-tool.in Makefile
|
||||||
|
$(AM_V_GEN) sed $(generated_script_substitutions) $< > $@.tmp && mv $@.tmp $@ && chmod a+x $@
|
||||||
|
|
||||||
CLEANFILES += gnome-shell $(bin_SCRIPTS)
|
CLEANFILES += gnome-shell $(bin_SCRIPTS)
|
||||||
|
|
||||||
include Makefile-st.am
|
include Makefile-st.am
|
||||||
@ -187,7 +191,7 @@ libgnome_shell_la_gir_sources = \
|
|||||||
gnome_shell_real_SOURCES = \
|
gnome_shell_real_SOURCES = \
|
||||||
main.c
|
main.c
|
||||||
gnome_shell_real_CPPFLAGS = $(gnome_shell_cflags)
|
gnome_shell_real_CPPFLAGS = $(gnome_shell_cflags)
|
||||||
gnome_shell_real_LDADD = libgnome-shell.la libgnome-shell-js.la $(libgnome_shell_la_LIBADD)
|
gnome_shell_real_LDADD = libgnome-shell.la $(libgnome_shell_la_LIBADD)
|
||||||
gnome_shell_real_DEPENDENCIES = libgnome-shell.la
|
gnome_shell_real_DEPENDENCIES = libgnome-shell.la
|
||||||
|
|
||||||
EXTRA_DIST += test-gapplication.js
|
EXTRA_DIST += test-gapplication.js
|
||||||
|
@ -94,8 +94,20 @@ static gchar **
|
|||||||
g_action_muxer_list_actions (GActionGroup *action_group)
|
g_action_muxer_list_actions (GActionGroup *action_group)
|
||||||
{
|
{
|
||||||
GActionMuxer *muxer = G_ACTION_MUXER (action_group);
|
GActionMuxer *muxer = G_ACTION_MUXER (action_group);
|
||||||
|
GHashTableIter iter;
|
||||||
|
gchar *key;
|
||||||
|
gchar **keys;
|
||||||
|
gsize i;
|
||||||
|
|
||||||
return (gchar **) muxer->groups;
|
keys = g_new (gchar *, g_hash_table_size (muxer->actions) + 1);
|
||||||
|
|
||||||
|
i = 0;
|
||||||
|
g_hash_table_iter_init (&iter, muxer->actions);
|
||||||
|
while (g_hash_table_iter_next (&iter, (gpointer *) &key, NULL))
|
||||||
|
keys[i++] = g_strdup (key);
|
||||||
|
keys[i] = NULL;
|
||||||
|
|
||||||
|
return keys;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Group *
|
static Group *
|
||||||
|
@ -1,30 +1,13 @@
|
|||||||
#!@PYTHON@
|
#!@PYTHON@
|
||||||
# -*- mode: Python; indent-tabs-mode: nil; -*-
|
# -*- mode: Python; indent-tabs-mode: nil; -*-
|
||||||
|
|
||||||
import atexit
|
|
||||||
import datetime
|
|
||||||
import dbus
|
|
||||||
from dbus.mainloop.glib import DBusGMainLoop
|
|
||||||
import gobject
|
|
||||||
try:
|
|
||||||
import json
|
|
||||||
except ImportError:
|
|
||||||
try:
|
|
||||||
import simplejson as json
|
|
||||||
except ImportError:
|
|
||||||
json = None
|
|
||||||
import optparse
|
import optparse
|
||||||
import os
|
import os
|
||||||
import random
|
|
||||||
import re
|
import re
|
||||||
import shutil
|
|
||||||
import signal
|
import signal
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
import tempfile
|
|
||||||
import termios
|
import termios
|
||||||
import time
|
|
||||||
import errno
|
|
||||||
|
|
||||||
def show_version(option, opt_str, value, parser):
|
def show_version(option, opt_str, value, parser):
|
||||||
print "GNOME Shell @VERSION@"
|
print "GNOME Shell @VERSION@"
|
||||||
@ -79,168 +62,24 @@ def get_running_session_environs():
|
|||||||
result[key] = environs[key]
|
result[key] = environs[key]
|
||||||
return result
|
return result
|
||||||
|
|
||||||
_bus = None
|
def start_shell():
|
||||||
_bus_iface = None
|
|
||||||
_name_owner_changed_hook = None
|
|
||||||
|
|
||||||
def on_name_owner_changed(name, prev_owner, new_owner):
|
|
||||||
if _name_owner_changed_hook:
|
|
||||||
_name_owner_changed_hook(name, prev_owner, new_owner)
|
|
||||||
|
|
||||||
def get_bus():
|
|
||||||
global _bus
|
|
||||||
if _bus is None:
|
|
||||||
dbus_loop = DBusGMainLoop()
|
|
||||||
_bus = dbus.SessionBus(mainloop=dbus_loop)
|
|
||||||
return _bus
|
|
||||||
|
|
||||||
def get_bus_iface():
|
|
||||||
global _bus_iface
|
|
||||||
if _bus_iface is None:
|
|
||||||
bus = get_bus()
|
|
||||||
bus_proxy = bus.get_object('org.freedesktop.DBus', '/org/freedesktop/DBus')
|
|
||||||
_bus_iface = dbus.Interface(bus_proxy, 'org.freedesktop.DBus')
|
|
||||||
_bus_iface.connect_to_signal('NameOwnerChanged', on_name_owner_changed)
|
|
||||||
return _bus_iface
|
|
||||||
|
|
||||||
def wait_for_dbus_name(wait_name):
|
|
||||||
global _name_owner_changed_hook
|
|
||||||
|
|
||||||
bus_iface = get_bus_iface()
|
|
||||||
loop = gobject.MainLoop()
|
|
||||||
|
|
||||||
def on_name_owner_changed(name, prev_owner, new_owner):
|
|
||||||
if not (name == wait_name and new_owner != ''):
|
|
||||||
return
|
|
||||||
loop.quit()
|
|
||||||
return
|
|
||||||
_name_owner_changed_hook = on_name_owner_changed
|
|
||||||
|
|
||||||
def on_timeout():
|
|
||||||
print "\nFailed to start %s: timed out" % (wait_name,)
|
|
||||||
sys.exit(1)
|
|
||||||
gobject.timeout_add_seconds(7, on_timeout)
|
|
||||||
|
|
||||||
loop.run()
|
|
||||||
_name_owner_changed_hook = None
|
|
||||||
|
|
||||||
def start_dconf_await_service():
|
|
||||||
DCONF_NAME = 'ca.desrt.dconf'
|
|
||||||
|
|
||||||
bus = get_bus()
|
|
||||||
get_bus_iface() # connect to NameOwnerChanged signal
|
|
||||||
|
|
||||||
# See if the service is already running or normal D-Bus activation works
|
|
||||||
need_manual_activate = False
|
|
||||||
try:
|
|
||||||
dconf_proxy = bus.get_object(DCONF_NAME, '/')
|
|
||||||
dconf_proxy.Ping(dbus_interface='org.freedesktop.DBus.Peer')
|
|
||||||
except dbus.exceptions.DBusException, e:
|
|
||||||
if e.get_dbus_name() == 'org.freedesktop.DBus.Error.ServiceUnknown':
|
|
||||||
need_manual_activate = True
|
|
||||||
else:
|
|
||||||
raise e
|
|
||||||
|
|
||||||
if not need_manual_activate:
|
|
||||||
return
|
|
||||||
|
|
||||||
# At this point, it looks like we just have a jhbuild install
|
|
||||||
# of dconf, not known to the session dbus-daemon, so we start
|
|
||||||
# it manually and wait for it to join the bus
|
|
||||||
|
|
||||||
print "Starting dconf-service... ",
|
|
||||||
sys.stdout.flush()
|
|
||||||
|
|
||||||
# dconf is linked without libtool, so unlike other GNOME modules,
|
|
||||||
# won't have an embedded rpath for its library directory.
|
|
||||||
env = dict(os.environ)
|
|
||||||
if 'LD_LIBRARY_PATH' in env and env['LD_LIBRARY_PATH']:
|
|
||||||
ld_library_path = '@libdir@:' + env['LD_LIBRARY_PATH']
|
|
||||||
else:
|
|
||||||
ld_library_path = '@libdir@'
|
|
||||||
env['LD_LIBRARY_PATH'] = ld_library_path
|
|
||||||
|
|
||||||
dconf_path = os.path.join('@libexecdir@', 'dconf-service')
|
|
||||||
try:
|
|
||||||
subprocess.Popen([dconf_path, '--keep-alive'], env=env)
|
|
||||||
except OSError, e:
|
|
||||||
print "\nFailed to start %s: %s" % (dconf_path, e)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
wait_for_dbus_name (DCONF_NAME)
|
|
||||||
|
|
||||||
PERF_HELPER_NAME = "org.gnome.Shell.PerfHelper"
|
|
||||||
PERF_HELPER_IFACE = "org.gnome.Shell.PerfHelper"
|
|
||||||
PERF_HELPER_PATH = "/org/gnome/Shell/PerfHelper"
|
|
||||||
|
|
||||||
def start_perf_helper():
|
|
||||||
get_bus_iface() # connect to NameOwnerChanged signal
|
|
||||||
|
|
||||||
self_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
|
self_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
|
||||||
running_from_source_tree = os.path.exists(os.path.join(self_dir, 'gnome-shell-jhbuild.in'))
|
running_from_source_tree = os.path.exists(os.path.join(self_dir, 'gnome-shell-jhbuild.in'))
|
||||||
|
|
||||||
if running_from_source_tree:
|
|
||||||
perf_helper_path = os.path.join(self_dir, "gnome-shell-perf-helper")
|
|
||||||
else:
|
|
||||||
perf_helper_path = "@libexecdir@/gnome-shell-perf-helper"
|
|
||||||
|
|
||||||
subprocess.Popen([perf_helper_path])
|
|
||||||
wait_for_dbus_name (PERF_HELPER_NAME)
|
|
||||||
|
|
||||||
def stop_perf_helper():
|
|
||||||
bus = get_bus()
|
|
||||||
proxy = bus.get_object(PERF_HELPER_NAME, PERF_HELPER_PATH)
|
|
||||||
proxy.Exit(dbus_interface=PERF_HELPER_IFACE)
|
|
||||||
|
|
||||||
def start_shell(perf_output=None):
|
|
||||||
self_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
|
|
||||||
if os.path.exists(os.path.join(self_dir, 'gnome-shell-jhbuild.in')):
|
|
||||||
running_from_source_tree = True
|
|
||||||
top_dir = os.path.dirname(self_dir)
|
|
||||||
typelib_dir = '@JHBUILD_TYPELIBDIR@:' + os.path.join(top_dir, "src")
|
|
||||||
js_dir = os.path.join(top_dir, "js")
|
|
||||||
data_dir = os.path.join(top_dir, "data")
|
|
||||||
else:
|
|
||||||
running_from_source_tree = False
|
|
||||||
js_dir = os.path.join('@pkgdatadir@', 'js')
|
|
||||||
typelib_dir = '@JHBUILD_TYPELIBDIR@'
|
|
||||||
|
|
||||||
if os.environ.has_key('GI_TYPELIB_PATH'):
|
|
||||||
typelib_dir = typelib_dir + ":" + os.environ.get('GI_TYPELIB_PATH')
|
|
||||||
|
|
||||||
# Set up environment
|
# Set up environment
|
||||||
env = dict(os.environ)
|
env = dict(os.environ)
|
||||||
# TODO: Fix this, since nothing prevents it from propagating to child
|
|
||||||
# processes. Why is it even here?
|
|
||||||
env.update({'GNOME_DISABLE_CRASH_DIALOG' : '1'})
|
|
||||||
# This stuff should really should only happen when running
|
|
||||||
# uninstalled, i.e. it should be in the conditional
|
|
||||||
# below. Otherwise it's just a bad reimplementation of "jhbuild
|
|
||||||
# run". See bug #642084
|
|
||||||
env.update({'GNOME_SHELL_JS' : js_dir,
|
|
||||||
'PATH' : '@bindir@:' + os.environ.get('PATH', ''),
|
|
||||||
'GI_TYPELIB_PATH' : typelib_dir,
|
|
||||||
'XDG_CONFIG_DIRS' : '@sysconfdir@/xdg:' + (os.environ.get('XDG_CONFIG_DIRS') or '/etc/xdg'),
|
|
||||||
'XDG_DATA_DIRS' : '@datadir@:' + (os.environ.get('XDG_DATA_DIRS') or '/usr/local/share:/usr/share')})
|
|
||||||
if running_from_source_tree:
|
if running_from_source_tree:
|
||||||
env.update({'GNOME_SHELL_BINDIR' : self_dir,
|
top_dir = os.path.dirname(self_dir)
|
||||||
'GNOME_SHELL_DATADIR' : data_dir,
|
|
||||||
'GSETTINGS_SCHEMA_DIR' : data_dir })
|
|
||||||
else:
|
|
||||||
# This is just broken to set in the installed case; see bug #642084
|
|
||||||
env.update({'GSETTINGS_SCHEMA_DIR' : os.path.join('@datadir@', 'glib-2.0', 'schemas')})
|
|
||||||
|
|
||||||
# Also plain broken to set in the normal installed case
|
typelib_dir = os.path.join(top_dir, "src")
|
||||||
jhbuild_gconf_source = os.path.join('@sysconfdir@', 'gconf/2/path.jhbuild')
|
if 'GI_TYPELIB_PATH' in os.environ:
|
||||||
if os.path.exists(jhbuild_gconf_source):
|
typelib_dir += ':%s' % (os.environ['GI_TYPELIB_PATH'],)
|
||||||
env['GCONF_DEFAULT_SOURCE_PATH'] = jhbuild_gconf_source
|
|
||||||
|
|
||||||
if options.perf is not None:
|
env.update({'GNOME_SHELL_JS' : os.path.join(top_dir, "js"),
|
||||||
env['SHELL_PERF_MODULE'] = options.perf
|
'GNOME_SHELL_BINDIR' : self_dir,
|
||||||
env['MUTTER_WM_CLASS_FILTER'] = 'Gnome-shell-perf-helper'
|
'GI_TYPELIB_PATH' : typelib_dir,
|
||||||
|
'GNOME_SHELL_DATADIR' : os.path.join(top_dir, "data"),
|
||||||
if perf_output is not None:
|
'GSETTINGS_SCHEMA_DIR' : os.path.join(top_dir, "data") })
|
||||||
env['SHELL_PERF_OUTPUT'] = perf_output
|
|
||||||
|
|
||||||
args = []
|
args = []
|
||||||
if options.debug:
|
if options.debug:
|
||||||
@ -256,22 +95,7 @@ def start_shell(perf_output=None):
|
|||||||
args.append('--sync')
|
args.append('--sync')
|
||||||
return subprocess.Popen(args, env=env)
|
return subprocess.Popen(args, env=env)
|
||||||
|
|
||||||
def _killall(processname):
|
def run_shell():
|
||||||
subprocess.call(['pkill', '-u', '%d' % (os.getuid(), ),
|
|
||||||
'-f', r'^([^ ]*/)?' + re.escape(processname) + '($| )'])
|
|
||||||
|
|
||||||
def ensure_desktop_infrastructure_state():
|
|
||||||
# This is a collection of random hacks necessary to make sure
|
|
||||||
# that we can run in jhbuild scenarios or when dynamically
|
|
||||||
# replacing GNOME 2.
|
|
||||||
|
|
||||||
start_dconf_await_service()
|
|
||||||
|
|
||||||
# We need to terminate notification-daemon
|
|
||||||
_killall('notification-daemon')
|
|
||||||
_killall('notify-osd')
|
|
||||||
|
|
||||||
def run_shell(perf_output=None):
|
|
||||||
if options.debug:
|
if options.debug:
|
||||||
# Record initial terminal state so we can reset it to that
|
# Record initial terminal state so we can reset it to that
|
||||||
# later, in case we kill gdb at a bad time
|
# later, in case we kill gdb at a bad time
|
||||||
@ -282,8 +106,9 @@ def run_shell(perf_output=None):
|
|||||||
if options.verbose:
|
if options.verbose:
|
||||||
print "Starting shell"
|
print "Starting shell"
|
||||||
|
|
||||||
|
shell = None
|
||||||
try:
|
try:
|
||||||
shell = start_shell(perf_output=perf_output)
|
shell = start_shell()
|
||||||
|
|
||||||
# Wait for shell to exit
|
# Wait for shell to exit
|
||||||
if options.verbose:
|
if options.verbose:
|
||||||
@ -317,248 +142,6 @@ def run_shell(perf_output=None):
|
|||||||
|
|
||||||
return normal_exit
|
return normal_exit
|
||||||
|
|
||||||
def upload_performance_report(report_text):
|
|
||||||
# Local imports to avoid impacting gnome-shell startup time
|
|
||||||
import base64
|
|
||||||
from ConfigParser import RawConfigParser
|
|
||||||
import hashlib
|
|
||||||
import hmac
|
|
||||||
import httplib
|
|
||||||
import urlparse
|
|
||||||
import urllib
|
|
||||||
|
|
||||||
try:
|
|
||||||
config_home = os.environ['XDG_CONFIG_HOME']
|
|
||||||
except KeyError:
|
|
||||||
config_home = None
|
|
||||||
|
|
||||||
if not config_home:
|
|
||||||
config_home = os.path.expanduser("~/.config")
|
|
||||||
|
|
||||||
config_file = os.path.join(config_home, "gnome-shell/perf.ini")
|
|
||||||
|
|
||||||
try:
|
|
||||||
config = RawConfigParser()
|
|
||||||
f = open(config_file)
|
|
||||||
config.readfp(f)
|
|
||||||
f.close()
|
|
||||||
|
|
||||||
base_url = config.get('upload', 'url')
|
|
||||||
system_name = config.get('upload', 'name')
|
|
||||||
secret_key = config.get('upload', 'key')
|
|
||||||
except Exception, e:
|
|
||||||
print "Can't read upload configuration from %s: %s" % (config_file, str(e))
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
# Determine host, port and upload URL from provided data, we're
|
|
||||||
# a bit extra-careful about normalization since the URL is part
|
|
||||||
# of the signature.
|
|
||||||
|
|
||||||
split = urlparse.urlsplit(base_url)
|
|
||||||
scheme = split[0].lower()
|
|
||||||
netloc = split[1]
|
|
||||||
base_path = split[2]
|
|
||||||
|
|
||||||
m = re.match(r'^(.*?)(?::(\d+))?$', netloc)
|
|
||||||
if m.group(2):
|
|
||||||
host, port = m.group(1), int(m.group(2))
|
|
||||||
else:
|
|
||||||
host, port = m.group(1), None
|
|
||||||
|
|
||||||
if scheme != "http":
|
|
||||||
print "'%s' is not a HTTP URL" % base_url
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
if port is None:
|
|
||||||
port = 80
|
|
||||||
|
|
||||||
if base_path.endswith('/'):
|
|
||||||
base_path = base_path[:-1]
|
|
||||||
|
|
||||||
if port == 80:
|
|
||||||
normalized_base = "%s://%s%s" % (scheme, host, base_path)
|
|
||||||
else:
|
|
||||||
normalized_base = "%s://%s:%d%s" % (scheme, host, port, base_path)
|
|
||||||
|
|
||||||
upload_url = normalized_base + '/system/%s/upload' % system_name
|
|
||||||
upload_path = urlparse.urlsplit(upload_url)[2] # path portion
|
|
||||||
|
|
||||||
# Create signature based on upload URL and the report data
|
|
||||||
|
|
||||||
signature_data = 'POST&' + upload_url + "&&"
|
|
||||||
h = hmac.new(secret_key, digestmod=hashlib.sha1)
|
|
||||||
h.update(signature_data)
|
|
||||||
h.update(report_text)
|
|
||||||
signature = urllib.quote(base64.b64encode(h.digest()), "~")
|
|
||||||
|
|
||||||
headers = {
|
|
||||||
'User-Agent': 'gnome-shell',
|
|
||||||
'Content-Type': 'application/json',
|
|
||||||
'X-Shell-Signature': 'HMAC-SHA1 ' + signature
|
|
||||||
};
|
|
||||||
|
|
||||||
connection = httplib.HTTPConnection(host, port)
|
|
||||||
connection.request('POST', upload_path, report_text, headers)
|
|
||||||
response = connection.getresponse()
|
|
||||||
|
|
||||||
if response.status == 200:
|
|
||||||
print "Performance report upload succeeded"
|
|
||||||
else:
|
|
||||||
print "Performance report upload failed with status %d" % response.status
|
|
||||||
print response.read()
|
|
||||||
|
|
||||||
def run_performance_test():
|
|
||||||
iters = options.perf_iters
|
|
||||||
if options.perf_warmup:
|
|
||||||
iters += 1
|
|
||||||
|
|
||||||
logs = []
|
|
||||||
metric_summaries = {}
|
|
||||||
|
|
||||||
start_perf_helper()
|
|
||||||
|
|
||||||
for i in xrange(0, iters):
|
|
||||||
# We create an empty temporary file that the shell will overwrite
|
|
||||||
# with the contents.
|
|
||||||
handle, output_file = tempfile.mkstemp(".json", "gnome-shell-perf.")
|
|
||||||
os.close(handle)
|
|
||||||
|
|
||||||
# Run the performance test and collect the output as JSON
|
|
||||||
normal_exit = False
|
|
||||||
try:
|
|
||||||
normal_exit = run_shell(perf_output=output_file)
|
|
||||||
except:
|
|
||||||
stop_perf_helper()
|
|
||||||
raise
|
|
||||||
finally:
|
|
||||||
if not normal_exit:
|
|
||||||
os.remove(output_file)
|
|
||||||
|
|
||||||
if not normal_exit:
|
|
||||||
stop_perf_helper()
|
|
||||||
return False
|
|
||||||
|
|
||||||
try:
|
|
||||||
f = open(output_file)
|
|
||||||
output = json.load(f)
|
|
||||||
f.close()
|
|
||||||
except:
|
|
||||||
stop_perf_helper()
|
|
||||||
raise
|
|
||||||
finally:
|
|
||||||
os.remove(output_file)
|
|
||||||
|
|
||||||
# Grab the event definitions and monitor layout the first time around
|
|
||||||
if i == 0:
|
|
||||||
events = output['events']
|
|
||||||
monitors = output['monitors']
|
|
||||||
|
|
||||||
if options.perf_warmup and i == 0:
|
|
||||||
continue
|
|
||||||
|
|
||||||
for metric in output['metrics']:
|
|
||||||
name = metric['name']
|
|
||||||
if not name in metric_summaries:
|
|
||||||
summary = {}
|
|
||||||
summary['description'] = metric['description']
|
|
||||||
summary['units'] = metric['units']
|
|
||||||
summary['values'] = []
|
|
||||||
metric_summaries[name] = summary
|
|
||||||
else:
|
|
||||||
summary = metric_summaries[name]
|
|
||||||
|
|
||||||
summary['values'].append(metric['value'])
|
|
||||||
|
|
||||||
logs.append(output['log'])
|
|
||||||
|
|
||||||
stop_perf_helper()
|
|
||||||
|
|
||||||
if options.perf_output or options.perf_upload:
|
|
||||||
# Write a complete report, formatted as JSON. The Javascript/C code that
|
|
||||||
# generates the individual reports we are summarizing here is very careful
|
|
||||||
# to format them nicely, but we just dump out a compressed no-whitespace
|
|
||||||
# version here for simplicity. Using json.dump(indent=0) doesn't real
|
|
||||||
# improve the readability of the output much.
|
|
||||||
report = {
|
|
||||||
'date': datetime.datetime.utcnow().isoformat() + 'Z',
|
|
||||||
'events': events,
|
|
||||||
'monitors': monitors,
|
|
||||||
'metrics': metric_summaries,
|
|
||||||
'logs': logs
|
|
||||||
}
|
|
||||||
|
|
||||||
# Add the Git revision if available
|
|
||||||
self_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
|
|
||||||
if os.path.exists(os.path.join(self_dir, 'gnome-shell-jhbuild.in')):
|
|
||||||
top_dir = os.path.dirname(self_dir)
|
|
||||||
git_dir = os.path.join(top_dir, '.git')
|
|
||||||
if os.path.exists(git_dir):
|
|
||||||
env = dict(os.environ)
|
|
||||||
env['GIT_DIR'] = git_dir
|
|
||||||
revision = subprocess.Popen(['git', 'rev-parse', 'HEAD'],
|
|
||||||
env=env,
|
|
||||||
stdout=subprocess.PIPE).communicate()[0].strip()
|
|
||||||
report['revision'] = revision
|
|
||||||
|
|
||||||
if options.perf_output:
|
|
||||||
f = open(options.perf_output, 'w')
|
|
||||||
json.dump(report, f)
|
|
||||||
f.close()
|
|
||||||
|
|
||||||
if options.perf_upload:
|
|
||||||
upload_performance_report(json.dumps(report))
|
|
||||||
else:
|
|
||||||
# Write a human readable summary
|
|
||||||
print '------------------------------------------------------------';
|
|
||||||
for metric in sorted(metric_summaries.keys()):
|
|
||||||
summary = metric_summaries[metric]
|
|
||||||
print "#", summary['description']
|
|
||||||
print metric, ", ".join((str(x) for x in summary['values']))
|
|
||||||
print '------------------------------------------------------------';
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
def restore_gnome():
|
|
||||||
# Do imports lazily to save time and memory
|
|
||||||
import gio
|
|
||||||
import gconf
|
|
||||||
|
|
||||||
# We don't want to start the new gnome-panel in the current
|
|
||||||
# directory; $HOME is better for stuff launched from it
|
|
||||||
os.chdir(os.path.expanduser("~"))
|
|
||||||
|
|
||||||
def launch_component(gconf_path):
|
|
||||||
client = gconf.client_get_default()
|
|
||||||
component = client.get_string(gconf_path)
|
|
||||||
|
|
||||||
if component == None or component == "":
|
|
||||||
return False
|
|
||||||
|
|
||||||
# See gnome-session/gsm-util.c:gsm_util_find_desktop_file_for_app_name()
|
|
||||||
# The one difference is that we don't search the autostart directories,
|
|
||||||
# and just search normal application search path. (Gio doesnt' know
|
|
||||||
# how to search the autostart dirs, so we'd have to do that ourselves.)
|
|
||||||
appinfo = None
|
|
||||||
try:
|
|
||||||
appinfo = gio.unix.DesktopAppInfo(component + ".desktop")
|
|
||||||
except:
|
|
||||||
try:
|
|
||||||
appinfo = gio.unix.DesktopAppInfo("gnome-" + component + ".desktop")
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
if appinfo:
|
|
||||||
appinfo.launch()
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
# GNOME2 fallback
|
|
||||||
wm = launch_component("/desktop/gnome/session/required_components/windowmanager")
|
|
||||||
panel = launch_component("/desktop/gnome/session/required_components/panel")
|
|
||||||
|
|
||||||
if not wm and not panel: # Probably GNOME3
|
|
||||||
subprocess.Popen(['gnome-shell'])
|
|
||||||
|
|
||||||
# Main program
|
# Main program
|
||||||
|
|
||||||
parser = optparse.OptionParser()
|
parser = optparse.OptionParser()
|
||||||
@ -570,17 +153,6 @@ parser.add_option("", "--debug-command", metavar="COMMAND",
|
|||||||
help="Command to use for debugging (defaults to 'gdb --args')")
|
help="Command to use for debugging (defaults to 'gdb --args')")
|
||||||
parser.add_option("-v", "--verbose", action="store_true")
|
parser.add_option("-v", "--verbose", action="store_true")
|
||||||
parser.add_option("", "--sync", action="store_true")
|
parser.add_option("", "--sync", action="store_true")
|
||||||
parser.add_option("", "--perf", metavar="PERF_MODULE",
|
|
||||||
help="Specify the name of a performance module to run")
|
|
||||||
parser.add_option("", "--perf-iters", type="int", metavar="ITERS",
|
|
||||||
help="Numbers of iterations of performance module to run",
|
|
||||||
default=1)
|
|
||||||
parser.add_option("", "--perf-warmup", action="store_true",
|
|
||||||
help="Run a dry run before performance tests")
|
|
||||||
parser.add_option("", "--perf-output", metavar="OUTPUT_FILE",
|
|
||||||
help="Output file to write performance report")
|
|
||||||
parser.add_option("", "--perf-upload", action="store_true",
|
|
||||||
help="Upload performance report to server")
|
|
||||||
parser.add_option("", "--version", action="callback", callback=show_version,
|
parser.add_option("", "--version", action="callback", callback=show_version,
|
||||||
help="Display version and exit")
|
help="Display version and exit")
|
||||||
|
|
||||||
@ -590,10 +162,6 @@ if args:
|
|||||||
parser.print_usage()
|
parser.print_usage()
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
if options.perf and json is None:
|
|
||||||
print 'The Python simplejson module is required for performance tests'
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
# Handle ssh logins
|
# Handle ssh logins
|
||||||
if 'DISPLAY' not in os.environ:
|
if 'DISPLAY' not in os.environ:
|
||||||
running_env = get_running_session_environs()
|
running_env = get_running_session_environs()
|
||||||
@ -604,21 +172,7 @@ if options.debug_command:
|
|||||||
elif options.debug:
|
elif options.debug:
|
||||||
options.debug_command = "gdb --args"
|
options.debug_command = "gdb --args"
|
||||||
|
|
||||||
# We only respawn the previous environment on abnormal exit;
|
normal_exit = run_shell()
|
||||||
# for a clean exit, we assume that gnome-shell was replaced with
|
|
||||||
# something else.
|
|
||||||
normal_exit = False
|
|
||||||
|
|
||||||
try:
|
|
||||||
if options.perf:
|
|
||||||
normal_exit = run_performance_test()
|
|
||||||
else:
|
|
||||||
ensure_desktop_infrastructure_state()
|
|
||||||
normal_exit = run_shell()
|
|
||||||
finally:
|
|
||||||
if options.replace and (options.perf or not normal_exit):
|
|
||||||
restore_gnome()
|
|
||||||
|
|
||||||
if normal_exit:
|
if normal_exit:
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
else:
|
else:
|
||||||
|
310
src/gnome-shell-perf-tool.in
Normal file
310
src/gnome-shell-perf-tool.in
Normal file
@ -0,0 +1,310 @@
|
|||||||
|
#!@PYTHON@
|
||||||
|
# -*- mode: Python; indent-tabs-mode: nil; -*-
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
from gi.repository import GLib, GObject, Gio
|
||||||
|
try:
|
||||||
|
import json
|
||||||
|
except ImportError:
|
||||||
|
import simplejson as json
|
||||||
|
import optparse
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import tempfile
|
||||||
|
import base64
|
||||||
|
from ConfigParser import RawConfigParser
|
||||||
|
import hashlib
|
||||||
|
import hmac
|
||||||
|
import httplib
|
||||||
|
import urlparse
|
||||||
|
import urllib
|
||||||
|
|
||||||
|
def show_version(option, opt_str, value, parser):
|
||||||
|
print "GNOME Shell Performance Test @VERSION@"
|
||||||
|
sys.exit()
|
||||||
|
|
||||||
|
def wait_for_dbus_name(wait_name):
|
||||||
|
loop = GLib.MainLoop()
|
||||||
|
|
||||||
|
def on_name_appeared(connection, name, name_owner, *args):
|
||||||
|
if not (name == wait_name and new_owner != ''):
|
||||||
|
return
|
||||||
|
loop.quit()
|
||||||
|
return
|
||||||
|
|
||||||
|
watch_id = Gio.bus_watch_name(Gio.BusType.SESSION,
|
||||||
|
wait_name,
|
||||||
|
Gio.BusNameWatcherFlags.NONE,
|
||||||
|
on_name_appeared,
|
||||||
|
None)
|
||||||
|
|
||||||
|
def on_timeout():
|
||||||
|
print "\nFailed to start %s: timed out" % (wait_name,)
|
||||||
|
sys.exit(1)
|
||||||
|
GLib.timeout_add_seconds(7, on_timeout)
|
||||||
|
|
||||||
|
loop.run()
|
||||||
|
Gio.bus_unwatch_name(watch_id)
|
||||||
|
|
||||||
|
PERF_HELPER_NAME = "org.gnome.Shell.PerfHelper"
|
||||||
|
PERF_HELPER_IFACE = "org.gnome.Shell.PerfHelper"
|
||||||
|
PERF_HELPER_PATH = "/org/gnome/Shell/PerfHelper"
|
||||||
|
|
||||||
|
def start_perf_helper():
|
||||||
|
self_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
|
||||||
|
perf_helper_path = "@libexecdir@/gnome-shell-perf-helper"
|
||||||
|
|
||||||
|
subprocess.Popen([perf_helper_path])
|
||||||
|
wait_for_dbus_name (PERF_HELPER_NAME)
|
||||||
|
|
||||||
|
def stop_perf_helper():
|
||||||
|
proxy = Gio.DBusProxy(g_bus_type=Gio.BusType.SESSION,
|
||||||
|
g_name=PERF_HELPER_NAME,
|
||||||
|
g_interface=PERF_HELPER_IFACE,
|
||||||
|
g_object_path=PERF_HELPER_PATH)
|
||||||
|
proxy.Exit()
|
||||||
|
|
||||||
|
def start_shell(extra_args, perf_output=None):
|
||||||
|
# Set up environment
|
||||||
|
env = dict(os.environ)
|
||||||
|
env['SHELL_PERF_MODULE'] = options.perf
|
||||||
|
env['MUTTER_WM_CLASS_FILTER'] = 'Gnome-shell-perf-helper'
|
||||||
|
|
||||||
|
if perf_output is not None:
|
||||||
|
env['SHELL_PERF_OUTPUT'] = perf_output
|
||||||
|
|
||||||
|
self_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
|
||||||
|
args.append(os.path.join(self_dir, 'gnome-shell'))
|
||||||
|
# pass on any additional arguments
|
||||||
|
args += extra_args
|
||||||
|
|
||||||
|
return subprocess.Popen(args, env=env)
|
||||||
|
|
||||||
|
def run_shell(args, perf_output=None):
|
||||||
|
# we do no additional supervision of gnome-shell,
|
||||||
|
# beyond that of wait
|
||||||
|
# in particular, we don't kill the shell upon
|
||||||
|
# receving a KeyboardInterrupt, as we expect to be
|
||||||
|
# in the same process group
|
||||||
|
shell = start_shell(extra_args, perf_output=perf_output)
|
||||||
|
shell.wait()
|
||||||
|
return shell.returncode == 0
|
||||||
|
|
||||||
|
def upload_performance_report(report_text):
|
||||||
|
try:
|
||||||
|
config_home = os.environ['XDG_CONFIG_HOME']
|
||||||
|
except KeyError:
|
||||||
|
config_home = None
|
||||||
|
|
||||||
|
if not config_home:
|
||||||
|
config_home = os.path.expanduser("~/.config")
|
||||||
|
|
||||||
|
config_file = os.path.join(config_home, "gnome-shell/perf.ini")
|
||||||
|
|
||||||
|
try:
|
||||||
|
config = RawConfigParser()
|
||||||
|
f = open(config_file)
|
||||||
|
config.readfp(f)
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
base_url = config.get('upload', 'url')
|
||||||
|
system_name = config.get('upload', 'name')
|
||||||
|
secret_key = config.get('upload', 'key')
|
||||||
|
except Exception, e:
|
||||||
|
print "Can't read upload configuration from %s: %s" % (config_file, str(e))
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
# Determine host, port and upload URL from provided data, we're
|
||||||
|
# a bit extra-careful about normalization since the URL is part
|
||||||
|
# of the signature.
|
||||||
|
|
||||||
|
split = urlparse.urlsplit(base_url)
|
||||||
|
scheme = split[0].lower()
|
||||||
|
netloc = split[1]
|
||||||
|
base_path = split[2]
|
||||||
|
|
||||||
|
m = re.match(r'^(.*?)(?::(\d+))?$', netloc)
|
||||||
|
if m.group(2):
|
||||||
|
host, port = m.group(1), int(m.group(2))
|
||||||
|
else:
|
||||||
|
host, port = m.group(1), None
|
||||||
|
|
||||||
|
if scheme != "http":
|
||||||
|
print "'%s' is not a HTTP URL" % base_url
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
if port is None:
|
||||||
|
port = 80
|
||||||
|
|
||||||
|
if base_path.endswith('/'):
|
||||||
|
base_path = base_path[:-1]
|
||||||
|
|
||||||
|
if port == 80:
|
||||||
|
normalized_base = "%s://%s%s" % (scheme, host, base_path)
|
||||||
|
else:
|
||||||
|
normalized_base = "%s://%s:%d%s" % (scheme, host, port, base_path)
|
||||||
|
|
||||||
|
upload_url = normalized_base + '/system/%s/upload' % system_name
|
||||||
|
upload_path = urlparse.urlsplit(upload_url)[2] # path portion
|
||||||
|
|
||||||
|
# Create signature based on upload URL and the report data
|
||||||
|
|
||||||
|
signature_data = 'POST&' + upload_url + "&&"
|
||||||
|
h = hmac.new(secret_key, digestmod=hashlib.sha1)
|
||||||
|
h.update(signature_data)
|
||||||
|
h.update(report_text)
|
||||||
|
signature = urllib.quote(base64.b64encode(h.digest()), "~")
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
'User-Agent': 'gnome-shell-performance-tool/@VERSION@',
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'X-Shell-Signature': 'HMAC-SHA1 ' + signature
|
||||||
|
};
|
||||||
|
|
||||||
|
connection = httplib.HTTPConnection(host, port)
|
||||||
|
connection.request('POST', upload_path, report_text, headers)
|
||||||
|
response = connection.getresponse()
|
||||||
|
|
||||||
|
if response.status == 200:
|
||||||
|
print "Performance report upload succeeded"
|
||||||
|
else:
|
||||||
|
print "Performance report upload failed with status %d" % response.status
|
||||||
|
print response.read()
|
||||||
|
|
||||||
|
def run_performance_test(args):
|
||||||
|
iters = options.perf_iters
|
||||||
|
if options.perf_warmup:
|
||||||
|
iters += 1
|
||||||
|
|
||||||
|
logs = []
|
||||||
|
metric_summaries = {}
|
||||||
|
|
||||||
|
start_perf_helper()
|
||||||
|
|
||||||
|
for i in xrange(0, iters):
|
||||||
|
# We create an empty temporary file that the shell will overwrite
|
||||||
|
# with the contents.
|
||||||
|
handle, output_file = tempfile.mkstemp(".json", "gnome-shell-perf.")
|
||||||
|
os.close(handle)
|
||||||
|
|
||||||
|
# Run the performance test and collect the output as JSON
|
||||||
|
normal_exit = False
|
||||||
|
try:
|
||||||
|
normal_exit = run_shell(args, perf_output=output_file)
|
||||||
|
except:
|
||||||
|
stop_perf_helper()
|
||||||
|
raise
|
||||||
|
finally:
|
||||||
|
if not normal_exit:
|
||||||
|
os.remove(output_file)
|
||||||
|
|
||||||
|
if not normal_exit:
|
||||||
|
stop_perf_helper()
|
||||||
|
return False
|
||||||
|
|
||||||
|
try:
|
||||||
|
f = open(output_file)
|
||||||
|
output = json.load(f)
|
||||||
|
f.close()
|
||||||
|
except:
|
||||||
|
stop_perf_helper()
|
||||||
|
raise
|
||||||
|
finally:
|
||||||
|
os.remove(output_file)
|
||||||
|
|
||||||
|
# Grab the event definitions and monitor layout the first time around
|
||||||
|
if i == 0:
|
||||||
|
events = output['events']
|
||||||
|
monitors = output['monitors']
|
||||||
|
|
||||||
|
if options.perf_warmup and i == 0:
|
||||||
|
continue
|
||||||
|
|
||||||
|
for metric in output['metrics']:
|
||||||
|
name = metric['name']
|
||||||
|
if not name in metric_summaries:
|
||||||
|
summary = {}
|
||||||
|
summary['description'] = metric['description']
|
||||||
|
summary['units'] = metric['units']
|
||||||
|
summary['values'] = []
|
||||||
|
metric_summaries[name] = summary
|
||||||
|
else:
|
||||||
|
summary = metric_summaries[name]
|
||||||
|
|
||||||
|
summary['values'].append(metric['value'])
|
||||||
|
|
||||||
|
logs.append(output['log'])
|
||||||
|
|
||||||
|
stop_perf_helper()
|
||||||
|
|
||||||
|
if options.perf_output or options.perf_upload:
|
||||||
|
# Write a complete report, formatted as JSON. The Javascript/C code that
|
||||||
|
# generates the individual reports we are summarizing here is very careful
|
||||||
|
# to format them nicely, but we just dump out a compressed no-whitespace
|
||||||
|
# version here for simplicity. Using json.dump(indent=0) doesn't real
|
||||||
|
# improve the readability of the output much.
|
||||||
|
report = {
|
||||||
|
'date': datetime.datetime.utcnow().isoformat() + 'Z',
|
||||||
|
'events': events,
|
||||||
|
'monitors': monitors,
|
||||||
|
'metrics': metric_summaries,
|
||||||
|
'logs': logs
|
||||||
|
}
|
||||||
|
|
||||||
|
# Add the Git revision if available
|
||||||
|
self_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
|
||||||
|
if os.path.exists(os.path.join(self_dir, 'gnome-shell-jhbuild.in')):
|
||||||
|
top_dir = os.path.dirname(self_dir)
|
||||||
|
git_dir = os.path.join(top_dir, '.git')
|
||||||
|
if os.path.exists(git_dir):
|
||||||
|
env = dict(os.environ)
|
||||||
|
env['GIT_DIR'] = git_dir
|
||||||
|
revision = subprocess.Popen(['git', 'rev-parse', 'HEAD'],
|
||||||
|
env=env,
|
||||||
|
stdout=subprocess.PIPE).communicate()[0].strip()
|
||||||
|
report['revision'] = revision
|
||||||
|
|
||||||
|
if options.perf_output:
|
||||||
|
f = open(options.perf_output, 'w')
|
||||||
|
json.dump(report, f)
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
if options.perf_upload:
|
||||||
|
upload_performance_report(json.dumps(report))
|
||||||
|
else:
|
||||||
|
# Write a human readable summary
|
||||||
|
print '------------------------------------------------------------';
|
||||||
|
for metric in sorted(metric_summaries.keys()):
|
||||||
|
summary = metric_summaries[metric]
|
||||||
|
print "#", summary['description']
|
||||||
|
print metric, ", ".join((str(x) for x in summary['values']))
|
||||||
|
print '------------------------------------------------------------';
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
# Main program
|
||||||
|
|
||||||
|
parser = optparse.OptionParser()
|
||||||
|
parser.add_option("", "--perf", metavar="PERF_MODULE",
|
||||||
|
help="Specify the name of a performance module to run")
|
||||||
|
parser.add_option("", "--perf-iters", type="int", metavar="ITERS",
|
||||||
|
help="Numbers of iterations of performance module to run",
|
||||||
|
default=1)
|
||||||
|
parser.add_option("", "--perf-warmup", action="store_true",
|
||||||
|
help="Run a dry run before performance tests")
|
||||||
|
parser.add_option("", "--perf-output", metavar="OUTPUT_FILE",
|
||||||
|
help="Output file to write performance report")
|
||||||
|
parser.add_option("", "--perf-upload", action="store_true",
|
||||||
|
help="Upload performance report to server")
|
||||||
|
parser.add_option("", "--version", action="callback", callback=show_version,
|
||||||
|
help="Display version and exit")
|
||||||
|
|
||||||
|
options, args = parser.parse_args()
|
||||||
|
|
||||||
|
normal_exit = run_performance_test(args)
|
||||||
|
if normal_exit:
|
||||||
|
sys.exit(0)
|
||||||
|
else:
|
||||||
|
sys.exit(1)
|
@ -40,9 +40,6 @@
|
|||||||
#include "shell-perf-log.h"
|
#include "shell-perf-log.h"
|
||||||
#include "shell-wm-private.h"
|
#include "shell-wm-private.h"
|
||||||
|
|
||||||
static void gnome_shell_plugin_dispose (GObject *object);
|
|
||||||
static void gnome_shell_plugin_finalize (GObject *object);
|
|
||||||
|
|
||||||
static void gnome_shell_plugin_start (MetaPlugin *plugin);
|
static void gnome_shell_plugin_start (MetaPlugin *plugin);
|
||||||
static void gnome_shell_plugin_minimize (MetaPlugin *plugin,
|
static void gnome_shell_plugin_minimize (MetaPlugin *plugin,
|
||||||
MetaWindowActor *actor);
|
MetaWindowActor *actor);
|
||||||
@ -115,12 +112,8 @@ G_DEFINE_TYPE (GnomeShellPlugin, gnome_shell_plugin, META_TYPE_PLUGIN)
|
|||||||
static void
|
static void
|
||||||
gnome_shell_plugin_class_init (GnomeShellPluginClass *klass)
|
gnome_shell_plugin_class_init (GnomeShellPluginClass *klass)
|
||||||
{
|
{
|
||||||
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
|
||||||
MetaPluginClass *plugin_class = META_PLUGIN_CLASS (klass);
|
MetaPluginClass *plugin_class = META_PLUGIN_CLASS (klass);
|
||||||
|
|
||||||
gobject_class->dispose = gnome_shell_plugin_dispose;
|
|
||||||
gobject_class->finalize = gnome_shell_plugin_finalize;
|
|
||||||
|
|
||||||
plugin_class->start = gnome_shell_plugin_start;
|
plugin_class->start = gnome_shell_plugin_start;
|
||||||
plugin_class->map = gnome_shell_plugin_map;
|
plugin_class->map = gnome_shell_plugin_map;
|
||||||
plugin_class->minimize = gnome_shell_plugin_minimize;
|
plugin_class->minimize = gnome_shell_plugin_minimize;
|
||||||
@ -202,18 +195,6 @@ gnome_shell_plugin_start (MetaPlugin *plugin)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
gnome_shell_plugin_dispose (GObject *object)
|
|
||||||
{
|
|
||||||
G_OBJECT_CLASS(gnome_shell_plugin_parent_class)->dispose (object);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
gnome_shell_plugin_finalize (GObject *object)
|
|
||||||
{
|
|
||||||
G_OBJECT_CLASS(gnome_shell_plugin_parent_class)->finalize (object);
|
|
||||||
}
|
|
||||||
|
|
||||||
static ShellWM *
|
static ShellWM *
|
||||||
get_shell_wm (void)
|
get_shell_wm (void)
|
||||||
{
|
{
|
||||||
|
16
src/main.c
16
src/main.c
@ -24,7 +24,6 @@
|
|||||||
#include "shell-a11y.h"
|
#include "shell-a11y.h"
|
||||||
#include "shell-global.h"
|
#include "shell-global.h"
|
||||||
#include "shell-global-private.h"
|
#include "shell-global-private.h"
|
||||||
#include "shell-js.h"
|
|
||||||
#include "shell-perf-log.h"
|
#include "shell-perf-log.h"
|
||||||
#include "st.h"
|
#include "st.h"
|
||||||
|
|
||||||
@ -343,18 +342,3 @@ main (int argc, char **argv)
|
|||||||
|
|
||||||
return ecode;
|
return ecode;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* HACK:
|
|
||||||
Add a dummy function that calls into libgnome-shell-js.so to ensure it's
|
|
||||||
linked to /usr/bin/gnome-shell even when linking with --as-needed.
|
|
||||||
This function is never actually called.
|
|
||||||
https://bugzilla.gnome.org/show_bug.cgi?id=670477
|
|
||||||
*/
|
|
||||||
|
|
||||||
void _shell_link_to_shell_js (void);
|
|
||||||
|
|
||||||
void
|
|
||||||
_shell_link_to_shell_js (void)
|
|
||||||
{
|
|
||||||
shell_js_add_extension_importer (NULL, NULL, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
@ -608,6 +608,42 @@ shell_app_system_lookup_heuristic_basename (ShellAppSystem *system,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* shell_app_system_lookup_wmclass:
|
||||||
|
* @system: a #ShellAppSystem
|
||||||
|
* @wmclass: A WM_CLASS value
|
||||||
|
*
|
||||||
|
* Find a valid application corresponding to a WM_CLASS value.
|
||||||
|
*
|
||||||
|
* Returns: (transfer none): A #ShellApp for @wmclass
|
||||||
|
*/
|
||||||
|
ShellApp *
|
||||||
|
shell_app_system_lookup_wmclass (ShellAppSystem *system,
|
||||||
|
const char *wmclass)
|
||||||
|
{
|
||||||
|
char *canonicalized;
|
||||||
|
char *desktop_file;
|
||||||
|
ShellApp *app;
|
||||||
|
|
||||||
|
if (wmclass == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
canonicalized = g_ascii_strdown (wmclass, -1);
|
||||||
|
|
||||||
|
/* This handles "Fedora Eclipse", probably others.
|
||||||
|
* Note g_strdelimit is modify-in-place. */
|
||||||
|
g_strdelimit (canonicalized, " ", '-');
|
||||||
|
|
||||||
|
desktop_file = g_strconcat (canonicalized, ".desktop", NULL);
|
||||||
|
|
||||||
|
app = shell_app_system_lookup_heuristic_basename (system, desktop_file);
|
||||||
|
|
||||||
|
g_free (canonicalized);
|
||||||
|
g_free (desktop_file);
|
||||||
|
|
||||||
|
return app;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* shell_app_system_get_all:
|
* shell_app_system_get_all:
|
||||||
* @system:
|
* @system:
|
||||||
|
@ -49,7 +49,8 @@ ShellApp *shell_app_system_lookup_app_for_path (ShellAppSystem *
|
|||||||
const char *desktop_path);
|
const char *desktop_path);
|
||||||
ShellApp *shell_app_system_lookup_heuristic_basename (ShellAppSystem *system,
|
ShellApp *shell_app_system_lookup_heuristic_basename (ShellAppSystem *system,
|
||||||
const char *id);
|
const char *id);
|
||||||
|
ShellApp *shell_app_system_lookup_wmclass (ShellAppSystem *system,
|
||||||
|
const char *wmclass);
|
||||||
|
|
||||||
GSList *shell_app_system_get_all (ShellAppSystem *system);
|
GSList *shell_app_system_get_all (ShellAppSystem *system);
|
||||||
|
|
||||||
|
@ -409,6 +409,7 @@ shell_network_agent_set_password (ShellNetworkAgent *self,
|
|||||||
|
|
||||||
priv = self->priv;
|
priv = self->priv;
|
||||||
request = g_hash_table_lookup (priv->requests, request_id);
|
request = g_hash_table_lookup (priv->requests, request_id);
|
||||||
|
g_return_if_fail (request != NULL);
|
||||||
|
|
||||||
if (!request->is_vpn)
|
if (!request->is_vpn)
|
||||||
{
|
{
|
||||||
@ -438,6 +439,7 @@ shell_network_agent_respond (ShellNetworkAgent *self,
|
|||||||
|
|
||||||
priv = self->priv;
|
priv = self->priv;
|
||||||
request = g_hash_table_lookup (priv->requests, request_id);
|
request = g_hash_table_lookup (priv->requests, request_id);
|
||||||
|
g_return_if_fail (request != NULL);
|
||||||
|
|
||||||
if (response == SHELL_NETWORK_AGENT_USER_CANCELED)
|
if (response == SHELL_NETWORK_AGENT_USER_CANCELED)
|
||||||
{
|
{
|
||||||
@ -491,8 +493,18 @@ shell_network_agent_cancel_get_secrets (NMSecretAgent *agent,
|
|||||||
|
|
||||||
gchar *request_id = g_strdup_printf ("%s/%s", connection_path, setting_name);
|
gchar *request_id = g_strdup_printf ("%s/%s", connection_path, setting_name);
|
||||||
ShellAgentRequest *request = g_hash_table_lookup (priv->requests, request_id);
|
ShellAgentRequest *request = g_hash_table_lookup (priv->requests, request_id);
|
||||||
|
GError *error;
|
||||||
|
|
||||||
GError *error = g_error_new (NM_SECRET_AGENT_ERROR,
|
if (!request)
|
||||||
|
{
|
||||||
|
/* We've already sent the result, but the caller cancelled the
|
||||||
|
* operation before receiving that result.
|
||||||
|
*/
|
||||||
|
g_free (request_id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
error = g_error_new (NM_SECRET_AGENT_ERROR,
|
||||||
NM_SECRET_AGENT_ERROR_AGENT_CANCELED,
|
NM_SECRET_AGENT_ERROR_AGENT_CANCELED,
|
||||||
"Canceled by NetworkManager");
|
"Canceled by NetworkManager");
|
||||||
request->callback (agent, request->connection, NULL, error, request->callback_data);
|
request->callback (agent, request->connection, NULL, error, request->callback_data);
|
||||||
|
@ -369,9 +369,3 @@ shell_decline_dispatch_op (TpAddDispatchOperationContext *context,
|
|||||||
tp_add_dispatch_operation_context_fail (context, error);
|
tp_add_dispatch_operation_context_fail (context, error);
|
||||||
g_error_free (error);
|
g_error_free (error);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* gjs doesn't cope with tp_proxy_get_invalidated() returning a GError */
|
|
||||||
gboolean shell_is_channel_invalidated (TpChannel *channel)
|
|
||||||
{
|
|
||||||
return tp_proxy_get_invalidated (channel) != NULL;
|
|
||||||
}
|
|
||||||
|
@ -112,7 +112,5 @@ void shell_get_contact_events (TplLogManager *log_manager,
|
|||||||
void shell_decline_dispatch_op (TpAddDispatchOperationContext *context,
|
void shell_decline_dispatch_op (TpAddDispatchOperationContext *context,
|
||||||
const gchar *message);
|
const gchar *message);
|
||||||
|
|
||||||
gboolean shell_is_channel_invalidated (TpChannel *channel);
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
#endif /* __SHELL_TP_CLIENT_H__ */
|
#endif /* __SHELL_TP_CLIENT_H__ */
|
||||||
|
@ -126,30 +126,6 @@ shell_window_tracker_class_init (ShellWindowTrackerClass *klass)
|
|||||||
G_TYPE_NONE, 0);
|
G_TYPE_NONE, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* get_appid_from_window:
|
|
||||||
*
|
|
||||||
* Turn the WM_CLASS property into our best guess at a .desktop file id.
|
|
||||||
*/
|
|
||||||
static char *
|
|
||||||
get_appid_from_window (MetaWindow *window)
|
|
||||||
{
|
|
||||||
const char *wmclass;
|
|
||||||
char *appid_guess;
|
|
||||||
|
|
||||||
wmclass = meta_window_get_wm_class (window);
|
|
||||||
if (!wmclass)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
appid_guess = g_ascii_strdown (wmclass, -1);
|
|
||||||
|
|
||||||
/* This handles "Fedora Eclipse", probably others.
|
|
||||||
* Note g_strdelimit is modify-in-place. */
|
|
||||||
g_strdelimit (appid_guess, " ", '-');
|
|
||||||
|
|
||||||
return appid_guess;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* shell_window_tracker_is_window_interesting:
|
* shell_window_tracker_is_window_interesting:
|
||||||
*
|
*
|
||||||
@ -201,40 +177,6 @@ shell_window_tracker_is_window_interesting (MetaWindow *window)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* get_app_from_window_wmclass:
|
|
||||||
*
|
|
||||||
* Looks only at the given window, and attempts to determine
|
|
||||||
* an application based on WM_CLASS. If one can't be determined,
|
|
||||||
* return %NULL.
|
|
||||||
*
|
|
||||||
* Return value: (transfer full): A newly-referenced #ShellApp, or %NULL
|
|
||||||
*/
|
|
||||||
static ShellApp *
|
|
||||||
get_app_from_window_wmclass (MetaWindow *window)
|
|
||||||
{
|
|
||||||
ShellApp *app;
|
|
||||||
ShellAppSystem *appsys;
|
|
||||||
char *wmclass;
|
|
||||||
char *with_desktop;
|
|
||||||
|
|
||||||
appsys = shell_app_system_get_default ();
|
|
||||||
wmclass = get_appid_from_window (window);
|
|
||||||
|
|
||||||
if (!wmclass)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
with_desktop = g_strjoin (NULL, wmclass, ".desktop", NULL);
|
|
||||||
g_free (wmclass);
|
|
||||||
|
|
||||||
app = shell_app_system_lookup_heuristic_basename (appsys, with_desktop);
|
|
||||||
if (app != NULL)
|
|
||||||
g_object_ref (app);
|
|
||||||
g_free (with_desktop);
|
|
||||||
|
|
||||||
return app;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get_app_from_window_group:
|
* get_app_from_window_group:
|
||||||
* @monitor: a #ShellWindowTracker
|
* @monitor: a #ShellWindowTracker
|
||||||
@ -328,9 +270,12 @@ static ShellApp *
|
|||||||
get_app_for_window (ShellWindowTracker *tracker,
|
get_app_for_window (ShellWindowTracker *tracker,
|
||||||
MetaWindow *window)
|
MetaWindow *window)
|
||||||
{
|
{
|
||||||
|
ShellAppSystem *app_system;
|
||||||
ShellApp *result = NULL;
|
ShellApp *result = NULL;
|
||||||
const char *startup_id;
|
const char *startup_id;
|
||||||
|
|
||||||
|
app_system = shell_app_system_get_default ();
|
||||||
|
|
||||||
/* First, we check whether we already know about this window,
|
/* First, we check whether we already know about this window,
|
||||||
* if so, just return that.
|
* if so, just return that.
|
||||||
*/
|
*/
|
||||||
@ -351,7 +296,8 @@ get_app_for_window (ShellWindowTracker *tracker,
|
|||||||
/* Check if the app's WM_CLASS specifies an app; this is
|
/* Check if the app's WM_CLASS specifies an app; this is
|
||||||
* canonical if it does.
|
* canonical if it does.
|
||||||
*/
|
*/
|
||||||
result = get_app_from_window_wmclass (window);
|
result = shell_app_system_lookup_wmclass (app_system,
|
||||||
|
meta_window_get_wm_class (window));
|
||||||
if (result != NULL)
|
if (result != NULL)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
|
@ -85,23 +85,11 @@ st_bin_remove (ClutterContainer *container,
|
|||||||
st_bin_set_child (ST_BIN (container), NULL);
|
st_bin_set_child (ST_BIN (container), NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
st_bin_foreach (ClutterContainer *container,
|
|
||||||
ClutterCallback callback,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
StBinPrivate *priv = ST_BIN (container)->priv;
|
|
||||||
|
|
||||||
if (priv->child)
|
|
||||||
callback (priv->child, user_data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clutter_container_iface_init (ClutterContainerIface *iface)
|
clutter_container_iface_init (ClutterContainerIface *iface)
|
||||||
{
|
{
|
||||||
iface->add = st_bin_add;
|
iface->add = st_bin_add;
|
||||||
iface->remove = st_bin_remove;
|
iface->remove = st_bin_remove;
|
||||||
iface->foreach = st_bin_foreach;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -444,14 +444,12 @@ st_scroll_bar_scroll_event (ClutterActor *actor,
|
|||||||
ClutterScrollEvent *event)
|
ClutterScrollEvent *event)
|
||||||
{
|
{
|
||||||
StScrollBarPrivate *priv = ST_SCROLL_BAR (actor)->priv;
|
StScrollBarPrivate *priv = ST_SCROLL_BAR (actor)->priv;
|
||||||
gdouble lower, step, upper, value, delta_x, delta_y;
|
gdouble step, value, delta_x, delta_y;
|
||||||
|
|
||||||
if (priv->adjustment)
|
if (priv->adjustment)
|
||||||
{
|
{
|
||||||
g_object_get (priv->adjustment,
|
g_object_get (priv->adjustment,
|
||||||
"lower", &lower,
|
|
||||||
"step-increment", &step,
|
"step-increment", &step,
|
||||||
"upper", &upper,
|
|
||||||
"value", &value,
|
"value", &value,
|
||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
@ -472,16 +470,10 @@ st_scroll_bar_scroll_event (ClutterActor *actor,
|
|||||||
break;
|
break;
|
||||||
case CLUTTER_SCROLL_UP:
|
case CLUTTER_SCROLL_UP:
|
||||||
case CLUTTER_SCROLL_LEFT:
|
case CLUTTER_SCROLL_LEFT:
|
||||||
if (value == lower)
|
|
||||||
return FALSE;
|
|
||||||
else
|
|
||||||
st_adjustment_set_value (priv->adjustment, value - step);
|
st_adjustment_set_value (priv->adjustment, value - step);
|
||||||
break;
|
break;
|
||||||
case CLUTTER_SCROLL_DOWN:
|
case CLUTTER_SCROLL_DOWN:
|
||||||
case CLUTTER_SCROLL_RIGHT:
|
case CLUTTER_SCROLL_RIGHT:
|
||||||
if (value == upper)
|
|
||||||
return FALSE;
|
|
||||||
else
|
|
||||||
st_adjustment_set_value (priv->adjustment, value + step);
|
st_adjustment_set_value (priv->adjustment, value + step);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -687,7 +687,7 @@ st_scroll_view_scroll_event (ClutterActor *self,
|
|||||||
ClutterScrollEvent *event)
|
ClutterScrollEvent *event)
|
||||||
{
|
{
|
||||||
StScrollViewPrivate *priv = ST_SCROLL_VIEW (self)->priv;
|
StScrollViewPrivate *priv = ST_SCROLL_VIEW (self)->priv;
|
||||||
gdouble lower, value, upper, step, hvalue, vvalue, delta_x, delta_y;
|
gdouble value, step, hvalue, vvalue, delta_x, delta_y;
|
||||||
|
|
||||||
/* don't handle scroll events if requested not to */
|
/* don't handle scroll events if requested not to */
|
||||||
if (!priv->mouse_scroll)
|
if (!priv->mouse_scroll)
|
||||||
@ -708,19 +708,15 @@ st_scroll_view_scroll_event (ClutterActor *self,
|
|||||||
case CLUTTER_SCROLL_UP:
|
case CLUTTER_SCROLL_UP:
|
||||||
case CLUTTER_SCROLL_DOWN:
|
case CLUTTER_SCROLL_DOWN:
|
||||||
g_object_get (priv->vadjustment,
|
g_object_get (priv->vadjustment,
|
||||||
"lower", &lower,
|
|
||||||
"step-increment", &step,
|
"step-increment", &step,
|
||||||
"value", &value,
|
"value", &value,
|
||||||
"upper", &upper,
|
|
||||||
NULL);
|
NULL);
|
||||||
break;
|
break;
|
||||||
case CLUTTER_SCROLL_LEFT:
|
case CLUTTER_SCROLL_LEFT:
|
||||||
case CLUTTER_SCROLL_RIGHT:
|
case CLUTTER_SCROLL_RIGHT:
|
||||||
g_object_get (priv->hadjustment,
|
g_object_get (priv->hadjustment,
|
||||||
"lower", &lower,
|
|
||||||
"step-increment", &step,
|
"step-increment", &step,
|
||||||
"value", &value,
|
"value", &value,
|
||||||
"upper", &upper,
|
|
||||||
NULL);
|
NULL);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -732,27 +728,15 @@ st_scroll_view_scroll_event (ClutterActor *self,
|
|||||||
st_adjustment_set_value (priv->vadjustment, vvalue + delta_y);
|
st_adjustment_set_value (priv->vadjustment, vvalue + delta_y);
|
||||||
break;
|
break;
|
||||||
case CLUTTER_SCROLL_UP:
|
case CLUTTER_SCROLL_UP:
|
||||||
if (value == lower)
|
|
||||||
return FALSE;
|
|
||||||
else
|
|
||||||
st_adjustment_set_value (priv->vadjustment, value - step);
|
st_adjustment_set_value (priv->vadjustment, value - step);
|
||||||
break;
|
break;
|
||||||
case CLUTTER_SCROLL_DOWN:
|
case CLUTTER_SCROLL_DOWN:
|
||||||
if (value == upper)
|
|
||||||
return FALSE;
|
|
||||||
else
|
|
||||||
st_adjustment_set_value (priv->vadjustment, value + step);
|
st_adjustment_set_value (priv->vadjustment, value + step);
|
||||||
break;
|
break;
|
||||||
case CLUTTER_SCROLL_LEFT:
|
case CLUTTER_SCROLL_LEFT:
|
||||||
if (value == lower)
|
|
||||||
return FALSE;
|
|
||||||
else
|
|
||||||
st_adjustment_set_value (priv->hadjustment, value - step);
|
st_adjustment_set_value (priv->hadjustment, value - step);
|
||||||
break;
|
break;
|
||||||
case CLUTTER_SCROLL_RIGHT:
|
case CLUTTER_SCROLL_RIGHT:
|
||||||
if (value == upper)
|
|
||||||
return FALSE;
|
|
||||||
else
|
|
||||||
st_adjustment_set_value (priv->hadjustment, value + step);
|
st_adjustment_set_value (priv->hadjustment, value + step);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1782,7 +1782,7 @@ st_theme_node_paint_sliced_border_image (StThemeNode *node,
|
|||||||
cogl_set_source (material);
|
cogl_set_source (material);
|
||||||
|
|
||||||
{
|
{
|
||||||
GLfloat rectangles[] =
|
float rectangles[] =
|
||||||
{
|
{
|
||||||
/* top left corner */
|
/* top left corner */
|
||||||
0, 0, border_left, border_top,
|
0, 0, border_left, border_top,
|
||||||
|
@ -7,12 +7,19 @@
|
|||||||
/* Very simple test of the ShellRecorder class; shows some text strings
|
/* Very simple test of the ShellRecorder class; shows some text strings
|
||||||
* moving around and records it.
|
* moving around and records it.
|
||||||
*/
|
*/
|
||||||
static ShellRecorder *recorder;
|
static ShellRecorder *recorder = NULL;
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
stop_recording_timeout (gpointer data)
|
stop_recording_timeout (gpointer data)
|
||||||
{
|
{
|
||||||
|
if (recorder)
|
||||||
|
{
|
||||||
shell_recorder_close (recorder);
|
shell_recorder_close (recorder);
|
||||||
|
g_object_unref (recorder);
|
||||||
|
}
|
||||||
|
|
||||||
|
clutter_main_quit ();
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -22,6 +29,15 @@ on_animation_completed (ClutterAnimation *animation)
|
|||||||
g_timeout_add (1000, stop_recording_timeout, NULL);
|
g_timeout_add (1000, stop_recording_timeout, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
on_stage_realized (ClutterActor *stage,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
recorder = shell_recorder_new (CLUTTER_STAGE (stage));
|
||||||
|
shell_recorder_set_filename (recorder, "test-recorder.ogg");
|
||||||
|
shell_recorder_record (recorder);
|
||||||
|
}
|
||||||
|
|
||||||
int main (int argc, char **argv)
|
int main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
ClutterActor *stage;
|
ClutterActor *stage;
|
||||||
@ -48,8 +64,8 @@ int main (int argc, char **argv)
|
|||||||
animation = clutter_actor_animate (text,
|
animation = clutter_actor_animate (text,
|
||||||
CLUTTER_EASE_IN_OUT_QUAD,
|
CLUTTER_EASE_IN_OUT_QUAD,
|
||||||
3000,
|
3000,
|
||||||
"x", 320,
|
"x", 320.0,
|
||||||
"y", 240,
|
"y", 240.0,
|
||||||
NULL);
|
NULL);
|
||||||
g_signal_connect (animation, "completed",
|
g_signal_connect (animation, "completed",
|
||||||
G_CALLBACK (on_animation_completed), NULL);
|
G_CALLBACK (on_animation_completed), NULL);
|
||||||
@ -58,41 +74,42 @@ int main (int argc, char **argv)
|
|||||||
"text", "Blue",
|
"text", "Blue",
|
||||||
"font-name", "Sans 40px",
|
"font-name", "Sans 40px",
|
||||||
"color", &blue,
|
"color", &blue,
|
||||||
"x", 640,
|
"x", 640.0,
|
||||||
"y", 0,
|
"y", 0.0,
|
||||||
NULL);
|
NULL);
|
||||||
clutter_actor_set_anchor_point_from_gravity (text, CLUTTER_GRAVITY_NORTH_EAST);
|
clutter_actor_set_anchor_point_from_gravity (text, CLUTTER_GRAVITY_NORTH_EAST);
|
||||||
clutter_actor_add_child (stage, text);
|
clutter_actor_add_child (stage, text);
|
||||||
animation = clutter_actor_animate (text,
|
animation = clutter_actor_animate (text,
|
||||||
CLUTTER_EASE_IN_OUT_QUAD,
|
CLUTTER_EASE_IN_OUT_QUAD,
|
||||||
3000,
|
3000,
|
||||||
"x", 320,
|
"x", 320.0,
|
||||||
"y", 240,
|
"y", 240.0,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
text = g_object_new (CLUTTER_TYPE_TEXT,
|
text = g_object_new (CLUTTER_TYPE_TEXT,
|
||||||
"text", "Green",
|
"text", "Green",
|
||||||
"font-name", "Sans 40px",
|
"font-name", "Sans 40px",
|
||||||
"color", &green,
|
"color", &green,
|
||||||
"x", 0,
|
"x", 0.0,
|
||||||
"y", 480,
|
"y", 480.0,
|
||||||
NULL);
|
NULL);
|
||||||
clutter_actor_set_anchor_point_from_gravity (text, CLUTTER_GRAVITY_SOUTH_WEST);
|
clutter_actor_set_anchor_point_from_gravity (text, CLUTTER_GRAVITY_SOUTH_WEST);
|
||||||
clutter_actor_add_child (stage, text);
|
clutter_actor_add_child (stage, text);
|
||||||
animation = clutter_actor_animate (text,
|
animation = clutter_actor_animate (text,
|
||||||
CLUTTER_EASE_IN_OUT_QUAD,
|
CLUTTER_EASE_IN_OUT_QUAD,
|
||||||
3000,
|
3000,
|
||||||
"x", 320,
|
"x", 320.0,
|
||||||
"y", 240,
|
"y", 240.0,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
recorder = shell_recorder_new (CLUTTER_STAGE (stage));
|
g_signal_connect_after (stage, "realize",
|
||||||
shell_recorder_set_filename (recorder, "test-recorder.ogg");
|
G_CALLBACK (on_stage_realized), NULL);
|
||||||
|
|
||||||
clutter_actor_show (stage);
|
clutter_actor_show (stage);
|
||||||
|
|
||||||
shell_recorder_record (recorder);
|
|
||||||
clutter_main ();
|
clutter_main ();
|
||||||
|
|
||||||
|
g_object_unref (stage);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user