Compare commits

..

1 Commits

Author SHA1 Message Date
Jasper St. Pierre
e7f82c66de wobbly 2014-09-03 10:58:01 -07:00
74 changed files with 14469 additions and 18706 deletions

48
NEWS
View File

@@ -1,51 +1,3 @@
3.14.0
======
* Fix exposure of the accessible tree [Alejandro; #736821]
* Hide empty app folders in app picker [Florian; #736910]
Contributors:
Florian Müllner, Alejandro Piñeiro
Translations:
Yuri Myasoedov [ru], Pawan Chitrakar [ne], Manoj Kumar Giri [or],
Daniel Mustieles [es], GNOME Translation Robot [de], Rajesh Ranjan [hi],
Shankar Prasad [kn], Kenneth Nielsen [da], Daniel Korostil [uk],
Changwoo Ryu [ko], A S Alam [pa], Tom Tryfonidis [el], Petr Kovar [cs]
3.13.92
=======
* Fix submenu arrow animations [Hashem; #728927]
* Always initialize clutter accessibility [Alejandro; #735908]
* Adapt to mutter background changes [Owen; #735638]
* Improve handling of outOfDate extensions in prefs [Florian; #736185]
* Port offline updates to PackageKit's DBus interface [Kalev; #736337]
* location: Translate accuracy levels for geoclue [Zeeshan; #736479]
* Implement input source switching [Rui; #736435]
* Fix crash when dragging window from workspace switcher [Carlos G.; #735972]
* Clean out list of default favorites [Elad; #735682]
* Add settings link to location submenu [Florian; #736542]
* Fix keynav of message tray menu button [Florian; #707799]
* Misc. bug fixes [Carlos G., Florian, Rui; #736110, #736329, #736343,
#735927, #735976]
Contributors:
Elad Alfassa, Zeeshan Ali (Khattak), Michael Catanzaro, Adel Gadllah,
Carlos Garnacho, Kalev Lember, Rui Matos, Florian Müllner, Hashem Nasarat,
Alejandro Piñeiro, Carlos Soriano, Jasper St. Pierre, Owen W. Taylor
Translations:
Piotr Drąg [pl], Changwoo Ryu [ko], Yuri Myasoedov [ru], Zhou Fang [ja],
Peter Mráz [sk], Ville-Pekka Vainio [fi], Sweta Kothari [gu],
Marek Černocký [cs], A S Alam [pa], Christian Kirbach [de],
Alexandre Franke [fr], Aurimas Černius [lt], Khaled Hosny [ar],
Enrico Nicoletto [pt_BR], Andika Triwidada [id], Shantha kumar [ta],
Matej Urbančič [sl], Pawan Chitrakar [ne], Yosef Or Boczko [he],
Balázs Úr [hu], Dušan Kazik [sk], Gil Forcada [ca],
Carles Ferrando [ca@valencia], Nilamdyuti Goswami [as], Ivaylo Valkov [bg],
Sandeep Sheshrao Shedmake [mr], Umarzuki Bin Mochlis Moktar [ms],
Muhammet Kara [tr], Jiro Matsuzawa [ja], Kris Thomsen [da],
Mattias Eriksson [sv]
3.13.91 3.13.91
======= =======
* Fix keynav into session menu on login screen [Florian; #735614] * Fix keynav into session menu on login screen [Florian; #735614]

View File

@@ -1,5 +1,5 @@
AC_PREREQ(2.63) AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.14.0],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell]) AC_INIT([gnome-shell],[3.13.91],[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])
@@ -76,8 +76,8 @@ AC_MSG_RESULT($enable_systemd)
CLUTTER_MIN_VERSION=1.15.90 CLUTTER_MIN_VERSION=1.15.90
GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1 GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1
GJS_MIN_VERSION=1.39.0 GJS_MIN_VERSION=1.39.0
MUTTER_MIN_VERSION=3.14.0 MUTTER_MIN_VERSION=3.13.91
GTK_MIN_VERSION=3.13.2 GTK_MIN_VERSION=3.7.9
GIO_MIN_VERSION=2.37.0 GIO_MIN_VERSION=2.37.0
LIBECAL_MIN_VERSION=3.5.3 LIBECAL_MIN_VERSION=3.5.3
LIBEDATASERVER_MIN_VERSION=3.5.3 LIBEDATASERVER_MIN_VERSION=3.5.3

View File

@@ -31,7 +31,7 @@
</_description> </_description>
</key> </key>
<key name="favorite-apps" type="as"> <key name="favorite-apps" type="as">
<default>[ 'epiphany.desktop', 'evolution.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ]</default> <default>[ 'epiphany.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'libreoffice-writer.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Documents.desktop', 'org.gnome.Software.desktop' ]</default>
<_summary>List of desktop file IDs for favorite applications</_summary> <_summary>List of desktop file IDs for favorite applications</_summary>
<_description> <_description>
The applications corresponding to these identifiers The applications corresponding to these identifiers

View File

@@ -59,10 +59,14 @@ const Application = new Lang.Class({
_extensionAvailable: function(uuid) { _extensionAvailable: function(uuid) {
let extension = ExtensionUtils.extensions[uuid]; let extension = ExtensionUtils.extensions[uuid];
let checkVersion = !this._settings.get_boolean('disable-extension-version-validation');
if (!extension) if (!extension)
return false; return false;
if (checkVersion && ExtensionUtils.isOutOfDate(extension))
return false;
if (!extension.dir.get_child('prefs.js').query_exists(null)) if (!extension.dir.get_child('prefs.js').query_exists(null))
return false; return false;
@@ -281,10 +285,6 @@ const ExtensionRow = new Lang.Class({
function() { function() {
this._switch.state = this._isEnabled(); this._switch.state = this._isEnabled();
})); }));
this._settings.connect('changed::disable-extension-version-validation',
Lang.bind(this, function() {
this._switch.sensitive = this._canEnable();
}));
this._buildUI(); this._buildUI();
}, },
@@ -323,7 +323,6 @@ const ExtensionRow = new Lang.Class({
this.prefsButton = button; this.prefsButton = button;
this._switch = new Gtk.Switch({ valign: Gtk.Align.CENTER, this._switch = new Gtk.Switch({ valign: Gtk.Align.CENTER,
sensitive: this._canEnable(),
state: this._isEnabled() }); state: this._isEnabled() });
this._switch.connect('notify::active', Lang.bind(this, this._switch.connect('notify::active', Lang.bind(this,
function() { function() {
@@ -336,13 +335,6 @@ const ExtensionRow = new Lang.Class({
hbox.add(this._switch); hbox.add(this._switch);
}, },
_canEnable: function() {
let extension = ExtensionUtils.extensions[this.uuid];
let checkVersion = !this._settings.get_boolean('disable-extension-version-validation');
return !(checkVersion && ExtensionUtils.isOutOfDate(extension));
},
_isEnabled: function() { _isEnabled: function() {
let extensions = this._settings.get_strv('enabled-extensions'); let extensions = this._settings.get_strv('enabled-extensions');
return extensions.indexOf(this.uuid) != -1; return extensions.indexOf(this.uuid) != -1;

View File

@@ -16,9 +16,7 @@
<file>misc/fileUtils.js</file> <file>misc/fileUtils.js</file>
<file>misc/gnomeSession.js</file> <file>misc/gnomeSession.js</file>
<file>misc/history.js</file> <file>misc/history.js</file>
<file>misc/ibusManager.js</file>
<file>misc/jsParse.js</file> <file>misc/jsParse.js</file>
<file>misc/keyboardManager.js</file>
<file>misc/loginManager.js</file> <file>misc/loginManager.js</file>
<file>misc/modemManager.js</file> <file>misc/modemManager.js</file>
<file>misc/objectManager.js</file> <file>misc/objectManager.js</file>
@@ -92,6 +90,7 @@
<file>ui/windowAttentionHandler.js</file> <file>ui/windowAttentionHandler.js</file>
<file>ui/windowMenu.js</file> <file>ui/windowMenu.js</file>
<file>ui/windowManager.js</file> <file>ui/windowManager.js</file>
<file>ui/wobbly.js</file>
<file>ui/workspace.js</file> <file>ui/workspace.js</file>
<file>ui/workspaceSwitcherPopup.js</file> <file>ui/workspaceSwitcherPopup.js</file>
<file>ui/workspaceThumbnail.js</file> <file>ui/workspaceThumbnail.js</file>

View File

@@ -1,180 +0,0 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Gio = imports.gi.Gio;
const Lang = imports.lang;
const Signals = imports.signals;
try {
var IBus = imports.gi.IBus;
if (!('new_async' in IBus.Bus))
throw "IBus version is too old";
const IBusCandidatePopup = imports.ui.ibusCandidatePopup;
} catch (e) {
var IBus = null;
log(e);
}
let _ibusManager = null;
function getIBusManager() {
if (_ibusManager == null)
_ibusManager = new IBusManager();
return _ibusManager;
}
const IBusManager = new Lang.Class({
Name: 'IBusManager',
// This is the longest we'll keep the keyboard frozen until an input
// source is active.
_MAX_INPUT_SOURCE_ACTIVATION_TIME: 4000, // ms
_init: function() {
if (!IBus)
return;
IBus.init();
this._candidatePopup = new IBusCandidatePopup.CandidatePopup();
this._panelService = null;
this._engines = {};
this._ready = false;
this._registerPropertiesId = 0;
this._currentEngineName = null;
this._ibus = IBus.Bus.new_async();
this._ibus.connect('connected', Lang.bind(this, this._onConnected));
this._ibus.connect('disconnected', Lang.bind(this, this._clear));
// Need to set this to get 'global-engine-changed' emitions
this._ibus.set_watch_ibus_signal(true);
this._ibus.connect('global-engine-changed', Lang.bind(this, this._engineChanged));
this._spawn();
},
_spawn: function() {
try {
Gio.Subprocess.new(['ibus-daemon', '--xim', '--panel', 'disable'],
Gio.SubprocessFlags.NONE);
} catch(e) {
log('Failed to launch ibus-daemon: ' + e.message);
}
},
_clear: function() {
if (this._panelService)
this._panelService.destroy();
this._panelService = null;
this._candidatePopup.setPanelService(null);
this._engines = {};
this._ready = false;
this._registerPropertiesId = 0;
this._currentEngineName = null;
this.emit('ready', false);
this._spawn();
},
_onConnected: function() {
this._ibus.list_engines_async(-1, null, Lang.bind(this, this._initEngines));
this._ibus.request_name_async(IBus.SERVICE_PANEL,
IBus.BusNameFlag.REPLACE_EXISTING,
-1, null,
Lang.bind(this, this._initPanelService));
},
_initEngines: function(ibus, result) {
let enginesList = this._ibus.list_engines_async_finish(result);
if (enginesList) {
for (let i = 0; i < enginesList.length; ++i) {
let name = enginesList[i].get_name();
this._engines[name] = enginesList[i];
}
this._updateReadiness();
} else {
this._clear();
}
},
_initPanelService: function(ibus, result) {
let success = this._ibus.request_name_async_finish(result);
if (success) {
this._panelService = new IBus.PanelService({ connection: this._ibus.get_connection(),
object_path: IBus.PATH_PANEL });
this._candidatePopup.setPanelService(this._panelService);
this._panelService.connect('update-property', Lang.bind(this, this._updateProperty));
// If an engine is already active we need to get its properties
this._ibus.get_global_engine_async(-1, null, Lang.bind(this, function(i, result) {
let engine;
try {
engine = this._ibus.get_global_engine_async_finish(result);
if (!engine)
return;
} catch(e) {
return;
}
this._engineChanged(this._ibus, engine.get_name());
}));
this._updateReadiness();
} else {
this._clear();
}
},
_updateReadiness: function() {
this._ready = (Object.keys(this._engines).length > 0 &&
this._panelService != null);
this.emit('ready', this._ready);
},
_engineChanged: function(bus, engineName) {
if (!this._ready)
return;
this._currentEngineName = engineName;
if (this._registerPropertiesId != 0)
return;
this._registerPropertiesId =
this._panelService.connect('register-properties', Lang.bind(this, function(p, props) {
if (!props.get(0))
return;
this._panelService.disconnect(this._registerPropertiesId);
this._registerPropertiesId = 0;
this.emit('properties-registered', this._currentEngineName, props);
}));
},
_updateProperty: function(panel, prop) {
this.emit('property-updated', this._currentEngineName, prop);
},
activateProperty: function(key, state) {
this._panelService.property_activate(key, state);
},
getEngineDesc: function(id) {
if (!IBus || !this._ready)
return null;
return this._engines[id];
},
setEngine: function(id, callback) {
if (!IBus || !this._ready || id == this._currentEngineName) {
if (callback)
callback();
return;
}
this._ibus.set_global_engine_async(id, this._MAX_INPUT_SOURCE_ACTIVATION_TIME,
null, callback);
},
});
Signals.addSignalMethods(IBusManager.prototype);

View File

@@ -1,153 +0,0 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const GLib = imports.gi.GLib;
const GnomeDesktop = imports.gi.GnomeDesktop;
const Lang = imports.lang;
const Meta = imports.gi.Meta;
const Main = imports.ui.main;
const DEFAULT_LOCALE = 'en_US';
const DEFAULT_LAYOUT = 'us';
const DEFAULT_VARIANT = '';
let _xkbInfo = null;
function getXkbInfo() {
if (_xkbInfo == null)
_xkbInfo = new GnomeDesktop.XkbInfo();
return _xkbInfo;
}
let _keyboardManager = null;
function getKeyboardManager() {
if (_keyboardManager == null)
_keyboardManager = new KeyboardManager();
return _keyboardManager;
}
function releaseKeyboard() {
if (Main.modalCount > 0)
global.display.unfreeze_keyboard(global.get_current_time());
else
global.display.ungrab_keyboard(global.get_current_time());
}
function holdKeyboard() {
global.freeze_keyboard(global.get_current_time());
}
const KeyboardManager = new Lang.Class({
Name: 'KeyboardManager',
// The XKB protocol doesn't allow for more that 4 layouts in a
// keymap. Wayland doesn't impose this limit and libxkbcommon can
// handle up to 32 layouts but since we need to support X clients
// even as a Wayland compositor, we can't bump this.
MAX_LAYOUTS_PER_GROUP: 4,
_init: function() {
this._xkbInfo = getXkbInfo();
this._current = null;
this._localeLayoutInfo = this._getLocaleLayout();
this._layoutInfos = {};
},
_applyLayoutGroup: function(group) {
let options = this._buildOptionsString();
let [layouts, variants] = this._buildGroupStrings(group);
Meta.get_backend().set_keymap(layouts, variants, options);
},
_applyLayoutGroupIndex: function(idx) {
Meta.get_backend().lock_layout_group(idx);
},
apply: function(id) {
let info = this._layoutInfos[id];
if (!info)
return;
if (this._current && this._current.group == info.group) {
if (this._current.groupIndex != info.groupIndex)
this._applyLayoutGroupIndex(info.groupIndex);
} else {
this._applyLayoutGroup(info.group);
this._applyLayoutGroupIndex(info.groupIndex);
}
this._current = info;
},
reapply: function() {
if (!this._current)
return;
this._applyLayoutGroup(this._current.group);
this._applyLayoutGroupIndex(this._current.groupIndex);
},
setUserLayouts: function(ids) {
this._current = null;
this._layoutInfos = {};
for (let i = 0; i < ids.length; ++i) {
let [found, , , _layout, _variant] = this._xkbInfo.get_layout_info(ids[i]);
if (found)
this._layoutInfos[ids[i]] = { id: ids[i], layout: _layout, variant: _variant };
}
let i = 0;
let group = [];
for (let id in this._layoutInfos) {
// We need to leave one slot on each group free so that we
// can add a layout containing the symbols for the
// language used in UI strings to ensure that toolkits can
// handle mnemonics like Alt+Ф even if the user is
// actually typing in a different layout.
let groupIndex = i % (this.MAX_LAYOUTS_PER_GROUP - 1);
if (groupIndex == 0)
group = [];
let info = this._layoutInfos[id];
group[groupIndex] = info;
info.group = group;
info.groupIndex = groupIndex;
i += 1;
}
},
_getLocaleLayout: function() {
let locale = GLib.get_language_names()[0];
if (locale.indexOf('_') == -1)
locale = DEFAULT_LOCALE;
let [found, , id] = GnomeDesktop.get_input_source_from_locale(locale);
if (!found)
[, , id] = GnomeDesktop.get_input_source_from_locale(DEFAULT_LOCALE);
let [found, , , _layout, _variant] = this._xkbInfo.get_layout_info(id);
if (found)
return { layout: _layout, variant: _variant };
else
return { layout: DEFAULT_LAYOUT, variant: DEFAULT_VARIANT };
},
_buildGroupStrings: function(_group) {
let group = _group.concat(this._localeLayoutInfo);
let layouts = group.map(function(g) { return g.layout; }).join(',');
let variants = group.map(function(g) { return g.variant; }).join(',');
return [layouts, variants];
},
setKeyboardOptions: function(options) {
this._xkbOptions = options;
},
_buildOptionsString: function() {
let options = this._xkbOptions.join(',');
return options;
}
});

View File

@@ -58,14 +58,6 @@ const AppSwitcherPopup = new Lang.Class({
this._currentWindow = -1; this._currentWindow = -1;
this.thumbnailsVisible = false; this.thumbnailsVisible = false;
let apps = Shell.AppSystem.get_default().get_running ();
if (apps.length == 0)
return;
this._switcherList = new AppSwitcher(apps, this);
this._items = this._switcherList.icons;
}, },
_allocate: function (actor, box, flags) { _allocate: function (actor, box, flags) {
@@ -107,6 +99,20 @@ const AppSwitcherPopup = new Lang.Class({
} }
}, },
_createSwitcher: function() {
let apps = Shell.AppSystem.get_default().get_running ();
if (apps.length == 0)
return false;
this._switcherList = new AppSwitcher(apps, this);
this._items = this._switcherList.icons;
if (this._items.length == 0)
return false;
return true;
},
_initialSelection: function(backward, binding) { _initialSelection: function(backward, binding) {
if (binding == 'switch-group') { if (binding == 'switch-group') {
if (backward) { if (backward) {
@@ -359,18 +365,9 @@ const WindowSwitcherPopup = new Lang.Class({
Name: 'WindowSwitcherPopup', Name: 'WindowSwitcherPopup',
Extends: SwitcherPopup.SwitcherPopup, Extends: SwitcherPopup.SwitcherPopup,
_init: function() { _init: function(items) {
this.parent(); this.parent(items);
this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell.window-switcher' }); this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell.window-switcher' });
let windows = this._getWindowList();
if (windows.length == 0)
return;
let mode = this._settings.get_enum('app-icon-mode');
this._switcherList = new WindowList(windows, mode);
this._items = this._switcherList.icons;
}, },
_getWindowList: function() { _getWindowList: function() {
@@ -378,6 +375,31 @@ const WindowSwitcherPopup = new Lang.Class({
return global.display.get_tab_list(Meta.TabList.NORMAL, workspace); return global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
}, },
_createSwitcher: function() {
let windows = this._getWindowList();
if (windows.length == 0)
return false;
let mode = this._settings.get_enum('app-icon-mode');
this._switcherList = new WindowList(windows, mode);
this._items = this._switcherList.icons;
if (this._items.length == 0)
return false;
return true;
},
_initialSelection: function(backward, binding) {
if (binding == 'switch-windows-backward' || backward)
this._select(this._items.length - 1);
else if (this._items.length == 1)
this._select(0);
else
this._select(1);
},
_keyPressHandler: function(keysym, action) { _keyPressHandler: function(keysym, action) {
if (action == Meta.KeyBindingAction.SWITCH_WINDOWS) { if (action == Meta.KeyBindingAction.SWITCH_WINDOWS) {
this._select(this._next()); this._select(this._next());

View File

@@ -1267,7 +1267,6 @@ const FolderIcon = new Lang.Class({
addAppId(appInfo.get_id()); addAppId(appInfo.get_id());
}); });
this.actor.visible = this.view.getAllItems().length > 0;
this.view.loadGrid(); this.view.loadGrid();
this.emit('apps-changed'); this.emit('apps-changed');
}, },
@@ -1688,8 +1687,7 @@ const AppIcon = new Lang.Class({
activate: function (button) { activate: function (button) {
let event = Clutter.get_current_event(); let event = Clutter.get_current_event();
let modifiers = event ? event.get_state() : 0; let modifiers = event ? event.get_state() : 0;
let openNewWindow = this.app.can_open_new_window () && let openNewWindow = modifiers & Clutter.ModifierType.CONTROL_MASK &&
modifiers & Clutter.ModifierType.CONTROL_MASK &&
this.app.state == Shell.AppState.RUNNING || this.app.state == Shell.AppState.RUNNING ||
button && button == 2; button && button == 2;

View File

@@ -14,11 +14,6 @@ const RENAMED_DESKTOP_IDS = {
'gcalctool.desktop': 'gnome-calculator.desktop', 'gcalctool.desktop': 'gnome-calculator.desktop',
'gedit.desktop': 'org.gnome.gedit.desktop', 'gedit.desktop': 'org.gnome.gedit.desktop',
'glchess.desktop': 'gnome-chess.desktop', 'glchess.desktop': 'gnome-chess.desktop',
'glines.desktop': 'five-or-more.desktop',
'gnect.desktop': 'four-in-a-row.desktop',
'gnibbles.desktop': 'gnome-nibbles.desktop',
'gnobots2.desktop': 'gnome-robots.desktop',
'gnome-boxes.desktop': 'org.gnome.Boxes.desktop',
'gnome-clocks.desktop': 'org.gnome.clocks.desktop', 'gnome-clocks.desktop': 'org.gnome.clocks.desktop',
'gnome-contacts.desktop': 'org.gnome.Contacts.desktop', 'gnome-contacts.desktop': 'org.gnome.Contacts.desktop',
'gnome-documents.desktop': 'org.gnome.Documents.desktop', 'gnome-documents.desktop': 'org.gnome.Documents.desktop',
@@ -28,9 +23,6 @@ const RENAMED_DESKTOP_IDS = {
'gnome-software.desktop': 'org.gnome.Software.desktop', 'gnome-software.desktop': 'org.gnome.Software.desktop',
'gnome-weather.desktop': 'org.gnome.Weather.Application.desktop', 'gnome-weather.desktop': 'org.gnome.Weather.Application.desktop',
'gnomine.desktop': 'gnome-mines.desktop', 'gnomine.desktop': 'gnome-mines.desktop',
'gnotravex.desktop': 'gnome-tetravex.desktop',
'gnotski.desktop': 'gnome-klotski.desktop',
'gtali.desktop': 'tali.desktop',
'nautilus.desktop': 'org.gnome.Nautilus.desktop', 'nautilus.desktop': 'org.gnome.Nautilus.desktop',
'polari.desktop': 'org.gnome.Polari.desktop', 'polari.desktop': 'org.gnome.Polari.desktop',
'totem.desktop': 'org.gnome.Totem.desktop', 'totem.desktop': 'org.gnome.Totem.desktop',

View File

@@ -242,7 +242,11 @@ const Background = new Lang.Class({
destroy: function() { destroy: function() {
this._cancellable.cancel(); this._cancellable.cancel();
this._removeAnimationTimeout();
if (this._updateAnimationTimeoutId) {
GLib.source_remove (this._updateAnimationTimeoutId);
this._updateAnimationTimeoutId = 0;
}
let i; let i;
let keys = Object.keys(this._fileWatches); let keys = Object.keys(this._fileWatches);
@@ -256,13 +260,6 @@ const Background = new Lang.Class({
this._settingsChangedSignalId = 0; this._settingsChangedSignalId = 0;
}, },
updateResolution: function() {
if (this._animation) {
this._removeAnimationTimeout();
this._updateAnimation();
}
},
_setLoaded: function() { _setLoaded: function() {
if (this.isLoaded) if (this.isLoaded)
return; return;
@@ -306,13 +303,6 @@ const Background = new Lang.Class({
this._fileWatches[filename] = signalId; this._fileWatches[filename] = signalId;
}, },
_removeAnimationTimeout: function() {
if (this._updateAnimationTimeoutId) {
GLib.source_remove(this._updateAnimationTimeoutId);
this._updateAnimationTimeoutId = 0;
}
},
_updateAnimation: function() { _updateAnimation: function() {
this._updateAnimationTimeoutId = 0; this._updateAnimationTimeoutId = 0;
@@ -487,23 +477,6 @@ const BackgroundSource = new Lang.Class({
this._overrideImage = GLib.getenv('SHELL_BACKGROUND_IMAGE'); this._overrideImage = GLib.getenv('SHELL_BACKGROUND_IMAGE');
this._settings = new Gio.Settings({ schema_id: settingsSchema }); this._settings = new Gio.Settings({ schema_id: settingsSchema });
this._backgrounds = []; this._backgrounds = [];
this._monitorsChangedId = global.screen.connect('monitors-changed',
Lang.bind(this, this._onMonitorsChanged));
},
_onMonitorsChanged: function() {
for (let monitorIndex in this._backgrounds) {
let background = this._backgrounds[monitorIndex];
if (monitorIndex < this._layoutManager.monitors.length) {
background.updateResolution();
} else {
background.disconnect(background._changedId);
background.destroy();
delete this._backgrounds[monitorIndex];
}
}
}, },
getBackground: function(monitorIndex) { getBackground: function(monitorIndex) {
@@ -540,8 +513,8 @@ const BackgroundSource = new Lang.Class({
style: style style: style
}); });
background._changedId = background.connect('changed', Lang.bind(this, function() { let changedId = background.connect('changed', Lang.bind(this, function() {
background.disconnect(background._changedId); background.disconnect(changedId);
background.destroy(); background.destroy();
delete this._backgrounds[monitorIndex]; delete this._backgrounds[monitorIndex];
})); }));
@@ -553,13 +526,8 @@ const BackgroundSource = new Lang.Class({
}, },
destroy: function() { destroy: function() {
global.screen.disconnect(this._monitorsChangedId); for (let monitorIndex in this._backgrounds)
this._backgrounds[monitorIndex].destroy();
for (let monitorIndex in this._backgrounds) {
let background = this._backgrounds[monitorIndex];
background.disconnect(background._changedId);
background.destroy();
}
this._backgrounds = null; this._backgrounds = null;
} }
@@ -733,7 +701,7 @@ const BackgroundManager = new Lang.Class({
background.disconnect(changeSignalId); background.disconnect(changeSignalId);
if (backgroundActor.loadedSignalId) if (backgroundActor.loadedSignalId)
background.disconnect(backgroundActor.loadedSignalId); backgroundActor.background._delegate.disconnect(backgroundActor.loadedSignalId);
})); }));
return backgroundActor; return backgroundActor;

View File

@@ -84,7 +84,6 @@ const KeyringDialog = new Lang.Class({
let table = new St.Widget({ style_class: 'keyring-dialog-control-table', let table = new St.Widget({ style_class: 'keyring-dialog-control-table',
layout_manager: layout }); layout_manager: layout });
layout.hookup_style(table); layout.hookup_style(table);
let rtl = table.get_text_direction() == Clutter.TextDirection.RTL;
let row = 0; let row = 0;
if (this.prompt.password_visible) { if (this.prompt.password_visible) {
@@ -93,6 +92,7 @@ const KeyringDialog = new Lang.Class({
y_align: Clutter.ActorAlign.CENTER }); y_align: Clutter.ActorAlign.CENTER });
label.set_text(_("Password:")); label.set_text(_("Password:"));
label.clutter_text.ellipsize = Pango.EllipsizeMode.NONE; label.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
layout.attach(label, 0, row, 1, 1);
this._passwordEntry = new St.Entry({ style_class: 'prompt-dialog-password-entry', this._passwordEntry = new St.Entry({ style_class: 'prompt-dialog-password-entry',
text: '', text: '',
can_focus: true, can_focus: true,
@@ -100,14 +100,7 @@ const KeyringDialog = new Lang.Class({
this._passwordEntry.clutter_text.set_password_char('\u25cf'); // ● U+25CF BLACK CIRCLE this._passwordEntry.clutter_text.set_password_char('\u25cf'); // ● U+25CF BLACK CIRCLE
ShellEntry.addContextMenu(this._passwordEntry, { isPassword: true }); ShellEntry.addContextMenu(this._passwordEntry, { isPassword: true });
this._passwordEntry.clutter_text.connect('activate', Lang.bind(this, this._onPasswordActivate)); this._passwordEntry.clutter_text.connect('activate', Lang.bind(this, this._onPasswordActivate));
layout.attach(this._passwordEntry, 1, row, 1, 1);
if (rtl) {
layout.attach(this._passwordEntry, 0, row, 1, 1);
layout.attach(label, 1, row, 1, 1);
} else {
layout.attach(label, 0, row, 1, 1);
layout.attach(this._passwordEntry, 1, row, 1, 1);
}
row++; row++;
} else { } else {
this._passwordEntry = null; this._passwordEntry = null;
@@ -118,6 +111,7 @@ const KeyringDialog = new Lang.Class({
x_align: Clutter.ActorAlign.START, x_align: Clutter.ActorAlign.START,
y_align: Clutter.ActorAlign.CENTER })); y_align: Clutter.ActorAlign.CENTER }));
label.set_text(_("Type again:")); label.set_text(_("Type again:"));
layout.attach(label, 0, row, 1, 1);
this._confirmEntry = new St.Entry({ style_class: 'prompt-dialog-password-entry', this._confirmEntry = new St.Entry({ style_class: 'prompt-dialog-password-entry',
text: '', text: '',
can_focus: true, can_focus: true,
@@ -125,13 +119,7 @@ const KeyringDialog = new Lang.Class({
this._confirmEntry.clutter_text.set_password_char('\u25cf'); // ● U+25CF BLACK CIRCLE this._confirmEntry.clutter_text.set_password_char('\u25cf'); // ● U+25CF BLACK CIRCLE
ShellEntry.addContextMenu(this._confirmEntry, { isPassword: true }); ShellEntry.addContextMenu(this._confirmEntry, { isPassword: true });
this._confirmEntry.clutter_text.connect('activate', Lang.bind(this, this._onConfirmActivate)); this._confirmEntry.clutter_text.connect('activate', Lang.bind(this, this._onConfirmActivate));
if (rtl) { layout.attach(this._confirmEntry, 1, row, 1, 1);
layout.attach(this._confirmEntry, 0, row, 1, 1);
layout.attach(label, 1, row, 1, 1);
} else {
layout.attach(label, 0, row, 1, 1);
layout.attach(this._confirmEntry, 1, row, 1, 1);
}
row++; row++;
} else { } else {
this._confirmEntry = null; this._confirmEntry = null;
@@ -144,7 +132,7 @@ const KeyringDialog = new Lang.Class({
let choice = new CheckBox.CheckBox(); let choice = new CheckBox.CheckBox();
this.prompt.bind_property('choice-label', choice.getLabelActor(), 'text', GObject.BindingFlags.SYNC_CREATE); this.prompt.bind_property('choice-label', choice.getLabelActor(), 'text', GObject.BindingFlags.SYNC_CREATE);
this.prompt.bind_property('choice-chosen', choice.actor, 'checked', GObject.BindingFlags.SYNC_CREATE | GObject.BindingFlags.BIDIRECTIONAL); this.prompt.bind_property('choice-chosen', choice.actor, 'checked', GObject.BindingFlags.SYNC_CREATE | GObject.BindingFlags.BIDIRECTIONAL);
layout.attach(choice.actor, rtl ? 0 : 1, row, 1, 1); layout.attach(choice.actor, 1, row, 1, 1);
row++; row++;
} }
@@ -152,7 +140,7 @@ const KeyringDialog = new Lang.Class({
x_align: Clutter.ActorAlign.START }); x_align: Clutter.ActorAlign.START });
warning.clutter_text.ellipsize = Pango.EllipsizeMode.NONE; warning.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
warning.clutter_text.line_wrap = true; warning.clutter_text.line_wrap = true;
layout.attach(warning, rtl ? 0 : 1, row, 1, 1); layout.attach(warning, 1, row, 1, 1);
this.prompt.bind_property('warning-visible', warning, 'visible', GObject.BindingFlags.SYNC_CREATE); this.prompt.bind_property('warning-visible', warning, 'visible', GObject.BindingFlags.SYNC_CREATE);
this.prompt.bind_property('warning', warning, 'text', GObject.BindingFlags.SYNC_CREATE); this.prompt.bind_property('warning', warning, 'text', GObject.BindingFlags.SYNC_CREATE);

View File

@@ -140,10 +140,20 @@ const CtrlAltTabPopup = new Lang.Class({
Name: 'CtrlAltTabPopup', Name: 'CtrlAltTabPopup',
Extends: SwitcherPopup.SwitcherPopup, Extends: SwitcherPopup.SwitcherPopup,
_init: function(items) { _createSwitcher: function() {
this.parent(items);
this._switcherList = new CtrlAltTabSwitcher(this._items); this._switcherList = new CtrlAltTabSwitcher(this._items);
return true;
},
_initialSelection: function(backward, binding) {
if (binding == 'switch-panels') {
if (backward)
this._selectedIndex = this._items.length - 1;
} else if (binding == 'switch-panels-backward') {
if (!backward)
this._selectedIndex = this._items.length - 1;
}
this._select(this._selectedIndex);
}, },
_keyPressHandler: function(keysym, action) { _keyPressHandler: function(keysym, action) {

View File

@@ -38,6 +38,8 @@ const UserWidget = imports.ui.userWidget;
let _endSessionDialog = null; let _endSessionDialog = null;
const TRIGGER_OFFLINE_UPDATE = '/usr/libexec/pk-trigger-offline-update';
const _ITEM_ICON_SIZE = 48; const _ITEM_ICON_SIZE = 48;
const _DIALOG_ICON_SIZE = 48; const _DIALOG_ICON_SIZE = 48;
@@ -132,18 +134,11 @@ const restartInstallDialogContent = {
showOtherSessions: true, showOtherSessions: true,
}; };
const DialogType = {
LOGOUT: 0 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_LOGOUT */,
SHUTDOWN: 1 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_SHUTDOWN */,
RESTART: 2 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_RESTART */,
UPDATE_RESTART: 3
};
const DialogContent = { const DialogContent = {
0 /* DialogType.LOGOUT */: logoutDialogContent, 0 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_LOGOUT */: logoutDialogContent,
1 /* DialogType.SHUTDOWN */: shutdownDialogContent, 1 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_SHUTDOWN */: shutdownDialogContent,
2 /* DialogType.RESTART */: restartDialogContent, 2 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_RESTART */: restartDialogContent,
3 /* DialogType.UPDATE_RESTART */: restartInstallDialogContent 3: restartInstallDialogContent
}; };
const MAX_USERS_IN_SESSION_DIALOG = 5; const MAX_USERS_IN_SESSION_DIALOG = 5;
@@ -160,19 +155,6 @@ const LogindSessionIface = '<node> \
const LogindSession = Gio.DBusProxy.makeProxyWrapper(LogindSessionIface); const LogindSession = Gio.DBusProxy.makeProxyWrapper(LogindSessionIface);
const PkOfflineIface = '<node> \
<interface name="org.freedesktop.PackageKit.Offline"> \
<property name="UpdatePrepared" type="b" access="read"/> \
<property name="TriggerAction" type="s" access="read"/> \
<method name="Trigger"> \
<arg type="s" name="action" direction="in"/> \
</method> \
<method name="Cancel"/> \
</interface> \
</node>';
const PkOfflineProxy = Gio.DBusProxy.makeProxyWrapper(PkOfflineIface);
const UPowerIface = '<node> \ const UPowerIface = '<node> \
<interface name="org.freedesktop.UPower"> \ <interface name="org.freedesktop.UPower"> \
<property name="OnBattery" type="b" access="read"/> \ <property name="OnBattery" type="b" access="read"/> \
@@ -263,14 +245,9 @@ const EndSessionDialog = new Lang.Class({
this._loginManager = LoginManager.getLoginManager(); this._loginManager = LoginManager.getLoginManager();
this._userManager = AccountsService.UserManager.get_default(); this._userManager = AccountsService.UserManager.get_default();
this._user = this._userManager.get_user(GLib.get_user_name()); this._user = this._userManager.get_user(GLib.get_user_name());
this._updatesFile = Gio.File.new_for_path('/system-update');
this._preparedUpdateFile = Gio.File.new_for_path('/var/lib/PackageKit/prepared-update');
this._pkOfflineProxy = new PkOfflineProxy(Gio.DBus.system,
'org.freedesktop.PackageKit',
'/org/freedesktop/PackageKit',
Lang.bind(this, function(proxy, error) {
if (error)
log(error.message);
}));
this._powerProxy = new UPowerProxy(Gio.DBus.system, this._powerProxy = new UPowerProxy(Gio.DBus.system,
'org.freedesktop.UPower', 'org.freedesktop.UPower',
'/org/freedesktop/UPower', '/org/freedesktop/UPower',
@@ -522,29 +499,31 @@ const EndSessionDialog = new Lang.Class({
}, },
_triggerOfflineUpdateReboot: function(callback) { _triggerOfflineUpdateReboot: function(callback) {
this._pkOfflineProxy.TriggerRemote('reboot', this._pkexecSpawn([TRIGGER_OFFLINE_UPDATE, 'reboot'], callback);
function (result, error) {
if (error)
log(error.message);
callback();
});
}, },
_triggerOfflineUpdateShutdown: function(callback) { _triggerOfflineUpdateShutdown: function(callback) {
this._pkOfflineProxy.TriggerRemote('power-off', this._pkexecSpawn([TRIGGER_OFFLINE_UPDATE, 'power-off'], callback);
function (result, error) {
if (error)
log(error.message);
callback();
});
}, },
_triggerOfflineUpdateCancel: function(callback) { _triggerOfflineUpdateCancel: function(callback) {
this._pkOfflineProxy.CancelRemote(function (result, error) { this._pkexecSpawn([TRIGGER_OFFLINE_UPDATE, '--cancel'], callback);
if (error) },
log(error.message);
_pkexecSpawn: function(argv, callback) {
let ret, pid;
try {
[ret, pid] = GLib.spawn_async(null, ['pkexec'].concat(argv), null,
GLib.SpawnFlags.DO_NOT_REAP_CHILD | GLib.SpawnFlags.SEARCH_PATH,
null);
} catch (e) {
log('Error spawning "pkexec %s": %s'.format(argv.join(' '), e.toString()));
callback();
return;
}
GLib.child_watch_add(GLib.PRIORITY_DEFAULT, pid, function(pid, status) {
GLib.spawn_close_pid(pid);
callback(); callback();
}); });
@@ -698,9 +677,8 @@ const EndSessionDialog = new Lang.Class({
this._totalSecondsToStayOpen = totalSecondsToStayOpen; this._totalSecondsToStayOpen = totalSecondsToStayOpen;
this._type = type; this._type = type;
if (this._type == DialogType.RESTART && if (this._type == 2 && this._updatesFile.query_exists(null))
this._pkOfflineProxy.TriggerAction == 'reboot') this._type = 3;
this._type = DialogType.UPDATE_RESTART;
this._applications = []; this._applications = [];
this._applicationList.destroy_all_children(); this._applicationList.destroy_all_children();
@@ -727,19 +705,19 @@ const EndSessionDialog = new Lang.Class({
if (dialogContent.showOtherSessions) if (dialogContent.showOtherSessions)
this._loadSessions(); this._loadSessions();
let updateAlreadyTriggered = this._pkOfflineProxy.TriggerAction == 'power-off' || this._pkOfflineProxy.TriggerAction == 'reboot'; let preparedUpdate = this._preparedUpdateFile.query_exists(null);
let updatePrepared = this._pkOfflineProxy.UpdatePrepared; let updateAlreadyTriggered = this._updatesFile.query_exists(null);
let updatesAllowed = this._updatesPermission && this._updatesPermission.allowed; let updatesAllowed = this._updatesPermission && this._updatesPermission.allowed;
_setCheckBoxLabel(this._checkBox, dialogContent.checkBoxText); _setCheckBoxLabel(this._checkBox, dialogContent.checkBoxText);
this._checkBox.actor.visible = (dialogContent.checkBoxText && updatePrepared && updatesAllowed); this._checkBox.actor.visible = (dialogContent.checkBoxText && preparedUpdate && updatesAllowed);
this._checkBox.actor.checked = (updatePrepared && updateAlreadyTriggered); this._checkBox.actor.checked = (preparedUpdate && updateAlreadyTriggered);
// We show the warning either together with the checkbox, or when // We show the warning either together with the checkbox, or when
// updates have already been triggered, but the user doesn't have // updates have already been triggered, but the user doesn't have
// enough permissions to cancel them. // enough permissions to cancel them.
this._batteryWarning.visible = (dialogContent.showBatteryWarning && this._batteryWarning.visible = (dialogContent.showBatteryWarning &&
(this._checkBox.actor.visible || updatePrepared && updateAlreadyTriggered && !updatesAllowed)); (this._checkBox.actor.visible || preparedUpdate && updateAlreadyTriggered && !updatesAllowed));
this._updateButtons(); this._updateButtons();

View File

@@ -271,17 +271,10 @@ function onEnabledExtensionsChanged() {
} }
function _onVersionValidationChanged() { function _onVersionValidationChanged() {
// we want to reload all extensions, but only enable
// extensions when allowed by the sessionMode, so
// temporarily disable them all
enabledExtensions = [];
for (let uuid in ExtensionUtils.extensions)
reloadExtension(ExtensionUtils.extensions[uuid]);
enabledExtensions = getEnabledExtensions();
if (Main.sessionMode.allowExtensions) { if (Main.sessionMode.allowExtensions) {
enabledExtensions.forEach(function(uuid) { enabledExtensions.forEach(function(uuid) {
enableExtension(uuid); if (ExtensionUtils.extensions[uuid])
reloadExtension(ExtensionUtils.extensions[uuid]);
}); });
} }
} }

View File

@@ -447,6 +447,7 @@ const IconGrid = new Lang.Class({
actorClone.set_size(originalWidth, originalHeight); actorClone.set_size(originalWidth, originalHeight);
let bounceUpTime = ANIMATION_TIME_IN / 4; let bounceUpTime = ANIMATION_TIME_IN / 4;
// Defeat onComplete anonymous function closure
let isLastItem = index == actors.length - 1; let isLastItem = index == actors.length - 1;
Tweener.addTween(actorClone, Tweener.addTween(actorClone,
{ time: bounceUpTime, { time: bounceUpTime,
@@ -520,10 +521,11 @@ const IconGrid = new Lang.Class({
let scaleY = sourceScaledHeight / height; let scaleY = sourceScaledHeight / height;
let [adjustedSourcePositionX, adjustedSourcePositionY] = [sourceCenterX - sourceScaledWidth / 2, sourceCenterY - sourceScaledHeight / 2]; let [adjustedSourcePositionX, adjustedSourcePositionY] = [sourceCenterX - sourceScaledWidth / 2, sourceCenterY - sourceScaledHeight / 2];
// Defeat onComplete anonymous function closure
let isLastItem = index == actors.length - 1;
let movementParams, fadeParams; let movementParams, fadeParams;
if (animationDirection == AnimationDirection.IN) { if (animationDirection == AnimationDirection.IN) {
let isLastItem = actor._distance == minDist;
actorClone.opacity = 0; actorClone.opacity = 0;
actorClone.set_scale(scaleX, scaleY); actorClone.set_scale(scaleX, scaleY);
@@ -551,8 +553,6 @@ const IconGrid = new Lang.Class({
delay: delay, delay: delay,
opacity: 255 }; opacity: 255 };
} else { } else {
let isLastItem = actor._distance == maxDist;
let [startX, startY] = actor._transformedPosition; let [startX, startY] = actor._transformedPosition;
actorClone.set_position(startX, startY); actorClone.set_position(startX, startY);
@@ -569,7 +569,6 @@ const IconGrid = new Lang.Class({
this._animationDone(); this._animationDone();
this._restoreItemsOpacity(); this._restoreItemsOpacity();
} }
actor.reactive = true;
actorClone.destroy(); actorClone.destroy();
})}; })};
fadeParams = { time: ANIMATION_FADE_IN_TIME_FOR_ITEM, fadeParams = { time: ANIMATION_FADE_IN_TIME_FOR_ITEM,

View File

@@ -204,24 +204,24 @@ function _initializeUI() {
} }
layoutManager.connect('startup-complete', function() { layoutManager.connect('startup-complete', function() {
if (keybindingMode == Shell.KeyBindingMode.NONE) { if (keybindingMode == Shell.KeyBindingMode.NONE) {
keybindingMode = Shell.KeyBindingMode.NORMAL; keybindingMode = Shell.KeyBindingMode.NORMAL;
} }
if (screenShield) { if (screenShield) {
screenShield.lockIfWasLocked(); screenShield.lockIfWasLocked();
} }
if (LoginManager.haveSystemd() && if (LoginManager.haveSystemd() &&
sessionMode.currentMode != 'gdm' && sessionMode.currentMode != 'gdm' &&
sessionMode.currentMode != 'initial-setup') { sessionMode.currentMode != 'initial-setup') {
// Do not import globally to not depend // Do not import globally to not depend
// on systemd on non-systemd systems. // on systemd on non-systemd systems.
let GSystem = imports.gi.GSystem; let GSystem = imports.gi.GSystem;
GSystem.log_structured_print('GNOME Shell started at ' + _startDate, GSystem.log_structured_print('GNOME Shell started at ' + _startDate,
['MESSAGE_ID=' + GNOMESHELL_STARTED_MESSAGE_ID]); ['MESSAGE_ID=' + GNOMESHELL_STARTED_MESSAGE_ID]);
} else { } else {
log('GNOME Shell started at ' + _startDate); log('GNOME Shell started at ' + _startDate);
} }
}); });
} }
function _loadDefaultStylesheet() { function _loadDefaultStylesheet() {

View File

@@ -27,7 +27,6 @@ const PopupMenu = imports.ui.popupMenu;
const Params = imports.misc.params; const Params = imports.misc.params;
const Tweener = imports.ui.tweener; const Tweener = imports.ui.tweener;
const Util = imports.misc.util; const Util = imports.misc.util;
const ViewSelector = imports.ui.viewSelector;
const SHELL_KEYBINDINGS_SCHEMA = 'org.gnome.shell.keybindings'; const SHELL_KEYBINDINGS_SCHEMA = 'org.gnome.shell.keybindings';
@@ -1812,13 +1811,6 @@ const MessageTray = new Lang.Class({
y_expand: true }); y_expand: true });
this.actor.add_actor(this._summary); this.actor.add_actor(this._summary);
this._focusTrap = new ViewSelector.FocusTrap({ can_focus: true });
this._focusTrap.connect('key-focus-in', Lang.bind(this,
function() {
this._messageTrayMenuButton.actor.grab_key_focus();
}));
this._summary.add_actor(this._focusTrap);
this._summaryMotionId = 0; this._summaryMotionId = 0;
this._summaryBoxPointer = new BoxPointer.BoxPointer(St.Side.BOTTOM, this._summaryBoxPointer = new BoxPointer.BoxPointer(St.Side.BOTTOM,
@@ -1943,9 +1935,6 @@ const MessageTray = new Lang.Class({
this._messageTrayMenuButton = new MessageTrayMenuButton(this); this._messageTrayMenuButton = new MessageTrayMenuButton(this);
this.actor.add_actor(this._messageTrayMenuButton.actor); this.actor.add_actor(this._messageTrayMenuButton.actor);
this._messageTrayMenuButton.actor.connect('key-press-event',
Lang.bind(this, this._onTrayButtonKeyPress));
let gesture = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM); let gesture = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM);
gesture.connect('activated', Lang.bind(this, this.toggle)); gesture.connect('activated', Lang.bind(this, this.toggle));
global.stage.add_action(gesture); global.stage.add_action(gesture);
@@ -2041,16 +2030,6 @@ const MessageTray = new Lang.Class({
return GLib.SOURCE_REMOVE; return GLib.SOURCE_REMOVE;
}, },
_onTrayButtonKeyPress: function(actor, event) {
if (event.get_key_symbol() == Clutter.ISO_Left_Tab) {
this._focusTrap.can_focus = false;
this._summary.navigate_focus(null, Gtk.DirectionType.TAB_BACKWARD, false);
this._focusTrap.can_focus = true;
return Clutter.EVENT_STOP;
}
return Clutter.EVENT_PROPAGATE;
},
_onNotificationKeyRelease: function(actor, event) { _onNotificationKeyRelease: function(actor, event) {
if (event.get_key_symbol() == Clutter.KEY_Escape && event.get_state() == 0) { if (event.get_key_symbol() == Clutter.KEY_Escape && event.get_state() == 0) {
this._expireNotification(); this._expireNotification();

View File

@@ -435,17 +435,17 @@ const Overview = new Lang.Class({
this._inDrag = false; this._inDrag = false;
}, },
beginWindowDrag: function(window) { beginWindowDrag: function(clone) {
this.emit('window-drag-begin', window); this.emit('window-drag-begin', clone);
this._inDrag = true; this._inDrag = true;
}, },
cancelledWindowDrag: function(window) { cancelledWindowDrag: function(clone) {
this.emit('window-drag-cancelled', window); this.emit('window-drag-cancelled', clone);
}, },
endWindowDrag: function(window) { endWindowDrag: function(clone) {
this.emit('window-drag-end', window); this.emit('window-drag-end', clone);
this._inDrag = false; this._inDrag = false;
}, },

View File

@@ -918,14 +918,14 @@ const PopupSubMenu = new Lang.Class({
if (animate && needsScrollbar) if (animate && needsScrollbar)
animate = false; animate = false;
let targetAngle = this.actor.text_direction == Clutter.TextDirection.RTL ? -90 : 90;
if (animate) { if (animate) {
let [minHeight, naturalHeight] = this.actor.get_preferred_height(-1); let [minHeight, naturalHeight] = this.actor.get_preferred_height(-1);
this.actor.height = 0; this.actor.height = 0;
this.actor._arrowRotation = this._arrow.rotation_angle_z; this.actor._arrowRotation = this._arrow.rotation_angle_z;
let angle = this.actor._arrowRotation;
// animate to the first multiple of 90 greater than current angle
Tweener.addTween(this.actor, Tweener.addTween(this.actor,
{ _arrowRotation: targetAngle, { _arrowRotation: angle - angle % 90 + 90,
height: naturalHeight, height: naturalHeight,
time: 0.25, time: 0.25,
onUpdateScope: this, onUpdateScope: this,
@@ -938,7 +938,7 @@ const PopupSubMenu = new Lang.Class({
} }
}); });
} else { } else {
this._arrow.rotation_angle_z = targetAngle; this._arrow.rotation_angle_z = this.actor._arrowRotation + 90;
} }
}, },
@@ -957,8 +957,10 @@ const PopupSubMenu = new Lang.Class({
if (animate) { if (animate) {
this.actor._arrowRotation = this._arrow.rotation_angle_z; this.actor._arrowRotation = this._arrow.rotation_angle_z;
let angle = this.actor._arrowRotation;
// animate to the first multiple of 90 less than current angle
Tweener.addTween(this.actor, Tweener.addTween(this.actor,
{ _arrowRotation: 0, { _arrowRotation: (angle - 1) - (angle - 1) % 90,
height: 0, height: 0,
time: 0.25, time: 0.25,
onUpdateScope: this, onUpdateScope: this,
@@ -972,7 +974,7 @@ const PopupSubMenu = new Lang.Class({
}, },
}); });
} else { } else {
this._arrow.rotation_angle_z = 0; this._arrow.rotation_angle_z = this.actor._arrowRotation - 90;
this.actor.hide(); this.actor.hide();
} }
}, },
@@ -1050,6 +1052,8 @@ const PopupSubMenuMenuItem = new Lang.Class({
this._triangleBin = new St.Widget({ y_expand: true, this._triangleBin = new St.Widget({ y_expand: true,
y_align: Clutter.ActorAlign.CENTER }); y_align: Clutter.ActorAlign.CENTER });
this._triangleBin.add_child(this._triangle); this._triangleBin.add_child(this._triangle);
if (this._triangleBin.get_text_direction() == Clutter.TextDirection.RTL)
this._triangleBin.set_scale(-1.0, 1.0);
this.actor.add_child(this._triangleBin); this.actor.add_child(this._triangleBin);
this.actor.add_accessible_state (Atk.StateType.EXPANDABLE); this.actor.add_accessible_state (Atk.StateType.EXPANDABLE);

View File

@@ -2,7 +2,6 @@
const Clutter = imports.gi.Clutter; const Clutter = imports.gi.Clutter;
const Lang = imports.lang; const Lang = imports.lang;
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const Gtk = imports.gi.Gtk; const Gtk = imports.gi.Gtk;
const Meta = imports.gi.Meta; const Meta = imports.gi.Meta;
@@ -25,6 +24,108 @@ const SEARCH_PROVIDERS_SCHEMA = 'org.gnome.desktop.search-providers';
const MAX_LIST_SEARCH_RESULTS_ROWS = 3; const MAX_LIST_SEARCH_RESULTS_ROWS = 3;
const MAX_GRID_SEARCH_RESULTS_ROWS = 1; const MAX_GRID_SEARCH_RESULTS_ROWS = 1;
const SearchSystem = new Lang.Class({
Name: 'SearchSystem',
_init: function() {
this._providers = [];
this._registerProvider(new AppDisplay.AppSearchProvider());
this._searchSettings = new Gio.Settings({ schema_id: SEARCH_PROVIDERS_SCHEMA });
this._searchSettings.connect('changed::enabled', Lang.bind(this, this._reloadRemoteProviders));
this._searchSettings.connect('changed::disabled', Lang.bind(this, this._reloadRemoteProviders));
this._searchSettings.connect('changed::disable-external', Lang.bind(this, this._reloadRemoteProviders));
this._searchSettings.connect('changed::sort-order', Lang.bind(this, this._reloadRemoteProviders));
this._reloadRemoteProviders();
this._cancellable = new Gio.Cancellable();
},
addProvider: function(provider) {
this._providers.push(provider);
this.emit('providers-changed');
},
_reloadRemoteProviders: function() {
let remoteProviders = this._providers.filter(function(provider) {
return provider.isRemoteProvider;
});
remoteProviders.forEach(Lang.bind(this, function(provider) {
this._unregisterProvider(provider);
}));
RemoteSearch.loadRemoteSearchProviders(Lang.bind(this, function(providers) {
providers.forEach(Lang.bind(this, this._registerProvider));
}));
this.emit('providers-changed');
},
_registerProvider: function (provider) {
this._providers.push(provider);
},
_unregisterProvider: function (provider) {
let index = this._providers.indexOf(provider);
this._providers.splice(index, 1);
if (provider.display)
provider.display.destroy();
},
getProviders: function() {
return this._providers;
},
getTerms: function() {
return this._terms;
},
reset: function() {
this._terms = [];
this._results = {};
},
_gotResults: function(results, provider) {
this._results[provider.id] = results;
this.emit('search-updated', provider, results);
},
setTerms: function(terms) {
this._cancellable.cancel();
this._cancellable.reset();
let previousResults = this._results;
let previousTerms = this._terms;
this.reset();
if (!terms)
return;
let searchString = terms.join(' ');
let previousSearchString = previousTerms.join(' ');
if (searchString == previousSearchString)
return;
let isSubSearch = false;
if (previousTerms.length > 0)
isSubSearch = searchString.indexOf(previousSearchString) == 0;
this._terms = terms;
this._providers.forEach(Lang.bind(this, function(provider) {
let previousProviderResults = previousResults[provider.id];
if (isSubSearch && previousProviderResults)
provider.getSubsearchResultSet(previousProviderResults, terms, Lang.bind(this, this._gotResults, provider), this._cancellable);
else
provider.getInitialResultSet(terms, Lang.bind(this, this._gotResults, provider), this._cancellable);
}));
}
});
Signals.addSignalMethods(SearchSystem.prototype);
const MaxWidthBin = new Lang.Class({ const MaxWidthBin = new Lang.Class({
Name: 'MaxWidthBin', Name: 'MaxWidthBin',
Extends: St.Bin, Extends: St.Bin,
@@ -234,10 +335,9 @@ const SearchResultsBase = new Lang.Class({
let hasMoreResults = results.length < providerResults.length; let hasMoreResults = results.length < providerResults.length;
this._ensureResultActors(results, Lang.bind(this, function(successful) { this._ensureResultActors(results, Lang.bind(this, function(successful) {
if (!successful) { this._clearResultDisplay();
this._clearResultDisplay(); if (!successful)
return; return;
}
// To avoid CSS transitions causing flickering when // To avoid CSS transitions causing flickering when
// the first search result stays the same, we hide the // the first search result stays the same, we hide the
@@ -397,120 +497,16 @@ const SearchResults = new Lang.Class({
this._statusText = new St.Label({ style_class: 'search-statustext' }); this._statusText = new St.Label({ style_class: 'search-statustext' });
this._statusBin = new St.Bin({ x_align: St.Align.MIDDLE, this._statusBin = new St.Bin({ x_align: St.Align.MIDDLE,
y_align: St.Align.MIDDLE }); y_align: St.Align.MIDDLE });
this.actor.add(this._statusBin, { expand: true }); this._content.add(this._statusBin, { expand: true });
this._statusBin.add_actor(this._statusText); this._statusBin.add_actor(this._statusText);
this._highlightDefault = false; this._highlightDefault = false;
this._defaultResult = null; this._defaultResult = null;
this._startingSearch = false;
this._terms = []; this._searchSystem = new SearchSystem();
this._results = {}; this._searchSystem.connect('search-updated', Lang.bind(this, this._updateResults));
this._searchSystem.connect('providers-changed', Lang.bind(this, this._updateProviderDisplays));
this._providers = []; this._updateProviderDisplays();
this._searchSettings = new Gio.Settings({ schema_id: SEARCH_PROVIDERS_SCHEMA });
this._searchSettings.connect('changed::disabled', Lang.bind(this, this._reloadRemoteProviders));
this._searchSettings.connect('changed::disable-external', Lang.bind(this, this._reloadRemoteProviders));
this._searchSettings.connect('changed::sort-order', Lang.bind(this, this._reloadRemoteProviders));
this._searchTimeoutId = 0;
this._cancellable = new Gio.Cancellable();
this._registerProvider(new AppDisplay.AppSearchProvider());
this._reloadRemoteProviders();
},
_reloadRemoteProviders: function() {
let remoteProviders = this._providers.filter(function(provider) {
return provider.isRemoteProvider;
});
remoteProviders.forEach(Lang.bind(this, function(provider) {
this._unregisterProvider(provider);
}));
RemoteSearch.loadRemoteSearchProviders(Lang.bind(this, function(providers) {
providers.forEach(Lang.bind(this, this._registerProvider));
}));
},
_registerProvider: function (provider) {
this._providers.push(provider);
this._ensureProviderDisplay(provider);
},
_unregisterProvider: function (provider) {
let index = this._providers.indexOf(provider);
this._providers.splice(index, 1);
if (provider.display)
provider.display.destroy();
},
_gotResults: function(results, provider) {
this._results[provider.id] = results;
this._updateResults(provider, results);
},
_doSearch: function() {
this._startingSearch = false;
let previousResults = this._results;
this._results = {};
this._providers.forEach(Lang.bind(this, function(provider) {
provider.searchInProgress = true;
let previousProviderResults = previousResults[provider.id];
if (this._isSubSearch && previousProviderResults)
provider.getSubsearchResultSet(previousProviderResults, this._terms, Lang.bind(this, this._gotResults, provider), this._cancellable);
else
provider.getInitialResultSet(this._terms, Lang.bind(this, this._gotResults, provider), this._cancellable);
}));
this._updateSearchProgress();
if (this._searchTimeoutId > 0) {
GLib.source_remove(this._searchTimeoutId);
this._searchTimeoutId = 0;
}
},
_onSearchTimeout: function() {
this._searchTimeoutId = 0;
this._doSearch();
return GLib.SOURCE_REMOVE;
},
setTerms: function(terms) {
this._startingSearch = true;
this._cancellable.cancel();
this._cancellable.reset();
if (!terms) {
if (this._searchTimeoutId > 0) {
GLib.source_remove(this._searchTimeoutId);
this._searchTimeoutId = 0;
}
return;
}
let searchString = terms.join(' ');
let previousSearchString = this._terms.join(' ');
if (searchString == previousSearchString)
return;
let isSubSearch = false;
if (this._terms.length > 0)
isSubSearch = searchString.indexOf(previousSearchString) == 0;
this._terms = terms;
this._isSubSearch = isSubSearch;
this._updateSearchProgress();
if (this._searchTimeoutId == 0)
this._searchTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 150, Lang.bind(this, this._onSearchTimeout));
}, },
_onPan: function(action) { _onPan: function(action) {
@@ -532,23 +528,44 @@ const SearchResults = new Lang.Class({
if (provider.appInfo) if (provider.appInfo)
providerDisplay = new ListSearchResults(provider); providerDisplay = new ListSearchResults(provider);
else else
providerDisplay = new GridSearchResults(provider, this.actor); providerDisplay = new GridSearchResults(provider, this._content);
providerDisplay.connect('key-focus-in', Lang.bind(this, this._keyFocusIn)); providerDisplay.connect('key-focus-in', Lang.bind(this, this._keyFocusIn));
this._content.add(providerDisplay.actor); this._content.add(providerDisplay.actor);
provider.display = providerDisplay; provider.display = providerDisplay;
}, },
_updateProviderDisplays: function() {
this._searchSystem.getProviders().forEach(Lang.bind(this, this._ensureProviderDisplay));
},
_clearDisplay: function() { _clearDisplay: function() {
this._providers.forEach(function(provider) { this._searchSystem.getProviders().forEach(function(provider) {
provider.display.clear(); provider.display.clear();
}); });
}, },
reset: function() {
this._searchSystem.reset();
this._statusBin.hide();
this._clearDisplay();
this._defaultResult = null;
},
startingSearch: function() {
this.reset();
this._statusText.set_text(_("Searching…"));
this._statusBin.show();
},
setTerms: function(terms) {
this._searchSystem.setTerms(terms);
},
_maybeSetInitialSelection: function() { _maybeSetInitialSelection: function() {
let newDefaultResult = null; let newDefaultResult = null;
let providers = this._providers; let providers = this._searchSystem.getProviders();
for (let i = 0; i < providers.length; i++) { for (let i = 0; i < providers.length; i++) {
let provider = providers[i]; let provider = providers[i];
let display = provider.display; let display = provider.display;
@@ -571,50 +588,31 @@ const SearchResults = new Lang.Class({
} }
}, },
get searchInProgress() { _updateStatusText: function () {
if (this._startingSearch) let haveResults = this._searchSystem.getProviders().some(function(provider) {
return true;
return this._providers.some(function(provider) {
return provider.searchInProgress;
});
},
_updateSearchProgress: function () {
let haveResults = this._providers.some(function(provider) {
let display = provider.display; let display = provider.display;
return (display.getFirstResult() != null); return (display.getFirstResult() != null);
}); });
this._scrollView.visible = haveResults;
this._statusBin.visible = !haveResults;
if (!haveResults) { if (!haveResults) {
if (this.searchInProgress) { this._statusText.set_text(_("No results."));
this._statusText.set_text(_("Searching…")); this._statusBin.show();
} else { } else {
this._statusText.set_text(_("No results.")); this._statusBin.hide();
}
} }
}, },
_updateResults: function(provider, results) { _updateResults: function(searchSystem, provider, results) {
let terms = this._terms; let terms = searchSystem.getTerms();
let display = provider.display; let display = provider.display;
display.updateSearch(results, terms, Lang.bind(this, function() { display.updateSearch(results, terms, Lang.bind(this, function() {
provider.searchInProgress = false;
this._maybeSetInitialSelection(); this._maybeSetInitialSelection();
this._updateSearchProgress(); this._updateStatusText();
})); }));
}, },
activateDefault: function() { activateDefault: function() {
// If we have a search queued up, force the search now.
if (this._searchTimeoutId > 0)
this._doSearch();
if (this._defaultResult) if (this._defaultResult)
this._defaultResult.activate(); this._defaultResult.activate();
}, },

View File

@@ -17,6 +17,8 @@ const EntryMenu = new Lang.Class({
_init: function(entry) { _init: function(entry) {
this.parent(entry, 0, St.Side.TOP); this.parent(entry, 0, St.Side.TOP);
this.actor.add_style_class_name('entry-context-menu');
this._entry = entry; this._entry = entry;
this._clipboard = St.Clipboard.get_default(); this._clipboard = St.Clipboard.get_default();

View File

@@ -2,6 +2,8 @@
const Clutter = imports.gi.Clutter; const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const GnomeDesktop = imports.gi.GnomeDesktop;
const Lang = imports.lang; const Lang = imports.lang;
const Meta = imports.gi.Meta; const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell; const Shell = imports.gi.Shell;
@@ -9,9 +11,16 @@ const Signals = imports.signals;
const St = imports.gi.St; const St = imports.gi.St;
const Gettext = imports.gettext; const Gettext = imports.gettext;
const IBus = imports.misc.ibusManager.IBus; try {
const IBusManager = imports.misc.ibusManager; var IBus = imports.gi.IBus;
const KeyboardManager = imports.misc.keyboardManager; if (!('new_async' in IBus.Bus))
throw "IBus version is too old";
const IBusCandidatePopup = imports.ui.ibusCandidatePopup;
} catch (e) {
var IBus = null;
log(e);
}
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;
@@ -19,12 +28,173 @@ const SwitcherPopup = imports.ui.switcherPopup;
const Util = imports.misc.util; const Util = imports.misc.util;
const DESKTOP_INPUT_SOURCES_SCHEMA = 'org.gnome.desktop.input-sources'; const DESKTOP_INPUT_SOURCES_SCHEMA = 'org.gnome.desktop.input-sources';
const KEY_CURRENT_INPUT_SOURCE = 'current';
const KEY_INPUT_SOURCES = 'sources'; const KEY_INPUT_SOURCES = 'sources';
const KEY_KEYBOARD_OPTIONS = 'xkb-options';
const INPUT_SOURCE_TYPE_XKB = 'xkb'; const INPUT_SOURCE_TYPE_XKB = 'xkb';
const INPUT_SOURCE_TYPE_IBUS = 'ibus'; const INPUT_SOURCE_TYPE_IBUS = 'ibus';
// This is the longest we'll keep the keyboard frozen until an input
// source is active.
const MAX_INPUT_SOURCE_ACTIVATION_TIME = 4000; // ms
const BUS_NAME = 'org.gnome.SettingsDaemon.Keyboard';
const OBJECT_PATH = '/org/gnome/SettingsDaemon/Keyboard';
const KeyboardManagerInterface = '<node> \
<interface name="org.gnome.SettingsDaemon.Keyboard"> \
<method name="SetInputSource"> \
<arg type="u" direction="in" /> \
</method> \
</interface> \
</node>';
const KeyboardManagerProxy = Gio.DBusProxy.makeProxyWrapper(KeyboardManagerInterface);
function releaseKeyboard() {
if (Main.modalCount > 0)
global.display.unfreeze_keyboard(global.get_current_time());
else
global.display.ungrab_keyboard(global.get_current_time());
}
function holdKeyboard() {
global.freeze_keyboard(global.get_current_time());
}
const IBusManager = new Lang.Class({
Name: 'IBusManager',
_init: function(readyCallback) {
if (!IBus)
return;
IBus.init();
this._readyCallback = readyCallback;
this._candidatePopup = new IBusCandidatePopup.CandidatePopup();
this._panelService = null;
this._engines = {};
this._ready = false;
this._registerPropertiesId = 0;
this._currentEngineName = null;
this._ibus = IBus.Bus.new_async();
this._ibus.connect('connected', Lang.bind(this, this._onConnected));
this._ibus.connect('disconnected', Lang.bind(this, this._clear));
// Need to set this to get 'global-engine-changed' emitions
this._ibus.set_watch_ibus_signal(true);
this._ibus.connect('global-engine-changed', Lang.bind(this, this._engineChanged));
},
_clear: function() {
if (this._panelService)
this._panelService.destroy();
this._panelService = null;
this._candidatePopup.setPanelService(null);
this._engines = {};
this._ready = false;
this._registerPropertiesId = 0;
this._currentEngineName = null;
if (this._readyCallback)
this._readyCallback(false);
},
_onConnected: function() {
this._ibus.list_engines_async(-1, null, Lang.bind(this, this._initEngines));
this._ibus.request_name_async(IBus.SERVICE_PANEL,
IBus.BusNameFlag.REPLACE_EXISTING,
-1, null,
Lang.bind(this, this._initPanelService));
},
_initEngines: function(ibus, result) {
let enginesList = this._ibus.list_engines_async_finish(result);
if (enginesList) {
for (let i = 0; i < enginesList.length; ++i) {
let name = enginesList[i].get_name();
this._engines[name] = enginesList[i];
}
this._updateReadiness();
} else {
this._clear();
}
},
_initPanelService: function(ibus, result) {
let success = this._ibus.request_name_async_finish(result);
if (success) {
this._panelService = new IBus.PanelService({ connection: this._ibus.get_connection(),
object_path: IBus.PATH_PANEL });
this._candidatePopup.setPanelService(this._panelService);
this._panelService.connect('update-property', Lang.bind(this, this._updateProperty));
// If an engine is already active we need to get its properties
this._ibus.get_global_engine_async(-1, null, Lang.bind(this, function(i, result) {
let engine;
try {
engine = this._ibus.get_global_engine_async_finish(result);
if (!engine)
return;
} catch(e) {
return;
}
this._engineChanged(this._ibus, engine.get_name());
}));
this._updateReadiness();
} else {
this._clear();
}
},
_updateReadiness: function() {
this._ready = (Object.keys(this._engines).length > 0 &&
this._panelService != null);
if (this._readyCallback)
this._readyCallback(this._ready);
},
_engineChanged: function(bus, engineName) {
if (!this._ready)
return;
this._currentEngineName = engineName;
if (this._registerPropertiesId != 0)
return;
this._registerPropertiesId =
this._panelService.connect('register-properties', Lang.bind(this, function(p, props) {
if (!props.get(0))
return;
this._panelService.disconnect(this._registerPropertiesId);
this._registerPropertiesId = 0;
this.emit('properties-registered', this._currentEngineName, props);
}));
},
_updateProperty: function(panel, prop) {
this.emit('property-updated', this._currentEngineName, prop);
},
activateProperty: function(key, state) {
this._panelService.property_activate(key, state);
},
getEngineDesc: function(id) {
if (!IBus || !this._ready)
return null;
return this._engines[id];
}
});
Signals.addSignalMethods(IBusManager.prototype);
const LayoutMenuItem = new Lang.Class({ const LayoutMenuItem = new Lang.Class({
Name: 'LayoutMenuItem', Name: 'LayoutMenuItem',
Extends: PopupMenu.PopupBaseMenuItem, Extends: PopupMenu.PopupBaseMenuItem,
@@ -50,9 +220,16 @@ const InputSource = new Lang.Class({
this._shortName = shortName; this._shortName = shortName;
this.index = index; this.index = index;
this.properties = null; this._menuItem = new LayoutMenuItem(this.displayName, this._shortName);
this._menuItem.connect('activate', Lang.bind(this, this.activate));
this._indicatorLabel = new St.Label({ text: this._shortName });
this.xkbId = this._getXkbId(); this.properties = null;
},
destroy: function() {
this._menuItem.destroy();
this._indicatorLabel.destroy();
}, },
get shortName() { get shortName() {
@@ -61,23 +238,21 @@ const InputSource = new Lang.Class({
set shortName(v) { set shortName(v) {
this._shortName = v; this._shortName = v;
this.emit('changed'); this._menuItem.indicator.set_text(v);
this._indicatorLabel.set_text(v);
},
get menuItem() {
return this._menuItem;
},
get indicatorLabel() {
return this._indicatorLabel;
}, },
activate: function() { activate: function() {
this.emit('activate'); this.emit('activate');
}, },
_getXkbId: function() {
let engineDesc = IBusManager.getIBusManager().getEngineDesc(this.id);
if (!engineDesc)
return this.id;
if (engineDesc.variant && engineDesc.variant.length > 0)
return engineDesc.layout + '+' + engineDesc.variant;
else
return engineDesc.layout;
}
}); });
Signals.addSignalMethods(InputSource.prototype); Signals.addSignalMethods(InputSource.prototype);
@@ -90,8 +265,22 @@ const InputSourcePopup = new Lang.Class({
this._action = action; this._action = action;
this._actionBackward = actionBackward; this._actionBackward = actionBackward;
},
_createSwitcher: function() {
this._switcherList = new InputSourceSwitcher(this._items); this._switcherList = new InputSourceSwitcher(this._items);
return true;
},
_initialSelection: function(backward, binding) {
if (binding == 'switch-input-source') {
if (backward)
this._selectedIndex = this._items.length - 1;
} else if (binding == 'switch-input-source-backward') {
if (!backward)
this._selectedIndex = this._items.length - 1;
}
this._select(this._selectedIndex);
}, },
_keyPressHandler: function(keysym, action) { _keyPressHandler: function(keysym, action) {
@@ -142,10 +331,25 @@ const InputSourceSwitcher = new Lang.Class({
} }
}); });
const InputSourceManager = new Lang.Class({ const InputSourceIndicator = new Lang.Class({
Name: 'InputSourceManager', Name: 'InputSourceIndicator',
Extends: PanelMenu.Button,
_init: function() { _init: function() {
this.parent(0.0, _("Keyboard"));
this._container = new Shell.GenericContainer();
this._container.connect('get-preferred-width', Lang.bind(this, this._containerGetPreferredWidth));
this._container.connect('get-preferred-height', Lang.bind(this, this._containerGetPreferredHeight));
this._container.connect('allocate', Lang.bind(this, this._containerAllocate));
this._hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
this._hbox.add_child(this._container);
this._hbox.add_child(PopupMenu.arrowIcon(St.Side.BOTTOM));
this.actor.add_child(this._hbox);
this.actor.add_style_class_name('panel-status-button');
// All valid input sources currently in the gsettings // All valid input sources currently in the gsettings
// KEY_INPUT_SOURCES list indexed by their index there // KEY_INPUT_SOURCES list indexed by their index there
this._inputSources = {}; this._inputSources = {};
@@ -172,20 +376,38 @@ const InputSourceManager = new Lang.Class({
Shell.KeyBindingMode.ALL, Shell.KeyBindingMode.ALL,
Lang.bind(this, this._switchInputSource)); Lang.bind(this, this._switchInputSource));
this._settings = new Gio.Settings({ schema_id: DESKTOP_INPUT_SOURCES_SCHEMA }); this._settings = new Gio.Settings({ schema_id: DESKTOP_INPUT_SOURCES_SCHEMA });
this._settings.connect('changed::' + KEY_CURRENT_INPUT_SOURCE, Lang.bind(this, this._currentInputSourceChanged));
this._settings.connect('changed::' + KEY_INPUT_SOURCES, Lang.bind(this, this._inputSourcesChanged)); this._settings.connect('changed::' + KEY_INPUT_SOURCES, Lang.bind(this, this._inputSourcesChanged));
this._settings.connect('changed::' + KEY_KEYBOARD_OPTIONS, Lang.bind(this, this._keyboardOptionsChanged));
this._xkbInfo = KeyboardManager.getXkbInfo(); this._xkbInfo = new GnomeDesktop.XkbInfo();
this._keyboardManager = KeyboardManager.getKeyboardManager();
this._propSeparator = new PopupMenu.PopupSeparatorMenuItem();
this.menu.addMenuItem(this._propSeparator);
this._propSection = new PopupMenu.PopupMenuSection();
this.menu.addMenuItem(this._propSection);
this._propSection.actor.hide();
this._ibusReady = false; this._ibusReady = false;
this._ibusManager = IBusManager.getIBusManager(); this._ibusManager = new IBusManager(Lang.bind(this, this._ibusReadyCallback));
this._ibusManager.connect('ready', Lang.bind(this, this._ibusReadyCallback));
this._ibusManager.connect('properties-registered', Lang.bind(this, this._ibusPropertiesRegistered)); this._ibusManager.connect('properties-registered', Lang.bind(this, this._ibusPropertiesRegistered));
this._ibusManager.connect('property-updated', Lang.bind(this, this._ibusPropertyUpdated)); this._ibusManager.connect('property-updated', Lang.bind(this, this._ibusPropertyUpdated));
this._inputSourcesChanged();
this._keyboardManager = new KeyboardManagerProxy(Gio.DBus.session, BUS_NAME, OBJECT_PATH,
function(proxy, error) {
if (error)
log(error.message);
});
this._keyboardManager.g_default_timeout = MAX_INPUT_SOURCE_ACTIVATION_TIME;
global.display.connect('modifiers-accelerator-activated', Lang.bind(this, this._modifiersSwitcher)); global.display.connect('modifiers-accelerator-activated', Lang.bind(this, this._modifiersSwitcher));
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
this._showLayoutItem = this.menu.addAction(_("Show Keyboard Layout"), Lang.bind(this, this._showLayout));
Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated));
this._sessionUpdated();
this._sourcesPerWindow = false; this._sourcesPerWindow = false;
this._focusWindowNotifyId = 0; this._focusWindowNotifyId = 0;
this._overviewShowingId = 0; this._overviewShowingId = 0;
@@ -194,12 +416,15 @@ const InputSourceManager = new Lang.Class({
this._sourcesPerWindowChanged(); this._sourcesPerWindowChanged();
}, },
reload: function() { _sessionUpdated: function() {
this._keyboardManager.setKeyboardOptions(this._settings.get_strv(KEY_KEYBOARD_OPTIONS)); // re-using "allowSettings" for the keyboard layout is a bit shady,
this._inputSourcesChanged(); // but at least for now it is used as "allow popping up windows
// from shell menus"; we can always add a separate sessionMode
// option if need arises.
this._showLayoutItem.actor.visible = Main.sessionMode.allowSettings;
}, },
_ibusReadyCallback: function(im, ready) { _ibusReadyCallback: function(ready) {
if (this._ibusReady == ready) if (this._ibusReady == ready)
return; return;
@@ -211,7 +436,7 @@ const InputSourceManager = new Lang.Class({
_modifiersSwitcher: function() { _modifiersSwitcher: function() {
let sourceIndexes = Object.keys(this._inputSources); let sourceIndexes = Object.keys(this._inputSources);
if (sourceIndexes.length == 0) { if (sourceIndexes.length == 0) {
KeyboardManager.releaseKeyboard(); releaseKeyboard();
return true; return true;
} }
@@ -246,20 +471,42 @@ const InputSourceManager = new Lang.Class({
} }
let popup = new InputSourcePopup(this._mruSources, this._keybindingAction, this._keybindingActionBackward); let popup = new InputSourcePopup(this._mruSources, this._keybindingAction, this._keybindingActionBackward);
let modifiers = binding.get_modifiers();
if (!popup.show(binding.is_reversed(), binding.get_name(), binding.get_mask())) if (!popup.show(binding.is_reversed(), binding.get_name(), binding.get_mask()))
popup.destroy(); popup.destroy();
}, },
_keyboardOptionsChanged: function() { _currentInputSourceChanged: function() {
this._keyboardManager.setKeyboardOptions(this._settings.get_strv(KEY_KEYBOARD_OPTIONS)); let nVisibleSources = Object.keys(this._inputSources).length;
this._keyboardManager.reapply(); let newSourceIndex = this._settings.get_uint(KEY_CURRENT_INPUT_SOURCE);
}, let newSource = this._inputSources[newSourceIndex];
_currentInputSourceChanged: function(newSource) {
let oldSource; let oldSource;
[oldSource, this._currentSource] = [this._currentSource, newSource]; [oldSource, this._currentSource] = [this._currentSource, newSource];
this.emit('current-source-changed', oldSource); if (oldSource) {
oldSource.menuItem.setOrnament(PopupMenu.Ornament.NONE);
oldSource.indicatorLabel.hide();
}
if (!newSource || (nVisibleSources < 2 && !newSource.properties)) {
// This source index might be invalid if we weren't able
// to build a menu item for it, so we hide ourselves since
// we can't fix it here. *shrug*
// We also hide if we have only one visible source unless
// it's an IBus source with properties.
this.menu.close();
this.actor.hide();
return;
}
this.actor.show();
newSource.menuItem.setOrnament(PopupMenu.Ornament.DOT);
newSource.indicatorLabel.show();
this._buildPropSection(newSource.properties);
for (let i = 1; i < this._mruSources.length; ++i) for (let i = 1; i < this._mruSources.length; ++i)
if (this._mruSources[i] == newSource) { if (this._mruSources[i] == newSource) {
@@ -271,32 +518,16 @@ const InputSourceManager = new Lang.Class({
this._changePerWindowSource(); this._changePerWindowSource();
}, },
_activateInputSource: function(is) {
KeyboardManager.holdKeyboard();
this._keyboardManager.apply(is.xkbId);
// All the "xkb:..." IBus engines simply "echo" back symbols,
// despite their naming implying differently, so we always set
// one in order for XIM applications to work given that we set
// XMODIFIERS=@im=ibus in the first place so that they can
// work without restarting when/if the user adds an IBus input
// source.
let engine;
if (is.type == INPUT_SOURCE_TYPE_IBUS)
engine = is.id;
else
engine = 'xkb:us::eng';
this._ibusManager.setEngine(engine, KeyboardManager.releaseKeyboard);
this._currentInputSourceChanged(is);
},
_inputSourcesChanged: function() { _inputSourcesChanged: function() {
let sources = this._settings.get_value(KEY_INPUT_SOURCES); let sources = this._settings.get_value(KEY_INPUT_SOURCES);
let nSources = sources.n_children(); let nSources = sources.n_children();
for (let i in this._inputSources)
this._inputSources[i].destroy();
this._inputSources = {}; this._inputSources = {};
this._ibusSources = {}; this._ibusSources = {};
this._currentSource = null;
let inputSourcesByShortName = {}; let inputSourcesByShortName = {};
@@ -328,7 +559,10 @@ const InputSourceManager = new Lang.Class({
let is = new InputSource(type, id, displayName, shortName, i); let is = new InputSource(type, id, displayName, shortName, i);
is.connect('activate', Lang.bind(this, this._activateInputSource)); is.connect('activate', Lang.bind(this, function() {
holdKeyboard();
this._keyboardManager.SetInputSourceRemote(is.index, releaseKeyboard);
}));
if (!(is.shortName in inputSourcesByShortName)) if (!(is.shortName in inputSourcesByShortName))
inputSourcesByShortName[is.shortName] = []; inputSourcesByShortName[is.shortName] = [];
@@ -340,22 +574,24 @@ const InputSourceManager = new Lang.Class({
this._ibusSources[is.id] = is; this._ibusSources[is.id] = is;
} }
let menuIndex = 0;
for (let i in this._inputSources) { for (let i in this._inputSources) {
let is = this._inputSources[i]; let is = this._inputSources[i];
if (inputSourcesByShortName[is.shortName].length > 1) { if (inputSourcesByShortName[is.shortName].length > 1) {
let sub = inputSourcesByShortName[is.shortName].indexOf(is) + 1; let sub = inputSourcesByShortName[is.shortName].indexOf(is) + 1;
is.shortName += String.fromCharCode(0x2080 + sub); is.shortName += String.fromCharCode(0x2080 + sub);
} }
}
this.emit('sources-changed'); this.menu.addMenuItem(is.menuItem, menuIndex++);
is.indicatorLabel.hide();
this._container.add_actor(is.indicatorLabel);
}
let sourcesList = []; let sourcesList = [];
for (let i in this._inputSources) for (let i in this._inputSources)
sourcesList.push(this._inputSources[i]); sourcesList.push(this._inputSources[i]);
this._keyboardManager.setUserLayouts(sourcesList.map(function(x) { return x.xkbId; }));
let mruSources = []; let mruSources = [];
for (let i = 0; i < this._mruSources.length; i++) { for (let i = 0; i < this._mruSources.length; i++) {
for (let j = 0; j < sourcesList.length; j++) for (let j = 0; j < sourcesList.length; j++)
@@ -367,8 +603,34 @@ const InputSourceManager = new Lang.Class({
} }
this._mruSources = mruSources.concat(sourcesList); this._mruSources = mruSources.concat(sourcesList);
if (this._mruSources.length > 0) this._currentInputSourceChanged();
this._mruSources[0].activate(); },
_showLayout: function() {
Main.overview.hide();
let source = this._currentSource;
let xkbLayout = '';
let xkbVariant = '';
if (source.type == INPUT_SOURCE_TYPE_XKB) {
[, , , xkbLayout, xkbVariant] = this._xkbInfo.get_layout_info(source.id);
} else if (source.type == INPUT_SOURCE_TYPE_IBUS) {
let engineDesc = this._ibusManager.getEngineDesc(source.id);
if (engineDesc) {
xkbLayout = engineDesc.get_layout();
xkbVariant = '';
}
}
if (!xkbLayout || xkbLayout.length == 0)
return;
let description = xkbLayout;
if (xkbVariant.length > 0)
description = description + '\t' + xkbVariant;
Util.spawn(['gkbd-keyboard-display', '-l', description]);
}, },
_makeEngineShortName: function(engineDesc) { _makeEngineShortName: function(engineDesc) {
@@ -391,7 +653,7 @@ const InputSourceManager = new Lang.Class({
source.properties = props; source.properties = props;
if (source == this._currentSource) if (source == this._currentSource)
this.emit('current-source-changed', null); this._currentInputSourceChanged();
}, },
_ibusPropertyUpdated: function(im, engineName, prop) { _ibusPropertyUpdated: function(im, engineName, prop) {
@@ -401,7 +663,7 @@ const InputSourceManager = new Lang.Class({
if (this._updateSubProperty(source.properties, prop) && if (this._updateSubProperty(source.properties, prop) &&
source == this._currentSource) source == this._currentSource)
this.emit('current-source-changed', null); this._currentInputSourceChanged();
}, },
_updateSubProperty: function(props, prop) { _updateSubProperty: function(props, prop) {
@@ -421,6 +683,116 @@ const InputSourceManager = new Lang.Class({
return false; return false;
}, },
_buildPropSection: function(properties) {
this._propSeparator.actor.hide();
this._propSection.actor.hide();
this._propSection.removeAll();
this._buildPropSubMenu(this._propSection, properties);
if (!this._propSection.isEmpty()) {
this._propSection.actor.show();
this._propSeparator.actor.show();
}
},
_buildPropSubMenu: function(menu, props) {
if (!props)
return;
let radioGroup = [];
let p;
for (let i = 0; (p = props.get(i)) != null; ++i) {
let prop = p;
if (!prop.get_visible())
continue;
if (prop.get_key() == 'InputMode') {
let text;
if (prop.get_symbol)
text = prop.get_symbol().get_text();
else
text = prop.get_label().get_text();
if (text && text.length > 0 && text.length < 3)
this._currentSource.indicatorLabel.set_text(text);
}
let item;
switch (prop.get_prop_type()) {
case IBus.PropType.MENU:
item = new PopupMenu.PopupSubMenuMenuItem(prop.get_label().get_text());
this._buildPropSubMenu(item.menu, prop.get_sub_props());
break;
case IBus.PropType.RADIO:
item = new PopupMenu.PopupMenuItem(prop.get_label().get_text());
item.prop = prop;
radioGroup.push(item);
item.radioGroup = radioGroup;
item.setOrnament(prop.get_state() == IBus.PropState.CHECKED ?
PopupMenu.Ornament.DOT : PopupMenu.Ornament.NONE);
item.connect('activate', Lang.bind(this, function() {
if (item.prop.get_state() == IBus.PropState.CHECKED)
return;
let group = item.radioGroup;
for (let i = 0; i < group.length; ++i) {
if (group[i] == item) {
item.setOrnament(PopupMenu.Ornament.DOT);
item.prop.set_state(IBus.PropState.CHECKED);
this._ibusManager.activateProperty(item.prop.get_key(),
IBus.PropState.CHECKED);
} else {
group[i].setOrnament(PopupMenu.Ornament.NONE);
group[i].prop.set_state(IBus.PropState.UNCHECKED);
this._ibusManager.activateProperty(group[i].prop.get_key(),
IBus.PropState.UNCHECKED);
}
}
}));
break;
case IBus.PropType.TOGGLE:
item = new PopupMenu.PopupSwitchMenuItem(prop.get_label().get_text(), prop.get_state() == IBus.PropState.CHECKED);
item.prop = prop;
item.connect('toggled', Lang.bind(this, function() {
if (item.state) {
item.prop.set_state(IBus.PropState.CHECKED);
this._ibusManager.activateProperty(item.prop.get_key(),
IBus.PropState.CHECKED);
} else {
item.prop.set_state(IBus.PropState.UNCHECKED);
this._ibusManager.activateProperty(item.prop.get_key(),
IBus.PropState.UNCHECKED);
}
}));
break;
case IBus.PropType.NORMAL:
item = new PopupMenu.PopupMenuItem(prop.get_label().get_text());
item.prop = prop;
item.connect('activate', Lang.bind(this, function() {
this._ibusManager.activateProperty(item.prop.get_key(),
item.prop.get_state());
}));
break;
case IBus.PropType.SEPARATOR:
item = new PopupMenu.PopupSeparatorMenuItem();
break;
default:
log ('IBus property %s has invalid type %d'.format(prop.get_key(), type));
continue;
}
item.setSensitive(prop.get_sensitive());
menu.addMenuItem(item);
}
},
_getNewInputSource: function(current) { _getNewInputSource: function(current) {
for (let i in this._inputSources) { for (let i in this._inputSources) {
let is = this._inputSources[i]; let is = this._inputSources[i];
@@ -497,279 +869,15 @@ const InputSourceManager = new Lang.Class({
window._currentSource = this._currentSource; window._currentSource = this._currentSource;
}, },
get currentSource() {
return this._currentSource;
},
get inputSources() {
return this._inputSources;
},
});
Signals.addSignalMethods(InputSourceManager.prototype);
let _inputSourceManager = null;
function getInputSourceManager() {
if (_inputSourceManager == null)
_inputSourceManager = new InputSourceManager();
return _inputSourceManager;
}
const InputSourceIndicator = new Lang.Class({
Name: 'InputSourceIndicator',
Extends: PanelMenu.Button,
_init: function() {
this.parent(0.0, _("Keyboard"));
this._menuItems = {};
this._indicatorLabels = {};
this._container = new Shell.GenericContainer();
this._container.connect('get-preferred-width', Lang.bind(this, this._containerGetPreferredWidth));
this._container.connect('get-preferred-height', Lang.bind(this, this._containerGetPreferredHeight));
this._container.connect('allocate', Lang.bind(this, this._containerAllocate));
this._hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
this._hbox.add_child(this._container);
this._hbox.add_child(PopupMenu.arrowIcon(St.Side.BOTTOM));
this.actor.add_child(this._hbox);
this.actor.add_style_class_name('panel-status-button');
this._propSeparator = new PopupMenu.PopupSeparatorMenuItem();
this.menu.addMenuItem(this._propSeparator);
this._propSection = new PopupMenu.PopupMenuSection();
this.menu.addMenuItem(this._propSection);
this._propSection.actor.hide();
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
this._showLayoutItem = this.menu.addAction(_("Show Keyboard Layout"), Lang.bind(this, this._showLayout));
Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated));
this._sessionUpdated();
this._inputSourceManager = getInputSourceManager();
this._inputSourceManager.connect('sources-changed', Lang.bind(this, this._sourcesChanged));
this._inputSourceManager.connect('current-source-changed', Lang.bind(this, this._currentSourceChanged));
this._inputSourceManager.reload();
},
_sessionUpdated: function() {
// re-using "allowSettings" for the keyboard layout is a bit shady,
// but at least for now it is used as "allow popping up windows
// from shell menus"; we can always add a separate sessionMode
// option if need arises.
this._showLayoutItem.actor.visible = Main.sessionMode.allowSettings;
},
_sourcesChanged: function() {
for (let i in this._menuItems)
this._menuItems[i].destroy();
for (let i in this._indicatorLabels)
this._indicatorLabels[i].destroy();
let menuIndex = 0;
for (let i in this._inputSourceManager.inputSources) {
let is = this._inputSourceManager.inputSources[i];
let menuItem = new LayoutMenuItem(is.displayName, is.shortName);
menuItem.connect('activate', Lang.bind(is, is.activate));
let indicatorLabel = new St.Label({ text: is.shortName,
visible: false });
this._menuItems[i] = menuItem;
this._indicatorLabels[i] = indicatorLabel;
is.connect('changed', function() {
menuItem.indicator.set_text(is.shortName);
indicatorLabel.set_text(is.shorName);
});
this.menu.addMenuItem(menuItem, menuIndex++);
this._container.add_actor(indicatorLabel);
}
},
_currentSourceChanged: function(manager, oldSource) {
let nVisibleSources = Object.keys(this._inputSourceManager.inputSources).length;
let newSource = this._inputSourceManager.currentSource;
if (oldSource) {
this._menuItems[oldSource.index].setOrnament(PopupMenu.Ornament.NONE);
this._indicatorLabels[oldSource.index].hide();
}
if (!newSource || (nVisibleSources < 2 && !newSource.properties)) {
// This source index might be invalid if we weren't able
// to build a menu item for it, so we hide ourselves since
// we can't fix it here. *shrug*
// We also hide if we have only one visible source unless
// it's an IBus source with properties.
this.menu.close();
this.actor.hide();
return;
}
this.actor.show();
this._buildPropSection(newSource.properties);
this._menuItems[newSource.index].setOrnament(PopupMenu.Ornament.DOT);
this._indicatorLabels[newSource.index].show();
},
_buildPropSection: function(properties) {
this._propSeparator.actor.hide();
this._propSection.actor.hide();
this._propSection.removeAll();
this._buildPropSubMenu(this._propSection, properties);
if (!this._propSection.isEmpty()) {
this._propSection.actor.show();
this._propSeparator.actor.show();
}
},
_buildPropSubMenu: function(menu, props) {
if (!props)
return;
let ibusManager = IBusManager.getIBusManager();
let radioGroup = [];
let p;
for (let i = 0; (p = props.get(i)) != null; ++i) {
let prop = p;
if (!prop.get_visible())
continue;
if (prop.get_key() == 'InputMode') {
let text;
if (prop.get_symbol)
text = prop.get_symbol().get_text();
else
text = prop.get_label().get_text();
let currentSource = this._inputSourceManager.currentSource;
if (currentSource) {
let indicatorLabel = this._indicatorLabels[currentSource.index];
if (text && text.length > 0 && text.length < 3)
indicatorLabel.set_text(text);
}
}
let item;
switch (prop.get_prop_type()) {
case IBus.PropType.MENU:
item = new PopupMenu.PopupSubMenuMenuItem(prop.get_label().get_text());
this._buildPropSubMenu(item.menu, prop.get_sub_props());
break;
case IBus.PropType.RADIO:
item = new PopupMenu.PopupMenuItem(prop.get_label().get_text());
item.prop = prop;
radioGroup.push(item);
item.radioGroup = radioGroup;
item.setOrnament(prop.get_state() == IBus.PropState.CHECKED ?
PopupMenu.Ornament.DOT : PopupMenu.Ornament.NONE);
item.connect('activate', Lang.bind(this, function() {
if (item.prop.get_state() == IBus.PropState.CHECKED)
return;
let group = item.radioGroup;
for (let i = 0; i < group.length; ++i) {
if (group[i] == item) {
item.setOrnament(PopupMenu.Ornament.DOT);
item.prop.set_state(IBus.PropState.CHECKED);
ibusManager.activateProperty(item.prop.get_key(),
IBus.PropState.CHECKED);
} else {
group[i].setOrnament(PopupMenu.Ornament.NONE);
group[i].prop.set_state(IBus.PropState.UNCHECKED);
ibusManager.activateProperty(group[i].prop.get_key(),
IBus.PropState.UNCHECKED);
}
}
}));
break;
case IBus.PropType.TOGGLE:
item = new PopupMenu.PopupSwitchMenuItem(prop.get_label().get_text(), prop.get_state() == IBus.PropState.CHECKED);
item.prop = prop;
item.connect('toggled', Lang.bind(this, function() {
if (item.state) {
item.prop.set_state(IBus.PropState.CHECKED);
ibusManager.activateProperty(item.prop.get_key(),
IBus.PropState.CHECKED);
} else {
item.prop.set_state(IBus.PropState.UNCHECKED);
ibusManager.activateProperty(item.prop.get_key(),
IBus.PropState.UNCHECKED);
}
}));
break;
case IBus.PropType.NORMAL:
item = new PopupMenu.PopupMenuItem(prop.get_label().get_text());
item.prop = prop;
item.connect('activate', Lang.bind(this, function() {
ibusManager.activateProperty(item.prop.get_key(),
item.prop.get_state());
}));
break;
case IBus.PropType.SEPARATOR:
item = new PopupMenu.PopupSeparatorMenuItem();
break;
default:
log ('IBus property %s has invalid type %d'.format(prop.get_key(), type));
continue;
}
item.setSensitive(prop.get_sensitive());
menu.addMenuItem(item);
}
},
_showLayout: function() {
Main.overview.hide();
let source = this._inputSourceManager.currentSource;
let xkbLayout = '';
let xkbVariant = '';
if (source.type == INPUT_SOURCE_TYPE_XKB) {
[, , , xkbLayout, xkbVariant] = KeyboardManager.getXkbInfo().get_layout_info(source.id);
} else if (source.type == INPUT_SOURCE_TYPE_IBUS) {
let engineDesc = IBusManager.getIBusManager().getEngineDesc(source.id);
if (engineDesc) {
xkbLayout = engineDesc.get_layout();
xkbVariant = '';
}
}
if (!xkbLayout || xkbLayout.length == 0)
return;
let description = xkbLayout;
if (xkbVariant.length > 0)
description = description + '\t' + xkbVariant;
Util.spawn(['gkbd-keyboard-display', '-l', description]);
},
_containerGetPreferredWidth: function(container, for_height, alloc) { _containerGetPreferredWidth: function(container, for_height, alloc) {
// Here, and in _containerGetPreferredHeight, we need to query // Here, and in _containerGetPreferredHeight, we need to query
// 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;
for (let i in this._inputSourceManager.inputSources) { for (let i in this._inputSources) {
let label = this._indicatorLabels[i]; let is = this._inputSources[i];
let [min_width, natural_width] = label.get_preferred_width(for_height); let [min_width, natural_width] = is.indicatorLabel.get_preferred_width(for_height);
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);
} }
@@ -781,9 +889,9 @@ const InputSourceIndicator = 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;
for (let i in this._inputSourceManager.inputSources) { for (let i in this._inputSources) {
let label = this._indicatorLabels[i]; let is = this._inputSources[i];
let [min_height, natural_height] = label.get_preferred_height(for_width); let [min_height, natural_height] = is.indicatorLabel.get_preferred_height(for_width);
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);
} }
@@ -799,9 +907,9 @@ const InputSourceIndicator = new Lang.Class({
box.y2 -= box.y1; box.y2 -= box.y1;
box.y1 = 0; box.y1 = 0;
for (let i in this._inputSourceManager.inputSources) { for (let i in this._inputSources) {
let label = this._indicatorLabels[i]; let is = this._inputSources[i];
label.allocate_align_fill(box, 0.5, 0.5, false, false, flags); is.indicatorLabel.allocate_align_fill(box, 0.5, 0.5, false, false, flags);
} }
} }
}); });

View File

@@ -13,15 +13,6 @@ const LOCATION_SCHEMA = 'org.gnome.system.location';
const MAX_ACCURACY_LEVEL = 'max-accuracy-level'; const MAX_ACCURACY_LEVEL = 'max-accuracy-level';
const ENABLED = 'enabled'; const ENABLED = 'enabled';
const GeoclueAccuracyLevel = {
NONE: 0,
COUNTRY: 1,
CITY: 4,
NEIGHBORHOOD: 5,
STREET: 6,
EXACT: 8
};
var GeoclueIface = '<node> \ var GeoclueIface = '<node> \
<interface name="org.freedesktop.GeoClue2.Manager"> \ <interface name="org.freedesktop.GeoClue2.Manager"> \
<property name="InUse" type="b" access="read"/> \ <property name="InUse" type="b" access="read"/> \
@@ -70,7 +61,6 @@ const Indicator = new Lang.Class({
this._item.status.text = _("Enabled"); this._item.status.text = _("Enabled");
this._onOffAction = this._item.menu.addAction(_("Disable"), Lang.bind(this, this._onOnOffAction)); this._onOffAction = this._item.menu.addAction(_("Disable"), Lang.bind(this, this._onOnOffAction));
this._item.menu.addSettingsAction(_("Privacy Settings"), 'gnome-privacy-panel.desktop');
this.menu.addMenuItem(this._item); this.menu.addMenuItem(this._item);
@@ -191,14 +181,10 @@ const Indicator = new Lang.Class({
}, },
_getMaxAccuracyLevel: function() { _getMaxAccuracyLevel: function() {
if (this._settings.get_boolean(ENABLED)) { if (this._settings.get_boolean(ENABLED))
let level = this._settings.get_string(MAX_ACCURACY_LEVEL); return this._settings.get_enum(MAX_ACCURACY_LEVEL);
else
return GeoclueAccuracyLevel[level.toUpperCase()] || return 0;
GeoclueAccuracyLevel.NONE;
} else {
return GeoclueAccuracyLevel.NONE;
}
}, },
_notifyMaxAccuracyLevel: function() { _notifyMaxAccuracyLevel: function() {

View File

@@ -102,17 +102,16 @@ const SwitcherPopup = new Lang.Class({
this._switcherList.actor.allocate(childBox, flags); this._switcherList.actor.allocate(childBox, flags);
}, },
_createSwitcher: function() {
throw new Error('Not implemented');
},
_initialSelection: function(backward, binding) { _initialSelection: function(backward, binding) {
if (backward) throw new Error('Not implemented');
this._select(this._items.length - 1);
else if (this._items.length == 1)
this._select(0);
else
this._select(1);
}, },
show: function(backward, binding, mask) { show: function(backward, binding, mask) {
if (this._items.length == 0) if (!this._createSwitcher())
return false; return false;
if (!Main.pushModal(this.actor)) { if (!Main.pushModal(this.actor)) {
@@ -140,6 +139,11 @@ const SwitcherPopup = new Lang.Class({
this.actor.show(); this.actor.show();
this.actor.get_allocation_box(); this.actor.get_allocation_box();
if (this._items.length > 1)
this._selectedIndex = 1;
else
this._selectedIndex = 0;
this._initialSelection(backward, binding); this._initialSelection(backward, binding);
// There's a race condition; if the user released Alt before // There's a race condition; if the user released Alt before

View File

@@ -125,6 +125,7 @@ const ViewSelector = new Lang.Class({
this._activePage = null; this._activePage = null;
this._searchActive = false; this._searchActive = false;
this._searchTimeoutId = 0;
this._entry = searchEntry; this._entry = searchEntry;
ShellEntry.addContextMenu(this._entry); ShellEntry.addContextMenu(this._entry);
@@ -143,8 +144,12 @@ const ViewSelector = new Lang.Class({
this._entry.set_primary_icon(new St.Icon({ style_class: 'search-entry-icon', this._entry.set_primary_icon(new St.Icon({ style_class: 'search-entry-icon',
icon_name: 'edit-find-symbolic' })); icon_name: 'edit-find-symbolic' }));
this._clearIcon = new St.Icon({ style_class: 'search-entry-icon', if (this._entry.get_text_direction() == Clutter.TextDirection.RTL)
icon_name: 'edit-clear-symbolic' }); this._clearIcon = new St.Icon({ style_class: 'search-entry-icon',
icon_name: 'edit-clear-symbolic-rtl' });
else
this._clearIcon = new St.Icon({ style_class: 'search-entry-icon',
icon_name: 'edit-clear-symbolic-ltr' });
this._iconClickedId = 0; this._iconClickedId = 0;
this._capturedEventId = 0; this._capturedEventId = 0;
@@ -484,23 +489,36 @@ const ViewSelector = new Lang.Class({
_onTextChanged: function (se, prop) { _onTextChanged: function (se, prop) {
let terms = getTermsForSearchString(this._entry.get_text()); let terms = getTermsForSearchString(this._entry.get_text());
let searchPreviouslyActive = this._searchActive;
this._searchActive = (terms.length > 0); this._searchActive = (terms.length > 0);
this._searchResults.setTerms(terms);
let startSearch = this._searchActive && !searchPreviouslyActive;
if (startSearch)
this._searchResults.startingSearch();
if (this._searchActive) { if (this._searchActive) {
this._showPage(this._searchPage);
this._entry.set_secondary_icon(this._clearIcon); this._entry.set_secondary_icon(this._clearIcon);
if (this._iconClickedId == 0) if (this._iconClickedId == 0)
this._iconClickedId = this._entry.connect('secondary-icon-clicked', this._iconClickedId = this._entry.connect('secondary-icon-clicked',
Lang.bind(this, this.reset)); Lang.bind(this, this.reset));
if (this._searchTimeoutId == 0) {
this._searchTimeoutId = Mainloop.timeout_add(150,
Lang.bind(this, this._doSearch));
GLib.Source.set_name_by_id(this._searchTimeoutId, '[gnome-shell] this._doSearch');
}
} else { } else {
if (this._iconClickedId > 0) { if (this._iconClickedId > 0) {
this._entry.disconnect(this._iconClickedId); this._entry.disconnect(this._iconClickedId);
this._iconClickedId = 0; this._iconClickedId = 0;
} }
if (this._searchTimeoutId > 0) {
Mainloop.source_remove(this._searchTimeoutId);
this._searchTimeoutId = 0;
}
this._entry.set_secondary_icon(null); this._entry.set_secondary_icon(null);
this._searchCancelled(); this._searchCancelled();
} }
@@ -538,6 +556,12 @@ const ViewSelector = new Lang.Class({
this._searchResults.navigateFocus(nextDirection); this._searchResults.navigateFocus(nextDirection);
return Clutter.EVENT_STOP; return Clutter.EVENT_STOP;
} else if (symbol == Clutter.Return || symbol == Clutter.KP_Enter) { } else if (symbol == Clutter.Return || symbol == Clutter.KP_Enter) {
// We can't connect to 'activate' here because search providers
// might want to do something with the modifiers in activateDefault.
if (this._searchTimeoutId > 0) {
Mainloop.source_remove(this._searchTimeoutId);
this._doSearch();
}
this._searchResults.activateDefault(); this._searchResults.activateDefault();
return Clutter.EVENT_STOP; return Clutter.EVENT_STOP;
} }
@@ -560,6 +584,17 @@ const ViewSelector = new Lang.Class({
return Clutter.EVENT_PROPAGATE; return Clutter.EVENT_PROPAGATE;
}, },
_doSearch: function () {
this._searchTimeoutId = 0;
let terms = getTermsForSearchString(this._entry.get_text());
this._searchResults.setTerms(terms);
this._showPage(this._searchPage);
return GLib.SOURCE_REMOVE;
},
getActivePage: function() { getActivePage: function() {
if (this._activePage == this._workspacesPage) if (this._activePage == this._workspacesPage)
return ViewPage.WINDOWS; return ViewPage.WINDOWS;

View File

@@ -17,6 +17,7 @@ const Main = imports.ui.main;
const ModalDialog = imports.ui.modalDialog; const ModalDialog = imports.ui.modalDialog;
const Tweener = imports.ui.tweener; const Tweener = imports.ui.tweener;
const WindowMenu = imports.ui.windowMenu; const WindowMenu = imports.ui.windowMenu;
const Wobbly = imports.ui.wobbly;
const SHELL_KEYBINDINGS_SCHEMA = 'org.gnome.shell.keybindings'; const SHELL_KEYBINDINGS_SCHEMA = 'org.gnome.shell.keybindings';
const MAXIMIZE_WINDOW_ANIMATION_TIME = 0.15; const MAXIMIZE_WINDOW_ANIMATION_TIME = 0.15;
@@ -526,11 +527,6 @@ const AppSwitchAction = new Lang.Class({
}, },
vfunc_gesture_prepare : function(action, actor) { vfunc_gesture_prepare : function(action, actor) {
if (Main.overview.visible) {
this.cancel();
return false;
}
return this.get_n_current_points() <= 4; return this.get_n_current_points() <= 4;
}, },
@@ -816,6 +812,8 @@ const WindowManager = new Lang.Class({
gesture = new AppSwitchAction(); gesture = new AppSwitchAction();
gesture.connect('activated', Lang.bind(this, this._switchApp)); gesture.connect('activated', Lang.bind(this, this._switchApp));
global.stage.add_action(gesture); global.stage.add_action(gesture);
this._wobblyWindows = new Wobbly.WobblyWindowManager();
}, },
_lookupIndex: function (windows, metaWindow) { _lookupIndex: function (windows, metaWindow) {

130
js/ui/wobbly.js Normal file
View File

@@ -0,0 +1,130 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Lang = imports.lang;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
function clampAbs(v, cap) {
if (v > cap)
v = cap;
if (v < -cap)
v = -cap;
return v;
}
const ActorWobbler = new Lang.Class({
Name: 'ActorWobbler',
_init: function(actor) {
this._actor = actor;
this._effect = new Shell.WobblyEffect();
this._actor.add_effect(this._effect);
this._actor._wobbler = this;
this._currentBend = 0;
this._currentHeightOffset = 0;
this._running = false;
this._allocationChangedId = this._actor.connect('allocation-changed', Lang.bind(this, this._allocationChanged));
this._timeline = new Clutter.Timeline({ duration: 100, repeat_count: -1 });
this._timeline.connect('new-frame', Lang.bind(this, this._newFrame));
this._timeline.start();
},
start: function() {
this._running = true;
},
stop: function() {
this._running = false;
},
_destroy: function() {
this._timeline.run_dispose();
this._timeline = null;
this._actor.disconnect(this._allocationChangedId);
this._actor.scale_y = 1.0;
this._actor.remove_effect(this._effect);
this._actor._wobbler = null;
},
_newFrame: function() {
this._step();
},
_step: function() {
const DAMPEN = 0.8;
this._currentBend *= DAMPEN;
if (Math.abs(this._currentBend) < 1)
this._currentBend = 0;
this._currentHeightOffset *= DAMPEN;
if (Math.abs(this._currentHeightOffset) < 1)
this._currentHeightOffset = 0;
// Cap the bend to a 100px shift.
const BEND_CAP = 50;
this._currentBend = clampAbs(this._currentBend, BEND_CAP);
this._effect.set_bend_x(this._currentBend);
// Cap the height change to 25px in either direction.
const HEIGHT_OFFSET_CAP = 25;
this._currentHeightOffset = clampAbs(this._currentHeightOffset, HEIGHT_OFFSET_CAP);
let [minHeight, natHeight] = this._actor.get_preferred_height(-1);
let scale = (natHeight + this._currentHeightOffset) / natHeight;
this._actor.scale_y = scale;
if (!this._running && this._currentBend == 0 && this._currentHeightOffset == 0)
this._destroy();
},
_allocationChanged: function(actor, box, flags) {
if (!this._running)
return;
if (this._oldX) {
let deltaX = box.x1 - this._oldX;
// Every 2px the user moves the window, we bend it by 1px.
this._currentBend -= deltaX / 2;
}
if (this._oldY) {
let deltaY = box.y1 - this._oldY;
// Every 2px the user moves the window, we scale it by 1px.
this._currentHeightOffset -= deltaY / 2;
}
this._oldX = box.x1;
this._oldY = box.y1;
},
});
const WobblyWindowManager = new Lang.Class({
Name: 'WobblyWindowManager',
_init: function() {
global.display.connect('grab-op-begin', Lang.bind(this, this._grabOpBegin));
global.display.connect('grab-op-end', Lang.bind(this, this._grabOpEnd));
},
_grabOpBegin: function(display, screen, window, op) {
if (op != Meta.GrabOp.MOVING)
return;
let actor = window.get_compositor_private();
if (!actor._wobbler)
new ActorWobbler(actor);
actor._wobbler.start();
},
_grabOpEnd: function(display, screen, window, op) {
if (!window)
return;
let actor = window.get_compositor_private();
if (actor._wobbler)
actor._wobbler.stop();
},
});

View File

@@ -1209,18 +1209,14 @@ const Workspace = new Lang.Class({
return this._windows.length == 0; return this._windows.length == 0;
}, },
setReservedSlot: function(metaWindow) { setReservedSlot: function(clone) {
if (this._reservedSlotWindow == metaWindow) if (this._reservedSlot == clone)
return; return;
if (!metaWindow || this.containsMetaWindow(metaWindow)) { if (clone && this.containsMetaWindow(clone.metaWindow))
this._reservedSlotWindow = null; clone = null;
this._reservedSlot = null;
} else {
this._reservedSlotWindow = metaWindow;
this._reservedSlot = this._windows[this._lookupIndex(metaWindow)];
}
this._reservedSlot = clone;
this._recalculateWindowPositions(WindowPositionFlags.ANIMATE); this._recalculateWindowPositions(WindowPositionFlags.ANIMATE);
}, },
@@ -1818,16 +1814,16 @@ const Workspace = new Lang.Class({
Lang.bind(this, this._onCloneSelected)); Lang.bind(this, this._onCloneSelected));
clone.connect('drag-begin', clone.connect('drag-begin',
Lang.bind(this, function() { Lang.bind(this, function() {
Main.overview.beginWindowDrag(clone.metaWindow); Main.overview.beginWindowDrag(clone);
overlay.hide(); overlay.hide();
})); }));
clone.connect('drag-cancelled', clone.connect('drag-cancelled',
Lang.bind(this, function() { Lang.bind(this, function() {
Main.overview.cancelledWindowDrag(clone.metaWindow); Main.overview.cancelledWindowDrag(clone);
})); }));
clone.connect('drag-end', clone.connect('drag-end',
Lang.bind(this, function() { Lang.bind(this, function() {
Main.overview.endWindowDrag(clone.metaWindow); Main.overview.endWindowDrag(clone);
overlay.show(); overlay.show();
})); }));
clone.connect('size-changed', clone.connect('size-changed',

View File

@@ -518,15 +518,15 @@ const WorkspaceThumbnail = new Lang.Class({
})); }));
clone.connect('drag-begin', clone.connect('drag-begin',
Lang.bind(this, function() { Lang.bind(this, function() {
Main.overview.beginWindowDrag(clone.metaWindow); Main.overview.beginWindowDrag(clone);
})); }));
clone.connect('drag-cancelled', clone.connect('drag-cancelled',
Lang.bind(this, function() { Lang.bind(this, function() {
Main.overview.cancelledWindowDrag(clone.metaWindow); Main.overview.cancelledWindowDrag(clone);
})); }));
clone.connect('drag-end', clone.connect('drag-end',
Lang.bind(this, function() { Lang.bind(this, function() {
Main.overview.endWindowDrag(clone.metaWindow); Main.overview.endWindowDrag(clone);
})); }));
this._contents.add_actor(clone.actor); this._contents.add_actor(clone.actor);

View File

@@ -63,9 +63,9 @@ const WorkspacesViewBase = new Lang.Class({
} }
}, },
_dragBegin: function(overview, window) { _dragBegin: function(overview, clone) {
this._inDrag = true; this._inDrag = true;
this._setReservedSlot(window); this._setReservedSlot(clone);
}, },
_dragEnd: function() { _dragEnd: function() {
@@ -127,9 +127,9 @@ const WorkspacesView = new Lang.Class({
Lang.bind(this, this._activeWorkspaceChanged)); Lang.bind(this, this._activeWorkspaceChanged));
}, },
_setReservedSlot: function(window) { _setReservedSlot: function(clone) {
for (let i = 0; i < this._workspaces.length; i++) for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].setReservedSlot(window); this._workspaces[i].setReservedSlot(clone);
}, },
_syncFullGeometry: function() { _syncFullGeometry: function() {
@@ -366,8 +366,8 @@ const ExtraWorkspaceView = new Lang.Class({
this.actor.add_actor(this._workspace.actor); this.actor.add_actor(this._workspace.actor);
}, },
_setReservedSlot: function(window) { _setReservedSlot: function(clone) {
this._workspace.setReservedSlot(window); this._workspace.setReservedSlot(clone);
}, },
_syncFullGeometry: function() { _syncFullGeometry: function() {

View File

@@ -45,7 +45,6 @@ mk
mr mr
ms ms
nb nb
ne
nl nl
nn nn
or or

1015
po/ar.po

File diff suppressed because it is too large Load Diff

332
po/as.po
View File

@@ -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.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: 2014-09-15 07:36+0000\n" "POT-Creation-Date: 2014-08-13 07:33+0000\n"
"PO-Revision-Date: 2014-09-15 14:59+0530\n" "PO-Revision-Date: 2014-08-13 17:32+0530\n"
"Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n" "Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n"
"Language-Team: Assamese <kde-i18n-doc@kde.org>\n" "Language-Team: Assamese <kde-i18n-doc@kde.org>\n"
"Language: as_IN\n" "Language: as_IN\n"
@@ -110,9 +110,8 @@ msgid ""
"load all extensions regardless of the versions they claim to support." "load all extensions regardless of the versions they claim to support."
msgstr "" msgstr ""
"GNOME শ্বেলে কেৱল বৰ্তমান চলি থকা সংস্কৰণক সমৰ্থন কৰা সম্প্ৰসাৰনসমূহ ল'ড " "GNOME শ্বেলে কেৱল বৰ্তমান চলি থকা সংস্কৰণক সমৰ্থন কৰা সম্প্ৰসাৰনসমূহ ল'ড "
"কৰিব। এই " "কৰিব। এই বিকল্প সামৰ্থবান কৰিলে এই নিৰীক্ষণ অসামৰ্থবান কৰা হব আৰু সিহতে "
"বিকল্প সামৰ্থবান কৰিলে এই নিৰক্ষণ অসামৰ্থবান কৰা হব আৰু সিহতে সমৰ্থন কৰা " "মৰ্থন কৰা সংস্কৰণসমূহৰ নিৰপেক্ষে সকলো সম্প্ৰসাৰন ল'ড কৰিব।"
"সংস্কৰণসমূহৰ নিৰপেক্ষে সকলো সম্প্ৰসাৰন ল'ড কৰিব।"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:7 #: ../data/org.gnome.shell.gschema.xml.in.in.h:7
msgid "List of desktop file IDs for favorite applications" msgid "List of desktop file IDs for favorite applications"
@@ -158,8 +157,8 @@ msgstr ""
msgid "" msgid ""
"Whether to remember password for mounting encrypted or remote filesystems" "Whether to remember password for mounting encrypted or remote filesystems"
msgstr "" msgstr ""
"ইনক্ৰিপ্টেড অথবা দূৰৱৰ্তী ফাইলচিস্টেমসমূহ মাউ্ট কৰাৰ বাবে পাছৱৰ্ড মনত ৰখা হব " "ইনক্ৰিপ্টেড অথবা দূৰৱৰ্তী ফাইলচিস্টেমসমূহ মাউ্ট কৰাৰ বাবে পাছৱৰ্ড মনত ৰখা "
"নে" "হব নে"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16 #: ../data/org.gnome.shell.gschema.xml.in.in.h:16
msgid "" msgid ""
@@ -170,11 +169,10 @@ msgid ""
msgstr "" msgstr ""
"শ্বেলে এটা পাছৱৰ্ড অনুৰোধ কৰিব যেতিয়া এটা ইনক্ৰিপ্টেড ডিভাইচ অথবা এটা " "শ্বেলে এটা পাছৱৰ্ড অনুৰোধ কৰিব যেতিয়া এটা ইনক্ৰিপ্টেড ডিভাইচ অথবা এটা "
"দূৰৱৰ্তী " "দূৰৱৰ্তী "
"ফাইলচিস্টেম মাউ্ট কৰা হয়। যদি পাছৱৰ্ডক ভৱিষ্যত ব্যৱহাৰৰ বাবে সংৰক্ষণ কৰিব " "ফাইলচিস্টেম মাউ্ট কৰা হয়। যদি পাছৱৰ্ডক ভৱিষ্যত ব্যৱহাৰৰ বাবে সংৰক্ষণ কৰিব "
"পাৰি " "পাৰি "
"তেন্তে এটা 'পাছৱৰ্ড মনত ৰাখক' চেকবাকচ উপস্থিত থাকিব। এই কি'য়ে চেকবাকচৰ " "তেন্তে এটা 'পাছৱৰ্ড মনত ৰাখক' চেকবাকচ উপস্থিত থাকিব। এই কি'য়ে চেকবাকচৰ "
"অবিকল্পিত " "অবিকল্পিত অৱস্থা সংহতি কৰে।"
"অৱস্থা সংহতি কৰে।"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17 #: ../data/org.gnome.shell.gschema.xml.in.in.h:17
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
@@ -250,8 +248,7 @@ msgid ""
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
msgstr "" msgstr ""
"যদি সত্য, কেৱল বৰ্তমান কাৰ্য্যস্থানক উইন্ডো থকা এপ্লিকেচনসমূক চুইচাৰত দেখুৱা " "যদি সত্য, কেৱল বৰ্তমান কাৰ্য্যস্থানক উইন্ডো থকা এপ্লিকেচনসমূক চুইচাৰত দেখুৱা "
"হব। নহলে, " "হব। নহলে, সকলো এপ্লিকেচন অন্তৰ্ভুক্ত কৰা হয়।"
"সকলো এপ্লিকেচন অন্তৰ্ভুক্ত কৰা হয়।"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The application icon mode." msgid "The application icon mode."
@@ -274,8 +271,7 @@ msgid ""
"Otherwise, all windows are included." "Otherwise, all windows are included."
msgstr "" msgstr ""
"যদি সত্য, কেৱল বৰ্তমান কাৰ্য্যস্থানৰ পৰা উইন্ডোসমূহক চুইচাৰত দেখুৱা হব। নহলে, " "যদি সত্য, কেৱল বৰ্তমান কাৰ্য্যস্থানৰ পৰা উইন্ডোসমূহক চুইচাৰত দেখুৱা হব। নহলে, "
"সকলো " "সকলো উইন্ডো অন্তৰ্ভুক্ত কৰা হব।"
"উইন্ডো অন্তৰ্ভুক্ত কৰা হব।"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
@@ -307,17 +303,18 @@ msgstr ""
msgid "Captive Portal" msgid "Captive Portal"
msgstr "কেপটিভ পৰ্টেল" msgstr "কেপটিভ পৰ্টেল"
#: ../js/extensionPrefs/main.js:123 #: ../js/extensionPrefs/main.js:127
#, javascript-format #, javascript-format
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:155 #: ../js/extensionPrefs/main.js:159
#| msgid "Configure GNOME Shell Extensions"
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "GNOME শ্বেল সম্প্ৰসাৰনসমূহ" msgstr "GNOME শ্বেল সম্প্ৰসাৰনসমূহ"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143 #: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452 #: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:429
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:915 #: ../js/ui/status/network.js:915
msgid "Cancel" msgid "Cancel"
@@ -380,44 +377,46 @@ msgstr "কমান্ড বিশ্লেষন কৰিব নোৱাৰ
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "“%s” ৰ প্ৰেৰণ ব্যৰ্থ হল:" msgstr "“%s” ৰ প্ৰেৰণ ব্যৰ্থ হল:"
#: ../js/portalHelper/main.js:85 #: ../js/portalHelper/main.js:84
#| msgid "Authentication Required"
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "ৱেব প্ৰমাণীকৰণৰ পুনৰনিৰ্দেশ" msgstr "ৱেব প্ৰমাণীকৰণৰ পুনৰনিৰ্দেশ"
#: ../js/ui/appDisplay.js:772 #: ../js/ui/appDisplay.js:659
msgid "Frequently used applications will appear here" msgid "Frequently used applications will appear here"
msgstr "সঘনে ব্যৱহাৰ কৰা এপ্লিকেচনসমূহ ইয়াত উপস্থিত হব" msgstr "সঘনে ব্যৱহাৰ কৰা এপ্লিকেচনসমূহ ইয়াত উপস্থিত হব"
#: ../js/ui/appDisplay.js:883 #: ../js/ui/appDisplay.js:770
msgid "Frequent" msgid "Frequent"
msgstr "সঘন" msgstr "সঘন"
#: ../js/ui/appDisplay.js:890 #: ../js/ui/appDisplay.js:777
msgid "All" msgid "All"
msgstr "সকলো" msgstr "সকলো"
#: ../js/ui/appDisplay.js:1789 #: ../js/ui/appDisplay.js:1649
msgid "New Window" msgid "New Window"
msgstr "নতুন উইন্ডো" msgstr "নতুন উইন্ডো"
#: ../js/ui/appDisplay.js:1815 ../js/ui/dash.js:285 #: ../js/ui/appDisplay.js:1672 ../js/ui/dash.js:285
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "পছন্দৰ পৰা আতৰাওক" msgstr "পছন্দৰ পৰা আতৰাওক"
#: ../js/ui/appDisplay.js:1821 #: ../js/ui/appDisplay.js:1678
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "পছন্দলে যোগ কৰক" msgstr "পছন্দলে যোগ কৰক"
#: ../js/ui/appDisplay.js:1830 #: ../js/ui/appDisplay.js:1687
#| msgid "Show Text"
msgid "Show Details" msgid "Show Details"
msgstr "বিৱৰণসমূহ দেখুৱাওক" msgstr "বিৱৰণসমূহ দেখুৱাওক"
#: ../js/ui/appFavorites.js:124 #: ../js/ui/appFavorites.js:122
#, javascript-format #, javascript-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:158 #: ../js/ui/appFavorites.js:156
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s ক আপোনাৰ পছন্দৰ পৰা আতৰোৱা হৈছে।" msgstr "%s ক আপোনাৰ পছন্দৰ পৰা আতৰোৱা হৈছে।"
@@ -609,11 +608,11 @@ msgstr "%s ৰ সৈতে খোলক"
msgid "Eject" msgid "Eject"
msgstr "উলিৱাওক" msgstr "উলিৱাওক"
#: ../js/ui/components/keyring.js:94 ../js/ui/components/polkitAgent.js:285 #: ../js/ui/components/keyring.js:93 ../js/ui/components/polkitAgent.js:285
msgid "Password:" msgid "Password:"
msgstr "পাছৱৰ্ড:" msgstr "পাছৱৰ্ড:"
#: ../js/ui/components/keyring.js:120 #: ../js/ui/components/keyring.js:113
msgid "Type again:" msgid "Type again:"
msgstr "আকৌ টাইপ কৰক:" msgstr "আকৌ টাইপ কৰক:"
@@ -656,7 +655,8 @@ 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/components/networkAgent.js:323 #: ../js/ui/components/networkAgent.js:323
msgid "Wired 802.1X authentication" msgid "Wired 802.1X authentication"
@@ -736,77 +736,89 @@ msgid "Mute"
msgstr "মোন কৰক" msgstr "মোন কৰক"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:953 #: ../js/ui/components/telepathyClient.js:957
#| msgctxt "event list time"
#| msgid "%H%M"
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */ #. time string in 24h format. i.e. "Yesterday, 14:30" */
#: ../js/ui/components/telepathyClient.js:960 #: ../js/ui/components/telepathyClient.js:964
#| msgid "<b>Yesterday</b>, <b>%H:%M</b>"
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "যোৱাকালী, %H%M" msgstr "যোৱাকালী, %H%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */ #. string in 24h format. i.e. "Monday, 14:30" */
#: ../js/ui/components/telepathyClient.js:967 #: ../js/ui/components/telepathyClient.js:971
#| msgctxt "event list time"
#| msgid "%H%M"
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */ #. i.e. "May 25, 14:30" */
#: ../js/ui/components/telepathyClient.js:974 #: ../js/ui/components/telepathyClient.js:978
#| msgctxt "event list time"
#| msgid "%H%M"
msgid "%B %d, %H%M" msgid "%B %d, %H%M"
msgstr "%B %d, %H%M" msgstr "%B %d, %H%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" */ #. i.e. "May 25 2012, 14:30" */
#: ../js/ui/components/telepathyClient.js:980 #: ../js/ui/components/telepathyClient.js:984
msgid "%B %d %Y, %H%M" msgid "%B %d %Y, %H%M"
msgstr "%B %d %Y, %H%M" msgstr "%B %d %Y, %H%M"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:986 #: ../js/ui/components/telepathyClient.js:990
#| msgctxt "event list time"
#| msgid "%l%M%p"
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%l%M %p" msgstr "%l%M %p"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */ #. time string in 12h format. i.e. "Yesterday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:993 #: ../js/ui/components/telepathyClient.js:997
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "যোৱাকালী, %l%M %p" msgstr "যোৱাকালী, %l%M %p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */ #. string in 12h format. i.e. "Monday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1000 #: ../js/ui/components/telepathyClient.js:1004
#| msgid "%a %l:%M %p"
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %l%M %p" msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */ #. i.e. "May 25, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1007 #: ../js/ui/components/telepathyClient.js:1011
#| msgid "%a %b %e, %l:%M %p"
msgid "%B %d, %l%M %p" msgid "%B %d, %l%M %p"
msgstr "%B %d, %l%M %p" msgstr "%B %d, %l%M %p"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/ #. i.e. "May 25 2012, 2:30 pm"*/
#: ../js/ui/components/telepathyClient.js:1013 #: ../js/ui/components/telepathyClient.js:1017
#| msgid "%a %b %e, %l:%M %p"
msgid "%B %d %Y, %l%M %p" msgid "%B %d %Y, %l%M %p"
msgstr "%B %d %Y, %l%M %p" msgstr "%B %d %Y, %l%M %p"
#. 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/components/telepathyClient.js:1045 #: ../js/ui/components/telepathyClient.js:1049
#, javascript-format #, javascript-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/components/telepathyClient.js:1149 #: ../js/ui/components/telepathyClient.js:1153
#, javascript-format #, javascript-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "%s লে নিমন্ত্ৰণ" msgstr "%s লে নিমন্ত্ৰণ"
@@ -814,38 +826,38 @@ 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/components/telepathyClient.js:1157 #: ../js/ui/components/telepathyClient.js:1161
#, javascript-format #, javascript-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/components/telepathyClient.js:1159 #: ../js/ui/components/telepathyClient.js:1163
#: ../js/ui/components/telepathyClient.js:1194 #: ../js/ui/components/telepathyClient.js:1198
#: ../js/ui/components/telepathyClient.js:1228 #: ../js/ui/components/telepathyClient.js:1232
#: ../js/ui/components/telepathyClient.js:1286 #: ../js/ui/components/telepathyClient.js:1290
msgid "Decline" msgid "Decline"
msgstr "নাকচ কৰক" msgstr "নাকচ কৰক"
#: ../js/ui/components/telepathyClient.js:1165 #: ../js/ui/components/telepathyClient.js:1169
#: ../js/ui/components/telepathyClient.js:1234 #: ../js/ui/components/telepathyClient.js:1238
#: ../js/ui/components/telepathyClient.js:1291 #: ../js/ui/components/telepathyClient.js:1295
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/components/telepathyClient.js:1184 #: ../js/ui/components/telepathyClient.js:1188
#, javascript-format #, javascript-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/components/telepathyClient.js:1187 #: ../js/ui/components/telepathyClient.js:1191
#, javascript-format #, javascript-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/components/telepathyClient.js:1201 #: ../js/ui/components/telepathyClient.js:1205
msgid "Answer" msgid "Answer"
msgstr "উত্তৰ দিয়ক" msgstr "উত্তৰ দিয়ক"
@@ -854,110 +866,110 @@ 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/components/telepathyClient.js:1222 #: ../js/ui/components/telepathyClient.js:1226
#, javascript-format #, javascript-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/components/telepathyClient.js:1251 #: ../js/ui/components/telepathyClient.js:1255
#, javascript-format #, javascript-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/components/telepathyClient.js:1337 #: ../js/ui/components/telepathyClient.js:1341
msgid "Network error" msgid "Network error"
msgstr "নেটৱৰ্ক ত্ৰুটি" msgstr "নেটৱৰ্ক ত্ৰুটি"
#: ../js/ui/components/telepathyClient.js:1339 #: ../js/ui/components/telepathyClient.js:1343
msgid "Authentication failed" msgid "Authentication failed"
msgstr "প্ৰমাণীকৰণ ব্যৰ্থ" msgstr "প্ৰমাণীকৰণ ব্যৰ্থ"
#: ../js/ui/components/telepathyClient.js:1341 #: ../js/ui/components/telepathyClient.js:1345
msgid "Encryption error" msgid "Encryption error"
msgstr "ইনক্ৰিপষণ ত্ৰুটি" msgstr "ইনক্ৰিপষণ ত্ৰুটি"
#: ../js/ui/components/telepathyClient.js:1343 #: ../js/ui/components/telepathyClient.js:1347
msgid "Certificate not provided" msgid "Certificate not provided"
msgstr "প্ৰমাণপত্ৰ প্ৰদান কৰা হোৱা নাই" msgstr "প্ৰমাণপত্ৰ প্ৰদান কৰা হোৱা নাই"
#: ../js/ui/components/telepathyClient.js:1345 #: ../js/ui/components/telepathyClient.js:1349
msgid "Certificate untrusted" msgid "Certificate untrusted"
msgstr "প্ৰমাণপত্ৰক ভৰষা কৰিব নোৱাৰি" msgstr "প্ৰমাণপত্ৰক ভৰষা কৰিব নোৱাৰি"
#: ../js/ui/components/telepathyClient.js:1347 #: ../js/ui/components/telepathyClient.js:1351
msgid "Certificate expired" msgid "Certificate expired"
msgstr "প্ৰমাণপত্ৰৰ অৱসান ঘটিছে" msgstr "প্ৰমাণপত্ৰৰ অৱসান ঘটিছে"
#: ../js/ui/components/telepathyClient.js:1349 #: ../js/ui/components/telepathyClient.js:1353
msgid "Certificate not activated" msgid "Certificate not activated"
msgstr "প্ৰমাণপত্ৰ সক্ৰিয় কৰা হোৱা নাই" msgstr "প্ৰমাণপত্ৰ সক্ৰিয় কৰা হোৱা নাই"
#: ../js/ui/components/telepathyClient.js:1351 #: ../js/ui/components/telepathyClient.js:1355
msgid "Certificate hostname mismatch" msgid "Certificate hostname mismatch"
msgstr "প্ৰমাণপত্ৰ হস্টনাম অমিল" msgstr "প্ৰমাণপত্ৰ হস্টনাম অমিল"
#: ../js/ui/components/telepathyClient.js:1353 #: ../js/ui/components/telepathyClient.js:1357
msgid "Certificate fingerprint mismatch" msgid "Certificate fingerprint mismatch"
msgstr "প্ৰমাণপত্ৰ ফিংগাৰপ্ৰি্ট অমিল" msgstr "প্ৰমাণপত্ৰ ফিংগাৰপ্ৰি্ট অমিল"
#: ../js/ui/components/telepathyClient.js:1355 #: ../js/ui/components/telepathyClient.js:1359
msgid "Certificate self-signed" msgid "Certificate self-signed"
msgstr "প্ৰমাণপত্ৰ স্ব-স্বাক্ষৰীত" msgstr "প্ৰমাণপত্ৰ স্ব-স্বাক্ষৰীত"
#: ../js/ui/components/telepathyClient.js:1357 #: ../js/ui/components/telepathyClient.js:1361
msgid "Status is set to offline" msgid "Status is set to offline"
msgstr "অৱস্থা অফলাইনলে সংহতি কৰা হৈছে" msgstr "অৱস্থা অফলাইনলে সংহতি কৰা হৈছে"
#: ../js/ui/components/telepathyClient.js:1359 #: ../js/ui/components/telepathyClient.js:1363
msgid "Encryption is not available" msgid "Encryption is not available"
msgstr "ইনক্ৰিপষণ উপলব্ধ নহয়" msgstr "ইনক্ৰিপষণ উপলব্ধ নহয়"
#: ../js/ui/components/telepathyClient.js:1361 #: ../js/ui/components/telepathyClient.js:1365
msgid "Certificate is invalid" msgid "Certificate is invalid"
msgstr "প্ৰমাণপত্ৰ অবৈধ" msgstr "প্ৰমাণপত্ৰ অবৈধ"
#: ../js/ui/components/telepathyClient.js:1363 #: ../js/ui/components/telepathyClient.js:1367
msgid "Connection has been refused" msgid "Connection has been refused"
msgstr "সংযোগ নাকচ কৰা হৈছে" msgstr "সংযোগ নাকচ কৰা হৈছে"
#: ../js/ui/components/telepathyClient.js:1365 #: ../js/ui/components/telepathyClient.js:1369
msgid "Connection can't be established" msgid "Connection can't be established"
msgstr "সংযোগ স্থাপন কৰিব নোৱাৰি" msgstr "সংযোগ স্থাপন কৰিব নোৱাৰি"
#: ../js/ui/components/telepathyClient.js:1367 #: ../js/ui/components/telepathyClient.js:1371
msgid "Connection has been lost" msgid "Connection has been lost"
msgstr "সংযোগ হেৰাইছে" msgstr "সংযোগ হেৰাইছে"
#: ../js/ui/components/telepathyClient.js:1369 #: ../js/ui/components/telepathyClient.js:1373
msgid "This account is already connected to the server" msgid "This account is already connected to the server"
msgstr "এই একাও্ট ইতিমধ্যে চাৰ্ভাৰৰ সৈতে সংযোগিত" msgstr "এই একাও্ট ইতিমধ্যে চাৰ্ভাৰৰ সৈতে সংযোগিত"
#: ../js/ui/components/telepathyClient.js:1371 #: ../js/ui/components/telepathyClient.js:1375
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 "সংযোগক একে সম্পদ ব্যৱহাৰ কৰি এটা নতুন সংযোগৰে প্ৰতিস্থাপন কৰা হৈছে"
#: ../js/ui/components/telepathyClient.js:1373 #: ../js/ui/components/telepathyClient.js:1377
msgid "The account already exists on the server" msgid "The account already exists on the server"
msgstr "একাও্ট ইতিমধ্যে চাৰ্ভাৰত উপস্থিত" msgstr "একাও্ট ইতিমধ্যে চাৰ্ভাৰত উপস্থিত"
#: ../js/ui/components/telepathyClient.js:1375 #: ../js/ui/components/telepathyClient.js:1379
msgid "Server is currently too busy to handle the connection" msgid "Server is currently too busy to handle the connection"
msgstr "চাৰ্ভাৰ সংযোগ ব্যৱস্থাপনা কৰিবলে বৰ্তমানে অতি ব্যস্ত" msgstr "চাৰ্ভাৰ সংযোগ ব্যৱস্থাপনা কৰিবলে বৰ্তমানে অতি ব্যস্ত"
#: ../js/ui/components/telepathyClient.js:1377 #: ../js/ui/components/telepathyClient.js:1381
msgid "Certificate has been revoked" msgid "Certificate has been revoked"
msgstr "প্ৰমাণপত্ৰ প্ৰত্যাহাৰ কৰা হৈছে" msgstr "প্ৰমাণপত্ৰ প্ৰত্যাহাৰ কৰা হৈছে"
#: ../js/ui/components/telepathyClient.js:1379 #: ../js/ui/components/telepathyClient.js:1383
msgid "" msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak" "Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr "" msgstr ""
"প্ৰমাণপত্ৰয় এটা অসুৰক্ষিত চিফাৰ এলগৰিথম ব্যৱহাৰ কৰে অথবা ক্ৰিপ্টোগ্ৰাফিয়ভাৱে " "প্ৰমাণপত্ৰয় এটা অসুৰক্ষিত চিফাৰ এলগৰিথম ব্যৱহাৰ কৰে অথবা ক্ৰিপ্টোগ্ৰাফিয়ভাৱে "
"দুৰ্বল" "দুৰ্বল"
#: ../js/ui/components/telepathyClient.js:1381 #: ../js/ui/components/telepathyClient.js:1385
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"
@@ -966,26 +978,26 @@ msgstr ""
"ক্ৰিপ্টোগ্ৰাফী " "ক্ৰিপ্টোগ্ৰাফী "
"লাইব্ৰেৰীয়ে প্ৰণয়ন কৰা সীমাসমূহত অতিক্ৰম কৰে" "লাইব্ৰেৰীয়ে প্ৰণয়ন কৰা সীমাসমূহত অতিক্ৰম কৰে"
#: ../js/ui/components/telepathyClient.js:1383 #: ../js/ui/components/telepathyClient.js:1387
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/components/telepathyClient.js:1393 #: ../js/ui/components/telepathyClient.js:1397
#, javascript-format #, javascript-format
msgid "Unable to connect to %s" msgid "Unable to connect to %s"
msgstr "%s ৰ সৈতে সংযোগ কৰিবলে অক্ষম" msgstr "%s ৰ সৈতে সংযোগ কৰিবলে অক্ষম"
#: ../js/ui/components/telepathyClient.js:1398 #: ../js/ui/components/telepathyClient.js:1402
msgid "View account" msgid "View account"
msgstr "একাও্ট দৰ্শন কৰক" msgstr "একাও্ট দৰ্শন কৰক"
#: ../js/ui/components/telepathyClient.js:1435 #: ../js/ui/components/telepathyClient.js:1439
msgid "Unknown reason" msgid "Unknown reason"
msgstr "অজ্ঞাত কাৰণ" msgstr "অজ্ঞাত কাৰণ"
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:154 #: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:228
msgid "Windows" msgid "Windows"
msgstr "উইন্ডোসমূহ" msgstr "উইন্ডোসমূহ"
@@ -1016,86 +1028,86 @@ msgstr "তাৰিখ আৰু সময সংহতিসমূহ"
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%A %B %e, %Y" msgstr "%A %B %e, %Y"
#: ../js/ui/endSessionDialog.js:64 #: ../js/ui/endSessionDialog.js:66
#, javascript-format #, javascript-format
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "%s ক লগ আউট কৰক" msgstr "%s ক লগ আউট কৰক"
#: ../js/ui/endSessionDialog.js:65 #: ../js/ui/endSessionDialog.js:67
msgctxt "title" msgctxt "title"
msgid "Log Out" msgid "Log Out"
msgstr "লগ আউট কৰক" msgstr "লগ আউট কৰক"
#: ../js/ui/endSessionDialog.js:67 #: ../js/ui/endSessionDialog.js:69
#, javascript-format #, javascript-format
msgid "%s will be logged out automatically in %d second." msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds." msgid_plural "%s will be logged out automatically in %d seconds."
msgstr[0] "%s স্বচালিতভাৱে %d ছেকেণ্ডৰ পিছত লগ আউট হৈ যাব।" msgstr[0] "%s স্বচালিতভাৱে %d ছেকেণ্ডৰ পিছত লগ আউট হৈ যাব।"
msgstr[1] "%s স্বচালিতভাৱে %d ছেকেণ্ডৰ পিছত লগ আউট হৈ যাব।" msgstr[1] "%s স্বচালিতভাৱে %d ছেকেণ্ডৰ পিছত লগ আউট হৈ যাব।"
#: ../js/ui/endSessionDialog.js:72 #: ../js/ui/endSessionDialog.js:74
#, javascript-format #, javascript-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:78 #: ../js/ui/endSessionDialog.js:80
msgctxt "button" msgctxt "button"
msgid "Log Out" msgid "Log Out"
msgstr "লগ আউট কৰক" msgstr "লগ আউট কৰক"
#: ../js/ui/endSessionDialog.js:84 #: ../js/ui/endSessionDialog.js:86
msgctxt "title" msgctxt "title"
msgid "Power Off" msgid "Power Off"
msgstr "বন্ধ কৰক" msgstr "বন্ধ কৰক"
#: ../js/ui/endSessionDialog.js:85 #: ../js/ui/endSessionDialog.js:87
msgctxt "title" msgctxt "title"
msgid "Install Updates & Power Off" msgid "Install Updates & Power Off"
msgstr "আপডেইটসমূহ ইনস্টল কৰি চিস্টেম বন্ধ কৰক" msgstr "আপডেইটসমূহ ইনস্টল কৰি চিস্টেম বন্ধ কৰক"
#: ../js/ui/endSessionDialog.js:87 #: ../js/ui/endSessionDialog.js:89
#, javascript-format #, javascript-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:91 #: ../js/ui/endSessionDialog.js:93
msgctxt "checkbox" msgctxt "checkbox"
msgid "Install pending software updates" msgid "Install pending software updates"
msgstr "বাকি থকা চফ্টৱেৰ আপডেইটসমূহ ইনস্টল কৰক" msgstr "বাকি থকা চফ্টৱেৰ আপডেইটসমূহ ইনস্টল কৰক"
#: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111 #: ../js/ui/endSessionDialog.js:96 ../js/ui/endSessionDialog.js:113
msgctxt "button" msgctxt "button"
msgid "Restart" msgid "Restart"
msgstr "পুনৰাম্ভ কৰক" msgstr "পুনৰাম্ভ কৰক"
#: ../js/ui/endSessionDialog.js:96 #: ../js/ui/endSessionDialog.js:98
msgctxt "button" msgctxt "button"
msgid "Power Off" msgid "Power Off"
msgstr "বন্ধ কৰক" msgstr "বন্ধ কৰক"
#: ../js/ui/endSessionDialog.js:103 #: ../js/ui/endSessionDialog.js:105
msgctxt "title" msgctxt "title"
msgid "Restart" msgid "Restart"
msgstr "পুনৰাম্ভ কৰক" msgstr "পুনৰাম্ভ কৰক"
#: ../js/ui/endSessionDialog.js:105 #: ../js/ui/endSessionDialog.js:107
#, javascript-format #, javascript-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:119 #: ../js/ui/endSessionDialog.js:121
msgctxt "title" msgctxt "title"
msgid "Restart & Install Updates" msgid "Restart & Install Updates"
msgstr "পুনাৰম্ভ কৰক আৰু আপডেইটসমূহ ইনস্টল কৰক" msgstr "পুনাৰম্ভ কৰক আৰু আপডেইটসমূহ ইনস্টল কৰক"
#: ../js/ui/endSessionDialog.js:121 #: ../js/ui/endSessionDialog.js:123
#, javascript-format #, javascript-format
msgid "The system will automatically restart and install updates in %d second." msgid "The system will automatically restart and install updates in %d second."
msgid_plural "" msgid_plural ""
@@ -1105,44 +1117,46 @@ msgstr[0] ""
msgstr[1] "" msgstr[1] ""
"চিস্টেম %d ছেকেণ্ডত স্বচালিতভাৱে পুনৰাম্ভ হব আৰু আপডেইটসমূহ ইনস্টল কৰিব।" "চিস্টেম %d ছেকেণ্ডত স্বচালিতভাৱে পুনৰাম্ভ হব আৰু আপডেইটসমূহ ইনস্টল কৰিব।"
#: ../js/ui/endSessionDialog.js:127 #: ../js/ui/endSessionDialog.js:129
#| msgctxt "button"
#| msgid "Restart & Install"
msgctxt "button" msgctxt "button"
msgid "Restart &amp; Install" msgid "Restart &amp; Install"
msgstr "পুনৰাম্ভ কৰক &amp; ইনস্টল কৰক" msgstr "পুনৰাম্ভ কৰক &amp; ইনস্টল কৰক"
#: ../js/ui/endSessionDialog.js:128 #: ../js/ui/endSessionDialog.js:130
msgctxt "button" msgctxt "button"
msgid "Install &amp; Power Off" msgid "Install &amp; Power Off"
msgstr "ইনস্টল কৰক &amp; চিস্টেম বন্ধ কৰক" msgstr "ইনস্টল কৰক &amp; চিস্টেম বন্ধ কৰক"
#: ../js/ui/endSessionDialog.js:129 #: ../js/ui/endSessionDialog.js:131
msgctxt "checkbox" msgctxt "checkbox"
msgid "Power off after updates are installed" msgid "Power off after updates are installed"
msgstr "আপডেইটসমূহ ইনস্টল কৰাৰ পিছত চিস্টেম বন্ধ কৰক" msgstr "আপডেইটসমূহ ইনস্টল কৰাৰ পিছত চিস্টেম বন্ধ কৰক"
#: ../js/ui/endSessionDialog.js:338 #: ../js/ui/endSessionDialog.js:315
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
msgstr "" msgstr ""
"বেটাৰি শক্তিত চলি আছে: অনুগ্ৰহ কৰি আপডেইটসমূহ ইনস্টল কৰাৰ আগত চাৰ্জাৰ লগাওক।" "বেটাৰি শক্তিত চলি আছে: অনুগ্ৰহ কৰি আপডেইটসমূহ ইনস্টল কৰাৰ আগত চাৰ্জাৰ লগাওক।"
#: ../js/ui/endSessionDialog.js:355 #: ../js/ui/endSessionDialog.js:332
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
msgstr "" msgstr ""
"কিছুমান এপ্লিকেচন ব্যস্ত হব পাৰে অথবা সিহতৰ কিছুমান অসংৰক্ষিত কাৰ্য্য থাকিব " "কিছুমান এপ্লিকেচন ব্যস্ত হব পাৰে অথবা সিহতৰ কিছুমান অসংৰক্ষিত কাৰ্য্য থাকিব "
"পাৰে।" "পাৰে।"
#: ../js/ui/endSessionDialog.js:362 #: ../js/ui/endSessionDialog.js:339
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "অন্য ব্যৱহাৰকাৰীসকল লগ্ড ইন আছে।" msgstr "অন্য ব্যৱহাৰকাৰীসকল লগ্ড ইন আছে।"
#. Translators: Remote here refers to a remote session, like a ssh login */ #. Translators: Remote here refers to a remote session, like a ssh login */
#: ../js/ui/endSessionDialog.js:640 #: ../js/ui/endSessionDialog.js:619
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (দূৰৱৰ্তী)" msgstr "%s (দূৰৱৰ্তী)"
#. Translators: Console here refers to a tty like a VT console */ #. Translators: Console here refers to a tty like a VT console */
#: ../js/ui/endSessionDialog.js:643 #: ../js/ui/endSessionDialog.js:622
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (কনচৌল)" msgstr "%s (কনচৌল)"
@@ -1156,7 +1170,7 @@ msgstr "ইনস্টল কৰক"
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:692 ../js/ui/status/keyboard.js:523 #: ../js/ui/keyboard.js:653 ../js/ui/status/keyboard.js:339
msgid "Keyboard" msgid "Keyboard"
msgstr "কিবৰ্ড" msgstr "কিবৰ্ড"
@@ -1178,8 +1192,8 @@ msgstr "ত্ৰুটিসমূহ লুকুৱাওক"
msgid "Show Errors" msgid "Show Errors"
msgstr "ত্ৰুটিসমূহ দেখুৱাওক" msgstr "ত্ৰুটিসমূহ দেখুৱাওক"
#: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:71 #: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:62
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:164
msgid "Enabled" msgid "Enabled"
msgstr "সামৰ্থবান কৰা আছে" msgstr "সামৰ্থবান কৰা আছে"
@@ -1187,7 +1201,7 @@ msgstr "সামৰ্থবান কৰা আছে"
#. because it's disabled by rfkill (airplane mode) */ #. because it's disabled by rfkill (airplane mode) */
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:179 #: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:167
#: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled" msgid "Disabled"
msgstr "অসামৰ্থবান কৰা আছে" msgstr "অসামৰ্থবান কৰা আছে"
@@ -1212,39 +1226,39 @@ msgstr "উৎস দৰ্শন কৰক"
msgid "Web Page" msgid "Web Page"
msgstr "ৱেব পৃষ্ঠা" msgstr "ৱেব পৃষ্ঠা"
#: ../js/ui/messageTray.js:1326 #: ../js/ui/messageTray.js:1325
msgid "Open" msgid "Open"
msgstr "খোলক" msgstr "খোলক"
#: ../js/ui/messageTray.js:1333 #: ../js/ui/messageTray.js:1332
msgid "Remove" msgid "Remove"
msgstr "আতৰাওক" msgstr "আতৰাওক"
#: ../js/ui/messageTray.js:1630 #: ../js/ui/messageTray.js:1629
msgid "Notifications" msgid "Notifications"
msgstr "অধিসূচনাসমূহ" msgstr "অধিসূচনাসমূহ"
#: ../js/ui/messageTray.js:1637 #: ../js/ui/messageTray.js:1636
msgid "Clear Messages" msgid "Clear Messages"
msgstr "বাৰ্তাসমূহ পৰিষ্কাৰ কৰক" msgstr "বাৰ্তাসমূহ পৰিষ্কাৰ কৰক"
#: ../js/ui/messageTray.js:1656 #: ../js/ui/messageTray.js:1655
msgid "Notification Settings" msgid "Notification Settings"
msgstr "অধিসূচনা সংহতিসমূহ" msgstr "অধিসূচনা সংহতিসমূহ"
#: ../js/ui/messageTray.js:1709 #: ../js/ui/messageTray.js:1708
msgid "Tray Menu" msgid "Tray Menu"
msgstr "ট্ৰে মেনু" msgstr "ট্ৰে মেনু"
#: ../js/ui/messageTray.js:1926 #: ../js/ui/messageTray.js:1925
msgid "No Messages" msgid "No Messages"
msgstr "কোনো বাৰ্তা নাই" msgstr "কোনো বাৰ্তা নাই"
#: ../js/ui/messageTray.js:1968 #: ../js/ui/messageTray.js:1963
msgid "Message Tray" msgid "Message Tray"
msgstr "বাৰ্তা ট্ৰে" msgstr "বাৰ্তা ট্ৰে"
#: ../js/ui/messageTray.js:2971 #: ../js/ui/messageTray.js:2966
msgid "System Information" msgid "System Information"
msgstr "চিস্টেম তথ্য" msgstr "চিস্টেম তথ্য"
@@ -1272,7 +1286,7 @@ msgstr "অভাৰভিউ"
#. in the search entry when no search is #. in the search entry when no search is
#. active; it should not exceed ~30 #. active; it should not exceed ~30
#. characters. */ #. characters. */
#: ../js/ui/overview.js:246 #: ../js/ui/overview.js:250
msgid "Type to search…" msgid "Type to search…"
msgstr "সন্ধান কৰিবলে টাইপ কৰক…" msgstr "সন্ধান কৰিবলে টাইপ কৰক…"
@@ -1290,7 +1304,7 @@ msgstr "কাৰ্য্যসমূহ"
msgid "Top Bar" msgid "Top Bar"
msgstr "উপৰৰ বাৰ" msgstr "উপৰৰ বাৰ"
#: ../js/ui/popupMenu.js:269 #: ../js/ui/popupMenu.js:280
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-us" msgstr "toggle-switch-us"
@@ -1302,7 +1316,8 @@ msgstr "এটা কমান্ড সুমুৱাওক"
msgid "Close" msgid "Close"
msgstr "বন্ধ কৰক" msgstr "বন্ধ কৰক"
#: ../js/ui/runDialog.js:277 #: ../js/ui/runDialog.js:273
#| msgid "Estimating…"
msgid "Restarting…" msgid "Restarting…"
msgstr "পুনাৰম্ভ কৰা হৈছে…" msgstr "পুনাৰম্ভ কৰা হৈছে…"
@@ -1319,43 +1334,43 @@ msgid_plural "%d new notifications"
msgstr[0] "%d নতুন অধিসূচনা" msgstr[0] "%d নতুন অধিসূচনা"
msgstr[1] "%d নতুন অধিসূচনাসমূহ" msgstr[1] "%d নতুন অধিসূচনাসমূহ"
#: ../js/ui/screenShield.js:472 ../js/ui/status/system.js:345 #: ../js/ui/screenShield.js:474 ../js/ui/status/system.js:345
msgid "Lock" msgid "Lock"
msgstr "লক কৰক" msgstr "লক কৰক"
#: ../js/ui/screenShield.js:706 #: ../js/ui/screenShield.js:708
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME এ পৰ্দা লক কৰিব লাগিব" msgstr "GNOME এ পৰ্দা লক কৰিব লাগিব"
#: ../js/ui/screenShield.js:833 ../js/ui/screenShield.js:1304 #: ../js/ui/screenShield.js:835 ../js/ui/screenShield.js:1306
msgid "Unable to lock" msgid "Unable to lock"
msgstr "লক কৰিবলে অক্ষম" msgstr "লক কৰিবলে অক্ষম"
#: ../js/ui/screenShield.js:834 ../js/ui/screenShield.js:1305 #: ../js/ui/screenShield.js:836 ../js/ui/screenShield.js:1307
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "লক কাৰ্য্য এটা এপ্লিকেচন দ্বাৰা প্ৰতিৰোধ কৰা হৈছিল" msgstr "লক কাৰ্য্য এটা এপ্লিকেচন দ্বাৰা প্ৰতিৰোধ কৰা হৈছিল"
#: ../js/ui/search.js:594 #: ../js/ui/search.js:614
msgid "Searching…" msgid "Searching…"
msgstr "সন্ধান কৰা হৈছে…" msgstr "সন্ধান কৰা হৈছে…"
#: ../js/ui/search.js:596 #: ../js/ui/search.js:660
msgid "No results." msgid "No results."
msgstr "কোনো ফলাফল নাই।" msgstr "কোনো ফলাফল নাই।"
#: ../js/ui/shellEntry.js:25 #: ../js/ui/shellEntry.js:27
msgid "Copy" msgid "Copy"
msgstr "কপি কৰক" msgstr "কপি কৰক"
#: ../js/ui/shellEntry.js:30 #: ../js/ui/shellEntry.js:32
msgid "Paste" msgid "Paste"
msgstr "পেইস্ট কৰক" msgstr "পেইস্ট কৰক"
#: ../js/ui/shellEntry.js:97 #: ../js/ui/shellEntry.js:99
msgid "Show Text" msgid "Show Text"
msgstr "লিখনি দেখুৱাওক" msgstr "লিখনি দেখুৱাওক"
#: ../js/ui/shellEntry.js:99 #: ../js/ui/shellEntry.js:101
msgid "Hide Text" msgid "Hide Text"
msgstr "লিখনি লুকুৱাওক" msgstr "লিখনি লুকুৱাওক"
@@ -1441,28 +1456,26 @@ msgstr "সংযুক্ত নহয়"
msgid "Brightness" msgid "Brightness"
msgstr "উজ্জ্বলতা" msgstr "উজ্জ্বলতা"
#: ../js/ui/status/keyboard.js:547 #: ../js/ui/status/keyboard.js:407
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "কিবৰ্ড বিন্যাস দেখুৱাওক" msgstr "কিবৰ্ড বিন্যাস দেখুৱাওক"
#: ../js/ui/status/location.js:65 #: ../js/ui/status/location.js:56
#| msgid "Notifications"
msgid "Location" msgid "Location"
msgstr "অবস্থান" msgstr "অবস্থান"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:177 #: ../js/ui/status/location.js:63 ../js/ui/status/location.js:165
#| msgid "Disabled"
msgid "Disable" msgid "Disable"
msgstr "অসামৰ্থবান কৰক" msgstr "অসামৰ্থবান কৰক"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:164
#| msgid "Power Settings"
msgid "Privacy Settings"
msgstr "গোপনীয়তা সংহতিসমূহ"
#: ../js/ui/status/location.js:176
msgid "In Use" msgid "In Use"
msgstr "ব্যৱহৃত" msgstr "ব্যৱহৃত"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:168
#| msgid "Enabled"
msgid "Enable" msgid "Enable"
msgstr "সামৰ্থবান কৰক" msgstr "সামৰ্থবান কৰক"
@@ -1476,31 +1489,37 @@ msgid "Off"
msgstr "অফ" msgstr "অফ"
#: ../js/ui/status/network.js:459 #: ../js/ui/status/network.js:459
#| msgid "Connect"
msgid "Connected" msgid "Connected"
msgstr "সংযুক্ত" msgstr "সংযুক্ত"
#. Translators: this is for network devices that are physically present but are not #. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu) */ #. under NetworkManager's control (and thus cannot be used in the menu) */
#: ../js/ui/status/network.js:463 #: ../js/ui/status/network.js:463
#| msgid "unmanaged"
msgid "Unmanaged" msgid "Unmanaged"
msgstr "অব্যৱস্থাপিত" msgstr "অব্যৱস্থাপিত"
#: ../js/ui/status/network.js:465 #: ../js/ui/status/network.js:465
#| msgid "disconnecting..."
msgid "Disconnecting" msgid "Disconnecting"
msgstr "বিচ্ছিনিত কৰা হৈছে" msgstr "বিচ্ছিনিত কৰা হৈছে"
#: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1301 #: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1301
#| msgid "Connection"
msgid "Connecting" msgid "Connecting"
msgstr "সংযোগ কৰা হৈছে" msgstr "সংযোগ কৰা হৈছে"
#. Translators: this is for network connections that require some kind of key or password */ #. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:474 #: ../js/ui/status/network.js:474
#| msgid "authentication required"
msgid "Authentication required" msgid "Authentication required"
msgstr "প্ৰমাণীকৰণৰ প্ৰয়োজন" msgstr "প্ৰমাণীকৰণৰ প্ৰয়োজন"
#. Translators: this is for devices that require some kind of firmware or kernel #. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing */ #. module, which is missing */
#: ../js/ui/status/network.js:482 #: ../js/ui/status/network.js:482
#| msgid "firmware missing"
msgid "Firmware missing" msgid "Firmware missing"
msgstr "ফাৰ্মৱেৰ সন্ধানহীন" msgstr "ফাৰ্মৱেৰ সন্ধানহীন"
@@ -1604,6 +1623,7 @@ msgid "Network Settings"
msgstr "নেটৱৰ্ক সংহতিসমূহ" msgstr "নেটৱৰ্ক সংহতিসমূহ"
#: ../js/ui/status/network.js:1482 #: ../js/ui/status/network.js:1482
#| msgid "Settings"
msgid "VPN Settings" msgid "VPN Settings"
msgstr "VPN সংহতিসমূহ" msgstr "VPN সংহতিসমূহ"
@@ -1697,11 +1717,11 @@ msgstr "অন্য ব্যৱহাৰকাৰী হিচাপে লগ
msgid "Unlock Window" msgid "Unlock Window"
msgstr "উইন্ডো আনলক কৰক" msgstr "উইন্ডো আনলক কৰক"
#: ../js/ui/viewSelector.js:158 #: ../js/ui/viewSelector.js:232
msgid "Applications" msgid "Applications"
msgstr "এপ্লিকেচনসমূহ" msgstr "এপ্লিকেচনসমূহ"
#: ../js/ui/viewSelector.js:162 #: ../js/ui/viewSelector.js:236
msgid "Search" msgid "Search"
msgstr "সন্ধান কৰক" msgstr "সন্ধান কৰক"
@@ -1798,19 +1818,19 @@ msgstr[1] "%u ইনপুটসমূহ"
msgid "System Sounds" msgid "System Sounds"
msgstr "চিস্টেম শব্দসমূহ" msgstr "চিস্টেম শব্দসমূহ"
#: ../src/main.c:373 #: ../src/main.c:371
msgid "Print version" msgid "Print version"
msgstr "প্ৰি্ট সংস্কৰণ" msgstr "প্ৰি্ট সংস্কৰণ"
#: ../src/main.c:379 #: ../src/main.c:377
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "লগিন স্ক্ৰিনৰ বাবে GDM দ্বাৰা ব্যৱহাৰ কৰা অৱস্থা" msgstr "লগিন স্ক্ৰিনৰ বাবে GDM দ্বাৰা ব্যৱহাৰ কৰা অৱস্থা"
#: ../src/main.c:385 #: ../src/main.c:383
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "লগিন পৰ্দাৰ বাবে এটা বিশেষ অৱস্থা, উদাহৰণস্বৰূপ \"gdm\" ব্যৱহাৰ কৰক" msgstr "লগিন পৰ্দাৰ বাবে এটা বিশেষ অৱস্থা, উদাহৰণস্বৰূপ \"gdm\" ব্যৱহাৰ কৰক"
#: ../src/main.c:391 #: ../src/main.c:389
msgid "List possible modes" msgid "List possible modes"
msgstr "সম্ভাব্য অৱস্থাসমূহ তালিকাভুক্ত কৰক" msgstr "সম্ভাব্য অৱস্থাসমূহ তালিকাভুক্ত কৰক"
@@ -2014,7 +2034,7 @@ msgstr "প্ৰমাণীকৰণ ডাইলগ ব্যৱহাৰক
#~ "সংহিত, অবিকল্পিত পাইপলাইন ব্যৱহাৰ কৰা হব। এইটো বৰ্তমানত 'vp8enc " #~ "সংহিত, অবিকল্পিত পাইপলাইন ব্যৱহাৰ কৰা হব। এইটো বৰ্তমানত 'vp8enc "
#~ "min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=" #~ "min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads="
#~ "%T ! queue ! webmmux' আৰু VP8 কডেক ব্যৱহাৰ কৰি WEBM ত ৰেকৰ্ড কৰে। %T ক " #~ "%T ! queue ! webmmux' আৰু VP8 কডেক ব্যৱহাৰ কৰি WEBM ত ৰেকৰ্ড কৰে। %T ক "
#~ "চিস্টেমত অনুকূলিত থ্ৰেড কাও্টত এটা অনুমানৰ প্লেইচহল্ডাৰ হিচাপে ব্যৱহাৰ কৰা হয়।" #~ "চিস্টেমত অনুকূলিত থ্ৰেড কাও্টত এটা অনুমানৰ প্লেইচহল্ডাৰ হিচাপে ব্যৱহাৰ কৰা হয়।"
#~ msgid "File extension used for storing the screencast" #~ msgid "File extension used for storing the screencast"
#~ msgstr "screencast সংৰক্ষণ কৰাৰ কাৰণে লথিপত্ৰ সম্প্ৰসাৰন" #~ msgstr "screencast সংৰক্ষণ কৰাৰ কাৰণে লথিপত্ৰ সম্প্ৰসাৰন"
@@ -2297,7 +2317,7 @@ msgstr "প্ৰমাণীকৰণ ডাইলগ ব্যৱহাৰক
#~ msgstr "চিস্টেম সংহতিসমূহ" #~ msgstr "চিস্টেম সংহতিসমূহ"
#~ msgid "Failed to unmount '%s'" #~ msgid "Failed to unmount '%s'"
#~ msgstr "'%s' আনমাউ্ট কৰিবলে ব্যৰ্থ" #~ msgstr "'%s' আনমাউ্ট কৰিবলে ব্যৰ্থ"
#~ msgid "Retry" #~ msgid "Retry"
#~ msgstr "পুনৰ চেষ্টা কৰক" #~ msgstr "পুনৰ চেষ্টা কৰক"
@@ -2375,7 +2395,7 @@ msgstr "প্ৰমাণীকৰণ ডাইলগ ব্যৱহাৰক
#~ msgstr "বন্ধ কৰক" #~ msgstr "বন্ধ কৰক"
#~ msgid "Online Accounts" #~ msgid "Online Accounts"
#~ msgstr "অনলাইন একাও্টসমূহ" #~ msgstr "অনলাইন একাও্টসমূহ"
#~ msgid "Lock Screen" #~ msgid "Lock Screen"
#~ msgstr "পৰ্দা লক কৰক" #~ msgstr "পৰ্দা লক কৰক"

1765
po/bg.po

File diff suppressed because it is too large Load Diff

928
po/ca.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

661
po/cs.po

File diff suppressed because it is too large Load Diff

1198
po/da.po

File diff suppressed because it is too large Load Diff

495
po/de.po

File diff suppressed because it is too large Load Diff

410
po/el.po

File diff suppressed because it is too large Load Diff

413
po/es.po

File diff suppressed because it is too large Load Diff

907
po/fi.po

File diff suppressed because it is too large Load Diff

148
po/fr.po
View File

@@ -19,7 +19,7 @@ msgstr ""
"Project-Id-Version: gnome-shell master fr\n" "Project-Id-Version: gnome-shell master fr\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: 2014-09-12 17:00+0000\n" "POT-Creation-Date: 2014-08-25 07:37+0000\n"
"PO-Revision-Date: 2014-08-25 17:00+0200\n" "PO-Revision-Date: 2014-08-25 17:00+0200\n"
"Last-Translator: Alain Lojewski <allomervan@gmail.com>\n" "Last-Translator: Alain Lojewski <allomervan@gmail.com>\n"
"Language-Team: français <gnomefr@traduc.org>\n" "Language-Team: français <gnomefr@traduc.org>\n"
@@ -242,8 +242,8 @@ msgstr "Combinaison de touches pour donner le focus à la notification active."
msgid "" msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "" msgstr ""
"Combinaison de touches pour stopper et fermer toutes les transitions à des " "Combinaison de touches pour stopper et fermer toutes les transitions à des fins "
"fins de débogage" "de débogage"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Which keyboard to use" msgid "Which keyboard to use"
@@ -322,19 +322,19 @@ msgstr ""
msgid "Captive Portal" msgid "Captive Portal"
msgstr "Portail captif" msgstr "Portail captif"
#: ../js/extensionPrefs/main.js:123 #: ../js/extensionPrefs/main.js:127
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "" msgstr ""
"Une erreur s'est produite lors du chargement de la boîte de dialogue des " "Une erreur s'est produite lors du chargement de la boîte de dialogue des "
"préférences de %s :" "préférences de %s :"
#: ../js/extensionPrefs/main.js:155 #: ../js/extensionPrefs/main.js:159
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "Extensions GNOME Shell" msgstr "Extensions GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143 #: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452 #: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:429
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:915 #: ../js/ui/status/network.js:915
msgid "Cancel" msgid "Cancel"
@@ -401,40 +401,40 @@ msgstr "Exécution de « %s » impossible :"
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "Redirection de l'authentification Web" msgstr "Redirection de l'authentification Web"
#: ../js/ui/appDisplay.js:772 #: ../js/ui/appDisplay.js:660
msgid "Frequently used applications will appear here" msgid "Frequently used applications will appear here"
msgstr "Les applications fréquemment utilisées apparaîtront ici" msgstr "Les applications fréquemment utilisées apparaîtront ici"
#: ../js/ui/appDisplay.js:883 #: ../js/ui/appDisplay.js:771
msgid "Frequent" msgid "Frequent"
msgstr "Fréquemment utilisées" msgstr "Fréquemment utilisées"
#: ../js/ui/appDisplay.js:890 #: ../js/ui/appDisplay.js:778
msgid "All" msgid "All"
msgstr "Toutes" msgstr "Toutes"
#: ../js/ui/appDisplay.js:1789 #: ../js/ui/appDisplay.js:1650
msgid "New Window" msgid "New Window"
msgstr "Nouvelle fenêtre" msgstr "Nouvelle fenêtre"
#: ../js/ui/appDisplay.js:1815 ../js/ui/dash.js:285 #: ../js/ui/appDisplay.js:1673 ../js/ui/dash.js:285
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "Enlever des favoris" msgstr "Enlever des favoris"
#: ../js/ui/appDisplay.js:1821 #: ../js/ui/appDisplay.js:1679
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "Ajouter aux favoris" msgstr "Ajouter aux favoris"
#: ../js/ui/appDisplay.js:1830 #: ../js/ui/appDisplay.js:1688
msgid "Show Details" msgid "Show Details"
msgstr "Afficher les détails" msgstr "Afficher les détails"
#: ../js/ui/appFavorites.js:124 #: ../js/ui/appFavorites.js:122
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s a été ajouté à vos favoris." msgstr "%s a été ajouté à vos favoris."
#: ../js/ui/appFavorites.js:158 #: ../js/ui/appFavorites.js:156
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s a été supprimé de vos favoris." msgstr "%s a été supprimé de vos favoris."
@@ -647,11 +647,11 @@ msgstr "Ouvrir avec %s"
msgid "Eject" msgid "Eject"
msgstr "Éjecter" msgstr "Éjecter"
#: ../js/ui/components/keyring.js:94 ../js/ui/components/polkitAgent.js:285 #: ../js/ui/components/keyring.js:93 ../js/ui/components/polkitAgent.js:285
msgid "Password:" msgid "Password:"
msgstr "Mot de passe :" msgstr "Mot de passe :"
#: ../js/ui/components/keyring.js:120 #: ../js/ui/components/keyring.js:113
msgid "Type again:" msgid "Type again:"
msgstr "Saisissez à nouveau :" msgstr "Saisissez à nouveau :"
@@ -1025,7 +1025,7 @@ msgstr "Afficher le compte"
msgid "Unknown reason" msgid "Unknown reason"
msgstr "Raison inconnue" msgstr "Raison inconnue"
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:154 #: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:228
msgid "Windows" msgid "Windows"
msgstr "Fenêtres" msgstr "Fenêtres"
@@ -1062,86 +1062,86 @@ msgstr "Paramètres de date et heure"
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%A %e %B %Y" msgstr "%A %e %B %Y"
#: ../js/ui/endSessionDialog.js:64 #: ../js/ui/endSessionDialog.js:66
#, javascript-format #, javascript-format
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "Fermer la session de %s" msgstr "Fermer la session de %s"
#: ../js/ui/endSessionDialog.js:65 #: ../js/ui/endSessionDialog.js:67
msgctxt "title" msgctxt "title"
msgid "Log Out" msgid "Log Out"
msgstr "Fermer la session" msgstr "Fermer la session"
#: ../js/ui/endSessionDialog.js:67 #: ../js/ui/endSessionDialog.js:69
#, javascript-format #, javascript-format
msgid "%s will be logged out automatically in %d second." msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds." msgid_plural "%s will be logged out automatically in %d seconds."
msgstr[0] "%s sera déconnecté automatiquement dans %d seconde." msgstr[0] "%s sera déconnecté automatiquement dans %d seconde."
msgstr[1] "%s sera déconnecté automatiquement dans %d secondes." msgstr[1] "%s sera déconnecté automatiquement dans %d secondes."
#: ../js/ui/endSessionDialog.js:72 #: ../js/ui/endSessionDialog.js:74
#, javascript-format #, javascript-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] "Vous allez être déconnecté automatiquement dans %d seconde." msgstr[0] "Vous allez être déconnecté automatiquement dans %d seconde."
msgstr[1] "Vous allez être déconnecté automatiquement dans %d secondes." msgstr[1] "Vous allez être déconnecté automatiquement dans %d secondes."
#: ../js/ui/endSessionDialog.js:78 #: ../js/ui/endSessionDialog.js:80
msgctxt "button" msgctxt "button"
msgid "Log Out" msgid "Log Out"
msgstr "Fermer la session" msgstr "Fermer la session"
#: ../js/ui/endSessionDialog.js:84 #: ../js/ui/endSessionDialog.js:86
msgctxt "title" msgctxt "title"
msgid "Power Off" msgid "Power Off"
msgstr "Éteindre" msgstr "Éteindre"
#: ../js/ui/endSessionDialog.js:85 #: ../js/ui/endSessionDialog.js:87
msgctxt "title" msgctxt "title"
msgid "Install Updates & Power Off" msgid "Install Updates & Power Off"
msgstr "Installer les mises à jour et éteindre" msgstr "Installer les mises à jour et éteindre"
#: ../js/ui/endSessionDialog.js:87 #: ../js/ui/endSessionDialog.js:89
#, javascript-format #, javascript-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] "Cet ordinateur s'éteindra automatiquement dans %d seconde." msgstr[0] "Cet ordinateur s'éteindra automatiquement dans %d seconde."
msgstr[1] "Cet ordinateur s'éteindra automatiquement dans %d secondes." msgstr[1] "Cet ordinateur s'éteindra automatiquement dans %d secondes."
#: ../js/ui/endSessionDialog.js:91 #: ../js/ui/endSessionDialog.js:93
msgctxt "checkbox" msgctxt "checkbox"
msgid "Install pending software updates" msgid "Install pending software updates"
msgstr "Installer les mises à jour logicielles en attente" msgstr "Installer les mises à jour logicielles en attente"
#: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111 #: ../js/ui/endSessionDialog.js:96 ../js/ui/endSessionDialog.js:113
msgctxt "button" msgctxt "button"
msgid "Restart" msgid "Restart"
msgstr "Redémarrer" msgstr "Redémarrer"
#: ../js/ui/endSessionDialog.js:96 #: ../js/ui/endSessionDialog.js:98
msgctxt "button" msgctxt "button"
msgid "Power Off" msgid "Power Off"
msgstr "Éteindre" msgstr "Éteindre"
#: ../js/ui/endSessionDialog.js:103 #: ../js/ui/endSessionDialog.js:105
msgctxt "title" msgctxt "title"
msgid "Restart" msgid "Restart"
msgstr "Redémarrer" msgstr "Redémarrer"
#: ../js/ui/endSessionDialog.js:105 #: ../js/ui/endSessionDialog.js:107
#, javascript-format #, javascript-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] "Cet ordinateur redémarrera automatiquement dans %d seconde." msgstr[0] "Cet ordinateur redémarrera automatiquement dans %d seconde."
msgstr[1] "Cet ordinateur redémarrera automatiquement dans %d secondes." msgstr[1] "Cet ordinateur redémarrera automatiquement dans %d secondes."
#: ../js/ui/endSessionDialog.js:119 #: ../js/ui/endSessionDialog.js:121
msgctxt "title" msgctxt "title"
msgid "Restart & Install Updates" msgid "Restart & Install Updates"
msgstr "Redémarrer et installer les mises à jour" msgstr "Redémarrer et installer les mises à jour"
#: ../js/ui/endSessionDialog.js:121 #: ../js/ui/endSessionDialog.js:123
#, javascript-format #, javascript-format
msgid "The system will automatically restart and install updates in %d second." msgid "The system will automatically restart and install updates in %d second."
msgid_plural "" msgid_plural ""
@@ -1149,44 +1149,44 @@ msgid_plural ""
msgstr[0] "Le système redémarrera automatiquement dans %d seconde." msgstr[0] "Le système redémarrera automatiquement dans %d seconde."
msgstr[1] "Le système redémarrera automatiquement dans %d secondes." msgstr[1] "Le système redémarrera automatiquement dans %d secondes."
#: ../js/ui/endSessionDialog.js:127 #: ../js/ui/endSessionDialog.js:129
msgctxt "button" msgctxt "button"
msgid "Restart &amp; Install" msgid "Restart &amp; Install"
msgstr "Redémarrer et installer" msgstr "Redémarrer et installer"
#: ../js/ui/endSessionDialog.js:128 #: ../js/ui/endSessionDialog.js:130
msgctxt "button" msgctxt "button"
msgid "Install &amp; Power Off" msgid "Install &amp; Power Off"
msgstr "Installer et éteindre" msgstr "Installer et éteindre"
#: ../js/ui/endSessionDialog.js:129 #: ../js/ui/endSessionDialog.js:131
msgctxt "checkbox" msgctxt "checkbox"
msgid "Power off after updates are installed" msgid "Power off after updates are installed"
msgstr "Éteindre après l'installation des mises à jour" msgstr "Éteindre après l'installation des mises à jour"
#: ../js/ui/endSessionDialog.js:338 #: ../js/ui/endSessionDialog.js:315
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
msgstr "" msgstr ""
"Fonctionnement sur batterie : veuillez vous brancher avant d'installer les " "Fonctionnement sur batterie : veuillez vous brancher avant d'installer les "
"mises à jour." "mises à jour."
#: ../js/ui/endSessionDialog.js:355 #: ../js/ui/endSessionDialog.js:332
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
msgstr "" msgstr ""
"Certaines applications sont occupées ou ont des travaux non-sauvegardés." "Certaines applications sont occupées ou ont des travaux non-sauvegardés."
#: ../js/ui/endSessionDialog.js:362 #: ../js/ui/endSessionDialog.js:339
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "D'autres utilisateurs sont connectés." msgstr "D'autres utilisateurs sont connectés."
#. Translators: Remote here refers to a remote session, like a ssh login */ #. Translators: Remote here refers to a remote session, like a ssh login */
#: ../js/ui/endSessionDialog.js:640 #: ../js/ui/endSessionDialog.js:619
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (distant)" msgstr "%s (distant)"
#. Translators: Console here refers to a tty like a VT console */ #. Translators: Console here refers to a tty like a VT console */
#: ../js/ui/endSessionDialog.js:643 #: ../js/ui/endSessionDialog.js:622
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (console)" msgstr "%s (console)"
@@ -1200,7 +1200,7 @@ msgstr "Installer"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Télécharger et installer « %s » à partir de extensions.gnome.org ?" msgstr "Télécharger et installer « %s » à partir de extensions.gnome.org ?"
#: ../js/ui/keyboard.js:692 ../js/ui/status/keyboard.js:523 #: ../js/ui/keyboard.js:653 ../js/ui/status/keyboard.js:339
msgid "Keyboard" msgid "Keyboard"
msgstr "Clavier" msgstr "Clavier"
@@ -1222,8 +1222,8 @@ msgstr "Masquer les erreurs"
msgid "Show Errors" msgid "Show Errors"
msgstr "Afficher les erreurs" msgstr "Afficher les erreurs"
#: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:71 #: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:62
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:166
msgid "Enabled" msgid "Enabled"
msgstr "Activé" msgstr "Activé"
@@ -1231,7 +1231,7 @@ msgstr "Activé"
#. because it's disabled by rfkill (airplane mode) */ #. because it's disabled by rfkill (airplane mode) */
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:179 #: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:169
#: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled" msgid "Disabled"
msgstr "Désactivé" msgstr "Désactivé"
@@ -1256,39 +1256,39 @@ msgstr "Afficher la source"
msgid "Web Page" msgid "Web Page"
msgstr "Page Web" msgstr "Page Web"
#: ../js/ui/messageTray.js:1326 #: ../js/ui/messageTray.js:1325
msgid "Open" msgid "Open"
msgstr "Ouvrir" msgstr "Ouvrir"
#: ../js/ui/messageTray.js:1333 #: ../js/ui/messageTray.js:1332
msgid "Remove" msgid "Remove"
msgstr "Enlever" msgstr "Enlever"
#: ../js/ui/messageTray.js:1630 #: ../js/ui/messageTray.js:1629
msgid "Notifications" msgid "Notifications"
msgstr "Notifications" msgstr "Notifications"
#: ../js/ui/messageTray.js:1637 #: ../js/ui/messageTray.js:1636
msgid "Clear Messages" msgid "Clear Messages"
msgstr "Effacer les messages" msgstr "Effacer les messages"
#: ../js/ui/messageTray.js:1656 #: ../js/ui/messageTray.js:1655
msgid "Notification Settings" msgid "Notification Settings"
msgstr "Paramètres de notifications" msgstr "Paramètres de notifications"
#: ../js/ui/messageTray.js:1709 #: ../js/ui/messageTray.js:1708
msgid "Tray Menu" msgid "Tray Menu"
msgstr "Menu du tiroir de messagerie" msgstr "Menu du tiroir de messagerie"
#: ../js/ui/messageTray.js:1926 #: ../js/ui/messageTray.js:1925
msgid "No Messages" msgid "No Messages"
msgstr "Aucun message" msgstr "Aucun message"
#: ../js/ui/messageTray.js:1968 #: ../js/ui/messageTray.js:1963
msgid "Message Tray" msgid "Message Tray"
msgstr "Tiroir de messagerie" msgstr "Tiroir de messagerie"
#: ../js/ui/messageTray.js:2971 #: ../js/ui/messageTray.js:2966
msgid "System Information" msgid "System Information"
msgstr "Informations du système" msgstr "Informations du système"
@@ -1316,7 +1316,7 @@ msgstr "Vue d'ensemble"
#. in the search entry when no search is #. in the search entry when no search is
#. active; it should not exceed ~30 #. active; it should not exceed ~30
#. characters. */ #. characters. */
#: ../js/ui/overview.js:246 #: ../js/ui/overview.js:250
msgid "Type to search…" msgid "Type to search…"
msgstr "Rechercher…" msgstr "Rechercher…"
@@ -1379,27 +1379,27 @@ msgstr "Impossible de verrouiller"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Le verrouillage a été bloqué par une application" msgstr "Le verrouillage a été bloqué par une application"
#: ../js/ui/search.js:594 #: ../js/ui/search.js:606
msgid "Searching…" msgid "Searching…"
msgstr "Recherche en cours…" msgstr "Recherche en cours…"
#: ../js/ui/search.js:596 #: ../js/ui/search.js:652
msgid "No results." msgid "No results."
msgstr "Aucun résultat." msgstr "Aucun résultat."
#: ../js/ui/shellEntry.js:25 #: ../js/ui/shellEntry.js:27
msgid "Copy" msgid "Copy"
msgstr "Copier" msgstr "Copier"
#: ../js/ui/shellEntry.js:30 #: ../js/ui/shellEntry.js:32
msgid "Paste" msgid "Paste"
msgstr "Coller" msgstr "Coller"
#: ../js/ui/shellEntry.js:97 #: ../js/ui/shellEntry.js:99
msgid "Show Text" msgid "Show Text"
msgstr "Afficher le texte" msgstr "Afficher le texte"
#: ../js/ui/shellEntry.js:99 #: ../js/ui/shellEntry.js:101
msgid "Hide Text" msgid "Hide Text"
msgstr "Masquer le texte" msgstr "Masquer le texte"
@@ -1485,27 +1485,23 @@ msgstr "Non connecté"
msgid "Brightness" msgid "Brightness"
msgstr "Luminosité" msgstr "Luminosité"
#: ../js/ui/status/keyboard.js:547 #: ../js/ui/status/keyboard.js:406
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Afficher la disposition du clavier" msgstr "Afficher la disposition du clavier"
#: ../js/ui/status/location.js:65 #: ../js/ui/status/location.js:56
msgid "Location" msgid "Location"
msgstr "Localisation" msgstr "Localisation"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:177 #: ../js/ui/status/location.js:63 ../js/ui/status/location.js:167
msgid "Disable" msgid "Disable"
msgstr "Désactiver" msgstr "Désactiver"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:166
msgid "Privacy Settings"
msgstr "Paramètres de confidentialité"
#: ../js/ui/status/location.js:176
msgid "In Use" msgid "In Use"
msgstr "En cours d'utilisation" msgstr "En cours d'utilisation"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:170
msgid "Enable" msgid "Enable"
msgstr "Activer" msgstr "Activer"
@@ -1740,11 +1736,11 @@ msgstr "Se connecter en tant qu'autre utilisateur"
msgid "Unlock Window" msgid "Unlock Window"
msgstr "Fenêtre de déverrouillage" msgstr "Fenêtre de déverrouillage"
#: ../js/ui/viewSelector.js:158 #: ../js/ui/viewSelector.js:232
msgid "Applications" msgid "Applications"
msgstr "Applications" msgstr "Applications"
#: ../js/ui/viewSelector.js:162 #: ../js/ui/viewSelector.js:236
msgid "Search" msgid "Search"
msgstr "Recherche" msgstr "Recherche"
@@ -1841,20 +1837,20 @@ msgstr[1] "%u entrées"
msgid "System Sounds" msgid "System Sounds"
msgstr "Sons système" msgstr "Sons système"
#: ../src/main.c:373 #: ../src/main.c:371
msgid "Print version" msgid "Print version"
msgstr "Affiche la version" msgstr "Affiche la version"
#: ../src/main.c:379 #: ../src/main.c:377
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Mode utilisé par GDM pour l'écran de connexion" msgstr "Mode utilisé par GDM pour l'écran de connexion"
#: ../src/main.c:385 #: ../src/main.c:383
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "" msgstr ""
"Utiliser un mode particulier, par ex. « gdm » pour l'écran de connexion" "Utiliser un mode particulier, par ex. « gdm » pour l'écran de connexion"
#: ../src/main.c:391 #: ../src/main.c:389
msgid "List possible modes" msgid "List possible modes"
msgstr "Lister les modes possibles" msgstr "Lister les modes possibles"

View File

@@ -10,7 +10,7 @@ msgstr ""
"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: 2014-08-26 07:37+0000\n" "POT-Creation-Date: 2014-08-26 07:37+0000\n"
"PO-Revision-Date: 2014-09-08 12:52+0530\n" "PO-Revision-Date: 2014-08-26 16:19+0530\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: American English <kde-i18n-doc@kde.org>\n" "Language-Team: American English <kde-i18n-doc@kde.org>\n"
"Language: \n" "Language: \n"
@@ -125,7 +125,7 @@ msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:10 #: ../data/org.gnome.shell.gschema.xml.in.in.h:10
msgid "Index of the currently selected view in the application picker." msgid "Index of the currently selected view in the application picker."
msgstr "કાર્યક્રમ પસંદકર્તામાં હાલમાં પસંદ થયેલ દૃશ્યની અનુક્રમણિકા." msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11 #: ../data/org.gnome.shell.gschema.xml.in.in.h:11
msgid "History for command (Alt-F2) dialog" msgid "History for command (Alt-F2) dialog"
@@ -136,9 +136,10 @@ msgid "History for the looking glass dialog"
msgstr "ગ્લાસ સંવાદને જોવા માટે ઇતિહાસ" msgstr "ગ્લાસ સંવાદને જોવા માટે ઇતિહાસ"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13 #: ../data/org.gnome.shell.gschema.xml.in.in.h:13
#, fuzzy
#| msgid "Always show the 'Log out' menuitem in the user menu." #| msgid "Always show the 'Log out' menuitem in the user menu."
msgid "Always show the 'Log out' menu item in the user menu." msgid "Always show the 'Log out' menu item in the user menu."
msgstr "વપરાશકર્તા મેનુમાં હંમેશા 'બહાર નીકળો' મેનુ વસ્તુને બતાવ." msgstr "હંમેશા વપરાશકર્તા મેનુમાં 'બહાર નીકળો' મેનુવસ્તુને બતાવે છે."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14 #: ../data/org.gnome.shell.gschema.xml.in.in.h:14
#, fuzzy #, fuzzy
@@ -192,14 +193,16 @@ msgid "Keybinding to open the \"Show Applications\" view of the Activities Overv
msgstr "પ્રવૃત્તિ ઝાંખીનાં \"કાર્યક્રમો બતાવો\" દૃશ્યને ખોલવા માટે કિબાઇન્ડીંગ." msgstr "પ્રવૃત્તિ ઝાંખીનાં \"કાર્યક્રમો બતાવો\" દૃશ્યને ખોલવા માટે કિબાઇન્ડીંગ."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
#, fuzzy
#| msgid "Keybinding to open the \"Show Applications\" view" #| msgid "Keybinding to open the \"Show Applications\" view"
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "ઝાંખીને ખોલવા માટે કિબાઇન્ડીંગ" msgstr "\"કાર્યક્રમો બતાવો\" દૃશ્યને ખોલવા માટે કિબાઇન્ડીંગ"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
#, fuzzy
#| msgid "Keybinding to open the \"Show Applications\" view" #| msgid "Keybinding to open the \"Show Applications\" view"
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "પ્રવૃત્તિ ઝાંખીને ખોલવા માટે કિબાઇન્ડીંગ" msgstr "\"કાર્યક્રમો બતાવો\" દૃશ્યને ખોલવા માટે કિબાઇન્ડીંગ"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "Keybinding to toggle the visibility of the message tray" msgid "Keybinding to toggle the visibility of the message tray"
@@ -358,19 +361,20 @@ msgid "Could not parse command:"
msgstr "આદેશનું પદચ્છેદન કરી શક્યા નથી:" msgstr "આદેશનું પદચ્છેદન કરી શક્યા નથી:"
#: ../js/misc/util.js:156 #: ../js/misc/util.js:156
#, javascript-format #, fuzzy, javascript-format
#| msgid "Execution of '%s' failed:" #| msgid "Execution of '%s' failed:"
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "%s ને અમલમાં મૂકવાનુ નિષ્ફળ:" msgstr "'%s' ને અમલમાં મૂકવાનુ નિષ્ફળ:"
#: ../js/portalHelper/main.js:85 #: ../js/portalHelper/main.js:85
#, fuzzy
#| msgid "Authentication Required" #| msgid "Authentication Required"
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "વેબ સત્તાધિકરણ દિશામાન" msgstr "સત્તાધિકરણ જરૂરી"
#: ../js/ui/appDisplay.js:660 #: ../js/ui/appDisplay.js:660
msgid "Frequently used applications will appear here" msgid "Frequently used applications will appear here"
msgstr "વારંવાર વપરાતા કાર્યક્રમો અહિંયા દેખાશે" msgstr ""
#: ../js/ui/appDisplay.js:771 #: ../js/ui/appDisplay.js:771
msgid "Frequent" msgid "Frequent"
@@ -636,14 +640,14 @@ msgid "Authentication required by wireless network"
msgstr "વાયરલેસ નેટવર્ક દ્દારાસત્તાધિકરણ જરૂરી" msgstr "વાયરલેસ નેટવર્ક દ્દારાસત્તાધિકરણ જરૂરી"
#: ../js/ui/components/networkAgent.js:319 #: ../js/ui/components/networkAgent.js:319
#, javascript-format #, fuzzy, javascript-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'."
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 "પાસવર્ડ અથવા એનક્રિપ્શન કીઓને વાયરલેસ નેટવર્ક %s માં પ્રવેશની જરૂર છે." msgstr "પાસવર્ડ અથવા એનક્રિપ્શન કીઓને વાયરલેસ નેટવર્ક '%s' માં પ્રવેશની જરૂર છે."
#: ../js/ui/components/networkAgent.js:323 #: ../js/ui/components/networkAgent.js:323
msgid "Wired 802.1X authentication" msgid "Wired 802.1X authentication"
@@ -1042,10 +1046,11 @@ msgid "Power Off"
msgstr "પાવર બંધ" msgstr "પાવર બંધ"
#: ../js/ui/endSessionDialog.js:87 #: ../js/ui/endSessionDialog.js:87
#, fuzzy
#| msgid "Install Updates & Restart" #| msgid "Install Updates & Restart"
msgctxt "title" msgctxt "title"
msgid "Install Updates & Power Off" msgid "Install Updates & Power Off"
msgstr "સુધારા સ્થાપિત કરો અને પાવર બંધ કરો" msgstr "સુધારા સ્થાપિત કરો અને પુન:શરૂ કરો"
#: ../js/ui/endSessionDialog.js:89 #: ../js/ui/endSessionDialog.js:89
#, javascript-format #, javascript-format
@@ -1057,7 +1062,7 @@ msgstr[1] "સિસ્ટમ %d સેકંડમાં આપમેળે પ
#: ../js/ui/endSessionDialog.js:93 #: ../js/ui/endSessionDialog.js:93
msgctxt "checkbox" msgctxt "checkbox"
msgid "Install pending software updates" msgid "Install pending software updates"
msgstr "બાકી રહેલા સોફ્ટવેર સુધારાને સ્થાપિત કરો" msgstr ""
#: ../js/ui/endSessionDialog.js:96 ../js/ui/endSessionDialog.js:113 #: ../js/ui/endSessionDialog.js:96 ../js/ui/endSessionDialog.js:113
msgctxt "button" msgctxt "button"
@@ -1099,25 +1104,25 @@ msgstr[1] "સિસ્ટમ %d સેકંડોમાં આપમેળે
#: ../js/ui/endSessionDialog.js:129 #: ../js/ui/endSessionDialog.js:129
msgctxt "button" msgctxt "button"
msgid "Restart &amp; Install" msgid "Restart &amp; Install"
msgstr "પુન:શરૂ કરો અને સ્થાપિત કરો" msgstr ""
#: ../js/ui/endSessionDialog.js:130 #: ../js/ui/endSessionDialog.js:130
msgctxt "button" msgctxt "button"
msgid "Install &amp; Power Off" msgid "Install &amp; Power Off"
msgstr "સ્થાપિત કરો અને પાવર બંધ " msgstr ""
#: ../js/ui/endSessionDialog.js:131 #: ../js/ui/endSessionDialog.js:131
msgctxt "checkbox" msgctxt "checkbox"
msgid "Power off after updates are installed" msgid "Power off after updates are installed"
msgstr "સુધારા સ્થાપિત થાય પછી પાવર બંધ કરો" msgstr ""
#: ../js/ui/endSessionDialog.js:315 #: ../js/ui/endSessionDialog.js:315
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
msgstr "બેટરી પાવર પર ચાલી રહ્યુ છે: મહેરબાની કરીને સુધારા સ્થાપિત કરતા પહેલાં પ્લગઇન કરો." msgstr ""
#: ../js/ui/endSessionDialog.js:332 #: ../js/ui/endSessionDialog.js:332
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
msgstr "અમુક કાર્યક્રમો વ્યસ્ત છે અથવા તેની પાસે અસંગ્રહેલ કામ છે." msgstr ""
#: ../js/ui/endSessionDialog.js:339 #: ../js/ui/endSessionDialog.js:339
msgid "Other users are logged in." msgid "Other users are logged in."
@@ -1140,10 +1145,10 @@ msgid "Install"
msgstr "સ્થાપિત કરો" msgstr "સ્થાપિત કરો"
#: ../js/ui/extensionDownloader.js:204 #: ../js/ui/extensionDownloader.js:204
#, javascript-format #, fuzzy, javascript-format
#| msgid "Download and install '%s' from extensions.gnome.org?" #| msgid "Download and install '%s' from extensions.gnome.org?"
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:653 ../js/ui/status/keyboard.js:339 #: ../js/ui/keyboard.js:653 ../js/ui/status/keyboard.js:339
msgid "Keyboard" msgid "Keyboard"
@@ -1223,7 +1228,7 @@ msgstr "સૂચના સુયોજનો"
#: ../js/ui/messageTray.js:1708 #: ../js/ui/messageTray.js:1708
msgid "Tray Menu" msgid "Tray Menu"
msgstr "ટ્રે મેનુ" msgstr ""
#: ../js/ui/messageTray.js:1925 #: ../js/ui/messageTray.js:1925
msgid "No Messages" msgid "No Messages"
@@ -1417,12 +1422,12 @@ msgid "Bluetooth Settings"
msgstr "બ્લુટુથ સુયોજનો" msgstr "બ્લુટુથ સુયોજનો"
#: ../js/ui/status/bluetooth.js:104 #: ../js/ui/status/bluetooth.js:104
#, javascript-format #, fuzzy, javascript-format
#| msgid "Connected (private)" #| msgid "Connected (private)"
msgid "%d Connected Device" msgid "%d Connected Device"
msgid_plural "%d Connected Devices" msgid_plural "%d Connected Devices"
msgstr[0] "%d જોડાયેલ ઉપકરણ" msgstr[0] "જોડાયેલ (ખાનગી)"
msgstr[1] "%d જોડાયેલ ઉપકરણો" msgstr[1] "જોડાયેલ (ખાનગી)"
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1309 #: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1309
#| msgid "Connect" #| msgid "Connect"
@@ -1512,9 +1517,10 @@ msgid "Connection failed"
msgstr "જોડાણ નિષ્ફળ" msgstr "જોડાણ નિષ્ફળ"
#: ../js/ui/status/network.js:504 #: ../js/ui/status/network.js:504
#, fuzzy
#| msgid "Settings" #| msgid "Settings"
msgid "Wired Settings" msgid "Wired Settings"
msgstr "વાયર થયેલ સુયોજનો" msgstr "સુયોજનો"
#: ../js/ui/status/network.js:546 ../js/ui/status/network.js:624 #: ../js/ui/status/network.js:546 ../js/ui/status/network.js:624
#| msgid "Mobile broadband" #| msgid "Mobile broadband"
@@ -1528,19 +1534,19 @@ msgstr "હાર્ડવેર નિષ્ક્રિય"
#: ../js/ui/status/network.js:632 #: ../js/ui/status/network.js:632
msgid "Use as Internet connection" msgid "Use as Internet connection"
msgstr "ઇન્ટરનેટ જોડાણ તરીકે વાપરો" msgstr ""
#: ../js/ui/status/network.js:813 #: ../js/ui/status/network.js:813
msgid "Airplane Mode is On" msgid "Airplane Mode is On"
msgstr "ઍરપ્લેન સ્થિતિ ચાલુ છે" msgstr ""
#: ../js/ui/status/network.js:814 #: ../js/ui/status/network.js:814
msgid "Wi-Fi is disabled when airplane mode is on." msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Wi-Fi નિષ્ક્રિય થયેલ છે જ્યારે ઍરપ્લેન સ્થિતિ ચાલુ હોય." msgstr ""
#: ../js/ui/status/network.js:815 #: ../js/ui/status/network.js:815
msgid "Turn Off Airplane Mode" msgid "Turn Off Airplane Mode"
msgstr "ઍરપ્લેન સ્થિતિને બંધ કરો" msgstr ""
#: ../js/ui/status/network.js:824 #: ../js/ui/status/network.js:824
msgid "Wi-Fi is Off" msgid "Wi-Fi is Off"
@@ -1548,11 +1554,11 @@ msgstr "Wi-Fi બંધ છે"
#: ../js/ui/status/network.js:825 #: ../js/ui/status/network.js:825
msgid "Wi-Fi needs to be turned on in order to connect to a network." msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "નેટવર્કમાં જોડાવા માટે ક્રમમાં Wi-Fi ને ચાલુ કરવાની જરૂર છે." msgstr ""
#: ../js/ui/status/network.js:826 #: ../js/ui/status/network.js:826
msgid "Turn On Wi-Fi" msgid "Turn On Wi-Fi"
msgstr "Wi-Fi ચાલુ કરો" msgstr ""
#: ../js/ui/status/network.js:851 #: ../js/ui/status/network.js:851
#| msgid "Network" #| msgid "Network"
@@ -1589,7 +1595,7 @@ msgstr "ચાલુ કરો"
#: ../js/ui/status/network.js:1298 #: ../js/ui/status/network.js:1298
msgid "Hotspot Active" msgid "Hotspot Active"
msgstr "હૉટસ્પોટ સક્રિય" msgstr ""
#: ../js/ui/status/network.js:1409 #: ../js/ui/status/network.js:1409
msgid "connecting..." msgid "connecting..."
@@ -1640,7 +1646,7 @@ msgstr "અંદાજ કરી રહ્યા છે..."
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:86
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d બાકી રહેલ છે (%d%%)" msgstr ""
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:91
#, javascript-format #, javascript-format
@@ -1657,7 +1663,7 @@ msgstr "બેટરી"
#: ../js/ui/status/rfkill.js:83 #: ../js/ui/status/rfkill.js:83
msgid "Airplane Mode" msgid "Airplane Mode"
msgstr "ઍરપ્લેન સ્થિતિ" msgstr ""
#: ../js/ui/status/rfkill.js:85 #: ../js/ui/status/rfkill.js:85
#| msgid "Open" #| msgid "Open"
@@ -1720,15 +1726,16 @@ msgstr "“%s” તૈયાર છે"
#: ../js/ui/windowManager.js:65 #: ../js/ui/windowManager.js:65
msgid "Do you want to keep these display settings?" msgid "Do you want to keep these display settings?"
msgstr "શું તમને આ દર્શાવ સુયોજનોને રાખવા માંગો છો?ે" msgstr ""
#. Translators: this and the following message should be limited in lenght, #. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels. #. to avoid ellipsizing the labels.
#. */ #. */
#: ../js/ui/windowManager.js:84 #: ../js/ui/windowManager.js:84
#, fuzzy
#| msgid "Power Settings" #| msgid "Power Settings"
msgid "Revert Settings" msgid "Revert Settings"
msgstr "સુયોજનોને પાછા લાવો" msgstr "પાવર સુયોજનો"
#: ../js/ui/windowManager.js:88 #: ../js/ui/windowManager.js:88
msgid "Keep Changes" msgid "Keep Changes"
@@ -1763,7 +1770,7 @@ msgstr "માપ બદલો"
#: ../js/ui/windowMenu.js:65 #: ../js/ui/windowMenu.js:65
msgid "Move Titlebar Onscreen" msgid "Move Titlebar Onscreen"
msgstr "શીર્ષકપટ્ટી ઓનસ્ક્રીનને ખસેડો" msgstr ""
#: ../js/ui/windowMenu.js:70 #: ../js/ui/windowMenu.js:70
msgid "Always on Top" msgid "Always on Top"
@@ -1771,15 +1778,15 @@ msgstr "હંમેશા ટોચ ઉપર"
#: ../js/ui/windowMenu.js:89 #: ../js/ui/windowMenu.js:89
msgid "Always on Visible Workspace" msgid "Always on Visible Workspace"
msgstr "હંમેશા દૃશ્ય કામ કરવાની જગ્યા પર" msgstr ""
#: ../js/ui/windowMenu.js:106 #: ../js/ui/windowMenu.js:106
msgid "Move to Workspace Up" msgid "Move to Workspace Up"
msgstr "ઉપર કામ કરવાની જગ્યા પર ખસેડો" msgstr ""
#: ../js/ui/windowMenu.js:111 #: ../js/ui/windowMenu.js:111
msgid "Move to Workspace Down" msgid "Move to Workspace Down"
msgstr "નીચે કામ કરવાની જગ્યાએ ખસેડો" msgstr ""
#: ../src/calendar-server/evolution-calendar.desktop.in.in.h:1 #: ../src/calendar-server/evolution-calendar.desktop.in.in.h:1
msgid "Evolution Calendar" msgid "Evolution Calendar"

440
po/he.po

File diff suppressed because it is too large Load Diff

2294
po/hi.po

File diff suppressed because it is too large Load Diff

591
po/hu.po

File diff suppressed because it is too large Load Diff

118
po/id.po
View File

@@ -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: 2014-09-13 07:37+0000\n" "POT-Creation-Date: 2014-09-02 07:38+0000\n"
"PO-Revision-Date: 2014-09-13 19:20+0700\n" "PO-Revision-Date: 2014-09-02 19:20+0700\n"
"Last-Translator: Andika Triwidada <andika@gmail.com>\n" "Last-Translator: Andika Triwidada <andika@gmail.com>\n"
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n" "Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
"Language: id\n" "Language: id\n"
@@ -304,17 +304,17 @@ msgstr ""
msgid "Captive Portal" msgid "Captive Portal"
msgstr "Portal Captive" msgstr "Portal Captive"
#: ../js/extensionPrefs/main.js:123 #: ../js/extensionPrefs/main.js:127
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "Ada galat saat memuat dialog preferensi bagi %s:" msgstr "Ada galat saat memuat dialog preferensi bagi %s:"
#: ../js/extensionPrefs/main.js:155 #: ../js/extensionPrefs/main.js:159
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "Ekstensi GNOME Shell" msgstr "Ekstensi GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143 #: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452 #: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:429
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:915 #: ../js/ui/status/network.js:915
msgid "Cancel" msgid "Cancel"
@@ -393,19 +393,19 @@ msgstr "Sering"
msgid "All" msgid "All"
msgstr "Semua" msgstr "Semua"
#: ../js/ui/appDisplay.js:1789 #: ../js/ui/appDisplay.js:1788
msgid "New Window" msgid "New Window"
msgstr "Jendela Baru" msgstr "Jendela Baru"
#: ../js/ui/appDisplay.js:1815 ../js/ui/dash.js:285 #: ../js/ui/appDisplay.js:1814 ../js/ui/dash.js:285
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "Hapus dari Favorit" msgstr "Hapus dari Favorit"
#: ../js/ui/appDisplay.js:1821 #: ../js/ui/appDisplay.js:1820
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "Tambah ke Favorit" msgstr "Tambah ke Favorit"
#: ../js/ui/appDisplay.js:1830 #: ../js/ui/appDisplay.js:1829
msgid "Show Details" msgid "Show Details"
msgstr "Tampilkan Rincian" msgstr "Tampilkan Rincian"
@@ -606,11 +606,11 @@ msgstr "Buka dengan %s"
msgid "Eject" msgid "Eject"
msgstr "Keluarkan" msgstr "Keluarkan"
#: ../js/ui/components/keyring.js:94 ../js/ui/components/polkitAgent.js:285 #: ../js/ui/components/keyring.js:93 ../js/ui/components/polkitAgent.js:285
msgid "Password:" msgid "Password:"
msgstr "Sandi:" msgstr "Sandi:"
#: ../js/ui/components/keyring.js:120 #: ../js/ui/components/keyring.js:113
msgid "Type again:" msgid "Type again:"
msgstr "Ketik lagi:" msgstr "Ketik lagi:"
@@ -983,7 +983,7 @@ msgstr "Tilik akun"
msgid "Unknown reason" msgid "Unknown reason"
msgstr "Alasan yang tidak diketahui" msgstr "Alasan yang tidak diketahui"
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:154 #: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:159
msgid "Windows" msgid "Windows"
msgstr "Jendela" msgstr "Jendela"
@@ -1014,82 +1014,82 @@ msgstr "Pengaturan Waktu & Tanggal"
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%A, %e %B %Y" msgstr "%A, %e %B %Y"
#: ../js/ui/endSessionDialog.js:64 #: ../js/ui/endSessionDialog.js:66
#, javascript-format #, javascript-format
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "Keluar %s" msgstr "Keluar %s"
#: ../js/ui/endSessionDialog.js:65 #: ../js/ui/endSessionDialog.js:67
msgctxt "title" msgctxt "title"
msgid "Log Out" msgid "Log Out"
msgstr "Keluar" msgstr "Keluar"
#: ../js/ui/endSessionDialog.js:67 #: ../js/ui/endSessionDialog.js:69
#, javascript-format #, javascript-format
msgid "%s will be logged out automatically in %d second." msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds." msgid_plural "%s will be logged out automatically in %d seconds."
msgstr[0] "%s akan log keluar otomatis dalam %d detik.\t\t" msgstr[0] "%s akan log keluar otomatis dalam %d detik.\t\t"
#: ../js/ui/endSessionDialog.js:72 #: ../js/ui/endSessionDialog.js:74
#, javascript-format #, javascript-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] "Anda akan log keluar otomatis dalam %d detik." msgstr[0] "Anda akan log keluar otomatis dalam %d detik."
#: ../js/ui/endSessionDialog.js:78 #: ../js/ui/endSessionDialog.js:80
msgctxt "button" msgctxt "button"
msgid "Log Out" msgid "Log Out"
msgstr "Keluar" msgstr "Keluar"
#: ../js/ui/endSessionDialog.js:84 #: ../js/ui/endSessionDialog.js:86
msgctxt "title" msgctxt "title"
msgid "Power Off" msgid "Power Off"
msgstr "Matikan" msgstr "Matikan"
#: ../js/ui/endSessionDialog.js:85 #: ../js/ui/endSessionDialog.js:87
msgctxt "title" msgctxt "title"
msgid "Install Updates & Power Off" msgid "Install Updates & Power Off"
msgstr "Pasang Pemutakhiran & Matikan" msgstr "Pasang Pemutakhiran & Matikan"
#: ../js/ui/endSessionDialog.js:87 #: ../js/ui/endSessionDialog.js:89
#, javascript-format #, javascript-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] "Sistem ini akan otomatis dimatikan dalam %d detik." msgstr[0] "Sistem ini akan otomatis dimatikan dalam %d detik."
#: ../js/ui/endSessionDialog.js:91 #: ../js/ui/endSessionDialog.js:93
msgctxt "checkbox" msgctxt "checkbox"
msgid "Install pending software updates" msgid "Install pending software updates"
msgstr "Pasang pemutakhiran perangkat lunak yang tertunda" msgstr "Pasang pemutakhiran perangkat lunak yang tertunda"
#: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111 #: ../js/ui/endSessionDialog.js:96 ../js/ui/endSessionDialog.js:113
msgctxt "button" msgctxt "button"
msgid "Restart" msgid "Restart"
msgstr "Nyalakan Ulang" msgstr "Nyalakan Ulang"
#: ../js/ui/endSessionDialog.js:96 #: ../js/ui/endSessionDialog.js:98
msgctxt "button" msgctxt "button"
msgid "Power Off" msgid "Power Off"
msgstr "Matikan" msgstr "Matikan"
#: ../js/ui/endSessionDialog.js:103 #: ../js/ui/endSessionDialog.js:105
msgctxt "title" msgctxt "title"
msgid "Restart" msgid "Restart"
msgstr "Nyalakan Ulang" msgstr "Nyalakan Ulang"
#: ../js/ui/endSessionDialog.js:105 #: ../js/ui/endSessionDialog.js:107
#, javascript-format #, javascript-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] "Sistem ini akan otomatis dimulai ulang dalam %d detik." msgstr[0] "Sistem ini akan otomatis dimulai ulang dalam %d detik."
#: ../js/ui/endSessionDialog.js:119 #: ../js/ui/endSessionDialog.js:121
msgctxt "title" msgctxt "title"
msgid "Restart & Install Updates" msgid "Restart & Install Updates"
msgstr "Start Ulang & Pasang Pemutakhiran" msgstr "Start Ulang & Pasang Pemutakhiran"
#: ../js/ui/endSessionDialog.js:121 #: ../js/ui/endSessionDialog.js:123
#, javascript-format #, javascript-format
msgid "The system will automatically restart and install updates in %d second." msgid "The system will automatically restart and install updates in %d second."
msgid_plural "" msgid_plural ""
@@ -1098,42 +1098,42 @@ msgstr[0] ""
"Sistem ini akan otomatis dimulai ulang dan memasang pemutakhiran dalam %d " "Sistem ini akan otomatis dimulai ulang dan memasang pemutakhiran dalam %d "
"detik." "detik."
#: ../js/ui/endSessionDialog.js:127 #: ../js/ui/endSessionDialog.js:129
msgctxt "button" msgctxt "button"
msgid "Restart &amp; Install" msgid "Restart &amp; Install"
msgstr "Start Ulang &amp; Pasang" msgstr "Start Ulang &amp; Pasang"
#: ../js/ui/endSessionDialog.js:128 #: ../js/ui/endSessionDialog.js:130
msgctxt "button" msgctxt "button"
msgid "Install &amp; Power Off" msgid "Install &amp; Power Off"
msgstr "Pasang &amp; Matikan" msgstr "Pasang &amp; Matikan"
#: ../js/ui/endSessionDialog.js:129 #: ../js/ui/endSessionDialog.js:131
msgctxt "checkbox" msgctxt "checkbox"
msgid "Power off after updates are installed" msgid "Power off after updates are installed"
msgstr "Matikan daya setelah pemutakhiran dipasang" msgstr "Matikan daya setelah pemutakhiran dipasang"
#: ../js/ui/endSessionDialog.js:338 #: ../js/ui/endSessionDialog.js:315
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
msgstr "" msgstr ""
"Berjalan memakai daya baterai: harap tancapkan sebelum memasang pemutakhiran." "Berjalan memakai daya baterai: harap tancapkan sebelum memasang pemutakhiran."
#: ../js/ui/endSessionDialog.js:355 #: ../js/ui/endSessionDialog.js:332
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
msgstr "Beberapa aplikasi sedang sibuk atau belum disimpan perubahannya." msgstr "Beberapa aplikasi sedang sibuk atau belum disimpan perubahannya."
#: ../js/ui/endSessionDialog.js:362 #: ../js/ui/endSessionDialog.js:339
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "Pengguna lain sedang log masuk." msgstr "Pengguna lain sedang log masuk."
#. Translators: Remote here refers to a remote session, like a ssh login */ #. Translators: Remote here refers to a remote session, like a ssh login */
#: ../js/ui/endSessionDialog.js:640 #: ../js/ui/endSessionDialog.js:619
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (jarak jauh)" msgstr "%s (jarak jauh)"
#. Translators: Console here refers to a tty like a VT console */ #. Translators: Console here refers to a tty like a VT console */
#: ../js/ui/endSessionDialog.js:643 #: ../js/ui/endSessionDialog.js:622
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (konsol)" msgstr "%s (konsol)"
@@ -1147,7 +1147,7 @@ msgstr "Pasang"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Unduh dan pasang \"%s\" dari extensions.gnome.org?" msgstr "Unduh dan pasang \"%s\" dari extensions.gnome.org?"
#: ../js/ui/keyboard.js:692 ../js/ui/status/keyboard.js:523 #: ../js/ui/keyboard.js:634 ../js/ui/status/keyboard.js:339
msgid "Keyboard" msgid "Keyboard"
msgstr "Papan Ketik" msgstr "Papan Ketik"
@@ -1169,8 +1169,8 @@ msgstr "Sembunyikan Galat"
msgid "Show Errors" msgid "Show Errors"
msgstr "Tampilkan Galat" msgstr "Tampilkan Galat"
#: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:71 #: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:62
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:166
msgid "Enabled" msgid "Enabled"
msgstr "Diaktifkan" msgstr "Diaktifkan"
@@ -1178,7 +1178,7 @@ msgstr "Diaktifkan"
#. because it's disabled by rfkill (airplane mode) */ #. because it's disabled by rfkill (airplane mode) */
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:179 #: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:169
#: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled" msgid "Disabled"
msgstr "Dinonaktifkan" msgstr "Dinonaktifkan"
@@ -1262,7 +1262,7 @@ msgstr "Gambaran"
#. in the search entry when no search is #. in the search entry when no search is
#. active; it should not exceed ~30 #. active; it should not exceed ~30
#. characters. */ #. characters. */
#: ../js/ui/overview.js:246 #: ../js/ui/overview.js:250
msgid "Type to search…" msgid "Type to search…"
msgstr "Ketik untuk mencari…" msgstr "Ketik untuk mencari…"
@@ -1325,27 +1325,27 @@ msgstr "Tak bisa mengunci"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Kunci diblokir oleh suatu aplikasi" msgstr "Kunci diblokir oleh suatu aplikasi"
#: ../js/ui/search.js:594 #: ../js/ui/search.js:557
msgid "Searching…" msgid "Searching…"
msgstr "Mencari…" msgstr "Mencari…"
#: ../js/ui/search.js:596 #: ../js/ui/search.js:598
msgid "No results." msgid "No results."
msgstr "Tak ada yang cocok." msgstr "Tak ada yang cocok."
#: ../js/ui/shellEntry.js:25 #: ../js/ui/shellEntry.js:27
msgid "Copy" msgid "Copy"
msgstr "Salin" msgstr "Salin"
#: ../js/ui/shellEntry.js:30 #: ../js/ui/shellEntry.js:32
msgid "Paste" msgid "Paste"
msgstr "Tempel" msgstr "Tempel"
#: ../js/ui/shellEntry.js:97 #: ../js/ui/shellEntry.js:99
msgid "Show Text" msgid "Show Text"
msgstr "Tampilkan Teks" msgstr "Tampilkan Teks"
#: ../js/ui/shellEntry.js:99 #: ../js/ui/shellEntry.js:101
msgid "Hide Text" msgid "Hide Text"
msgstr "Sembunyikan Teks" msgstr "Sembunyikan Teks"
@@ -1430,27 +1430,23 @@ msgstr "Tak Tersambung"
msgid "Brightness" msgid "Brightness"
msgstr "Kecerahan" msgstr "Kecerahan"
#: ../js/ui/status/keyboard.js:547 #: ../js/ui/status/keyboard.js:406
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Tampilkan Tata Letak Papan Tik" msgstr "Tampilkan Tata Letak Papan Tik"
#: ../js/ui/status/location.js:65 #: ../js/ui/status/location.js:56
msgid "Location" msgid "Location"
msgstr "Lokasi" msgstr "Lokasi"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:177 #: ../js/ui/status/location.js:63 ../js/ui/status/location.js:167
msgid "Disable" msgid "Disable"
msgstr "Nonaktifkan" msgstr "Nonaktifkan"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:166
msgid "Privacy Settings"
msgstr "Pengaturan Privasi"
#: ../js/ui/status/location.js:176
msgid "In Use" msgid "In Use"
msgstr "Dipakai" msgstr "Dipakai"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:170
msgid "Enable" msgid "Enable"
msgstr "Fungsikan" msgstr "Fungsikan"
@@ -1685,11 +1681,11 @@ msgstr "Masuk sebagai pengguna lain"
msgid "Unlock Window" msgid "Unlock Window"
msgstr "Buka Kunci Jendela" msgstr "Buka Kunci Jendela"
#: ../js/ui/viewSelector.js:158 #: ../js/ui/viewSelector.js:163
msgid "Applications" msgid "Applications"
msgstr "Aplikasi" msgstr "Aplikasi"
#: ../js/ui/viewSelector.js:162 #: ../js/ui/viewSelector.js:167
msgid "Search" msgid "Search"
msgstr "Cari" msgstr "Cari"
@@ -1783,19 +1779,19 @@ msgstr[0] "%u Masukan"
msgid "System Sounds" msgid "System Sounds"
msgstr "Suara Sistem" msgstr "Suara Sistem"
#: ../src/main.c:373 #: ../src/main.c:371
msgid "Print version" msgid "Print version"
msgstr "Versi Cetak" msgstr "Versi Cetak"
#: ../src/main.c:379 #: ../src/main.c:377
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Mode yang dipakai oleh layar log masuk GDM" msgstr "Mode yang dipakai oleh layar log masuk GDM"
#: ../src/main.c:385 #: ../src/main.c:383
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Menggunakan mode tertentu, mis. \"gdm\" untuk layar masuk" msgstr "Menggunakan mode tertentu, mis. \"gdm\" untuk layar masuk"
#: ../src/main.c:391 #: ../src/main.c:389
msgid "List possible modes" msgid "List possible modes"
msgstr "Menampilkan mode yang mungkin" msgstr "Menampilkan mode yang mungkin"

822
po/ja.po

File diff suppressed because it is too large Load Diff

2269
po/kn.po

File diff suppressed because it is too large Load Diff

889
po/ko.po

File diff suppressed because it is too large Load Diff

392
po/lt.po

File diff suppressed because it is too large Load Diff

2306
po/mr.po

File diff suppressed because it is too large Load Diff

2630
po/ms.po

File diff suppressed because it is too large Load Diff

1835
po/ne.po

File diff suppressed because it is too large Load Diff

214
po/or.po
View File

@@ -8,8 +8,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: 2014-09-18 07:41+0000\n" "POT-Creation-Date: 2014-08-25 07:37+0000\n"
"PO-Revision-Date: 2014-09-18 17:43+0530\n" "PO-Revision-Date: 2014-08-26 16:26+0530\n"
"Last-Translator: Manoj Kumar Giri <mgiri@redhat.com>\n" "Last-Translator: Manoj Kumar Giri <mgiri@redhat.com>\n"
"Language-Team: Oriya <oriya-it@googlegroups.com>\n" "Language-Team: Oriya <oriya-it@googlegroups.com>\n"
"Language: or\n" "Language: or\n"
@@ -79,10 +79,16 @@ msgstr ""
"ଅନୁମତି ପ୍ରଦାନ କରନ୍ତୁ।" "ଅନୁମତି ପ୍ରଦାନ କରନ୍ତୁ।"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:3 #: ../data/org.gnome.shell.gschema.xml.in.in.h:3
#| msgid "Uuids of extensions to enable"
msgid "UUIDs of extensions to enable" msgid "UUIDs of extensions to enable"
msgstr "ସକ୍ରିୟ କରିବା ପାଇଁ ଥିବା ଅନୁଲଗ୍ନଗୁଡ଼ିକର UUID ଗୁଡ଼ିକ" msgstr "ସକ୍ରିୟ କରିବା ପାଇଁ ଥିବା ଅନୁଲଗ୍ନଗୁଡ଼ିକର UUID ଗୁଡ଼ିକ"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:4 #: ../data/org.gnome.shell.gschema.xml.in.in.h:4
#| 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 "" msgid ""
"GNOME Shell extensions have a UUID property; this key lists extensions which " "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 " "should be loaded. Any extension that wants to be loaded needs to be in this "
@@ -108,8 +114,8 @@ msgstr ""
"GNOME ସେଲ କେବଳ ଅନୁଲଗ୍ନଗୁଡ଼ିକୁ ଧାରଣ କରିବ ଯାହାକି ପ୍ରଚଳିତ ସଂସ୍କରଣକୁ ସହାୟତା ଦେବା " "GNOME ସେଲ କେବଳ ଅନୁଲଗ୍ନଗୁଡ଼ିକୁ ଧାରଣ କରିବ ଯାହାକି ପ୍ରଚଳିତ ସଂସ୍କରଣକୁ ସହାୟତା ଦେବା "
"ପାଇଁ ଉଦ୍ଦିଷ୍ଟ।" "ପାଇଁ ଉଦ୍ଦିଷ୍ଟ।"
"ଏହି ବିକଳ୍ପକୁ ସକ୍ରିୟ କରିବା ଫଳରେ ତାହା ଏହି ଯାଞ୍ଚକୁ ନିଷ୍କ୍ରିୟ କରିବ ଏବଂ ସହାୟତା " "ଏହି ବିକଳ୍ପକୁ ସକ୍ରିୟ କରିବା ଫଳରେ ତାହା ଏହି ଯାଞ୍ଚକୁ ନିଷ୍କ୍ରିୟ କରିବ ଏବଂ ସହାୟତା "
"ପାଇଁ ଉଦ୍ଦିଷ୍ଟ " "ପାଇଁ ଉଦ୍ଦିଷ୍ଟ ସଂସ୍କରଣଗୁଡ଼ିକୁ ଅଦେଖା କରି "
"ସଂସ୍କରଣଗୁଡ଼ିକୁ ଅଦେଖା କରି ସମସ୍ତ ଅନୁଲଗ୍ନଗୁଡ଼ିକୁ ଧାରଣ କରିବା ପାଇଁ ଚେଷ୍ଟା କରିବ।" "ସମସ୍ତ ଅନୁଲଗ୍ନଗୁଡ଼ିକୁ ଧାରଣ କରିବା ପାଇଁ ଚେଷ୍ଟା କରିବ।"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:7 #: ../data/org.gnome.shell.gschema.xml.in.in.h:7
msgid "List of desktop file IDs for favorite applications" msgid "List of desktop file IDs for favorite applications"
@@ -139,10 +145,14 @@ msgid "History for the looking glass dialog"
msgstr "କାଚ ସଂଳାପ ଦେଖିବା ପାଇଁ ପୁରୁଣା ତଥ୍ୟ" msgstr "କାଚ ସଂଳାପ ଦେଖିବା ପାଇଁ ପୁରୁଣା ତଥ୍ୟ"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13 #: ../data/org.gnome.shell.gschema.xml.in.in.h:13
#| msgid "Always show the 'Log out' menuitem in the user menu."
msgid "Always show the 'Log out' menu item in the user menu." msgid "Always show the 'Log out' menu item in the user menu."
msgstr "ସର୍ବଦା 'ଲଗଆଉଟ' ତାଲିକା ବସ୍ତୁକୁ ବ୍ୟବହାରକାରୀ ତାଲିକାରେ ଦର୍ଶାନ୍ତୁ।" msgstr "ସର୍ବଦା 'ଲଗଆଉଟ' ତାଲିକା ବସ୍ତୁକୁ ବ୍ୟବହାରକାରୀ ତାଲିକାରେ ଦର୍ଶାନ୍ତୁ।"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14 #: ../data/org.gnome.shell.gschema.xml.in.in.h:14
#| msgid ""
#| "This key overrides the automatic hiding of the 'Log out' menuitem in "
#| "single-user, single-session situations."
msgid "" msgid ""
"This key overrides the automatic hiding of the 'Log out' menu item in single-" "This key overrides the automatic hiding of the 'Log out' menu item in single-"
"user, single-session situations." "user, single-session situations."
@@ -198,10 +208,12 @@ msgstr ""
"କାର୍ଯ୍ୟକଳାପ ସମୀକ୍ଷାର \"ପ୍ରୟୋଗଗୁଡ଼ିକୁ ଦର୍ଶାନ୍ତୁ\" ଦୃଶ୍ୟକୁ ଖୋଲିବା ପାଇଁ କି ବନ୍ଧନ।" "କାର୍ଯ୍ୟକଳାପ ସମୀକ୍ଷାର \"ପ୍ରୟୋଗଗୁଡ଼ିକୁ ଦର୍ଶାନ୍ତୁ\" ଦୃଶ୍ୟକୁ ଖୋଲିବା ପାଇଁ କି ବନ୍ଧନ।"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
#| msgid "Keybinding to open the \"Show Applications\" view"
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "ସମୀକ୍ଷାକୁ ଖୋଲିବା ପାଇଁ କି ବନ୍ଧନ" msgstr "ସମୀକ୍ଷାକୁ ଖୋଲିବା ପାଇଁ କି ବନ୍ଧନ"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
#| msgid "Keybinding to open the \"Show Applications\" view"
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "କାର୍ଯ୍ୟକଳାପ ସମୀକ୍ଷାକୁ ଖୋଲିବା ପାଇଁ କି ବନ୍ଧନ।" msgstr "କାର୍ଯ୍ୟକଳାପ ସମୀକ୍ଷାକୁ ଖୋଲିବା ପାଇଁ କି ବନ୍ଧନ।"
@@ -226,8 +238,7 @@ msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "" msgstr ""
"ଚାଲୁଥିବା ସମସ୍ତ ଟ୍ୱୀନଗୁଡ଼ିକୁ ସ୍ଥିର ରଖିବା ଏବଂ ପୁନଃଚାଳନ କରିବା ପାଇଁ ଥିବା କି " "ଚାଲୁଥିବା ସମସ୍ତ ଟ୍ୱୀନଗୁଡ଼ିକୁ ସ୍ଥିର ରଖିବା ଏବଂ ପୁନଃଚାଳନ କରିବା ପାଇଁ ଥିବା କି "
"ବନ୍ଧନ, ତୃଟି ନିବାରଣ " "ବନ୍ଧନ, ତୃଟି ନିବାରଣ ଉଦ୍ଦେଶ୍ୟରେ"
"ଉଦ୍ଦେଶ୍ୟରେ"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Which keyboard to use" msgid "Which keyboard to use"
@@ -272,8 +283,8 @@ msgid ""
"Otherwise, all windows are included." "Otherwise, all windows are included."
msgstr "" msgstr ""
"ଯଦି true, ତେବେ କେବଳ ପ୍ରଚଳିତ କାର୍ଯ୍ୟକ୍ଷେତ୍ରରୁ ୱିଣ୍ଡୋଗୁଡ଼ିକ ପରିବର୍ତ୍ତକରେ " "ଯଦି true, ତେବେ କେବଳ ପ୍ରଚଳିତ କାର୍ଯ୍ୟକ୍ଷେତ୍ରରୁ ୱିଣ୍ଡୋଗୁଡ଼ିକ ପରିବର୍ତ୍ତକରେ "
"ଦର୍ଶାଯାଇଥାଏ।ଅନ୍ୟଥା, " "ଦର୍ଶାଯାଇଥାଏ।"
"ସମସ୍ତ ୱିଣ୍ଡୋଗୁଡ଼ିକୁ ଅନ୍ତର୍ଭୁକ୍ତ କରାଯାଇଥାଏ।" "ଅନ୍ୟଥା, ସମସ୍ତ ୱିଣ୍ଡୋଗୁଡ଼ିକୁ ଅନ୍ତର୍ଭୁକ୍ତ କରାଯାଇଥାଏ।"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
@@ -308,17 +319,18 @@ msgstr ""
msgid "Captive Portal" msgid "Captive Portal"
msgstr "କେପଟିଭ୍‌ ପୋର୍ଟାଲ" msgstr "କେପଟିଭ୍‌ ପୋର୍ଟାଲ"
#: ../js/extensionPrefs/main.js:123 #: ../js/extensionPrefs/main.js:127
#, javascript-format #, javascript-format
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:155 #: ../js/extensionPrefs/main.js:159
#| msgid "Configure GNOME Shell Extensions"
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "GNOME ସେଲ ଅନୁଲଗ୍ନଗୁଡ଼ିକ" msgstr "GNOME ସେଲ ଅନୁଲଗ୍ନଗୁଡ଼ିକ"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143 #: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452 #: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:429
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:915 #: ../js/ui/status/network.js:915
msgid "Cancel" msgid "Cancel"
@@ -339,6 +351,7 @@ msgid "Sign In"
msgstr "ସାଇନ ଇନ" msgstr "ସାଇନ ଇନ"
#: ../js/gdm/loginDialog.js:269 #: ../js/gdm/loginDialog.js:269
#| msgid "Switch Session"
msgid "Choose Session" msgid "Choose Session"
msgstr "ଅଧିବେଶନ ବାଛନ୍ତୁ" msgstr "ଅଧିବେଶନ ବାଛନ୍ତୁ"
@@ -378,47 +391,50 @@ msgstr "ନିର୍ଦ୍ଦେଶ ବିଶ୍ଲେଷିତ କରିହେ
#: ../js/misc/util.js:156 #: ../js/misc/util.js:156
#, javascript-format #, javascript-format
#| msgid "Execution of '%s' failed:"
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "“%s” ର ନିଷ୍ପାଦନ ବିଫଳ ହୋଇଛି:" msgstr "“%s” ର ନିଷ୍ପାଦନ ବିଫଳ ହୋଇଛି:"
#: ../js/portalHelper/main.js:85 #: ../js/portalHelper/main.js:85
#| msgid "Authentication Required"
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "ୱେବ ବୈଧିକରଣ ଦିଗ ପରିବର୍ତ୍ତନ" msgstr "ୱେବ ବୈଧିକରଣ ଦିଗ ପରିବର୍ତ୍ତନ"
#: ../js/ui/appDisplay.js:772 #: ../js/ui/appDisplay.js:660
msgid "Frequently used applications will appear here" msgid "Frequently used applications will appear here"
msgstr "ବାରମ୍ବାର ବ୍ୟବହୃତ ପ୍ରୟୋଗଗୁଡ଼ିକ ଏଠାରେ ଦୃଶ୍ୟମାନ ହେବ" msgstr "ବାରମ୍ବାର ବ୍ୟବହୃତ ପ୍ରୟୋଗଗୁଡ଼ିକ ଏଠାରେ ଦୃଶ୍ୟମାନ ହେବ"
#: ../js/ui/appDisplay.js:883 #: ../js/ui/appDisplay.js:771
msgid "Frequent" msgid "Frequent"
msgstr "ବାରମ୍ବାର" msgstr "ବାରମ୍ବାର"
#: ../js/ui/appDisplay.js:890 #: ../js/ui/appDisplay.js:778
msgid "All" msgid "All"
msgstr "ସମସ୍ତ" msgstr "ସମସ୍ତ"
#: ../js/ui/appDisplay.js:1789 #: ../js/ui/appDisplay.js:1650
msgid "New Window" msgid "New Window"
msgstr "ନୂତନ ୱିଣ୍ଡୋ" msgstr "ନୂତନ ୱିଣ୍ଡୋ"
#: ../js/ui/appDisplay.js:1815 ../js/ui/dash.js:285 #: ../js/ui/appDisplay.js:1673 ../js/ui/dash.js:285
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "ମନପସନ୍ଦଗୁଡ଼ିକ ମଧ୍ଯରୁ କାଢ଼ନ୍ତୁ" msgstr "ମନପସନ୍ଦଗୁଡ଼ିକ ମଧ୍ଯରୁ କାଢ଼ନ୍ତୁ"
#: ../js/ui/appDisplay.js:1821 #: ../js/ui/appDisplay.js:1679
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "ମନପସନ୍ଦ ମଧ୍ଯରେ ଯୋଗକରନ୍ତୁ" msgstr "ମନପସନ୍ଦ ମଧ୍ଯରେ ଯୋଗକରନ୍ତୁ"
#: ../js/ui/appDisplay.js:1830 #: ../js/ui/appDisplay.js:1688
#| msgid "Show Text"
msgid "Show Details" msgid "Show Details"
msgstr "ବିସ୍ତୃତ ବିବରଣୀ ଦର୍ଶାନ୍ତୁ" msgstr "ବିସ୍ତୃତ ବିବରଣୀ ଦର୍ଶାନ୍ତୁ"
#: ../js/ui/appFavorites.js:132 #: ../js/ui/appFavorites.js:122
#, javascript-format #, javascript-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:166 #: ../js/ui/appFavorites.js:156
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s କୁ ମନପସନ୍ଦରୁ ବାହାର କରିଦିଆଯାଇଛି।" msgstr "%s କୁ ମନପସନ୍ଦରୁ ବାହାର କରିଦିଆଯାଇଛି।"
@@ -610,11 +626,11 @@ msgstr "%s ସହିତ ଖୋଲନ୍ତୁ"
msgid "Eject" msgid "Eject"
msgstr "ବାହାର କରନ୍ତୁ" msgstr "ବାହାର କରନ୍ତୁ"
#: ../js/ui/components/keyring.js:94 ../js/ui/components/polkitAgent.js:285 #: ../js/ui/components/keyring.js:93 ../js/ui/components/polkitAgent.js:285
msgid "Password:" msgid "Password:"
msgstr "ପ୍ରବେଶ ସଙ୍କେତ:" msgstr "ପ୍ରବେଶ ସଙ୍କେତ:"
#: ../js/ui/components/keyring.js:120 #: ../js/ui/components/keyring.js:113
msgid "Type again:" msgid "Type again:"
msgstr "ପୁଣିଥରେ ଲେଖନ୍ତୁ:" msgstr "ପୁଣିଥରେ ଲେଖନ୍ତୁ:"
@@ -653,6 +669,9 @@ msgstr "ବେତାର ନେଟୱର୍କ ପାଇଁ ପ୍ରାଧିକ
#: ../js/ui/components/networkAgent.js:319 #: ../js/ui/components/networkAgent.js:319
#, javascript-format #, javascript-format
#| msgid ""
#| "Passwords or encryption keys are required to access the wireless network "
#| "'%s'."
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”."
@@ -690,6 +709,7 @@ msgstr "ମୋବାଇଲ ବ୍ରୋଡ଼ବ୍ୟାଣ୍ଡ ନେଟୱ
#: ../js/ui/components/networkAgent.js:346 #: ../js/ui/components/networkAgent.js:346
#, javascript-format #, javascript-format
#| msgid "A password is required to connect to '%s'."
msgid "A password is required to connect to “%s”." msgid "A password is required to connect to “%s”."
msgstr "“%s” ସହିତ ସଂଯୁକ୍ତ ହେବା ପାଇଁ ଗୋଟିଏ ପ୍ରବେଶ ସଂକେତ ଆବଶ୍ୟକ।" msgstr "“%s” ସହିତ ସଂଯୁକ୍ତ ହେବା ପାଇଁ ଗୋଟିଏ ପ୍ରବେଶ ସଂକେତ ଆବଶ୍ୟକ।"
@@ -745,12 +765,14 @@ msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */ #. time string in 24h format. i.e. "Yesterday, 14:30" */
#: ../js/ui/components/telepathyClient.js:960 #: ../js/ui/components/telepathyClient.js:960
#| msgid "<b>Yesterday</b>, <b>%H:%M</b>"
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "ଗତକାଲି,%H:%M" msgstr "ଗତକାଲି,%H:%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */ #. string in 24h format. i.e. "Monday, 14:30" */
#: ../js/ui/components/telepathyClient.js:967 #: ../js/ui/components/telepathyClient.js:967
#| msgid "%A, %B %d"
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
@@ -770,6 +792,8 @@ msgstr "%B %d %Y, %H%M"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:986 #: ../js/ui/components/telepathyClient.js:986
#| msgctxt "event list time"
#| msgid "%l:%M %p"
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%l%M %p" msgstr "%l%M %p"
@@ -782,6 +806,7 @@ msgstr "ଗତକାଲି, %l:%M %p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */ #. string in 12h format. i.e. "Monday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1000 #: ../js/ui/components/telepathyClient.js:1000
#| msgid "%a %l:%M %p"
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %l%M %p" msgstr "%A, %l%M %p"
@@ -789,6 +814,7 @@ msgstr "%A, %l%M %p"
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */ #. i.e. "May 25, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1007 #: ../js/ui/components/telepathyClient.js:1007
#| msgid "%a %b %e, %l:%M %p"
msgid "%B %d, %l%M %p" msgid "%B %d, %l%M %p"
msgstr "%B %d, %l%M %p" msgstr "%B %d, %l%M %p"
@@ -796,6 +822,7 @@ msgstr "%B %d, %l%M %p"
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/ #. i.e. "May 25 2012, 2:30 pm"*/
#: ../js/ui/components/telepathyClient.js:1013 #: ../js/ui/components/telepathyClient.js:1013
#| msgid "%a %b %e, %l:%M %p"
msgid "%B %d %Y, %l%M %p" msgid "%B %d %Y, %l%M %p"
msgstr "%B %d %Y, %l%M %p" msgstr "%B %d %Y, %l%M %p"
@@ -989,7 +1016,7 @@ msgstr "ଖାତା ଦେଖନ୍ତୁ"
msgid "Unknown reason" msgid "Unknown reason"
msgstr "ଅଜ୍ଞାତ କାରଣ" msgstr "ଅଜ୍ଞାତ କାରଣ"
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:154 #: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:228
msgid "Windows" msgid "Windows"
msgstr "Windows" msgstr "Windows"
@@ -1020,87 +1047,91 @@ msgstr "ତାରିଖ ଏବଂ ସମୟ ସେଟିଙ୍ଗ"
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%A %B %e, %Y" msgstr "%A %B %e, %Y"
#: ../js/ui/endSessionDialog.js:64 #: ../js/ui/endSessionDialog.js:66
#, javascript-format #, javascript-format
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "ଲଗଆଉଟ %s" msgstr "ଲଗଆଉଟ %s"
#: ../js/ui/endSessionDialog.js:65 #: ../js/ui/endSessionDialog.js:67
msgctxt "title" msgctxt "title"
msgid "Log Out" msgid "Log Out"
msgstr "ଲଗ ଆଉଟ" msgstr "ଲଗ ଆଉଟ"
#: ../js/ui/endSessionDialog.js:67 #: ../js/ui/endSessionDialog.js:69
#, javascript-format #, javascript-format
msgid "%s will be logged out automatically in %d second." msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds." msgid_plural "%s will be logged out automatically in %d seconds."
msgstr[0] "%s ସ୍ୱୟଂଚାଳିତ ଭାବରେ %d ସେକଣ୍ଡରେ ଲଗ ଆଉଟ ହେବ।" msgstr[0] "%s ସ୍ୱୟଂଚାଳିତ ଭାବରେ %d ସେକଣ୍ଡରେ ଲଗ ଆଉଟ ହେବ।"
msgstr[1] "%s ସ୍ୱୟଂଚାଳିତ ଭାବରେ %d ସେକଣ୍ଡରେ ଲଗ ଆଉଟ ହେବ।" msgstr[1] "%s ସ୍ୱୟଂଚାଳିତ ଭାବରେ %d ସେକଣ୍ଡରେ ଲଗ ଆଉଟ ହେବ।"
#: ../js/ui/endSessionDialog.js:72 #: ../js/ui/endSessionDialog.js:74
#, javascript-format #, javascript-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:78 #: ../js/ui/endSessionDialog.js:80
msgctxt "button" msgctxt "button"
msgid "Log Out" msgid "Log Out"
msgstr "ଲଗଆଉଟ" msgstr "ଲଗଆଉଟ"
#: ../js/ui/endSessionDialog.js:84 #: ../js/ui/endSessionDialog.js:86
msgctxt "title" msgctxt "title"
msgid "Power Off" msgid "Power Off"
msgstr "ବିଦ୍ୟୁତ ପ୍ରବାହ ବନ୍ଦ କରନ୍ତୁ" msgstr "ବିଦ୍ୟୁତ ପ୍ରବାହ ବନ୍ଦ କରନ୍ତୁ"
#: ../js/ui/endSessionDialog.js:85 #: ../js/ui/endSessionDialog.js:87
#| msgid "Install Updates & Restart"
msgctxt "title" msgctxt "title"
msgid "Install Updates & Power Off" msgid "Install Updates & Power Off"
msgstr "ଅଦ୍ୟତନଗୁଡ଼ିକୁ ସ୍ଥାପନ କରନ୍ତୁ ଏବଂ ଅଫ୍‌ କରନ୍ତୁ" msgstr "ଅଦ୍ୟତନଗୁଡ଼ିକୁ ସ୍ଥାପନ କରନ୍ତୁ ଏବଂ ଅଫ୍‌ କରନ୍ତୁ"
#: ../js/ui/endSessionDialog.js:87 #: ../js/ui/endSessionDialog.js:89
#, javascript-format #, javascript-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:91 #: ../js/ui/endSessionDialog.js:93
msgctxt "checkbox" msgctxt "checkbox"
msgid "Install pending software updates" msgid "Install pending software updates"
msgstr "ବଳକା ସଫ୍ଟୱେର ଅଦ୍ୟତନଗୁଡ଼ିକୁ ସ୍ଥାପନ କରନ୍ତୁ" msgstr "ବଳକା ସଫ୍ଟୱେର ଅଦ୍ୟତନଗୁଡ଼ିକୁ ସ୍ଥାପନ କରନ୍ତୁ"
#: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111 #: ../js/ui/endSessionDialog.js:96 ../js/ui/endSessionDialog.js:113
msgctxt "button" msgctxt "button"
msgid "Restart" msgid "Restart"
msgstr "ପୂନଃପ୍ରାରମ୍ଭ କରନ୍ତୁ" msgstr "ପୂନଃପ୍ରାରମ୍ଭ କରନ୍ତୁ"
#: ../js/ui/endSessionDialog.js:96 #: ../js/ui/endSessionDialog.js:98
msgctxt "button" msgctxt "button"
msgid "Power Off" msgid "Power Off"
msgstr "ବିଦ୍ୟୁତ ପ୍ରବାହ ବନ୍ଦ କରନ୍ତୁ" msgstr "ବିଦ୍ୟୁତ ପ୍ରବାହ ବନ୍ଦ କରନ୍ତୁ"
#: ../js/ui/endSessionDialog.js:103 #: ../js/ui/endSessionDialog.js:105
msgctxt "title" msgctxt "title"
msgid "Restart" msgid "Restart"
msgstr "ପୂନଃପ୍ରାରମ୍ଭ କରନ୍ତୁ" msgstr "ପୂନଃପ୍ରାରମ୍ଭ କରନ୍ତୁ"
#: ../js/ui/endSessionDialog.js:105 #: ../js/ui/endSessionDialog.js:107
#, javascript-format #, javascript-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:119 #: ../js/ui/endSessionDialog.js:121
#| msgid "Install Updates & Restart"
msgctxt "title" msgctxt "title"
msgid "Restart & Install Updates" msgid "Restart & Install Updates"
msgstr "ପୁନଃଚାଳନ କରନ୍ତୁ ଏବଂ ଅଦ୍ୟତନଗୁଡ଼ିକୁ ସ୍ଥାପନ କରନ୍ତୁ" msgstr "ପୁନଃଚାଳନ କରନ୍ତୁ ଏବଂ ଅଦ୍ୟତନଗୁଡ଼ିକୁ ସ୍ଥାପନ କରନ୍ତୁ"
#: ../js/ui/endSessionDialog.js:121 #: ../js/ui/endSessionDialog.js:123
#, javascript-format #, javascript-format
#| msgid "The system will restart automatically in %d second."
#| msgid_plural "The system will restart automatically in %d seconds."
msgid "The system will automatically restart and install updates in %d second." msgid "The system will automatically restart and install updates in %d second."
msgid_plural "" msgid_plural ""
"The system will automatically restart and install updates in %d seconds." "The system will automatically restart and install updates in %d seconds."
@@ -1111,42 +1142,42 @@ msgstr[1] ""
"ତନ୍ତ୍ର ସ୍ୱୟଂଚାଳିତ ଭାବରେ %d ସେକଣ୍ଡରେ ପୁନଃପ୍ରାରମ୍ଭ ହେବ ଏବଂ ଅଦ୍ୟତନଗୁଡ଼ିକୁ ସ୍ଥାପନ " "ତନ୍ତ୍ର ସ୍ୱୟଂଚାଳିତ ଭାବରେ %d ସେକଣ୍ଡରେ ପୁନଃପ୍ରାରମ୍ଭ ହେବ ଏବଂ ଅଦ୍ୟତନଗୁଡ଼ିକୁ ସ୍ଥାପନ "
"କରିବ।" "କରିବ।"
#: ../js/ui/endSessionDialog.js:127 #: ../js/ui/endSessionDialog.js:129
msgctxt "button" msgctxt "button"
msgid "Restart &amp; Install" msgid "Restart &amp; Install"
msgstr "ପୁନଃଚାଳନ କରନ୍ତୁ ଏବଂ ସ୍ଥାପନ କରନ୍ତୁ" msgstr "ପୁନଃଚାଳନ କରନ୍ତୁ ଏବଂ ସ୍ଥାପନ କରନ୍ତୁ"
#: ../js/ui/endSessionDialog.js:128 #: ../js/ui/endSessionDialog.js:130
msgctxt "button" msgctxt "button"
msgid "Install &amp; Power Off" msgid "Install &amp; Power Off"
msgstr "ସ୍ଥାପନ କରନ୍ତୁ ଏବଂ ଅଫ୍‌ କରନ୍ତୁ" msgstr "ସ୍ଥାପନ କରନ୍ତୁ ଏବଂ ଅଫ୍‌ କରନ୍ତୁ"
#: ../js/ui/endSessionDialog.js:129 #: ../js/ui/endSessionDialog.js:131
msgctxt "checkbox" msgctxt "checkbox"
msgid "Power off after updates are installed" msgid "Power off after updates are installed"
msgstr "ଅଦ୍ୟତନଗୁଡ଼ିକ ସ୍ଥାପିତ ହୋଇସାରିବା ପରେ ଅଫ୍‌ କରନ୍ତୁ" msgstr "ଅଦ୍ୟତନଗୁଡ଼ିକ ସ୍ଥାପିତ ହୋଇସାରିବା ପରେ ଅଫ୍‌ କରନ୍ତୁ"
#: ../js/ui/endSessionDialog.js:338 #: ../js/ui/endSessionDialog.js:315
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
msgstr "" msgstr ""
"ବ୍ୟାଟେରୀରେ ଚାଲୁଅଛି: ଅଦ୍ୟତନଗୁଡ଼ିକୁ ସ୍ଥାପନ କରିବା ପୂର୍ବରୁ ପ୍ଲଗଇନ୍‌ କରନ୍ତୁ।" "ବ୍ୟାଟେରୀରେ ଚାଲୁଅଛି: ଅଦ୍ୟତନଗୁଡ଼ିକୁ ସ୍ଥାପନ କରିବା ପୂର୍ବରୁ ପ୍ଲଗଇନ୍‌ କରନ୍ତୁ।"
#: ../js/ui/endSessionDialog.js:355 #: ../js/ui/endSessionDialog.js:332
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
msgstr "କିଛି ପ୍ରୟୋଗଗୁଡ଼ିକ ବ୍ୟସ୍ତ ଅଛି କିମ୍ବା ସେଥିରେ କିଛି କାମ ଅସଂରକ୍ଷିତ ଅଛି।" msgstr "କିଛି ପ୍ରୟୋଗଗୁଡ଼ିକ ବ୍ୟସ୍ତ ଅଛି କିମ୍ବା ସେଥିରେ କିଛି କାମ ଅସଂରକ୍ଷିତ ଅଛି।"
#: ../js/ui/endSessionDialog.js:362 #: ../js/ui/endSessionDialog.js:339
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "ଅନ୍ୟ ବ୍ୟବହାରକାରୀମାନେ ଲଗଇନ ହୋଇଛନ୍ତି।" msgstr "ଅନ୍ୟ ବ୍ୟବହାରକାରୀମାନେ ଲଗଇନ ହୋଇଛନ୍ତି।"
#. Translators: Remote here refers to a remote session, like a ssh login */ #. Translators: Remote here refers to a remote session, like a ssh login */
#: ../js/ui/endSessionDialog.js:640 #: ../js/ui/endSessionDialog.js:619
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (ଦୂରବର୍ତ୍ତୀ)" msgstr "%s (ଦୂରବର୍ତ୍ତୀ)"
#. Translators: Console here refers to a tty like a VT console */ #. Translators: Console here refers to a tty like a VT console */
#: ../js/ui/endSessionDialog.js:643 #: ../js/ui/endSessionDialog.js:622
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (କୋନସୋଲ)" msgstr "%s (କୋନସୋଲ)"
@@ -1157,10 +1188,11 @@ msgstr "ସ୍ଥାପନ କରନ୍ତୁ"
#: ../js/ui/extensionDownloader.js:204 #: ../js/ui/extensionDownloader.js:204
#, javascript-format #, javascript-format
#| msgid "Download and install '%s' from extensions.gnome.org?"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "“%s” କୁ extensions.gnome.org ରୁ ଆହରଣ କରି ସ୍ଥାପନ କରିବେ କି?" msgstr "“%s” କୁ extensions.gnome.org ରୁ ଆହରଣ କରି ସ୍ଥାପନ କରିବେ କି?"
#: ../js/ui/keyboard.js:692 ../js/ui/status/keyboard.js:523 #: ../js/ui/keyboard.js:653 ../js/ui/status/keyboard.js:339
msgid "Keyboard" msgid "Keyboard"
msgstr "କିବୋର୍ଡ" msgstr "କିବୋର୍ଡ"
@@ -1182,8 +1214,8 @@ msgstr "ତୃଟିଗୁଡ଼ିକୁ ଲୁଚାନ୍ତୁ"
msgid "Show Errors" msgid "Show Errors"
msgstr "ତୃଟି ଗୁଡିକୁ ଦର୍ଶାନ୍ତୁ" msgstr "ତୃଟି ଗୁଡିକୁ ଦର୍ଶାନ୍ତୁ"
#: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:71 #: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:62
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:166
msgid "Enabled" msgid "Enabled"
msgstr "ସକ୍ରିୟ" msgstr "ସକ୍ରିୟ"
@@ -1191,7 +1223,7 @@ msgstr "ସକ୍ରିୟ"
#. because it's disabled by rfkill (airplane mode) */ #. because it's disabled by rfkill (airplane mode) */
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:179 #: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:169
#: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled" msgid "Disabled"
msgstr "ନିଷ୍କ୍ରିୟ" msgstr "ନିଷ୍କ୍ରିୟ"
@@ -1216,39 +1248,39 @@ msgstr "ଉତ୍ସକୁ ଦେଖନ୍ତୁ"
msgid "Web Page" msgid "Web Page"
msgstr "ୱେବ ପୃଷ୍ଠା" msgstr "ୱେବ ପୃଷ୍ଠା"
#: ../js/ui/messageTray.js:1327 #: ../js/ui/messageTray.js:1325
msgid "Open" msgid "Open"
msgstr "ଖୋଲନ୍ତୁ" msgstr "ଖୋଲନ୍ତୁ"
#: ../js/ui/messageTray.js:1334 #: ../js/ui/messageTray.js:1332
msgid "Remove" msgid "Remove"
msgstr "ବାହାର କରନ୍ତୁ" msgstr "ବାହାର କରନ୍ତୁ"
#: ../js/ui/messageTray.js:1631 #: ../js/ui/messageTray.js:1629
msgid "Notifications" msgid "Notifications"
msgstr "ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ" msgstr "ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ"
#: ../js/ui/messageTray.js:1638 #: ../js/ui/messageTray.js:1636
msgid "Clear Messages" msgid "Clear Messages"
msgstr "ସନ୍ଦେଶଗୁଡ଼ିକୁ ସଫାକରନ୍ତୁ" msgstr "ସନ୍ଦେଶଗୁଡ଼ିକୁ ସଫାକରନ୍ତୁ"
#: ../js/ui/messageTray.js:1657 #: ../js/ui/messageTray.js:1655
msgid "Notification Settings" msgid "Notification Settings"
msgstr "ବିଜ୍ଞପ୍ତି ବିନ୍ୟାସ" msgstr "ବିଜ୍ଞପ୍ତି ବିନ୍ୟାସ"
#: ../js/ui/messageTray.js:1710 #: ../js/ui/messageTray.js:1708
msgid "Tray Menu" msgid "Tray Menu"
msgstr "ଟ୍ରେ ତାଲିକା" msgstr "ଟ୍ରେ ତାଲିକା"
#: ../js/ui/messageTray.js:1934 #: ../js/ui/messageTray.js:1925
msgid "No Messages" msgid "No Messages"
msgstr "କୌଣସି ସନ୍ଦେଶ ନାହିଁ" msgstr "କୌଣସି ସନ୍ଦେଶ ନାହିଁ"
#: ../js/ui/messageTray.js:1979 #: ../js/ui/messageTray.js:1963
msgid "Message Tray" msgid "Message Tray"
msgstr "ସନ୍ଦେଶ ଟ୍ରେ" msgstr "ସନ୍ଦେଶ ଟ୍ରେ"
#: ../js/ui/messageTray.js:2992 #: ../js/ui/messageTray.js:2966
msgid "System Information" msgid "System Information"
msgstr "ତନ୍ତ୍ର ସୂଚନା" msgstr "ତନ୍ତ୍ର ସୂଚନା"
@@ -1276,7 +1308,7 @@ msgstr "ସମୀକ୍ଷା"
#. in the search entry when no search is #. in the search entry when no search is
#. active; it should not exceed ~30 #. active; it should not exceed ~30
#. characters. */ #. characters. */
#: ../js/ui/overview.js:246 #: ../js/ui/overview.js:250
msgid "Type to search…" msgid "Type to search…"
msgstr "ସନ୍ଧାନ କରିବା ପାଇଁ ଲେଖନ୍ତୁ…" msgstr "ସନ୍ଧାନ କରିବା ପାଇଁ ଲେଖନ୍ତୁ…"
@@ -1307,6 +1339,7 @@ msgid "Close"
msgstr "ବନ୍ଦକରନ୍ତୁ" msgstr "ବନ୍ଦକରନ୍ତୁ"
#: ../js/ui/runDialog.js:277 #: ../js/ui/runDialog.js:277
#| msgid "Estimating…"
msgid "Restarting…" msgid "Restarting…"
msgstr "ପୁନଃଚାଳନ କରୁଅଛି…" msgstr "ପୁନଃଚାଳନ କରୁଅଛି…"
@@ -1339,27 +1372,27 @@ msgstr "ତାଲା ପକାଇବାରେ ଅସମର୍ଥ"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "ତାଲାଟି ଏକ ପ୍ରୟୋଗ ଦ୍ୱାରା ଅଟକ ହୋଇଛି" msgstr "ତାଲାଟି ଏକ ପ୍ରୟୋଗ ଦ୍ୱାରା ଅଟକ ହୋଇଛି"
#: ../js/ui/search.js:594 #: ../js/ui/search.js:606
msgid "Searching…" msgid "Searching…"
msgstr "ସନ୍ଧାନ କରୁଅଛି…" msgstr "ସନ୍ଧାନ କରୁଅଛି…"
#: ../js/ui/search.js:596 #: ../js/ui/search.js:652
msgid "No results." msgid "No results."
msgstr "କୌଣସି ଫଳାଫଳ ନାହିଁ।" msgstr "କୌଣସି ଫଳାଫଳ ନାହିଁ।"
#: ../js/ui/shellEntry.js:25 #: ../js/ui/shellEntry.js:27
msgid "Copy" msgid "Copy"
msgstr "ନକଲ କରନ୍ତୁ" msgstr "ନକଲ କରନ୍ତୁ"
#: ../js/ui/shellEntry.js:30 #: ../js/ui/shellEntry.js:32
msgid "Paste" msgid "Paste"
msgstr "ଲଗାନ୍ତୁ" msgstr "ଲଗାନ୍ତୁ"
#: ../js/ui/shellEntry.js:97 #: ../js/ui/shellEntry.js:99
msgid "Show Text" msgid "Show Text"
msgstr "ପାଠ୍ୟ ଦର୍ଶାନ୍ତୁ" msgstr "ପାଠ୍ୟ ଦର୍ଶାନ୍ତୁ"
#: ../js/ui/shellEntry.js:99 #: ../js/ui/shellEntry.js:101
msgid "Hide Text" msgid "Hide Text"
msgstr "ପାଠ୍ଯ ଲୁଚାନ୍ତୁ" msgstr "ପାଠ୍ଯ ଲୁଚାନ୍ତୁ"
@@ -1432,12 +1465,14 @@ msgstr "ବ୍ଲୁଟୁଥ ସଂରଚନାଗୁଡ଼ିକ"
#: ../js/ui/status/bluetooth.js:104 #: ../js/ui/status/bluetooth.js:104
#, javascript-format #, javascript-format
#| msgid "Connected (private)"
msgid "%d Connected Device" msgid "%d Connected Device"
msgid_plural "%d Connected Devices" msgid_plural "%d Connected Devices"
msgstr[0] "%d ଟି ସଂଯୁକ୍ତ ଉପକରଣ" msgstr[0] "%d ଟି ସଂଯୁକ୍ତ ଉପକରଣ"
msgstr[1] "%d ଟି ସଂଯୁକ୍ତ ଉପକରଣଗୁଡ଼ିକ" msgstr[1] "%d ଟି ସଂଯୁକ୍ତ ଉପକରଣଗୁଡ଼ିକ"
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1309 #: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1309
#| msgid "Connect"
msgid "Not Connected" msgid "Not Connected"
msgstr "ସଂଯୁକ୍ତ ହୋଇନାହିଁ" msgstr "ସଂଯୁକ୍ତ ହୋଇନାହିଁ"
@@ -1445,28 +1480,26 @@ msgstr "ସଂଯୁକ୍ତ ହୋଇନାହିଁ"
msgid "Brightness" msgid "Brightness"
msgstr "ଉଜ୍ଜ୍ବଳତା" msgstr "ଉଜ୍ଜ୍ବଳତା"
#: ../js/ui/status/keyboard.js:547 #: ../js/ui/status/keyboard.js:406
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "କି-ବୋର୍ଡ ବିନ୍ଯାସ ଦର୍ଶାନ୍ତୁ" msgstr "କି-ବୋର୍ଡ ବିନ୍ଯାସ ଦର୍ଶାନ୍ତୁ"
#: ../js/ui/status/location.js:65 #: ../js/ui/status/location.js:56
#| msgid "Notifications"
msgid "Location" msgid "Location"
msgstr "ଅବସ୍ଥାନ" msgstr "ଅବସ୍ଥାନ"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:177 #: ../js/ui/status/location.js:63 ../js/ui/status/location.js:167
#| msgid "Disabled"
msgid "Disable" msgid "Disable"
msgstr "ନିଷ୍କ୍ରିୟ" msgstr "ନିଷ୍କ୍ରିୟ"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:166
#| msgid "Power Settings"
msgid "Privacy Settings"
msgstr "ଗୋପନୀୟତା ସେଟିଙ୍ଗ"
#: ../js/ui/status/location.js:176
msgid "In Use" msgid "In Use"
msgstr "ବ୍ଯବହୃତ ହେଉଅଛି" msgstr "ବ୍ଯବହୃତ ହେଉଅଛି"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:170
#| msgid "Enabled"
msgid "Enable" msgid "Enable"
msgstr "ସକ୍ରିୟ" msgstr "ସକ୍ରିୟ"
@@ -1476,35 +1509,42 @@ msgstr "<unknown>"
#: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1307 #: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1307
#: ../js/ui/status/network.js:1511 #: ../js/ui/status/network.js:1511
#| msgid "Offline"
msgid "Off" msgid "Off"
msgstr "ଅଫ" msgstr "ଅଫ"
#: ../js/ui/status/network.js:459 #: ../js/ui/status/network.js:459
#| msgid "Connect"
msgid "Connected" msgid "Connected"
msgstr "ସଂଯୁକ୍ତ" msgstr "ସଂଯୁକ୍ତ"
#. Translators: this is for network devices that are physically present but are not #. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu) */ #. under NetworkManager's control (and thus cannot be used in the menu) */
#: ../js/ui/status/network.js:463 #: ../js/ui/status/network.js:463
#| msgid "unmanaged"
msgid "Unmanaged" msgid "Unmanaged"
msgstr "ଅପରିଚାଳିତ" msgstr "ଅପରିଚାଳିତ"
#: ../js/ui/status/network.js:465 #: ../js/ui/status/network.js:465
#| msgid "disconnecting..."
msgid "Disconnecting" msgid "Disconnecting"
msgstr "ସଂଯୋଗ ବିଚ୍ଛିନ୍ନ କରୁଅଛି" msgstr "ସଂଯୋଗ ବିଚ୍ଛିନ୍ନ କରୁଅଛି"
#: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1301 #: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1301
#| msgid "Connection"
msgid "Connecting" msgid "Connecting"
msgstr "ସଂଯୋଗ କରୁଅଛି" msgstr "ସଂଯୋଗ କରୁଅଛି"
#. Translators: this is for network connections that require some kind of key or password */ #. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:474 #: ../js/ui/status/network.js:474
#| msgid "authentication required"
msgid "Authentication required" msgid "Authentication required"
msgstr "ବୈଧିକରଣ ଆବଶ୍ଯକ" msgstr "ବୈଧିକରଣ ଆବଶ୍ଯକ"
#. Translators: this is for devices that require some kind of firmware or kernel #. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing */ #. module, which is missing */
#: ../js/ui/status/network.js:482 #: ../js/ui/status/network.js:482
#| msgid "firmware missing"
msgid "Firmware missing" msgid "Firmware missing"
msgstr "ଫର୍ମୱେର ଅନୁପସ୍ଥିତ ଅଛି" msgstr "ଫର୍ମୱେର ଅନୁପସ୍ଥିତ ଅଛି"
@@ -1519,14 +1559,17 @@ msgid "Connection failed"
msgstr "ସଂଯୋଗ ବିଫଳ ହୋଇଛି" msgstr "ସଂଯୋଗ ବିଫଳ ହୋଇଛି"
#: ../js/ui/status/network.js:504 #: ../js/ui/status/network.js:504
#| msgid "Settings"
msgid "Wired Settings" msgid "Wired Settings"
msgstr "ତାରମୟ ସଂରଚନା" msgstr "ତାରମୟ ସଂରଚନା"
#: ../js/ui/status/network.js:546 ../js/ui/status/network.js:624 #: ../js/ui/status/network.js:546 ../js/ui/status/network.js:624
#| msgid "Mobile broadband"
msgid "Mobile Broadband Settings" msgid "Mobile Broadband Settings"
msgstr "ମୋବାଇଲ ବ୍ରୋଡ଼ବ୍ୟାଣ୍ଡ ସଂରଚନା" msgstr "ମୋବାଇଲ ବ୍ରୋଡ଼ବ୍ୟାଣ୍ଡ ସଂରଚନା"
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305 #: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#| msgid "hardware disabled"
msgid "Hardware Disabled" msgid "Hardware Disabled"
msgstr "ହାର୍ଡୱେର ନିଷ୍କ୍ରିୟ ଅଛି" msgstr "ହାର୍ଡୱେର ନିଷ୍କ୍ରିୟ ଅଛି"
@@ -1563,6 +1606,7 @@ msgid "Wi-Fi Networks"
msgstr "ୱାଇ-ଫାଇ ନେଟୱର୍କଗୁଡ଼ିକ" msgstr "ୱାଇ-ଫାଇ ନେଟୱର୍କଗୁଡ଼ିକ"
#: ../js/ui/status/network.js:853 #: ../js/ui/status/network.js:853
#| msgid "Enable networking"
msgid "Select a network" msgid "Select a network"
msgstr "ଗୋଟିଏ ନେଟୱର୍କ ବାଛନ୍ତୁ" msgstr "ଗୋଟିଏ ନେଟୱର୍କ ବାଛନ୍ତୁ"
@@ -1579,6 +1623,7 @@ msgid "Select Network"
msgstr "ନେଟୱର୍କ ବାଛନ୍ତୁ" msgstr "ନେଟୱର୍କ ବାଛନ୍ତୁ"
#: ../js/ui/status/network.js:1179 #: ../js/ui/status/network.js:1179
#| msgid "Settings"
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "ୱାଇ-ଫାଇ ସଂରଚନା" msgstr "ୱାଇ-ଫାଇ ସଂରଚନା"
@@ -1608,6 +1653,7 @@ msgid "Network Settings"
msgstr "ନେଟୱର୍କ ସଂରଚନା" msgstr "ନେଟୱର୍କ ସଂରଚନା"
#: ../js/ui/status/network.js:1482 #: ../js/ui/status/network.js:1482
#| msgid "Settings"
msgid "VPN Settings" msgid "VPN Settings"
msgstr "VPN ସଂରଚନା" msgstr "VPN ସଂରଚନା"
@@ -1658,6 +1704,7 @@ msgid "Airplane Mode"
msgstr "ବିମାନ ଧାରା" msgstr "ବିମାନ ଧାରା"
#: ../js/ui/status/rfkill.js:85 #: ../js/ui/status/rfkill.js:85
#| msgid "Open"
msgid "On" msgid "On"
msgstr "ଅନ୍‌" msgstr "ଅନ୍‌"
@@ -1701,16 +1748,17 @@ msgstr "ଅନ୍ୟ ଏକ ଚାଳକ ଭାବରେ ଲଗଇନ କରନ
msgid "Unlock Window" msgid "Unlock Window"
msgstr "ୱିଣ୍ଡୋକୁ ଖୋଲନ୍ତୁ" msgstr "ୱିଣ୍ଡୋକୁ ଖୋଲନ୍ତୁ"
#: ../js/ui/viewSelector.js:158 #: ../js/ui/viewSelector.js:232
msgid "Applications" msgid "Applications"
msgstr "ପ୍ରୟୋଗଗୁଡ଼ିକ" msgstr "ପ୍ରୟୋଗଗୁଡ଼ିକ"
#: ../js/ui/viewSelector.js:162 #: ../js/ui/viewSelector.js:236
msgid "Search" msgid "Search"
msgstr "ସନ୍ଧାନ କରନ୍ତୁ" msgstr "ସନ୍ଧାନ କରନ୍ତୁ"
#: ../js/ui/windowAttentionHandler.js:19 #: ../js/ui/windowAttentionHandler.js:19
#, javascript-format #, javascript-format
#| msgid "'%s' is ready"
msgid "“%s” is ready" msgid "“%s” is ready"
msgstr "“%s” ପ୍ରସ୍ତୁତ ଅଛି" msgstr "“%s” ପ୍ରସ୍ତୁତ ଅଛି"
@@ -1722,6 +1770,7 @@ msgstr "ଆପଣ ଏହି ପ୍ରଦର୍ଶନୀ ସଂରଚନାକୁ
#. to avoid ellipsizing the labels. #. to avoid ellipsizing the labels.
#. */ #. */
#: ../js/ui/windowManager.js:84 #: ../js/ui/windowManager.js:84
#| msgid "Power Settings"
msgid "Revert Settings" msgid "Revert Settings"
msgstr "ସଂରଚନାକୁ ପରିବର୍ତ୍ତନ କରନ୍ତୁ" msgstr "ସଂରଚନାକୁ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"
@@ -1802,24 +1851,25 @@ msgstr[1] "%u ନିବେଶଗୁଡ଼ିକ"
msgid "System Sounds" msgid "System Sounds"
msgstr "ତନ୍ତ୍ର ଧ୍ୱନି" msgstr "ତନ୍ତ୍ର ଧ୍ୱନି"
#: ../src/main.c:373 #: ../src/main.c:371
msgid "Print version" msgid "Print version"
msgstr "ମୁଦ୍ରଣ ସଂସ୍କରଣ" msgstr "ମୁଦ୍ରଣ ସଂସ୍କରଣ"
#: ../src/main.c:379 #: ../src/main.c:377
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "ଲଗଇନ ପରଦା ପାଇଁ ବ୍ୟବହୃତ GDM" msgstr "ଲଗଇନ ପରଦା ପାଇଁ ବ୍ୟବହୃତ GDM"
#: ../src/main.c:385 #: ../src/main.c:383
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ଧାରା ବ୍ୟବହାର କରନ୍ତୁ, ଯେପରିକି ଲଗଇନ ପରଦା ପାଇଁ \"gdm\"" msgstr "ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ଧାରା ବ୍ୟବହାର କରନ୍ତୁ, ଯେପରିକି ଲଗଇନ ପରଦା ପାଇଁ \"gdm\""
#: ../src/main.c:391 #: ../src/main.c:389
msgid "List possible modes" msgid "List possible modes"
msgstr "ସମ୍ଭାବ୍ୟ ଧାରାଗୁଡ଼ିକୁ ତାଲିକାଭୁକ୍ତ କରନ୍ତୁ" msgstr "ସମ୍ଭାବ୍ୟ ଧାରାଗୁଡ଼ିକୁ ତାଲିକାଭୁକ୍ତ କରନ୍ତୁ"
#: ../src/shell-app.c:666 #: ../src/shell-app.c:666
#, c-format #, c-format
#| msgid "Failed to launch '%s'"
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "“%s” କୁ ଆରମ୍ଭ କରିବାରେ ବିଫଳ" msgstr "“%s” କୁ ଆରମ୍ଭ କରିବାରେ ବିଫଳ"

443
po/pa.po

File diff suppressed because it is too large Load Diff

280
po/pl.po
View File

@@ -12,8 +12,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: 2014-09-12 23:49+0200\n" "POT-Creation-Date: 2014-09-03 16:10+0200\n"
"PO-Revision-Date: 2014-09-12 23:50+0200\n" "PO-Revision-Date: 2014-09-03 16:15+0200\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n" "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <gnomepl@aviary.pl>\n" "Language-Team: Polish <gnomepl@aviary.pl>\n"
"Language: pl\n" "Language: pl\n"
@@ -312,18 +312,18 @@ msgstr ""
msgid "Captive Portal" msgid "Captive Portal"
msgstr "Brama przechwytująca" msgstr "Brama przechwytująca"
#: ../js/extensionPrefs/main.js:123 #: ../js/extensionPrefs/main.js:127
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "" msgstr ""
"Wystąpił błąd podczas wczytywania okna preferencji dla rozszerzenia %s:" "Wystąpił błąd podczas wczytywania okna preferencji dla rozszerzenia %s:"
#: ../js/extensionPrefs/main.js:155 #: ../js/extensionPrefs/main.js:159
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "Rozszerzenia powłoki GNOME" msgstr "Rozszerzenia powłoki GNOME"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143 #: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452 #: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:429
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:915 #: ../js/ui/status/network.js:915
msgid "Cancel" msgid "Cancel"
@@ -347,23 +347,15 @@ msgstr "Zaloguj"
msgid "Choose Session" msgid "Choose Session"
msgstr "Wybór sesji" msgstr "Wybór sesji"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:429 #: ../js/gdm/loginDialog.js:429
msgid "Not listed?" msgid "Not listed?"
msgstr "Inny użytkownik?" msgstr "Inny użytkownik?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:614 #: ../js/gdm/loginDialog.js:614
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(np. użytkownik lub %s)" msgstr "(np. użytkownik lub %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:619 ../js/ui/components/networkAgent.js:269 #: ../js/gdm/loginDialog.js:619 ../js/ui/components/networkAgent.js:269
#: ../js/ui/components/networkAgent.js:287 #: ../js/ui/components/networkAgent.js:287
msgid "Username: " msgid "Username: "
@@ -377,11 +369,6 @@ msgstr "Okno logowania"
msgid "Authentication error" msgid "Authentication error"
msgstr "Błąd uwierzytelniania" msgstr "Błąd uwierzytelniania"
#. We don't show fingerprint messages directly since it's
#. not the main auth service. Instead we use the messages
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:453 #: ../js/gdm/util.js:453
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(lub przeciągnięcie palca)" msgstr "(lub przeciągnięcie palca)"
@@ -390,8 +377,6 @@ msgstr "(lub przeciągnięcie palca)"
msgid "Command not found" msgid "Command not found"
msgstr "Nie odnaleziono polecenia" msgstr "Nie odnaleziono polecenia"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:148 #: ../js/misc/util.js:148
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Nie można przetworzyć polecenia:" msgstr "Nie można przetworzyć polecenia:"
@@ -401,8 +386,6 @@ msgstr "Nie można przetworzyć polecenia:"
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "Wykonanie polecenia \"%s\" się nie powiodło:" msgstr "Wykonanie polecenia \"%s\" się nie powiodło:"
#. TRANSLATORS: this is the title of the wifi captive portal login
#. window, until we know the title of the actual login page
#: ../js/portalHelper/main.js:85 #: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "Przekierowanie uwierzytelniania WWW" msgstr "Przekierowanie uwierzytelniania WWW"
@@ -419,19 +402,19 @@ msgstr "Często używane"
msgid "All" msgid "All"
msgstr "Wszystkie" msgstr "Wszystkie"
#: ../js/ui/appDisplay.js:1789 #: ../js/ui/appDisplay.js:1788
msgid "New Window" msgid "New Window"
msgstr "Nowe okno" msgstr "Nowe okno"
#: ../js/ui/appDisplay.js:1815 ../js/ui/dash.js:285 #: ../js/ui/appDisplay.js:1814 ../js/ui/dash.js:285
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "Usuń z ulubionych" msgstr "Usuń z ulubionych"
#: ../js/ui/appDisplay.js:1821 #: ../js/ui/appDisplay.js:1820
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "Dodaj do ulubionych" msgstr "Dodaj do ulubionych"
#: ../js/ui/appDisplay.js:1830 #: ../js/ui/appDisplay.js:1829
msgid "Show Details" msgid "Show Details"
msgstr "Wyświetl szczegóły" msgstr "Wyświetl szczegóły"
@@ -456,14 +439,14 @@ msgstr "Zmień tło…"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. #. */
#: ../js/ui/calendar.js:67 #: ../js/ui/calendar.js:67
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Cały dzień" msgstr "Cały dzień"
#. Translators: Shown in calendar event list, if 24h format, #. Translators: Shown in calendar event list, if 24h format,
#. \u2236 is a ratio character, similar to : #. \u2236 is a ratio character, similar to : */
#: ../js/ui/calendar.js:73 #: ../js/ui/calendar.js:73
msgctxt "event list time" msgctxt "event list time"
msgid "%H%M" msgid "%H%M"
@@ -471,7 +454,7 @@ msgstr "%H%M"
#. Translators: Shown in calendar event list, if 12h format, #. Translators: Shown in calendar event list, if 12h format,
#. \u2236 is a ratio character, similar to : and \u2009 is #. \u2236 is a ratio character, similar to : and \u2009 is
#. a thin space #. a thin space */
#: ../js/ui/calendar.js:82 #: ../js/ui/calendar.js:82
msgctxt "event list time" msgctxt "event list time"
msgid "%l%M%p" msgid "%l%M%p"
@@ -481,43 +464,43 @@ msgstr "%l%M%p"
#. * #. *
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. #. */
#: ../js/ui/calendar.js:113 #: ../js/ui/calendar.js:113
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "N" msgstr "N"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday */
#: ../js/ui/calendar.js:115 #: ../js/ui/calendar.js:115
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "P" msgstr "P"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday */
#: ../js/ui/calendar.js:117 #: ../js/ui/calendar.js:117
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "W" msgstr "W"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday */
#: ../js/ui/calendar.js:119 #: ../js/ui/calendar.js:119
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "Ś" msgstr "Ś"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday */
#: ../js/ui/calendar.js:121 #: ../js/ui/calendar.js:121
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "C" msgstr "C"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:123 #: ../js/ui/calendar.js:123
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "P" msgstr "P"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday */
#: ../js/ui/calendar.js:125 #: ../js/ui/calendar.js:125
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
@@ -528,43 +511,43 @@ msgstr "S"
#. * NOTE: These list abbreviations are normally not shown together #. * NOTE: These list abbreviations are normally not shown together
#. * so they need to be unique (e.g. Tuesday and Thursday cannot #. * so they need to be unique (e.g. Tuesday and Thursday cannot
#. * both be 'T'). #. * both be 'T').
#. #. */
#: ../js/ui/calendar.js:138 #: ../js/ui/calendar.js:138
msgctxt "list sunday" msgctxt "list sunday"
msgid "Su" msgid "Su"
msgstr "N" msgstr "N"
#. Translators: Event list abbreviation for Monday #. Translators: Event list abbreviation for Monday */
#: ../js/ui/calendar.js:140 #: ../js/ui/calendar.js:140
msgctxt "list monday" msgctxt "list monday"
msgid "M" msgid "M"
msgstr "Po" msgstr "Po"
#. Translators: Event list abbreviation for Tuesday #. Translators: Event list abbreviation for Tuesday */
#: ../js/ui/calendar.js:142 #: ../js/ui/calendar.js:142
msgctxt "list tuesday" msgctxt "list tuesday"
msgid "T" msgid "T"
msgstr "W" msgstr "W"
#. Translators: Event list abbreviation for Wednesday #. Translators: Event list abbreviation for Wednesday */
#: ../js/ui/calendar.js:144 #: ../js/ui/calendar.js:144
msgctxt "list wednesday" msgctxt "list wednesday"
msgid "W" msgid "W"
msgstr "Ś" msgstr "Ś"
#. Translators: Event list abbreviation for Thursday #. Translators: Event list abbreviation for Thursday */
#: ../js/ui/calendar.js:146 #: ../js/ui/calendar.js:146
msgctxt "list thursday" msgctxt "list thursday"
msgid "Th" msgid "Th"
msgstr "C" msgstr "C"
#. Translators: Event list abbreviation for Friday #. Translators: Event list abbreviation for Friday */
#: ../js/ui/calendar.js:148 #: ../js/ui/calendar.js:148
msgctxt "list friday" msgctxt "list friday"
msgid "F" msgid "F"
msgstr "Pi" msgstr "Pi"
#. Translators: Event list abbreviation for Saturday #. Translators: Event list abbreviation for Saturday */
#: ../js/ui/calendar.js:150 #: ../js/ui/calendar.js:150
msgctxt "list saturday" msgctxt "list saturday"
msgid "S" msgid "S"
@@ -578,18 +561,18 @@ msgstr "Poprzedni miesiąc"
msgid "Next month" msgid "Next month"
msgstr "Następny miesiąc" msgstr "Następny miesiąc"
#. Translators: Text to show if there are no events #. Translators: Text to show if there are no events */
#: ../js/ui/calendar.js:781 #: ../js/ui/calendar.js:781
msgid "Nothing Scheduled" msgid "Nothing Scheduled"
msgstr "Nic nie zaplanowano" msgstr "Nic nie zaplanowano"
#. Translators: Shown on calendar heading when selected day occurs on current year #. Translators: Shown on calendar heading when selected day occurs on current year */
#: ../js/ui/calendar.js:799 #: ../js/ui/calendar.js:799
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %e %B" msgstr "%A, %e %B"
#. Translators: Shown on calendar heading when selected day occurs on different year #. Translators: Shown on calendar heading when selected day occurs on different year */
#: ../js/ui/calendar.js:802 #: ../js/ui/calendar.js:802
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
@@ -632,11 +615,11 @@ msgstr "Otwórz za pomocą %s"
msgid "Eject" msgid "Eject"
msgstr "Wysuń" msgstr "Wysuń"
#: ../js/ui/components/keyring.js:94 ../js/ui/components/polkitAgent.js:285 #: ../js/ui/components/keyring.js:93 ../js/ui/components/polkitAgent.js:285
msgid "Password:" msgid "Password:"
msgstr "Hasło:" msgstr "Hasło:"
#: ../js/ui/components/keyring.js:120 #: ../js/ui/components/keyring.js:113
msgid "Type again:" msgid "Type again:"
msgstr "Proszę wpisać ponownie:" msgstr "Proszę wpisać ponownie:"
@@ -645,7 +628,6 @@ msgstr "Proszę wpisać ponownie:"
msgid "Connect" msgid "Connect"
msgstr "Połącz" msgstr "Połącz"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:231 #: ../js/ui/components/networkAgent.js:231
#: ../js/ui/components/networkAgent.js:243 #: ../js/ui/components/networkAgent.js:243
#: ../js/ui/components/networkAgent.js:271 #: ../js/ui/components/networkAgent.js:271
@@ -654,7 +636,6 @@ msgstr "Połącz"
msgid "Password: " msgid "Password: "
msgstr "Hasło: " msgstr "Hasło: "
#. static WEP
#: ../js/ui/components/networkAgent.js:236 #: ../js/ui/components/networkAgent.js:236
msgid "Key: " msgid "Key: "
msgstr "Klucz: " msgstr "Klucz: "
@@ -732,23 +713,19 @@ msgstr "Uwierzytelnij"
#. Translators: "that didn't work" refers to the fact that the #. Translators: "that didn't work" refers to the fact that the
#. * requested authentication was not gained; this can happen #. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password), #. * because of an authentication error (like invalid password),
#. * for instance. #. * for instance. */
#: ../js/ui/components/polkitAgent.js:271 ../js/ui/shellMountOperation.js:383 #: ../js/ui/components/polkitAgent.js:271 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "To nie zadziałało. Proszę spróbować ponownie." msgstr "To nie zadziałało. Proszę spróbować ponownie."
#. FIXME: We don't have a 'chat room' icon (bgo #653737) use
#. system-users for now as Empathy does.
#: ../js/ui/components/telepathyClient.js:240 #: ../js/ui/components/telepathyClient.js:240
msgid "Invitation" msgid "Invitation"
msgstr "Zaproszenie" msgstr "Zaproszenie"
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:300 #: ../js/ui/components/telepathyClient.js:300
msgid "Call" msgid "Call"
msgstr "Rozmowa" msgstr "Rozmowa"
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:316 #: ../js/ui/components/telepathyClient.js:316
msgid "File Transfer" msgid "File Transfer"
msgstr "Przesłanie pliku" msgstr "Przesłanie pliku"
@@ -765,85 +742,77 @@ msgstr "Anuluj wyciszenie"
msgid "Mute" msgid "Mute"
msgstr "Wycisz" msgstr "Wycisz"
#. Translators: Time in 24h format #. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:953 #: ../js/ui/components/telepathyClient.js:953
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" #. time string in 24h format. i.e. "Yesterday, 14:30" */
#: ../js/ui/components/telepathyClient.js:960 #: ../js/ui/components/telepathyClient.js:960
#, no-c-format
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "Wczoraj o %H%M" msgstr "Wczoraj o %H%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" #. string in 24h format. i.e. "Monday, 14:30" */
#: ../js/ui/components/telepathyClient.js:967 #: ../js/ui/components/telepathyClient.js:967
#, no-c-format
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" #. i.e. "May 25, 14:30" */
#: ../js/ui/components/telepathyClient.js:974 #: ../js/ui/components/telepathyClient.js:974
#, no-c-format
msgid "%B %d, %H%M" msgid "%B %d, %H%M"
msgstr "%d %B, %H%M" msgstr "%d %B, %H%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" #. i.e. "May 25 2012, 14:30" */
#: ../js/ui/components/telepathyClient.js:980 #: ../js/ui/components/telepathyClient.js:980
#, no-c-format
msgid "%B %d %Y, %H%M" msgid "%B %d %Y, %H%M"
msgstr "%d %B %Y, %H%M" msgstr "%d %B %Y, %H%M"
#. Translators: Time in 24h format #. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:986 #: ../js/ui/components/telepathyClient.js:986
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%l%M%p" msgstr "%l%M%p"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" #. time string in 12h format. i.e. "Yesterday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:993 #: ../js/ui/components/telepathyClient.js:993
#, no-c-format
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "Wczoraj o %l%M %p" msgstr "Wczoraj o %l%M %p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" #. string in 12h format. i.e. "Monday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1000 #: ../js/ui/components/telepathyClient.js:1000
#, no-c-format
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %l%M%p" msgstr "%A, %l%M%p"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" #. i.e. "May 25, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1007 #: ../js/ui/components/telepathyClient.js:1007
#, no-c-format
msgid "%B %d, %l%M %p" msgid "%B %d, %l%M %p"
msgstr "%d %B, %l%M %p" msgstr "%d %B, %l%M %p"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm" #. i.e. "May 25 2012, 2:30 pm"*/
#: ../js/ui/components/telepathyClient.js:1013 #: ../js/ui/components/telepathyClient.js:1013
#, no-c-format
msgid "%B %d %Y, %l%M %p" msgid "%B %d %Y, %l%M %p"
msgstr "%d %B %Y, %l%M %p" msgstr "%d %B %Y, %l%M %p"
#. 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/components/telepathyClient.js:1045 #: ../js/ui/components/telepathyClient.js:1045
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "Użytkownik %s jest teraz znany jako %s" msgstr "Użytkownik %s jest teraz znany jako %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/components/telepathyClient.js:1149 #: ../js/ui/components/telepathyClient.js:1149
#, javascript-format #, javascript-format
msgid "Invitation to %s" msgid "Invitation to %s"
@@ -851,7 +820,7 @@ msgstr "Zaproszenie do pokoju %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/components/telepathyClient.js:1157 #: ../js/ui/components/telepathyClient.js:1157
#, javascript-format #, javascript-format
msgid "%s is inviting you to join %s" msgid "%s is inviting you to join %s"
@@ -870,19 +839,19 @@ msgstr "Odmów"
msgid "Accept" msgid "Accept"
msgstr "Zaakceptuj" msgstr "Zaakceptuj"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1184 #: ../js/ui/components/telepathyClient.js:1184
#, javascript-format #, javascript-format
msgid "Video call from %s" msgid "Video call from %s"
msgstr "Wideorozmowa z użytkownikiem %s" msgstr "Wideorozmowa z użytkownikiem %s"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1187 #: ../js/ui/components/telepathyClient.js:1187
#, javascript-format #, javascript-format
msgid "Call from %s" msgid "Call from %s"
msgstr "Rozmowa z użytkownikiem %s" msgstr "Rozmowa z użytkownikiem %s"
#. translators: this is a button label (verb), not a noun #. translators: this is a button label (verb), not a noun */
#: ../js/ui/components/telepathyClient.js:1201 #: ../js/ui/components/telepathyClient.js:1201
msgid "Answer" msgid "Answer"
msgstr "Odbierz" msgstr "Odbierz"
@@ -891,13 +860,13 @@ msgstr "Odbierz"
#. * the contact's alias and the second one is the #. * the contact's alias and the second one is the
#. * 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/components/telepathyClient.js:1222 #: ../js/ui/components/telepathyClient.js:1222
#, javascript-format #, javascript-format
msgid "%s is sending you %s" msgid "%s is sending you %s"
msgstr "Użytkownik %s przysyła plik %s" msgstr "Użytkownik %s przysyła plik %s"
#. To translators: The parameter is the contact's alias #. To translators: The parameter is the contact's alias */
#: ../js/ui/components/telepathyClient.js:1251 #: ../js/ui/components/telepathyClient.js:1251
#, javascript-format #, javascript-format
msgid "%s would like permission to see when you are online" msgid "%s would like permission to see when you are online"
@@ -1009,7 +978,7 @@ msgid "Internal error"
msgstr "Błąd wewnętrzny" msgstr "Błąd wewnętrzny"
#. 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/components/telepathyClient.js:1393 #: ../js/ui/components/telepathyClient.js:1393
#, javascript-format #, javascript-format
msgid "Unable to connect to %s" msgid "Unable to connect to %s"
@@ -1023,7 +992,7 @@ msgstr "Wyświetl konto"
msgid "Unknown reason" msgid "Unknown reason"
msgstr "Nieznana przyczyna" msgstr "Nieznana przyczyna"
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:154 #: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:159
msgid "Windows" msgid "Windows"
msgstr "Okna" msgstr "Okna"
@@ -1031,8 +1000,6 @@ msgstr "Okna"
msgid "Show Applications" msgid "Show Applications"
msgstr "Wyświetl programy" msgstr "Wyświetl programy"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:445 #: ../js/ui/dash.js:445
msgid "Dash" msgid "Dash"
msgstr "Ulubione" msgstr "Ulubione"
@@ -1051,23 +1018,23 @@ msgstr "Ustawienia daty i czasu"
#. Translators: This is the date format to use when the calendar popup is #. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM"). #. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. #. */
#: ../js/ui/dateMenu.js:204 #: ../js/ui/dateMenu.js:204
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%A, %e %B %Y" msgstr "%A, %e %B %Y"
#: ../js/ui/endSessionDialog.js:64 #: ../js/ui/endSessionDialog.js:66
#, javascript-format #, javascript-format
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "Wylogowanie użytkownika %s" msgstr "Wylogowanie użytkownika %s"
#: ../js/ui/endSessionDialog.js:65 #: ../js/ui/endSessionDialog.js:67
msgctxt "title" msgctxt "title"
msgid "Log Out" msgid "Log Out"
msgstr "Wylogowanie" msgstr "Wylogowanie"
#: ../js/ui/endSessionDialog.js:67 #: ../js/ui/endSessionDialog.js:69
#, javascript-format #, javascript-format
msgid "%s will be logged out automatically in %d second." msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds." msgid_plural "%s will be logged out automatically in %d seconds."
@@ -1075,7 +1042,7 @@ msgstr[0] "Użytkownik %s zostanie wylogowany za %d sekundę."
msgstr[1] "Użytkownik %s zostanie wylogowany za %d sekundy." msgstr[1] "Użytkownik %s zostanie wylogowany za %d sekundy."
msgstr[2] "Użytkownik %s zostanie wylogowany za %d sekund." msgstr[2] "Użytkownik %s zostanie wylogowany za %d sekund."
#: ../js/ui/endSessionDialog.js:72 #: ../js/ui/endSessionDialog.js:74
#, javascript-format #, javascript-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."
@@ -1083,22 +1050,22 @@ msgstr[0] "Wylogowanie nastąpi za %d sekundę."
msgstr[1] "Wylogowanie nastąpi za %d sekundy." msgstr[1] "Wylogowanie nastąpi za %d sekundy."
msgstr[2] "Wylogowanie nastąpi za %d sekund." msgstr[2] "Wylogowanie nastąpi za %d sekund."
#: ../js/ui/endSessionDialog.js:78 #: ../js/ui/endSessionDialog.js:80
msgctxt "button" msgctxt "button"
msgid "Log Out" msgid "Log Out"
msgstr "Wyloguj" msgstr "Wyloguj"
#: ../js/ui/endSessionDialog.js:84 #: ../js/ui/endSessionDialog.js:86
msgctxt "title" msgctxt "title"
msgid "Power Off" msgid "Power Off"
msgstr "Wyłączenie komputera" msgstr "Wyłączenie komputera"
#: ../js/ui/endSessionDialog.js:85 #: ../js/ui/endSessionDialog.js:87
msgctxt "title" msgctxt "title"
msgid "Install Updates & Power Off" msgid "Install Updates & Power Off"
msgstr "Instalacja aktualizacji i wyłączenie komputera" msgstr "Instalacja aktualizacji i wyłączenie komputera"
#: ../js/ui/endSessionDialog.js:87 #: ../js/ui/endSessionDialog.js:89
#, javascript-format #, javascript-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."
@@ -1106,27 +1073,27 @@ msgstr[0] "Wyłączenie komputera nastąpi za %d sekundę."
msgstr[1] "Wyłączenie komputera nastąpi za %d sekundy." msgstr[1] "Wyłączenie komputera nastąpi za %d sekundy."
msgstr[2] "Wyłączenie komputera nastąpi za %d sekund." msgstr[2] "Wyłączenie komputera nastąpi za %d sekund."
#: ../js/ui/endSessionDialog.js:91 #: ../js/ui/endSessionDialog.js:93
msgctxt "checkbox" msgctxt "checkbox"
msgid "Install pending software updates" msgid "Install pending software updates"
msgstr "Instalowanie oczekujących aktualizacji oprogramowania" msgstr "Instalowanie oczekujących aktualizacji oprogramowania"
#: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111 #: ../js/ui/endSessionDialog.js:96 ../js/ui/endSessionDialog.js:113
msgctxt "button" msgctxt "button"
msgid "Restart" msgid "Restart"
msgstr "Uruchom ponownie" msgstr "Uruchom ponownie"
#: ../js/ui/endSessionDialog.js:96 #: ../js/ui/endSessionDialog.js:98
msgctxt "button" msgctxt "button"
msgid "Power Off" msgid "Power Off"
msgstr "Wyłącz komputer" msgstr "Wyłącz komputer"
#: ../js/ui/endSessionDialog.js:103 #: ../js/ui/endSessionDialog.js:105
msgctxt "title" msgctxt "title"
msgid "Restart" msgid "Restart"
msgstr "Ponowne uruchomienie" msgstr "Ponowne uruchomienie"
#: ../js/ui/endSessionDialog.js:105 #: ../js/ui/endSessionDialog.js:107
#, javascript-format #, javascript-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."
@@ -1134,12 +1101,12 @@ msgstr[0] "Ponowne uruchomienie systemu nastąpi za %d sekundę."
msgstr[1] "Ponowne uruchomienie systemu nastąpi za %d sekundy." msgstr[1] "Ponowne uruchomienie systemu nastąpi za %d sekundy."
msgstr[2] "Ponowne uruchomienie systemu nastąpi za %d sekund." msgstr[2] "Ponowne uruchomienie systemu nastąpi za %d sekund."
#: ../js/ui/endSessionDialog.js:119 #: ../js/ui/endSessionDialog.js:121
msgctxt "title" msgctxt "title"
msgid "Restart & Install Updates" msgid "Restart & Install Updates"
msgstr "Ponowne uruchomienie i instalacja aktualizacji" msgstr "Ponowne uruchomienie i instalacja aktualizacji"
#: ../js/ui/endSessionDialog.js:121 #: ../js/ui/endSessionDialog.js:123
#, javascript-format #, javascript-format
msgid "The system will automatically restart and install updates in %d second." msgid "The system will automatically restart and install updates in %d second."
msgid_plural "" msgid_plural ""
@@ -1151,43 +1118,43 @@ msgstr[1] ""
msgstr[2] "" msgstr[2] ""
"Ponowne uruchomienie systemu i instalacja aktualizacji nastąpi za %d sekund." "Ponowne uruchomienie systemu i instalacja aktualizacji nastąpi za %d sekund."
#: ../js/ui/endSessionDialog.js:127 #: ../js/ui/endSessionDialog.js:129
msgctxt "button" msgctxt "button"
msgid "Restart &amp; Install" msgid "Restart &amp; Install"
msgstr "Uruchom ponownie i zainstaluj" msgstr "Uruchom ponownie i zainstaluj"
#: ../js/ui/endSessionDialog.js:128 #: ../js/ui/endSessionDialog.js:130
msgctxt "button" msgctxt "button"
msgid "Install &amp; Power Off" msgid "Install &amp; Power Off"
msgstr "Zainstaluj i wyłącz komputer" msgstr "Zainstaluj i wyłącz komputer"
#: ../js/ui/endSessionDialog.js:129 #: ../js/ui/endSessionDialog.js:131
msgctxt "checkbox" msgctxt "checkbox"
msgid "Power off after updates are installed" msgid "Power off after updates are installed"
msgstr "Wyłączenie komputera po zainstalowaniu aktualizacji" msgstr "Wyłączenie komputera po zainstalowaniu aktualizacji"
#: ../js/ui/endSessionDialog.js:338 #: ../js/ui/endSessionDialog.js:315
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
msgstr "" msgstr ""
"Działanie na zasilaniu z akumulatora: proszę podłączyć komputer do prądu " "Działanie na zasilaniu z akumulatora: proszę podłączyć komputer do prądu "
"przed instalowaniem aktualizacji." "przed instalowaniem aktualizacji."
#: ../js/ui/endSessionDialog.js:355 #: ../js/ui/endSessionDialog.js:332
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
msgstr "Niektóre programy są używane lub posiadają niezapisane dane." msgstr "Niektóre programy są używane lub posiadają niezapisane dane."
#: ../js/ui/endSessionDialog.js:362 #: ../js/ui/endSessionDialog.js:339
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "Inni użytkownicy są zalogowani." msgstr "Inni użytkownicy są zalogowani."
#. Translators: Remote here refers to a remote session, like a ssh login #. Translators: Remote here refers to a remote session, like a ssh login */
#: ../js/ui/endSessionDialog.js:640 #: ../js/ui/endSessionDialog.js:619
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (zdalnie)" msgstr "%s (zdalnie)"
#. Translators: Console here refers to a tty like a VT console #. Translators: Console here refers to a tty like a VT console */
#: ../js/ui/endSessionDialog.js:643 #: ../js/ui/endSessionDialog.js:622
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (konsola)" msgstr "%s (konsola)"
@@ -1202,7 +1169,7 @@ msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "" msgstr ""
"Pobrać i zainstalować rozszerzenie \"%s\" z witryny extensions.gnome.org?" "Pobrać i zainstalować rozszerzenie \"%s\" z witryny extensions.gnome.org?"
#: ../js/ui/keyboard.js:692 ../js/ui/status/keyboard.js:523 #: ../js/ui/keyboard.js:692 ../js/ui/status/keyboard.js:339
msgid "Keyboard" msgid "Keyboard"
msgstr "Klawiatura" msgstr "Klawiatura"
@@ -1210,7 +1177,7 @@ msgstr "Klawiatura"
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Nie zainstalowano rozszerzeń" msgstr "Nie zainstalowano rozszerzeń"
#. Translators: argument is an extension UUID. #. Translators: argument is an extension UUID. */
#: ../js/ui/lookingGlass.js:697 #: ../js/ui/lookingGlass.js:697
#, javascript-format #, javascript-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
@@ -1224,16 +1191,16 @@ msgstr "Ukryj błędy"
msgid "Show Errors" msgid "Show Errors"
msgstr "Wyświetl błędy" msgstr "Wyświetl błędy"
#: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:71 #: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:62
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:166
msgid "Enabled" msgid "Enabled"
msgstr "Włączone" msgstr "Włączone"
#. Translators: this is for a network device that cannot be activated #. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode) #. because it's disabled by rfkill (airplane mode) */
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:179 #: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:169
#: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled" msgid "Disabled"
msgstr "Wyłączone" msgstr "Wyłączone"
@@ -1318,8 +1285,8 @@ msgstr "Podgląd"
#. Translators: this is the text displayed #. Translators: this is the text displayed
#. in the search entry when no search is #. in the search entry when no search is
#. active; it should not exceed ~30 #. active; it should not exceed ~30
#. characters. #. characters. */
#: ../js/ui/overview.js:246 #: ../js/ui/overview.js:250
msgid "Type to search…" msgid "Type to search…"
msgstr "Wyszukiwanie…" msgstr "Wyszukiwanie…"
@@ -1328,7 +1295,7 @@ msgid "Quit"
msgstr "Zakończ" msgstr "Zakończ"
#. 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:567 #: ../js/ui/panel.js:567
msgid "Activities" msgid "Activities"
msgstr "Podgląd" msgstr "Podgląd"
@@ -1337,11 +1304,6 @@ msgstr "Podgląd"
msgid "Top Bar" msgid "Top Bar"
msgstr "Górny pasek" msgstr "Górny pasek"
#. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:269 #: ../js/ui/popupMenu.js:269
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@@ -1359,7 +1321,7 @@ msgid "Restarting…"
msgstr "Ponowne uruchamianie…" msgstr "Ponowne uruchamianie…"
#. Translators: This is a time format for a date in #. Translators: This is a time format for a date in
#. long format #. long format */
#: ../js/ui/screenShield.js:88 #: ../js/ui/screenShield.js:88
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %e %B" msgstr "%A, %e %B"
@@ -1380,13 +1342,6 @@ msgstr "Zablokuj ekran"
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "Środowisko GNOME musi zablokować ekran" msgstr "Środowisko GNOME musi zablokować ekran"
#. We could not become modal, so we can't activate the
#. screenshield. The user is probably very upset at this
#. point, but any application using global grabs is broken
#. Just tell him to stop using this app
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:833 ../js/ui/screenShield.js:1304 #: ../js/ui/screenShield.js:833 ../js/ui/screenShield.js:1304
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Nie można zablokować" msgstr "Nie można zablokować"
@@ -1395,27 +1350,27 @@ msgstr "Nie można zablokować"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Blokowanie zostało zablokowane przez program" msgstr "Blokowanie zostało zablokowane przez program"
#: ../js/ui/search.js:594 #: ../js/ui/search.js:557
msgid "Searching…" msgid "Searching…"
msgstr "Wyszukiwanie…" msgstr "Wyszukiwanie…"
#: ../js/ui/search.js:596 #: ../js/ui/search.js:598
msgid "No results." msgid "No results."
msgstr "Brak wyników." msgstr "Brak wyników."
#: ../js/ui/shellEntry.js:25 #: ../js/ui/shellEntry.js:27
msgid "Copy" msgid "Copy"
msgstr "Skopiuj" msgstr "Skopiuj"
#: ../js/ui/shellEntry.js:30 #: ../js/ui/shellEntry.js:32
msgid "Paste" msgid "Paste"
msgstr "Wklej" msgstr "Wklej"
#: ../js/ui/shellEntry.js:97 #: ../js/ui/shellEntry.js:99
msgid "Show Text" msgid "Show Text"
msgstr "Wyświetl tekst" msgstr "Wyświetl tekst"
#: ../js/ui/shellEntry.js:99 #: ../js/ui/shellEntry.js:101
msgid "Hide Text" msgid "Hide Text"
msgstr "Ukryj tekst" msgstr "Ukryj tekst"
@@ -1471,8 +1426,6 @@ msgstr "Wysoki kontrast"
msgid "Large Text" msgid "Large Text"
msgstr "Duży tekst" msgstr "Duży tekst"
#. The Bluetooth menu only appears when Bluetooth is in use,
#. so just statically build it with a "Turn Off" menu item.
#: ../js/ui/status/bluetooth.js:49 #: ../js/ui/status/bluetooth.js:49
msgid "Bluetooth" msgid "Bluetooth"
msgstr "Bluetooth" msgstr "Bluetooth"
@@ -1504,27 +1457,23 @@ msgstr "Nie połączono"
msgid "Brightness" msgid "Brightness"
msgstr "Jasność" msgstr "Jasność"
#: ../js/ui/status/keyboard.js:547 #: ../js/ui/status/keyboard.js:406
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Wyświetl układ klawiatury" msgstr "Wyświetl układ klawiatury"
#: ../js/ui/status/location.js:65 #: ../js/ui/status/location.js:56
msgid "Location" msgid "Location"
msgstr "Położenie" msgstr "Położenie"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:177 #: ../js/ui/status/location.js:63 ../js/ui/status/location.js:167
msgid "Disable" msgid "Disable"
msgstr "Wyłącz" msgstr "Wyłącz"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:166
msgid "Privacy Settings"
msgstr "Ustawienia prywatności"
#: ../js/ui/status/location.js:176
msgid "In Use" msgid "In Use"
msgstr "Używane" msgstr "Używane"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:170
msgid "Enable" msgid "Enable"
msgstr "Włącz" msgstr "Włącz"
@@ -1542,7 +1491,7 @@ msgid "Connected"
msgstr "Połączono" msgstr "Połączono"
#. Translators: this is for network devices that are physically present but are not #. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu) #. under NetworkManager's control (and thus cannot be used in the menu) */
#: ../js/ui/status/network.js:463 #: ../js/ui/status/network.js:463
msgid "Unmanaged" msgid "Unmanaged"
msgstr "Niezarządzane" msgstr "Niezarządzane"
@@ -1555,19 +1504,19 @@ msgstr "Rozłączanie"
msgid "Connecting" msgid "Connecting"
msgstr "Łączenie" msgstr "Łączenie"
#. Translators: this is for network connections that require some kind of key or password #. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:474 #: ../js/ui/status/network.js:474
msgid "Authentication required" msgid "Authentication required"
msgstr "Wymagane jest uwierzytelnienie" msgstr "Wymagane jest uwierzytelnienie"
#. Translators: this is for devices that require some kind of firmware or kernel #. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing #. module, which is missing */
#: ../js/ui/status/network.js:482 #: ../js/ui/status/network.js:482
msgid "Firmware missing" msgid "Firmware missing"
msgstr "Brak oprogramowania sprzętowego" msgstr "Brak oprogramowania sprzętowego"
#. 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 */
#: ../js/ui/status/network.js:486 #: ../js/ui/status/network.js:486
msgid "Unavailable" msgid "Unavailable"
msgstr "Niedostępne" msgstr "Niedostępne"
@@ -1652,7 +1601,7 @@ msgstr "Hotspot jest aktywny"
msgid "connecting..." msgid "connecting..."
msgstr "łączenie…" msgstr "łączenie…"
#. Translators: this is for network connections that require some kind of key or password #. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:1412 #: ../js/ui/status/network.js:1412
msgid "authentication required" msgid "authentication required"
msgstr "wymagane jest uwierzytelnienie" msgstr "wymagane jest uwierzytelnienie"
@@ -1689,19 +1638,15 @@ msgstr "Ustawienia zasilania"
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Naładowany" msgstr "Naładowany"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
msgid "Estimating…" msgid "Estimating…"
msgstr "Obliczanie…" msgstr "Obliczanie…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:86
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "Pozostało: %d%02d (%d%%)" msgstr "Pozostało: %d%02d (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:91
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
@@ -1715,9 +1660,6 @@ msgstr "Urządzenie UPS"
msgid "Battery" msgid "Battery"
msgstr "Akumulator" msgstr "Akumulator"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
#: ../js/ui/status/rfkill.js:83 #: ../js/ui/status/rfkill.js:83
msgid "Airplane Mode" msgid "Airplane Mode"
msgstr "Tryb samolotowy" msgstr "Tryb samolotowy"
@@ -1766,11 +1708,11 @@ msgstr "Zaloguj jako inny użytkownik"
msgid "Unlock Window" msgid "Unlock Window"
msgstr "Okno odblokowania" msgstr "Okno odblokowania"
#: ../js/ui/viewSelector.js:158 #: ../js/ui/viewSelector.js:163
msgid "Applications" msgid "Applications"
msgstr "Programy" msgstr "Programy"
#: ../js/ui/viewSelector.js:162 #: ../js/ui/viewSelector.js:167
msgid "Search" msgid "Search"
msgstr "Wyszukiwanie" msgstr "Wyszukiwanie"
@@ -1785,7 +1727,7 @@ msgstr "Zachować te ustawienia ekranu?"
#. Translators: this and the following message should be limited in lenght, #. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels. #. to avoid ellipsizing the labels.
#. #. */
#: ../js/ui/windowManager.js:84 #: ../js/ui/windowManager.js:84
msgid "Revert Settings" msgid "Revert Settings"
msgstr "Przywróć ustawienia" msgstr "Przywróć ustawienia"
@@ -1870,19 +1812,19 @@ msgstr[2] "%u wejść"
msgid "System Sounds" msgid "System Sounds"
msgstr "Dźwięki systemowe" msgstr "Dźwięki systemowe"
#: ../src/main.c:373 #: ../src/main.c:371
msgid "Print version" msgid "Print version"
msgstr "Wyświetla wersję" msgstr "Wyświetla wersję"
#: ../src/main.c:379 #: ../src/main.c:377
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Tryb używany przez GDM dla ekranu logowania" msgstr "Tryb używany przez GDM dla ekranu logowania"
#: ../src/main.c:385 #: ../src/main.c:383
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Używa podanego trybu, np. \"gdm\" dla ekranu logowania" msgstr "Używa podanego trybu, np. \"gdm\" dla ekranu logowania"
#: ../src/main.c:391 #: ../src/main.c:389
msgid "List possible modes" msgid "List possible modes"
msgstr "Wyświetla listę możliwych trybów" msgstr "Wyświetla listę możliwych trybów"

File diff suppressed because it is too large Load Diff

444
po/ru.po

File diff suppressed because it is too large Load Diff

942
po/sk.po

File diff suppressed because it is too large Load Diff

513
po/sl.po

File diff suppressed because it is too large Load Diff

650
po/sv.po

File diff suppressed because it is too large Load Diff

1445
po/ta.po

File diff suppressed because it is too large Load Diff

491
po/tr.po

File diff suppressed because it is too large Load Diff

1063
po/uk.po

File diff suppressed because it is too large Load Diff

View File

@@ -102,6 +102,7 @@ shell_public_headers_h = \
shell-util.h \ shell-util.h \
shell-window-tracker.h \ shell-window-tracker.h \
shell-wm.h \ shell-wm.h \
shell-wobbly-effect.h \
$(NULL) $(NULL)
if HAVE_NETWORKMANAGER if HAVE_NETWORKMANAGER
@@ -167,6 +168,7 @@ libgnome_shell_sources = \
shell-util.c \ shell-util.c \
shell-window-tracker.c \ shell-window-tracker.c \
shell-wm.c \ shell-wm.c \
shell-wobbly-effect.c \
$(NULL) $(NULL)
libgnome_shell_built_sources = \ libgnome_shell_built_sources = \

View File

@@ -424,10 +424,7 @@ main (int argc, char **argv)
meta_set_wm_name (WM_NAME); meta_set_wm_name (WM_NAME);
meta_set_gnome_wm_keybindings (GNOME_WM_KEYBINDINGS); meta_set_gnome_wm_keybindings (GNOME_WM_KEYBINDINGS);
/* Prevent meta_init() from causing gtk to load the atk-bridge*/
g_setenv ("NO_AT_BRIDGE", "1", TRUE);
meta_init (); meta_init ();
g_unsetenv ("NO_AT_BRIDGE");
/* FIXME: Add gjs API to set this stuff and don't depend on the /* FIXME: Add gjs API to set this stuff and don't depend on the
* environment. These propagate to child processes. * environment. These propagate to child processes.

View File

@@ -735,21 +735,14 @@ shell_global_get_display (ShellGlobal *global)
* *
* Gets the list of #MetaWindowActor for the plugin's screen * Gets the list of #MetaWindowActor for the plugin's screen
* *
* Return value: (element-type Meta.WindowActor) (transfer container): the list of windows * Return value: (element-type Meta.WindowActor) (transfer none): the list of windows
*/ */
GList * GList *
shell_global_get_window_actors (ShellGlobal *global) shell_global_get_window_actors (ShellGlobal *global)
{ {
GList *filtered = NULL;
GList *l;
g_return_val_if_fail (SHELL_IS_GLOBAL (global), NULL); g_return_val_if_fail (SHELL_IS_GLOBAL (global), NULL);
for (l = meta_get_window_actors (global->meta_screen); l; l = l->next) return meta_get_window_actors (global->meta_screen);
if (!meta_window_actor_is_destroyed (l->data))
filtered = g_list_prepend (filtered, l->data);
return g_list_reverse (filtered);
} }
static void static void

216
src/shell-wobbly-effect.c Normal file
View File

@@ -0,0 +1,216 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* Copyright (C) 2014 Endless Mobile
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* Written by:
* Jasper St. Pierre <jstpierre@mecheye.net>
*/
#include "config.h"
#include "shell-wobbly-effect.h"
struct _ShellWobblyEffectPrivate
{
int bend_x;
int tex_width, tex_height;
CoglPipeline *pipeline;
int tex_width_uniform;
int bend_x_uniform;
};
typedef struct _ShellWobblyEffectPrivate ShellWobblyEffectPrivate;
G_DEFINE_TYPE_WITH_PRIVATE (ShellWobblyEffect, shell_wobbly_effect, CLUTTER_TYPE_OFFSCREEN_EFFECT);
static const gchar *wobbly_decls =
"uniform int tex_width;\n"
"uniform int bend_x;\n";
static const gchar *wobbly_pre =
"float bend_x_coord = (float(bend_x) / tex_width);\n"
"float interp = (1 - cos(cogl_tex_coord.y * 3.1415926)) / 2;\n"
"cogl_tex_coord.x -= (interp * bend_x_coord);\n";
/* XXX - clutter_effect_get_paint_volume is fucking terrible
* and I want to kill myself */
static gboolean
shell_wobbly_effect_get_paint_volume (ClutterEffect *effect,
ClutterPaintVolume *volume)
{
ShellWobblyEffect *self = SHELL_WOBBLY_EFFECT (effect);
ShellWobblyEffectPrivate *priv = shell_wobbly_effect_get_instance_private (self);
float cur_width;
cur_width = clutter_paint_volume_get_width (volume);
cur_width += ABS (priv->bend_x);
clutter_paint_volume_set_width (volume, cur_width);
/* Also modify the origin if it bends to the left. */
if (priv->bend_x < 0)
{
ClutterVertex origin;
clutter_paint_volume_get_origin (volume, &origin);
origin.x += priv->bend_x;
clutter_paint_volume_set_origin (volume, &origin);
}
return TRUE;
}
static gboolean
shell_wobbly_effect_pre_paint (ClutterEffect *effect)
{
ShellWobblyEffect *self = SHELL_WOBBLY_EFFECT (effect);
ShellWobblyEffectPrivate *priv = shell_wobbly_effect_get_instance_private (self);
if (!clutter_actor_meta_get_enabled (CLUTTER_ACTOR_META (effect)))
return FALSE;
/* If we're not doing any bending, we're not needed. */
if (priv->bend_x == 0)
return FALSE;
if (!clutter_feature_available (CLUTTER_FEATURE_SHADERS_GLSL))
{
/* if we don't have support for GLSL shaders then we
* forcibly disable the ActorMeta
*/
g_warning ("Unable to use the ShellWobblyEffect: the "
"graphics hardware or the current GL driver does not "
"implement support for the GLSL shading language. The "
"effect will be disabled.");
clutter_actor_meta_set_enabled (CLUTTER_ACTOR_META (effect), FALSE);
return FALSE;
}
if (!CLUTTER_EFFECT_CLASS (shell_wobbly_effect_parent_class)->pre_paint (effect))
return FALSE;
ClutterOffscreenEffect *offscreen_effect = CLUTTER_OFFSCREEN_EFFECT (effect);
CoglObject *texture;
texture = clutter_offscreen_effect_get_texture (offscreen_effect);
cogl_pipeline_set_layer_texture (priv->pipeline, 0, texture);
priv->tex_width = cogl_texture_get_width (texture);
priv->tex_height = cogl_texture_get_height (texture);
cogl_pipeline_set_uniform_1i (priv->pipeline, priv->tex_width_uniform, priv->tex_width);
return TRUE;
}
static void
shell_wobbly_effect_paint_target (ClutterOffscreenEffect *effect)
{
ShellWobblyEffect *self = SHELL_WOBBLY_EFFECT (effect);
ShellWobblyEffectPrivate *priv = shell_wobbly_effect_get_instance_private (self);
CoglFramebuffer *fb = cogl_get_draw_framebuffer ();
ClutterActor *actor;
guint8 paint_opacity;
actor = clutter_actor_meta_get_actor (CLUTTER_ACTOR_META (effect));
paint_opacity = clutter_actor_get_paint_opacity (actor);
cogl_pipeline_set_color4ub (priv->pipeline,
paint_opacity,
paint_opacity,
paint_opacity,
paint_opacity);
cogl_framebuffer_draw_rectangle (fb, priv->pipeline,
0, 0, priv->tex_width, priv->tex_height);
}
static void
shell_wobbly_effect_dispose (GObject *object)
{
ShellWobblyEffect *self = SHELL_WOBBLY_EFFECT (object);
ShellWobblyEffectPrivate *priv = shell_wobbly_effect_get_instance_private (self);
g_clear_pointer (&priv->pipeline, cogl_object_unref);
G_OBJECT_CLASS (shell_wobbly_effect_parent_class)->dispose (object);
}
static void
shell_wobbly_effect_class_init (ShellWobblyEffectClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
ClutterEffectClass *effect_class = CLUTTER_EFFECT_CLASS (klass);
ClutterOffscreenEffectClass *offscreen_class = CLUTTER_OFFSCREEN_EFFECT_CLASS (klass);
offscreen_class->paint_target = shell_wobbly_effect_paint_target;
effect_class->pre_paint = shell_wobbly_effect_pre_paint;
effect_class->get_paint_volume = shell_wobbly_effect_get_paint_volume;
object_class->dispose = shell_wobbly_effect_dispose;
}
static void
update_uniforms (ShellWobblyEffect *self)
{
ShellWobblyEffectPrivate *priv = shell_wobbly_effect_get_instance_private (self);
cogl_pipeline_set_uniform_1i (priv->pipeline, priv->bend_x_uniform, priv->bend_x);
}
static void
shell_wobbly_effect_init (ShellWobblyEffect *self)
{
static CoglPipeline *pipeline_template;
ShellWobblyEffectPrivate *priv = shell_wobbly_effect_get_instance_private (self);
if (G_UNLIKELY (pipeline_template == NULL))
{
CoglSnippet *snippet;
CoglContext *ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ());
pipeline_template = cogl_pipeline_new (ctx);
snippet = cogl_snippet_new (COGL_SNIPPET_HOOK_TEXTURE_LOOKUP, wobbly_decls, NULL);
cogl_snippet_set_pre (snippet, wobbly_pre);
cogl_pipeline_add_layer_snippet (pipeline_template, 0, snippet);
cogl_object_unref (snippet);
cogl_pipeline_set_layer_null_texture (pipeline_template,
0, /* layer number */
COGL_TEXTURE_TYPE_2D);
}
priv->pipeline = cogl_pipeline_copy (pipeline_template);
priv->tex_width_uniform = cogl_pipeline_get_uniform_location (priv->pipeline, "tex_width");
priv->bend_x_uniform = cogl_pipeline_get_uniform_location (priv->pipeline, "bend_x");
update_uniforms (self);
}
void
shell_wobbly_effect_set_bend_x (ShellWobblyEffect *self,
int bend_x)
{
ShellWobblyEffectPrivate *priv = shell_wobbly_effect_get_instance_private (self);
if (priv->bend_x == bend_x)
return;
priv->bend_x = bend_x;
update_uniforms (self);
clutter_effect_queue_repaint (CLUTTER_EFFECT (self));
}

55
src/shell-wobbly-effect.h Normal file
View File

@@ -0,0 +1,55 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* Copyright (C) 2014 Endless Mobile
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* Written by:
* Jasper St. Pierre <jstpierre@mecheye.net>
*/
#include <clutter/clutter.h>
#ifndef __SHELL_WOBBLY_EFFECT_H__
#define __SHELL_WOBBLY_EFFECT_H__
#define SHELL_TYPE_WOBBLY_EFFECT (shell_wobbly_effect_get_type ())
#define SHELL_WOBBLY_EFFECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_WOBBLY_EFFECT, ShellWobblyEffect))
#define SHELL_WOBBLY_EFFECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_WOBBLY_EFFECT, ShellWobblyEffectClass))
#define SHELL_IS_WOBBLY_EFFECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_WOBBLY_EFFECT))
#define SHELL_IS_WOBBLY_EFFECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_WOBBLY_EFFECT))
#define SHELL_WOBBLY_EFFECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_WOBBLY_EFFECT, ShellWobblyEffectClass))
typedef struct _ShellWobblyEffect ShellWobblyEffect;
typedef struct _ShellWobblyEffectClass ShellWobblyEffectClass;
struct _ShellWobblyEffect
{
ClutterOffscreenEffect parent;
};
struct _ShellWobblyEffectClass
{
ClutterOffscreenEffectClass parent_class;
};
GType shell_wobbly_effect_get_type (void) G_GNUC_CONST;
void shell_wobbly_effect_set_bend_x (ShellWobblyEffect *self,
int bend_x);
#endif /* __SHELL_WOBBLY_EFFECT_H__ */

View File

@@ -495,10 +495,6 @@ st_box_layout_get_paint_volume (ClutterActor *actor,
ClutterActorBox content_box; ClutterActorBox content_box;
ClutterVertex origin; ClutterVertex origin;
/* Setting the paint volume does not make sense when we don't have any allocation */
if (!clutter_actor_has_allocation (actor))
return FALSE;
/* When have an adjustment we are clipped to the content box, so base /* When have an adjustment we are clipped to the content box, so base
* our paint volume on that. */ * our paint volume on that. */
if (priv->hadjustment || priv->vadjustment) if (priv->hadjustment || priv->vadjustment)

View File

@@ -893,19 +893,11 @@ load_gicon_with_colors (StTextureCache *cache,
GtkIconTheme *theme; GtkIconTheme *theme;
GtkIconInfo *info; GtkIconInfo *info;
StTextureCachePolicy policy; StTextureCachePolicy policy;
GtkIconLookupFlags lookup_flags;
/* Do theme lookups in the main thread to avoid thread-unsafety */ /* Do theme lookups in the main thread to avoid thread-unsafety */
theme = cache->priv->icon_theme; theme = cache->priv->icon_theme;
lookup_flags = GTK_ICON_LOOKUP_USE_BUILTIN; info = gtk_icon_theme_lookup_by_gicon_for_scale (theme, icon, size, scale, GTK_ICON_LOOKUP_USE_BUILTIN);
if (clutter_get_default_text_direction () == CLUTTER_TEXT_DIRECTION_RTL)
lookup_flags |= GTK_ICON_LOOKUP_DIR_RTL;
else
lookup_flags |= GTK_ICON_LOOKUP_DIR_LTR;
info = gtk_icon_theme_lookup_by_gicon_for_scale (theme, icon, size, scale, lookup_flags);
if (info == NULL) if (info == NULL)
return NULL; return NULL;