Merge remote branch 'origin/master' into zeitgeist

This commit is contained in:
Federico Mena Quintero 2011-03-14 18:35:33 -04:00
commit 9551e1c2f5
57 changed files with 3742 additions and 1408 deletions

View File

@ -89,6 +89,8 @@ PKG_CHECK_MODULES(GNOME_SHELL, gio-2.0 >= $GIO_MIN_VERSION
telepathy-glib >= $TELEPATHY_GLIB_MIN_VERSION telepathy-glib >= $TELEPATHY_GLIB_MIN_VERSION
polkit-agent-1 >= $POLKIT_MIN_VERSION) polkit-agent-1 >= $POLKIT_MIN_VERSION)
PKG_CHECK_MODULES(SHELL_PERF_HELPER, gtk+-3.0 gio-2.0)
GJS_VERSION=`$PKG_CONFIG --modversion gjs-internals-1.0` GJS_VERSION=`$PKG_CONFIG --modversion gjs-internals-1.0`
AC_DEFINE_UNQUOTED([GJS_VERSION], ["$GJS_VERSION"], [The version of GJS we're linking to]) AC_DEFINE_UNQUOTED([GJS_VERSION], ["$GJS_VERSION"], [The version of GJS we're linking to])
AC_SUBST([GJS_VERSION], ["$GJS_VERSION"]) AC_SUBST([GJS_VERSION], ["$GJS_VERSION"])
@ -190,20 +192,6 @@ AC_ARG_ENABLE(jhbuild-wrapper-script,
AS_HELP_STRING([--jhbuild-wrapper-script=yes],[Make "gnome-shell" script work for jhbuild]),,enable_jhbuild_wrapper_script=no) AS_HELP_STRING([--jhbuild-wrapper-script=yes],[Make "gnome-shell" script work for jhbuild]),,enable_jhbuild_wrapper_script=no)
AM_CONDITIONAL(USE_JHBUILD_WRAPPER_SCRIPT, test "x$enable_jhbuild_wrapper_script" = xyes) AM_CONDITIONAL(USE_JHBUILD_WRAPPER_SCRIPT, test "x$enable_jhbuild_wrapper_script" = xyes)
AC_MSG_CHECKING([for Ubuntu])
if test -f /etc/ubuntu_version; then
enable_dynamic_mozjs_hack_default=yes
AC_MSG_RESULT([yes])
else
enable_dynamic_mozjs_hack_default=no
AC_MSG_RESULT([no])
fi
AC_ARG_ENABLE(dynamic-mozjs-hack,
AS_HELP_STRING([--dynamic-mozjs-hack=no],[Look for libmozjs.so using pkg-config]),,enable_dynamic_mozjs_hack=$enable_dynamic_mozjs_hack_default)
ENABLE_DYNAMIC_MOZJS_HACK=$enable_dynamic_mozjs_hack
AC_SUBST(ENABLE_DYNAMIC_MOZJS_HACK)
AC_CONFIG_FILES([ AC_CONFIG_FILES([
Makefile Makefile
data/Makefile data/Makefile

View File

@ -150,6 +150,8 @@ StTooltip StLabel {
-slider-height: 0.3em; -slider-height: 0.3em;
-slider-background-color: #333333; -slider-background-color: #333333;
-slider-border-color: #5f5f5f; -slider-border-color: #5f5f5f;
-slider-active-background-color: #76b0ec;
-slider-active-border-color: #1f6dbc;
-slider-border-width: 1px; -slider-border-width: 1px;
-slider-handle-radius: 0.5em; -slider-handle-radius: 0.5em;
} }
@ -464,15 +466,6 @@ StTooltip StLabel {
height: 24px; height: 24px;
} }
.view-tab-boxpointer {
-arrow-border-radius: 9px;
-arrow-background-color: rgba(0,0,0,0.5);
-arrow-border-width: 2px;
-arrow-border-color: rgba(255,255,255,0.5);
-arrow-base: 30px;
-arrow-rise: 15px;
}
#searchResults { #searchResults {
padding: 20px 10px 10px 10px; padding: 20px 10px 10px 10px;
spacing: 18px; spacing: 18px;
@ -1484,12 +1477,12 @@ StTooltip StLabel {
} }
.polkit-dialog-main-layout { .polkit-dialog-main-layout {
spacing: 10px; spacing: 24px;
padding: 10px; padding: 10px;
} }
.polkit-dialog-message-layout { .polkit-dialog-message-layout {
spacing: 10px; spacing: 16px;
} }
.polkit-dialog-headline { .polkit-dialog-headline {
@ -1513,6 +1506,10 @@ StTooltip StLabel {
padding-right: 10px; padding-right: 10px;
} }
.polkit-dialog-user-root-label {
color: #ff0000;
}
.polkit-dialog-password-label:ltr { .polkit-dialog-password-label:ltr {
padding-right: 0.5em; padding-right: 0.5em;
} }
@ -1528,33 +1525,21 @@ StTooltip StLabel {
} }
.polkit-dialog-error-label { .polkit-dialog-error-label {
font-size: 12px; font-size: 10pt;
color: white; color: #ffff00;
} padding-bottom: 8px;
.polkit-dialog-error-box {
padding-top: 15px;
spacing: 5px;
}
.polkit-dialog-checking-label {
font-size: 12px;
color: white;
}
.polkit-dialog-checking-box {
padding-top: 15px;
spacing: 5px;
} }
.polkit-dialog-info-label { .polkit-dialog-info-label {
font-size: 12px; font-size: 10pt;
color: white; padding-bottom: 8px;
} }
.polkit-dialog-info-box { /* intentionally left transparent to avoid dialog changing size */
padding-top: 15px; .polkit-dialog-null-label {
spacing: 5px; font-size: 10pt;
color: rgba(0,0,0,0);
padding-bottom: 8px;
} }

View File

@ -102,3 +102,24 @@ Inhibitor.prototype = {
}; };
DBus.proxifyPrototype(Inhibitor.prototype, InhibitorIface); DBus.proxifyPrototype(Inhibitor.prototype, InhibitorIface);
Signals.addSignalMethods(Inhibitor.prototype); Signals.addSignalMethods(Inhibitor.prototype);
// Not the full interface, only the methods we use
const SessionManagerIface = {
name: 'org.gnome.SessionManager',
methods: [
{ name: 'Logout', inSignature: 'u', outSignature: '' },
{ name: 'Shutdown', inSignature: '', outSignature: '' }
]
};
function SessionManager() {
this._init();
}
SessionManager.prototype = {
_init: function() {
DBus.session.proxifyObject(this, 'org.gnome.SessionManager', '/org/gnome/SessionManager');
}
};
DBus.proxifyPrototype(SessionManager.prototype, SessionManagerIface);

View File

