Compare commits
6 Commits
3.9.3
...
wip/waylan
Author | SHA1 | Date | |
---|---|---|---|
![]() |
30898007f3 | ||
![]() |
2754a5e3a1 | ||
![]() |
da1b7f4f83 | ||
![]() |
206f036cef | ||
![]() |
e3be2237b8 | ||
![]() |
d663beab97 |
30
NEWS
30
NEWS
@@ -1,33 +1,3 @@
|
||||
3.9.3
|
||||
=====
|
||||
* Don't push window thumbs when workspace switcher is hidden [Jasper; #701167]
|
||||
* Tweak timeout for activating windows during XDND [Adel; #700150]
|
||||
* Fix ellipsization in control buttons in app picker [Carlos; #696307]
|
||||
* Fix DND to empty dash [Florian; #684618]
|
||||
* Fix OSD window appearing below system modal dialogs [Rui; #701269]
|
||||
* Clear clipboard on screen lock to prevent information leak [Florian; #698922]
|
||||
* Allow session mode specific overrides schema [Florian; #701717]
|
||||
* window-switcher: Only show windows from current workspace by default
|
||||
[Florian; #701214]
|
||||
* logout dialog: Show the correct text right away [Matthias; #702056]
|
||||
* bluetooth: Port to bluez 5 [Emilio; #700891]
|
||||
* dateMenu: Allow events to span multiple lines [Giovanni; #701231]
|
||||
* gdm: Clear message queue when no more messages are pending [Jonh; #702458]
|
||||
* Misc bug fixes and cleanups [Jasper, Florian, Adel, Giovanni; #693836,
|
||||
#700972, #701386, #700877, #701755, #698918, #701224, #702125, #701954,
|
||||
#701849, #702121]
|
||||
|
||||
Contributors:
|
||||
Giovanni Campagna, Matthias Clasen, Fran Diéguez, Adel Gadllah, Rui Matos,
|
||||
Florian Müllner, Emilio Pozuelo Monfort, Carlos Soriano, Jasper St. Pierre,
|
||||
Jonh Wendell
|
||||
|
||||
Translations:
|
||||
Marek Černocký [cs], Victor Ibragimov [tg], Fran Diéguez [gl],
|
||||
Benjamin Steinwender [de], Cheng-Chia Tseng [zh_HK, zh_TW],
|
||||
eternalhui [zh_CN], Ivaylo Valkov [bg], Kjartan Maraas [nb],
|
||||
Daniel Mustieles [es]
|
||||
|
||||
3.9.2
|
||||
=====
|
||||
* Use a symbolic icon for DESKTOP windows [Matthias; #697914]
|
||||
|
@@ -1,5 +1,5 @@
|
||||
AC_PREREQ(2.63)
|
||||
AC_INIT([gnome-shell],[3.9.3],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
|
||||
AC_INIT([gnome-shell],[3.9.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
|
||||
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AC_CONFIG_SRCDIR([src/shell-global.c])
|
||||
@@ -63,7 +63,7 @@ AM_CONDITIONAL(BUILD_RECORDER, $build_recorder)
|
||||
CLUTTER_MIN_VERSION=1.13.4
|
||||
GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1
|
||||
GJS_MIN_VERSION=1.35.4
|
||||
MUTTER_MIN_VERSION=3.9.3
|
||||
MUTTER_MIN_VERSION=3.9.2
|
||||
GTK_MIN_VERSION=3.7.9
|
||||
GIO_MIN_VERSION=2.37.0
|
||||
LIBECAL_MIN_VERSION=3.5.3
|
||||
|
@@ -164,7 +164,6 @@ const ShellUserVerifier = new Lang.Class({
|
||||
|
||||
answerQuery: function(serviceName, answer) {
|
||||
if (!this._userVerifier.hasPendingMessages) {
|
||||
this._clearMessageQueue();
|
||||
this._userVerifier.call_answer_query(serviceName, answer, this._cancellable, null);
|
||||
} else {
|
||||
let signalId = this._userVerifier.connect('no-more-messages',
|
||||
|
@@ -571,16 +571,7 @@ const Background = new Lang.Class({
|
||||
}
|
||||
|
||||
let uri = this._settings.get_string(PICTURE_URI_KEY);
|
||||
let filename;
|
||||
if (GLib.uri_parse_scheme(uri) != null)
|
||||
filename = Gio.File.new_for_uri(uri).get_path();
|
||||
else
|
||||
filename = uri;
|
||||
|
||||
if (!filename) {
|
||||
this._setLoaded();
|
||||
return;
|
||||
}
|
||||
let filename = Gio.File.new_for_uri(uri).get_path();
|
||||
|
||||
this._loadFile(filename);
|
||||
},
|
||||
|
@@ -53,7 +53,7 @@ const Magnifier = new Lang.Class({
|
||||
this._zoomRegions = [];
|
||||
|
||||
// Create small clutter tree for the magnified mouse.
|
||||
let xfixesCursor = Shell.XFixesCursor.get_for_stage(global.stage);
|
||||
let xfixesCursor = Shell.XFixesCursor.get_for_screen(global.screen);
|
||||
this._mouseSprite = new Clutter.Texture();
|
||||
xfixesCursor.update_texture_image(this._mouseSprite);
|
||||
this._cursorRoot = new Clutter.Actor();
|
||||
@@ -83,7 +83,7 @@ const Magnifier = new Lang.Class({
|
||||
* Show the system mouse pointer.
|
||||
*/
|
||||
showSystemCursor: function() {
|
||||
this._xfixesCursor.show();
|
||||
global.stage.show_cursor();
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -91,7 +91,7 @@ const Magnifier = new Lang.Class({
|
||||
* Hide the system mouse pointer.
|
||||
*/
|
||||
hideSystemCursor: function() {
|
||||
this._xfixesCursor.hide();
|
||||
global.stage.hide_cursor();
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -112,7 +112,7 @@ const Magnifier = new Lang.Class({
|
||||
// Make sure system mouse pointer is shown when all zoom regions are
|
||||
// invisible.
|
||||
if (!activate)
|
||||
this._xfixesCursor.show();
|
||||
global.stage.show_cursor();
|
||||
|
||||
// Notify interested parties of this change
|
||||
this.emit('active-changed', activate);
|
||||
|
253
po/es.po
253
po/es.po
@@ -10,8 +10,8 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell.master\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2013-06-14 18:16+0000\n"
|
||||
"PO-Revision-Date: 2013-06-17 17:26+0200\n"
|
||||
"POT-Creation-Date: 2013-05-25 08:18+0000\n"
|
||||
"PO-Revision-Date: 2013-05-27 13:23+0200\n"
|
||||
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
||||
"Language-Team: Español <gnome-es-list@gnome.org>\n"
|
||||
"Language: \n"
|
||||
@@ -369,37 +369,37 @@ msgid "Select an extension to configure using the combobox above."
|
||||
msgstr ""
|
||||
"Seleccione una extensión que configurar usando la caja combinada de arriba."
|
||||
|
||||
#: ../js/gdm/loginDialog.js:370
|
||||
#: ../js/gdm/loginDialog.js:371
|
||||
msgid "Session…"
|
||||
msgstr "Sesión…"
|
||||
|
||||
#. translators: this message is shown below the user list on the
|
||||
#. login screen. It can be activated to reveal an entry for
|
||||
#. manually entering the username.
|
||||
#: ../js/gdm/loginDialog.js:600
|
||||
#: ../js/gdm/loginDialog.js:601
|
||||
msgid "Not listed?"
|
||||
msgstr "¿No está en la lista?"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:775 ../js/ui/components/networkAgent.js:137
|
||||
#: ../js/gdm/loginDialog.js:776 ../js/ui/components/networkAgent.js:137
|
||||
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:376
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/bluetooth.js:449 ../js/ui/unlockDialog.js:95
|
||||
#: ../js/ui/userMenu.js:884
|
||||
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:96
|
||||
#: ../js/ui/userMenu.js:938
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:790
|
||||
#: ../js/gdm/loginDialog.js:791
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Iniciar sesión"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:790
|
||||
#: ../js/gdm/loginDialog.js:791
|
||||
msgid "Next"
|
||||
msgstr "Siguiente"
|
||||
|
||||
#. Translators: this message is shown below the username entry field
|
||||
#. to clue the user in on how to login to the local network realm
|
||||
#: ../js/gdm/loginDialog.js:887
|
||||
#: ../js/gdm/loginDialog.js:888
|
||||
#, c-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(ej., usuario o %s)"
|
||||
@@ -407,12 +407,12 @@ msgstr "(ej., usuario o %s)"
|
||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||
#. is not visible here since we only care about phase2 authentication
|
||||
#. (and don't even care of which one)
|
||||
#: ../js/gdm/loginDialog.js:891 ../js/ui/components/networkAgent.js:260
|
||||
#: ../js/gdm/loginDialog.js:892 ../js/ui/components/networkAgent.js:260
|
||||
#: ../js/ui/components/networkAgent.js:278
|
||||
msgid "Username: "
|
||||
msgstr "Nombre de usuario:"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1157
|
||||
#: ../js/gdm/loginDialog.js:1158
|
||||
msgid "Login Window"
|
||||
msgstr "Ventana de inicio de sesión"
|
||||
|
||||
@@ -421,8 +421,8 @@ msgstr "Ventana de inicio de sesión"
|
||||
msgid "Power"
|
||||
msgstr "Energía"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:651 ../js/ui/userMenu.js:655
|
||||
#: ../js/ui/userMenu.js:768
|
||||
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:696 ../js/ui/userMenu.js:700
|
||||
#: ../js/ui/userMenu.js:816
|
||||
msgid "Suspend"
|
||||
msgstr "Suspender"
|
||||
|
||||
@@ -430,8 +430,8 @@ msgstr "Suspender"
|
||||
msgid "Restart"
|
||||
msgstr "Reiniciar"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:653
|
||||
#: ../js/ui/userMenu.js:655 ../js/ui/userMenu.js:767 ../js/ui/userMenu.js:888
|
||||
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:698
|
||||
#: ../js/ui/userMenu.js:700 ../js/ui/userMenu.js:815 ../js/ui/userMenu.js:942
|
||||
msgid "Power Off"
|
||||
msgstr "Apagar"
|
||||
|
||||
@@ -460,23 +460,23 @@ msgstr "No se pudo analizar el comando:"
|
||||
msgid "Execution of '%s' failed:"
|
||||
msgstr "Falló la ejecución de «%s»:"
|
||||
|
||||
#: ../js/ui/appDisplay.js:397
|
||||
#: ../js/ui/appDisplay.js:361
|
||||
msgid "Frequent"
|
||||
msgstr "Frecuentes"
|
||||
|
||||
#: ../js/ui/appDisplay.js:404
|
||||
#: ../js/ui/appDisplay.js:368
|
||||
msgid "All"
|
||||
msgstr "Todas"
|
||||
|
||||
#: ../js/ui/appDisplay.js:996
|
||||
#: ../js/ui/appDisplay.js:960
|
||||
msgid "New Window"
|
||||
msgstr "Ventana nueva"
|
||||
|
||||
#: ../js/ui/appDisplay.js:999 ../js/ui/dash.js:284
|
||||
#: ../js/ui/appDisplay.js:963 ../js/ui/dash.js:284
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Quitar de los favoritos"
|
||||
|
||||
#: ../js/ui/appDisplay.js:1000
|
||||
#: ../js/ui/appDisplay.js:964
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Añadir a los favoritos"
|
||||
|
||||
@@ -490,7 +490,7 @@ msgstr "Se ha añadido %s a sus favoritos."
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "Se ha quitado %s de sus favoritos."
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:744
|
||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:789
|
||||
msgid "Settings"
|
||||
msgstr "Configuración"
|
||||
|
||||
@@ -615,35 +615,35 @@ msgid "S"
|
||||
msgstr "S"
|
||||
|
||||
#. Translators: Text to show if there are no events
|
||||
#: ../js/ui/calendar.js:750
|
||||
#: ../js/ui/calendar.js:735
|
||||
msgid "Nothing Scheduled"
|
||||
msgstr "Nada programado"
|
||||
|
||||
#. Translators: Shown on calendar heading when selected day occurs on current year
|
||||
#: ../js/ui/calendar.js:768
|
||||
#: ../js/ui/calendar.js:751
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d de %B"
|
||||
|
||||
#. Translators: Shown on calendar heading when selected day occurs on different year
|
||||
#: ../js/ui/calendar.js:771
|
||||
#: ../js/ui/calendar.js:754
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, %d de %B de %Y"
|
||||
|
||||
#: ../js/ui/calendar.js:782
|
||||
#: ../js/ui/calendar.js:764
|
||||
msgid "Today"
|
||||
msgstr "Hoy"
|
||||
|
||||
#: ../js/ui/calendar.js:786
|
||||
#: ../js/ui/calendar.js:768
|
||||
msgid "Tomorrow"
|
||||
msgstr "Mañana"
|
||||
|
||||
#: ../js/ui/calendar.js:797
|
||||
#: ../js/ui/calendar.js:779
|
||||
msgid "This week"
|
||||
msgstr "Esta semana"
|
||||
|
||||
#: ../js/ui/calendar.js:805
|
||||
#: ../js/ui/calendar.js:787
|
||||
msgid "Next week"
|
||||
msgstr "La semana que viene"
|
||||
|
||||
@@ -1030,26 +1030,26 @@ msgstr "Mostrar aplicaciones"
|
||||
|
||||
#. Translators: this is the name of the dock/favorites area on
|
||||
#. the left of the overview
|
||||
#: ../js/ui/dash.js:439
|
||||
#: ../js/ui/dash.js:435
|
||||
msgid "Dash"
|
||||
msgstr "Tablero"
|
||||
|
||||
#: ../js/ui/dateMenu.js:85
|
||||
#: ../js/ui/dateMenu.js:86
|
||||
msgid "Open Calendar"
|
||||
msgstr "Abrir calendario"
|
||||
|
||||
#: ../js/ui/dateMenu.js:89
|
||||
#: ../js/ui/dateMenu.js:90
|
||||
msgid "Open Clocks"
|
||||
msgstr "Abrir Relojes"
|
||||
|
||||
#: ../js/ui/dateMenu.js:96
|
||||
#: ../js/ui/dateMenu.js:97
|
||||
msgid "Date & Time Settings"
|
||||
msgstr "Configuración de hora y fecha"
|
||||
|
||||
#. 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").
|
||||
#.
|
||||
#: ../js/ui/dateMenu.js:202
|
||||
#: ../js/ui/dateMenu.js:208
|
||||
msgid "%A %B %e, %Y"
|
||||
msgstr "%A, %e de %B de %Y"
|
||||
|
||||
@@ -1153,7 +1153,7 @@ msgstr "Instalar"
|
||||
msgid "Download and install '%s' from extensions.gnome.org?"
|
||||
msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?"
|
||||
|
||||
#: ../js/ui/keyboard.js:619 ../js/ui/status/keyboard.js:333
|
||||
#: ../js/ui/keyboard.js:619 ../js/ui/status/keyboard.js:314
|
||||
#: ../js/ui/status/power.js:211
|
||||
msgid "Keyboard"
|
||||
msgstr "Teclado"
|
||||
@@ -1222,15 +1222,15 @@ msgstr "Limpiar mensajes"
|
||||
msgid "Notification Settings"
|
||||
msgstr "Configuración de las notificaciones"
|
||||
|
||||
#: ../js/ui/messageTray.js:1711
|
||||
#: ../js/ui/messageTray.js:1707
|
||||
msgid "No Messages"
|
||||
msgstr "No hay mensajes"
|
||||
|
||||
#: ../js/ui/messageTray.js:1784
|
||||
#: ../js/ui/messageTray.js:1780
|
||||
msgid "Message Tray"
|
||||
msgstr "Bandeja de mensajes"
|
||||
|
||||
#: ../js/ui/messageTray.js:2811
|
||||
#: ../js/ui/messageTray.js:2800
|
||||
msgid "System Information"
|
||||
msgstr "Información del sistema"
|
||||
|
||||
@@ -1239,7 +1239,7 @@ msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Desconocido"
|
||||
|
||||
#: ../js/ui/overviewControls.js:474 ../js/ui/screenShield.js:150
|
||||
#: ../js/ui/overviewControls.js:472 ../js/ui/screenShield.js:150
|
||||
#, c-format
|
||||
msgid "%d new message"
|
||||
msgid_plural "%d new messages"
|
||||
@@ -1281,7 +1281,7 @@ msgstr "Barra superior"
|
||||
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
||||
#. switches containing "◯" and "|"). Other values will
|
||||
#. simply result in invisible toggle switches.
|
||||
#: ../js/ui/popupMenu.js:545
|
||||
#: ../js/ui/popupMenu.js:738
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
@@ -1306,7 +1306,7 @@ msgid_plural "%d new notifications"
|
||||
msgstr[0] "%d notificación nueva"
|
||||
msgstr[1] "%d notificaciones nuevas"
|
||||
|
||||
#: ../js/ui/screenShield.js:449 ../js/ui/userMenu.js:759
|
||||
#: ../js/ui/screenShield.js:449 ../js/ui/userMenu.js:807
|
||||
msgid "Lock"
|
||||
msgstr "Bloquear"
|
||||
|
||||
@@ -1329,11 +1329,11 @@ msgstr "No se pudo bloquear"
|
||||
msgid "Lock was blocked by an application"
|
||||
msgstr "Una aplicación impidió el bloqueo"
|
||||
|
||||
#: ../js/ui/searchDisplay.js:445
|
||||
#: ../js/ui/searchDisplay.js:453
|
||||
msgid "Searching…"
|
||||
msgstr "Buscando…"
|
||||
|
||||
#: ../js/ui/searchDisplay.js:489
|
||||
#: ../js/ui/searchDisplay.js:497
|
||||
msgid "No results."
|
||||
msgstr "No se encontraron resultados."
|
||||
|
||||
@@ -1361,7 +1361,7 @@ msgstr "Contraseña"
|
||||
msgid "Remember Password"
|
||||
msgstr "Recordar contraseña"
|
||||
|
||||
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:108
|
||||
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:109
|
||||
msgid "Unlock"
|
||||
msgstr "Desbloquear"
|
||||
|
||||
@@ -1414,9 +1414,9 @@ msgid "Large Text"
|
||||
msgstr "Texto grande"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:32
|
||||
#: ../js/ui/status/bluetooth.js:290 ../js/ui/status/bluetooth.js:327
|
||||
#: ../js/ui/status/bluetooth.js:355 ../js/ui/status/bluetooth.js:391
|
||||
#: ../js/ui/status/bluetooth.js:422 ../js/ui/status/network.js:713
|
||||
#: ../js/ui/status/bluetooth.js:289 ../js/ui/status/bluetooth.js:321
|
||||
#: ../js/ui/status/bluetooth.js:357 ../js/ui/status/bluetooth.js:388
|
||||
#: ../js/ui/status/network.js:739
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
@@ -1437,115 +1437,107 @@ msgid "Bluetooth Settings"
|
||||
msgstr "Configuración de Bluetooth"
|
||||
|
||||
#. TRANSLATORS: this means that bluetooth was disabled by hardware rfkill
|
||||
#: ../js/ui/status/bluetooth.js:105 ../js/ui/status/network.js:140
|
||||
#: ../js/ui/status/bluetooth.js:104 ../js/ui/status/network.js:142
|
||||
msgid "hardware disabled"
|
||||
msgstr "hardware desactivado"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:198
|
||||
#: ../js/ui/status/bluetooth.js:197
|
||||
msgid "Connection"
|
||||
msgstr "Conexión"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:209 ../js/ui/status/network.js:399
|
||||
#: ../js/ui/status/bluetooth.js:208 ../js/ui/status/network.js:404
|
||||
msgid "disconnecting..."
|
||||
msgstr "deconectando…"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:405
|
||||
#: ../js/ui/status/network.js:1298
|
||||
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:410
|
||||
#: ../js/ui/status/network.js:1343
|
||||
msgid "connecting..."
|
||||
msgstr "conectando…"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:240
|
||||
#: ../js/ui/status/bluetooth.js:239
|
||||
msgid "Send Files…"
|
||||
msgstr "Enviar archivos…"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:247
|
||||
#: ../js/ui/status/bluetooth.js:246
|
||||
msgid "Keyboard Settings"
|
||||
msgstr "Configuración del teclado"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:250
|
||||
#: ../js/ui/status/bluetooth.js:249
|
||||
msgid "Mouse Settings"
|
||||
msgstr "Configuración del ratón…"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:255 ../js/ui/status/volume.js:313
|
||||
#: ../js/ui/status/bluetooth.js:254 ../js/ui/status/volume.js:316
|
||||
msgid "Sound Settings"
|
||||
msgstr "Configuración del sonido"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:328 ../js/ui/status/bluetooth.js:356
|
||||
#: ../js/ui/status/bluetooth.js:322
|
||||
#, c-format
|
||||
msgid "Authorization request from %s"
|
||||
msgstr "Solicitud de autorización de %s"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:334 ../js/ui/status/bluetooth.js:399
|
||||
#: ../js/ui/status/bluetooth.js:430
|
||||
#, c-format
|
||||
msgid "Device %s wants to pair with this computer"
|
||||
msgstr "El dispositivo «%s» quiere emparejarse con este equipo"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:336
|
||||
msgid "Allow"
|
||||
msgstr "Permitir"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:337
|
||||
msgid "Deny"
|
||||
msgstr "Denegar"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:362
|
||||
#: ../js/ui/status/bluetooth.js:328
|
||||
#, c-format
|
||||
msgid "Device %s wants access to the service '%s'"
|
||||
msgstr "El dispositivo %s quiere acceder al servicio «%s»"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:364
|
||||
#: ../js/ui/status/bluetooth.js:330
|
||||
msgid "Always grant access"
|
||||
msgstr "Conceder acceso siempre"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:365
|
||||
#: ../js/ui/status/bluetooth.js:331
|
||||
msgid "Grant this time only"
|
||||
msgstr "Conceder sólo esta vez"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:366
|
||||
#: ../js/ui/status/bluetooth.js:332
|
||||
msgid "Reject"
|
||||
msgstr "Rechazar"
|
||||
|
||||
#. Translators: argument is the device short name
|
||||
#: ../js/ui/status/bluetooth.js:393
|
||||
#: ../js/ui/status/bluetooth.js:359
|
||||
#, c-format
|
||||
msgid "Pairing confirmation for %s"
|
||||
msgstr "Confirmación de emparejamiento para «%s»"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:400
|
||||
#: ../js/ui/status/bluetooth.js:365 ../js/ui/status/bluetooth.js:396
|
||||
#, c-format
|
||||
msgid "Device %s wants to pair with this computer"
|
||||
msgstr "El dispositivo «%s» quiere emparejarse con este equipo"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:366
|
||||
#, c-format
|
||||
#| msgid "Please confirm whether the PIN '%06d' matches the one on the device."
|
||||
msgid ""
|
||||
"Please confirm whether the Passkey '%06d' matches the one on the device."
|
||||
msgstr ""
|
||||
"Confirme que la clave mostrada en «%06d» coincide con la del dispositivo."
|
||||
|
||||
#. Translators: this is the verb, not the noun
|
||||
#: ../js/ui/status/bluetooth.js:403
|
||||
#: ../js/ui/status/bluetooth.js:369
|
||||
msgid "Matches"
|
||||
msgstr "Coincide"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:404
|
||||
#: ../js/ui/status/bluetooth.js:370
|
||||
msgid "Does not match"
|
||||
msgstr "No coincide"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:423
|
||||
#: ../js/ui/status/bluetooth.js:389
|
||||
#, c-format
|
||||
msgid "Pairing request for %s"
|
||||
msgstr "Solicitud de emparejamiento para «%s»"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:431
|
||||
#: ../js/ui/status/bluetooth.js:397
|
||||
msgid "Please enter the PIN mentioned on the device."
|
||||
msgstr "Introduzca el PIN mencionado en el dispositivo."
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:448
|
||||
#: ../js/ui/status/bluetooth.js:414
|
||||
msgid "OK"
|
||||
msgstr "Aceptar"
|
||||
|
||||
#: ../js/ui/status/keyboard.js:396
|
||||
#: ../js/ui/status/keyboard.js:368
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "Mostrar la distribución del teclado"
|
||||
|
||||
#: ../js/ui/status/keyboard.js:401
|
||||
#: ../js/ui/status/keyboard.js:373
|
||||
msgid "Region & Language Settings"
|
||||
msgstr "Configuración de región e idioma"
|
||||
|
||||
@@ -1557,81 +1549,87 @@ msgstr "Volumen, red, batería"
|
||||
msgid "<unknown>"
|
||||
msgstr "<desconocido>"
|
||||
|
||||
#: ../js/ui/status/network.js:125
|
||||
#: ../js/ui/status/network.js:127
|
||||
msgid "Wi-Fi"
|
||||
msgstr "Wi-Fi"
|
||||
|
||||
#. Translators: this indicates that wireless or wwan is disabled by hardware killswitch
|
||||
#: ../js/ui/status/network.js:162
|
||||
#: ../js/ui/status/network.js:164
|
||||
msgid "disabled"
|
||||
msgstr "desactivada"
|
||||
|
||||
#. Translators: this is for network devices that are physically present but are not
|
||||
#. under NetworkManager's control (and thus cannot be used in the menu)
|
||||
#: ../js/ui/status/network.js:397
|
||||
#: ../js/ui/status/network.js:402
|
||||
msgid "unmanaged"
|
||||
msgstr "no gestionada"
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password
|
||||
#: ../js/ui/status/network.js:408 ../js/ui/status/network.js:1301
|
||||
#: ../js/ui/status/network.js:413 ../js/ui/status/network.js:1346
|
||||
msgid "authentication required"
|
||||
msgstr "se necesita autenticación"
|
||||
|
||||
#. Translators: this is for devices that require some kind of firmware or kernel
|
||||
#. module, which is missing
|
||||
#: ../js/ui/status/network.js:419
|
||||
#: ../js/ui/status/network.js:423
|
||||
msgid "firmware missing"
|
||||
msgstr "falta el «firmware»"
|
||||
|
||||
#. Translators: this is for wired network devices that are physically disconnected
|
||||
#: ../js/ui/status/network.js:430
|
||||
msgid "cable unplugged"
|
||||
msgstr "cable desconectado"
|
||||
|
||||
#. Translators: this is for a network device that cannot be activated (for example it
|
||||
#. is disabled by rfkill, or it has no coverage
|
||||
#: ../js/ui/status/network.js:423
|
||||
#: ../js/ui/status/network.js:435
|
||||
msgid "unavailable"
|
||||
msgstr "no disponible"
|
||||
|
||||
#: ../js/ui/status/network.js:425 ../js/ui/status/network.js:1303
|
||||
#: ../js/ui/status/network.js:437 ../js/ui/status/network.js:1348
|
||||
msgid "connection failed"
|
||||
msgstr "falló la conexión"
|
||||
|
||||
#: ../js/ui/status/network.js:478 ../js/ui/status/network.js:1190
|
||||
#: ../js/ui/status/network.js:490 ../js/ui/status/network.js:1236
|
||||
#: ../js/ui/status/network.js:1424
|
||||
msgid "More…"
|
||||
msgstr "Más…"
|
||||
|
||||
#. TRANSLATORS: this is the indication that a connection for another logged in user is active,
|
||||
#. and we cannot access its settings (including the name)
|
||||
#: ../js/ui/status/network.js:506 ../js/ui/status/network.js:1142
|
||||
#: ../js/ui/status/network.js:518 ../js/ui/status/network.js:1191
|
||||
msgid "Connected (private)"
|
||||
msgstr "Conectada (privada)"
|
||||
|
||||
#: ../js/ui/status/network.js:572
|
||||
#: ../js/ui/status/network.js:597
|
||||
msgid "Wired"
|
||||
msgstr "Cableada"
|
||||
|
||||
#: ../js/ui/status/network.js:592
|
||||
#: ../js/ui/status/network.js:611
|
||||
msgid "Mobile broadband"
|
||||
msgstr "Banda ancha móvil"
|
||||
|
||||
#: ../js/ui/status/network.js:1474
|
||||
#: ../js/ui/status/network.js:1522
|
||||
msgid "Enable networking"
|
||||
msgstr "Activar red"
|
||||
|
||||
#: ../js/ui/status/network.js:1522
|
||||
#: ../js/ui/status/network.js:1583
|
||||
msgid "Network Settings"
|
||||
msgstr "Configuración de la red"
|
||||
|
||||
#: ../js/ui/status/network.js:1539
|
||||
#: ../js/ui/status/network.js:1600
|
||||
msgid "Network Manager"
|
||||
msgstr "Gestor de la red"
|
||||
|
||||
#: ../js/ui/status/network.js:1623
|
||||
#: ../js/ui/status/network.js:1690
|
||||
msgid "Connection failed"
|
||||
msgstr "Falló la conexión"
|
||||
|
||||
#: ../js/ui/status/network.js:1624
|
||||
#: ../js/ui/status/network.js:1691
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Falló la activación de la conexión de red"
|
||||
|
||||
#: ../js/ui/status/network.js:1933
|
||||
#: ../js/ui/status/network.js:2047
|
||||
msgid "Networking is disabled"
|
||||
msgstr "La red está desactivada"
|
||||
|
||||
@@ -1732,72 +1730,72 @@ msgctxt "device"
|
||||
msgid "Unknown"
|
||||
msgstr "Desconocido"
|
||||
|
||||
#: ../js/ui/status/volume.js:121
|
||||
#: ../js/ui/status/volume.js:124
|
||||
msgid "Volume changed"
|
||||
msgstr "Volumen modificado"
|
||||
|
||||
#. Translators: This is the label for audio volume
|
||||
#: ../js/ui/status/volume.js:246 ../js/ui/status/volume.js:294
|
||||
#: ../js/ui/status/volume.js:249 ../js/ui/status/volume.js:297
|
||||
msgid "Volume"
|
||||
msgstr "Volumen"
|
||||
|
||||
#: ../js/ui/status/volume.js:255
|
||||
#: ../js/ui/status/volume.js:258
|
||||
msgid "Microphone"
|
||||
msgstr "Micrófono"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:119
|
||||
#: ../js/ui/unlockDialog.js:120
|
||||
msgid "Log in as another user"
|
||||
msgstr "Iniciar sesión como otro usuario"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:140
|
||||
#: ../js/ui/unlockDialog.js:141
|
||||
msgid "Unlock Window"
|
||||
msgstr "Desbloquear ventana"
|
||||
|
||||
#: ../js/ui/userMenu.js:149
|
||||
#: ../js/ui/userMenu.js:193
|
||||
msgid "Available"
|
||||
msgstr "Disponible"
|
||||
|
||||
#: ../js/ui/userMenu.js:152
|
||||
#: ../js/ui/userMenu.js:196
|
||||
msgid "Busy"
|
||||
msgstr "Ocupado"
|
||||
|
||||
#: ../js/ui/userMenu.js:155
|
||||
#: ../js/ui/userMenu.js:199
|
||||
msgid "Invisible"
|
||||
msgstr "Invisible"
|
||||
|
||||
#: ../js/ui/userMenu.js:158
|
||||
#: ../js/ui/userMenu.js:202
|
||||
msgid "Away"
|
||||
msgstr "Ausente"
|
||||
|
||||
#: ../js/ui/userMenu.js:161
|
||||
#: ../js/ui/userMenu.js:205
|
||||
msgid "Idle"
|
||||
msgstr "Inactivo"
|
||||
|
||||
#: ../js/ui/userMenu.js:164
|
||||
#: ../js/ui/userMenu.js:208
|
||||
msgid "Offline"
|
||||
msgstr "Desconectado"
|
||||
|
||||
#: ../js/ui/userMenu.js:736
|
||||
#: ../js/ui/userMenu.js:781
|
||||
msgid "Notifications"
|
||||
msgstr "Notificaciones"
|
||||
|
||||
#: ../js/ui/userMenu.js:749
|
||||
#: ../js/ui/userMenu.js:797
|
||||
msgid "Switch User"
|
||||
msgstr "Cambiar de usuario"
|
||||
|
||||
#: ../js/ui/userMenu.js:754
|
||||
#: ../js/ui/userMenu.js:802
|
||||
msgid "Log Out"
|
||||
msgstr "Cerrar la sesión"
|
||||
|
||||
#: ../js/ui/userMenu.js:774
|
||||
#: ../js/ui/userMenu.js:822
|
||||
msgid "Install Updates & Restart"
|
||||
msgstr "Instalar actualizaciones y reiniciar"
|
||||
|
||||
#: ../js/ui/userMenu.js:792
|
||||
#: ../js/ui/userMenu.js:840
|
||||
msgid "Your chat status will be set to busy"
|
||||
msgstr "Su estado del chat se establecerá a «ocupado»"
|
||||
|
||||
#: ../js/ui/userMenu.js:793
|
||||
#: ../js/ui/userMenu.js:841
|
||||
msgid ""
|
||||
"Notifications are now disabled, including chat messages. Your online status "
|
||||
"has been adjusted to let others know that you might not see their messages."
|
||||
@@ -1806,22 +1804,22 @@ msgstr ""
|
||||
"chat. Su estado en línea se ha ajustado para que otros sepan que puede no "
|
||||
"leer sus mensajes."
|
||||
|
||||
#: ../js/ui/userMenu.js:834
|
||||
#: ../js/ui/userMenu.js:888
|
||||
msgid "Other users are logged in."
|
||||
msgstr "Hay otros usuarios con la sesión iniciada"
|
||||
|
||||
#: ../js/ui/userMenu.js:839
|
||||
#: ../js/ui/userMenu.js:893
|
||||
msgid "Shutting down might cause them to lose unsaved work."
|
||||
msgstr "Apagar puede hacer que pierdan el trabajo que no hayan guardado."
|
||||
|
||||
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||
#: ../js/ui/userMenu.js:867
|
||||
#: ../js/ui/userMenu.js:921
|
||||
#, c-format
|
||||
msgid "%s (remote)"
|
||||
msgstr "%s (remoto)"
|
||||
|
||||
#. Translators: Console here refers to a tty like a VT console
|
||||
#: ../js/ui/userMenu.js:870
|
||||
#: ../js/ui/userMenu.js:924
|
||||
#, c-format
|
||||
msgid "%s (console)"
|
||||
msgstr "%s (consola)"
|
||||
@@ -1879,21 +1877,21 @@ msgstr[1] "%u entradas"
|
||||
msgid "System Sounds"
|
||||
msgstr "Sonidos del sistema"
|
||||
|
||||
#: ../src/main.c:353
|
||||
#: ../src/main.c:372
|
||||
msgid "Print version"
|
||||
msgstr "Imprimir versión"
|
||||
|
||||
#: ../src/main.c:359
|
||||
#: ../src/main.c:378
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Modo usado por GDM para la pantalla de inicio"
|
||||
|
||||
#: ../src/main.c:365
|
||||
#: ../src/main.c:384
|
||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
|
||||
msgstr ""
|
||||
"Usar un modo específico, por ejemplo, «gdm» para la pantalla de inicio de "
|
||||
"sesión"
|
||||
|
||||
#: ../src/main.c:371
|
||||
#: ../src/main.c:390
|
||||
msgid "List possible modes"
|
||||
msgstr "Listar los modos posibles"
|
||||
|
||||
@@ -1914,9 +1912,6 @@ msgstr "La contraseña no puede estar vacía"
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "El usuario rechazó el diálogo de autenticación"
|
||||
|
||||
#~ msgid "cable unplugged"
|
||||
#~ msgstr "cable desconectado"
|
||||
|
||||
#~ msgid "Whether to collect stats about applications usage"
|
||||
#~ msgstr ""
|
||||
#~ "Indica si se deben recolectar estadísticas acerca del uso de las "
|
||||
|
243
po/nb.po
243
po/nb.po
@@ -8,8 +8,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell 3.9.x\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-06-17 12:28+0200\n"
|
||||
"PO-Revision-Date: 2013-06-17 12:29+0200\n"
|
||||
"POT-Creation-Date: 2013-05-28 09:43+0200\n"
|
||||
"PO-Revision-Date: 2013-05-28 09:44+0200\n"
|
||||
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
|
||||
"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
|
||||
"Language: \n"
|
||||
@@ -331,37 +331,37 @@ msgstr "Utvidelse"
|
||||
msgid "Select an extension to configure using the combobox above."
|
||||
msgstr "Velg en utvidelse som skal konfigureres med komboboksen over."
|
||||
|
||||
#: ../js/gdm/loginDialog.js:370
|
||||
#: ../js/gdm/loginDialog.js:371
|
||||
msgid "Session…"
|
||||
msgstr "Økt …"
|
||||
|
||||
#. translators: this message is shown below the user list on the
|
||||
#. login screen. It can be activated to reveal an entry for
|
||||
#. manually entering the username.
|
||||
#: ../js/gdm/loginDialog.js:600
|
||||
#: ../js/gdm/loginDialog.js:601
|
||||
msgid "Not listed?"
|
||||
msgstr "Ikke listet?"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:775 ../js/ui/components/networkAgent.js:137
|
||||
#: ../js/gdm/loginDialog.js:776 ../js/ui/components/networkAgent.js:137
|
||||
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:376
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/bluetooth.js:449 ../js/ui/unlockDialog.js:95
|
||||
#: ../js/ui/userMenu.js:884
|
||||
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:96
|
||||
#: ../js/ui/userMenu.js:938
|
||||
msgid "Cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:790
|
||||
#: ../js/gdm/loginDialog.js:791
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Logg inn"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:790
|
||||
#: ../js/gdm/loginDialog.js:791
|
||||
msgid "Next"
|
||||
msgstr "Neste"
|
||||
|
||||
#. Translators: this message is shown below the username entry field
|
||||
#. to clue the user in on how to login to the local network realm
|
||||
#: ../js/gdm/loginDialog.js:887
|
||||
#: ../js/gdm/loginDialog.js:888
|
||||
#, c-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(f.eks. bruker eller %s)"
|
||||
@@ -369,12 +369,12 @@ msgstr "(f.eks. bruker eller %s)"
|
||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||
#. is not visible here since we only care about phase2 authentication
|
||||
#. (and don't even care of which one)
|
||||
#: ../js/gdm/loginDialog.js:891 ../js/ui/components/networkAgent.js:260
|
||||
#: ../js/gdm/loginDialog.js:892 ../js/ui/components/networkAgent.js:260
|
||||
#: ../js/ui/components/networkAgent.js:278
|
||||
msgid "Username: "
|
||||
msgstr "Brukernavn: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1157
|
||||
#: ../js/gdm/loginDialog.js:1158
|
||||
msgid "Login Window"
|
||||
msgstr "Innloggingsvindu"
|
||||
|
||||
@@ -383,8 +383,8 @@ msgstr "Innloggingsvindu"
|
||||
msgid "Power"
|
||||
msgstr "Strøm"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:651 ../js/ui/userMenu.js:655
|
||||
#: ../js/ui/userMenu.js:768
|
||||
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:696 ../js/ui/userMenu.js:700
|
||||
#: ../js/ui/userMenu.js:816
|
||||
msgid "Suspend"
|
||||
msgstr "Hvilemodus"
|
||||
|
||||
@@ -392,8 +392,8 @@ msgstr "Hvilemodus"
|
||||
msgid "Restart"
|
||||
msgstr "Start på nytt"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:653
|
||||
#: ../js/ui/userMenu.js:655 ../js/ui/userMenu.js:767 ../js/ui/userMenu.js:888
|
||||
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:698
|
||||
#: ../js/ui/userMenu.js:700 ../js/ui/userMenu.js:815 ../js/ui/userMenu.js:942
|
||||
msgid "Power Off"
|
||||
msgstr "Slå av"
|
||||
|
||||
@@ -422,23 +422,23 @@ msgstr "Klarte ikke å lese kommando:"
|
||||
msgid "Execution of '%s' failed:"
|
||||
msgstr "Kjøring av «%s» feilet:"
|
||||
|
||||
#: ../js/ui/appDisplay.js:397
|
||||
#: ../js/ui/appDisplay.js:361
|
||||
msgid "Frequent"
|
||||
msgstr "Ofte"
|
||||
|
||||
#: ../js/ui/appDisplay.js:404
|
||||
#: ../js/ui/appDisplay.js:368
|
||||
msgid "All"
|
||||
msgstr "Alle"
|
||||
|
||||
#: ../js/ui/appDisplay.js:996
|
||||
#: ../js/ui/appDisplay.js:960
|
||||
msgid "New Window"
|
||||
msgstr "Nytt vindu"
|
||||
|
||||
#: ../js/ui/appDisplay.js:999 ../js/ui/dash.js:284
|
||||
#: ../js/ui/appDisplay.js:963 ../js/ui/dash.js:284
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Fjern fra favoritter"
|
||||
|
||||
#: ../js/ui/appDisplay.js:1000
|
||||
#: ../js/ui/appDisplay.js:964
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Legg til i favoritter"
|
||||
|
||||
@@ -452,7 +452,7 @@ msgstr "%s ble lagt til i dine favoritter."
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "%s ble fjernet fra dine favoritter."
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:744
|
||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:789
|
||||
msgid "Settings"
|
||||
msgstr "Innstillinger"
|
||||
|
||||
@@ -577,35 +577,35 @@ msgid "S"
|
||||
msgstr "Lø"
|
||||
|
||||
#. Translators: Text to show if there are no events
|
||||
#: ../js/ui/calendar.js:750
|
||||
#: ../js/ui/calendar.js:735
|
||||
msgid "Nothing Scheduled"
|
||||
msgstr "Ingenting planlagt"
|
||||
|
||||
#. Translators: Shown on calendar heading when selected day occurs on current year
|
||||
#: ../js/ui/calendar.js:768
|
||||
#: ../js/ui/calendar.js:751
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A %B %d"
|
||||
|
||||
#. Translators: Shown on calendar heading when selected day occurs on different year
|
||||
#: ../js/ui/calendar.js:771
|
||||
#: ../js/ui/calendar.js:754
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A %B %d, %Y"
|
||||
|
||||
#: ../js/ui/calendar.js:782
|
||||
#: ../js/ui/calendar.js:764
|
||||
msgid "Today"
|
||||
msgstr "I dag"
|
||||
|
||||
#: ../js/ui/calendar.js:786
|
||||
#: ../js/ui/calendar.js:768
|
||||
msgid "Tomorrow"
|
||||
msgstr "I morgen"
|
||||
|
||||
#: ../js/ui/calendar.js:797
|
||||
#: ../js/ui/calendar.js:779
|
||||
msgid "This week"
|
||||
msgstr "Denne uken"
|
||||
|
||||
#: ../js/ui/calendar.js:805
|
||||
#: ../js/ui/calendar.js:787
|
||||
msgid "Next week"
|
||||
msgstr "Neste uke"
|
||||
|
||||
@@ -989,26 +989,26 @@ msgstr "Vis programmer"
|
||||
|
||||
#. Translators: this is the name of the dock/favorites area on
|
||||
#. the left of the overview
|
||||
#: ../js/ui/dash.js:439
|
||||
#: ../js/ui/dash.js:435
|
||||
msgid "Dash"
|
||||
msgstr "Favoritter"
|
||||
|
||||
#: ../js/ui/dateMenu.js:85
|
||||
#: ../js/ui/dateMenu.js:86
|
||||
msgid "Open Calendar"
|
||||
msgstr "Åpne kalender"
|
||||
|
||||
#: ../js/ui/dateMenu.js:89
|
||||
#: ../js/ui/dateMenu.js:90
|
||||
msgid "Open Clocks"
|
||||
msgstr "Åpne Klokker"
|
||||
|
||||
#: ../js/ui/dateMenu.js:96
|
||||
#: ../js/ui/dateMenu.js:97
|
||||
msgid "Date & Time Settings"
|
||||
msgstr "Innstillinger for dato og klokkeslett"
|
||||
|
||||
#. 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").
|
||||
#.
|
||||
#: ../js/ui/dateMenu.js:202
|
||||
#: ../js/ui/dateMenu.js:208
|
||||
msgid "%A %B %e, %Y"
|
||||
msgstr "%a %e %B, %Y"
|
||||
|
||||
@@ -1182,15 +1182,15 @@ msgstr "Tøm meldinger"
|
||||
msgid "Notification Settings"
|
||||
msgstr "Innstillinger for varsling"
|
||||
|
||||
#: ../js/ui/messageTray.js:1711
|
||||
#: ../js/ui/messageTray.js:1707
|
||||
msgid "No Messages"
|
||||
msgstr "Ingen meldinger"
|
||||
|
||||
#: ../js/ui/messageTray.js:1784
|
||||
#: ../js/ui/messageTray.js:1780
|
||||
msgid "Message Tray"
|
||||
msgstr "Meldingstrau"
|
||||
|
||||
#: ../js/ui/messageTray.js:2811
|
||||
#: ../js/ui/messageTray.js:2805
|
||||
msgid "System Information"
|
||||
msgstr "Systeminformasjon"
|
||||
|
||||
@@ -1199,7 +1199,7 @@ msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Ukjent"
|
||||
|
||||
#: ../js/ui/overviewControls.js:474 ../js/ui/screenShield.js:150
|
||||
#: ../js/ui/overviewControls.js:472 ../js/ui/screenShield.js:150
|
||||
#, c-format
|
||||
msgid "%d new message"
|
||||
msgid_plural "%d new messages"
|
||||
@@ -1241,7 +1241,7 @@ msgstr "Topp-panel"
|
||||
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
||||
#. switches containing "◯" and "|"). Other values will
|
||||
#. simply result in invisible toggle switches.
|
||||
#: ../js/ui/popupMenu.js:545
|
||||
#: ../js/ui/popupMenu.js:738
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
@@ -1266,7 +1266,7 @@ msgid_plural "%d new notifications"
|
||||
msgstr[0] "%d ny varsling"
|
||||
msgstr[1] "%d nye varslinger"
|
||||
|
||||
#: ../js/ui/screenShield.js:449 ../js/ui/userMenu.js:759
|
||||
#: ../js/ui/screenShield.js:449 ../js/ui/userMenu.js:807
|
||||
msgid "Lock"
|
||||
msgstr "Lås"
|
||||
|
||||
@@ -1289,11 +1289,11 @@ msgstr "Kan ikke låse"
|
||||
msgid "Lock was blocked by an application"
|
||||
msgstr "Låsing ble stoppet av et program"
|
||||
|
||||
#: ../js/ui/searchDisplay.js:445
|
||||
#: ../js/ui/searchDisplay.js:453
|
||||
msgid "Searching…"
|
||||
msgstr "Søker …"
|
||||
|
||||
#: ../js/ui/searchDisplay.js:489
|
||||
#: ../js/ui/searchDisplay.js:497
|
||||
msgid "No results."
|
||||
msgstr "Ingen resultater."
|
||||
|
||||
@@ -1321,7 +1321,7 @@ msgstr "Passord"
|
||||
msgid "Remember Password"
|
||||
msgstr "Husk passord"
|
||||
|
||||
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:108
|
||||
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:109
|
||||
msgid "Unlock"
|
||||
msgstr "Lås opp"
|
||||
|
||||
@@ -1374,9 +1374,9 @@ msgid "Large Text"
|
||||
msgstr "Stor tekst"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:32
|
||||
#: ../js/ui/status/bluetooth.js:290 ../js/ui/status/bluetooth.js:327
|
||||
#: ../js/ui/status/bluetooth.js:355 ../js/ui/status/bluetooth.js:391
|
||||
#: ../js/ui/status/bluetooth.js:422 ../js/ui/status/network.js:713
|
||||
#: ../js/ui/status/bluetooth.js:289 ../js/ui/status/bluetooth.js:321
|
||||
#: ../js/ui/status/bluetooth.js:357 ../js/ui/status/bluetooth.js:388
|
||||
#: ../js/ui/status/network.js:739
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
@@ -1397,106 +1397,97 @@ msgid "Bluetooth Settings"
|
||||
msgstr "Innstillinger for Bluetooth"
|
||||
|
||||
#. TRANSLATORS: this means that bluetooth was disabled by hardware rfkill
|
||||
#: ../js/ui/status/bluetooth.js:105 ../js/ui/status/network.js:140
|
||||
#: ../js/ui/status/bluetooth.js:104 ../js/ui/status/network.js:142
|
||||
msgid "hardware disabled"
|
||||
msgstr "maskinvare slått av"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:198
|
||||
#: ../js/ui/status/bluetooth.js:197
|
||||
msgid "Connection"
|
||||
msgstr "Tilkobling"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:209 ../js/ui/status/network.js:399
|
||||
#: ../js/ui/status/bluetooth.js:208 ../js/ui/status/network.js:404
|
||||
msgid "disconnecting..."
|
||||
msgstr "kobler fra …"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:405
|
||||
#: ../js/ui/status/network.js:1298
|
||||
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:410
|
||||
#: ../js/ui/status/network.js:1343
|
||||
msgid "connecting..."
|
||||
msgstr "kobler til …"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:240
|
||||
#: ../js/ui/status/bluetooth.js:239
|
||||
msgid "Send Files…"
|
||||
msgstr "Send filer …"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:247
|
||||
#: ../js/ui/status/bluetooth.js:246
|
||||
msgid "Keyboard Settings"
|
||||
msgstr "Innstillinger for tastatur"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:250
|
||||
#: ../js/ui/status/bluetooth.js:249
|
||||
msgid "Mouse Settings"
|
||||
msgstr "Innstillinger for mus"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:255 ../js/ui/status/volume.js:313
|
||||
#: ../js/ui/status/bluetooth.js:254 ../js/ui/status/volume.js:316
|
||||
msgid "Sound Settings"
|
||||
msgstr "Innstillinger for lyd"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:328 ../js/ui/status/bluetooth.js:356
|
||||
#: ../js/ui/status/bluetooth.js:322
|
||||
#, c-format
|
||||
msgid "Authorization request from %s"
|
||||
msgstr "Forespørsel om autorisering fra %s"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:334 ../js/ui/status/bluetooth.js:399
|
||||
#: ../js/ui/status/bluetooth.js:430
|
||||
#, c-format
|
||||
msgid "Device %s wants to pair with this computer"
|
||||
msgstr "Enhet %s vil koble seg sammen med denne datamaskinen"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:336
|
||||
msgid "Allow"
|
||||
msgstr "Tillat"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:337
|
||||
msgid "Deny"
|
||||
msgstr "Nekt"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:362
|
||||
#: ../js/ui/status/bluetooth.js:328
|
||||
#, c-format
|
||||
msgid "Device %s wants access to the service '%s'"
|
||||
msgstr "Enhet %s vil ha tilgang til tjenesten «%s»"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:364
|
||||
#: ../js/ui/status/bluetooth.js:330
|
||||
msgid "Always grant access"
|
||||
msgstr "Alltid gi tilgang"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:365
|
||||
#: ../js/ui/status/bluetooth.js:331
|
||||
msgid "Grant this time only"
|
||||
msgstr "Gi tilgang kun denne ene gangen"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:366
|
||||
#: ../js/ui/status/bluetooth.js:332
|
||||
msgid "Reject"
|
||||
msgstr "Avvis"
|
||||
|
||||
#. Translators: argument is the device short name
|
||||
#: ../js/ui/status/bluetooth.js:393
|
||||
#: ../js/ui/status/bluetooth.js:359
|
||||
#, c-format
|
||||
msgid "Pairing confirmation for %s"
|
||||
msgstr "Bekreftelse for tilkobling for %s"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:400
|
||||
#: ../js/ui/status/bluetooth.js:365 ../js/ui/status/bluetooth.js:396
|
||||
#, c-format
|
||||
msgid "Device %s wants to pair with this computer"
|
||||
msgstr "Enhet %s vil koble seg sammen med denne datamaskinen"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:366
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Please confirm whether the Passkey '%06d' matches the one on the device."
|
||||
msgstr "Vennligst bekreft om passord «%06d» er lik den som brukes på enheten."
|
||||
|
||||
#. Translators: this is the verb, not the noun
|
||||
#: ../js/ui/status/bluetooth.js:403
|
||||
#: ../js/ui/status/bluetooth.js:369
|
||||
msgid "Matches"
|
||||
msgstr "Stemmer overens"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:404
|
||||
#: ../js/ui/status/bluetooth.js:370
|
||||
msgid "Does not match"
|
||||
msgstr "Stemmer ikke overens"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:423
|
||||
#: ../js/ui/status/bluetooth.js:389
|
||||
#, c-format
|
||||
msgid "Pairing request for %s"
|
||||
msgstr "Forespørsel om tilkobling for %s"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:431
|
||||
#: ../js/ui/status/bluetooth.js:397
|
||||
msgid "Please enter the PIN mentioned on the device."
|
||||
msgstr "Vennligst oppgi PIN som oppgitt på enheten."
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:448
|
||||
#: ../js/ui/status/bluetooth.js:414
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
|
||||
@@ -1516,81 +1507,87 @@ msgstr "Volum, nettverk, batteri"
|
||||
msgid "<unknown>"
|
||||
msgstr "<ukjent>"
|
||||
|
||||
#: ../js/ui/status/network.js:125
|
||||
#: ../js/ui/status/network.js:127
|
||||
msgid "Wi-Fi"
|
||||
msgstr "Wi-Fi"
|
||||
|
||||
#. Translators: this indicates that wireless or wwan is disabled by hardware killswitch
|
||||
#: ../js/ui/status/network.js:162
|
||||
#: ../js/ui/status/network.js:164
|
||||
msgid "disabled"
|
||||
msgstr "slått av"
|
||||
|
||||
#. Translators: this is for network devices that are physically present but are not
|
||||
#. under NetworkManager's control (and thus cannot be used in the menu)
|
||||
#: ../js/ui/status/network.js:397
|
||||
#: ../js/ui/status/network.js:402
|
||||
msgid "unmanaged"
|
||||
msgstr "ikke håndtert"
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password
|
||||
#: ../js/ui/status/network.js:408 ../js/ui/status/network.js:1301
|
||||
#: ../js/ui/status/network.js:413 ../js/ui/status/network.js:1346
|
||||
msgid "authentication required"
|
||||
msgstr "autentisering kreves"
|
||||
|
||||
#. Translators: this is for devices that require some kind of firmware or kernel
|
||||
#. module, which is missing
|
||||
#: ../js/ui/status/network.js:419
|
||||
#: ../js/ui/status/network.js:423
|
||||
msgid "firmware missing"
|
||||
msgstr "fastvare mangler"
|
||||
|
||||
#. Translators: this is for wired network devices that are physically disconnected
|
||||
#: ../js/ui/status/network.js:430
|
||||
msgid "cable unplugged"
|
||||
msgstr "kabel koblet fra"
|
||||
|
||||
#. Translators: this is for a network device that cannot be activated (for example it
|
||||
#. is disabled by rfkill, or it has no coverage
|
||||
#: ../js/ui/status/network.js:423
|
||||
#: ../js/ui/status/network.js:435
|
||||
msgid "unavailable"
|
||||
msgstr "ikke tilgjengelig"
|
||||
|
||||
#: ../js/ui/status/network.js:425 ../js/ui/status/network.js:1303
|
||||
#: ../js/ui/status/network.js:437 ../js/ui/status/network.js:1348
|
||||
msgid "connection failed"
|
||||
msgstr "tilkobling feilet"
|
||||
|
||||
#: ../js/ui/status/network.js:478 ../js/ui/status/network.js:1190
|
||||
#: ../js/ui/status/network.js:490 ../js/ui/status/network.js:1236
|
||||
#: ../js/ui/status/network.js:1424
|
||||
msgid "More…"
|
||||
msgstr "Mer …"
|
||||
|
||||
#. TRANSLATORS: this is the indication that a connection for another logged in user is active,
|
||||
#. and we cannot access its settings (including the name)
|
||||
#: ../js/ui/status/network.js:506 ../js/ui/status/network.js:1142
|
||||
#: ../js/ui/status/network.js:518 ../js/ui/status/network.js:1191
|
||||
msgid "Connected (private)"
|
||||
msgstr "Tilkoblet (privat)"
|
||||
|
||||
#: ../js/ui/status/network.js:572
|
||||
#: ../js/ui/status/network.js:597
|
||||
msgid "Wired"
|
||||
msgstr "Kablet"
|
||||
|
||||
#: ../js/ui/status/network.js:592
|
||||
#: ../js/ui/status/network.js:611
|
||||
msgid "Mobile broadband"
|
||||
msgstr "Mobilt bredbånd"
|
||||
|
||||
#: ../js/ui/status/network.js:1474
|
||||
#: ../js/ui/status/network.js:1522
|
||||
msgid "Enable networking"
|
||||
msgstr "Slå på nettverk"
|
||||
|
||||
#: ../js/ui/status/network.js:1522
|
||||
#: ../js/ui/status/network.js:1583
|
||||
msgid "Network Settings"
|
||||
msgstr "Innstillinger for nettverk"
|
||||
|
||||
#: ../js/ui/status/network.js:1539
|
||||
#: ../js/ui/status/network.js:1600
|
||||
msgid "Network Manager"
|
||||
msgstr "Nettverkshåndtering"
|
||||
|
||||
#: ../js/ui/status/network.js:1623
|
||||
#: ../js/ui/status/network.js:1690
|
||||
msgid "Connection failed"
|
||||
msgstr "Tilkobling feilet"
|
||||
|
||||
#: ../js/ui/status/network.js:1624
|
||||
#: ../js/ui/status/network.js:1691
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Aktivering av nettverkstilkobling feilet"
|
||||
|
||||
#: ../js/ui/status/network.js:1937
|
||||
#: ../js/ui/status/network.js:2047
|
||||
msgid "Networking is disabled"
|
||||
msgstr "Nettverk er slått av"
|
||||
|
||||
@@ -1691,72 +1688,72 @@ msgctxt "device"
|
||||
msgid "Unknown"
|
||||
msgstr "Ukjent"
|
||||
|
||||
#: ../js/ui/status/volume.js:121
|
||||
#: ../js/ui/status/volume.js:124
|
||||
msgid "Volume changed"
|
||||
msgstr "Volum endret"
|
||||
|
||||
#. Translators: This is the label for audio volume
|
||||
#: ../js/ui/status/volume.js:246 ../js/ui/status/volume.js:294
|
||||
#: ../js/ui/status/volume.js:249 ../js/ui/status/volume.js:297
|
||||
msgid "Volume"
|
||||
msgstr "Volum"
|
||||
|
||||
#: ../js/ui/status/volume.js:255
|
||||
#: ../js/ui/status/volume.js:258
|
||||
msgid "Microphone"
|
||||
msgstr "Mikrofon"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:119
|
||||
#: ../js/ui/unlockDialog.js:120
|
||||
msgid "Log in as another user"
|
||||
msgstr "Logg inn som en annen bruker"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:140
|
||||
#: ../js/ui/unlockDialog.js:141
|
||||
msgid "Unlock Window"
|
||||
msgstr "Lås opp vindu"
|
||||
|
||||
#: ../js/ui/userMenu.js:149
|
||||
#: ../js/ui/userMenu.js:193
|
||||
msgid "Available"
|
||||
msgstr "Tilgjengelig"
|
||||
|
||||
#: ../js/ui/userMenu.js:152
|
||||
#: ../js/ui/userMenu.js:196
|
||||
msgid "Busy"
|
||||
msgstr "Opptatt"
|
||||
|
||||
#: ../js/ui/userMenu.js:155
|
||||
#: ../js/ui/userMenu.js:199
|
||||
msgid "Invisible"
|
||||
msgstr "Usynlig"
|
||||
|
||||
#: ../js/ui/userMenu.js:158
|
||||
#: ../js/ui/userMenu.js:202
|
||||
msgid "Away"
|
||||
msgstr "Borte"
|
||||
|
||||
#: ../js/ui/userMenu.js:161
|
||||
#: ../js/ui/userMenu.js:205
|
||||
msgid "Idle"
|
||||
msgstr "Ledig"
|
||||
|
||||
#: ../js/ui/userMenu.js:164
|
||||
#: ../js/ui/userMenu.js:208
|
||||
msgid "Offline"
|
||||
msgstr "Frakoblet"
|
||||
|
||||
#: ../js/ui/userMenu.js:736
|
||||
#: ../js/ui/userMenu.js:781
|
||||
msgid "Notifications"
|
||||
msgstr "Varslinger"
|
||||
|
||||
#: ../js/ui/userMenu.js:749
|
||||
#: ../js/ui/userMenu.js:797
|
||||
msgid "Switch User"
|
||||
msgstr "Bytt bruker"
|
||||
|
||||
#: ../js/ui/userMenu.js:754
|
||||
#: ../js/ui/userMenu.js:802
|
||||
msgid "Log Out"
|
||||
msgstr "Logg ut"
|
||||
|
||||
#: ../js/ui/userMenu.js:774
|
||||
#: ../js/ui/userMenu.js:822
|
||||
msgid "Install Updates & Restart"
|
||||
msgstr "Installer oppdateringer og start på nytt"
|
||||
|
||||
#: ../js/ui/userMenu.js:792
|
||||
#: ../js/ui/userMenu.js:840
|
||||
msgid "Your chat status will be set to busy"
|
||||
msgstr "Din pratestatus vil bli satt til opptatt"
|
||||
|
||||
#: ../js/ui/userMenu.js:793
|
||||
#: ../js/ui/userMenu.js:841
|
||||
msgid ""
|
||||
"Notifications are now disabled, including chat messages. Your online status "
|
||||
"has been adjusted to let others know that you might not see their messages."
|
||||
@@ -1765,24 +1762,24 @@ msgstr ""
|
||||
"tilkoblingsstatus er justert for å la andre vite at du kanskje ikke ser "
|
||||
"deres meldinger."
|
||||
|
||||
#: ../js/ui/userMenu.js:834
|
||||
#: ../js/ui/userMenu.js:888
|
||||
msgid "Other users are logged in."
|
||||
msgstr "Andre brukere er logget inn."
|
||||
|
||||
#: ../js/ui/userMenu.js:839
|
||||
#: ../js/ui/userMenu.js:893
|
||||
msgid "Shutting down might cause them to lose unsaved work."
|
||||
msgstr ""
|
||||
"Hvis du slår av vil dette kunne medføre at de mister arbeid som ikke er "
|
||||
"lagret."
|
||||
|
||||
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||
#: ../js/ui/userMenu.js:867
|
||||
#: ../js/ui/userMenu.js:921
|
||||
#, c-format
|
||||
msgid "%s (remote)"
|
||||
msgstr "%s (ekstern)"
|
||||
|
||||
#. Translators: Console here refers to a tty like a VT console
|
||||
#: ../js/ui/userMenu.js:870
|
||||
#: ../js/ui/userMenu.js:924
|
||||
#, c-format
|
||||
msgid "%s (console)"
|
||||
msgstr "%s (konsoll)"
|
||||
@@ -1840,19 +1837,19 @@ msgstr[1] "%u innganger"
|
||||
msgid "System Sounds"
|
||||
msgstr "Systemlyder"
|
||||
|
||||
#: ../src/main.c:353
|
||||
#: ../src/main.c:372
|
||||
msgid "Print version"
|
||||
msgstr "Skriv ut versjon"
|
||||
|
||||
#: ../src/main.c:359
|
||||
#: ../src/main.c:378
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Modus som brukes av GDM for innloggingsskjermen"
|
||||
|
||||
#: ../src/main.c:365
|
||||
#: ../src/main.c:384
|
||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
|
||||
msgstr "Bruk spesifikt modus, f.eks «gdm» for innloggingsskjerm"
|
||||
|
||||
#: ../src/main.c:371
|
||||
#: ../src/main.c:390
|
||||
msgid "List possible modes"
|
||||
msgstr "Vis mulige modi"
|
||||
|
||||
|
@@ -314,38 +314,6 @@ gnome_shell_plugin_kill_switch_workspace (MetaPlugin *plugin)
|
||||
_shell_wm_kill_switch_workspace (get_shell_wm());
|
||||
}
|
||||
|
||||
static gboolean
|
||||
ignore_crossing_event (MetaPlugin *plugin,
|
||||
XIEnterEvent *enter_event)
|
||||
{
|
||||
MetaScreen *screen = meta_plugin_get_screen (plugin);
|
||||
ClutterStage *stage = CLUTTER_STAGE (meta_get_stage_for_screen (screen));
|
||||
|
||||
if (enter_event->event == clutter_x11_get_stage_window (stage))
|
||||
{
|
||||
/* If the pointer enters a child of the stage window (eg, a
|
||||
* trayicon), we want to consider it to still be in the stage,
|
||||
* so don't let Clutter see the event.
|
||||
*/
|
||||
if (enter_event->detail == XINotifyInferior)
|
||||
return TRUE;
|
||||
|
||||
/* If the pointer is grabbed by a window it is not currently in,
|
||||
* filter that out as well. In particular, if a trayicon grabs
|
||||
* the pointer after a click on its label, we don't want to hide
|
||||
* the message tray. Filtering out this event will leave Clutter
|
||||
* out of sync, but that happens fairly often with grabs, and we
|
||||
* can work around it. (Eg, shell_global_sync_pointer().)
|
||||
*/
|
||||
if (enter_event->mode == XINotifyGrab &&
|
||||
(enter_event->detail == XINotifyNonlinear ||
|
||||
enter_event->detail == XINotifyNonlinearVirtual))
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gnome_shell_plugin_xevent_filter (MetaPlugin *plugin,
|
||||
XEvent *xev)
|
||||
@@ -371,25 +339,10 @@ gnome_shell_plugin_xevent_filter (MetaPlugin *plugin,
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Make sure that Clutter doesn't see certain focus change events,
|
||||
* so that when we're moving into something like a tray icon, we
|
||||
* don't unfocus the container. */
|
||||
if (xev->type == GenericEvent &&
|
||||
xev->xcookie.extension == meta_display_get_xinput_opcode (display))
|
||||
{
|
||||
XIEvent *input_event = (XIEvent *) xev->xcookie.data;
|
||||
if ((input_event->evtype == XI_Enter || input_event->evtype == XI_Leave) &&
|
||||
ignore_crossing_event (plugin, (XIEnterEvent *) input_event))
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Pass the event to shell-global
|
||||
*/
|
||||
if (_shell_global_check_xdnd_event (shell_plugin->global, xev))
|
||||
return TRUE;
|
||||
|
||||
return clutter_x11_handle_event (xev) != CLUTTER_X11_FILTER_CONTINUE;
|
||||
return _shell_global_check_xdnd_event (shell_plugin->global, xev);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
10
src/main.c
10
src/main.c
@@ -22,6 +22,7 @@
|
||||
#include <atk-bridge.h>
|
||||
#include <telepathy-glib/debug.h>
|
||||
#include <telepathy-glib/debug-sender.h>
|
||||
#include <meta/util.h>
|
||||
|
||||
#include "shell-global.h"
|
||||
#include "shell-global-private.h"
|
||||
@@ -41,6 +42,7 @@ extern GType gnome_shell_plugin_get_type (void);
|
||||
|
||||
static gboolean is_gdm_mode = FALSE;
|
||||
static char *session_mode = NULL;
|
||||
static gboolean is_display_server = FALSE;
|
||||
|
||||
#define DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER 1
|
||||
#define DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER 4
|
||||
@@ -347,6 +349,12 @@ print_version (const gchar *option_name,
|
||||
}
|
||||
|
||||
GOptionEntry gnome_shell_options[] = {
|
||||
{
|
||||
"display-server", 0, 0, G_OPTION_ARG_NONE,
|
||||
&is_display_server,
|
||||
N_("Run as a display server"),
|
||||
NULL,
|
||||
},
|
||||
{
|
||||
"version", 0, G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK,
|
||||
print_version,
|
||||
@@ -396,6 +404,8 @@ main (int argc, char **argv)
|
||||
|
||||
g_option_context_free (ctx);
|
||||
|
||||
meta_set_is_display_server (is_display_server);
|
||||
|
||||
meta_plugin_manager_set_plugin_type (gnome_shell_plugin_get_type ());
|
||||
|
||||
meta_set_wm_name (WM_NAME);
|
||||
|
@@ -930,9 +930,34 @@ _shell_global_set_plugin (ShellGlobal *global,
|
||||
meta_screen_get_screen_number (global->meta_screen));
|
||||
|
||||
global->stage = CLUTTER_STAGE (meta_get_stage_for_screen (global->meta_screen));
|
||||
global->stage_xwindow = clutter_x11_get_stage_window (global->stage);
|
||||
global->stage_gdk_window = gdk_x11_window_foreign_new_for_display (global->gdk_display,
|
||||
global->stage_xwindow);
|
||||
if (meta_is_display_server ())
|
||||
{
|
||||
/* When Mutter is acting as its own display server then the
|
||||
stage does not have a window. Instead we'll just create a
|
||||
dummy window that might make some things blunder along but
|
||||
will probably just leave most things broken. It might be
|
||||
possible to fix this to make the fake window be the same size
|
||||
as the stage window would be and make it more useful. */
|
||||
|
||||
GdkWindowAttr attributes;
|
||||
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
attributes.width = 100;
|
||||
attributes.height = 100;
|
||||
attributes.window_type = GDK_WINDOW_TOPLEVEL;
|
||||
|
||||
global->stage_gdk_window = gdk_window_new (NULL,
|
||||
&attributes,
|
||||
0 /* attributes_mask */);
|
||||
global->stage_xwindow = gdk_x11_window_get_xid (global->stage_gdk_window);
|
||||
}
|
||||
else
|
||||
{
|
||||
global->stage_xwindow = clutter_x11_get_stage_window (global->stage);
|
||||
global->stage_gdk_window =
|
||||
gdk_x11_window_foreign_new_for_display (global->gdk_display,
|
||||
global->stage_xwindow);
|
||||
}
|
||||
|
||||
g_signal_connect (global->stage, "notify::width",
|
||||
G_CALLBACK (global_stage_notify_width), global);
|
||||
@@ -1240,9 +1265,12 @@ void shell_global_init_xdnd (ShellGlobal *global)
|
||||
gdk_x11_get_xatom_by_name ("XdndAware"), XA_ATOM,
|
||||
32, PropModeReplace, (const unsigned char *)&xdnd_version, 1);
|
||||
|
||||
XChangeProperty (global->xdisplay, output_window,
|
||||
gdk_x11_get_xatom_by_name ("XdndProxy"), XA_WINDOW,
|
||||
32, PropModeReplace, (const unsigned char *)&global->stage_xwindow, 1);
|
||||
/* There is no overlay window when running as a display server */
|
||||
if (output_window)
|
||||
XChangeProperty (global->xdisplay, output_window,
|
||||
gdk_x11_get_xatom_by_name ("XdndProxy"), XA_WINDOW,
|
||||
32, PropModeReplace,
|
||||
(const unsigned char *)&global->stage_xwindow, 1);
|
||||
|
||||
/*
|
||||
* XdndProxy is additionally set on the proxy window as verification that the
|
||||
|
@@ -4,8 +4,11 @@
|
||||
|
||||
#include "shell-xfixes-cursor.h"
|
||||
|
||||
#include <clutter/x11/clutter-x11.h>
|
||||
#include <gdk/gdkx.h>
|
||||
#include <X11/extensions/Xfixes.h>
|
||||
#include <meta/display.h>
|
||||
#include <meta/screen.h>
|
||||
#include <meta/util.h>
|
||||
|
||||
/**
|
||||
* SECTION:shell-xfixes-cursor
|
||||
@@ -24,7 +27,7 @@ struct _ShellXFixesCursorClass
|
||||
struct _ShellXFixesCursor {
|
||||
GObject parent;
|
||||
|
||||
ClutterStage *stage;
|
||||
MetaScreen *screen;
|
||||
|
||||
gboolean have_xfixes;
|
||||
int xfixes_event_base;
|
||||
@@ -36,17 +39,14 @@ struct _ShellXFixesCursor {
|
||||
int cursor_hot_y;
|
||||
};
|
||||
|
||||
static void xfixes_cursor_show (ShellXFixesCursor *xfixes_cursor);
|
||||
static void xfixes_cursor_hide (ShellXFixesCursor *xfixes_cursor);
|
||||
|
||||
static void xfixes_cursor_set_stage (ShellXFixesCursor *xfixes_cursor,
|
||||
ClutterStage *stage);
|
||||
static void xfixes_cursor_set_screen (ShellXFixesCursor *xfixes_cursor,
|
||||
MetaScreen *screen);
|
||||
|
||||
static void xfixes_cursor_reset_image (ShellXFixesCursor *xfixes_cursor);
|
||||
|
||||
enum {
|
||||
PROP_0,
|
||||
PROP_STAGE,
|
||||
PROP_SCREEN,
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE(ShellXFixesCursor, shell_xfixes_cursor, G_TYPE_OBJECT);
|
||||
@@ -71,31 +71,22 @@ shell_xfixes_cursor_finalize (GObject *object)
|
||||
{
|
||||
ShellXFixesCursor *xfixes_cursor = SHELL_XFIXES_CURSOR (object);
|
||||
|
||||
// Make sure the system cursor is showing before leaving the stage.
|
||||
xfixes_cursor_show (xfixes_cursor);
|
||||
xfixes_cursor_set_stage (xfixes_cursor, NULL);
|
||||
xfixes_cursor_set_screen (xfixes_cursor, NULL);
|
||||
if (xfixes_cursor->cursor_sprite != NULL)
|
||||
cogl_handle_unref (xfixes_cursor->cursor_sprite);
|
||||
|
||||
G_OBJECT_CLASS (shell_xfixes_cursor_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
xfixes_cursor_on_stage_destroy (ClutterActor *actor,
|
||||
ShellXFixesCursor *xfixes_cursor)
|
||||
{
|
||||
xfixes_cursor_set_stage (xfixes_cursor, NULL);
|
||||
}
|
||||
|
||||
static ClutterX11FilterReturn
|
||||
xfixes_cursor_event_filter (XEvent *xev,
|
||||
ClutterEvent *cev,
|
||||
gpointer data)
|
||||
static GdkFilterReturn
|
||||
xfixes_cursor_event_filter (XEvent *xev,
|
||||
GdkEvent *ev,
|
||||
gpointer data)
|
||||
{
|
||||
ShellXFixesCursor *xfixes_cursor = data;
|
||||
|
||||
if (xev->xany.window != clutter_x11_get_stage_window (xfixes_cursor->stage))
|
||||
return CLUTTER_X11_FILTER_CONTINUE;
|
||||
if (xev->xany.window != meta_get_overlay_window (xfixes_cursor->screen))
|
||||
return GDK_FILTER_CONTINUE;
|
||||
|
||||
if (xev->xany.type == xfixes_cursor->xfixes_event_base + XFixesCursorNotify)
|
||||
{
|
||||
@@ -103,93 +94,43 @@ xfixes_cursor_event_filter (XEvent *xev,
|
||||
if (notify_event->subtype == XFixesDisplayCursorNotify)
|
||||
xfixes_cursor_reset_image (xfixes_cursor);
|
||||
}
|
||||
return CLUTTER_X11_FILTER_CONTINUE;
|
||||
|
||||
return GDK_FILTER_CONTINUE;
|
||||
}
|
||||
|
||||
static void
|
||||
xfixes_cursor_set_stage (ShellXFixesCursor *xfixes_cursor,
|
||||
ClutterStage *stage)
|
||||
xfixes_cursor_set_screen (ShellXFixesCursor *xfixes_cursor,
|
||||
MetaScreen *screen)
|
||||
{
|
||||
if (xfixes_cursor->stage == stage)
|
||||
if (xfixes_cursor->screen == screen)
|
||||
return;
|
||||
|
||||
if (xfixes_cursor->stage)
|
||||
if (xfixes_cursor->screen)
|
||||
{
|
||||
g_signal_handlers_disconnect_by_func (xfixes_cursor->stage,
|
||||
(void *)xfixes_cursor_on_stage_destroy,
|
||||
xfixes_cursor);
|
||||
|
||||
clutter_x11_remove_filter (xfixes_cursor_event_filter, xfixes_cursor);
|
||||
gdk_window_remove_filter (NULL, (GdkFilterFunc)xfixes_cursor_event_filter, xfixes_cursor);
|
||||
}
|
||||
xfixes_cursor->stage = stage;
|
||||
if (xfixes_cursor->stage)
|
||||
|
||||
xfixes_cursor->screen = screen;
|
||||
if (xfixes_cursor->screen)
|
||||
{
|
||||
int error_base;
|
||||
|
||||
xfixes_cursor->stage = stage;
|
||||
g_signal_connect (xfixes_cursor->stage, "destroy",
|
||||
G_CALLBACK (xfixes_cursor_on_stage_destroy), xfixes_cursor);
|
||||
gdk_window_add_filter (NULL, (GdkFilterFunc)xfixes_cursor_event_filter, xfixes_cursor);
|
||||
|
||||
clutter_x11_add_filter (xfixes_cursor_event_filter, xfixes_cursor);
|
||||
|
||||
xfixes_cursor->have_xfixes = XFixesQueryExtension (clutter_x11_get_default_display (),
|
||||
xfixes_cursor->have_xfixes = XFixesQueryExtension (gdk_x11_get_default_xdisplay (),
|
||||
&xfixes_cursor->xfixes_event_base,
|
||||
&error_base);
|
||||
if (xfixes_cursor->have_xfixes)
|
||||
XFixesSelectCursorInput (clutter_x11_get_default_display (),
|
||||
clutter_x11_get_stage_window (stage),
|
||||
|
||||
/* FIXME: this needs to be moved down to mutter as a whole */
|
||||
if (xfixes_cursor->have_xfixes && !meta_is_display_server())
|
||||
XFixesSelectCursorInput (gdk_x11_get_default_xdisplay (),
|
||||
meta_get_overlay_window (screen),
|
||||
XFixesDisplayCursorNotifyMask);
|
||||
|
||||
xfixes_cursor_reset_image (xfixes_cursor);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
xfixes_cursor_show (ShellXFixesCursor *xfixes_cursor)
|
||||
{
|
||||
int minor, major;
|
||||
Display *xdisplay;
|
||||
Window xwindow;
|
||||
|
||||
if (xfixes_cursor->is_showing == TRUE)
|
||||
return;
|
||||
|
||||
if (!xfixes_cursor->have_xfixes || !xfixes_cursor->stage)
|
||||
return;
|
||||
|
||||
xdisplay = clutter_x11_get_default_display ();
|
||||
xwindow = clutter_x11_get_stage_window (xfixes_cursor->stage);
|
||||
XFixesQueryVersion (xdisplay, &major, &minor);
|
||||
if (major >= 4)
|
||||
{
|
||||
XFixesShowCursor (xdisplay, xwindow);
|
||||
xfixes_cursor->is_showing = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
xfixes_cursor_hide (ShellXFixesCursor *xfixes_cursor)
|
||||
{
|
||||
int minor, major;
|
||||
Display *xdisplay;
|
||||
Window xwindow;
|
||||
|
||||
if (xfixes_cursor->is_showing == FALSE)
|
||||
return;
|
||||
|
||||
if (!xfixes_cursor->have_xfixes || !xfixes_cursor->stage)
|
||||
return;
|
||||
|
||||
xdisplay = clutter_x11_get_default_display ();
|
||||
xwindow = clutter_x11_get_stage_window (xfixes_cursor->stage);
|
||||
XFixesQueryVersion (xdisplay, &major, &minor);
|
||||
if (major >= 4)
|
||||
{
|
||||
XFixesHideCursor (xdisplay, xwindow);
|
||||
xfixes_cursor->is_showing = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
xfixes_cursor_reset_image (ShellXFixesCursor *xfixes_cursor)
|
||||
{
|
||||
@@ -201,7 +142,7 @@ xfixes_cursor_reset_image (ShellXFixesCursor *xfixes_cursor)
|
||||
if (!xfixes_cursor->have_xfixes)
|
||||
return;
|
||||
|
||||
cursor_image = XFixesGetCursorImage (clutter_x11_get_default_display ());
|
||||
cursor_image = XFixesGetCursorImage (gdk_x11_get_default_xdisplay ());
|
||||
if (!cursor_image)
|
||||
return;
|
||||
|
||||
@@ -265,8 +206,8 @@ shell_xfixes_cursor_set_property (GObject *object,
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_STAGE:
|
||||
xfixes_cursor_set_stage (xfixes_cursor, g_value_get_object (value));
|
||||
case PROP_SCREEN:
|
||||
xfixes_cursor_set_screen (xfixes_cursor, g_value_get_object (value));
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
@@ -284,8 +225,8 @@ shell_xfixes_cursor_get_property (GObject *object,
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_STAGE:
|
||||
g_value_set_object (value, G_OBJECT (xfixes_cursor->stage));
|
||||
case PROP_SCREEN:
|
||||
g_value_set_object (value, G_OBJECT (xfixes_cursor->screen));
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
@@ -311,22 +252,22 @@ shell_xfixes_cursor_class_init (ShellXFixesCursorClass *klass)
|
||||
gobject_class->set_property = shell_xfixes_cursor_set_property;
|
||||
|
||||
g_object_class_install_property (gobject_class,
|
||||
PROP_STAGE,
|
||||
g_param_spec_object ("stage",
|
||||
"Stage",
|
||||
"Stage for mouse cursor",
|
||||
CLUTTER_TYPE_STAGE,
|
||||
PROP_SCREEN,
|
||||
g_param_spec_object ("screen",
|
||||
"Screen",
|
||||
"Screen for mouse cursor",
|
||||
META_TYPE_SCREEN,
|
||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
|
||||
}
|
||||
|
||||
/**
|
||||
* shell_xfixes_cursor_get_for_stage:
|
||||
* @stage: (transfer none): The #ClutterStage to get the cursor for
|
||||
* shell_xfixes_cursor_get_for_screen:
|
||||
* @screen: (transfer none): The #MetaScreen to get the cursor for
|
||||
*
|
||||
* Return value: (transfer none): A #ShellXFixesCursor instance
|
||||
*/
|
||||
ShellXFixesCursor *
|
||||
shell_xfixes_cursor_get_for_stage (ClutterStage *stage)
|
||||
shell_xfixes_cursor_get_for_screen (MetaScreen *screen)
|
||||
{
|
||||
ShellXFixesCursor *instance;
|
||||
static GQuark xfixes_cursor_quark;
|
||||
@@ -334,47 +275,19 @@ shell_xfixes_cursor_get_for_stage (ClutterStage *stage)
|
||||
if (G_UNLIKELY (xfixes_cursor_quark == 0))
|
||||
xfixes_cursor_quark = g_quark_from_static_string ("gnome-shell-xfixes-cursor");
|
||||
|
||||
instance = g_object_get_qdata (G_OBJECT (stage), xfixes_cursor_quark);
|
||||
instance = g_object_get_qdata (G_OBJECT (screen), xfixes_cursor_quark);
|
||||
|
||||
if (instance == NULL)
|
||||
{
|
||||
instance = g_object_new (SHELL_TYPE_XFIXES_CURSOR,
|
||||
"stage", stage,
|
||||
"screen", screen,
|
||||
NULL);
|
||||
g_object_set_qdata (G_OBJECT (stage), xfixes_cursor_quark, instance);
|
||||
g_object_set_qdata (G_OBJECT (screen), xfixes_cursor_quark, instance);
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* shell_xfixes_cursor_hide:
|
||||
* @xfixes_cursor: the #ShellXFixesCursor
|
||||
*
|
||||
* Hide the system mouse cursor.
|
||||
*/
|
||||
void
|
||||
shell_xfixes_cursor_hide (ShellXFixesCursor *xfixes_cursor)
|
||||
{
|
||||
g_return_if_fail (SHELL_IS_XFIXES_CURSOR (xfixes_cursor));
|
||||
|
||||
xfixes_cursor_hide (xfixes_cursor);
|
||||
}
|
||||
|
||||
/**
|
||||
* shell_xfixes_cursor_show:
|
||||
* @xfixes_cursor: the #ShellXFixesCursor
|
||||
*
|
||||
* Show the system mouse cursor to show
|
||||
*/
|
||||
void
|
||||
shell_xfixes_cursor_show (ShellXFixesCursor *xfixes_cursor)
|
||||
{
|
||||
g_return_if_fail (SHELL_IS_XFIXES_CURSOR (xfixes_cursor));
|
||||
|
||||
xfixes_cursor_show (xfixes_cursor);
|
||||
}
|
||||
|
||||
/**
|
||||
* shell_xfixes_cursor_update_texture_image:
|
||||
* @xfixes_cursor: the #ShellXFixesCursor
|
||||
|
@@ -4,6 +4,7 @@
|
||||
|
||||
#include <clutter/clutter.h>
|
||||
#include <gdk-pixbuf/gdk-pixbuf.h>
|
||||
#include <meta/screen.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
@@ -19,10 +20,8 @@ typedef struct _ShellXFixesCursorClass ShellXFixesCursorClass;
|
||||
|
||||
GType shell_xfixes_cursor_get_type (void) G_GNUC_CONST;
|
||||
|
||||
ShellXFixesCursor *shell_xfixes_cursor_get_for_stage (ClutterStage *stage);
|
||||
ShellXFixesCursor *shell_xfixes_cursor_get_for_screen (MetaScreen *screen);
|
||||
|
||||
void shell_xfixes_cursor_show (ShellXFixesCursor *xfixes_cursor);
|
||||
void shell_xfixes_cursor_hide (ShellXFixesCursor *xfixes_cursor);
|
||||
int shell_xfixes_cursor_get_hot_x (ShellXFixesCursor *xfixes_cursor);
|
||||
int shell_xfixes_cursor_get_hot_y (ShellXFixesCursor *xfixes_cursor);
|
||||
void shell_xfixes_cursor_update_texture_image (ShellXFixesCursor *xfixes_cursor,
|
||||
|
Reference in New Issue
Block a user