@ -21,26 +21,77 @@ let METRICS = {
overviewFpsSubsequent: overviewFpsSubsequent:
{ description: "Frames rate when going to the overview, second time", { description: "Frames rate when going to the overview, second time",
units: "frames / s" }, units: "frames / s" },
overviewFps5Windows:
{ description: "Frames rate when going to the overview, 5 windows open",
units: "frames / s" },
overviewFps10Windows:
{ description: "Frames rate when going to the overview, 10 windows open",
units: "frames / s" },
overviewFps5Maximized:
{ description: "Frames rate when going to the overview, 5 maximized windows open",
units: "frames / s" },
overviewFps10Maximized:
{ description: "Frames rate when going to the overview, 10 maximized windows open",
units: "frames / s" },
overviewFps5Alpha:
{ description: "Frames rate when going to the overview, 5 alpha-transparent windows open",
units: "frames / s" },
overviewFps10Alpha:
{ description: "Frames rate when going to the overview, 10 alpha-transparent windows open",
units: "frames / s" },
usedAfterOverview: usedAfterOverview:
{ description: "Malloc'ed bytes after the overview is shown once", { description: "Malloc'ed bytes after the overview is shown once",
units: "B" }, units: "B" },
leakedAfterOverview: leakedAfterOverview:
{ description: "Additional malloc'ed bytes the second time the overview is shown", { description: "Additional malloc'ed bytes the second time the overview is shown",
units: "B" } units: "B" },
applicationsShowTimeFirst:
{ description: "Time to switch to applications view, first time",
units: "us" },
applicationsShowTimeSubsequent:
{ description: "Time to switch to applications view, second time",
units: "us"}
}; };
let WINDOW_CONFIGS = [
{ width: 640, height: 480, alpha: false, maximized: false, count: 1, metric: 'overviewFpsSubsequent' },
{ width: 640, height: 480, alpha: false, maximized: false, count: 5, metric: 'overviewFps5Windows' },
{ width: 640, height: 480, alpha: false, maximized: false, count: 10, metric: 'overviewFps10Windows' },
{ width: 640, height: 480, alpha: false, maximized: true, count: 5, metric: 'overviewFps5Maximized' },
{ width: 640, height: 480, alpha: false, maximized: true, count: 10, metric: 'overviewFps10Maximized' },
{ width: 640, height: 480, alpha: true, maximized: false, count: 5, metric: 'overviewFps5Alpha' },
{ width: 640, height: 480, alpha: true, maximized: false, count: 10, metric: 'overviewFps10Alpha' }
];
function run() { function run() {
Scripting.defineScriptEvent("overviewShowStart", "Starting to show the overview"); Scripting.defineScriptEvent("overviewShowStart", "Starting to show the overview");
Scripting.defineScriptEvent("overviewShowDone", "Overview finished showing"); Scripting.defineScriptEvent("overviewShowDone", "Overview finished showing");
Scripting.defineScriptEvent("afterShowHide", "After a show/hide cycle for the overview"); Scripting.defineScriptEvent("afterShowHide", "After a show/hide cycle for the overview");
Scripting.defineScriptEvent("applicationsShowStart", "Starting to switch to applications view");
Scripting.defineScriptEvent("applicationsShowDone", "Done switching to applications view");
Main.overview.connect('shown', function() { Main.overview.connect('shown', function() {
Scripting.scriptEvent('overviewShowDone'); Scripting.scriptEvent('overviewShowDone');
}); });
yield Scripting.sleep(1000); yield Scripting.sleep(1000);
yield Scripting.waitLeisure();
for (let i = 0; i < 2; i++) { for (let i = 0; i < 2 * WINDOW_CONFIGS.length; i++) {
// We go to the overview twice for each configuration; the first time
// to calculate the mipmaps for the windows, the second time to get
// a clean set of numbers.
if ((i % 2) == 0) {
let config = WINDOW_CONFIGS[i / 2];
yield Scripting.destroyTestWindows();
for (let k = 0; k < config.count; k++)
yield Scripting.createTestWindow(config.width, config.height, config.alpha, config.maximized);
yield Scripting.waitTestWindows();
yield Scripting.sleep(1000);
yield Scripting.waitLeisure();
}
Scripting.scriptEvent('overviewShowStart'); Scripting.scriptEvent('overviewShowStart');
Main.overview.show(); Main.overview.show();
@ -53,6 +104,21 @@ function run() {
Scripting.collectStatistics(); Scripting.collectStatistics();
Scripting.scriptEvent('afterShowHide'); Scripting.scriptEvent('afterShowHide');
} }
yield Scripting.destroyTestWindows();
yield Scripting.sleep(1000);
Main.overview.show();
yield Scripting.waitLeisure();
for (let i = 0; i < 2; i++) {
Scripting.scriptEvent('applicationsShowStart');
Main.overview.viewSelector.switchTab('applications');
yield Scripting.waitLeisure();
Scripting.scriptEvent('applicationsShowDone');
Main.overview.viewSelector.switchTab('windows');
yield Scripting.waitLeisure();
}
} }
let showingOverview = false; let showingOverview = false;
@ -64,6 +130,8 @@ let mallocUsedSize = 0;
let overviewShowCount = 0; let overviewShowCount = 0;
let firstOverviewUsedSize; let firstOverviewUsedSize;
let haveSwapComplete = false; let haveSwapComplete = false;
let applicationsShowStart;
let applicationsShowCount = 0;
function script_overviewShowStart(time) { function script_overviewShowStart(time) {
showingOverview = true; showingOverview = true;
@ -79,6 +147,18 @@ function script_overviewShowDone(time) {
finishedShowingOverview = true; finishedShowingOverview = true;
} }
function script_applicationsShowStart(time) {
applicationsShowStart = time;
}
function script_applicationsShowDone(time) {
applicationsShowCount++;
if (applicationsShowCount == 1)
METRICS.applicationsShowTimeFirst.value = time - applicationsShowStart;
else
METRICS.applicationsShowTimeSubsequent.value = time - applicationsShowStart;
}
function script_afterShowHide(time) { function script_afterShowHide(time) {
if (overviewShowCount == 1) { if (overviewShowCount == 1) {
METRICS.usedAfterOverview.value = mallocUsedSize; METRICS.usedAfterOverview.value = mallocUsedSize;
@ -113,9 +193,15 @@ function _frameDone(time) {
if (overviewShowCount == 1) { if (overviewShowCount == 1) {
METRICS.overviewLatencyFirst.value = overviewLatency; METRICS.overviewLatencyFirst.value = overviewLatency;
METRICS.overviewFpsFirst.value = fps; METRICS.overviewFpsFirst.value = fps;
} else { } else if (overviewShowCount == 2) {
METRICS.overviewLatencySubsequent.value = overviewLatency; METRICS.overviewLatencySubsequent.value = overviewLatency;
METRICS.overviewFpsSubsequent.value = fps; }
// Other than overviewFpsFirst, we collect FPS metrics the second
// we show each window configuration. overviewShowCount is 1,2,3...
if (overviewShowCount % 2 == 0) {
let config = WINDOW_CONFIGS[(overviewShowCount / 2) - 1];
METRICS[config.metric].value = fps;
} }
} }
} }

View File

@ -185,21 +185,6 @@ DateMenuButton.prototype = {
} }
let displayDate = new Date(); let displayDate = new Date();
let msecRemaining;
if (showSeconds) {
msecRemaining = 1000 - displayDate.getMilliseconds();
if (msecRemaining < 50) {
displayDate.setSeconds(displayDate.getSeconds() + 1);
msecRemaining += 1000;
}
} else {
msecRemaining = 60000 - (1000 * displayDate.getSeconds() +
displayDate.getMilliseconds());
if (msecRemaining < 500) {
displayDate.setMinutes(displayDate.getMinutes() + 1);
msecRemaining += 60000;
}
}
this._clock.set_text(displayDate.toLocaleFormat(clockFormat)); this._clock.set_text(displayDate.toLocaleFormat(clockFormat));
@ -209,7 +194,7 @@ DateMenuButton.prototype = {
dateFormat = _("%A %B %e, %Y"); dateFormat = _("%A %B %e, %Y");
this._date.set_text(displayDate.toLocaleFormat(dateFormat)); this._date.set_text(displayDate.toLocaleFormat(dateFormat));
Mainloop.timeout_add(msecRemaining, Lang.bind(this, this._updateClockAndDate)); Mainloop.timeout_add_seconds(1, Lang.bind(this, this._updateClockAndDate));
return false; return false;
}, },

View File

@ -64,6 +64,11 @@ function init() {
Tweener.init(); Tweener.init();
String.prototype.format = Format.format; String.prototype.format = Format.format;
// Work around https://bugzilla.mozilla.org/show_bug.cgi?id=508783
Date.prototype.toLocaleFormat = function(format) {
return Shell.util_format_date(format, this.getTime());
};
// Set the default direction for St widgets (this needs to be done before any use of St) // Set the default direction for St widgets (this needs to be done before any use of St)
if (Gettext_gtk30.gettext('default:LTR') == 'default:RTL') { if (Gettext_gtk30.gettext('default:LTR') == 'default:RTL') {
St.Widget.set_default_direction(St.TextDirection.RTL); St.Widget.set_default_direction(St.TextDirection.RTL);

View File

@ -263,9 +263,13 @@ function _checkWorkspaces() {
} }
let activeWorkspaceIndex = global.screen.get_active_workspace_index(); let activeWorkspaceIndex = global.screen.get_active_workspace_index();
let currentWorkspaceEmpty = emptyWorkspaces[activeWorkspaceIndex]; let removingCurrentWorkspace = (emptyWorkspaces[activeWorkspaceIndex] &&
activeWorkspaceIndex < emptyWorkspaces.length - 1);
// Don't enter the overview when removing multiple empty workspaces at startup
let showOverview = (removingCurrentWorkspace &&
!emptyWorkspaces.every(function(x) { return x; }));
if (currentWorkspaceEmpty) { if (removingCurrentWorkspace) {
// "Merge" the empty workspace we are removing with the one at the end // "Merge" the empty workspace we are removing with the one at the end
wm.blockAnimations(); wm.blockAnimations();
} }
@ -276,11 +280,11 @@ function _checkWorkspaces() {
global.screen.remove_workspace(_workspaces[i], global.get_current_time()); global.screen.remove_workspace(_workspaces[i], global.get_current_time());
} }
if (currentWorkspaceEmpty) { if (removingCurrentWorkspace) {
global.screen.get_workspace_by_index(global.screen.n_workspaces - 1).activate(global.get_current_time()); global.screen.get_workspace_by_index(global.screen.n_workspaces - 1).activate(global.get_current_time());
wm.unblockAnimations(); wm.unblockAnimations();
if (!overview.visible) if (!overview.visible && showOverview)
overview.show(); overview.show();
} }

View File

@ -180,10 +180,10 @@ Overview.prototype = {
this._group.add_actor(this.viewSelector.actor); this._group.add_actor(this.viewSelector.actor);
this._workspacesDisplay = new WorkspacesView.WorkspacesDisplay(); this._workspacesDisplay = new WorkspacesView.WorkspacesDisplay();
this.viewSelector.addViewTab(_("Windows"), this._workspacesDisplay.actor, 'text-x-generic'); this.viewSelector.addViewTab('windows', _("Windows"), this._workspacesDisplay.actor, 'text-x-generic');
let appView = new AppDisplay.AllAppDisplay(); let appView = new AppDisplay.AllAppDisplay();
this.viewSelector.addViewTab(_("Applications"), appView.actor, 'system-run'); this.viewSelector.addViewTab('applications', _("Applications"), appView.actor, 'system-run');
// Default search providers // Default search providers
this.viewSelector.addSearchProvider(new AppDisplay.AppSearchProvider()); this.viewSelector.addSearchProvider(new AppDisplay.AppSearchProvider());
@ -224,6 +224,7 @@ Overview.prototype = {
this._resetWindowSwitchTimeout(); this._resetWindowSwitchTimeout();
this._lastHoveredWindow = null; this._lastHoveredWindow = null;
DND.removeMonitor(this._dragMonitor); DND.removeMonitor(this._dragMonitor);
this.endItemDrag();
}, },
_resetWindowSwitchTimeout: function() { _resetWindowSwitchTimeout: function() {

View File

@ -176,37 +176,8 @@ PlacesManager.prototype = {
Util.spawn(['nautilus-connect-server']); Util.spawn(['nautilus-connect-server']);
}); });
let networkApp = null;
try {
networkApp = Shell.AppSystem.get_default().load_from_desktop_file('gnome-network-scheme.desktop');
} catch(e) {
try {
networkApp = Shell.AppSystem.get_default().load_from_desktop_file('network-scheme.desktop');
} catch(e) {
log('Cannot create "Network" item, .desktop file not found or corrupt.');
}
}
if (networkApp != null) {
this._network = new PlaceInfo('special:network', networkApp.get_name(),
function(size) {
return networkApp.create_icon_texture(size);
},
function (params) {
params = Params.parse(params, { workspace: null,
timestamp: 0 });
networkApp.launch_full(params.timestamp, [],
params.workspace ? params.workspace.index() : -1);
});
}
this._defaultPlaces.push(this._home); this._defaultPlaces.push(this._home);
this._defaultPlaces.push(this._desktopMenu); this._defaultPlaces.push(this._desktopMenu);
if (this._network)
this._defaultPlaces.push(this._network);
this._defaultPlaces.push(this._connect); this._defaultPlaces.push(this._connect);
/* /*

View File

@ -49,6 +49,8 @@ AuthenticationDialog.prototype = {
this.actionId = actionId; this.actionId = actionId;
this.message = message; this.message = message;
this.userNames = userNames; this.userNames = userNames;
this._wasDismissed = false;
this._completed = false;
let mainContentBox = new St.BoxLayout({ style_class: 'polkit-dialog-main-layout', let mainContentBox = new St.BoxLayout({ style_class: 'polkit-dialog-main-layout',
vertical: false }); vertical: false });
@ -100,32 +102,39 @@ AuthenticationDialog.prototype = {
Lang.bind(this, this._onUserChanged)); Lang.bind(this, this._onUserChanged));
// Special case 'root' // Special case 'root'
if (userName == 'root') let userIsRoot = false;
if (userName == 'root') {
userIsRoot = true;
userRealName = _('Administrator'); userRealName = _('Administrator');
}
// Work around Gdm.UserManager returning an empty string for the real name // Work around Gdm.UserManager returning an empty string for the real name
if (userRealName.length == 0) if (userRealName.length == 0)
userRealName = userName; userRealName = userName;
let userBox = new St.BoxLayout({ style_class: 'polkit-dialog-user-layout', if (userIsRoot) {
vertical: false }); let userLabel = new St.Label(({ style_class: 'polkit-dialog-user-root-label',
messageBox.add(userBox); text: userRealName }));
messageBox.add(userLabel);
this._userIcon = new St.Icon(); } else {
this._userIcon.hide(); let userBox = new St.BoxLayout({ style_class: 'polkit-dialog-user-layout',
userBox.add(this._userIcon, vertical: false });
{ x_fill: true, messageBox.add(userBox);
y_fill: false, this._userIcon = new St.Icon();
x_align: St.Align.END, this._userIcon.hide();
y_align: St.Align.START }); userBox.add(this._userIcon,
{ x_fill: true,
let userLabel = new St.Label(({ style_class: 'polkit-dialog-user-label', y_fill: false,
text: userRealName })); x_align: St.Align.END,
userBox.add(userLabel, y_align: St.Align.START });
{ x_fill: true, let userLabel = new St.Label(({ style_class: 'polkit-dialog-user-label',
y_fill: false, text: userRealName }));
x_align: St.Align.END, userBox.add(userLabel,
y_align: St.Align.MIDDLE }); { x_fill: true,
y_fill: false,
x_align: St.Align.END,
y_align: St.Align.MIDDLE });
}
this._onUserChanged(); this._onUserChanged();
@ -141,32 +150,28 @@ AuthenticationDialog.prototype = {
{expand: true }); {expand: true });
this._passwordBox.hide(); this._passwordBox.hide();
this._errorBox = new St.BoxLayout({ style_class: 'polkit-dialog-error-box' }); this._errorMessageLabel = new St.Label({ style_class: 'polkit-dialog-error-label' });
messageBox.add(this._errorBox); this._errorMessageLabel.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
let errorIcon = new St.Icon({ icon_name: 'dialog-error', this._errorMessageLabel.clutter_text.line_wrap = true;
icon_size: 24, messageBox.add(this._errorMessageLabel);
style_class: 'polkit-dialog-error-icon' }); this._errorMessageLabel.hide();
this._errorBox.add(errorIcon, { y_align: St.Align.MIDDLE });
this._errorMessage = new St.Label({ style_class: 'polkit-dialog-error-label' });
this._errorMessage.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
this._errorMessage.clutter_text.line_wrap = true;
this._errorBox.add(this._errorMessage, { expand: true,
y_align: St.Align.MIDDLE,
y_fill: true });
this._errorBox.hide();
this._infoBox = new St.BoxLayout({ style_class: 'polkit-dialog-info-box' }); this._infoMessageLabel = new St.Label({ style_class: 'polkit-dialog-info-label' });
messageBox.add(this._infoBox); this._infoMessageLabel.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
let infoIcon = new St.Icon({ icon_name: 'dialog-information', this._infoMessageLabel.clutter_text.line_wrap = true;
icon_size: 24, messageBox.add(this._infoMessageLabel);
style_class: 'polkit-dialog-info-icon' }); this._infoMessageLabel.hide();
this._infoBox.add(infoIcon, { y_align: St.Align.MIDDLE });
this._infoMessage = new St.Label({ style_class: 'polkit-dialog-info-label'}); /* text is intentionally non-blank otherwise the height is not the same as for
this._infoMessage.clutter_text.line_wrap = true; * infoMessage and errorMessageLabel - but it is still invisible because
this._infoBox.add(this._infoMessage, { expand: true, * gnome-shell.css sets the color to be transparent
y_align: St.Align.MIDDLE, */
y_fill: true }); this._nullMessageLabel = new St.Label({ style_class: 'polkit-dialog-null-label',
this._infoBox.hide(); text: 'abc'});
this._nullMessageLabel.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
this._nullMessageLabel.clutter_text.line_wrap = true;
messageBox.add(this._nullMessageLabel);
this._nullMessageLabel.show();
this.setButtons([{ label: _('Cancel'), this.setButtons([{ label: _('Cancel'),
action: Lang.bind(this, this.cancel), action: Lang.bind(this, this.cancel),
@ -234,8 +239,9 @@ AuthenticationDialog.prototype = {
this._session.response(response); this._session.response(response);
// When the user responds, dismiss already shown info and // When the user responds, dismiss already shown info and
// error texts (if any) // error texts (if any)
this._errorBox.hide(); this._errorMessageLabel.hide();
this._infoBox.hide(); this._infoMessageLabel.hide();
this._nullMessageLabel.show();
}, },
_onAuthenticateButtonPressed: function() { _onAuthenticateButtonPressed: function() {
@ -243,7 +249,24 @@ AuthenticationDialog.prototype = {
}, },
_onSessionCompleted: function(session, gainedAuthorization) { _onSessionCompleted: function(session, gainedAuthorization) {
this._passwordBox.hide(); if (this._completed)
return;
this._completed = true;
if (!gainedAuthorization) {
/* Unless we are showing an existing error message from the PAM
* module (the PAM module could be reporting the authentication
* error providing authentication-method specific information),
* show "Sorry, that didn't work. Please try again."
*/
if (!this._errorMessageLabel.visible && !this._wasDismissed) {
this._errorMessageLabel.set_text(_('Sorry, that didn\'t work. Please try again.'));
this._errorMessageLabel.show();
this._infoMessageLabel.hide();
this._nullMessageLabel.hide();
}
}
this._emitDone(!gainedAuthorization, false); this._emitDone(!gainedAuthorization, false);
}, },
@ -267,41 +290,49 @@ AuthenticationDialog.prototype = {
_onSessionShowError: function(session, text) { _onSessionShowError: function(session, text) {
this._passwordEntry.set_text(''); this._passwordEntry.set_text('');
this._errorMessage.set_text(text); this._errorMessageLabel.set_text(text);
this._errorBox.show(); this._errorMessageLabel.show();
this._infoMessageLabel.hide();
this._nullMessageLabel.hide();
this._ensureOpen(); this._ensureOpen();
}, },
_onSessionShowInfo: function(session, text) { _onSessionShowInfo: function(session, text) {
this._passwordEntry.set_text(''); this._passwordEntry.set_text('');
this._infoMessage.set_text(text); this._infoMessageLabel.set_text(text);
this._infoBox.show(); this._infoMessageLabel.show();
this._errorMessageLabel.hide();
this._nullMessageLabel.hide();
this._ensureOpen(); this._ensureOpen();
}, },
destroySession: function() { destroySession: function() {
if (this._session) { if (this._session) {
this._session.cancel(); if (!this._completed)
this._session.cancel();
this._session = null; this._session = null;
} }
}, },
_onUserChanged: function() { _onUserChanged: function() {
if (this._user.is_loaded) { if (this._user.is_loaded) {
let iconFileName = this._user.get_icon_file(); if (this._userIcon) {
let iconFile = Gio.file_new_for_path(iconFileName); let iconFileName = this._user.get_icon_file();
let icon; let iconFile = Gio.file_new_for_path(iconFileName);
if (iconFile.query_exists(null)) { let icon;
icon = new Gio.FileIcon({file: iconFile}); if (iconFile.query_exists(null)) {
} else { icon = new Gio.FileIcon({file: iconFile});
icon = new Gio.ThemedIcon({name: 'avatar-default'}); } else {
icon = new Gio.ThemedIcon({name: 'avatar-default'});
}
this._userIcon.set_gicon (icon);
this._userIcon.show();
} }
this._userIcon.set_gicon (icon);
this._userIcon.show();
} }
}, },
cancel: function() { cancel: function() {
this._wasDismissed = true;
this.close(global.get_current_time()); this.close(global.get_current_time());
this._emitDone(false, true); this._emitDone(false, true);
}, },

View File

@ -485,12 +485,30 @@ PopupSliderMenuItem.prototype = {
let sliderBorderColor = themeNode.get_color('-slider-border-color'); let sliderBorderColor = themeNode.get_color('-slider-border-color');
let sliderColor = themeNode.get_color('-slider-background-color'); let sliderColor = themeNode.get_color('-slider-background-color');
let sliderActiveBorderColor = themeNode.get_color('-slider-active-border-color');
let sliderActiveColor = themeNode.get_color('-slider-active-background-color');
cr.setSourceRGBA (
sliderActiveColor.red / 255,
sliderActiveColor.green / 255,
sliderActiveColor.blue / 255,
sliderActiveColor.alpha / 255);
cr.rectangle(handleRadius, (height - sliderHeight) / 2, sliderWidth * this._value, sliderHeight);
cr.fillPreserve();
cr.setSourceRGBA (
sliderActiveBorderColor.red / 255,
sliderActiveBorderColor.green / 255,
sliderActiveBorderColor.blue / 255,
sliderActiveBorderColor.alpha / 255);
cr.setLineWidth(sliderBorderWidth);
cr.stroke();
cr.setSourceRGBA ( cr.setSourceRGBA (
sliderColor.red / 255, sliderColor.red / 255,
sliderColor.green / 255, sliderColor.green / 255,
sliderColor.blue / 255, sliderColor.blue / 255,
sliderColor.alpha / 255); sliderColor.alpha / 255);
cr.rectangle(handleRadius, (height - sliderHeight) / 2, sliderWidth, sliderHeight); cr.rectangle(handleRadius + sliderWidth * this._value, (height - sliderHeight) / 2, sliderWidth * (1 - this._value), sliderHeight);
cr.fillPreserve(); cr.fillPreserve();
cr.setSourceRGBA ( cr.setSourceRGBA (
sliderBorderColor.red / 255, sliderBorderColor.red / 255,
@ -806,6 +824,8 @@ PopupMenuBase.prototype = {
let columnWidths = []; let columnWidths = [];
let items = this.box.get_children(); let items = this.box.get_children();
for (let i = 0; i < items.length; i++) { for (let i = 0; i < items.length; i++) {
if (!items[i].visible)
continue;
if (items[i]._delegate instanceof PopupBaseMenuItem || items[i]._delegate instanceof PopupMenuBase) { if (items[i]._delegate instanceof PopupBaseMenuItem || items[i]._delegate instanceof PopupMenuBase) {
let itemColumnWidths = items[i]._delegate.getColumnWidths(); let itemColumnWidths = items[i]._delegate.getColumnWidths();
for (let j = 0; j < itemColumnWidths.length; j++) { for (let j = 0; j < itemColumnWidths.length; j++) {

View File

@ -1,5 +1,6 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */ /* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
const DBus = imports.dbus;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const Mainloop = imports.mainloop; const Mainloop = imports.mainloop;
@ -68,6 +69,104 @@ function waitLeisure() {
}; };
} }
const PerfHelperIface = {
name: 'org.gnome.Shell.PerfHelper',
methods: [{ name: 'CreateWindow', inSignature: 'iibb', outSignature: '' },
{ name: 'WaitWindows', inSignature: '', outSignature: '' },
{ name: 'DestroyWindows', inSignature: '', outSignature: ''}]
};
const PerfHelper = function () {
this._init();
};
PerfHelper.prototype = {
_init: function() {
DBus.session.proxifyObject(this, 'org.gnome.Shell.PerfHelper', '/org/gnome/Shell/PerfHelper');
}
};
DBus.proxifyPrototype(PerfHelper.prototype, PerfHelperIface);
let _perfHelper = null;
function _getPerfHelper() {
if (_perfHelper == null)
_perfHelper = new PerfHelper();
return _perfHelper;
}
/**
* createTestWindow:
* @width: width of window, in pixels
* @height: height of window, in pixels
* @alpha: whether the window should be alpha transparent
* @maximized: whethe the window should be created maximized
*
* Creates a window using gnome-shell-perf-helper for testing purposes.
* While this function can be used with yield in an automation
* script to pause until the D-Bus call to the helper process returns,
* because of the normal X asynchronous mapping process, to actually wait
* until the window has been mapped and exposed, use waitTestWindows().
*/
function createTestWindow(width, height, alpha, maximized) {
let cb;
let perfHelper = _getPerfHelper();
perfHelper.CreateWindowRemote(width, height, alpha, maximized,
function(result, excp) {
if (cb)
cb();
});
return function(callback) {
cb = callback;
};
}
/**
* waitTestWindows:
*
* Used within an automation script to pause until all windows previously
* created with createTestWindow have been mapped and exposed.
*/
function waitTestWindows() {
let cb;
let perfHelper = _getPerfHelper();
perfHelper.WaitWindowsRemote(function(result, excp) {
if (cb)
cb();
});
return function(callback) {
cb = callback;
};
}
/**
* destroyTestWindows:
*
* Destroys all windows previously created with createTestWindow().
* While this function can be used with yield in an automation
* script to pause until the D-Bus call to the helper process returns,
* this doesn't guarantee that Mutter has actually finished the destroy
* process because of normal X asynchronicity.
*/
function destroyTestWindows() {
let cb;
let perfHelper = _getPerfHelper();
perfHelper.DestroyWindowsRemote(function(result, excp) {
if (cb)
cb();
});
return function(callback) {
cb = callback;
};
}
/** /**
* defineScriptEvent * defineScriptEvent
* @name: The event will be called script.<name> * @name: The event will be called script.<name>
@ -147,8 +246,8 @@ function _collect(scriptModule, outputFile) {
Shell.write_string_to_stream(out, '"events":\n'); Shell.write_string_to_stream(out, '"events":\n');
Shell.PerfLog.get_default().dump_events(out); Shell.PerfLog.get_default().dump_events(out);
let monitors = global.get_monitors() let monitors = global.get_monitors();
let primary = global.get_primary_monitor() let primary = global.get_primary_monitor();
Shell.write_string_to_stream(out, ',\n"monitors":\n['); Shell.write_string_to_stream(out, ',\n"monitors":\n[');
for (let i = 0; i < monitors.length; i++) { for (let i = 0; i < monitors.length; i++) {
let monitor = monitors[i]; let monitor = monitors[i];
@ -167,7 +266,21 @@ function _collect(scriptModule, outputFile) {
Shell.write_string_to_stream(out, ',\n"metrics":\n[ '); Shell.write_string_to_stream(out, ',\n"metrics":\n[ ');
let first = true; let first = true;
for (let name in scriptModule.METRICS) { for (let name in scriptModule.METRICS) {
let metric = scriptModule.METRICS[name]; let metric = scriptModule.METRICS[name];
// Extra checks here because JSON.stringify generates
// invalid JSON for undefined values
if (metric.description == null) {
log("Error: No description found for metric " + name);
continue;
}
if (metric.units == null) {
log("Error: No units found for metric " + name);
continue;
}
if (metric.value == null) {
log("Error: No value found for metric " + name);
continue;
}
if (!first) if (!first)
Shell.write_string_to_stream(out, ',\n '); Shell.write_string_to_stream(out, ',\n ');

View File

@ -471,9 +471,15 @@ PinNotification.prototype = {
this.connect('action-invoked', Lang.bind(this, function(self, action) { this.connect('action-invoked', Lang.bind(this, function(self, action) {
if (action == 'ok') { if (action == 'ok') {
if (this._numeric) if (this._numeric) {
this._applet.agent_reply_passkey(this._devicePath, parseInt(this._entry.text)); let num = parseInt(this._entry.text);
else if (isNaN(num)) {
// user reply was empty, or was invalid
// cancel the operation
num = -1;
}
this._applet.agent_reply_passkey(this._devicePath, num);
} else
this._applet.agent_reply_pincode(this._devicePath, this._entry.text); this._applet.agent_reply_pincode(this._devicePath, this._entry.text);
} else { } else {
if (this._numeric) if (this._numeric)

View File

@ -16,7 +16,6 @@ const Util = imports.misc.util;
const Gettext = imports.gettext.domain('gnome-shell'); const Gettext = imports.gettext.domain('gnome-shell');
const _ = Gettext.gettext; const _ = Gettext.gettext;
const VOLUME_MAX = 65536.0; /* PA_VOLUME_NORM */
const VOLUME_ADJUSTMENT_STEP = 0.05; /* Volume adjustment step in % */ const VOLUME_ADJUSTMENT_STEP = 0.05; /* Volume adjustment step in % */
const VOLUME_NOTIFY_ID = 1; const VOLUME_NOTIFY_ID = 1;
@ -37,6 +36,8 @@ Indicator.prototype = {
this._control.connect('default-source-changed', Lang.bind(this, this._readInput)); this._control.connect('default-source-changed', Lang.bind(this, this._readInput));
this._control.connect('stream-added', Lang.bind(this, this._maybeShowInput)); this._control.connect('stream-added', Lang.bind(this, this._maybeShowInput));
this._control.connect('stream-removed', Lang.bind(this, this._maybeShowInput)); this._control.connect('stream-removed', Lang.bind(this, this._maybeShowInput));
this._volumeMax = this._control.get_vol_max_norm();
this._volumeMaxAmplified = this._control.get_vol_max_amplified();
this._output = null; this._output = null;
this._outputVolumeId = 0; this._outputVolumeId = 0;
@ -72,9 +73,9 @@ Indicator.prototype = {
_getMaxVolume: function(property) { _getMaxVolume: function(property) {
if (this[property].get_can_decibel()) if (this[property].get_can_decibel())
return (VOLUME_MAX * 1.5); return this._volumeMaxAmplified;
else else
return VOLUME_MAX; return this._volumeMax;
}, },
_onScrollEvent: function(actor, event) { _onScrollEvent: function(actor, event) {

View File

@ -50,6 +50,7 @@ StatusMenuButton.prototype = {
this._user = this._gdm.get_user(GLib.get_user_name()); this._user = this._gdm.get_user(GLib.get_user_name());
this._presence = new GnomeSession.Presence(); this._presence = new GnomeSession.Presence();
this._presenceItems = {}; this._presenceItems = {};
this._session = new GnomeSession.SessionManager();
this._account_mgr = Tp.AccountManager.dup() this._account_mgr = Tp.AccountManager.dup()
@ -210,7 +211,7 @@ StatusMenuButton.prototype = {
_onQuitSessionActivate: function() { _onQuitSessionActivate: function() {
Main.overview.hide(); Main.overview.hide();
Util.spawn(['gnome-session-quit', '--logout']); this._session.LogoutRemote(0);
}, },
_onSuspendOrPowerOffActivate: function() { _onSuspendOrPowerOffActivate: function() {
@ -222,7 +223,7 @@ StatusMenuButton.prototype = {
this._upClient.suspend_sync(null); this._upClient.suspend_sync(null);
})); }));
} else { } else {
Util.spawn(['gnome-session-quit', '--power-off']); this._session.ShutdownRemote();
} }
}, },

View File

@ -77,14 +77,16 @@ BaseTab.prototype = {
Signals.addSignalMethods(BaseTab.prototype); Signals.addSignalMethods(BaseTab.prototype);
function ViewTab(label, pageActor, a11yIcon) { function ViewTab(id, label, pageActor, a11yIcon) {
this._init(label, pageActor, a11yIcon); this._init(id, label, pageActor, a11yIcon);
} }
ViewTab.prototype = { ViewTab.prototype = {
__proto__: BaseTab.prototype, __proto__: BaseTab.prototype,
_init: function(label, pageActor, a11yIcon) { _init: function(id, label, pageActor, a11yIcon) {
this.id = id;
let titleActor = new St.Button({ label: label, let titleActor = new St.Button({ label: label,
style_class: 'view-tab-title' }); style_class: 'view-tab-title' });
titleActor.connect('clicked', Lang.bind(this, this._activate)); titleActor.connect('clicked', Lang.bind(this, this._activate));
@ -383,8 +385,8 @@ ViewSelector.prototype = {
})); }));
}, },
addViewTab: function(title, pageActor, a11yIcon) { addViewTab: function(id, title, pageActor, a11yIcon) {
let viewTab = new ViewTab(title, pageActor, a11yIcon); let viewTab = new ViewTab(id, title, pageActor, a11yIcon);
this._tabs.push(viewTab); this._tabs.push(viewTab);
this._tabBox.add(viewTab.title); this._tabBox.add(viewTab.title);
this._addTab(viewTab); this._addTab(viewTab);
@ -433,6 +435,14 @@ ViewSelector.prototype = {
} }
}, },
switchTab: function(id) {
for (let i = 0; i < this._tabs.length; i++)
if (this._tabs[i].id == id) {
this._switchTab(this._tabs[i]);
break;
}
},
_switchDefaultTab: function() { _switchDefaultTab: function() {
if (this._tabs.length > 0) if (this._tabs.length > 0)
this._switchTab(this._tabs[0]); this._switchTab(this._tabs[0]);

View File

@ -320,6 +320,9 @@ WorkspacesView.prototype = {
Main.overview.disconnect(this._overviewShownId); Main.overview.disconnect(this._overviewShownId);
global.window_manager.disconnect(this._switchWorkspaceNotifyId); global.window_manager.disconnect(this._switchWorkspaceNotifyId);
if (this._inDrag)
this._dragEnd();
if (this._timeoutId) { if (this._timeoutId) {
Mainloop.source_remove(this._timeoutId); Mainloop.source_remove(this._timeoutId);
this._timeoutId = 0; this._timeoutId = 0;

View File

@ -1,3 +1,4 @@
af
ar ar
bg bg
ca ca

1004
po/af.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell.po.master\n" "Project-Id-Version: gnome-shell.po.master\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-03-08 14:59+0200\n" "POT-Creation-Date: 2011-03-13 19:13+0200\n"
"PO-Revision-Date: 2011-01-23 00:04+0200\n" "PO-Revision-Date: 2011-01-23 00:04+0200\n"
"Last-Translator: Kostas Papadimas <pkst@gnome.org>\n" "Last-Translator: Kostas Papadimas <pkst@gnome.org>\n"
"Language-Team: Greek <team@gnome.gr>\n" "Language-Team: Greek <team@gnome.gr>\n"
@ -622,7 +622,7 @@ msgstr "ΤΟΠΟΘΕΣΙΕΣ $ ΣΥΣΚΕΥΕΣ"
#. simply result in invisible toggle switches. #. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:618 #: ../js/ui/popupMenu.js:618
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-us" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:201 #: ../js/ui/runDialog.js:201
msgid "Please enter a command:" msgid "Please enter a command:"

View File

@ -2,6 +2,7 @@
# Copyright (C) 2009 gnome-shell's COPYRIGHT HOLDER # Copyright (C) 2009 gnome-shell's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell package. # This file is distributed under the same license as the gnome-shell package.
# Jorge González <jorgegonz@svn.gnome.org>, 2009, 2010, 2011. # Jorge González <jorgegonz@svn.gnome.org>, 2009, 2010, 2011.
# Benjamín Valero Espinosa <benjavalero@gmail.com>, 2011.
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2010, 2011. # Daniel Mustieles <daniel.mustieles@gmail.com>, 2010, 2011.
# #
msgid "" msgid ""
@ -9,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&component=general\n" "shell&component=general\n"
"POT-Creation-Date: 2011-03-09 18:36+0000\n" "POT-Creation-Date: 2011-03-09 21:00+0000\n"
"PO-Revision-Date: 2011-03-09 19:37+0100\n" "PO-Revision-Date: 2011-03-10 10:59+0100\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n" "Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Español <gnome-es-list@gnome.org>\n" "Language-Team: Español <gnome-es-list@gnome.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -95,16 +96,16 @@ msgid ""
"at the optimal thread count on the system." "at the optimal thread count on the system."
msgstr "" msgstr ""
"Establece la tubería GStreamer usada para codificar grabaciones. Sigue la " "Establece la tubería GStreamer usada para codificar grabaciones. Sigue la "
"sintaxis usada para gst-launch. La tubería debería tener un sumidero " "sintaxis usada para gst-launch. La tubería debería tener un sumidero («sink») "
"(«sink») de ensamblaje/sesensamblaje donde el vídeo que se está grabando se " "de ensamblaje/sesensamblaje donde el vídeo que se está grabando se graba. "
"graba. Generalmente tendrá un origen de ensamblado/desensamblado; la salida " "Generalmente tendrá un origen de ensamblado/desensamblado; la salida de ese "
"de ese punto se escibirá en el archivo de salida. No obstante la tubería " "punto se escibirá en el archivo de salida. No obstante la tubería también "
"también puede tomar parte en su propia salida; esto se puede usar para " "puede tomar parte en su propia salida; esto se puede usar para enviar la "
"enviar la salida a un servidor «icecast» a través de shout2send o similar. " "salida a un servidor «icecast» a través de shout2send o similar. Cuando no "
"Cuando no está establecido o lo está a un valor vacío, se usará la tubería " "está establecido o lo está a un valor vacío, se usará la tubería "
"predeterminada. Actualmente es «videorate ! vp8enc quality=10 speed=2 " "predeterminada. Actualmente es «videorate ! vp8enc quality=10 speed=2 threads="
"threads=%T ! queue ! webmmux» y greba en WEBM usando el códec VP8. Se usa %T " "%T ! queue ! webmmux» y greba en WEBM usando el códec VP8. Se usa %T como "
"como suposición para el número de hilos óptimos en el sistema." "suposición para el número de hilos óptimos en el sistema."
#: ../data/org.gnome.shell.gschema.xml.in.h:14 #: ../data/org.gnome.shell.gschema.xml.in.h:14
msgid "Show date in clock" msgid "Show date in clock"
@ -373,7 +374,7 @@ msgstr "Esta semana"
msgid "Next week" msgid "Next week"
msgstr "La semana que viene" msgstr "La semana que viene"
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:933 #: ../js/ui/dash.js:174 ../js/ui/messageTray.js:931
msgid "Remove" msgid "Remove"
msgstr "Quitar" msgstr "Quitar"
@ -476,7 +477,7 @@ msgstr "Pulse «Apagar» para salir de esas aplicaciones y apagar el sistema."
#: ../js/ui/endSessionDialog.js:76 #: ../js/ui/endSessionDialog.js:76
#, c-format #, c-format
msgid "The system will shut down automatically in %d seconds." msgid "The system will shut down automatically in %d seconds."
msgstr "El sistema se apagará automáticamente en %d segundo." msgstr "El sistema se apagará automáticamente en %d segundos."
#: ../js/ui/endSessionDialog.js:77 #: ../js/ui/endSessionDialog.js:77
msgid "Shutting down the system." msgid "Shutting down the system."
@ -538,11 +539,11 @@ msgstr "Ver fuente"
msgid "Web Page" msgid "Web Page"
msgstr "Página web" msgstr "Página web"
#: ../js/ui/messageTray.js:926 #: ../js/ui/messageTray.js:924
msgid "Open" msgid "Open"
msgstr "Abrir" msgstr "Abrir"
#: ../js/ui/messageTray.js:1963 #: ../js/ui/messageTray.js:1961
msgid "System Information" msgid "System Information"
msgstr "Información del sistema" msgstr "Información del sistema"
@ -618,39 +619,39 @@ msgstr "Buscando…"
msgid "No matching results." msgid "No matching results."
msgstr "No se encontró ningún resultado coincidente." msgstr "No se encontró ningún resultado coincidente."
#: ../js/ui/statusMenu.js:102 ../js/ui/statusMenu.js:166 #: ../js/ui/statusMenu.js:113 ../js/ui/statusMenu.js:177
msgid "Power Off..." msgid "Power Off..."
msgstr "Apagar…" msgstr "Apagar…"
#: ../js/ui/statusMenu.js:104 ../js/ui/statusMenu.js:165 #: ../js/ui/statusMenu.js:115 ../js/ui/statusMenu.js:176
msgid "Suspend" msgid "Suspend"
msgstr "Suspender" msgstr "Suspender"
#: ../js/ui/statusMenu.js:125 #: ../js/ui/statusMenu.js:136
msgid "Available" msgid "Available"
msgstr "Disponible" msgstr "Disponible"
#: ../js/ui/statusMenu.js:130 #: ../js/ui/statusMenu.js:141
msgid "Busy" msgid "Busy"
msgstr "Ocupado" msgstr "Ocupado"
#: ../js/ui/statusMenu.js:138 #: ../js/ui/statusMenu.js:149
msgid "My Account" msgid "My Account"
msgstr "Mi cuenta" msgstr "Mi cuenta"
#: ../js/ui/statusMenu.js:142 #: ../js/ui/statusMenu.js:153
msgid "System Settings" msgid "System Settings"
msgstr "Configuración del sistema" msgstr "Configuración del sistema"
#: ../js/ui/statusMenu.js:149 #: ../js/ui/statusMenu.js:160
msgid "Lock Screen" msgid "Lock Screen"
msgstr "Bloquear la pantalla" msgstr "Bloquear la pantalla"
#: ../js/ui/statusMenu.js:153 #: ../js/ui/statusMenu.js:164
msgid "Switch User" msgid "Switch User"
msgstr "Cambiar de usuario" msgstr "Cambiar de usuario"
#: ../js/ui/statusMenu.js:158 #: ../js/ui/statusMenu.js:169
msgid "Log Out..." msgid "Log Out..."
msgstr "Cerrar la sesión…" msgstr "Cerrar la sesión…"
@ -696,7 +697,7 @@ msgstr "Contraste alto"
#: ../js/ui/status/accessibility.js:182 #: ../js/ui/status/accessibility.js:182
msgid "Large Text" msgid "Large Text"
msgstr "<b>Texto:</b>" msgstr "Texto grande"
#: ../js/ui/status/bluetooth.js:42 ../js/ui/status/bluetooth.js:241 #: ../js/ui/status/bluetooth.js:42 ../js/ui/status/bluetooth.js:241
#: ../js/ui/status/bluetooth.js:337 ../js/ui/status/bluetooth.js:371 #: ../js/ui/status/bluetooth.js:337 ../js/ui/status/bluetooth.js:371
@ -851,7 +852,7 @@ msgstr[1] "horas"
#: ../js/ui/status/power.js:122 #: ../js/ui/status/power.js:122
msgid "minute" msgid "minute"
msgid_plural "minutes" msgid_plural "minutes"
msgstr[0] "miuto" msgstr[0] "minuto"
msgstr[1] "minutos" msgstr[1] "minutos"
#: ../js/ui/status/power.js:125 #: ../js/ui/status/power.js:125
@ -940,7 +941,7 @@ msgstr "%s está ocupado/a."
#. Translators: this is a time format string followed by a date. #. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your #. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds. #. locale, without seconds.
#: ../js/ui/telepathyClient.js:348 #: ../js/ui/telepathyClient.js:357
#, no-c-format #, no-c-format
msgid "Sent at %X on %A" msgid "Sent at %X on %A"
msgstr "Enviado a las %X el %A" msgstr "Enviado a las %X el %A"
@ -1223,8 +1224,8 @@ msgstr "%1$s: %2$s"
#~ "If true and format is either \"12-hour\" or \"24-hour\", display seconds " #~ "If true and format is either \"12-hour\" or \"24-hour\", display seconds "
#~ "in time." #~ "in time."
#~ msgstr "" #~ msgstr ""
#~ "Si es cierta y el formato es «12-horas» o «24-horas», muestra los " #~ "Si es cierta y el formato es «12-horas» o «24-horas», muestra los segundos "
#~ "segundos en la hora." #~ "en la hora."
#~ msgid "" #~ msgid ""
#~ "This key specifies the format used by the panel clock when the format key " #~ "This key specifies the format used by the panel clock when the format key "
@ -1241,19 +1242,18 @@ msgstr "%1$s: %2$s"
#~ msgid "" #~ msgid ""
#~ "This key specifies the hour format used by the panel clock. Possible " #~ "This key specifies the hour format used by the panel clock. Possible "
#~ "values are \"12-hour\", \"24-hour\", \"unix\" and \"custom\". If set to " #~ "values are \"12-hour\", \"24-hour\", \"unix\" and \"custom\". If set to "
#~ "\"unix\", the clock will display time in seconds since Epoch, i.e. " #~ "\"unix\", the clock will display time in seconds since Epoch, i.e. 1970-"
#~ "1970-01-01. If set to \"custom\", the clock will display time according " #~ "01-01. If set to \"custom\", the clock will display time according to the "
#~ "to the format specified in the custom_format key. Note that if set to " #~ "format specified in the custom_format key. Note that if set to either "
#~ "either \"unix\" or \"custom\", the show_date and show_seconds keys are " #~ "\"unix\" or \"custom\", the show_date and show_seconds keys are ignored."
#~ "ignored."
#~ msgstr "" #~ msgstr ""
#~ "Esta clave especifica el formato de la hora especificado por el reloj del " #~ "Esta clave especifica el formato de la hora especificado por el reloj del "
#~ "panel. Los valores posibles son «12-hour» (12 horas), «24-hour» (24 " #~ "panel. Los valores posibles son «12-hour» (12 horas), «24-hour» (24 horas), "
#~ "horas), «unix» y «custom» (personalizado).Si se establece a «unix» el " #~ "«unix» y «custom» (personalizado).Si se establece a «unix» el reloj mostrará "
#~ "reloj mostrará la hora en segundos desde la época (1 de enero de 1970). " #~ "la hora en segundos desde la época (1 de enero de 1970). Si se establece "
#~ "Si se establece a «custom» el reloj mostrará la hora según el formato " #~ "a «custom» el reloj mostrará la hora según el formato especificado en la "
#~ "especificado en la clave «custom_format». Note que si se establece a " #~ "clave «custom_format». Note que si se establece a «unix» o «custom» se "
#~ "«unix» o «custom» se ignoran las claves «show_date» y «show_seconds»." #~ "ignoran las claves «show_date» y «show_seconds»."
#~ msgid "Clock Format" #~ msgid "Clock Format"
#~ msgstr "Formato del reloj" #~ msgstr "Formato del reloj"

177
po/he.po
View File

@ -8,14 +8,17 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-03-02 19:57+0200\n" "POT-Creation-Date: 2011-03-10 18:43+0200\n"
"PO-Revision-Date: 2011-03-02 19:58+0200\n" "PO-Revision-Date: 2011-03-10 18:45+0200\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n" "Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"Language-Team: Hebrew <he@li.org>\n" "Language-Team: Hebrew <sh.yaron@gmail.com>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n>2||n==0) ? 1 :2;\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n>2||n==0) ? 1 :2;\n"
"X-Poedit-Language: Hebrew\n"
"X-Poedit-Country: ISRAEL\n"
"X-Poedit-SourceCharset: UTF-8\n"
#: ../data/gnome-shell.desktop.in.in.h:1 #: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell" msgid "GNOME Shell"
@ -188,27 +191,27 @@ msgid "Execution of '%s' failed:"
msgstr "ההרצה של '%s' נכשלה:" msgstr "ההרצה של '%s' נכשלה:"
#. Translators: Filter to display all applications #. Translators: Filter to display all applications
#: ../js/ui/appDisplay.js:195 #: ../js/ui/appDisplay.js:226
msgid "All" msgid "All"
msgstr "הכול" msgstr "הכול"
#: ../js/ui/appDisplay.js:282 #: ../js/ui/appDisplay.js:324
msgid "APPLICATIONS" msgid "APPLICATIONS"
msgstr "יישומים" msgstr "יישומים"
#: ../js/ui/appDisplay.js:312 #: ../js/ui/appDisplay.js:350
msgid "SETTINGS" msgid "SETTINGS"
msgstr "הגדרות" msgstr "הגדרות"
#: ../js/ui/appDisplay.js:572 #: ../js/ui/appDisplay.js:612
msgid "New Window" msgid "New Window"
msgstr "חלון חדש" msgstr "חלון חדש"
#: ../js/ui/appDisplay.js:575 #: ../js/ui/appDisplay.js:615
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "הסרה מהמועדפים" msgstr "הסרה מהמועדפים"
#: ../js/ui/appDisplay.js:576 #: ../js/ui/appDisplay.js:616
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "הוספה למועדפים" msgstr "הוספה למועדפים"
@ -368,7 +371,7 @@ msgstr "השבוע"
msgid "Next week" msgid "Next week"
msgstr "בשבוע הבא" msgstr "בשבוע הבא"
#: ../js/ui/dash.js:174 #: ../js/ui/dash.js:174 ../js/ui/messageTray.js:931
msgid "Remove" msgid "Remove"
msgstr "הסרה" msgstr "הסרה"
@ -376,54 +379,54 @@ msgstr "הסרה"
msgid "Date and Time Settings" msgid "Date and Time Settings"
msgstr "הגדרות תאריך ושעה" msgstr "הגדרות תאריך ושעה"
#: ../js/ui/dateMenu.js:110 #: ../js/ui/dateMenu.js:111
msgid "Open Calendar" msgid "Open Calendar"
msgstr "פתיחת היומן" msgstr "פתיחת היומן"
#. Translators: This is the time format with date used #. Translators: This is the time format with date used
#. in 24-hour mode. #. in 24-hour mode.
#: ../js/ui/dateMenu.js:162 #: ../js/ui/dateMenu.js:164
msgid "%a %b %e, %R:%S" msgid "%a %b %e, %R:%S"
msgstr "%a %b %e, %R:%S" msgstr "%a %b %e, %R:%S"
#: ../js/ui/dateMenu.js:163 #: ../js/ui/dateMenu.js:165
msgid "%a %b %e, %R" msgid "%a %b %e, %R"
msgstr "%a %b %e, %R" msgstr "%a %b %e, %R"
#. Translators: This is the time format without date used #. Translators: This is the time format without date used
#. in 24-hour mode. #. in 24-hour mode.
#: ../js/ui/dateMenu.js:167 #: ../js/ui/dateMenu.js:169
msgid "%a %R:%S" msgid "%a %R:%S"
msgstr "%a %R:%S" msgstr "%a %R:%S"
#: ../js/ui/dateMenu.js:168 #: ../js/ui/dateMenu.js:170
msgid "%a %R" msgid "%a %R"
msgstr "%a %R" msgstr "%a %R"
#. Translators: This is a time format with date used #. Translators: This is a time format with date used
#. for AM/PM. #. for AM/PM.
#: ../js/ui/dateMenu.js:175 #: ../js/ui/dateMenu.js:177
msgid "%a %b %e, %l:%M:%S %p" msgid "%a %b %e, %l:%M:%S %p"
msgstr "%a %b %e, %l:%M:%S %p" msgstr "%a %b %e, %l:%M:%S %p"
#: ../js/ui/dateMenu.js:176 #: ../js/ui/dateMenu.js:178
msgid "%a %b %e, %l:%M %p" msgid "%a %b %e, %l:%M %p"
msgstr "%a %b %e, %l:%M %p" msgstr "%a %b %e, %l:%M %p"
#. Translators: This is a time format without date used #. Translators: This is a time format without date used
#. for AM/PM. #. for AM/PM.
#: ../js/ui/dateMenu.js:180 #: ../js/ui/dateMenu.js:182
msgid "%a %l:%M:%S %p" msgid "%a %l:%M:%S %p"
msgstr "%a %l:%M:%S %p" msgstr "%a %l:%M:%S %p"
#: ../js/ui/dateMenu.js:181 #: ../js/ui/dateMenu.js:183
msgid "%a %l:%M %p" msgid "%a %l:%M %p"
msgstr "%a %l:%M %p" msgstr "%a %l:%M %p"
#. 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:207 #: ../js/ui/dateMenu.js:209
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%A ה־%e ב%B, %Y" msgstr "%A ה־%e ב%B, %Y"
@ -500,37 +503,41 @@ msgstr "אישור"
msgid "Cancel" msgid "Cancel"
msgstr "ביטול" msgstr "ביטול"
#: ../js/ui/lookingGlass.js:587 #: ../js/ui/lookingGlass.js:588
msgid "No extensions installed" msgid "No extensions installed"
msgstr "לא מותקנות הרחבות" msgstr "לא מותקנות הרחבות"
#: ../js/ui/lookingGlass.js:624 #: ../js/ui/lookingGlass.js:625
msgid "Enabled" msgid "Enabled"
msgstr "פעיל" msgstr "פעיל"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:626 ../src/gvc/gvc-mixer-control.c:1087 #: ../js/ui/lookingGlass.js:627 ../src/gvc/gvc-mixer-control.c:1087
msgid "Disabled" msgid "Disabled"
msgstr "מנוטרל" msgstr "מנוטרל"
#: ../js/ui/lookingGlass.js:628 #: ../js/ui/lookingGlass.js:629
msgid "Error" msgid "Error"
msgstr "שגיאה" msgstr "שגיאה"
#: ../js/ui/lookingGlass.js:630 #: ../js/ui/lookingGlass.js:631
msgid "Out of date" msgid "Out of date"
msgstr "לא בתוקף" msgstr "לא בתוקף"
#: ../js/ui/lookingGlass.js:655 #: ../js/ui/lookingGlass.js:656
msgid "View Source" msgid "View Source"
msgstr "צפייה במקור" msgstr "צפייה במקור"
#: ../js/ui/lookingGlass.js:661 #: ../js/ui/lookingGlass.js:662
msgid "Web Page" msgid "Web Page"
msgstr "דף אינטרנט" msgstr "דף אינטרנט"
#: ../js/ui/messageTray.js:1902 #: ../js/ui/messageTray.js:924
msgid "Open"
msgstr "פתיחה"
#: ../js/ui/messageTray.js:1961
msgid "System Information" msgid "System Information"
msgstr "פרטי המערכת" msgstr "פרטי המערכת"
@ -546,18 +553,28 @@ msgstr "חלונות"
msgid "Applications" msgid "Applications"
msgstr "יישומים" msgstr "יישומים"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/overview.js:202
msgid "Dash"
msgstr "חלונית"
#. TODO - _quit() doesn't really work on apps in state STARTING yet #. TODO - _quit() doesn't really work on apps in state STARTING yet
#: ../js/ui/panel.js:529 #: ../js/ui/panel.js:560
#, c-format #, c-format
msgid "Quit %s" msgid "Quit %s"
msgstr "יציאה מ־%s" msgstr "יציאה מ־%s"
#. Button on the left side of the panel. #. Button on the left side of the panel.
#. Translators: If there is no suitable word for "Activities" in your language, you can use the word for "Overview". #. Translators: If there is no suitable word for "Activities" in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:897 #: ../js/ui/panel.js:919
msgid "Activities" msgid "Activities"
msgstr "פעילויות" msgstr "פעילויות"
#: ../js/ui/panel.js:1020
msgid "Panel"
msgstr "לוח"
#: ../js/ui/placeDisplay.js:122 #: ../js/ui/placeDisplay.js:122
#, c-format #, c-format
msgid "Failed to unmount '%s'" msgid "Failed to unmount '%s'"
@ -580,7 +597,7 @@ msgstr "מקומות והתקנים"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle #. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will #. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches. #. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:612 #: ../js/ui/popupMenu.js:618
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -588,91 +605,91 @@ msgstr "toggle-switch-intl"
msgid "Please enter a command:" msgid "Please enter a command:"
msgstr "נא להזין פקודה:" msgstr "נא להזין פקודה:"
#: ../js/ui/searchDisplay.js:295 #: ../js/ui/searchDisplay.js:283
msgid "Searching..." msgid "Searching..."
msgstr "בחיפוש..." msgstr "בחיפוש..."
#: ../js/ui/searchDisplay.js:309 #: ../js/ui/searchDisplay.js:297
msgid "No matching results." msgid "No matching results."
msgstr "אין תוצאות תואמות." msgstr "אין תוצאות תואמות."
#: ../js/ui/statusMenu.js:102 ../js/ui/statusMenu.js:166 #: ../js/ui/statusMenu.js:113 ../js/ui/statusMenu.js:177
msgid "Power Off..." msgid "Power Off..."
msgstr "כיבוי..." msgstr "כיבוי..."
#: ../js/ui/statusMenu.js:104 ../js/ui/statusMenu.js:165 #: ../js/ui/statusMenu.js:115 ../js/ui/statusMenu.js:176
msgid "Suspend" msgid "Suspend"
msgstr "השהיה" msgstr "השהיה"
#: ../js/ui/statusMenu.js:125 #: ../js/ui/statusMenu.js:136
msgid "Available" msgid "Available"
msgstr "זמין" msgstr "זמין"
#: ../js/ui/statusMenu.js:130 #: ../js/ui/statusMenu.js:141
msgid "Busy" msgid "Busy"
msgstr "עסוק" msgstr "עסוק"
#: ../js/ui/statusMenu.js:138 #: ../js/ui/statusMenu.js:149
msgid "My Account" msgid "My Account"
msgstr "החשבון שלי" msgstr "החשבון שלי"
#: ../js/ui/statusMenu.js:142 #: ../js/ui/statusMenu.js:153
msgid "System Settings" msgid "System Settings"
msgstr "הגדרות המערכת" msgstr "הגדרות המערכת"
#: ../js/ui/statusMenu.js:149 #: ../js/ui/statusMenu.js:160
msgid "Lock Screen" msgid "Lock Screen"
msgstr "נעילת המסך" msgstr "נעילת המסך"
#: ../js/ui/statusMenu.js:153 #: ../js/ui/statusMenu.js:164
msgid "Switch User" msgid "Switch User"
msgstr "החלפת משתמש" msgstr "החלפת משתמש"
#: ../js/ui/statusMenu.js:158 #: ../js/ui/statusMenu.js:169
msgid "Log Out..." msgid "Log Out..."
msgstr "ניתוק..." msgstr "ניתוק..."
#: ../js/ui/status/accessibility.js:81 #: ../js/ui/status/accessibility.js:62
msgid "Zoom" msgid "Zoom"
msgstr "תקריב" msgstr "תקריב"
#: ../js/ui/status/accessibility.js:88 #: ../js/ui/status/accessibility.js:69
msgid "Screen Reader" msgid "Screen Reader"
msgstr "מקריא מסך" msgstr "מקריא מסך"
#: ../js/ui/status/accessibility.js:92 #: ../js/ui/status/accessibility.js:73
msgid "Screen Keyboard" msgid "Screen Keyboard"
msgstr "מקלדת מסך" msgstr "מקלדת מסך"
#: ../js/ui/status/accessibility.js:96 #: ../js/ui/status/accessibility.js:77
msgid "Visual Alerts" msgid "Visual Alerts"
msgstr "התראות חזותיות" msgstr "התראות חזותיות"
#: ../js/ui/status/accessibility.js:99 #: ../js/ui/status/accessibility.js:80
msgid "Sticky Keys" msgid "Sticky Keys"
msgstr "מקשים דביקים" msgstr "מקשים דביקים"
#: ../js/ui/status/accessibility.js:102 #: ../js/ui/status/accessibility.js:83
msgid "Slow Keys" msgid "Slow Keys"
msgstr "מקשים אטיים" msgstr "מקשים אטיים"
#: ../js/ui/status/accessibility.js:105 #: ../js/ui/status/accessibility.js:86
msgid "Bounce Keys" msgid "Bounce Keys"
msgstr "מקשים קופצים" msgstr "מקשים קופצים"
#: ../js/ui/status/accessibility.js:108 #: ../js/ui/status/accessibility.js:89
msgid "Mouse Keys" msgid "Mouse Keys"
msgstr "מקשי עכבר" msgstr "מקשי עכבר"
#: ../js/ui/status/accessibility.js:112 #: ../js/ui/status/accessibility.js:93
msgid "Universal Access Settings" msgid "Universal Access Settings"
msgstr "הגדרות גישה אוניברסלית" msgstr "הגדרות גישה אוניברסלית"
#: ../js/ui/status/accessibility.js:164 #: ../js/ui/status/accessibility.js:145
msgid "High Contrast" msgid "High Contrast"
msgstr "ניגודיות גבוהה" msgstr "ניגודיות גבוהה"
#: ../js/ui/status/accessibility.js:209 #: ../js/ui/status/accessibility.js:182
msgid "Large Text" msgid "Large Text"
msgstr "טקסט גדול" msgstr "טקסט גדול"
@ -843,51 +860,51 @@ msgstr[0] "דקה אחת נותרה"
msgstr[1] "%d דקות נותרו" msgstr[1] "%d דקות נותרו"
msgstr[2] "שתי דקות נותרו" msgstr[2] "שתי דקות נותרו"
#: ../js/ui/status/power.js:241 #: ../js/ui/status/power.js:227
msgid "AC adapter" msgid "AC adapter"
msgstr "מתאם חשמל" msgstr "מתאם חשמל"
#: ../js/ui/status/power.js:243 #: ../js/ui/status/power.js:229
msgid "Laptop battery" msgid "Laptop battery"
msgstr "סוללת נייד" msgstr "סוללת נייד"
#: ../js/ui/status/power.js:245 #: ../js/ui/status/power.js:231
msgid "UPS" msgid "UPS"
msgstr "אל־פסק" msgstr "אל־פסק"
#: ../js/ui/status/power.js:247 #: ../js/ui/status/power.js:233
msgid "Monitor" msgid "Monitor"
msgstr "צג" msgstr "צג"
#: ../js/ui/status/power.js:249 #: ../js/ui/status/power.js:235
msgid "Mouse" msgid "Mouse"
msgstr "עכבר" msgstr "עכבר"
#: ../js/ui/status/power.js:251 #: ../js/ui/status/power.js:237
msgid "Keyboard" msgid "Keyboard"
msgstr "מקלדת" msgstr "מקלדת"
#: ../js/ui/status/power.js:253 #: ../js/ui/status/power.js:239
msgid "PDA" msgid "PDA"
msgstr "מחשב כף יד" msgstr "מחשב כף יד"
#: ../js/ui/status/power.js:255 #: ../js/ui/status/power.js:241
msgid "Cell phone" msgid "Cell phone"
msgstr "טלפון סלולרי" msgstr "טלפון סלולרי"
#: ../js/ui/status/power.js:257 #: ../js/ui/status/power.js:243
msgid "Media player" msgid "Media player"
msgstr "נגן מדיה" msgstr "נגן מדיה"
#: ../js/ui/status/power.js:259 #: ../js/ui/status/power.js:245
msgid "Tablet" msgid "Tablet"
msgstr "טבלת שליטה" msgstr "טבלת שליטה"
#: ../js/ui/status/power.js:261 #: ../js/ui/status/power.js:247
msgid "Computer" msgid "Computer"
msgstr "מחשב" msgstr "מחשב"
#: ../js/ui/status/power.js:263 ../src/shell-app-system.c:1013 #: ../js/ui/status/power.js:249 ../src/shell-app-system.c:1013
msgid "Unknown" msgid "Unknown"
msgstr "לא ידוע" msgstr "לא ידוע"
@ -922,7 +939,7 @@ msgstr "%s עסוק/ה."
#. Translators: this is a time format string followed by a date. #. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your #. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds. #. locale, without seconds.
#: ../js/ui/telepathyClient.js:348 #: ../js/ui/telepathyClient.js:357
#, no-c-format #, no-c-format
msgid "Sent at %X on %A" msgid "Sent at %X on %A"
msgstr "נשלח ב־%X בשעה %A" msgstr "נשלח ב־%X בשעה %A"
@ -931,16 +948,20 @@ msgstr "נשלח ב־%X בשעה %A"
#. 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/viewSelector.js:103 #: ../js/ui/viewSelector.js:117
msgid "Type to search..." msgid "Type to search..."
msgstr "יש להקליד כדי לחפש..." msgstr "יש להקליד כדי לחפש..."
#: ../js/ui/windowAttentionHandler.js:43 #: ../js/ui/viewSelector.js:137 ../src/shell-util.c:250
msgid "Search"
msgstr "חיפוש"
#: ../js/ui/windowAttentionHandler.js:42
#, c-format #, c-format
msgid "%s has finished starting" msgid "%s has finished starting"
msgstr "%s סיים את תהליך ההתחלה" msgstr "%s סיים את תהליך ההתחלה"
#: ../js/ui/windowAttentionHandler.js:45 #: ../js/ui/windowAttentionHandler.js:44
#, c-format #, c-format
msgid "'%s' is ready" msgid "'%s' is ready"
msgstr "'%s' מוכן" msgstr "'%s' מוכן"
@ -969,11 +990,15 @@ msgstr[2] "2 קלטים"
msgid "System Sounds" msgid "System Sounds"
msgstr "צלילי מערכת" msgstr "צלילי מערכת"
#: ../src/shell-global.c:1298 #: ../src/main.c:395
msgid "Print version"
msgstr "Print version"
#: ../src/shell-global.c:1308
msgid "Less than a minute ago" msgid "Less than a minute ago"
msgstr "לפני פחות מדקה" msgstr "לפני פחות מדקה"
#: ../src/shell-global.c:1302 #: ../src/shell-global.c:1312
#, c-format #, c-format
msgid "%d minute ago" msgid "%d minute ago"
msgid_plural "%d minutes ago" msgid_plural "%d minutes ago"
@ -981,7 +1006,7 @@ msgstr[0] "לפני דקה"
msgstr[1] "לפני %d דקות" msgstr[1] "לפני %d דקות"
msgstr[2] "לפני 2 דקות" msgstr[2] "לפני 2 דקות"
#: ../src/shell-global.c:1307 #: ../src/shell-global.c:1317
#, c-format #, c-format
msgid "%d hour ago" msgid "%d hour ago"
msgid_plural "%d hours ago" msgid_plural "%d hours ago"
@ -989,7 +1014,7 @@ msgstr[0] "לפני שעה"
msgstr[1] "לפני %d שעות" msgstr[1] "לפני %d שעות"
msgstr[2] "לפני שעתיים" msgstr[2] "לפני שעתיים"
#: ../src/shell-global.c:1312 #: ../src/shell-global.c:1322
#, c-format #, c-format
msgid "%d day ago" msgid "%d day ago"
msgid_plural "%d days ago" msgid_plural "%d days ago"
@ -997,7 +1022,7 @@ msgstr[0] "לפני יום"
msgstr[1] "לפני %d ימים" msgstr[1] "לפני %d ימים"
msgstr[2] "לפני יומיים" msgstr[2] "לפני יומיים"
#: ../src/shell-global.c:1317 #: ../src/shell-global.c:1327
#, c-format #, c-format
msgid "%d week ago" msgid "%d week ago"
msgid_plural "%d weeks ago" msgid_plural "%d weeks ago"
@ -1019,10 +1044,6 @@ msgstr "תיקיית הבית"
msgid "File System" msgid "File System"
msgstr "מערכת הקבצים" msgstr "מערכת הקבצים"
#: ../src/shell-util.c:250
msgid "Search"
msgstr "חיפוש"
#. Translators: the first string is the name of a gvfs #. Translators: the first string is the name of a gvfs
#. * method, and the second string is a path. For #. * method, and the second string is a path. For
#. * example, "Trash: some-directory". It means that the #. * example, "Trash: some-directory". It means that the

173
po/it.po
View File

@ -8,8 +8,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: 2011-03-02 13:37+0100\n" "POT-Creation-Date: 2011-03-11 01:54+0100\n"
"PO-Revision-Date: 2011-03-02 13:37+0100\n" "PO-Revision-Date: 2011-03-11 01:56+0100\n"
"Last-Translator: Luca Ferretti <lferrett@gnome.org>\n" "Last-Translator: Luca Ferretti <lferrett@gnome.org>\n"
"Language-Team: Italian <tp@lists.linux.it>\n" "Language-Team: Italian <tp@lists.linux.it>\n"
"Language: it\n" "Language: it\n"
@ -194,27 +194,27 @@ msgid "Execution of '%s' failed:"
msgstr "Esecuzione di «%s» non riuscita:" msgstr "Esecuzione di «%s» non riuscita:"
#. Translators: Filter to display all applications #. Translators: Filter to display all applications
#: ../js/ui/appDisplay.js:195 #: ../js/ui/appDisplay.js:226
msgid "All" msgid "All"
msgstr "Tutte" msgstr "Tutte"
#: ../js/ui/appDisplay.js:282 #: ../js/ui/appDisplay.js:324
msgid "APPLICATIONS" msgid "APPLICATIONS"
msgstr "APPLICAZIONI" msgstr "APPLICAZIONI"
#: ../js/ui/appDisplay.js:312 #: ../js/ui/appDisplay.js:350
msgid "SETTINGS" msgid "SETTINGS"
msgstr "IMPOSTAZIONI" msgstr "IMPOSTAZIONI"
#: ../js/ui/appDisplay.js:572 #: ../js/ui/appDisplay.js:612
msgid "New Window" msgid "New Window"
msgstr "Nuova finestra" msgstr "Nuova finestra"
#: ../js/ui/appDisplay.js:575 #: ../js/ui/appDisplay.js:615
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "Rimuovi dai preferiti" msgstr "Rimuovi dai preferiti"
#: ../js/ui/appDisplay.js:576 #: ../js/ui/appDisplay.js:616
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "Aggiungi ai preferiti" msgstr "Aggiungi ai preferiti"
@ -376,7 +376,7 @@ msgstr "Questa settimana"
msgid "Next week" msgid "Next week"
msgstr "Prossima settimana" msgstr "Prossima settimana"
#: ../js/ui/dash.js:174 #: ../js/ui/dash.js:174 ../js/ui/messageTray.js:931
msgid "Remove" msgid "Remove"
msgstr "Rimuovi" msgstr "Rimuovi"
@ -384,54 +384,54 @@ msgstr "Rimuovi"
msgid "Date and Time Settings" msgid "Date and Time Settings"
msgstr "Impostazioni data e ora" msgstr "Impostazioni data e ora"
#: ../js/ui/dateMenu.js:110 #: ../js/ui/dateMenu.js:111
msgid "Open Calendar" msgid "Open Calendar"
msgstr "Apri calendario" msgstr "Apri calendario"
#. Translators: This is the time format with date used #. Translators: This is the time format with date used
#. in 24-hour mode. #. in 24-hour mode.
#: ../js/ui/dateMenu.js:162 #: ../js/ui/dateMenu.js:164
msgid "%a %b %e, %R:%S" msgid "%a %b %e, %R:%S"
msgstr "%a %e %b, %k.%M.%S" msgstr "%a %e %b, %k.%M.%S"
#: ../js/ui/dateMenu.js:163 #: ../js/ui/dateMenu.js:165
msgid "%a %b %e, %R" msgid "%a %b %e, %R"
msgstr "%a %e %b, %k.%M" msgstr "%a %e %b, %k.%M"
#. Translators: This is the time format without date used #. Translators: This is the time format without date used
#. in 24-hour mode. #. in 24-hour mode.
#: ../js/ui/dateMenu.js:167 #: ../js/ui/dateMenu.js:169
msgid "%a %R:%S" msgid "%a %R:%S"
msgstr "%a %k.%M.%S" msgstr "%a %k.%M.%S"
#: ../js/ui/dateMenu.js:168 #: ../js/ui/dateMenu.js:170
msgid "%a %R" msgid "%a %R"
msgstr "%a %k.%M" msgstr "%a %k.%M"
#. Translators: This is a time format with date used #. Translators: This is a time format with date used
#. for AM/PM. #. for AM/PM.
#: ../js/ui/dateMenu.js:175 #: ../js/ui/dateMenu.js:177
msgid "%a %b %e, %l:%M:%S %p" msgid "%a %b %e, %l:%M:%S %p"
msgstr "%a %e %b, %l.%M.%S %P" msgstr "%a %e %b, %l.%M.%S %P"
#: ../js/ui/dateMenu.js:176 #: ../js/ui/dateMenu.js:178
msgid "%a %b %e, %l:%M %p" msgid "%a %b %e, %l:%M %p"
msgstr "%a %e %b, %l.%M %P" msgstr "%a %e %b, %l.%M %P"
#. Translators: This is a time format without date used #. Translators: This is a time format without date used
#. for AM/PM. #. for AM/PM.
#: ../js/ui/dateMenu.js:180 #: ../js/ui/dateMenu.js:182
msgid "%a %l:%M:%S %p" msgid "%a %l:%M:%S %p"
msgstr "%a %l.%M.%S %P" msgstr "%a %l.%M.%S %P"
#: ../js/ui/dateMenu.js:181 #: ../js/ui/dateMenu.js:183
msgid "%a %l:%M %p" msgid "%a %l:%M %p"
msgstr "%a %l.%M %P" msgstr "%a %l.%M %P"
#. 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:207 #: ../js/ui/dateMenu.js:209
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%a %e %B %Y" msgstr "%a %e %B %Y"
@ -516,39 +516,43 @@ msgstr "Conferma"
msgid "Cancel" msgid "Cancel"
msgstr "Annulla" msgstr "Annulla"
#: ../js/ui/lookingGlass.js:587 #: ../js/ui/lookingGlass.js:588
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Nessuna estensione installata" msgstr "Nessuna estensione installata"
# (ndt) o abilitata? # (ndt) o abilitata?
#: ../js/ui/lookingGlass.js:624 #: ../js/ui/lookingGlass.js:625
msgid "Enabled" msgid "Enabled"
msgstr "Abilitato" msgstr "Abilitato"
# (ndt) o disabilitata? # (ndt) o disabilitata?
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:626 ../src/gvc/gvc-mixer-control.c:1087 #: ../js/ui/lookingGlass.js:627 ../src/gvc/gvc-mixer-control.c:1087
msgid "Disabled" msgid "Disabled"
msgstr "Disabilitato" msgstr "Disabilitato"
#: ../js/ui/lookingGlass.js:628 #: ../js/ui/lookingGlass.js:629
msgid "Error" msgid "Error"
msgstr "Errore" msgstr "Errore"
#: ../js/ui/lookingGlass.js:630 #: ../js/ui/lookingGlass.js:631
msgid "Out of date" msgid "Out of date"
msgstr "Non aggiornato" msgstr "Non aggiornato"
#: ../js/ui/lookingGlass.js:655 #: ../js/ui/lookingGlass.js:656
msgid "View Source" msgid "View Source"
msgstr "Visualizza sorgente" msgstr "Visualizza sorgente"
#: ../js/ui/lookingGlass.js:661 #: ../js/ui/lookingGlass.js:662
msgid "Web Page" msgid "Web Page"
msgstr "Pagina web" msgstr "Pagina web"
#: ../js/ui/messageTray.js:1902 #: ../js/ui/messageTray.js:924
msgid "Open"
msgstr "Apri"
#: ../js/ui/messageTray.js:1961
msgid "System Information" msgid "System Information"
msgstr "Informazione di sistema" msgstr "Informazione di sistema"
@ -564,18 +568,29 @@ msgstr "Finestre"
msgid "Applications" msgid "Applications"
msgstr "Applicazioni" msgstr "Applicazioni"
# cruscotto?!?!?!?!?!?!?
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/overview.js:202
msgid "Dash"
msgstr "Dash"
#. TODO - _quit() doesn't really work on apps in state STARTING yet #. TODO - _quit() doesn't really work on apps in state STARTING yet
#: ../js/ui/panel.js:529 #: ../js/ui/panel.js:560
#, c-format #, c-format
msgid "Quit %s" msgid "Quit %s"
msgstr "Chiudi %s" msgstr "Chiudi %s"
#. Button on the left side of the panel. #. Button on the left side of the panel.
#. Translators: If there is no suitable word for "Activities" in your language, you can use the word for "Overview". #. Translators: If there is no suitable word for "Activities" in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:897 #: ../js/ui/panel.js:919
msgid "Activities" msgid "Activities"
msgstr "Attività" msgstr "Attività"
#: ../js/ui/panel.js:1020
msgid "Panel"
msgstr "Pannello"
# (ndt) libera, ma unmount non si può proprio vedere... # (ndt) libera, ma unmount non si può proprio vedere...
#: ../js/ui/placeDisplay.js:122 #: ../js/ui/placeDisplay.js:122
#, c-format #, c-format
@ -599,7 +614,7 @@ msgstr "RISORSE E DISPOSITIVI"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle #. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will #. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches. #. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:612 #: ../js/ui/popupMenu.js:618
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-us" msgstr "toggle-switch-us"
@ -607,91 +622,91 @@ msgstr "toggle-switch-us"
msgid "Please enter a command:" msgid "Please enter a command:"
msgstr "Inserire un comando:" msgstr "Inserire un comando:"
#: ../js/ui/searchDisplay.js:295 #: ../js/ui/searchDisplay.js:283
msgid "Searching..." msgid "Searching..."
msgstr "Ricerca..." msgstr "Ricerca..."
#: ../js/ui/searchDisplay.js:309 #: ../js/ui/searchDisplay.js:297
msgid "No matching results." msgid "No matching results."
msgstr "Nessun risultato corrispondente." msgstr "Nessun risultato corrispondente."
#: ../js/ui/statusMenu.js:102 ../js/ui/statusMenu.js:166 #: ../js/ui/statusMenu.js:113 ../js/ui/statusMenu.js:177
msgid "Power Off..." msgid "Power Off..."
msgstr "Spegni..." msgstr "Spegni..."
#: ../js/ui/statusMenu.js:104 ../js/ui/statusMenu.js:165 #: ../js/ui/statusMenu.js:115 ../js/ui/statusMenu.js:176
msgid "Suspend" msgid "Suspend"
msgstr "Sospendi" msgstr "Sospendi"
#: ../js/ui/statusMenu.js:125 #: ../js/ui/statusMenu.js:136
msgid "Available" msgid "Available"
msgstr "Disponibile" msgstr "Disponibile"
#: ../js/ui/statusMenu.js:130 #: ../js/ui/statusMenu.js:141
msgid "Busy" msgid "Busy"
msgstr "Non disponibile" msgstr "Non disponibile"
#: ../js/ui/statusMenu.js:138 #: ../js/ui/statusMenu.js:149
msgid "My Account" msgid "My Account"
msgstr "Account personale" msgstr "Account personale"
#: ../js/ui/statusMenu.js:142 #: ../js/ui/statusMenu.js:153
msgid "System Settings" msgid "System Settings"
msgstr "Impostazioni di sistema" msgstr "Impostazioni di sistema"
#: ../js/ui/statusMenu.js:149 #: ../js/ui/statusMenu.js:160
msgid "Lock Screen" msgid "Lock Screen"
msgstr "Blocca schermo" msgstr "Blocca schermo"
#: ../js/ui/statusMenu.js:153 #: ../js/ui/statusMenu.js:164
msgid "Switch User" msgid "Switch User"
msgstr "Cambia utente" msgstr "Cambia utente"
#: ../js/ui/statusMenu.js:158 #: ../js/ui/statusMenu.js:169
msgid "Log Out..." msgid "Log Out..."
msgstr "Termina sessione..." msgstr "Termina sessione..."
#: ../js/ui/status/accessibility.js:81 #: ../js/ui/status/accessibility.js:62
msgid "Zoom" msgid "Zoom"
msgstr "Ingrandimento" msgstr "Ingrandimento"
#: ../js/ui/status/accessibility.js:88 #: ../js/ui/status/accessibility.js:69
msgid "Screen Reader" msgid "Screen Reader"
msgstr "Lettore schermo" msgstr "Lettore schermo"
#: ../js/ui/status/accessibility.js:92 #: ../js/ui/status/accessibility.js:73
msgid "Screen Keyboard" msgid "Screen Keyboard"
msgstr "Tastiera a schermo" msgstr "Tastiera a schermo"
#: ../js/ui/status/accessibility.js:96 #: ../js/ui/status/accessibility.js:77
msgid "Visual Alerts" msgid "Visual Alerts"
msgstr "Allerte visive" msgstr "Allerte visive"
#: ../js/ui/status/accessibility.js:99 #: ../js/ui/status/accessibility.js:80
msgid "Sticky Keys" msgid "Sticky Keys"
msgstr "Permanenza tasti" msgstr "Permanenza tasti"
#: ../js/ui/status/accessibility.js:102 #: ../js/ui/status/accessibility.js:83
msgid "Slow Keys" msgid "Slow Keys"
msgstr "Rallentamento tasti" msgstr "Rallentamento tasti"
#: ../js/ui/status/accessibility.js:105 #: ../js/ui/status/accessibility.js:86
msgid "Bounce Keys" msgid "Bounce Keys"
msgstr "Pressione ravvicinata tasti" msgstr "Pressione ravvicinata tasti"
#: ../js/ui/status/accessibility.js:108 #: ../js/ui/status/accessibility.js:89
msgid "Mouse Keys" msgid "Mouse Keys"
msgstr "Mouse da tastiera" msgstr "Mouse da tastiera"
#: ../js/ui/status/accessibility.js:112 #: ../js/ui/status/accessibility.js:93
msgid "Universal Access Settings" msgid "Universal Access Settings"
msgstr "Impostazioni accesso universale" msgstr "Impostazioni accesso universale"
#: ../js/ui/status/accessibility.js:164 #: ../js/ui/status/accessibility.js:145
msgid "High Contrast" msgid "High Contrast"
msgstr "Contrasto elevato" msgstr "Contrasto elevato"
#: ../js/ui/status/accessibility.js:209 #: ../js/ui/status/accessibility.js:182
msgid "Large Text" msgid "Large Text"
msgstr "Caratteri grandi" msgstr "Caratteri grandi"
@ -861,52 +876,52 @@ msgid_plural "%d minutes remaining"
msgstr[0] "%d minuto rimanente" msgstr[0] "%d minuto rimanente"
msgstr[1] "%d minuti rimanenti" msgstr[1] "%d minuti rimanenti"
#: ../js/ui/status/power.js:241 #: ../js/ui/status/power.js:227
msgid "AC adapter" msgid "AC adapter"
msgstr "Alimentatore di corrente" msgstr "Alimentatore di corrente"
#: ../js/ui/status/power.js:243 #: ../js/ui/status/power.js:229
msgid "Laptop battery" msgid "Laptop battery"
msgstr "Batteria del portatile" msgstr "Batteria del portatile"
#: ../js/ui/status/power.js:245 #: ../js/ui/status/power.js:231
msgid "UPS" msgid "UPS"
msgstr "UPS" msgstr "UPS"
#: ../js/ui/status/power.js:247 #: ../js/ui/status/power.js:233
msgid "Monitor" msgid "Monitor"
msgstr "Monitor" msgstr "Monitor"
#: ../js/ui/status/power.js:249 #: ../js/ui/status/power.js:235
msgid "Mouse" msgid "Mouse"
msgstr "Mouse" msgstr "Mouse"
#: ../js/ui/status/power.js:251 #: ../js/ui/status/power.js:237
msgid "Keyboard" msgid "Keyboard"
msgstr "Tastiera" msgstr "Tastiera"
#: ../js/ui/status/power.js:253 #: ../js/ui/status/power.js:239
msgid "PDA" msgid "PDA"
msgstr "PDS" msgstr "PDS"
# c'era una discussione su tp... # c'era una discussione su tp...
#: ../js/ui/status/power.js:255 #: ../js/ui/status/power.js:241
msgid "Cell phone" msgid "Cell phone"
msgstr "Cellulare" msgstr "Cellulare"
#: ../js/ui/status/power.js:257 #: ../js/ui/status/power.js:243
msgid "Media player" msgid "Media player"
msgstr "Lettore multimediale" msgstr "Lettore multimediale"
#: ../js/ui/status/power.js:259 #: ../js/ui/status/power.js:245
msgid "Tablet" msgid "Tablet"
msgstr "Tablet" msgstr "Tablet"
#: ../js/ui/status/power.js:261 #: ../js/ui/status/power.js:247
msgid "Computer" msgid "Computer"
msgstr "Computer" msgstr "Computer"
#: ../js/ui/status/power.js:263 ../src/shell-app-system.c:1013 #: ../js/ui/status/power.js:249 ../src/shell-app-system.c:1013
msgid "Unknown" msgid "Unknown"
msgstr "Sconosciuto" msgstr "Sconosciuto"
@ -941,7 +956,7 @@ msgstr "%s non è disponibile."
#. Translators: this is a time format string followed by a date. #. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your #. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds. #. locale, without seconds.
#: ../js/ui/telepathyClient.js:348 #: ../js/ui/telepathyClient.js:357
#, no-c-format #, no-c-format
msgid "Sent at %X on %A" msgid "Sent at %X on %A"
msgstr "Inviato alle %-H.%M di %A" msgstr "Inviato alle %-H.%M di %A"
@ -950,17 +965,21 @@ msgstr "Inviato alle %-H.%M di %A"
#. 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/viewSelector.js:103 #: ../js/ui/viewSelector.js:117
msgid "Type to search..." msgid "Type to search..."
msgstr "Digitare per cercare..." msgstr "Digitare per cercare..."
#: ../js/ui/windowAttentionHandler.js:43 #: ../js/ui/viewSelector.js:137 ../src/shell-util.c:250
msgid "Search"
msgstr "Cerca"
#: ../js/ui/windowAttentionHandler.js:42
#, c-format #, c-format
msgid "%s has finished starting" msgid "%s has finished starting"
msgstr "Avvio di %s completato" msgstr "Avvio di %s completato"
# (ndt) dovrebbe essere il nome dell'applicazione # (ndt) dovrebbe essere il nome dell'applicazione
#: ../js/ui/windowAttentionHandler.js:45 #: ../js/ui/windowAttentionHandler.js:44
#, c-format #, c-format
msgid "'%s' is ready" msgid "'%s' is ready"
msgstr "«%s» è pronto" msgstr "«%s» è pronto"
@ -987,32 +1006,36 @@ msgstr[1] "%u ingressi"
msgid "System Sounds" msgid "System Sounds"
msgstr "Audio di sistema" msgstr "Audio di sistema"
#: ../src/shell-global.c:1298 #: ../src/main.c:395
msgid "Print version"
msgstr "Stampa la versione"
#: ../src/shell-global.c:1308
msgid "Less than a minute ago" msgid "Less than a minute ago"
msgstr "Meno di un minuto fa" msgstr "Meno di un minuto fa"
#: ../src/shell-global.c:1302 #: ../src/shell-global.c:1312
#, c-format #, c-format
msgid "%d minute ago" msgid "%d minute ago"
msgid_plural "%d minutes ago" msgid_plural "%d minutes ago"
msgstr[0] "%d minuto fa" msgstr[0] "%d minuto fa"
msgstr[1] "%d minuti fa" msgstr[1] "%d minuti fa"
#: ../src/shell-global.c:1307 #: ../src/shell-global.c:1317
#, c-format #, c-format
msgid "%d hour ago" msgid "%d hour ago"
msgid_plural "%d hours ago" msgid_plural "%d hours ago"
msgstr[0] "%d ora fa" msgstr[0] "%d ora fa"
msgstr[1] "%d ore fa" msgstr[1] "%d ore fa"
#: ../src/shell-global.c:1312 #: ../src/shell-global.c:1322
#, c-format #, c-format
msgid "%d day ago" msgid "%d day ago"
msgid_plural "%d days ago" msgid_plural "%d days ago"
msgstr[0] "%d giorno fa" msgstr[0] "%d giorno fa"
msgstr[1] "%d giorni fa" msgstr[1] "%d giorni fa"
#: ../src/shell-global.c:1317 #: ../src/shell-global.c:1327
#, c-format #, c-format
msgid "%d week ago" msgid "%d week ago"
msgid_plural "%d weeks ago" msgid_plural "%d weeks ago"
@ -1035,10 +1058,6 @@ msgstr "Cartella home"
msgid "File System" msgid "File System"
msgstr "File system" msgstr "File system"
#: ../src/shell-util.c:250
msgid "Search"
msgstr "Cerca"
# (ndt) valutare... # (ndt) valutare...
#. Translators: the first string is the name of a gvfs #. Translators: the first string is the name of a gvfs
#. * method, and the second string is a path. For #. * method, and the second string is a path. For

251
po/ko.po
View File

@ -5,15 +5,16 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&component=general\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"POT-Creation-Date: 2011-02-27 06:38+0900\n" "shell&component=general\n"
"PO-Revision-Date: 2011-02-27 06:40+0900\n" "POT-Creation-Date: 2011-03-08 05:43+0000\n"
"PO-Revision-Date: 2011-03-14 10:40+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n" "Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n" "Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n"
"Language: Korean\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: Korean\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
#: ../data/gnome-shell.desktop.in.in.h:1 #: ../data/gnome-shell.desktop.in.in.h:1
@ -180,27 +181,27 @@ msgid "Execution of '%s' failed:"
msgstr "'%s' 실행이 실패했습니다:" msgstr "'%s' 실행이 실패했습니다:"
#. Translators: Filter to display all applications #. Translators: Filter to display all applications
#: ../js/ui/appDisplay.js:175 #: ../js/ui/appDisplay.js:226
msgid "All" msgid "All"
msgstr "모두" msgstr "모두"
#: ../js/ui/appDisplay.js:262 #: ../js/ui/appDisplay.js:324
msgid "APPLICATIONS" msgid "APPLICATIONS"
msgstr "프로그램" msgstr "프로그램"
#: ../js/ui/appDisplay.js:292 #: ../js/ui/appDisplay.js:350
msgid "PREFERENCES" msgid "SETTINGS"
msgstr "기본 설정" msgstr "설정"
#: ../js/ui/appDisplay.js:552 #: ../js/ui/appDisplay.js:612
msgid "New Window" msgid "New Window"
msgstr "새 창" msgstr "새 창"
#: ../js/ui/appDisplay.js:555 #: ../js/ui/appDisplay.js:615
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "즐겨찾기에서 제거" msgstr "즐겨찾기에서 제거"
#: ../js/ui/appDisplay.js:556 #: ../js/ui/appDisplay.js:616
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "즐겨찾기에 추가" msgstr "즐겨찾기에 추가"
@ -217,19 +218,19 @@ msgstr "%s 프로그램을 즐겨찾기에서 제거했습니다."
#. 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:65 #: ../js/ui/calendar.js:66
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "종일" msgstr "종일"
#. Translators: Shown in calendar event list, if 24h format #. Translators: Shown in calendar event list, if 24h format
#: ../js/ui/calendar.js:70 #: ../js/ui/calendar.js:71
msgctxt "event list time" msgctxt "event list time"
msgid "%H:%M" msgid "%H:%M"
msgstr "%H:%M" msgstr "%H:%M"
#. Transators: Shown in calendar event list, if 12h format #. Transators: Shown in calendar event list, if 12h format
#: ../js/ui/calendar.js:77 #: ../js/ui/calendar.js:78
msgctxt "event list time" msgctxt "event list time"
msgid "%l:%M %p" msgid "%l:%M %p"
msgstr "%p %l:%M" msgstr "%p %l:%M"
@ -239,43 +240,43 @@ msgstr "%p %l:%M"
#. * 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:117 #: ../js/ui/calendar.js:118
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "일" msgstr "일"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:119 #: ../js/ui/calendar.js:120
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "월" msgstr "월"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:121 #: ../js/ui/calendar.js:122
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "화" msgstr "화"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:123 #: ../js/ui/calendar.js:124
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:125 #: ../js/ui/calendar.js:126
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "목" msgstr "목"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:127 #: ../js/ui/calendar.js:128
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "금" msgstr "금"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:129 #: ../js/ui/calendar.js:130
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "토" msgstr "토"
@ -286,136 +287,136 @@ msgstr "토"
#. * 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:142 #: ../js/ui/calendar.js:143
msgctxt "list sunday" msgctxt "list sunday"
msgid "Su" msgid "Su"
msgstr "일" msgstr "일"
#. Translators: Event list abbreviation for Monday #. Translators: Event list abbreviation for Monday
#: ../js/ui/calendar.js:144 #: ../js/ui/calendar.js:145
msgctxt "list monday" msgctxt "list monday"
msgid "M" msgid "M"
msgstr "월" msgstr "월"
#. Translators: Event list abbreviation for Tuesday #. Translators: Event list abbreviation for Tuesday
#: ../js/ui/calendar.js:146 #: ../js/ui/calendar.js:147
msgctxt "list tuesday" msgctxt "list tuesday"
msgid "T" msgid "T"
msgstr "화" msgstr "화"
#. Translators: Event list abbreviation for Wednesday #. Translators: Event list abbreviation for Wednesday
#: ../js/ui/calendar.js:148 #: ../js/ui/calendar.js:149
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:150 #: ../js/ui/calendar.js:151
msgctxt "list thursday" msgctxt "list thursday"
msgid "Th" msgid "Th"
msgstr "목" msgstr "목"
#. Translators: Event list abbreviation for Friday #. Translators: Event list abbreviation for Friday
#: ../js/ui/calendar.js:152 #: ../js/ui/calendar.js:153
msgctxt "list friday" msgctxt "list friday"
msgid "F" msgid "F"
msgstr "금" msgstr "금"
#. Translators: Event list abbreviation for Saturday #. Translators: Event list abbreviation for Saturday
#: ../js/ui/calendar.js:154 #: ../js/ui/calendar.js:155
msgctxt "list saturday" msgctxt "list saturday"
msgid "S" msgid "S"
msgstr "토" msgstr "토"
#. Translators: Text to show if there are no events #. Translators: Text to show if there are no events
#: ../js/ui/calendar.js:701 #: ../js/ui/calendar.js:704
msgid "Nothing Scheduled" msgid "Nothing Scheduled"
msgstr "일정이 없습니다" msgstr "일정이 없습니다"
#. 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:717 #: ../js/ui/calendar.js:720
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%B %d일 %A" msgstr "%B %d일 %A"
#. 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:720 #: ../js/ui/calendar.js:723
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%Y년 %B %d일 %A" msgstr "%Y년 %B %d일 %A"
#: ../js/ui/calendar.js:730 #: ../js/ui/calendar.js:733
msgid "Today" msgid "Today"
msgstr "오늘" msgstr "오늘"
#: ../js/ui/calendar.js:734 #: ../js/ui/calendar.js:737
msgid "Tomorrow" msgid "Tomorrow"
msgstr "내일" msgstr "내일"
#: ../js/ui/calendar.js:743 #: ../js/ui/calendar.js:746
msgid "This week" msgid "This week"
msgstr "이번주" msgstr "이번주"
#: ../js/ui/calendar.js:751 #: ../js/ui/calendar.js:754
msgid "Next week" msgid "Next week"
msgstr "다음주" msgstr "다음주"
#: ../js/ui/dash.js:174 #: ../js/ui/dash.js:174 ../js/ui/messageTray.js:933
msgid "Remove" msgid "Remove"
msgstr "제거" msgstr "제거"
#: ../js/ui/dateMenu.js:93 #: ../js/ui/dateMenu.js:91
msgid "Date and Time Settings" msgid "Date and Time Settings"
msgstr "날짜 및 시각 설정" msgstr "날짜 및 시각 설정"
#: ../js/ui/dateMenu.js:112 #: ../js/ui/dateMenu.js:111
msgid "Open Calendar" msgid "Open Calendar"
msgstr "달력 열기" msgstr "달력 열기"
#. Translators: This is the time format with date used #. Translators: This is the time format with date used
#. in 24-hour mode. #. in 24-hour mode.
#: ../js/ui/dateMenu.js:151 #: ../js/ui/dateMenu.js:164
msgid "%a %b %e, %R:%S" msgid "%a %b %e, %R:%S"
msgstr "%b %e일 (%a), %R:%S" msgstr "%b %e일 (%a), %R:%S"
#: ../js/ui/dateMenu.js:152 #: ../js/ui/dateMenu.js:165
msgid "%a %b %e, %R" msgid "%a %b %e, %R"
msgstr "%b %e일 (%a), %R" msgstr "%b %e일 (%a), %R"
#. Translators: This is the time format without date used #. Translators: This is the time format without date used
#. in 24-hour mode. #. in 24-hour mode.
#: ../js/ui/dateMenu.js:156 #: ../js/ui/dateMenu.js:169
msgid "%a %R:%S" msgid "%a %R:%S"
msgstr "(%a) %R:%S" msgstr "(%a) %R:%S"
#: ../js/ui/dateMenu.js:157 #: ../js/ui/dateMenu.js:170
msgid "%a %R" msgid "%a %R"
msgstr "(%a) %R" msgstr "(%a) %R"
#. Translators: This is a time format with date used #. Translators: This is a time format with date used
#. for AM/PM. #. for AM/PM.
#: ../js/ui/dateMenu.js:164 #: ../js/ui/dateMenu.js:177
msgid "%a %b %e, %l:%M:%S %p" msgid "%a %b %e, %l:%M:%S %p"
msgstr "%b %e일 (%a), %p %l:%M:%S" msgstr "%b %e일 (%a), %p %l:%M:%S"
#: ../js/ui/dateMenu.js:165 #: ../js/ui/dateMenu.js:178
msgid "%a %b %e, %l:%M %p" msgid "%a %b %e, %l:%M %p"
msgstr "%b %e일 (%a), %p %l:%M" msgstr "%b %e일 (%a), %p %l:%M"
#. Translators: This is a time format without date used #. Translators: This is a time format without date used
#. for AM/PM. #. for AM/PM.
#: ../js/ui/dateMenu.js:169 #: ../js/ui/dateMenu.js:182
msgid "%a %l:%M:%S %p" msgid "%a %l:%M:%S %p"
msgstr "(%a) %p %l:%M:%S" msgstr "(%a) %p %l:%M:%S"
#: ../js/ui/dateMenu.js:170 #: ../js/ui/dateMenu.js:183
msgid "%a %l:%M %p" msgid "%a %l:%M %p"
msgstr "(%a) %p %l:%M" msgstr "(%a) %p %l:%M"
#. 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:196 #: ../js/ui/dateMenu.js:209
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%Y년 %B %e일 %A" msgstr "%Y년 %B %e일 %A"
@ -492,37 +493,41 @@ msgstr "확인"
msgid "Cancel" msgid "Cancel"
msgstr "취소" msgstr "취소"
#: ../js/ui/lookingGlass.js:587 #: ../js/ui/lookingGlass.js:588
msgid "No extensions installed" msgid "No extensions installed"
msgstr "확장 기능을 설치하지 않았습니다" msgstr "확장 기능을 설치하지 않았습니다"
#: ../js/ui/lookingGlass.js:624 #: ../js/ui/lookingGlass.js:625
msgid "Enabled" msgid "Enabled"
msgstr "사용" msgstr "사용"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:626 ../src/gvc/gvc-mixer-control.c:1087 #: ../js/ui/lookingGlass.js:627 ../src/gvc/gvc-mixer-control.c:1087
msgid "Disabled" msgid "Disabled"
msgstr "사용 않음" msgstr "사용 않음"
#: ../js/ui/lookingGlass.js:628 #: ../js/ui/lookingGlass.js:629
msgid "Error" msgid "Error"
msgstr "오류" msgstr "오류"
#: ../js/ui/lookingGlass.js:630 #: ../js/ui/lookingGlass.js:631
msgid "Out of date" msgid "Out of date"
msgstr "오래 된 버전" msgstr "오래 된 버전"
#: ../js/ui/lookingGlass.js:655 #: ../js/ui/lookingGlass.js:656
msgid "View Source" msgid "View Source"
msgstr "소스 보기" msgstr "소스 보기"
#: ../js/ui/lookingGlass.js:661 #: ../js/ui/lookingGlass.js:662
msgid "Web Page" msgid "Web Page"
msgstr "웹페이지" msgstr "웹페이지"
#: ../js/ui/messageTray.js:1902 #: ../js/ui/messageTray.js:926
msgid "Open"
msgstr "열기"
#: ../js/ui/messageTray.js:1963
msgid "System Information" msgid "System Information"
msgstr "시스템 정보" msgstr "시스템 정보"
@ -538,17 +543,27 @@ msgstr "창"
msgid "Applications" msgid "Applications"
msgstr "프로그램" msgstr "프로그램"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/overview.js:202
msgid "Dash"
msgstr "대시보드"
#. TODO - _quit() doesn't really work on apps in state STARTING yet #. TODO - _quit() doesn't really work on apps in state STARTING yet
#: ../js/ui/panel.js:537 #: ../js/ui/panel.js:532
#, c-format #, c-format
msgid "Quit %s" msgid "Quit %s"
msgstr "%s 끝내기" msgstr "%s 끝내기"
#. Button on the left side of the panel. #. Button on the left side of the panel.
#. Translators: If there is no suitable word for "Activities" in your language, you can use the word for "Overview". #. Translators: If there is no suitable word for "Activities" in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:905 #: ../js/ui/panel.js:893
msgid "Activities" msgid "Activities"
msgstr "요약" msgstr "현재 활동"
#: ../js/ui/panel.js:994
msgid "Panel"
msgstr "패널"
#: ../js/ui/placeDisplay.js:122 #: ../js/ui/placeDisplay.js:122
#, c-format #, c-format
@ -572,7 +587,7 @@ msgstr "위치 및 장치"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle #. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will #. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches. #. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:612 #: ../js/ui/popupMenu.js:618
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -580,91 +595,91 @@ msgstr "toggle-switch-intl"
msgid "Please enter a command:" msgid "Please enter a command:"
msgstr "명령을 입력하십시오:" msgstr "명령을 입력하십시오:"
#: ../js/ui/searchDisplay.js:295 #: ../js/ui/searchDisplay.js:283
msgid "Searching..." msgid "Searching..."
msgstr "검색하는 중..." msgstr "검색하는 중..."
#: ../js/ui/searchDisplay.js:309 #: ../js/ui/searchDisplay.js:297
msgid "No matching results." msgid "No matching results."
msgstr "일치하는 결과가 없습니다." msgstr "일치하는 결과가 없습니다."
#: ../js/ui/statusMenu.js:99 ../js/ui/statusMenu.js:163 #: ../js/ui/statusMenu.js:102 ../js/ui/statusMenu.js:166
msgid "Power Off..." msgid "Power Off..."
msgstr "컴퓨터 끄기..." msgstr "컴퓨터 끄기..."
#: ../js/ui/statusMenu.js:101 ../js/ui/statusMenu.js:162 #: ../js/ui/statusMenu.js:104 ../js/ui/statusMenu.js:165
msgid "Suspend" msgid "Suspend"
msgstr "절전" msgstr "절전"
#: ../js/ui/statusMenu.js:122 #: ../js/ui/statusMenu.js:125
msgid "Available" msgid "Available"
msgstr "대화 가능" msgstr "대화 가능"
#: ../js/ui/statusMenu.js:127 #: ../js/ui/statusMenu.js:130
msgid "Busy" msgid "Busy"
msgstr "다른 용무 중" msgstr "다른 용무 중"
#: ../js/ui/statusMenu.js:135 #: ../js/ui/statusMenu.js:138
msgid "My Account" msgid "My Account"
msgstr "내 계정" msgstr "내 계정"
#: ../js/ui/statusMenu.js:139 #: ../js/ui/statusMenu.js:142
msgid "System Settings" msgid "System Settings"
msgstr "시스템 설정" msgstr "시스템 설정"
#: ../js/ui/statusMenu.js:146 #: ../js/ui/statusMenu.js:149
msgid "Lock Screen" msgid "Lock Screen"
msgstr "화면 잠그기" msgstr "화면 잠그기"
#: ../js/ui/statusMenu.js:150 #: ../js/ui/statusMenu.js:153
msgid "Switch User" msgid "Switch User"
msgstr "사용자 바꾸기" msgstr "사용자 바꾸기"
#: ../js/ui/statusMenu.js:155 #: ../js/ui/statusMenu.js:158
msgid "Log Out..." msgid "Log Out..."
msgstr "로그아웃..." msgstr "로그아웃..."
#: ../js/ui/status/accessibility.js:81 #: ../js/ui/status/accessibility.js:62
msgid "Zoom" msgid "Zoom"
msgstr "크기 조정" msgstr "크기 조정"
#: ../js/ui/status/accessibility.js:88 #: ../js/ui/status/accessibility.js:69
msgid "Screen Reader" msgid "Screen Reader"
msgstr "화면 읽기" msgstr "화면 읽기"
#: ../js/ui/status/accessibility.js:92 #: ../js/ui/status/accessibility.js:73
msgid "Screen Keyboard" msgid "Screen Keyboard"
msgstr "화면 키보드" msgstr "화면 키보드"
#: ../js/ui/status/accessibility.js:96 #: ../js/ui/status/accessibility.js:77
msgid "Visual Alerts" msgid "Visual Alerts"
msgstr "화면 알림" msgstr "화면 알림"
#: ../js/ui/status/accessibility.js:99 #: ../js/ui/status/accessibility.js:80
msgid "Sticky Keys" msgid "Sticky Keys"
msgstr "고정 키" msgstr "고정 키"
#: ../js/ui/status/accessibility.js:102 #: ../js/ui/status/accessibility.js:83
msgid "Slow Keys" msgid "Slow Keys"
msgstr "느린 키" msgstr "느린 키"
#: ../js/ui/status/accessibility.js:105 #: ../js/ui/status/accessibility.js:86
msgid "Bounce Keys" msgid "Bounce Keys"
msgstr "탄력 키" msgstr "탄력 키"
#: ../js/ui/status/accessibility.js:108 #: ../js/ui/status/accessibility.js:89
msgid "Mouse Keys" msgid "Mouse Keys"
msgstr "마우스 키" msgstr "마우스 키"
#: ../js/ui/status/accessibility.js:112 #: ../js/ui/status/accessibility.js:93
msgid "Universal Access Settings" msgid "Universal Access Settings"
msgstr "보편적 접근성 설정" msgstr "보편적 접근성 설정"
#: ../js/ui/status/accessibility.js:164 #: ../js/ui/status/accessibility.js:145
msgid "High Contrast" msgid "High Contrast"
msgstr "고대비" msgstr "고대비"
#: ../js/ui/status/accessibility.js:209 #: ../js/ui/status/accessibility.js:182
msgid "Large Text" msgid "Large Text"
msgstr "큰 글자" msgstr "큰 글자"
@ -793,79 +808,85 @@ msgstr "지역화 설정"
msgid "Power Settings" msgid "Power Settings"
msgstr "전원 설정" msgstr "전원 설정"
#: ../js/ui/status/power.js:112 #. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:110
msgid "Estimating..."
msgstr "예상치 계산 중..."
#: ../js/ui/status/power.js:117
#, c-format #, c-format
msgid "%d hour remaining" msgid "%d hour remaining"
msgid_plural "%d hours remaining" msgid_plural "%d hours remaining"
msgstr[0] "%d시간 남음" msgstr[0] "%d시간 남음"
#. TRANSLATORS: this is a time string, as in "%d hours %d minutes remaining" #. TRANSLATORS: this is a time string, as in "%d hours %d minutes remaining"
#: ../js/ui/status/power.js:115 #: ../js/ui/status/power.js:120
#, c-format #, c-format
msgid "%d %s %d %s remaining" msgid "%d %s %d %s remaining"
msgstr "%d%s %d%s 남음" msgstr "%d%s %d%s 남음"
#: ../js/ui/status/power.js:117 #: ../js/ui/status/power.js:122
msgid "hour" msgid "hour"
msgid_plural "hours" msgid_plural "hours"
msgstr[0] "시간" msgstr[0] "시간"
#: ../js/ui/status/power.js:117 #: ../js/ui/status/power.js:122
msgid "minute" msgid "minute"
msgid_plural "minutes" msgid_plural "minutes"
msgstr[0] "분" msgstr[0] "분"
#: ../js/ui/status/power.js:120 #: ../js/ui/status/power.js:125
#, c-format #, c-format
msgid "%d minute remaining" msgid "%d minute remaining"
msgid_plural "%d minutes remaining" msgid_plural "%d minutes remaining"
msgstr[0] "%d분 남음" msgstr[0] "%d분 남음"
#: ../js/ui/status/power.js:235 #: ../js/ui/status/power.js:227
msgid "AC adapter" msgid "AC adapter"
msgstr "AC 어댑터" msgstr "AC 어댑터"
#: ../js/ui/status/power.js:237 #: ../js/ui/status/power.js:229
msgid "Laptop battery" msgid "Laptop battery"
msgstr "노트북 배터리" msgstr "노트북 배터리"
#: ../js/ui/status/power.js:239 #: ../js/ui/status/power.js:231
msgid "UPS" msgid "UPS"
msgstr "UPS" msgstr "UPS"
#: ../js/ui/status/power.js:241 #: ../js/ui/status/power.js:233
msgid "Monitor" msgid "Monitor"
msgstr "모니터" msgstr "모니터"
#: ../js/ui/status/power.js:243 #: ../js/ui/status/power.js:235
msgid "Mouse" msgid "Mouse"
msgstr "마우스" msgstr "마우스"
#: ../js/ui/status/power.js:245 #: ../js/ui/status/power.js:237
msgid "Keyboard" msgid "Keyboard"
msgstr "키보드" msgstr "키보드"
#: ../js/ui/status/power.js:247 #: ../js/ui/status/power.js:239
msgid "PDA" msgid "PDA"
msgstr "PDA" msgstr "PDA"
#: ../js/ui/status/power.js:249 #: ../js/ui/status/power.js:241
msgid "Cell phone" msgid "Cell phone"
msgstr "휴대전화" msgstr "휴대전화"
#: ../js/ui/status/power.js:251 #: ../js/ui/status/power.js:243
msgid "Media player" msgid "Media player"
msgstr "미디어 플레이어" msgstr "미디어 플레이어"
#: ../js/ui/status/power.js:253 #: ../js/ui/status/power.js:245
msgid "Tablet" msgid "Tablet"
msgstr "태블릿" msgstr "태블릿"
#: ../js/ui/status/power.js:255 #: ../js/ui/status/power.js:247
msgid "Computer" msgid "Computer"
msgstr "컴퓨터" msgstr "컴퓨터"
#: ../js/ui/status/power.js:257 ../src/shell-app-system.c:1013 #: ../js/ui/status/power.js:249 ../src/shell-app-system.c:1013
msgid "Unknown" msgid "Unknown"
msgstr "알 수 없음" msgstr "알 수 없음"
@ -910,16 +931,20 @@ msgstr "보낸 때: %A %H시 %M분"
#. 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/viewSelector.js:103 #: ../js/ui/viewSelector.js:117
msgid "Type to search..." msgid "Type to search..."
msgstr "검색하려면 입력하십시오..." msgstr "검색하려면 입력하십시오..."
#: ../js/ui/windowAttentionHandler.js:43 #: ../js/ui/viewSelector.js:137 ../src/shell-util.c:250
msgid "Search"
msgstr "검색"
#: ../js/ui/windowAttentionHandler.js:42
#, c-format #, c-format
msgid "%s has finished starting" msgid "%s has finished starting"
msgstr "%s 프로그램이 시작했습니다" msgstr "%s 프로그램이 시작했습니다"
#: ../js/ui/windowAttentionHandler.js:45 #: ../js/ui/windowAttentionHandler.js:44
#, c-format #, c-format
msgid "'%s' is ready" msgid "'%s' is ready"
msgstr "'%s' 프로그램이 준비되었습니다" msgstr "'%s' 프로그램이 준비되었습니다"
@ -944,29 +969,34 @@ msgstr[0] "%u개 입력"
msgid "System Sounds" msgid "System Sounds"
msgstr "시스템 소리" msgstr "시스템 소리"
#: ../src/shell-global.c:1363 # 커맨드라인 옵션 설명
#: ../src/main.c:395
msgid "Print version"
msgstr "버전을 표시합니다"
#: ../src/shell-global.c:1308
msgid "Less than a minute ago" msgid "Less than a minute ago"
msgstr "1분 이내" msgstr "1분 이내"
#: ../src/shell-global.c:1367 #: ../src/shell-global.c:1312
#, c-format #, c-format
msgid "%d minute ago" msgid "%d minute ago"
msgid_plural "%d minutes ago" msgid_plural "%d minutes ago"
msgstr[0] "%d분 전" msgstr[0] "%d분 전"
#: ../src/shell-global.c:1372 #: ../src/shell-global.c:1317
#, c-format #, c-format
msgid "%d hour ago" msgid "%d hour ago"
msgid_plural "%d hours ago" msgid_plural "%d hours ago"
msgstr[0] "%d시간 전" msgstr[0] "%d시간 전"
#: ../src/shell-global.c:1377 #: ../src/shell-global.c:1322
#, c-format #, c-format
msgid "%d day ago" msgid "%d day ago"
msgid_plural "%d days ago" msgid_plural "%d days ago"
msgstr[0] "%d일 전" msgstr[0] "%d일 전"
#: ../src/shell-global.c:1382 #: ../src/shell-global.c:1327
#, c-format #, c-format
msgid "%d week ago" msgid "%d week ago"
msgid_plural "%d weeks ago" msgid_plural "%d weeks ago"
@ -986,10 +1016,6 @@ msgstr "내 폴더"
msgid "File System" msgid "File System"
msgstr "파일시스템" msgstr "파일시스템"
#: ../src/shell-util.c:250
msgid "Search"
msgstr "검색"
#. Translators: the first string is the name of a gvfs #. Translators: the first string is the name of a gvfs
#. * method, and the second string is a path. For #. * method, and the second string is a path. For
#. * example, "Trash: some-directory". It means that the #. * example, "Trash: some-directory". It means that the
@ -999,3 +1025,6 @@ msgstr "검색"
#, c-format #, c-format
msgid "%1$s: %2$s" msgid "%1$s: %2$s"
msgstr "%s: %s" msgstr "%s: %s"
#~ msgid "PREFERENCES"
#~ msgstr "기본 설정"

366
po/nl.po
View File

@ -8,10 +8,10 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-02-11 23:09+0100\n" "POT-Creation-Date: 2011-03-12 23:52+0100\n"
"PO-Revision-Date: 2011-02-11 23:09+0100\n" "PO-Revision-Date: 2011-03-12 23:52+0100\n"
"Last-Translator: Wouter Bolsterlee <wbolster@gnome.org>\n" "Last-Translator: Wouter Bolsterlee <wbolster@gnome.org>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n" "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"Language: nl\n" "Language: nl\n"
@ -60,26 +60,30 @@ msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.h:6 #: ../data/org.gnome.shell.gschema.xml.in.h:6
msgid "History for command (Alt-F2) dialog" msgid "History for command (Alt-F2) dialog"
msgstr "Geschiedenis voor het opdracht-dialoogvenster (Alt-F2)" msgstr "Geschiedenis voor het opdrachtvenster (Alt-F2)"
#: ../data/org.gnome.shell.gschema.xml.in.h:7 #: ../data/org.gnome.shell.gschema.xml.in.h:7
msgid "History for the looking glass dialog"
msgstr "Geschiedenis voor het looking glass-venster"
#: ../data/org.gnome.shell.gschema.xml.in.h:8
msgid "If true, display date in the clock, in addition to time." msgid "If true, display date in the clock, in addition to time."
msgstr "" msgstr ""
"Indien ingeschakeld wordt naast de tijd ook de datum in de klok getoond" "Indien ingeschakeld wordt naast de tijd ook de datum in de klok getoond"
#: ../data/org.gnome.shell.gschema.xml.in.h:8 #: ../data/org.gnome.shell.gschema.xml.in.h:9
msgid "If true, display seconds in time." msgid "If true, display seconds in time."
msgstr "Indien ingeschakeld worden de secondes van de tijd getoond" msgstr "Indien ingeschakeld worden de secondes van de tijd getoond"
#: ../data/org.gnome.shell.gschema.xml.in.h:9 #: ../data/org.gnome.shell.gschema.xml.in.h:10
msgid "If true, display the ISO week date in the calendar." msgid "If true, display the ISO week date in the calendar."
msgstr "Indien ingeschakeld worden weeknummers in de kalender getoond." msgstr "Indien ingeschakeld worden weeknummers in de kalender getoond."
#: ../data/org.gnome.shell.gschema.xml.in.h:10 #: ../data/org.gnome.shell.gschema.xml.in.h:11
msgid "List of desktop file IDs for favorite applications" msgid "List of desktop file IDs for favorite applications"
msgstr "Lijst van desktopbestand-id's voor favoriete toepassingen" msgstr "Lijst van desktopbestand-id's voor favoriete toepassingen"
#: ../data/org.gnome.shell.gschema.xml.in.h:12 #: ../data/org.gnome.shell.gschema.xml.in.h:13
#, no-c-format #, no-c-format
msgid "" msgid ""
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax " "Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
@ -105,19 +109,19 @@ msgstr ""
"met de VP8-codec. %T wordt gebruikt voor een schatting van het optimaal " "met de VP8-codec. %T wordt gebruikt voor een schatting van het optimaal "
"aantal threads op dit systeem." "aantal threads op dit systeem."
#: ../data/org.gnome.shell.gschema.xml.in.h:13 #: ../data/org.gnome.shell.gschema.xml.in.h:14
msgid "Show date in clock" msgid "Show date in clock"
msgstr "Datum tonen in klok" msgstr "Datum tonen in klok"
#: ../data/org.gnome.shell.gschema.xml.in.h:14 #: ../data/org.gnome.shell.gschema.xml.in.h:15
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
msgstr "Weeknummers tonen in kalender" msgstr "Weeknummers tonen in kalender"
#: ../data/org.gnome.shell.gschema.xml.in.h:15 #: ../data/org.gnome.shell.gschema.xml.in.h:16
msgid "Show time with seconds" msgid "Show time with seconds"
msgstr "Tijd tonen inclusief seconden" msgstr "Tijd tonen inclusief seconden"
#: ../data/org.gnome.shell.gschema.xml.in.h:16 #: ../data/org.gnome.shell.gschema.xml.in.h:17
msgid "" msgid ""
"The applications corresponding to these identifiers will be displayed in the " "The applications corresponding to these identifiers will be displayed in the "
"favorites area." "favorites area."
@ -125,7 +129,7 @@ msgstr ""
"De toepassingen die aan deze identifiers voldoen worden in het " "De toepassingen die aan deze identifiers voldoen worden in het "
"favorietengebied weergegeven" "favorietengebied weergegeven"
#: ../data/org.gnome.shell.gschema.xml.in.h:17 #: ../data/org.gnome.shell.gschema.xml.in.h:18
msgid "" msgid ""
"The filename for recorded screencasts will be a unique filename based on the " "The filename for recorded screencasts will be a unique filename based on the "
"current date, and use this extension. It should be changed when recording to " "current date, and use this extension. It should be changed when recording to "
@ -135,7 +139,7 @@ msgstr ""
"de huidige datum en gebruikt deze extensie. Dit moet aangepast worden bij " "de huidige datum en gebruikt deze extensie. Dit moet aangepast worden bij "
"het gebruik van een ander containerformaat." "het gebruik van een ander containerformaat."
#: ../data/org.gnome.shell.gschema.xml.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.h:19
msgid "" msgid ""
"The framerate of the resulting screencast recordered by GNOME Shell's " "The framerate of the resulting screencast recordered by GNOME Shell's "
"screencast recorder in frames-per-second." "screencast recorder in frames-per-second."
@ -143,11 +147,11 @@ msgstr ""
"De framerate (in frames per seconde) voor de opnames die door de " "De framerate (in frames per seconde) voor de opnames die door de "
"schermopname van Gnome Shell gemaakt worden." "schermopname van Gnome Shell gemaakt worden."
#: ../data/org.gnome.shell.gschema.xml.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.h:20
msgid "The gstreamer pipeline used to encode the screencast" msgid "The gstreamer pipeline used to encode the screencast"
msgstr "De gstreamer-pijplijn voor het coderen van de screencast" msgstr "De gstreamer-pijplijn voor het coderen van de screencast"
#: ../data/org.gnome.shell.gschema.xml.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.h:21
msgid "" msgid ""
"The shell normally monitors active applications in order to present the most " "The shell normally monitors active applications in order to present the most "
"used ones (e.g. in launchers). While this data will be kept private, you may " "used ones (e.g. in launchers). While this data will be kept private, you may "
@ -159,15 +163,15 @@ msgstr ""
"deze gebruiker zijn, kan het wenselijk zijn dit om privacy-redenen uit te " "deze gebruiker zijn, kan het wenselijk zijn dit om privacy-redenen uit te "
"schakelen. Let er wel op dat dit historische gegevens niet verwijdert." "schakelen. Let er wel op dat dit historische gegevens niet verwijdert."
#: ../data/org.gnome.shell.gschema.xml.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.h:22
msgid "Uuids of extensions to disable" msgid "Uuids of extensions to disable"
msgstr "Uuid's van uit te schakelen uitbreidingen" msgstr "Uuid's van uit te schakelen uitbreidingen"
#: ../data/org.gnome.shell.gschema.xml.in.h:22
msgid "Whether to collect stats about applications usage"
msgstr "Of statistieken worden bijgehouden over toepassingsgebruik"
#: ../data/org.gnome.shell.gschema.xml.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.h:23
msgid "Whether to collect stats about applications usage"
msgstr "Of statistieken worden bijgehouden over gebruik van toepassingen"
#: ../data/org.gnome.shell.gschema.xml.in.h:24
msgid "disabled OpenSearch providers" msgid "disabled OpenSearch providers"
msgstr "uitgeschakelde OpenSearch-providers" msgstr "uitgeschakelde OpenSearch-providers"
@ -191,27 +195,27 @@ msgid "Execution of '%s' failed:"
msgstr "Uitvoeren van %s mislukt:" msgstr "Uitvoeren van %s mislukt:"
#. Translators: Filter to display all applications #. Translators: Filter to display all applications
#: ../js/ui/appDisplay.js:174 #: ../js/ui/appDisplay.js:226
msgid "All" msgid "All"
msgstr "Alles" msgstr "Alles"
#: ../js/ui/appDisplay.js:261 #: ../js/ui/appDisplay.js:324
msgid "APPLICATIONS" msgid "APPLICATIONS"
msgstr "TOEPASSINGEN" msgstr "TOEPASSINGEN"
#: ../js/ui/appDisplay.js:291 #: ../js/ui/appDisplay.js:350
msgid "PREFERENCES" msgid "SETTINGS"
msgstr "VOORKEUREN" msgstr "INSTELLINGEN"
#: ../js/ui/appDisplay.js:592 #: ../js/ui/appDisplay.js:612
msgid "New Window" msgid "New Window"
msgstr "Nieuw venster" msgstr "Nieuw venster"
#: ../js/ui/appDisplay.js:596 #: ../js/ui/appDisplay.js:615
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "Uit favorieten verwijderen" msgstr "Uit favorieten verwijderen"
#: ../js/ui/appDisplay.js:597 #: ../js/ui/appDisplay.js:616
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "Aan favorieten toevoegen" msgstr "Aan favorieten toevoegen"
@ -228,19 +232,19 @@ msgstr "%s is verwijderd uit uw favorieten."
#. 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:65 #: ../js/ui/calendar.js:66
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Gehele dag" msgstr "Gehele dag"
#. Translators: Shown in calendar event list, if 24h format #. Translators: Shown in calendar event list, if 24h format
#: ../js/ui/calendar.js:70 #: ../js/ui/calendar.js:71
msgctxt "event list time" msgctxt "event list time"
msgid "%H:%M" msgid "%H:%M"
msgstr "%H:%M" msgstr "%H:%M"
#. Transators: Shown in calendar event list, if 12h format #. Transators: Shown in calendar event list, if 12h format
#: ../js/ui/calendar.js:77 #: ../js/ui/calendar.js:78
msgctxt "event list time" msgctxt "event list time"
msgid "%l:%M %p" msgid "%l:%M %p"
msgstr "%l:%M %p" msgstr "%l:%M %p"
@ -250,43 +254,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:117 #: ../js/ui/calendar.js:118
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "Z" msgstr "Z"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:119 #: ../js/ui/calendar.js:120
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "M" msgstr "M"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:121 #: ../js/ui/calendar.js:122
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "D" msgstr "D"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:123 #: ../js/ui/calendar.js:124
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "W" msgstr "W"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:125 #: ../js/ui/calendar.js:126
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "D" msgstr "D"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:127 #: ../js/ui/calendar.js:128
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "V" msgstr "V"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:129 #: ../js/ui/calendar.js:130
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "Z" msgstr "Z"
@ -297,81 +301,81 @@ msgstr "Z"
#. * 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:142 #: ../js/ui/calendar.js:143
msgctxt "list sunday" msgctxt "list sunday"
msgid "Su" msgid "Su"
msgstr "Zo" msgstr "Zo"
#. Translators: Event list abbreviation for Monday #. Translators: Event list abbreviation for Monday
#: ../js/ui/calendar.js:144 #: ../js/ui/calendar.js:145
msgctxt "list monday" msgctxt "list monday"
msgid "M" msgid "M"
msgstr "Ma" msgstr "Ma"
#. Translators: Event list abbreviation for Tuesday #. Translators: Event list abbreviation for Tuesday
#: ../js/ui/calendar.js:146 #: ../js/ui/calendar.js:147
msgctxt "list tuesday" msgctxt "list tuesday"
msgid "T" msgid "T"
msgstr "Di" msgstr "Di"
#. Translators: Event list abbreviation for Wednesday #. Translators: Event list abbreviation for Wednesday
#: ../js/ui/calendar.js:148 #: ../js/ui/calendar.js:149
msgctxt "list wednesday" msgctxt "list wednesday"
msgid "W" msgid "W"
msgstr "Wo" msgstr "Wo"
#. Translators: Event list abbreviation for Thursday #. Translators: Event list abbreviation for Thursday
#: ../js/ui/calendar.js:150 #: ../js/ui/calendar.js:151
msgctxt "list thursday" msgctxt "list thursday"
msgid "Th" msgid "Th"
msgstr "Do" msgstr "Do"
#. Translators: Event list abbreviation for Friday #. Translators: Event list abbreviation for Friday
#: ../js/ui/calendar.js:152 #: ../js/ui/calendar.js:153
msgctxt "list friday" msgctxt "list friday"
msgid "F" msgid "F"
msgstr "Vr" msgstr "Vr"
#. Translators: Event list abbreviation for Saturday #. Translators: Event list abbreviation for Saturday
#: ../js/ui/calendar.js:154 #: ../js/ui/calendar.js:155
msgctxt "list saturday" msgctxt "list saturday"
msgid "S" msgid "S"
msgstr "Za" msgstr "Za"
#. Translators: Text to show if there are no events #. Translators: Text to show if there are no events
#: ../js/ui/calendar.js:701 #: ../js/ui/calendar.js:704
msgid "Nothing Scheduled" msgid "Nothing Scheduled"
msgstr "Niets gepland" msgstr "Niets gepland"
#. 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:717 #: ../js/ui/calendar.js:720
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%a %d %B" msgstr "%a %d %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:720 #: ../js/ui/calendar.js:723
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%a %d %B %Y" msgstr "%a %d %B %Y"
#: ../js/ui/calendar.js:730 #: ../js/ui/calendar.js:733
msgid "Today" msgid "Today"
msgstr "Vandaag" msgstr "Vandaag"
#: ../js/ui/calendar.js:734 #: ../js/ui/calendar.js:737
msgid "Tomorrow" msgid "Tomorrow"
msgstr "Morgen" msgstr "Morgen"
#: ../js/ui/calendar.js:743 #: ../js/ui/calendar.js:746
msgid "This week" msgid "This week"
msgstr "Deze week" msgstr "Deze week"
#: ../js/ui/calendar.js:751 #: ../js/ui/calendar.js:754
msgid "Next week" msgid "Next week"
msgstr "Volgende week" msgstr "Volgende week"
#: ../js/ui/dash.js:174 #: ../js/ui/dash.js:174 ../js/ui/messageTray.js:931
msgid "Remove" msgid "Remove"
msgstr "Verwijderen" msgstr "Verwijderen"
@ -379,47 +383,47 @@ msgstr "Verwijderen"
msgid "Date and Time Settings" msgid "Date and Time Settings"
msgstr "Datum- en tijdinstellingen" msgstr "Datum- en tijdinstellingen"
#: ../js/ui/dateMenu.js:110 #: ../js/ui/dateMenu.js:111
msgid "Open Calendar" msgid "Open Calendar"
msgstr "Agenda openen" msgstr "Agenda openen"
#. Translators: This is the time format with date used #. Translators: This is the time format with date used
#. in 24-hour mode. #. in 24-hour mode.
#: ../js/ui/dateMenu.js:149 #: ../js/ui/dateMenu.js:164
msgid "%a %b %e, %R:%S" msgid "%a %b %e, %R:%S"
msgstr "%a %e %b, %R:%S" msgstr "%a %e %b, %R:%S"
#: ../js/ui/dateMenu.js:150 #: ../js/ui/dateMenu.js:165
msgid "%a %b %e, %R" msgid "%a %b %e, %R"
msgstr "%a %e %b, %R" msgstr "%a %e %b, %R"
#. Translators: This is the time format without date used #. Translators: This is the time format without date used
#. in 24-hour mode. #. in 24-hour mode.
#: ../js/ui/dateMenu.js:154 #: ../js/ui/dateMenu.js:169
msgid "%a %R:%S" msgid "%a %R:%S"
msgstr "%a %R:%S" msgstr "%a %R:%S"
#: ../js/ui/dateMenu.js:155 #: ../js/ui/dateMenu.js:170
msgid "%a %R" msgid "%a %R"
msgstr "%a %R" msgstr "%a %R"
#. Translators: This is a time format with date used #. Translators: This is a time format with date used
#. for AM/PM. #. for AM/PM.
#: ../js/ui/dateMenu.js:162 #: ../js/ui/dateMenu.js:177
msgid "%a %b %e, %l:%M:%S %p" msgid "%a %b %e, %l:%M:%S %p"
msgstr "%a %e %b, %l:%M:%S %p" msgstr "%a %e %b, %l:%M:%S %p"
#: ../js/ui/dateMenu.js:163 #: ../js/ui/dateMenu.js:178
msgid "%a %b %e, %l:%M %p" msgid "%a %b %e, %l:%M %p"
msgstr "%a %e %b, %l:%M %p" msgstr "%a %e %b, %l:%M %p"
#. Translators: This is a time format without date used #. Translators: This is a time format without date used
#. for AM/PM. #. for AM/PM.
#: ../js/ui/dateMenu.js:167 #: ../js/ui/dateMenu.js:182
msgid "%a %l:%M:%S %p" msgid "%a %l:%M:%S %p"
msgstr "%a %l:%M:%S %p" msgstr "%a %l:%M:%S %p"
#: ../js/ui/dateMenu.js:168 #: ../js/ui/dateMenu.js:183
msgid "%a %l:%M %p" msgid "%a %l:%M %p"
msgstr "%a %l:%M %p" msgstr "%a %l:%M %p"
@ -427,7 +431,7 @@ msgstr "%a %l:%M %p"
#. 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:194 #: ../js/ui/dateMenu.js:209
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%a %e %B %Y" msgstr "%a %e %B %Y"
@ -509,37 +513,41 @@ msgstr "Bevestigen"
msgid "Cancel" msgid "Cancel"
msgstr "Annuleren" msgstr "Annuleren"
#: ../js/ui/lookingGlass.js:584 #: ../js/ui/lookingGlass.js:588
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Geen uitbreidingen geïnstalleerd" msgstr "Geen uitbreidingen geïnstalleerd"
#: ../js/ui/lookingGlass.js:621 #: ../js/ui/lookingGlass.js:625
msgid "Enabled" msgid "Enabled"
msgstr "Ingeschakeld" msgstr "Ingeschakeld"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:623 ../src/gvc/gvc-mixer-control.c:1087 #: ../js/ui/lookingGlass.js:627 ../src/gvc/gvc-mixer-control.c:1091
msgid "Disabled" msgid "Disabled"
msgstr "Uitgeschakeld" msgstr "Uitgeschakeld"
#: ../js/ui/lookingGlass.js:625 #: ../js/ui/lookingGlass.js:629
msgid "Error" msgid "Error"
msgstr "Fout" msgstr "Fout"
#: ../js/ui/lookingGlass.js:627 #: ../js/ui/lookingGlass.js:631
msgid "Out of date" msgid "Out of date"
msgstr "Gedateerd" msgstr "Gedateerd"
#: ../js/ui/lookingGlass.js:652 #: ../js/ui/lookingGlass.js:656
msgid "View Source" msgid "View Source"
msgstr "Broncode weergeven" msgstr "Broncode weergeven"
#: ../js/ui/lookingGlass.js:658 #: ../js/ui/lookingGlass.js:662
msgid "Web Page" msgid "Web Page"
msgstr "Webpagina" msgstr "Webpagina"
#: ../js/ui/messageTray.js:1854 #: ../js/ui/messageTray.js:924
msgid "Open"
msgstr "Openen"
#: ../js/ui/messageTray.js:1961
msgid "System Information" msgid "System Information"
msgstr "Systeeminformatie" msgstr "Systeeminformatie"
@ -547,26 +555,37 @@ msgstr "Systeeminformatie"
msgid "Undo" msgid "Undo"
msgstr "Ongedaan maken" msgstr "Ongedaan maken"
#: ../js/ui/overview.js:159 #: ../js/ui/overview.js:183
msgid "Windows" msgid "Windows"
msgstr "Vensters" msgstr "Vensters"
#: ../js/ui/overview.js:162 #: ../js/ui/overview.js:186
msgid "Applications" msgid "Applications"
msgstr "Toepassingen" msgstr "Toepassingen"
# Betere vertaling is welkom (Wouter Bolsterlee)
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/overview.js:202
msgid "Dash"
msgstr "Zijbalk"
#. TODO - _quit() doesn't really work on apps in state STARTING yet #. TODO - _quit() doesn't really work on apps in state STARTING yet
#: ../js/ui/panel.js:480 #: ../js/ui/panel.js:560
#, c-format #, c-format
msgid "Quit %s" msgid "Quit %s"
msgstr "%s afsluiten" msgstr "%s afsluiten"
#. Button on the left side of the panel. #. Button on the left side of the panel.
#. Translators: If there is no suitable word for "Activities" in your language, you can use the word for "Overview". #. Translators: If there is no suitable word for "Activities" in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:614 #: ../js/ui/panel.js:919
msgid "Activities" msgid "Activities"
msgstr "Activiteiten" msgstr "Activiteiten"
#: ../js/ui/panel.js:1020
msgid "Panel"
msgstr "Paneel"
#: ../js/ui/placeDisplay.js:122 #: ../js/ui/placeDisplay.js:122
#, c-format #, c-format
msgid "Failed to unmount '%s'" msgid "Failed to unmount '%s'"
@ -589,101 +608,99 @@ msgstr "LOCATIES & APPARATEN"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle #. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will #. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches. #. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:512 #: ../js/ui/popupMenu.js:618
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:209 #: ../js/ui/runDialog.js:201
msgid "Please enter a command:" msgid "Please enter a command:"
msgstr "Voer een opdracht in:" msgstr "Voer een opdracht in:"
#: ../js/ui/searchDisplay.js:295 #: ../js/ui/searchDisplay.js:283
msgid "Searching..." msgid "Searching..."
msgstr "Zoeken…" msgstr "Zoeken…"
#: ../js/ui/searchDisplay.js:309 #: ../js/ui/searchDisplay.js:297
msgid "No matching results." msgid "No matching results."
msgstr "Geen overeenkomende resultaten." msgstr "Geen overeenkomende resultaten."
#: ../js/ui/statusMenu.js:102 #: ../js/ui/statusMenu.js:113 ../js/ui/statusMenu.js:177
msgid "Power Off..."
msgstr "Uitschakelen…"
#: ../js/ui/statusMenu.js:115 ../js/ui/statusMenu.js:176
msgid "Suspend"
msgstr "Slaapstand"
#: ../js/ui/statusMenu.js:136
msgid "Available" msgid "Available"
msgstr "Beschikbaar" msgstr "Beschikbaar"
#: ../js/ui/statusMenu.js:107 #: ../js/ui/statusMenu.js:141
msgid "Busy" msgid "Busy"
msgstr "Bezig" msgstr "Bezig"
#: ../js/ui/statusMenu.js:115 #: ../js/ui/statusMenu.js:149
msgid "My Account" msgid "My Account"
msgstr "Mijn account" msgstr "Mijn account"
#: ../js/ui/statusMenu.js:119 #: ../js/ui/statusMenu.js:153
msgid "System Settings" msgid "System Settings"
msgstr "Systeeminstellingen" msgstr "Systeeminstellingen"
#: ../js/ui/statusMenu.js:126 #: ../js/ui/statusMenu.js:160
msgid "Lock Screen" msgid "Lock Screen"
msgstr "Scherm vergrendelen" msgstr "Scherm vergrendelen"
#: ../js/ui/statusMenu.js:130 #: ../js/ui/statusMenu.js:164
msgid "Switch User" msgid "Switch User"
msgstr "Gebruiker wisselen" msgstr "Gebruiker wisselen"
#: ../js/ui/statusMenu.js:135 #: ../js/ui/statusMenu.js:169
msgid "Log Out..." msgid "Log Out..."
msgstr "Afmelden…" msgstr "Afmelden…"
#. This is temporarily removed, see #: ../js/ui/status/accessibility.js:62
#. http://bugzilla.gnome.org/show_bug.cgi?id=636680
#. for details.
#. item = new PopupMenu.PopupMenuItem(_("Suspend..."));
#. item.connect('activate', Lang.bind(this, this._onShutDownActivate));
#. this.menu.addMenuItem(item);
#: ../js/ui/statusMenu.js:149
msgid "Shut Down..."
msgstr "Afsluiten…"
#: ../js/ui/status/accessibility.js:83
msgid "Zoom" msgid "Zoom"
msgstr "Zoomen" msgstr "Zoomen"
#: ../js/ui/status/accessibility.js:89 #: ../js/ui/status/accessibility.js:69
msgid "Screen Reader" msgid "Screen Reader"
msgstr "Schermlezer" msgstr "Schermlezer"
#: ../js/ui/status/accessibility.js:92 #: ../js/ui/status/accessibility.js:73
msgid "Screen Keyboard" msgid "Screen Keyboard"
msgstr "Schermtoetsenbord" msgstr "Schermtoetsenbord"
#: ../js/ui/status/accessibility.js:95 #: ../js/ui/status/accessibility.js:77
msgid "Visual Alerts" msgid "Visual Alerts"
msgstr "Visuele attenderingen" msgstr "Visuele alerteringen"
#: ../js/ui/status/accessibility.js:98 #: ../js/ui/status/accessibility.js:80
msgid "Sticky Keys" msgid "Sticky Keys"
msgstr "PlakToetsen" msgstr "Plaktoetsen"
#: ../js/ui/status/accessibility.js:101 #: ../js/ui/status/accessibility.js:83
msgid "Slow Keys" msgid "Slow Keys"
msgstr "Trage Toetsen" msgstr "Trage Toetsen"
#: ../js/ui/status/accessibility.js:104 #: ../js/ui/status/accessibility.js:86
msgid "Bounce Keys" msgid "Bounce Keys"
msgstr "Springende toetsen" msgstr "Springende toetsen"
#: ../js/ui/status/accessibility.js:107 #: ../js/ui/status/accessibility.js:89
msgid "Mouse Keys" msgid "Mouse Keys"
msgstr "MuisToetsen" msgstr "Muistoetsen"
#: ../js/ui/status/accessibility.js:111 #: ../js/ui/status/accessibility.js:93
msgid "Universal Access Settings" msgid "Universal Access Settings"
msgstr "Toegankelijkheidsinstellingen" msgstr "Instellingen voor toegankelijkheid"
#: ../js/ui/status/accessibility.js:163 #: ../js/ui/status/accessibility.js:145
msgid "High Contrast" msgid "High Contrast"
msgstr "Hoog contrast" msgstr "Hoog contrast"
#: ../js/ui/status/accessibility.js:205 #: ../js/ui/status/accessibility.js:182
msgid "Large Text" msgid "Large Text"
msgstr "Grote tekst" msgstr "Grote tekst"
@ -738,7 +755,7 @@ msgstr "Toetsenbordvoorkeuren"
msgid "Mouse Settings" msgid "Mouse Settings"
msgstr "Muisvoorkeuren" msgstr "Muisvoorkeuren"
#: ../js/ui/status/bluetooth.js:263 ../js/ui/status/volume.js:63 #: ../js/ui/status/bluetooth.js:263 ../js/ui/status/volume.js:66
msgid "Sound Settings" msgid "Sound Settings"
msgstr "Geluidsvoorkeuren" msgstr "Geluidsvoorkeuren"
@ -767,7 +784,7 @@ msgstr "Afwijzen"
#: ../js/ui/status/bluetooth.js:412 #: ../js/ui/status/bluetooth.js:412
#, c-format #, c-format
msgid "Pairing confirmation for %s" msgid "Pairing confirmation for %s"
msgstr "Koppelbevestiging van voor %s" msgstr "Koppelbevestiging voor %s"
#: ../js/ui/status/bluetooth.js:418 ../js/ui/status/bluetooth.js:452 #: ../js/ui/status/bluetooth.js:418 ../js/ui/status/bluetooth.js:452
#, c-format #, c-format
@ -781,11 +798,11 @@ msgstr "Bevestig dat de PIN-code %s hetzelfde is als die van het apparaat.
#: ../js/ui/status/bluetooth.js:421 #: ../js/ui/status/bluetooth.js:421
msgid "Matches" msgid "Matches"
msgstr "PIN is hetzelfde" msgstr "Komt overeen"
#: ../js/ui/status/bluetooth.js:422 #: ../js/ui/status/bluetooth.js:422
msgid "Does not match" msgid "Does not match"
msgstr "PIN is niet hezelfde" msgstr "Komt niet overeen"
#: ../js/ui/status/bluetooth.js:445 #: ../js/ui/status/bluetooth.js:445
#, c-format #, c-format
@ -794,13 +811,17 @@ msgstr "Verzoek tot koppelen met %s"
#: ../js/ui/status/bluetooth.js:453 #: ../js/ui/status/bluetooth.js:453
msgid "Please enter the PIN mentioned on the device." msgid "Please enter the PIN mentioned on the device."
msgstr "Geef de PIN-code die apparaat aangeef." msgstr "Geef de op het apparaat aangegeven PIN-code."
#: ../js/ui/status/bluetooth.js:469 #: ../js/ui/status/bluetooth.js:469
msgid "OK" msgid "OK"
msgstr "OK" msgstr "OK"
#: ../js/ui/status/keyboard.js:72 #: ../js/ui/status/keyboard.js:73
msgid "Show Keyboard Layout..."
msgstr "Toetsenbordindeling tonen…"
#: ../js/ui/status/keyboard.js:76
msgid "Localization Settings" msgid "Localization Settings"
msgstr "Regionale instellingen" msgstr "Regionale instellingen"
@ -808,7 +829,13 @@ msgstr "Regionale instellingen"
msgid "Power Settings" msgid "Power Settings"
msgstr "Energievoorkeuren" msgstr "Energievoorkeuren"
#: ../js/ui/status/power.js:112 #. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:110
msgid "Estimating..."
msgstr "Schatten…"
#: ../js/ui/status/power.js:117
#, c-format #, c-format
msgid "%d hour remaining" msgid "%d hour remaining"
msgid_plural "%d hours remaining" msgid_plural "%d hours remaining"
@ -816,102 +843,102 @@ msgstr[0] "%d uur resterend"
msgstr[1] "%d uur resterend" msgstr[1] "%d uur resterend"
#. TRANSLATORS: this is a time string, as in "%d hours %d minutes remaining" #. TRANSLATORS: this is a time string, as in "%d hours %d minutes remaining"
#: ../js/ui/status/power.js:115 #: ../js/ui/status/power.js:120
#, c-format #, c-format
msgid "%d %s %d %s remaining" msgid "%d %s %d %s remaining"
msgstr "%d %s %d %s resterend" msgstr "%d %s %d %s resterend"
#: ../js/ui/status/power.js:117 #: ../js/ui/status/power.js:122
msgid "hour" msgid "hour"
msgid_plural "hours" msgid_plural "hours"
msgstr[0] "uur" msgstr[0] "uur"
msgstr[1] "uur" msgstr[1] "uur"
#: ../js/ui/status/power.js:117 #: ../js/ui/status/power.js:122
msgid "minute" msgid "minute"
msgid_plural "minutes" msgid_plural "minutes"
msgstr[0] "minuut" msgstr[0] "minuut"
msgstr[1] "minuten" msgstr[1] "minuten"
#: ../js/ui/status/power.js:120 #: ../js/ui/status/power.js:125
#, c-format #, c-format
msgid "%d minute remaining" msgid "%d minute remaining"
msgid_plural "%d minutes remaining" msgid_plural "%d minutes remaining"
msgstr[0] "%d minuut resterend" msgstr[0] "%d minuut resterend"
msgstr[1] "%d minuten resterend" msgstr[1] "%d minuten resterend"
#: ../js/ui/status/power.js:235 #: ../js/ui/status/power.js:227
msgid "AC adapter" msgid "AC adapter"
msgstr "Netstroom" msgstr "Netstroom"
#: ../js/ui/status/power.js:237 #: ../js/ui/status/power.js:229
msgid "Laptop battery" msgid "Laptop battery"
msgstr "Laptop-accu" msgstr "Laptop-accu"
#: ../js/ui/status/power.js:239 #: ../js/ui/status/power.js:231
msgid "UPS" msgid "UPS"
msgstr "UPS" msgstr "UPS"
#: ../js/ui/status/power.js:241 #: ../js/ui/status/power.js:233
msgid "Monitor" msgid "Monitor"
msgstr "Monitor" msgstr "Monitor"
#: ../js/ui/status/power.js:243 #: ../js/ui/status/power.js:235
msgid "Mouse" msgid "Mouse"
msgstr "Muis" msgstr "Muis"
#: ../js/ui/status/power.js:245 #: ../js/ui/status/power.js:237
msgid "Keyboard" msgid "Keyboard"
msgstr "Toetsenbord" msgstr "Toetsenbord"
#: ../js/ui/status/power.js:247 #: ../js/ui/status/power.js:239
msgid "PDA" msgid "PDA"
msgstr "PDA" msgstr "PDA"
#: ../js/ui/status/power.js:249 #: ../js/ui/status/power.js:241
msgid "Cell phone" msgid "Cell phone"
msgstr "Mobiele telefoon" msgstr "Mobiele telefoon"
#: ../js/ui/status/power.js:251 #: ../js/ui/status/power.js:243
msgid "Media player" msgid "Media player"
msgstr "Mediaspeler" msgstr "Mediaspeler"
#: ../js/ui/status/power.js:253 #: ../js/ui/status/power.js:245
msgid "Tablet" msgid "Tablet"
msgstr "Tablet" msgstr "Tablet"
#: ../js/ui/status/power.js:255 #: ../js/ui/status/power.js:247
msgid "Computer" msgid "Computer"
msgstr "Computer" msgstr "Computer"
#: ../js/ui/status/power.js:257 ../src/shell-app-system.c:1013 #: ../js/ui/status/power.js:249 ../src/shell-app-system.c:1013
msgid "Unknown" msgid "Unknown"
msgstr "Onbekend" msgstr "Onbekend"
#: ../js/ui/status/volume.js:42 #: ../js/ui/status/volume.js:45
msgid "Volume" msgid "Volume"
msgstr "Volume" msgstr "Volume"
#: ../js/ui/status/volume.js:55 #: ../js/ui/status/volume.js:58
msgid "Microphone" msgid "Microphone"
msgstr "Microfoon" msgstr "Microfoon"
#: ../js/ui/telepathyClient.js:563 #: ../js/ui/telepathyClient.js:239
#, c-format #, c-format
msgid "%s is online." msgid "%s is online."
msgstr "%s is online." msgstr "%s is online."
#: ../js/ui/telepathyClient.js:568 #: ../js/ui/telepathyClient.js:244
#, c-format #, c-format
msgid "%s is offline." msgid "%s is offline."
msgstr "%s is offline." msgstr "%s is offline."
#: ../js/ui/telepathyClient.js:571 #: ../js/ui/telepathyClient.js:247
#, c-format #, c-format
msgid "%s is away." msgid "%s is away."
msgstr "%s is afwezig." msgstr "%s is afwezig."
#: ../js/ui/telepathyClient.js:574 #: ../js/ui/telepathyClient.js:250
#, c-format #, c-format
msgid "%s is busy." msgid "%s is busy."
msgstr "%s is bezig." msgstr "%s is bezig."
@ -919,28 +946,36 @@ msgstr "%s is bezig."
#. Translators: this is a time format string followed by a date. #. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your #. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds. #. locale, without seconds.
#: ../js/ui/telepathyClient.js:669 #: ../js/ui/telepathyClient.js:357
#, no-c-format #, no-c-format
msgid "Sent at %X on %A" msgid "Sent at %X on %A"
msgstr "Verzonden om %H:%M op %A %e %B %Y" msgstr "Verzonden om %H:%M op %A %e %B %Y"
#: ../js/ui/viewSelector.js:26 #. Translators: this is the text displayed
msgid "Search your computer" #. in the search entry when no search is
msgstr "De computer doorzoeken" #. active; it should not exceed ~30
#. characters.
#: ../js/ui/viewSelector.js:119
msgid "Type to search..."
msgstr "Typ om te zoeken…"
#: ../js/ui/windowAttentionHandler.js:43 #: ../js/ui/viewSelector.js:139 ../src/shell-util.c:250
msgid "Search"
msgstr "Zoeken"
#: ../js/ui/windowAttentionHandler.js:42
#, c-format #, c-format
msgid "%s has finished starting" msgid "%s has finished starting"
msgstr "%s is opgestart" msgstr "%s is opgestart"
#: ../js/ui/windowAttentionHandler.js:45 #: ../js/ui/windowAttentionHandler.js:44
#, c-format #, c-format
msgid "'%s' is ready" msgid "'%s' is ready"
msgstr "%s is klaar" msgstr "%s is klaar"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1094 #: ../src/gvc/gvc-mixer-control.c:1098
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -949,49 +984,57 @@ msgstr[1] "%u uitvoerkanalen"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1104 #: ../src/gvc/gvc-mixer-control.c:1108
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u invoerkanaal" msgstr[0] "%u invoerkanaal"
msgstr[1] "%u invoerkanalen" msgstr[1] "%u invoerkanalen"
#: ../src/gvc/gvc-mixer-control.c:1402 #: ../src/gvc/gvc-mixer-control.c:1406
msgid "System Sounds" msgid "System Sounds"
msgstr "Systeemgeluiden" msgstr "Systeemgeluiden"
#: ../src/shell-global.c:1363 #: ../src/main.c:395
msgid "Print version"
msgstr "Versie weergeven"
#: ../src/shell-global.c:1308
msgid "Less than a minute ago" msgid "Less than a minute ago"
msgstr "Minder dan een minuut geleden" msgstr "Minder dan een minuut geleden"
#: ../src/shell-global.c:1367 #: ../src/shell-global.c:1312
#, c-format #, c-format
msgid "%d minute ago" msgid "%d minute ago"
msgid_plural "%d minutes ago" msgid_plural "%d minutes ago"
msgstr[0] "%d minuut geleden" msgstr[0] "%d minuut geleden"
msgstr[1] "%d minuten geleden" msgstr[1] "%d minuten geleden"
#: ../src/shell-global.c:1372 #: ../src/shell-global.c:1317
#, c-format #, c-format
msgid "%d hour ago" msgid "%d hour ago"
msgid_plural "%d hours ago" msgid_plural "%d hours ago"
msgstr[0] "%d uur geleden" msgstr[0] "%d uur geleden"
msgstr[1] "%d uur geleden" msgstr[1] "%d uur geleden"
#: ../src/shell-global.c:1377 #: ../src/shell-global.c:1322
#, c-format #, c-format
msgid "%d day ago" msgid "%d day ago"
msgid_plural "%d days ago" msgid_plural "%d days ago"
msgstr[0] "%d dag geleden" msgstr[0] "%d dag geleden"
msgstr[1] "%d dagen geleden" msgstr[1] "%d dagen geleden"
#: ../src/shell-global.c:1382 #: ../src/shell-global.c:1327
#, c-format #, c-format
msgid "%d week ago" msgid "%d week ago"
msgid_plural "%d weeks ago" msgid_plural "%d weeks ago"
msgstr[0] "%d week geleden" msgstr[0] "%d week geleden"
msgstr[1] "%d weken geleden" msgstr[1] "%d weken geleden"
#: ../src/shell-polkit-authentication-agent.c:334
msgid "Authentication dialog was dismissed by the user"
msgstr "Authenticatievenster is door de gebruiker afgesloten"
#: ../src/shell-util.c:89 #: ../src/shell-util.c:89
msgid "Home Folder" msgid "Home Folder"
msgstr "Persoonlijke map" msgstr "Persoonlijke map"
@ -1002,10 +1045,6 @@ msgstr "Persoonlijke map"
msgid "File System" msgid "File System"
msgstr "Bestandssysteem" msgstr "Bestandssysteem"
#: ../src/shell-util.c:250
msgid "Search"
msgstr "Zoeken"
#. Translators: the first string is the name of a gvfs #. Translators: the first string is the name of a gvfs
#. * method, and the second string is a path. For #. * method, and the second string is a path. For
#. * example, "Trash: some-directory". It means that the #. * example, "Trash: some-directory". It means that the
@ -1016,6 +1055,15 @@ msgstr "Zoeken"
msgid "%1$s: %2$s" msgid "%1$s: %2$s"
msgstr "%1$s: %2$s" msgstr "%1$s: %2$s"
#~ msgid "PREFERENCES"
#~ msgstr "VOORKEUREN"
#~ msgid "Shut Down..."
#~ msgstr "Afsluiten…"
#~ msgid "Search your computer"
#~ msgstr "De computer doorzoeken"
#~ msgid "Clock" #~ msgid "Clock"
#~ msgstr "Klok" #~ msgstr "Klok"

1443
po/ro.po

File diff suppressed because it is too large Load Diff

172
po/uk.po
View File

@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-03-02 17:36+0200\n" "POT-Creation-Date: 2011-03-10 18:48+0200\n"
"PO-Revision-Date: 2011-03-02 17:37+0300\n" "PO-Revision-Date: 2011-03-10 20:18+0300\n"
"Last-Translator: Korostil Daniel <ted.korostiled@gmail.com>\n" "Last-Translator: Korostil Daniel <ted.korostiled@gmail.com>\n"
"Language-Team: translation@linux.org.ua\n" "Language-Team: translation@linux.org.ua\n"
"Language: uk\n" "Language: uk\n"
@ -193,27 +193,27 @@ msgid "Execution of '%s' failed:"
msgstr "Не вдалось виконати «%s»:" msgstr "Не вдалось виконати «%s»:"
#. Translators: Filter to display all applications #. Translators: Filter to display all applications
#: ../js/ui/appDisplay.js:195 #: ../js/ui/appDisplay.js:226
msgid "All" msgid "All"
msgstr "Всі" msgstr "Всі"
#: ../js/ui/appDisplay.js:282 #: ../js/ui/appDisplay.js:324
msgid "APPLICATIONS" msgid "APPLICATIONS"
msgstr "ПРОГРАМИ" msgstr "ПРОГРАМИ"
#: ../js/ui/appDisplay.js:312 #: ../js/ui/appDisplay.js:350
msgid "SETTINGS" msgid "SETTINGS"
msgstr "ПАРАМЕТРИ" msgstr "ПАРАМЕТРИ"
#: ../js/ui/appDisplay.js:572 #: ../js/ui/appDisplay.js:612
msgid "New Window" msgid "New Window"
msgstr "Нове вікно" msgstr "Нове вікно"
#: ../js/ui/appDisplay.js:575 #: ../js/ui/appDisplay.js:615
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "Вилучити з улюбленого" msgstr "Вилучити з улюбленого"
#: ../js/ui/appDisplay.js:576 #: ../js/ui/appDisplay.js:616
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "Додати до улюбленого" msgstr "Додати до улюбленого"
@ -373,7 +373,7 @@ msgstr "Цей тиждень"
msgid "Next week" msgid "Next week"
msgstr "Наступний тиждень" msgstr "Наступний тиждень"
#: ../js/ui/dash.js:174 #: ../js/ui/dash.js:174 ../js/ui/messageTray.js:931
msgid "Remove" msgid "Remove"
msgstr "Вилучити" msgstr "Вилучити"
@ -381,54 +381,54 @@ msgstr "Вилучити"
msgid "Date and Time Settings" msgid "Date and Time Settings"
msgstr "Параметри дати і часу" msgstr "Параметри дати і часу"
#: ../js/ui/dateMenu.js:110 #: ../js/ui/dateMenu.js:111
msgid "Open Calendar" msgid "Open Calendar"
msgstr "Відкрити календар" msgstr "Відкрити календар"
#. Translators: This is the time format with date used #. Translators: This is the time format with date used
#. in 24-hour mode. #. in 24-hour mode.
#: ../js/ui/dateMenu.js:162 #: ../js/ui/dateMenu.js:164
msgid "%a %b %e, %R:%S" msgid "%a %b %e, %R:%S"
msgstr "%a %b %e, %R:%S" msgstr "%a %b %e, %R:%S"
#: ../js/ui/dateMenu.js:163 #: ../js/ui/dateMenu.js:165
msgid "%a %b %e, %R" msgid "%a %b %e, %R"
msgstr "%a %b %e, %R" msgstr "%a %b %e, %R"
#. Translators: This is the time format without date used #. Translators: This is the time format without date used
#. in 24-hour mode. #. in 24-hour mode.
#: ../js/ui/dateMenu.js:167 #: ../js/ui/dateMenu.js:169
msgid "%a %R:%S" msgid "%a %R:%S"
msgstr "%a %R:%S" msgstr "%a %R:%S"
#: ../js/ui/dateMenu.js:168 #: ../js/ui/dateMenu.js:170
msgid "%a %R" msgid "%a %R"
msgstr "%a %R" msgstr "%a %R"
#. Translators: This is a time format with date used #. Translators: This is a time format with date used
#. for AM/PM. #. for AM/PM.
#: ../js/ui/dateMenu.js:175 #: ../js/ui/dateMenu.js:177
msgid "%a %b %e, %l:%M:%S %p" msgid "%a %b %e, %l:%M:%S %p"
msgstr "%a %b %e, %l:%M:%S %p" msgstr "%a %b %e, %l:%M:%S %p"
#: ../js/ui/dateMenu.js:176 #: ../js/ui/dateMenu.js:178
msgid "%a %b %e, %l:%M %p" msgid "%a %b %e, %l:%M %p"
msgstr "%a %b %e, %l:%M %p" msgstr "%a %b %e, %l:%M %p"
#. Translators: This is a time format without date used #. Translators: This is a time format without date used
#. for AM/PM. #. for AM/PM.
#: ../js/ui/dateMenu.js:180 #: ../js/ui/dateMenu.js:182
msgid "%a %l:%M:%S %p" msgid "%a %l:%M:%S %p"
msgstr "%a %l:%M:%S %p" msgstr "%a %l:%M:%S %p"
#: ../js/ui/dateMenu.js:181 #: ../js/ui/dateMenu.js:183
msgid "%a %l:%M %p" msgid "%a %l:%M %p"
msgstr "%a %l:%M %p" msgstr "%a %l:%M %p"
#. 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:207 #: ../js/ui/dateMenu.js:209
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%A %B %e, %Y" msgstr "%A %B %e, %Y"
@ -506,37 +506,41 @@ msgstr "Підтвердити"
msgid "Cancel" msgid "Cancel"
msgstr "Скасувати" msgstr "Скасувати"
#: ../js/ui/lookingGlass.js:587 #: ../js/ui/lookingGlass.js:588
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Не встановлено розширення" msgstr "Не встановлено розширення"
#: ../js/ui/lookingGlass.js:624 #: ../js/ui/lookingGlass.js:625
msgid "Enabled" msgid "Enabled"
msgstr "Увімкнено" msgstr "Увімкнено"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:626 ../src/gvc/gvc-mixer-control.c:1087 #: ../js/ui/lookingGlass.js:627 ../src/gvc/gvc-mixer-control.c:1087
msgid "Disabled" msgid "Disabled"
msgstr "Вимкнено" msgstr "Вимкнено"
#: ../js/ui/lookingGlass.js:628 #: ../js/ui/lookingGlass.js:629
msgid "Error" msgid "Error"
msgstr "Помилка" msgstr "Помилка"
#: ../js/ui/lookingGlass.js:630 #: ../js/ui/lookingGlass.js:631
msgid "Out of date" msgid "Out of date"
msgstr "Застаріло" msgstr "Застаріло"
#: ../js/ui/lookingGlass.js:655 #: ../js/ui/lookingGlass.js:656
msgid "View Source" msgid "View Source"
msgstr "Переглянути джерело" msgstr "Переглянути джерело"
#: ../js/ui/lookingGlass.js:661 #: ../js/ui/lookingGlass.js:662
msgid "Web Page" msgid "Web Page"
msgstr "Веб-сторінка" msgstr "Веб-сторінка"
#: ../js/ui/messageTray.js:1902 #: ../js/ui/messageTray.js:924
msgid "Open"
msgstr "Відкрити"
#: ../js/ui/messageTray.js:1961
msgid "System Information" msgid "System Information"
msgstr "Інформація про систему" msgstr "Інформація про систему"
@ -552,18 +556,28 @@ msgstr "Вікна"
msgid "Applications" msgid "Applications"
msgstr "Програми" msgstr "Програми"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/overview.js:202
msgid "Dash"
msgstr "Риска"
#. TODO - _quit() doesn't really work on apps in state STARTING yet #. TODO - _quit() doesn't really work on apps in state STARTING yet
#: ../js/ui/panel.js:529 #: ../js/ui/panel.js:560
#, c-format #, c-format
msgid "Quit %s" msgid "Quit %s"
msgstr "Вийти з %s" msgstr "Вийти з %s"
#. Button on the left side of the panel. #. Button on the left side of the panel.
#. Translators: If there is no suitable word for "Activities" in your language, you can use the word for "Overview". #. Translators: If there is no suitable word for "Activities" in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:897 #: ../js/ui/panel.js:919
msgid "Activities" msgid "Activities"
msgstr "Дії" msgstr "Дії"
#: ../js/ui/panel.js:1020
msgid "Panel"
msgstr "Панель"
#: ../js/ui/placeDisplay.js:122 #: ../js/ui/placeDisplay.js:122
#, c-format #, c-format
msgid "Failed to unmount '%s'" msgid "Failed to unmount '%s'"
@ -586,7 +600,7 @@ msgstr "МІСЦЯ ТА ПРИСТРОЇ"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle #. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will #. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches. #. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:612 #: ../js/ui/popupMenu.js:618
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -594,91 +608,91 @@ msgstr "toggle-switch-intl"
msgid "Please enter a command:" msgid "Please enter a command:"
msgstr "Будь ласка, введіть команду:" msgstr "Будь ласка, введіть команду:"
#: ../js/ui/searchDisplay.js:295 #: ../js/ui/searchDisplay.js:283
msgid "Searching..." msgid "Searching..."
msgstr "Пошук…" msgstr "Пошук…"
#: ../js/ui/searchDisplay.js:309 #: ../js/ui/searchDisplay.js:297
msgid "No matching results." msgid "No matching results."
msgstr "Нема збігів." msgstr "Нема збігів."
#: ../js/ui/statusMenu.js:102 ../js/ui/statusMenu.js:166 #: ../js/ui/statusMenu.js:113 ../js/ui/statusMenu.js:177
msgid "Power Off..." msgid "Power Off..."
msgstr "Вимкнення живлення…" msgstr "Вимкнення живлення…"
#: ../js/ui/statusMenu.js:104 ../js/ui/statusMenu.js:165 #: ../js/ui/statusMenu.js:115 ../js/ui/statusMenu.js:176
msgid "Suspend" msgid "Suspend"
msgstr "Призупинити" msgstr "Призупинити"
#: ../js/ui/statusMenu.js:125 #: ../js/ui/statusMenu.js:136
msgid "Available" msgid "Available"
msgstr "Доступний" msgstr "Доступний"
#: ../js/ui/statusMenu.js:130 #: ../js/ui/statusMenu.js:141
msgid "Busy" msgid "Busy"
msgstr "Зайнятий" msgstr "Зайнятий"
#: ../js/ui/statusMenu.js:138 #: ../js/ui/statusMenu.js:149
msgid "My Account" msgid "My Account"
msgstr "Мій обліковий запис" msgstr "Мій обліковий запис"
#: ../js/ui/statusMenu.js:142 #: ../js/ui/statusMenu.js:153
msgid "System Settings" msgid "System Settings"
msgstr "Системні параметри" msgstr "Системні параметри"
#: ../js/ui/statusMenu.js:149 #: ../js/ui/statusMenu.js:160
msgid "Lock Screen" msgid "Lock Screen"
msgstr "Заблокувати екран" msgstr "Заблокувати екран"
#: ../js/ui/statusMenu.js:153 #: ../js/ui/statusMenu.js:164
msgid "Switch User" msgid "Switch User"
msgstr "Змінити користувача" msgstr "Змінити користувача"
#: ../js/ui/statusMenu.js:158 #: ../js/ui/statusMenu.js:169
msgid "Log Out..." msgid "Log Out..."
msgstr "Завершити сеанс…" msgstr "Завершити сеанс…"
#: ../js/ui/status/accessibility.js:81 #: ../js/ui/status/accessibility.js:62
msgid "Zoom" msgid "Zoom"
msgstr "Масштаб" msgstr "Масштаб"
#: ../js/ui/status/accessibility.js:88 #: ../js/ui/status/accessibility.js:69
msgid "Screen Reader" msgid "Screen Reader"
msgstr "Читання з екрану" msgstr "Читання з екрану"
#: ../js/ui/status/accessibility.js:92 #: ../js/ui/status/accessibility.js:73
msgid "Screen Keyboard" msgid "Screen Keyboard"
msgstr "Екранна клавіатура" msgstr "Екранна клавіатура"
#: ../js/ui/status/accessibility.js:96 #: ../js/ui/status/accessibility.js:77
msgid "Visual Alerts" msgid "Visual Alerts"
msgstr "Візуальні тривоги" msgstr "Візуальні тривоги"
#: ../js/ui/status/accessibility.js:99 #: ../js/ui/status/accessibility.js:80
msgid "Sticky Keys" msgid "Sticky Keys"
msgstr "Липкі клавіші" msgstr "Липкі клавіші"
#: ../js/ui/status/accessibility.js:102 #: ../js/ui/status/accessibility.js:83
msgid "Slow Keys" msgid "Slow Keys"
msgstr "Повільні клавіші" msgstr "Повільні клавіші"
#: ../js/ui/status/accessibility.js:105 #: ../js/ui/status/accessibility.js:86
msgid "Bounce Keys" msgid "Bounce Keys"
msgstr "Пружні клавіші" msgstr "Пружні клавіші"
#: ../js/ui/status/accessibility.js:108 #: ../js/ui/status/accessibility.js:89
msgid "Mouse Keys" msgid "Mouse Keys"
msgstr "Клавіші миші" msgstr "Клавіші миші"
#: ../js/ui/status/accessibility.js:112 #: ../js/ui/status/accessibility.js:93
msgid "Universal Access Settings" msgid "Universal Access Settings"
msgstr "Параметри універсального доступу" msgstr "Параметри універсального доступу"
#: ../js/ui/status/accessibility.js:164 #: ../js/ui/status/accessibility.js:145
msgid "High Contrast" msgid "High Contrast"
msgstr "Висока контрастність" msgstr "Висока контрастність"
#: ../js/ui/status/accessibility.js:209 #: ../js/ui/status/accessibility.js:182
msgid "Large Text" msgid "Large Text"
msgstr "Більший текст" msgstr "Більший текст"
@ -849,51 +863,51 @@ msgstr[0] "Залишилось %d хвилина"
msgstr[1] "Залишилось %d хвилини" msgstr[1] "Залишилось %d хвилини"
msgstr[2] "Залишилось %d хвилин" msgstr[2] "Залишилось %d хвилин"
#: ../js/ui/status/power.js:241 #: ../js/ui/status/power.js:227
msgid "AC adapter" msgid "AC adapter"
msgstr "Блок живлення" msgstr "Блок живлення"
#: ../js/ui/status/power.js:243 #: ../js/ui/status/power.js:229
msgid "Laptop battery" msgid "Laptop battery"
msgstr "Батарея ноутбука" msgstr "Батарея ноутбука"
#: ../js/ui/status/power.js:245 #: ../js/ui/status/power.js:231
msgid "UPS" msgid "UPS"
msgstr "UPS" msgstr "UPS"
#: ../js/ui/status/power.js:247 #: ../js/ui/status/power.js:233
msgid "Monitor" msgid "Monitor"
msgstr "Монітор" msgstr "Монітор"
#: ../js/ui/status/power.js:249 #: ../js/ui/status/power.js:235
msgid "Mouse" msgid "Mouse"
msgstr "Миша" msgstr "Миша"
#: ../js/ui/status/power.js:251 #: ../js/ui/status/power.js:237
msgid "Keyboard" msgid "Keyboard"
msgstr "Клавіатура" msgstr "Клавіатура"
#: ../js/ui/status/power.js:253 #: ../js/ui/status/power.js:239
msgid "PDA" msgid "PDA"
msgstr "КПК" msgstr "КПК"
#: ../js/ui/status/power.js:255 #: ../js/ui/status/power.js:241
msgid "Cell phone" msgid "Cell phone"
msgstr "Мобільний телефон" msgstr "Мобільний телефон"
#: ../js/ui/status/power.js:257 #: ../js/ui/status/power.js:243
msgid "Media player" msgid "Media player"
msgstr "Програвач" msgstr "Програвач"
#: ../js/ui/status/power.js:259 #: ../js/ui/status/power.js:245
msgid "Tablet" msgid "Tablet"
msgstr "Планшет" msgstr "Планшет"
#: ../js/ui/status/power.js:261 #: ../js/ui/status/power.js:247
msgid "Computer" msgid "Computer"
msgstr "Комп'ютер" msgstr "Комп'ютер"
#: ../js/ui/status/power.js:263 ../src/shell-app-system.c:1013 #: ../js/ui/status/power.js:249 ../src/shell-app-system.c:1013
msgid "Unknown" msgid "Unknown"
msgstr "Невідомо" msgstr "Невідомо"
@ -928,7 +942,7 @@ msgstr "%s зайнятий."
#. Translators: this is a time format string followed by a date. #. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your #. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds. #. locale, without seconds.
#: ../js/ui/telepathyClient.js:348 #: ../js/ui/telepathyClient.js:357
#, no-c-format #, no-c-format
msgid "Sent at %X on %A" msgid "Sent at %X on %A"
msgstr "Відправити на %X в %A" msgstr "Відправити на %X в %A"
@ -937,16 +951,20 @@ msgstr "Відправити на %X в %A"
#. 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/viewSelector.js:103 #: ../js/ui/viewSelector.js:117
msgid "Type to search..." msgid "Type to search..."
msgstr "Введіть для пошуку…" msgstr "Введіть для пошуку…"
#: ../js/ui/windowAttentionHandler.js:43 #: ../js/ui/viewSelector.js:137 ../src/shell-util.c:250
msgid "Search"
msgstr "Пошук"
#: ../js/ui/windowAttentionHandler.js:42
#, c-format #, c-format
msgid "%s has finished starting" msgid "%s has finished starting"
msgstr "%s завершив запуск" msgstr "%s завершив запуск"
#: ../js/ui/windowAttentionHandler.js:45 #: ../js/ui/windowAttentionHandler.js:44
#, c-format #, c-format
msgid "'%s' is ready" msgid "'%s' is ready"
msgstr "«%s» готовий" msgstr "«%s» готовий"
@ -975,11 +993,15 @@ msgstr[2] "%u входів"
msgid "System Sounds" msgid "System Sounds"
msgstr "Системні звуки" msgstr "Системні звуки"
#: ../src/shell-global.c:1298 #: ../src/main.c:395
msgid "Print version"
msgstr "Показати версію"
#: ../src/shell-global.c:1308
msgid "Less than a minute ago" msgid "Less than a minute ago"
msgstr "Менше хвилини тому" msgstr "Менше хвилини тому"
#: ../src/shell-global.c:1302 #: ../src/shell-global.c:1312
#, c-format #, c-format
msgid "%d minute ago" msgid "%d minute ago"
msgid_plural "%d minutes ago" msgid_plural "%d minutes ago"
@ -987,7 +1009,7 @@ msgstr[0] "%d хвилина тому"
msgstr[1] "%d хвилини тому" msgstr[1] "%d хвилини тому"
msgstr[2] "%d хвилин тому" msgstr[2] "%d хвилин тому"
#: ../src/shell-global.c:1307 #: ../src/shell-global.c:1317
#, c-format #, c-format
msgid "%d hour ago" msgid "%d hour ago"
msgid_plural "%d hours ago" msgid_plural "%d hours ago"
@ -995,7 +1017,7 @@ msgstr[0] "%d година тому"
msgstr[1] "%d години тому" msgstr[1] "%d години тому"
msgstr[2] "%d годин тому" msgstr[2] "%d годин тому"
#: ../src/shell-global.c:1312 #: ../src/shell-global.c:1322
#, c-format #, c-format
msgid "%d day ago" msgid "%d day ago"
msgid_plural "%d days ago" msgid_plural "%d days ago"
@ -1003,7 +1025,7 @@ msgstr[0] "%d день тому"
msgstr[1] "%d дні тому" msgstr[1] "%d дні тому"
msgstr[2] "%d днів тому" msgstr[2] "%d днів тому"
#: ../src/shell-global.c:1317 #: ../src/shell-global.c:1327
#, c-format #, c-format
msgid "%d week ago" msgid "%d week ago"
msgid_plural "%d weeks ago" msgid_plural "%d weeks ago"
@ -1025,10 +1047,6 @@ msgstr "Домашня тека"
msgid "File System" msgid "File System"
msgstr "Файлова система" msgstr "Файлова система"
#: ../src/shell-util.c:250
msgid "Search"
msgstr "Пошук"
#. Translators: the first string is the name of a gvfs #. Translators: the first string is the name of a gvfs
#. * method, and the second string is a path. For #. * method, and the second string is a path. For
#. * example, "Trash: some-directory". It means that the #. * example, "Trash: some-directory". It means that the

View File

@ -44,7 +44,7 @@ libgvc_la_SOURCES = \
$(libgvc_la_private_sources) $(libgvc_la_private_sources)
Gvc-1.0.gir: libgvc.la Gvc-1.0.gir: libgvc.la
Gvc_1_0_gir_INCLUDES = GObject-2.0 Gvc_1_0_gir_INCLUDES = GObject-2.0 Gio-2.0
Gvc_1_0_gir_CFLAGS = $(INCLUDES) -I$(srcdir)/gvc -DWITH_INTROSPECTION Gvc_1_0_gir_CFLAGS = $(INCLUDES) -I$(srcdir)/gvc -DWITH_INTROSPECTION
Gvc_1_0_gir_LIBS = libgvc.la Gvc_1_0_gir_LIBS = libgvc.la
Gvc_1_0_gir_FILES = $(addprefix $(srcdir)/,$(libgvc_la_gir_sources)) Gvc_1_0_gir_FILES = $(addprefix $(srcdir)/,$(libgvc_la_gir_sources))

View File

@ -39,7 +39,6 @@ generated_script_substitutions = \
-e "s|@libexecdir[@]|$(libexecdir)|" \ -e "s|@libexecdir[@]|$(libexecdir)|" \
-e "s|@libdir[@]|$(libdir)|" \ -e "s|@libdir[@]|$(libdir)|" \
-e "s|@pkgdatadir[@]|$(pkgdatadir)|" \ -e "s|@pkgdatadir[@]|$(pkgdatadir)|" \
-e "s|@ENABLE_DYNAMIC_MOZJS_HACK[@]|$(ENABLE_DYNAMIC_MOZJS_HACK)|" \
-e "s|@PYTHON[@]|$(PYTHON)|" \ -e "s|@PYTHON[@]|$(PYTHON)|" \
-e "s|@VERSION[@]|$(VERSION)|" \ -e "s|@VERSION[@]|$(VERSION)|" \
-e "s|@sysconfdir[@]|$(sysconfdir)|" -e "s|@sysconfdir[@]|$(sysconfdir)|"
@ -169,6 +168,14 @@ endif BUILD_RECORDER
######################################## ########################################
libexec_PROGRAMS += gnome-shell-perf-helper
gnome_shell_perf_helper_SOURCES = shell-perf-helper.c
gnome_shell_perf_helper_CPPFLAGS = $(SHELL_PERF_HELPER_CFLAGS)
gnome_shell_perf_helper_LDADD = $(SHELL_PERF_HELPER_LIBS)
########################################
# In order to run the interactive tests for GUI components, we need to have # In order to run the interactive tests for GUI components, we need to have
# an executable that exports the St components. Libtool doesn't have a way # an executable that exports the St components. Libtool doesn't have a way
# to include all the symbols from a convenience library into a executable # to include all the symbols from a convenience library into a executable

View File

@ -79,11 +79,56 @@ def get_running_session_environs():
result[key] = environs[key] result[key] = environs[key]
return result return result
_bus = None
_bus_iface = None
_name_owner_changed_hook = None
def on_name_owner_changed(name, prev_owner, new_owner):
if _name_owner_changed_hook:
_name_owner_changed_hook(name, prev_owner, new_owner)
def get_bus():
global _bus
if _bus is None:
dbus_loop = DBusGMainLoop()
_bus = dbus.SessionBus(mainloop=dbus_loop)
return _bus
def get_bus_iface():
global _bus_iface
if _bus_iface is None:
bus = get_bus()
bus_proxy = bus.get_object('org.freedesktop.DBus', '/org/freedesktop/DBus')
_bus_iface = dbus.Interface(bus_proxy, 'org.freedesktop.DBus')
_bus_iface.connect_to_signal('NameOwnerChanged', on_name_owner_changed)
return _bus_iface
def wait_for_dbus_name(wait_name):
global _name_owner_changed_hook
bus_iface = get_bus_iface()
loop = gobject.MainLoop()
def on_name_owner_changed(name, prev_owner, new_owner):
if not (name == wait_name and new_owner != ''):
return
loop.quit()
return
_name_owner_changed_hook = on_name_owner_changed
def on_timeout():
print "\nFailed to start %s: timed out" % (wait_name,)
sys.exit(1)
gobject.timeout_add_seconds(7, on_timeout)
loop.run()
_name_owner_changed_hook = None
def start_dconf_await_service(): def start_dconf_await_service():
DCONF_NAME = 'ca.desrt.dconf' DCONF_NAME = 'ca.desrt.dconf'
dbus_loop = DBusGMainLoop() bus = get_bus()
bus = dbus.SessionBus(mainloop=dbus_loop) get_bus_iface() # connect to NameOwnerChanged signal
# See if the service is already running or normal D-Bus activation works # See if the service is already running or normal D-Bus activation works
need_manual_activate = False need_manual_activate = False
@ -122,25 +167,30 @@ def start_dconf_await_service():
print "\nFailed to start %s: %s" % (dconf_path, e) print "\nFailed to start %s: %s" % (dconf_path, e)
sys.exit(1) sys.exit(1)
bus_proxy = bus.get_object('org.freedesktop.DBus', '/org/freedesktop/DBus') wait_for_dbus_name (DCONF_NAME)
bus_iface = dbus.Interface(bus_proxy, 'org.freedesktop.DBus')
loop = gobject.MainLoop() PERF_HELPER_NAME = "org.gnome.Shell.PerfHelper"
PERF_HELPER_IFACE = "org.gnome.Shell.PerfHelper"
PERF_HELPER_PATH = "/org/gnome/Shell/PerfHelper"
def on_name_owner_changed(name, prev_owner, new_owner): def start_perf_helper():
if not (name == DCONF_NAME and new_owner != ''): get_bus_iface() # connect to NameOwnerChanged signal
return
print "started"
loop.quit()
return
bus_iface.connect_to_signal('NameOwnerChanged', on_name_owner_changed)
def on_timeout(): self_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
print "\nFailed to start %s: timed out" % (dconf_path,) running_from_source_tree = os.path.exists(os.path.join(self_dir, 'gnome-shell-jhbuild.in'))
sys.exit(1)
gobject.timeout_add_seconds(7, on_timeout)
loop.run() if running_from_source_tree:
perf_helper_path = os.path.join(self_dir, "gnome-shell-perf-helper")
else:
perf_helper_path = "@libexecdir@/gnome-shell-perf-helper"
subprocess.Popen([perf_helper_path])
wait_for_dbus_name (PERF_HELPER_NAME)
def stop_perf_helper():
bus = get_bus()
proxy = bus.get_object(PERF_HELPER_NAME, PERF_HELPER_PATH)
proxy.Exit(dbus_interface=PERF_HELPER_IFACE)
def start_shell(perf_output=None): def start_shell(perf_output=None):
self_dir = os.path.dirname(os.path.abspath(sys.argv[0])) self_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
@ -185,6 +235,7 @@ def start_shell(perf_output=None):
if options.perf is not None: if options.perf is not None:
env['SHELL_PERF_MODULE'] = options.perf env['SHELL_PERF_MODULE'] = options.perf
env['MUTTER_WM_CLASS_FILTER'] = 'Gnome-shell-perf-helper'
if perf_output is not None: if perf_output is not None:
env['SHELL_PERF_OUTPUT'] = perf_output env['SHELL_PERF_OUTPUT'] = perf_output
@ -362,6 +413,8 @@ def run_performance_test():
logs = [] logs = []
metric_summaries = {} metric_summaries = {}
start_perf_helper()
for i in xrange(0, iters): for i in xrange(0, iters):
# We create an empty temporary file that the shell will overwrite # We create an empty temporary file that the shell will overwrite
# with the contents. # with the contents.
@ -372,17 +425,24 @@ def run_performance_test():
normal_exit = False normal_exit = False
try: try:
normal_exit = run_shell(perf_output=output_file) normal_exit = run_shell(perf_output=output_file)
except:
stop_perf_helper()
raise
finally: finally:
if not normal_exit: if not normal_exit:
os.remove(output_file) os.remove(output_file)
if not normal_exit: if not normal_exit:
stop_perf_helper()
return False return False
try: try:
f = open(output_file) f = open(output_file)
output = json.load(f) output = json.load(f)
f.close() f.close()
except:
stop_perf_helper()
raise
finally: finally:
os.remove(output_file) os.remove(output_file)
@ -409,6 +469,8 @@ def run_performance_test():
logs.append(output['log']) logs.append(output['log'])
stop_perf_helper()
if options.perf_output or options.perf_upload: if options.perf_output or options.perf_upload:
# Write a complete report, formatted as JSON. The Javascript/C code that # Write a complete report, formatted as JSON. The Javascript/C code that
# generates the individual reports we are summarizing here is very careful # generates the individual reports we are summarizing here is very careful
@ -548,3 +610,8 @@ try:
finally: finally:
if options.replace and (options.perf or not normal_exit): if options.replace and (options.perf or not normal_exit):
restore_gnome() restore_gnome()
if normal_exit:
sys.exit(0)
else:
sys.exit(1)

View File

@ -157,7 +157,7 @@ gvc_mixer_card_get_profile (GvcMixerCard *card)
GList *l; GList *l;
g_return_val_if_fail (GVC_IS_MIXER_CARD (card), NULL); g_return_val_if_fail (GVC_IS_MIXER_CARD (card), NULL);
g_return_val_if_fail (card->priv->profiles != NULL, FALSE); g_return_val_if_fail (card->priv->profiles != NULL, NULL);
for (l = card->priv->profiles; l != NULL; l = l->next) { for (l = card->priv->profiles; l != NULL; l = l->next) {
GvcMixerCardProfile *p = l->data; GvcMixerCardProfile *p = l->data;
@ -266,7 +266,7 @@ gvc_mixer_card_change_profile (GvcMixerCard *card,
const GList * const GList *
gvc_mixer_card_get_profiles (GvcMixerCard *card) gvc_mixer_card_get_profiles (GvcMixerCard *card)
{ {
g_return_val_if_fail (GVC_IS_MIXER_CARD (card), FALSE); g_return_val_if_fail (GVC_IS_MIXER_CARD (card), NULL);
return card->priv->profiles; return card->priv->profiles;
} }

View File

@ -615,13 +615,13 @@ static void
update_default_source_from_name (GvcMixerControl *control, update_default_source_from_name (GvcMixerControl *control,
const char *name) const char *name)
{ {
gboolean changed; gboolean changed = FALSE;
if ((control->priv->default_source_name == NULL if ((control->priv->default_source_name == NULL
&& name != NULL) && name != NULL)
|| (control->priv->default_source_name != NULL || (control->priv->default_source_name != NULL
&& name == NULL) && name == NULL)
|| strcmp (control->priv->default_source_name, name) != 0) { || (name != NULL && strcmp (control->priv->default_source_name, name) != 0)) {
changed = TRUE; changed = TRUE;
} }
@ -640,13 +640,13 @@ static void
update_default_sink_from_name (GvcMixerControl *control, update_default_sink_from_name (GvcMixerControl *control,
const char *name) const char *name)
{ {
gboolean changed; gboolean changed = FALSE;
if ((control->priv->default_sink_name == NULL if ((control->priv->default_sink_name == NULL
&& name != NULL) && name != NULL)
|| (control->priv->default_sink_name != NULL || (control->priv->default_sink_name != NULL
&& name == NULL) && name == NULL)
|| strcmp (control->priv->default_sink_name, name) != 0) { || (name != NULL && strcmp (control->priv->default_sink_name, name) != 0)) {
changed = TRUE; changed = TRUE;
} }
@ -710,6 +710,58 @@ add_stream (GvcMixerControl *control,
gvc_mixer_stream_get_id (stream)); gvc_mixer_stream_get_id (stream));
} }
static void
set_icon_name_from_proplist (GvcMixerStream *stream,
pa_proplist *l,
const char *default_icon_name)
{
const char *t;
if ((t = pa_proplist_gets (l, PA_PROP_DEVICE_ICON_NAME))) {
goto finish;
}
if ((t = pa_proplist_gets (l, PA_PROP_MEDIA_ICON_NAME))) {
goto finish;
}
if ((t = pa_proplist_gets (l, PA_PROP_WINDOW_ICON_NAME))) {
goto finish;
}
if ((t = pa_proplist_gets (l, PA_PROP_APPLICATION_ICON_NAME))) {
goto finish;
}
if ((t = pa_proplist_gets (l, PA_PROP_MEDIA_ROLE))) {
if (strcmp (t, "video") == 0 ||
strcmp (t, "phone") == 0) {
goto finish;
}
if (strcmp (t, "music") == 0) {
t = "audio";
goto finish;
}
if (strcmp (t, "game") == 0) {
t = "applications-games";
goto finish;
}
if (strcmp (t, "event") == 0) {
t = "dialog-information";
goto finish;
}
}
t = default_icon_name;
finish:
gvc_mixer_stream_set_icon_name (stream, t);
}
static void static void
update_sink (GvcMixerControl *control, update_sink (GvcMixerControl *control,
const pa_sink_info *info) const pa_sink_info *info)
@ -767,7 +819,7 @@ update_sink (GvcMixerControl *control,
gvc_mixer_stream_set_name (stream, info->name); gvc_mixer_stream_set_name (stream, info->name);
gvc_mixer_stream_set_card_index (stream, info->card); gvc_mixer_stream_set_card_index (stream, info->card);
gvc_mixer_stream_set_description (stream, info->description); gvc_mixer_stream_set_description (stream, info->description);
gvc_mixer_stream_set_icon_name (stream, "audio-card"); set_icon_name_from_proplist (stream, info->proplist, "audio-card");
gvc_mixer_stream_set_volume (stream, (guint)max_volume); gvc_mixer_stream_set_volume (stream, (guint)max_volume);
gvc_mixer_stream_set_is_muted (stream, info->mute); gvc_mixer_stream_set_is_muted (stream, info->mute);
gvc_mixer_stream_set_can_decibel (stream, !!(info->flags & PA_SINK_DECIBEL_VOLUME)); gvc_mixer_stream_set_can_decibel (stream, !!(info->flags & PA_SINK_DECIBEL_VOLUME));
@ -856,7 +908,7 @@ update_source (GvcMixerControl *control,
gvc_mixer_stream_set_name (stream, info->name); gvc_mixer_stream_set_name (stream, info->name);
gvc_mixer_stream_set_card_index (stream, info->card); gvc_mixer_stream_set_card_index (stream, info->card);
gvc_mixer_stream_set_description (stream, info->description); gvc_mixer_stream_set_description (stream, info->description);
gvc_mixer_stream_set_icon_name (stream, "audio-input-microphone"); set_icon_name_from_proplist (stream, info->proplist, "audio-input-microphone");
gvc_mixer_stream_set_volume (stream, (guint)max_volume); gvc_mixer_stream_set_volume (stream, (guint)max_volume);
gvc_mixer_stream_set_is_muted (stream, info->mute); gvc_mixer_stream_set_is_muted (stream, info->mute);
gvc_mixer_stream_set_can_decibel (stream, !!(info->flags & PA_SOURCE_DECIBEL_VOLUME)); gvc_mixer_stream_set_can_decibel (stream, !!(info->flags & PA_SOURCE_DECIBEL_VOLUME));
@ -880,54 +932,6 @@ update_source (GvcMixerControl *control,
} }
} }
static void
set_icon_name_from_proplist (GvcMixerStream *stream,
pa_proplist *l,
const char *default_icon_name)
{
const char *t;
if ((t = pa_proplist_gets (l, PA_PROP_MEDIA_ICON_NAME))) {
goto finish;
}
if ((t = pa_proplist_gets (l, PA_PROP_WINDOW_ICON_NAME))) {
goto finish;
}
if ((t = pa_proplist_gets (l, PA_PROP_APPLICATION_ICON_NAME))) {
goto finish;
}
if ((t = pa_proplist_gets (l, PA_PROP_MEDIA_ROLE))) {
if (strcmp (t, "video") == 0 ||
strcmp (t, "phone") == 0) {
goto finish;
}
if (strcmp (t, "music") == 0) {
t = "audio";
goto finish;
}
if (strcmp (t, "game") == 0) {
t = "applications-games";
goto finish;
}
if (strcmp (t, "event") == 0) {
t = "dialog-information";
goto finish;
}
}
t = default_icon_name;
finish:
gvc_mixer_stream_set_icon_name (stream, t);
}
static void static void
set_is_event_stream_from_proplist (GvcMixerStream *stream, set_is_event_stream_from_proplist (GvcMixerStream *stream,
pa_proplist *l) pa_proplist *l)
@ -1121,7 +1125,7 @@ update_card (GvcMixerControl *control,
const pa_card_info *info) const pa_card_info *info)
{ {
GvcMixerCard *card; GvcMixerCard *card;
gboolean is_new; gboolean is_new = FALSE;
#if 1 #if 1
guint i; guint i;
const char *key; const char *key;
@ -1989,6 +1993,11 @@ gvc_mixer_control_dispose (GObject *object)
{ {
GvcMixerControl *control = GVC_MIXER_CONTROL (object); GvcMixerControl *control = GVC_MIXER_CONTROL (object);
if (control->priv->reconnect_id != 0) {
g_source_remove (control->priv->reconnect_id);
control->priv->reconnect_id = 0;
}
if (control->priv->pa_context != NULL) { if (control->priv->pa_context != NULL) {
pa_context_unref (control->priv->pa_context); pa_context_unref (control->priv->pa_context);
control->priv->pa_context = NULL; control->priv->pa_context = NULL;
@ -2230,3 +2239,20 @@ gvc_mixer_control_new (const char *name)
NULL); NULL);
return GVC_MIXER_CONTROL (control); return GVC_MIXER_CONTROL (control);
} }
/* FIXME: Remove when PA 0.9.23 is used */
#ifndef PA_VOLUME_UI_MAX
#define PA_VOLUME_UI_MAX pa_sw_volume_from_dB(+11.0)
#endif
gdouble
gvc_mixer_control_get_vol_max_norm (GvcMixerControl *control)
{
return (gdouble) PA_VOLUME_NORM;
}
gdouble
gvc_mixer_control_get_vol_max_amplified (GvcMixerControl *control)
{
return (gdouble) PA_VOLUME_UI_MAX;
}

View File

@ -91,6 +91,9 @@ gboolean gvc_mixer_control_set_default_sink (GvcMixerControl *con
gboolean gvc_mixer_control_set_default_source (GvcMixerControl *control, gboolean gvc_mixer_control_set_default_source (GvcMixerControl *control,
GvcMixerStream *stream); GvcMixerStream *stream);
gdouble gvc_mixer_control_get_vol_max_norm (GvcMixerControl *control);
gdouble gvc_mixer_control_get_vol_max_amplified (GvcMixerControl *control);
G_END_DECLS G_END_DECLS
#endif /* __GVC_MIXER_CONTROL_H */ #endif /* __GVC_MIXER_CONTROL_H */

View File

@ -156,25 +156,12 @@ gvc_mixer_event_role_get_property (GObject *object,
} }
} }
static GObject *
gvc_mixer_event_role_constructor (GType type,
guint n_construct_properties,
GObjectConstructParam *construct_params)
{
GObject *object;
object = G_OBJECT_CLASS (gvc_mixer_event_role_parent_class)->constructor (type, n_construct_properties, construct_params);
return object;
}
static void static void
gvc_mixer_event_role_class_init (GvcMixerEventRoleClass *klass) gvc_mixer_event_role_class_init (GvcMixerEventRoleClass *klass)
{ {
GObjectClass *object_class = G_OBJECT_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass);
GvcMixerStreamClass *stream_class = GVC_MIXER_STREAM_CLASS (klass); GvcMixerStreamClass *stream_class = GVC_MIXER_STREAM_CLASS (klass);
object_class->constructor = gvc_mixer_event_role_constructor;
object_class->finalize = gvc_mixer_event_role_finalize; object_class->finalize = gvc_mixer_event_role_finalize;
object_class->set_property = gvc_mixer_event_role_set_property; object_class->set_property = gvc_mixer_event_role_set_property;
object_class->get_property = gvc_mixer_event_role_get_property; object_class->get_property = gvc_mixer_event_role_get_property;

View File

@ -43,7 +43,6 @@ struct GvcMixerSinkInputPrivate
static void gvc_mixer_sink_input_class_init (GvcMixerSinkInputClass *klass); static void gvc_mixer_sink_input_class_init (GvcMixerSinkInputClass *klass);
static void gvc_mixer_sink_input_init (GvcMixerSinkInput *mixer_sink_input); static void gvc_mixer_sink_input_init (GvcMixerSinkInput *mixer_sink_input);
static void gvc_mixer_sink_input_finalize (GObject *object); static void gvc_mixer_sink_input_finalize (GObject *object);
static void gvc_mixer_sink_input_dispose (GObject *object);
G_DEFINE_TYPE (GvcMixerSinkInput, gvc_mixer_sink_input, GVC_TYPE_MIXER_STREAM) G_DEFINE_TYPE (GvcMixerSinkInput, gvc_mixer_sink_input, GVC_TYPE_MIXER_STREAM)
@ -107,26 +106,12 @@ gvc_mixer_sink_input_change_is_muted (GvcMixerStream *stream,
return TRUE; return TRUE;
} }
static GObject *
gvc_mixer_sink_input_constructor (GType type,
guint n_construct_properties,
GObjectConstructParam *construct_params)
{
GObject *object;
object = G_OBJECT_CLASS (gvc_mixer_sink_input_parent_class)->constructor (type, n_construct_properties, construct_params);
return object;
}
static void static void
gvc_mixer_sink_input_class_init (GvcMixerSinkInputClass *klass) gvc_mixer_sink_input_class_init (GvcMixerSinkInputClass *klass)
{ {
GObjectClass *object_class = G_OBJECT_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass);
GvcMixerStreamClass *stream_class = GVC_MIXER_STREAM_CLASS (klass); GvcMixerStreamClass *stream_class = GVC_MIXER_STREAM_CLASS (klass);
object_class->constructor = gvc_mixer_sink_input_constructor;
object_class->dispose = gvc_mixer_sink_input_dispose;
object_class->finalize = gvc_mixer_sink_input_finalize; object_class->finalize = gvc_mixer_sink_input_finalize;
stream_class->push_volume = gvc_mixer_sink_input_push_volume; stream_class->push_volume = gvc_mixer_sink_input_push_volume;
@ -141,15 +126,6 @@ gvc_mixer_sink_input_init (GvcMixerSinkInput *sink_input)
sink_input->priv = GVC_MIXER_SINK_INPUT_GET_PRIVATE (sink_input); sink_input->priv = GVC_MIXER_SINK_INPUT_GET_PRIVATE (sink_input);
} }
static void
gvc_mixer_sink_input_dispose (GObject *object)
{
g_return_if_fail (object != NULL);
g_return_if_fail (GVC_IS_MIXER_SINK_INPUT (object));
G_OBJECT_CLASS (gvc_mixer_sink_input_parent_class)->dispose (object);
}
static void static void
gvc_mixer_sink_input_finalize (GObject *object) gvc_mixer_sink_input_finalize (GObject *object)
{ {

View File

@ -43,7 +43,6 @@ struct GvcMixerSinkPrivate
static void gvc_mixer_sink_class_init (GvcMixerSinkClass *klass); static void gvc_mixer_sink_class_init (GvcMixerSinkClass *klass);
static void gvc_mixer_sink_init (GvcMixerSink *mixer_sink); static void gvc_mixer_sink_init (GvcMixerSink *mixer_sink);
static void gvc_mixer_sink_finalize (GObject *object); static void gvc_mixer_sink_finalize (GObject *object);
static void gvc_mixer_sink_dispose (GObject *object);
G_DEFINE_TYPE (GvcMixerSink, gvc_mixer_sink, GVC_TYPE_MIXER_STREAM) G_DEFINE_TYPE (GvcMixerSink, gvc_mixer_sink, GVC_TYPE_MIXER_STREAM)
@ -139,26 +138,12 @@ gvc_mixer_sink_change_port (GvcMixerStream *stream,
#endif /* PA_MICRO > 15 */ #endif /* PA_MICRO > 15 */
} }
static GObject *
gvc_mixer_sink_constructor (GType type,
guint n_construct_properties,
GObjectConstructParam *construct_params)
{
GObject *object;
object = G_OBJECT_CLASS (gvc_mixer_sink_parent_class)->constructor (type, n_construct_properties, construct_params);
return object;
}
static void static void
gvc_mixer_sink_class_init (GvcMixerSinkClass *klass) gvc_mixer_sink_class_init (GvcMixerSinkClass *klass)
{ {
GObjectClass *object_class = G_OBJECT_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass);
GvcMixerStreamClass *stream_class = GVC_MIXER_STREAM_CLASS (klass); GvcMixerStreamClass *stream_class = GVC_MIXER_STREAM_CLASS (klass);
object_class->constructor = gvc_mixer_sink_constructor;
object_class->dispose = gvc_mixer_sink_dispose;
object_class->finalize = gvc_mixer_sink_finalize; object_class->finalize = gvc_mixer_sink_finalize;
stream_class->push_volume = gvc_mixer_sink_push_volume; stream_class->push_volume = gvc_mixer_sink_push_volume;
@ -174,15 +159,6 @@ gvc_mixer_sink_init (GvcMixerSink *sink)
sink->priv = GVC_MIXER_SINK_GET_PRIVATE (sink); sink->priv = GVC_MIXER_SINK_GET_PRIVATE (sink);
} }
static void
gvc_mixer_sink_dispose (GObject *object)
{
g_return_if_fail (object != NULL);
g_return_if_fail (GVC_IS_MIXER_SINK (object));
G_OBJECT_CLASS (gvc_mixer_sink_parent_class)->dispose (object);
}
static void static void
gvc_mixer_sink_finalize (GObject *object) gvc_mixer_sink_finalize (GObject *object)
{ {

View File

@ -60,25 +60,12 @@ gvc_mixer_source_output_change_is_muted (GvcMixerStream *stream,
return TRUE; return TRUE;
} }
static GObject *
gvc_mixer_source_output_constructor (GType type,
guint n_construct_properties,
GObjectConstructParam *construct_params)
{
GObject *object;
object = G_OBJECT_CLASS (gvc_mixer_source_output_parent_class)->constructor (type, n_construct_properties, construct_params);
return object;
}
static void static void
gvc_mixer_source_output_class_init (GvcMixerSourceOutputClass *klass) gvc_mixer_source_output_class_init (GvcMixerSourceOutputClass *klass)
{ {
GObjectClass *object_class = G_OBJECT_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass);
GvcMixerStreamClass *stream_class = GVC_MIXER_STREAM_CLASS (klass); GvcMixerStreamClass *stream_class = GVC_MIXER_STREAM_CLASS (klass);
object_class->constructor = gvc_mixer_source_output_constructor;
object_class->finalize = gvc_mixer_source_output_finalize; object_class->finalize = gvc_mixer_source_output_finalize;
stream_class->push_volume = gvc_mixer_source_output_push_volume; stream_class->push_volume = gvc_mixer_source_output_push_volume;

View File

@ -43,7 +43,6 @@ struct GvcMixerSourcePrivate
static void gvc_mixer_source_class_init (GvcMixerSourceClass *klass); static void gvc_mixer_source_class_init (GvcMixerSourceClass *klass);
static void gvc_mixer_source_init (GvcMixerSource *mixer_source); static void gvc_mixer_source_init (GvcMixerSource *mixer_source);
static void gvc_mixer_source_finalize (GObject *object); static void gvc_mixer_source_finalize (GObject *object);
static void gvc_mixer_source_dispose (GObject *object);
G_DEFINE_TYPE (GvcMixerSource, gvc_mixer_source, GVC_TYPE_MIXER_STREAM) G_DEFINE_TYPE (GvcMixerSource, gvc_mixer_source, GVC_TYPE_MIXER_STREAM)
@ -139,26 +138,12 @@ gvc_mixer_source_change_port (GvcMixerStream *stream,
#endif /* PA_MICRO > 15 */ #endif /* PA_MICRO > 15 */
} }
static GObject *
gvc_mixer_source_constructor (GType type,
guint n_construct_properties,
GObjectConstructParam *construct_params)
{
GObject *object;
object = G_OBJECT_CLASS (gvc_mixer_source_parent_class)->constructor (type, n_construct_properties, construct_params);
return object;
}
static void static void
gvc_mixer_source_class_init (GvcMixerSourceClass *klass) gvc_mixer_source_class_init (GvcMixerSourceClass *klass)
{ {
GObjectClass *object_class = G_OBJECT_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass);
GvcMixerStreamClass *stream_class = GVC_MIXER_STREAM_CLASS (klass); GvcMixerStreamClass *stream_class = GVC_MIXER_STREAM_CLASS (klass);
object_class->constructor = gvc_mixer_source_constructor;
object_class->dispose = gvc_mixer_source_dispose;
object_class->finalize = gvc_mixer_source_finalize; object_class->finalize = gvc_mixer_source_finalize;
stream_class->push_volume = gvc_mixer_source_push_volume; stream_class->push_volume = gvc_mixer_source_push_volume;
@ -174,15 +159,6 @@ gvc_mixer_source_init (GvcMixerSource *source)
source->priv = GVC_MIXER_SOURCE_GET_PRIVATE (source); source->priv = GVC_MIXER_SOURCE_GET_PRIVATE (source);
} }
static void
gvc_mixer_source_dispose (GObject *object)
{
g_return_if_fail (object != NULL);
g_return_if_fail (GVC_IS_MIXER_SOURCE (object));
G_OBJECT_CLASS (gvc_mixer_source_parent_class)->dispose (object);
}
static void static void
gvc_mixer_source_finalize (GObject *object) gvc_mixer_source_finalize (GObject *object)
{ {

View File

@ -390,6 +390,21 @@ gvc_mixer_stream_get_icon_name (GvcMixerStream *stream)
return stream->priv->icon_name; return stream->priv->icon_name;
} }
/**
* gvc_mixer_stream_get_gicon:
* @stream: a #GvcMixerStream
*
* Returns: (transfer full): a new #GIcon
*/
GIcon *
gvc_mixer_stream_get_gicon (GvcMixerStream *stream)
{
g_return_val_if_fail (GVC_IS_MIXER_STREAM (stream), NULL);
if (stream->priv->icon_name == NULL)
return NULL;
return g_themed_icon_new_with_default_fallbacks (stream->priv->icon_name);
}
gboolean gboolean
gvc_mixer_stream_set_icon_name (GvcMixerStream *stream, gvc_mixer_stream_set_icon_name (GvcMixerStream *stream,
const char *icon_name) const char *icon_name)
@ -496,7 +511,7 @@ gvc_mixer_stream_change_port (GvcMixerStream *stream,
const GList * const GList *
gvc_mixer_stream_get_ports (GvcMixerStream *stream) gvc_mixer_stream_get_ports (GvcMixerStream *stream)
{ {
g_return_val_if_fail (GVC_IS_MIXER_STREAM (stream), FALSE); g_return_val_if_fail (GVC_IS_MIXER_STREAM (stream), NULL);
return stream->priv->ports; return stream->priv->ports;
} }

View File

@ -24,6 +24,7 @@
#include <glib-object.h> #include <glib-object.h>
#include "gvc-pulseaudio-fake.h" #include "gvc-pulseaudio-fake.h"
#include "gvc-channel-map.h" #include "gvc-channel-map.h"
#include <gio/gio.h>
G_BEGIN_DECLS G_BEGIN_DECLS
@ -84,6 +85,7 @@ gboolean gvc_mixer_stream_change_is_muted (GvcMixerStream *stream,
gboolean gvc_mixer_stream_is_running (GvcMixerStream *stream); gboolean gvc_mixer_stream_is_running (GvcMixerStream *stream);
const char * gvc_mixer_stream_get_name (GvcMixerStream *stream); const char * gvc_mixer_stream_get_name (GvcMixerStream *stream);
const char * gvc_mixer_stream_get_icon_name (GvcMixerStream *stream); const char * gvc_mixer_stream_get_icon_name (GvcMixerStream *stream);
GIcon * gvc_mixer_stream_get_gicon (GvcMixerStream *stream);
const char * gvc_mixer_stream_get_description (GvcMixerStream *stream); const char * gvc_mixer_stream_get_description (GvcMixerStream *stream);
const char * gvc_mixer_stream_get_application_id (GvcMixerStream *stream); const char * gvc_mixer_stream_get_application_id (GvcMixerStream *stream);
gboolean gvc_mixer_stream_is_event_stream (GvcMixerStream *stream); gboolean gvc_mixer_stream_is_event_stream (GvcMixerStream *stream);

View File

@ -77,7 +77,8 @@ main(int argc, char **argv)
clutter_x11_set_display (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); clutter_x11_set_display (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
clutter_x11_disable_event_retrieval (); clutter_x11_disable_event_retrieval ();
clutter_init (&argc, &argv); if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS)
return 1;
gdk_window_add_filter (NULL, event_filter, NULL); gdk_window_add_filter (NULL, event_filter, NULL);

346
src/shell-perf-helper.c Normal file
View File

@ -0,0 +1,346 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* gnome-shell-perf-helper: a program to create windows for performance tests
*
* Running performance tests with whatever windows a user has open results
* in unreliable results, so instead we hide all other windows and talk
* to this program over D-Bus to create just the windows we want.
*/
#include "config.h"
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
#define BUS_NAME "org.gnome.Shell.PerfHelper"
static void destroy_windows (void);
static void finish_wait_windows (void);
static void check_finish_wait_windows (void);
static const gchar introspection_xml[] =
"<node>"
" <interface name='org.gnome.Shell.PerfHelper'>"
" <method name='Exit'/>"
" <method name='CreateWindow'>"
" <arg type='i' name='width' direction='in'/>"
" <arg type='i' name='height' direction='in'/>"
" <arg type='b' name='alpha' direction='in'/>"
" <arg type='b' name='maximized' direction='in'/>"
" </method>"
" <method name='WaitWindows'/>"
" <method name='DestroyWindows'/>"
" </interface>"
"</node>";
typedef struct {
GtkWidget *window;
int width;
int height;
guint alpha : 1;
guint maximized : 1;
guint mapped : 1;
guint exposed : 1;
guint pending : 1;
} WindowInfo;
static int opt_idle_timeout = 30;
static GOptionEntry opt_entries[] =
{
{ "idle-timeout", 'r', 0, G_OPTION_ARG_INT, &opt_idle_timeout, "Exit after N seconds", "N" },
{ NULL }
};
static Display *xdisplay;
static Window xroot;
static Atom atom_wm_state;
static Atom atom__net_wm_name;
static Atom atom_utf8_string;
static guint timeout_id;
static GList *our_windows;
static GList *wait_windows_invocations;
static gboolean
on_timeout (gpointer data)
{
timeout_id = 0;
destroy_windows ();
gtk_main_quit ();
return FALSE;
}
static void
establish_timeout ()
{
if (timeout_id != 0)
g_source_remove (timeout_id);
timeout_id = g_timeout_add (opt_idle_timeout * 1000, on_timeout, NULL);
}
static void
destroy_windows (void)
{
GList *l;
for (l = our_windows; l; l = l->next)
{
WindowInfo *info = l->data;
gtk_widget_destroy (info->window);
g_free (info);
}
g_list_free (our_windows);
our_windows = NULL;
check_finish_wait_windows ();
}
static gboolean
on_window_map_event (GtkWidget *window,
GdkEventAny *event,
WindowInfo *info)
{
info->mapped = TRUE;
return FALSE;
}
static gboolean
on_window_draw (GtkWidget *window,
cairo_t *cr,
WindowInfo *info)
{
cairo_rectangle_int_t allocation;
gtk_widget_get_allocation (window, &allocation);
/* We draw an arbitrary pattern of red lines near the border of the
* window to make it more clear than empty windows if something
* is drastrically wrong.
*/
cairo_save (cr);
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
if (info->alpha)
cairo_set_source_rgba (cr, 1, 1, 1, 0.5);
else
cairo_set_source_rgb (cr, 1, 1, 1);
cairo_paint (cr);
cairo_restore (cr);
cairo_set_source_rgb (cr, 1, 0, 0);
cairo_set_line_width (cr, 10);
cairo_move_to (cr, 0, 40);
cairo_line_to (cr, allocation.width, 40);
cairo_move_to (cr, 0, allocation.height - 40);
cairo_line_to (cr, allocation.width, allocation.height - 40);
cairo_move_to (cr, 40, 0);
cairo_line_to (cr, 40, allocation.height);
cairo_move_to (cr, allocation.width - 40, 0);
cairo_line_to (cr, allocation.width - 40, allocation.height);
cairo_stroke (cr);
info->exposed = TRUE;
if (info->exposed && info->mapped && info->pending)
{
info->pending = FALSE;
check_finish_wait_windows ();
}
return FALSE;
}
static void
create_window (int width,
int height,
gboolean alpha,
gboolean maximized)
{
WindowInfo *info;
info = g_new0 (WindowInfo, 1);
info->width = width;
info->height = height;
info->alpha = alpha;
info->maximized = maximized;
info->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
if (alpha)
gtk_widget_set_visual (info->window, gdk_screen_get_rgba_visual (gdk_screen_get_default ()));
if (maximized)
gtk_window_maximize (GTK_WINDOW (info->window));
info->pending = TRUE;
gtk_widget_set_size_request (info->window, width, height);
gtk_widget_set_app_paintable (info->window, TRUE);
g_signal_connect (info->window, "map-event", G_CALLBACK (on_window_map_event), info);
g_signal_connect (info->window, "draw", G_CALLBACK (on_window_draw), info);
gtk_widget_show (info->window);
our_windows = g_list_prepend (our_windows, info);
}
static void
finish_wait_windows (void)
{
GList *l;
for (l = wait_windows_invocations; l; l = l->next)
g_dbus_method_invocation_return_value (l->data, NULL);
g_list_free (wait_windows_invocations);
wait_windows_invocations = NULL;
}
static void
check_finish_wait_windows (void)
{
GList *l;
gboolean have_pending = FALSE;
for (l = our_windows; l; l = l->next)
{
WindowInfo *info = l->data;
if (info->pending)
have_pending = TRUE;
}
if (!have_pending)
finish_wait_windows ();
}
static void
handle_method_call (GDBusConnection *connection,
const gchar *sender,
const gchar *object_path,
const gchar *interface_name,
const gchar *method_name,
GVariant *parameters,
GDBusMethodInvocation *invocation,
gpointer user_data)
{
/* Push off the idle timeout */
establish_timeout ();
if (g_strcmp0 (method_name, "Exit") == 0)
{
destroy_windows ();
g_dbus_method_invocation_return_value (invocation, NULL);
g_dbus_connection_flush_sync (connection, NULL, NULL);
gtk_main_quit ();
}
else if (g_strcmp0 (method_name, "CreateWindow") == 0)
{
int width, height;
gboolean alpha, maximized;
g_variant_get (parameters, "(iibb)", &width, &height, &alpha, &maximized);
create_window (width, height, alpha, maximized);
g_dbus_method_invocation_return_value (invocation, NULL);
}
else if (g_strcmp0 (method_name, "WaitWindows") == 0)
{
wait_windows_invocations = g_list_prepend (wait_windows_invocations, invocation);
check_finish_wait_windows ();
}
else if (g_strcmp0 (method_name, "DestroyWindows") == 0)
{
destroy_windows ();
g_dbus_method_invocation_return_value (invocation, NULL);
}
}
static const GDBusInterfaceVTable interface_vtable =
{
handle_method_call,
NULL,
NULL
};
static void
on_bus_acquired (GDBusConnection *connection,
const gchar *name,
gpointer user_data)
{
GDBusNodeInfo *introspection_data = g_dbus_node_info_new_for_xml (introspection_xml, NULL);
g_dbus_connection_register_object (connection,
"/org/gnome/Shell/PerfHelper",
introspection_data->interfaces[0],
&interface_vtable,
NULL, /* user_data */
NULL, /* user_data_free_func */
NULL); /* GError** */
}
static void
on_name_acquired (GDBusConnection *connection,
const gchar *name,
gpointer user_data)
{
}
static void
on_name_lost (GDBusConnection *connection,
const gchar *name,
gpointer user_data)
{
destroy_windows ();
gtk_main_quit ();
}
int
main (int argc, char **argv)
{
GdkDisplay *display;
GdkScreen *screen;
GOptionContext *context;
GError *error = NULL;
/* Since we depend on this, avoid the possibility of lt-gnome-shell-perf-helper */
g_set_prgname ("gnome-shell-perf-helper");
context = g_option_context_new (" - server to create windows for performance testing");
g_option_context_add_main_entries (context, opt_entries, NULL);
g_option_context_add_group (context, gtk_get_option_group (TRUE));
if (!g_option_context_parse (context, &argc, &argv, &error))
{
g_print ("option parsing failed: %s\n", error->message);
return 1;
}
display = gdk_display_get_default ();
screen = gdk_screen_get_default ();
xdisplay = gdk_x11_display_get_xdisplay (display);
xroot = gdk_x11_window_get_xid (gdk_screen_get_root_window (screen));
atom_wm_state = gdk_x11_get_xatom_by_name_for_display (display, "WM_STATE");
atom__net_wm_name = gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_NAME");
atom_utf8_string = gdk_x11_get_xatom_by_name_for_display (display, "UTF8_STRING");
g_bus_own_name (G_BUS_TYPE_SESSION,
BUS_NAME,
G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT |
G_BUS_NAME_OWNER_FLAGS_REPLACE,
on_bus_acquired,
on_name_acquired,
on_name_lost,
NULL,
NULL);
establish_timeout ();
gtk_main ();
return 0;
}

View File

@ -439,3 +439,42 @@ shell_util_set_hidden_from_pick (ClutterActor *actor,
g_object_set_data (G_OBJECT (actor), "shell-stop-pick", NULL); g_object_set_data (G_OBJECT (actor), "shell-stop-pick", NULL);
} }
} }
/**
* shell_util_format_date:
* @format: a strftime-style string format, as parsed by
* g_date_time_format()
* @time_ms: milliseconds since 1970-01-01 00:00:00 UTC; the
* value returned by Date.getTime()
*
* Formats a date for the current locale. This should be
* used instead of the Spidermonkey Date.toLocaleFormat()
* extension because Date.toLocaleFormat() is buggy for
* Unicode format strings:
* https://bugzilla.mozilla.org/show_bug.cgi?id=508783
*
* Return value: the formatted date. If the date is
* outside of the range of a GDateTime (which contains
* any plausible dates we actually care about), will
* return an empty string.
*/
char *
shell_util_format_date (const char *format,
gint64 time_ms)
{
GDateTime *datetime;
GTimeVal tv;
char *result;
tv.tv_sec = time_ms / 1000;
tv.tv_usec = (time_ms % 1000) * 1000;
datetime = g_date_time_new_from_timeval_local (&tv);
if (!datetime) /* time_ms is out of range of GDateTime */
return g_strdup ("");
result = g_date_time_format (datetime, format);
g_date_time_unref (datetime);
return result;
}

View File

@ -13,6 +13,9 @@ GIcon *shell_util_get_icon_for_uri (const char *text_uri);
GIcon *shell_util_icon_from_string (const char *string, GError **error); GIcon *shell_util_icon_from_string (const char *string, GError **error);
void shell_util_set_hidden_from_pick (ClutterActor *actor, gboolean hidden); void shell_util_set_hidden_from_pick (ClutterActor *actor, gboolean hidden);
char *shell_util_format_date (const char *format,
gint64 time_ms);
G_END_DECLS G_END_DECLS
#endif /* __SHELL_UTIL_H__ */ #endif /* __SHELL_UTIL_H__ */

View File

@ -735,7 +735,7 @@ st_entry_new (const gchar *text)
* *
* Returns: the text for the entry. This must not be freed by the application * Returns: the text for the entry. This must not be freed by the application
*/ */
G_CONST_RETURN gchar * const gchar *
st_entry_get_text (StEntry *entry) st_entry_get_text (StEntry *entry)
{ {
g_return_val_if_fail (ST_IS_ENTRY (entry), NULL); g_return_val_if_fail (ST_IS_ENTRY (entry), NULL);
@ -843,8 +843,7 @@ st_entry_set_hint_text (StEntry *entry,
* Returns: the current value of the hint property. This string is owned by the * Returns: the current value of the hint property. This string is owned by the
* #StEntry and should not be freed or modified. * #StEntry and should not be freed or modified.
*/ */
G_CONST_RETURN const gchar *
gchar *
st_entry_get_hint_text (StEntry *entry) st_entry_get_hint_text (StEntry *entry)
{ {
g_return_val_if_fail (ST_IS_ENTRY (entry), NULL); g_return_val_if_fail (ST_IS_ENTRY (entry), NULL);

View File

@ -65,14 +65,14 @@ struct _StEntryClass
GType st_entry_get_type (void) G_GNUC_CONST; GType st_entry_get_type (void) G_GNUC_CONST;
StWidget * st_entry_new (const gchar *text); StWidget * st_entry_new (const gchar *text);
G_CONST_RETURN gchar *st_entry_get_text (StEntry *entry); const gchar * st_entry_get_text (StEntry *entry);
void st_entry_set_text (StEntry *entry, void st_entry_set_text (StEntry *entry,
const gchar *text); const gchar *text);
ClutterActor* st_entry_get_clutter_text (StEntry *entry); ClutterActor* st_entry_get_clutter_text (StEntry *entry);
void st_entry_set_hint_text (StEntry *entry, void st_entry_set_hint_text (StEntry *entry,
const gchar *text); const gchar *text);
G_CONST_RETURN gchar *st_entry_get_hint_text (StEntry *entry); const gchar * st_entry_get_hint_text (StEntry *entry);
void st_entry_set_primary_icon (StEntry *entry, void st_entry_set_primary_icon (StEntry *entry,
ClutterActor *icon); ClutterActor *icon);

View File

@ -355,7 +355,7 @@ st_label_new (const gchar *text)
* *
* Returns: the text for the label. This must not be freed by the application * Returns: the text for the label. This must not be freed by the application
*/ */
G_CONST_RETURN gchar * const gchar *
st_label_get_text (StLabel *label) st_label_get_text (StLabel *label)
{ {
g_return_val_if_fail (ST_IS_LABEL (label), NULL); g_return_val_if_fail (ST_IS_LABEL (label), NULL);

View File

@ -60,11 +60,11 @@ struct _StLabelClass
GType st_label_get_type (void) G_GNUC_CONST; GType st_label_get_type (void) G_GNUC_CONST;
StWidget * st_label_new (const gchar *text); StWidget * st_label_new (const gchar *text);
G_CONST_RETURN gchar *st_label_get_text (StLabel *label); const gchar * st_label_get_text (StLabel *label);
void st_label_set_text (StLabel *label, void st_label_set_text (StLabel *label,
const gchar *text); const gchar *text);
ClutterActor * st_label_get_clutter_text (StLabel *label); ClutterActor * st_label_get_clutter_text (StLabel *label);
G_END_DECLS G_END_DECLS

View File

@ -49,21 +49,23 @@ static const gchar *fade_glsl_shader =
" vec4 color = cogl_color_in * texture2D (tex, vec2 (cogl_tex_coord_in[0].xy));\n" " vec4 color = cogl_color_in * texture2D (tex, vec2 (cogl_tex_coord_in[0].xy));\n"
" float y = height * cogl_tex_coord_in[0].y;\n" " float y = height * cogl_tex_coord_in[0].y;\n"
" float x = width * cogl_tex_coord_in[0].x;\n" " float x = width * cogl_tex_coord_in[0].x;\n"
" float ratio = 0.0;\n" " float ratio = 1.0;\n"
" float fade_bottom_start = height - offset_bottom;\n" " float fade_bottom_start = height - offset_bottom;\n"
" \n" " float ratio_top = y / offset_top;\n"
" if (offset_top != 0.0 && y < offset_top && ((rtl && x > scrollbar_width) || (!rtl && x < (width - scrollbar_width)))) {\n" " float ratio_bottom = (height - y)/(height - fade_bottom_start);\n"
" ratio = y / offset_top;\n" " bool in_scroll_area = ((rtl && x > scrollbar_width) || (!rtl && x < (width - scrollbar_width)));\n"
" bool fade_top = y < offset_top && in_scroll_area;\n"
" bool fade_bottom = y > fade_bottom_start && in_scroll_area;\n"
"\n"
" if (fade_top) {\n"
" ratio = ratio_top;\n"
" }\n"
" else if (fade_bottom) {\n"
" ratio = ratio_bottom;\n"
" }\n"
"\n"
" cogl_color_out = color * ratio;\n" " cogl_color_out = color * ratio;\n"
" }\n" "}";
" else if (offset_bottom != 0.0 && y > fade_bottom_start && ((rtl && x > scrollbar_width) || (!rtl && x < (width - scrollbar_width)))) {\n"
" ratio = (height - y)/(height - fade_bottom_start);\n"
" cogl_color_out = color * ratio;\n"
" }\n"
" else { \n"
" cogl_color_out = color;\n"
" }\n"
"}\n";
struct _StScrollViewFade struct _StScrollViewFade
{ {

View File

@ -1398,10 +1398,11 @@ static char **
symbolic_names_for_icon (const char *name) symbolic_names_for_icon (const char *name)
{ {
char **parts, **names; char **parts, **names;
int i; int i, numnames;
parts = g_strsplit (name, "-", -1); parts = g_strsplit (name, "-", -1);
names = g_new (char *, g_strv_length (parts) + 1); numnames = g_strv_length (parts);
names = g_new (char *, numnames + 1);
for (i = 0; parts[i]; i++) for (i = 0; parts[i]; i++)
{ {
if (i == 0) if (i == 0)
@ -1418,6 +1419,15 @@ symbolic_names_for_icon (const char *name)
names[i] = NULL; names[i] = NULL;
g_strfreev (parts); g_strfreev (parts);
/* need to reverse here, because longest (most specific)
name has to come first */
for (i = 0; i < (numnames / 2); i++) {
char *tmp = names[i];
names[i] = names[numnames - i - 1];
names[numnames - i - 1] = tmp;
}
return names; return names;
} }

View File

@ -377,7 +377,7 @@ st_tooltip_update_position (StTooltip *tooltip)
* *
* Returns: the text for the tooltip. This must not be freed by the application * Returns: the text for the tooltip. This must not be freed by the application
*/ */
G_CONST_RETURN gchar * const gchar *
st_tooltip_get_label (StTooltip *tooltip) st_tooltip_get_label (StTooltip *tooltip)
{ {
g_return_val_if_fail (ST_IS_TOOLTIP (tooltip), NULL); g_return_val_if_fail (ST_IS_TOOLTIP (tooltip), NULL);
@ -489,7 +489,7 @@ st_tooltip_set_tip_area (StTooltip *tooltip,
* Returns: the #ClutterGeometry, owned by the tooltip which must not be freed * Returns: the #ClutterGeometry, owned by the tooltip which must not be freed
* by the application. * by the application.
*/ */
G_CONST_RETURN ClutterGeometry* const ClutterGeometry*
st_tooltip_get_tip_area (StTooltip *tooltip) st_tooltip_get_tip_area (StTooltip *tooltip)
{ {
g_return_val_if_fail (ST_IS_TOOLTIP (tooltip), NULL); g_return_val_if_fail (ST_IS_TOOLTIP (tooltip), NULL);

View File

@ -60,13 +60,13 @@ struct _StTooltipClass
GType st_tooltip_get_type (void) G_GNUC_CONST; GType st_tooltip_get_type (void) G_GNUC_CONST;
G_CONST_RETURN gchar *st_tooltip_get_label (StTooltip *tooltip); const gchar * st_tooltip_get_label (StTooltip *tooltip);
void st_tooltip_set_label (StTooltip *tooltip, void st_tooltip_set_label (StTooltip *tooltip,
const gchar *text); const gchar *text);
void st_tooltip_set_tip_area (StTooltip *tooltip, void st_tooltip_set_tip_area (StTooltip *tooltip,
const ClutterGeometry *area); const ClutterGeometry *area);
G_CONST_RETURN ClutterGeometry* st_tooltip_get_tip_area (StTooltip *tooltip); const ClutterGeometry* st_tooltip_get_tip_area (StTooltip *tooltip);
G_END_DECLS G_END_DECLS

View File

@ -96,7 +96,7 @@ void st_widget_add_style_pseudo_class (StWidget *acto
const gchar *pseudo_class); const gchar *pseudo_class);
void st_widget_remove_style_pseudo_class (StWidget *actor, void st_widget_remove_style_pseudo_class (StWidget *actor,
const gchar *pseudo_class); const gchar *pseudo_class);
G_CONST_RETURN gchar *st_widget_get_style_pseudo_class (StWidget *actor); const gchar * st_widget_get_style_pseudo_class (StWidget *actor);
gboolean st_widget_has_style_pseudo_class (StWidget *actor, gboolean st_widget_has_style_pseudo_class (StWidget *actor,
const gchar *pseudo_class); const gchar *pseudo_class);
@ -106,13 +106,13 @@ void st_widget_add_style_class_name (StWidget *acto
const gchar *style_class); const gchar *style_class);
void st_widget_remove_style_class_name (StWidget *actor, void st_widget_remove_style_class_name (StWidget *actor,
const gchar *style_class); const gchar *style_class);
G_CONST_RETURN gchar *st_widget_get_style_class_name (StWidget *actor); const gchar * st_widget_get_style_class_name (StWidget *actor);
gboolean st_widget_has_style_class_name (StWidget *actor, gboolean st_widget_has_style_class_name (StWidget *actor,
const gchar *style_class); const gchar *style_class);
void st_widget_set_style (StWidget *actor, void st_widget_set_style (StWidget *actor,
const gchar *style); const gchar *style);
G_CONST_RETURN gchar *st_widget_get_style (StWidget *actor); const gchar * st_widget_get_style (StWidget *actor);
void st_widget_set_theme (StWidget *actor, void st_widget_set_theme (StWidget *actor,
StTheme *theme); StTheme *theme);
StTheme * st_widget_get_theme (StWidget *actor); StTheme * st_widget_get_theme (StWidget *actor);

View File

@ -426,7 +426,8 @@ main (int argc, char **argv)
StTheme *theme; StTheme *theme;
StThemeContext *context; StThemeContext *context;
clutter_init (&argc, &argv); if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS)
return 1;
theme = st_theme_new ("st/test-theme.css", theme = st_theme_new ("st/test-theme.css",
NULL, NULL); NULL, NULL);

View File

@ -31,7 +31,8 @@ int main (int argc, char **argv)
g_thread_init (NULL); g_thread_init (NULL);
gst_init (&argc, &argv); gst_init (&argc, &argv);
clutter_init (&argc, &argv); if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS)
return 1;
clutter_color_from_string (&red, "red"); clutter_color_from_string (&red, "red");
clutter_color_from_string (&green, "green"); clutter_color_from_string (&green, "green");

View File

@ -184,7 +184,9 @@
<autotools id="libcanberra" autogen-sh="configure"> <autotools id="libcanberra" autogen-sh="configure">
<branch repo="0pointer.de" module="libcanberra/libcanberra-0.26.tar.gz" version="0.26" <branch repo="0pointer.de" module="libcanberra/libcanberra-0.26.tar.gz" version="0.26"
hash="sha256:4b5d8d2c2835133620adbc53745dd107b6e58b9a2963059e8f457143fee00982" hash="sha256:4b5d8d2c2835133620adbc53745dd107b6e58b9a2963059e8f457143fee00982"
md5sum="ee2c66ada7c851a4e7b6eb1682285a24" size="463209" /> md5sum="ee2c66ada7c851a4e7b6eb1682285a24" size="463209">
<patch file="libcanberra-quit-add.patch" strip="1"/>
</branch>
<dependencies> <dependencies>
<dep package="gtk3"/> <dep package="gtk3"/>
</dependencies> </dependencies>

View File

@ -0,0 +1,24 @@
diff -up libcanberra-0.26/src/canberra-gtk-module.c.quit-add libcanberra-0.26/src/canberra-gtk-module.c
--- libcanberra-0.26/src/canberra-gtk-module.c.quit-add 2011-01-07 22:48:49.388992626 -0500
+++ libcanberra-0.26/src/canberra-gtk-module.c 2011-01-07 22:49:02.339995153 -0500
@@ -932,11 +932,6 @@ static void connect_settings(void) {
connected = TRUE;
}
-static gboolean quit_handler(gpointer data) {
- dispatch_queue();
- return FALSE;
-}
-
G_MODULE_EXPORT void gtk_module_init(gint *argc, gchar ***argv[]) {
/* This is the same quark libgnomeui uses! */
@@ -963,8 +958,6 @@ G_MODULE_EXPORT void gtk_module_init(gin
install_hook(GTK_TYPE_WIDGET, "drag-drop", &signal_id_widget_drag_drop);
install_hook(GTK_TYPE_WIDGET, "drag-failed", &signal_id_widget_drag_failed);
install_hook(GTK_TYPE_EXPANDER, "activate", &signal_id_expander_activate);
-
- gtk_quit_add(1, quit_handler, NULL);
}
G_MODULE_EXPORT gchar* g_module_check_init(GModule *module);