[gnome-shell-extensions/wip/rstrode/heads-up-display: 9/62] Add desktop icons extension
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell-extensions/wip/rstrode/heads-up-display: 9/62] Add desktop icons extension
- Date: Thu, 26 Aug 2021 19:31:30 +0000 (UTC)
commit 8cf921029c35270bf9fd8d9949d3d13abfd78f92
Author: Carlos Soriano <csoriano gnome org>
Date: Mon Aug 13 17:28:41 2018 +0200
Add desktop icons extension
extensions/desktop-icons/createFolderDialog.js | 164 ++++
extensions/desktop-icons/createThumbnail.js | 35 +
extensions/desktop-icons/dbusUtils.js | 103 +++
extensions/desktop-icons/desktopGrid.js | 692 +++++++++++++++++
extensions/desktop-icons/desktopIconsUtil.js | 123 +++
extensions/desktop-icons/desktopManager.js | 754 +++++++++++++++++++
extensions/desktop-icons/extension.js | 71 ++
extensions/desktop-icons/fileItem.js | 830 +++++++++++++++++++++
extensions/desktop-icons/meson.build | 19 +
extensions/desktop-icons/metadata.json.in | 11 +
extensions/desktop-icons/po/LINGUAS | 19 +
extensions/desktop-icons/po/POTFILES.in | 4 +
extensions/desktop-icons/po/cs.po | 195 +++++
extensions/desktop-icons/po/da.po | 159 ++++
extensions/desktop-icons/po/de.po | 192 +++++
extensions/desktop-icons/po/es.po | 218 ++++++
extensions/desktop-icons/po/fi.po | 191 +++++
extensions/desktop-icons/po/fr.po | 164 ++++
extensions/desktop-icons/po/fur.po | 187 +++++
extensions/desktop-icons/po/hr.po | 186 +++++
extensions/desktop-icons/po/hu.po | 189 +++++
extensions/desktop-icons/po/id.po | 190 +++++
extensions/desktop-icons/po/it.po | 189 +++++
extensions/desktop-icons/po/ja.po | 187 +++++
extensions/desktop-icons/po/meson.build | 1 +
extensions/desktop-icons/po/nl.po | 188 +++++
extensions/desktop-icons/po/pl.po | 193 +++++
extensions/desktop-icons/po/pt_BR.po | 199 +++++
extensions/desktop-icons/po/ru.po | 153 ++++
extensions/desktop-icons/po/sv.po | 197 +++++
extensions/desktop-icons/po/tr.po | 191 +++++
extensions/desktop-icons/po/zh_TW.po | 135 ++++
extensions/desktop-icons/prefs.js | 159 ++++
extensions/desktop-icons/schemas/meson.build | 6 +
...nome.shell.extensions.desktop-icons.gschema.xml | 25 +
extensions/desktop-icons/stylesheet.css | 38 +
meson.build | 1 +
po/ca.po | 194 +++++
po/cs.po | 198 +++++
po/da.po | 194 +++++
po/de.po | 195 +++++
po/en_GB.po | 204 ++++-
po/es.po | 243 +++++-
po/fi.po | 209 +++++-
po/fr.po | 167 +++++
po/fur.po | 198 ++++-
po/hr.po | 195 +++++
po/hu.po | 195 +++++
po/id.po | 197 +++++
po/it.po | 192 +++++
po/ja.po | 210 +++++-
po/nl.po | 191 +++++
po/pl.po | 196 +++++
po/pt_BR.po | 216 +++++-
po/ru.po | 156 ++++
po/sv.po | 204 +++++
po/tr.po | 194 +++++
po/zh_TW.po | 149 +++-
58 files changed, 10607 insertions(+), 48 deletions(-)
---
diff --git a/extensions/desktop-icons/createFolderDialog.js b/extensions/desktop-icons/createFolderDialog.js
new file mode 100644
index 0000000..f3e40e9
--- /dev/null
+++ b/extensions/desktop-icons/createFolderDialog.js
@@ -0,0 +1,164 @@
+/* Desktop Icons GNOME Shell extension
+ *
+ * Copyright (C) 2019 Andrea Azzaronea <andrea azzarone canonical com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+const { Clutter, GObject, GLib, Gio, St } = imports.gi;
+
+const Signals = imports.signals;
+
+const Dialog = imports.ui.dialog;
+const Gettext = imports.gettext.domain('desktop-icons');
+const ModalDialog = imports.ui.modalDialog;
+const ShellEntry = imports.ui.shellEntry;
+const Tweener = imports.ui.tweener;
+
+const ExtensionUtils = imports.misc.extensionUtils;
+const Me = ExtensionUtils.getCurrentExtension();
+const DesktopIconsUtil = Me.imports.desktopIconsUtil;
+const Extension = Me.imports.extension;
+
+const _ = Gettext.gettext;
+
+const DIALOG_GROW_TIME = 0.1;
+
+var CreateFolderDialog = class extends ModalDialog.ModalDialog {
+
+ constructor() {
+ super({ styleClass: 'create-folder-dialog' });
+
+ this._buildLayout();
+ }
+
+ _buildLayout() {
+ let label = new St.Label({ style_class: 'create-folder-dialog-label',
+ text: _('New folder name') });
+ this.contentLayout.add(label, { x_align: St.Align.START });
+
+ this._entry = new St.Entry({ style_class: 'create-folder-dialog-entry',
+ can_focus: true });
+ this._entry.clutter_text.connect('activate', this._onEntryActivate.bind(this));
+ this._entry.clutter_text.connect('text-changed', this._onTextChanged.bind(this));
+ ShellEntry.addContextMenu(this._entry);
+ this.contentLayout.add(this._entry);
+ this.setInitialKeyFocus(this._entry);
+
+ this._errorBox = new St.BoxLayout({ style_class: 'create-folder-dialog-error-box',
+ visible: false });
+ this.contentLayout.add(this._errorBox, { expand: true });
+
+ this._errorMessage = new St.Label({ style_class: 'create-folder-dialog-error-label' });
+ this._errorMessage.clutter_text.line_wrap = true;
+ this._errorBox.add(this._errorMessage, { expand: true,
+ x_align: St.Align.START,
+ x_fill: false,
+ y_align: St.Align.MIDDLE,
+ y_fill: false });
+
+ this._createButton = this.addButton({ action: this._onCreateButton.bind(this),
+ label: _('Create') });
+ this.addButton({ action: this.close.bind(this),
+ label: _('Cancel'),
+ key: Clutter.Escape });
+ this._onTextChanged();
+ }
+
+ _showError(message) {
+ this._errorMessage.set_text(message);
+
+ if (!this._errorBox.visible) {
+ let [errorBoxMinHeight, errorBoxNaturalHeight] = this._errorBox.get_preferred_height(-1);
+ let parentActor = this._errorBox.get_parent();
+
+ Tweener.addTween(parentActor,
+ { height: parentActor.height + errorBoxNaturalHeight,
+ time: DIALOG_GROW_TIME,
+ transition: 'easeOutQuad',
+ onComplete: () => {
+ parentActor.set_height(-1);
+ this._errorBox.show();
+ }
+ });
+ }
+ }
+
+ _hideError() {
+ if (this._errorBox.visible) {
+ let [errorBoxMinHeight, errorBoxNaturalHeight] = this._errorBox.get_preferred_height(-1);
+ let parentActor = this._errorBox.get_parent();
+
+ Tweener.addTween(parentActor,
+ { height: parentActor.height - errorBoxNaturalHeight,
+ time: DIALOG_GROW_TIME,
+ transition: 'easeOutQuad',
+ onComplete: () => {
+ parentActor.set_height(-1);
+ this._errorBox.hide();
+ this._errorMessage.set_text('');
+ }
+ });
+ }
+ }
+
+ _onCreateButton() {
+ this._onEntryActivate();
+ }
+
+ _onEntryActivate() {
+ if (!this._createButton.reactive)
+ return;
+
+ this.emit('response', this._entry.get_text());
+ this.close();
+ }
+
+ _onTextChanged() {
+ let text = this._entry.get_text();
+ let is_valid = true;
+
+ let found_name = false;
+ for(let name of Extension.desktopManager.getDesktopFileNames()) {
+ if (name === text) {
+ found_name = true;
+ break;
+ }
+ }
+
+ if (text.trim().length == 0) {
+ is_valid = false;
+ this._hideError();
+ } else if (text.includes('/')) {
+ is_valid = false;
+ this._showError(_('Folder names cannot contain “/”.'));
+ } else if (text === '.') {
+ is_valid = false;
+ this._showError(_('A folder cannot be called “.”.'));
+ } else if (text === '..') {
+ is_valid = false;
+ this._showError(_('A folder cannot be called “..”.'));
+ } else if (text.startsWith('.')) {
+ this._showError(_('Folders with “.” at the beginning of their name are hidden.'));
+ } else if (found_name) {
+ this._showError(_('There is already a file or folder with that name.'));
+ is_valid = false;
+ } else {
+ this._hideError();
+ }
+
+ this._createButton.reactive = is_valid;
+ }
+};
+Signals.addSignalMethods(CreateFolderDialog.prototype);
diff --git a/extensions/desktop-icons/createThumbnail.js b/extensions/desktop-icons/createThumbnail.js
new file mode 100755
index 0000000..212f6b7
--- /dev/null
+++ b/extensions/desktop-icons/createThumbnail.js
@@ -0,0 +1,35 @@
+#!/usr/bin/gjs
+
+/* Desktop Icons GNOME Shell extension
+ *
+ * Copyright (C) 2018 Sergio Costas <rastersoft gmail com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+const GnomeDesktop = imports.gi.GnomeDesktop;
+const Gio = imports.gi.Gio;
+
+let thumbnailFactory = GnomeDesktop.DesktopThumbnailFactory.new(GnomeDesktop.DesktopThumbnailSize.LARGE);
+
+let file = Gio.File.new_for_path(ARGV[0]);
+let fileUri = file.get_uri();
+
+let fileInfo = file.query_info('standard::content-type,time::modified', Gio.FileQueryInfoFlags.NONE, null);
+let modifiedTime = fileInfo.get_attribute_uint64('time::modified');
+let thumbnailPixbuf = thumbnailFactory.generate_thumbnail(fileUri, fileInfo.get_content_type());
+if (thumbnailPixbuf == null)
+ thumbnailFactory.create_failed_thumbnail(fileUri, modifiedTime);
+else
+ thumbnailFactory.save_thumbnail(thumbnailPixbuf, fileUri, modifiedTime);
diff --git a/extensions/desktop-icons/dbusUtils.js b/extensions/desktop-icons/dbusUtils.js
new file mode 100644
index 0000000..19fe987
--- /dev/null
+++ b/extensions/desktop-icons/dbusUtils.js
@@ -0,0 +1,103 @@
+const Gio = imports.gi.Gio;
+const GLib = imports.gi.GLib;
+var NautilusFileOperationsProxy;
+var FreeDesktopFileManagerProxy;
+
+const NautilusFileOperationsInterface = `<node>
+<interface name='org.gnome.Nautilus.FileOperations'>
+ <method name='CopyURIs'>
+ <arg name='URIs' type='as' direction='in'/>
+ <arg name='Destination' type='s' direction='in'/>
+ </method>
+ <method name='MoveURIs'>
+ <arg name='URIs' type='as' direction='in'/>
+ <arg name='Destination' type='s' direction='in'/>
+ </method>
+ <method name='EmptyTrash'>
+ </method>
+ <method name='TrashFiles'>
+ <arg name='URIs' type='as' direction='in'/>
+ </method>
+ <method name='CreateFolder'>
+ <arg name='URI' type='s' direction='in'/>
+ </method>
+ <method name='RenameFile'>
+ <arg name='URI' type='s' direction='in'/>
+ <arg name='NewName' type='s' direction='in'/>
+ </method>
+ <method name='Undo'>
+ </method>
+ <method name='Redo'>
+ </method>
+ <property name='UndoStatus' type='i' access='read'/>
+</interface>
+</node>`;
+
+const NautilusFileOperationsProxyInterface = Gio.DBusProxy.makeProxyWrapper(NautilusFileOperationsInterface);
+
+const FreeDesktopFileManagerInterface = `<node>
+<interface name='org.freedesktop.FileManager1'>
+ <method name='ShowItems'>
+ <arg name='URIs' type='as' direction='in'/>
+ <arg name='StartupId' type='s' direction='in'/>
+ </method>
+ <method name='ShowItemProperties'>
+ <arg name='URIs' type='as' direction='in'/>
+ <arg name='StartupId' type='s' direction='in'/>
+ </method>
+</interface>
+</node>`;
+
+const FreeDesktopFileManagerProxyInterface = Gio.DBusProxy.makeProxyWrapper(FreeDesktopFileManagerInterface);
+
+function init() {
+ NautilusFileOperationsProxy = new NautilusFileOperationsProxyInterface(
+ Gio.DBus.session,
+ 'org.gnome.Nautilus',
+ '/org/gnome/Nautilus',
+ (proxy, error) => {
+ if (error) {
+ log('Error connecting to Nautilus');
+ }
+ }
+ );
+
+ FreeDesktopFileManagerProxy = new FreeDesktopFileManagerProxyInterface(
+ Gio.DBus.session,
+ 'org.freedesktop.FileManager1',
+ '/org/freedesktop/FileManager1',
+ (proxy, error) => {
+ if (error) {
+ log('Error connecting to Nautilus');
+ }
+ }
+ );
+}
+
+function openFileWithOtherApplication(filePath) {
+ let fdList = new Gio.UnixFDList();
+ let channel = GLib.IOChannel.new_file(filePath, "r");
+ fdList.append(channel.unix_get_fd());
+ channel.set_close_on_unref(true);
+ let builder = GLib.VariantBuilder.new(GLib.VariantType.new("a{sv}"));
+ let options = builder.end();
+ let parameters = GLib.Variant.new_tuple([GLib.Variant.new_string("0"),
+ GLib.Variant.new_handle(0),
+ options]);
+ Gio.bus_get(Gio.BusType.SESSION, null,
+ (source, result) => {
+ let dbus_connection = Gio.bus_get_finish(result);
+ dbus_connection.call_with_unix_fd_list("org.freedesktop.portal.Desktop",
+ "/org/freedesktop/portal/desktop",
+ "org.freedesktop.portal.OpenURI",
+ "OpenFile",
+ parameters,
+ GLib.VariantType.new("o"),
+ Gio.DBusCallFlags.NONE,
+ -1,
+ fdList,
+ null,
+ null);
+ }
+ );
+}
diff --git a/extensions/desktop-icons/desktopGrid.js b/extensions/desktop-icons/desktopGrid.js
new file mode 100644
index 0000000..a2d1f12
--- /dev/null
+++ b/extensions/desktop-icons/desktopGrid.js
@@ -0,0 +1,692 @@
+/* Desktop Icons GNOME Shell extension
+ *
+ * Copyright (C) 2017 Carlos Soriano <csoriano redhat com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+const Gtk = imports.gi.Gtk;
+const Clutter = imports.gi.Clutter;
+const St = imports.gi.St;
+const Gio = imports.gi.Gio;
+const GLib = imports.gi.GLib;
+const Shell = imports.gi.Shell;
+
+const Signals = imports.signals;
+
+const Layout = imports.ui.layout;
+const Main = imports.ui.main;
+const BoxPointer = imports.ui.boxpointer;
+const PopupMenu = imports.ui.popupMenu;
+const GrabHelper = imports.ui.grabHelper;
+const Config = imports.misc.config;
+
+const ExtensionUtils = imports.misc.extensionUtils;
+const Me = ExtensionUtils.getCurrentExtension();
+const CreateFolderDialog = Me.imports.createFolderDialog;
+const Extension = Me.imports.extension;
+const FileItem = Me.imports.fileItem;
+const Prefs = Me.imports.prefs;
+const DBusUtils = Me.imports.dbusUtils;
+const DesktopIconsUtil = Me.imports.desktopIconsUtil;
+const Util = imports.misc.util;
+
+const Clipboard = St.Clipboard.get_default();
+const CLIPBOARD_TYPE = St.ClipboardType.CLIPBOARD;
+const Gettext = imports.gettext.domain('desktop-icons');
+
+const _ = Gettext.gettext;
+
+
+/* From NautilusFileUndoManagerState */
+var UndoStatus = {
+ NONE: 0,
+ UNDO: 1,
+ REDO: 2,
+};
+
+var StoredCoordinates = {
+ PRESERVE: 0,
+ OVERWRITE:1,
+ ASSIGN:2,
+};
+
+class Placeholder extends St.Bin {
+ constructor() {
+ super();
+ }
+}
+
+var DesktopGrid = class {
+
+ constructor(bgManager) {
+ this._bgManager = bgManager;
+
+ this._fileItemHandlers = new Map();
+ this._fileItems = [];
+
+ this.layout = new Clutter.GridLayout({
+ orientation: Clutter.Orientation.VERTICAL,
+ column_homogeneous: true,
+ row_homogeneous: true
+ });
+
+ this._actorLayout = new Clutter.BinLayout({
+ x_align: Clutter.BinAlignment.FIXED,
+ y_align: Clutter.BinAlignment.FIXED
+ });
+
+ this.actor = new St.Widget({
+ layout_manager: this._actorLayout
+ });
+ this.actor._delegate = this;
+
+ this._grid = new St.Widget({
+ name: 'DesktopGrid',
+ layout_manager: this.layout,
+ reactive: true,
+ x_expand: true,
+ y_expand: true,
+ can_focus: true,
+ opacity: 255
+ });
+ this.actor.add_child(this._grid);
+
+ this._renamePopup = new RenamePopup(this);
+ this.actor.add_child(this._renamePopup.actor);
+
+ this._bgManager._container.add_child(this.actor);
+
+ this.actor.connect('destroy', () => this._onDestroy());
+
+ let monitorIndex = bgManager._monitorIndex;
+ this._monitorConstraint = new Layout.MonitorConstraint({
+ index: monitorIndex,
+ work_area: true
+ });
+ this.actor.add_constraint(this._monitorConstraint);
+
+ this._addDesktopBackgroundMenu();
+
+ this._bgDestroyedId = bgManager.backgroundActor.connect('destroy',
+ () => this._backgroundDestroyed());
+
+ this._grid.connect('button-press-event', (actor, event) => this._onPressButton(actor, event));
+
+ this._grid.connect('key-press-event', this._onKeyPress.bind(this));
+
+ this._grid.connect('allocation-changed', () => Extension.desktopManager.scheduleReLayoutChildren());
+ }
+
+ _onKeyPress(actor, event) {
+ if (global.stage.get_key_focus() != actor)
+ return Clutter.EVENT_PROPAGATE;
+
+ let symbol = event.get_key_symbol();
+ let isCtrl = (event.get_state() & Clutter.ModifierType.CONTROL_MASK) != 0;
+ let isShift = (event.get_state() & Clutter.ModifierType.SHIFT_MASK) != 0;
+ if (isCtrl && isShift && [Clutter.Z, Clutter.z].indexOf(symbol) > -1) {
+ this._doRedo();
+ return Clutter.EVENT_STOP;
+ }
+ else if (isCtrl && [Clutter.Z, Clutter.z].indexOf(symbol) > -1) {
+ this._doUndo();
+ return Clutter.EVENT_STOP;
+ }
+ else if (isCtrl && [Clutter.C, Clutter.c].indexOf(symbol) > -1) {
+ Extension.desktopManager.doCopy();
+ return Clutter.EVENT_STOP;
+ }
+ else if (isCtrl && [Clutter.X, Clutter.x].indexOf(symbol) > -1) {
+ Extension.desktopManager.doCut();
+ return Clutter.EVENT_STOP;
+ }
+ else if (isCtrl && [Clutter.V, Clutter.v].indexOf(symbol) > -1) {
+ this._doPaste();
+ return Clutter.EVENT_STOP;
+ }
+ else if (symbol == Clutter.Return) {
+ Extension.desktopManager.doOpen();
+ return Clutter.EVENT_STOP;
+ }
+ else if (symbol == Clutter.Delete) {
+ Extension.desktopManager.doTrash();
+ return Clutter.EVENT_STOP;
+ } else if (symbol == Clutter.F2) {
+ // Support renaming other grids file items.
+ Extension.desktopManager.doRename();
+ return Clutter.EVENT_STOP;
+ }
+
+ return Clutter.EVENT_PROPAGATE;
+ }
+
+ _backgroundDestroyed() {
+ this._bgDestroyedId = 0;
+ if (this._bgManager == null)
+ return;
+
+ if (this._bgManager._backgroundSource) {
+ this._bgDestroyedId = this._bgManager.backgroundActor.connect('destroy',
+ () => this._backgroundDestroyed());
+ } else {
+ this.actor.destroy();
+ }
+ }
+
+ _onDestroy() {
+ if (this._bgDestroyedId && this._bgManager.backgroundActor != null)
+ this._bgManager.backgroundActor.disconnect(this._bgDestroyedId);
+ this._bgDestroyedId = 0;
+ this._bgManager = null;
+ }
+
+ _onNewFolderClicked() {
+
+ let dialog = new CreateFolderDialog.CreateFolderDialog();
+
+ dialog.connect('response', (dialog, name) => {
+ let dir = DesktopIconsUtil.getDesktopDir().get_child(name);
+ DBusUtils.NautilusFileOperationsProxy.CreateFolderRemote(dir.get_uri(),
+ (result, error) => {
+ if (error)
+ throw new Error('Error creating new folder: ' + error.message);
+ }
+ );
+ });
+
+ dialog.open();
+ }
+
+ _parseClipboardText(text) {
+ if (text === null)
+ return [false, false, null];
+
+ let lines = text.split('\n');
+ let [mime, action, ...files] = lines;
+
+ if (mime != 'x-special/nautilus-clipboard')
+ return [false, false, null];
+
+ if (!(['copy', 'cut'].includes(action)))
+ return [false, false, null];
+ let isCut = action == 'cut';
+
+ /* Last line is empty due to the split */
+ if (files.length <= 1)
+ return [false, false, null];
+ /* Remove last line */
+ files.pop();
+
+ return [true, isCut, files];
+ }
+
+ _doPaste() {
+ Clipboard.get_text(CLIPBOARD_TYPE,
+ (clipboard, text) => {
+ let [valid, is_cut, files] = this._parseClipboardText(text);
+ if (!valid)
+ return;
+
+ let desktopDir = `${DesktopIconsUtil.getDesktopDir().get_uri()}`;
+ if (is_cut) {
+ DBusUtils.NautilusFileOperationsProxy.MoveURIsRemote(files, desktopDir,
+ (result, error) => {
+ if (error)
+ throw new Error('Error moving files: ' + error.message);
+ }
+ );
+ } else {
+ DBusUtils.NautilusFileOperationsProxy.CopyURIsRemote(files, desktopDir,
+ (result, error) => {
+ if (error)
+ throw new Error('Error copying files: ' + error.message);
+ }
+ );
+ }
+ }
+ );
+ }
+
+ _onPasteClicked() {
+ this._doPaste();
+ }
+
+ _doUndo() {
+ DBusUtils.NautilusFileOperationsProxy.UndoRemote(
+ (result, error) => {
+ if (error)
+ throw new Error('Error performing undo: ' + error.message);
+ }
+ );
+ }
+
+ _onUndoClicked() {
+ this._doUndo();
+ }
+
+ _doRedo() {
+ DBusUtils.NautilusFileOperationsProxy.RedoRemote(
+ (result, error) => {
+ if (error)
+ throw new Error('Error performing redo: ' + error.message);
+ }
+ );
+ }
+
+ _onRedoClicked() {
+ this._doRedo();
+ }
+
+ _onOpenDesktopInFilesClicked() {
+ Gio.AppInfo.launch_default_for_uri_async(DesktopIconsUtil.getDesktopDir().get_uri(),
+ null, null,
+ (source, result) => {
+ try {
+ Gio.AppInfo.launch_default_for_uri_finish(result);
+ } catch (e) {
+ log('Error opening Desktop in Files: ' + e.message);
+ }
+ }
+ );
+ }
+
+ _onOpenTerminalClicked() {
+ let desktopPath = DesktopIconsUtil.getDesktopDir().get_path();
+ DesktopIconsUtil.launchTerminal(desktopPath);
+ }
+
+ _syncUndoRedo() {
+ this._undoMenuItem.actor.visible = DBusUtils.NautilusFileOperationsProxy.UndoStatus ==
UndoStatus.UNDO;
+ this._redoMenuItem.actor.visible = DBusUtils.NautilusFileOperationsProxy.UndoStatus ==
UndoStatus.REDO;
+ }
+
+ _undoStatusChanged(proxy, properties, test) {
+ if ('UndoStatus' in properties.deep_unpack())
+ this._syncUndoRedo();
+ }
+
+ _createDesktopBackgroundMenu() {
+ let menu = new PopupMenu.PopupMenu(Main.layoutManager.dummyCursor,
+ 0, St.Side.TOP);
+ menu.addAction(_("New Folder"), () => this._onNewFolderClicked());
+ menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
+ this._pasteMenuItem = menu.addAction(_("Paste"), () => this._onPasteClicked());
+ this._undoMenuItem = menu.addAction(_("Undo"), () => this._onUndoClicked());
+ this._redoMenuItem = menu.addAction(_("Redo"), () => this._onRedoClicked());
+ menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
+ menu.addAction(_("Show Desktop in Files"), () => this._onOpenDesktopInFilesClicked());
+ menu.addAction(_("Open in Terminal"), () => this._onOpenTerminalClicked());
+ menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
+ menu.addSettingsAction(_("Change Background…"), 'gnome-background-panel.desktop');
+ menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
+ menu.addSettingsAction(_("Display Settings"), 'gnome-display-panel.desktop');
+ menu.addSettingsAction(_("Settings"), 'gnome-control-center.desktop');
+
+ menu.actor.add_style_class_name('background-menu');
+
+ Main.layoutManager.uiGroup.add_child(menu.actor);
+ menu.actor.hide();
+
+ menu._propertiesChangedId = DBusUtils.NautilusFileOperationsProxy.connect('g-properties-changed',
+ this._undoStatusChanged.bind(this));
+ this._syncUndoRedo();
+
+ menu.connect('destroy',
+ () => DBusUtils.NautilusFileOperationsProxy.disconnect(menu._propertiesChangedId));
+ menu.connect('open-state-changed',
+ (popupm, isOpen) => {
+ if (isOpen) {
+ Clipboard.get_text(CLIPBOARD_TYPE,
+ (clipBoard, text) => {
+ let [valid, is_cut, files] = this._parseClipboardText(text);
+ this._pasteMenuItem.setSensitive(valid);
+ }
+ );
+ }
+ }
+ );
+ this._pasteMenuItem.setSensitive(false);
+
+ return menu;
+ }
+
+ _openMenu(x, y) {
+ Main.layoutManager.setDummyCursorGeometry(x, y, 0, 0);
+ this.actor._desktopBackgroundMenu.open(BoxPointer.PopupAnimation.NONE);
+ /* Since the handler is in the press event it needs to ignore the release event
+ * to not immediately close the menu on release
+ */
+ this.actor._desktopBackgroundManager.ignoreRelease();
+ }
+
+ _addFileItemTo(fileItem, column, row, coordinatesAction) {
+ let placeholder = this.layout.get_child_at(column, row);
+ placeholder.child = fileItem.actor;
+ this._fileItems.push(fileItem);
+ let selectedId = fileItem.connect('selected', this._onFileItemSelected.bind(this));
+ let renameId = fileItem.connect('rename-clicked', this.doRename.bind(this));
+ this._fileItemHandlers.set(fileItem, [selectedId, renameId]);
+
+ /* If this file is new in the Desktop and hasn't yet
+ * fixed coordinates, store the new possition to ensure
+ * that the next time it will be shown in the same possition.
+ * Also store the new possition if it has been moved by the user,
+ * and not triggered by a screen change.
+ */
+ if ((fileItem.savedCoordinates == null) || (coordinatesAction == StoredCoordinates.OVERWRITE)) {
+ let [fileX, fileY] = placeholder.get_transformed_position();
+ fileItem.savedCoordinates = [Math.round(fileX), Math.round(fileY)];
+ }
+ }
+
+ addFileItemCloseTo(fileItem, x, y, coordinatesAction) {
+ let [column, row] = this._getEmptyPlaceClosestTo(x, y, coordinatesAction);
+ this._addFileItemTo(fileItem, column, row, coordinatesAction);
+ }
+
+ _getEmptyPlaceClosestTo(x, y, coordinatesAction) {
+ let maxColumns = this._getMaxColumns();
+ let maxRows = this._getMaxRows();
+
+ let [actorX, actorY] = this._grid.get_transformed_position();
+ let actorWidth = this._grid.allocation.x2 - this._grid.allocation.x1;
+ let actorHeight = this._grid.allocation.y2 - this._grid.allocation.y1;
+ let placeX = Math.round((x - actorX) * maxColumns / actorWidth);
+ let placeY = Math.round((y - actorY) * maxRows / actorHeight);
+
+ placeX = DesktopIconsUtil.clamp(placeX, 0, maxColumns - 1);
+ placeY = DesktopIconsUtil.clamp(placeY, 0, maxRows - 1);
+ if (this.layout.get_child_at(placeX, placeY).child == null)
+ return [placeX, placeY];
+ let found = false;
+ let resColumn = null;
+ let resRow = null;
+ let minDistance = Infinity;
+ for (let column = 0; column < maxColumns; column++) {
+ for (let row = 0; row < maxRows; row++) {
+ let placeholder = this.layout.get_child_at(column, row);
+ if (placeholder.child != null)
+ continue;
+
+ let [proposedX, proposedY] = placeholder.get_transformed_position();
+ if (coordinatesAction == StoredCoordinates.ASSIGN)
+ return [column, row];
+ let distance = DesktopIconsUtil.distanceBetweenPoints(proposedX, proposedY, x, y);
+ if (distance < minDistance) {
+ found = true;
+ minDistance = distance;
+ resColumn = column;
+ resRow = row;
+ }
+ }
+ }
+
+ if (!found)
+ throw new Error(`Not enough place at monitor ${this._bgManager._monitorIndex}`);
+
+ return [resColumn, resRow];
+ }
+
+ removeFileItem(fileItem) {
+ let index = this._fileItems.indexOf(fileItem);
+ if (index > -1)
+ this._fileItems.splice(index, 1);
+ else
+ throw new Error('Error removing children from container');
+
+ let [column, row] = this._getPosOfFileItem(fileItem);
+ let placeholder = this.layout.get_child_at(column, row);
+ placeholder.child = null;
+ let [selectedId, renameId] = this._fileItemHandlers.get(fileItem);
+ fileItem.disconnect(selectedId);
+ fileItem.disconnect(renameId);
+ this._fileItemHandlers.delete(fileItem);
+ }
+
+ _fillPlaceholders() {
+ for (let column = 0; column < this._getMaxColumns(); column++) {
+ for (let row = 0; row < this._getMaxRows(); row++) {
+ this.layout.attach(new Placeholder(), column, row, 1, 1);
+ }
+ }
+ }
+
+ reset() {
+ let tmpFileItemsCopy = this._fileItems.slice();
+ for (let fileItem of tmpFileItemsCopy)
+ this.removeFileItem(fileItem);
+ this._grid.remove_all_children();
+
+ this._fillPlaceholders();
+ }
+
+ _onStageMotion(actor, event) {
+ if (this._drawingRubberBand) {
+ let [x, y] = event.get_coords();
+ this._updateRubberBand(x, y);
+ this._selectFromRubberband(x, y);
+ }
+ return Clutter.EVENT_PROPAGATE;
+ }
+
+ _onPressButton(actor, event) {
+ let button = event.get_button();
+ let [x, y] = event.get_coords();
+
+ this._grid.grab_key_focus();
+
+ if (button == 1) {
+ let shiftPressed = !!(event.get_state() & Clutter.ModifierType.SHIFT_MASK);
+ let controlPressed = !!(event.get_state() & Clutter.ModifierType.CONTROL_MASK);
+ if (!shiftPressed && !controlPressed)
+ Extension.desktopManager.clearSelection();
+ let [gridX, gridY] = this._grid.get_transformed_position();
+ Extension.desktopManager.startRubberBand(x, y, gridX, gridY);
+ return Clutter.EVENT_STOP;
+ }
+
+ if (button == 3) {
+ this._openMenu(x, y);
+
+ return Clutter.EVENT_STOP;
+ }
+
+ return Clutter.EVENT_PROPAGATE;
+ }
+
+ _addDesktopBackgroundMenu() {
+ this.actor._desktopBackgroundMenu = this._createDesktopBackgroundMenu();
+ this.actor._desktopBackgroundManager = new PopupMenu.PopupMenuManager({ actor: this.actor });
+ this.actor._desktopBackgroundManager.addMenu(this.actor._desktopBackgroundMenu);
+
+ this.actor.connect('destroy', () => {
+ this.actor._desktopBackgroundMenu.destroy();
+ this.actor._desktopBackgroundMenu = null;
+ this.actor._desktopBackgroundManager = null;
+ });
+ }
+
+ _getMaxColumns() {
+ let gridWidth = this._grid.allocation.x2 - this._grid.allocation.x1;
+ return Math.floor(gridWidth /
Prefs.get_desired_width(St.ThemeContext.get_for_stage(global.stage).scale_factor));
+ }
+
+ _getMaxRows() {
+ let gridHeight = this._grid.allocation.y2 - this._grid.allocation.y1;
+ return Math.floor(gridHeight /
Prefs.get_desired_height(St.ThemeContext.get_for_stage(global.stage).scale_factor));
+ }
+
+ acceptDrop(source, actor, x, y, time) {
+ /* Coordinates are relative to the grid, we want to transform them to
+ * absolute coordinates to work across monitors */
+ let [gridX, gridY] = this.actor.get_transformed_position();
+ let [absoluteX, absoluteY] = [x + gridX, y + gridY];
+ return Extension.desktopManager.acceptDrop(absoluteX, absoluteY);
+ }
+
+ _getPosOfFileItem(itemToFind) {
+ if (itemToFind == null)
+ throw new Error('Error at _getPosOfFileItem: child cannot be null');
+
+ let found = false;
+ let maxColumns = this._getMaxColumns();
+ let maxRows = this._getMaxRows();
+ let column = 0;
+ let row = 0;
+ for (column = 0; column < maxColumns; column++) {
+ for (row = 0; row < maxRows; row++) {
+ let item = this.layout.get_child_at(column, row);
+ if (item.child && item.child._delegate.file.equal(itemToFind.file)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (found)
+ break;
+ }
+
+ if (!found)
+ throw new Error('Position of file item was not found');
+
+ return [column, row];
+ }
+
+ _onFileItemSelected(fileItem, keepCurrentSelection, addToSelection) {
+ this._grid.grab_key_focus();
+ }
+
+ doRename(fileItem) {
+ this._renamePopup.onFileItemRenameClicked(fileItem);
+ }
+};
+
+var RenamePopup = class {
+
+ constructor(grid) {
+ this._source = null;
+ this._isOpen = false;
+
+ this._renameEntry = new St.Entry({ hint_text: _("Enter file name…"),
+ can_focus: true,
+ x_expand: true });
+ this._renameEntry.clutter_text.connect('activate', this._onRenameAccepted.bind(this));
+ this._renameOkButton= new St.Button({ label: _("OK"),
+ style_class: 'app-view-control button',
+ button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE,
+ reactive: true,
+ can_focus: true,
+ x_expand: true });
+ this._renameCancelButton = new St.Button({ label: _("Cancel"),
+ style_class: 'app-view-control button',
+ button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE,
+ reactive: true,
+ can_focus: true,
+ x_expand: true });
+ this._renameCancelButton.connect('clicked', () => { this._onRenameCanceled(); });
+ this._renameOkButton.connect('clicked', () => { this._onRenameAccepted(); });
+ let renameButtonsBoxLayout = new Clutter.BoxLayout({ homogeneous: true });
+ let renameButtonsBox = new St.Widget({ layout_manager: renameButtonsBoxLayout,
+ x_expand: true });
+ renameButtonsBox.add_child(this._renameCancelButton);
+ renameButtonsBox.add_child(this._renameOkButton);
+
+ let renameContentLayout = new Clutter.BoxLayout({ spacing: 6,
+ orientation: Clutter.Orientation.VERTICAL });
+ let renameContent = new St.Widget({ style_class: 'rename-popup',
+ layout_manager: renameContentLayout,
+ x_expand: true });
+ renameContent.add_child(this._renameEntry);
+ renameContent.add_child(renameButtonsBox);
+
+ this._boxPointer = new BoxPointer.BoxPointer(St.Side.TOP, { can_focus: false, x_expand: false });
+ this.actor = this._boxPointer.actor;
+ this.actor.style_class = 'popup-menu-boxpointer';
+ this.actor.add_style_class_name('popup-menu');
+ this.actor.visible = false;
+ this._boxPointer.bin.set_child(renameContent);
+
+ this._grabHelper = new GrabHelper.GrabHelper(grid.actor, { actionMode: Shell.ActionMode.POPUP });
+ this._grabHelper.addActor(this.actor);
+ }
+
+ _popup() {
+ if (this._isOpen)
+ return;
+
+ this._isOpen = this._grabHelper.grab({ actor: this.actor,
+ onUngrab: this._popdown.bind(this) });
+
+ if (!this._isOpen) {
+ this._grabHelper.ungrab({ actor: this.actor });
+ return;
+ }
+
+ this._boxPointer.setPosition(this._source.actor, 0.5);
+ if (ExtensionUtils.versionCheck(['3.28', '3.30'], Config.PACKAGE_VERSION))
+ this._boxPointer.show(BoxPointer.PopupAnimation.FADE |
+ BoxPointer.PopupAnimation.SLIDE);
+ else
+ this._boxPointer.open(BoxPointer.PopupAnimation.FADE |
+ BoxPointer.PopupAnimation.SLIDE);
+
+ this.emit('open-state-changed', true);
+ }
+
+ _popdown() {
+ if (!this._isOpen)
+ return;
+
+ this._grabHelper.ungrab({ actor: this.actor });
+
+ if (ExtensionUtils.versionCheck(['3.28', '3.30'], Config.PACKAGE_VERSION))
+ this._boxPointer.hide(BoxPointer.PopupAnimation.FADE |
+ BoxPointer.PopupAnimation.SLIDE);
+ else
+ this._boxPointer.close(BoxPointer.PopupAnimation.FADE |
+ BoxPointer.PopupAnimation.SLIDE);
+
+ this._isOpen = false;
+ this.emit('open-state-changed', false);
+ }
+
+ onFileItemRenameClicked(fileItem) {
+ this._source = fileItem;
+
+ this._renameEntry.text = fileItem.displayName;
+
+ this._popup();
+ this._renameEntry.grab_key_focus();
+ this._renameEntry.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
+ let extensionOffset = DesktopIconsUtil.getFileExtensionOffset(fileItem.displayName,
fileItem.isDirectory);
+ this._renameEntry.clutter_text.set_selection(0, extensionOffset);
+ }
+
+ _onRenameAccepted() {
+ this._popdown();
+ DBusUtils.NautilusFileOperationsProxy.RenameFileRemote(this._source.file.get_uri(),
+ this._renameEntry.get_text(),
+ (result, error) => {
+ if (error)
+ throw new Error('Error renaming file: ' + error.message);
+ }
+ );
+ }
+
+ _onRenameCanceled() {
+ this._popdown();
+ }
+};
+Signals.addSignalMethods(RenamePopup.prototype);
diff --git a/extensions/desktop-icons/desktopIconsUtil.js b/extensions/desktop-icons/desktopIconsUtil.js
new file mode 100644
index 0000000..0aea654
--- /dev/null
+++ b/extensions/desktop-icons/desktopIconsUtil.js
@@ -0,0 +1,123 @@
+/* Desktop Icons GNOME Shell extension
+ *
+ * Copyright (C) 2017 Carlos Soriano <csoriano redhat com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+const Gtk = imports.gi.Gtk;
+const Gio = imports.gi.Gio;
+const GLib = imports.gi.GLib;
+const ExtensionUtils = imports.misc.extensionUtils;
+const Me = ExtensionUtils.getCurrentExtension();
+const Prefs = Me.imports.prefs;
+
+const TERMINAL_SCHEMA = 'org.gnome.desktop.default-applications.terminal';
+const EXEC_KEY = 'exec';
+
+var DEFAULT_ATTRIBUTES = 'metadata::*,standard::*,access::*,time::modified,unix::mode';
+
+function getDesktopDir() {
+ let desktopPath = GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_DESKTOP);
+ return Gio.File.new_for_commandline_arg(desktopPath);
+}
+
+function clamp(value, min, max) {
+ return Math.max(Math.min(value, max), min);
+};
+
+function launchTerminal(workdir) {
+ let terminalSettings = new Gio.Settings({ schema_id: TERMINAL_SCHEMA });
+ let exec = terminalSettings.get_string(EXEC_KEY);
+ let argv = [exec, `--working-directory=${workdir}`];
+
+ /* The following code has been extracted from GNOME Shell's
+ * source code in Misc.Util.trySpawn function and modified to
+ * set the working directory.
+ *
+ * https://gitlab.gnome.org/GNOME/gnome-shell/blob/gnome-3-30/js/misc/util.js
+ */
+
+ var success, pid;
+ try {
+ [success, pid] = GLib.spawn_async(workdir, argv, null,
+ GLib.SpawnFlags.SEARCH_PATH | GLib.SpawnFlags.DO_NOT_REAP_CHILD,
+ null);
+ } catch (err) {
+ /* Rewrite the error in case of ENOENT */
+ if (err.matches(GLib.SpawnError, GLib.SpawnError.NOENT)) {
+ throw new GLib.SpawnError({ code: GLib.SpawnError.NOENT,
+ message: _("Command not found") });
+ } else if (err instanceof GLib.Error) {
+ // The exception from gjs contains an error string like:
+ // Error invoking GLib.spawn_command_line_async: Failed to
+ // execute child process "foo" (No such file or directory)
+ // We are only interested in the part in the parentheses. (And
+ // we can't pattern match the text, since it gets localized.)
+ let message = err.message.replace(/.*\((.+)\)/, '$1');
+ throw new (err.constructor)({ code: err.code,
+ message: message });
+ } else {
+ throw err;
+ }
+ }
+ // Dummy child watch; we don't want to double-fork internally
+ // because then we lose the parent-child relationship, which
+ // can break polkit. See https://bugzilla.redhat.com//show_bug.cgi?id=819275
+ GLib.child_watch_add(GLib.PRIORITY_DEFAULT, pid, () => {});
+}
+
+function distanceBetweenPoints(x, y, x2, y2) {
+ return (Math.pow(x - x2, 2) + Math.pow(y - y2, 2));
+}
+
+function getExtraFolders() {
+ let extraFolders = new Array();
+ if (Prefs.settings.get_boolean('show-home')) {
+ extraFolders.push([Gio.File.new_for_commandline_arg(GLib.get_home_dir()),
Prefs.FileType.USER_DIRECTORY_HOME]);
+ }
+ if (Prefs.settings.get_boolean('show-trash')) {
+ extraFolders.push([Gio.File.new_for_uri('trash:///'), Prefs.FileType.USER_DIRECTORY_TRASH]);
+ }
+ return extraFolders;
+}
+
+function getFileExtensionOffset(filename, isDirectory) {
+ let offset = filename.length;
+
+ if (!isDirectory) {
+ let doubleExtensions = ['.gz', '.bz2', '.sit', '.Z', '.bz', '.xz'];
+ for (let extension of doubleExtensions) {
+ if (filename.endsWith(extension)) {
+ offset -= extension.length;
+ filename = filename.substring(0, offset);
+ break;
+ }
+ }
+ let lastDot = filename.lastIndexOf('.');
+ if (lastDot > 0)
+ offset = lastDot;
+ }
+ return offset;
+}
+
+function getGtkClassBackgroundColor(classname, state) {
+ let widget = new Gtk.WidgetPath();
+ widget.append_type(Gtk.Widget);
+
+ let context = new Gtk.StyleContext();
+ context.set_path(widget);
+ context.add_class(classname);
+ return context.get_background_color(state);
+}
diff --git a/extensions/desktop-icons/desktopManager.js b/extensions/desktop-icons/desktopManager.js
new file mode 100644
index 0000000..399aee0
--- /dev/null
+++ b/extensions/desktop-icons/desktopManager.js
@@ -0,0 +1,754 @@
+/* Desktop Icons GNOME Shell extension
+ *
+ * Copyright (C) 2017 Carlos Soriano <csoriano redhat com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+const Gtk = imports.gi.Gtk;
+const Clutter = imports.gi.Clutter;
+const GObject = imports.gi.GObject;
+const Gio = imports.gi.Gio;
+const GLib = imports.gi.GLib;
+const St = imports.gi.St;
+const Mainloop = imports.mainloop;
+const Meta = imports.gi.Meta;
+
+const Animation = imports.ui.animation;
+const Background = imports.ui.background;
+const DND = imports.ui.dnd;
+const Main = imports.ui.main;
+const GrabHelper = imports.ui.grabHelper;
+
+const ExtensionUtils = imports.misc.extensionUtils;
+const Me = ExtensionUtils.getCurrentExtension();
+const Extension = Me.imports.extension;
+const DesktopGrid = Me.imports.desktopGrid;
+const FileItem = Me.imports.fileItem;
+const Prefs = Me.imports.prefs;
+const DBusUtils = Me.imports.dbusUtils;
+const DesktopIconsUtil = Me.imports.desktopIconsUtil;
+
+const Clipboard = St.Clipboard.get_default();
+const CLIPBOARD_TYPE = St.ClipboardType.CLIPBOARD;
+
+var S_IWOTH = 0x00002;
+
+function getDpy() {
+ return global.screen || global.display;
+}
+
+function findMonitorIndexForPos(x, y) {
+ return getDpy().get_monitor_index_for_rect(new Meta.Rectangle({x, y}));
+}
+
+
+var DesktopManager = GObject.registerClass({
+ Properties: {
+ 'writable-by-others': GObject.ParamSpec.boolean(
+ 'writable-by-others',
+ 'WritableByOthers',
+ 'Whether the desktop\'s directory can be written by others (o+w unix permission)',
+ GObject.ParamFlags.READABLE,
+ false
+ )
+ }
+}, class DesktopManager extends GObject.Object {
+ _init(params) {
+ super._init(params);
+
+ this._layoutChildrenId = 0;
+ this._deleteChildrenId = 0;
+ this._monitorDesktopDir = null;
+ this._desktopMonitorCancellable = null;
+ this._desktopGrids = {};
+ this._fileItemHandlers = new Map();
+ this._fileItems = new Map();
+ this._dragCancelled = false;
+ this._queryFileInfoCancellable = null;
+ this._unixMode = null;
+ this._writableByOthers = null;
+
+ this._monitorsChangedId = Main.layoutManager.connect('monitors-changed', () =>
this._recreateDesktopIcons());
+ this._rubberBand = new St.Widget({ style_class: 'rubber-band' });
+ this._rubberBand.hide();
+ Main.layoutManager._backgroundGroup.add_child(this._rubberBand);
+ this._grabHelper = new GrabHelper.GrabHelper(global.stage);
+
+ this._addDesktopIcons();
+ this._monitorDesktopFolder();
+
+ this.settingsId = Prefs.settings.connect('changed', () => this._recreateDesktopIcons());
+ this.gtkSettingsId = Prefs.gtkSettings.connect('changed', (obj, key) => {
+ if (key == 'show-hidden')
+ this._recreateDesktopIcons();
+ });
+
+ this._selection = new Set();
+ this._currentSelection = new Set();
+ this._inDrag = false;
+ this._dragXStart = Number.POSITIVE_INFINITY;
+ this._dragYStart = Number.POSITIVE_INFINITY;
+ }
+
+ startRubberBand(x, y) {
+ this._rubberBandInitialX = x;
+ this._rubberBandInitialY = y;
+ this._initRubberBandColor();
+ this._updateRubberBand(x, y);
+ this._rubberBand.show();
+ this._grabHelper.grab({ actor: global.stage });
+ Extension.lockActivitiesButton = true;
+ this._stageReleaseEventId = global.stage.connect('button-release-event', (actor, event) => {
+ this.endRubberBand();
+ });
+ this._rubberBandId = global.stage.connect('motion-event', (actor, event) => {
+ /* In some cases, when the user starts a rubberband selection and ends it
+ * (by releasing the left button) over a window instead of doing it over
+ * the desktop, the stage doesn't receive the "button-release" event.
+ * This happens currently with, at least, Dash to Dock extension, but
+ * it probably also happens with other applications or extensions.
+ * To fix this, we also end the rubberband selection if we detect mouse
+ * motion in the stage without the left button pressed during a
+ * rubberband selection.
+ * */
+ let button = event.get_state();
+ if (!(button & Clutter.ModifierType.BUTTON1_MASK)) {
+ this.endRubberBand();
+ return;
+ }
+ [x, y] = event.get_coords();
+ this._updateRubberBand(x, y);
+ let x0, y0, x1, y1;
+ if (x >= this._rubberBandInitialX) {
+ x0 = this._rubberBandInitialX;
+ x1 = x;
+ } else {
+ x1 = this._rubberBandInitialX;
+ x0 = x;
+ }
+ if (y >= this._rubberBandInitialY) {
+ y0 = this._rubberBandInitialY;
+ y1 = y;
+ } else {
+ y1 = this._rubberBandInitialY;
+ y0 = y;
+ }
+ for (let [fileUri, fileItem] of this._fileItems) {
+ fileItem.emit('selected', true, true,
+ fileItem.intersectsWith(x0, y0, x1 - x0, y1 - y0));
+ }
+ });
+ }
+
+ endRubberBand() {
+ this._rubberBand.hide();
+ Extension.lockActivitiesButton = false;
+ this._grabHelper.ungrab();
+ global.stage.disconnect(this._rubberBandId);
+ global.stage.disconnect(this._stageReleaseEventId);
+ this._rubberBandId = 0;
+ this._stageReleaseEventId = 0;
+
+ this._selection = new Set([...this._selection, ...this._currentSelection]);
+ this._currentSelection.clear();
+ }
+
+ _updateRubberBand(currentX, currentY) {
+ let x = this._rubberBandInitialX < currentX ? this._rubberBandInitialX
+ : currentX;
+ let y = this._rubberBandInitialY < currentY ? this._rubberBandInitialY
+ : currentY;
+ let width = Math.abs(this._rubberBandInitialX - currentX);
+ let height = Math.abs(this._rubberBandInitialY - currentY);
+ /* TODO: Convert to gobject.set for 3.30 */
+ this._rubberBand.set_position(x, y);
+ this._rubberBand.set_size(width, height);
+ }
+
+ _recreateDesktopIcons() {
+ this._destroyDesktopIcons();
+ this._addDesktopIcons();
+ }
+
+ _addDesktopIcons() {
+ forEachBackgroundManager(bgManager => {
+ let newGrid = new DesktopGrid.DesktopGrid(bgManager);
+ newGrid.actor.connect('destroy', (actor) => {
+ // if a grid loses its actor, remove it from the grid list
+ for (let grid in this._desktopGrids)
+ if (this._desktopGrids[grid].actor == actor) {
+ delete this._desktopGrids[grid];
+ break;
+ }
+ });
+ this._desktopGrids[bgManager._monitorIndex] = newGrid;
+ });
+
+ this._scanFiles();
+ }
+
+ _destroyDesktopIcons() {
+ Object.values(this._desktopGrids).forEach(grid => grid.actor.destroy());
+ this._desktopGrids = {};
+ }
+
+ /**
+ * Initialize rubberband color from the GTK rubberband class
+ * */
+ _initRubberBandColor() {
+ let rgba = DesktopIconsUtil.getGtkClassBackgroundColor('rubberband', Gtk.StateFlags.NORMAL);
+ let background_color =
+ 'rgba(' + rgba.red * 255 + ', ' + rgba.green * 255 + ', ' + rgba.blue * 255 + ', 0.4)';
+ this._rubberBand.set_style('background-color: ' + background_color);
+ }
+
+ async _scanFiles() {
+ for (let [fileItem, id] of this._fileItemHandlers)
+ fileItem.disconnect(id);
+ this._fileItemHandlers = new Map();
+
+ if (!this._unixMode) {
+ let desktopDir = DesktopIconsUtil.getDesktopDir();
+ let fileInfo = desktopDir.query_info(Gio.FILE_ATTRIBUTE_UNIX_MODE,
+ Gio.FileQueryInfoFlags.NONE,
+ null);
+ this._unixMode = fileInfo.get_attribute_uint32(Gio.FILE_ATTRIBUTE_UNIX_MODE);
+ this._setWritableByOthers((this._unixMode & S_IWOTH) != 0);
+ }
+
+ try {
+ let tmpFileItems = new Map();
+ for (let [file, info, extra] of await this._enumerateDesktop()) {
+ let fileItem = new FileItem.FileItem(file, info, extra);
+ tmpFileItems.set(fileItem.file.get_uri(), fileItem);
+ let id = fileItem.connect('selected',
+ this._onFileItemSelected.bind(this));
+
+ this._fileItemHandlers.set(fileItem, id);
+ }
+ this._fileItems = tmpFileItems;
+ } catch (e) {
+ if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
+ log(`Error loading desktop files ${e.message}`);
+ return;
+ }
+
+ this.scheduleReLayoutChildren();
+ }
+
+ getDesktopFileNames () {
+ let fileList = [];
+ for (let [uri, item] of this._fileItems) {
+ fileList.push(item.fileName);
+ }
+ return fileList;
+ }
+
+ _enumerateDesktop() {
+ return new Promise((resolve, reject) => {
+ if (this._desktopEnumerateCancellable)
+ this._desktopEnumerateCancellable.cancel();
+
+ this._desktopEnumerateCancellable = new Gio.Cancellable();
+
+ let desktopDir = DesktopIconsUtil.getDesktopDir();
+ desktopDir.enumerate_children_async(DesktopIconsUtil.DEFAULT_ATTRIBUTES,
+ Gio.FileQueryInfoFlags.NONE,
+ GLib.PRIORITY_DEFAULT,
+ this._desktopEnumerateCancellable,
+ (source, result) => {
+ try {
+ let fileEnum = source.enumerate_children_finish(result);
+ let resultGenerator = function *() {
+ let info;
+ for (let [newFolder, extras] of DesktopIconsUtil.getExtraFolders()) {
+ yield [newFolder, newFolder.query_info(DesktopIconsUtil.DEFAULT_ATTRIBUTES,
Gio.FileQueryInfoFlags.NONE, this._desktopEnumerateCancellable), extras];
+ }
+ while ((info = fileEnum.next_file(null)))
+ yield [fileEnum.get_child(info), info, Prefs.FileType.NONE];
+ }.bind(this);
+ resolve(resultGenerator());
+ } catch (e) {
+ reject(e);
+ }
+ });
+ });
+ }
+
+ _monitorDesktopFolder() {
+ if (this._monitorDesktopDir) {
+ this._monitorDesktopDir.cancel();
+ this._monitorDesktopDir = null;
+ }
+
+ let desktopDir = DesktopIconsUtil.getDesktopDir();
+ this._monitorDesktopDir = desktopDir.monitor_directory(Gio.FileMonitorFlags.WATCH_MOVES, null);
+ this._monitorDesktopDir.set_rate_limit(1000);
+ this._monitorDesktopDir.connect('changed', (obj, file, otherFile, eventType) =>
this._updateDesktopIfChanged(file, otherFile, eventType));
+ }
+
+ checkIfSpecialFilesAreSelected() {
+ for (let fileItem of this._selection) {
+ if (fileItem.isSpecial)
+ return true;
+ }
+ return false;
+ }
+
+ getNumberOfSelectedItems() {
+ return this._selection.size;
+ }
+
+ get writableByOthers() {
+ return this._writableByOthers;
+ }
+
+ _setWritableByOthers(value) {
+ if (value == this._writableByOthers)
+ return;
+
+ this._writableByOthers = value
+ this.notify('writable-by-others');
+ }
+
+ _updateDesktopIfChanged (file, otherFile, eventType) {
+ let {
+ DELETED, MOVED_IN, MOVED_OUT, CREATED, RENAMED, CHANGES_DONE_HINT, ATTRIBUTE_CHANGED
+ } = Gio.FileMonitorEvent;
+
+ let fileUri = file.get_uri();
+ let fileItem = null;
+ if (this._fileItems.has(fileUri))
+ fileItem = this._fileItems.get(fileUri);
+ switch(eventType) {
+ case RENAMED:
+ this._fileItems.delete(fileUri);
+ this._fileItems.set(otherFile.get_uri(), fileItem);
+ fileItem.onFileRenamed(otherFile);
+ return;
+ case CHANGES_DONE_HINT:
+ case ATTRIBUTE_CHANGED:
+ /* a file changed, rather than the desktop itself */
+ let desktopDir = DesktopIconsUtil.getDesktopDir();
+ if (file.get_uri() != desktopDir.get_uri()) {
+ fileItem.onAttributeChanged();
+ return;
+ }
+
+ if (this._queryFileInfoCancellable)
+ this._queryFileInfoCancellable.cancel();
+
+ file.query_info_async(Gio.FILE_ATTRIBUTE_UNIX_MODE,
+ Gio.FileQueryInfoFlags.NONE,
+ GLib.PRIORITY_DEFAULT,
+ this._queryFileInfoCancellable,
+ (source, result) => {
+ try {
+ let info = source.query_info_finish(result);
+ this._queryFileInfoCancellable = null;
+
+ this._unixMode = info.get_attribute_uint32(Gio.FILE_ATTRIBUTE_UNIX_MODE);
+ this._setWritableByOthers((this._unixMode & S_IWOTH) != 0);
+
+ if (this._writableByOthers)
+ log(`desktop-icons: Desktop is writable by others - will not allow launching
any desktop files`);
+ } catch(error) {
+ if (!error.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
+ global.log('Error getting desktop unix mode: ' + error);
+ }
+ });
+
+ return;
+ }
+
+ // Only get a subset of events we are interested in.
+ // Note that CREATED will emit a CHANGES_DONE_HINT
+ if (![DELETED, MOVED_IN, MOVED_OUT, CREATED].includes(eventType))
+ return;
+
+ this._recreateDesktopIcons();
+ }
+
+ _setupDnD() {
+ this._draggableContainer = new St.Widget({
+ visible: true,
+ width: 1,
+ height: 1,
+ x: 0,
+ y: 0,
+ style_class: 'draggable'
+ });
+ this._draggableContainer._delegate = this;
+ this._draggable = DND.makeDraggable(this._draggableContainer,
+ {
+ manualMode: true,
+ dragActorOpacity: 100
+ });
+
+ this._draggable.connect('drag-cancelled', () => this._onDragCancelled());
+ this._draggable.connect('drag-end', () => this._onDragEnd());
+
+ this._draggable._dragActorDropped = event => this._dragActorDropped(event);
+ }
+
+ dragStart() {
+ if (this._inDrag) {
+ return;
+ }
+
+ this._setupDnD();
+ let event = Clutter.get_current_event();
+ let [x, y] = event.get_coords();
+ [this._dragXStart, this._dragYStart] = event.get_coords();
+ this._inDrag = true;
+
+ for (let fileItem of this._selection) {
+ let clone = new Clutter.Clone({
+ source: fileItem.actor,
+ reactive: false
+ });
+ clone.x = fileItem.actor.get_transformed_position()[0];
+ clone.y = fileItem.actor.get_transformed_position()[1];
+ this._draggableContainer.add_child(clone);
+ }
+
+ Main.layoutManager.uiGroup.add_child(this._draggableContainer);
+ this._draggable.startDrag(x, y, global.get_current_time(), event.get_event_sequence());
+ }
+
+ _onDragCancelled() {
+ let event = Clutter.get_current_event();
+ let [x, y] = event.get_coords();
+ this._dragCancelled = true;
+ }
+
+ _onDragEnd() {
+ this._inDrag = false;
+ Main.layoutManager.uiGroup.remove_child(this._draggableContainer);
+ }
+
+ _dragActorDropped(event) {
+ let [dropX, dropY] = event.get_coords();
+ let target = this._draggable._dragActor.get_stage().get_actor_at_pos(Clutter.PickMode.ALL,
+ dropX, dropY);
+
+ // We call observers only once per motion with the innermost
+ // target actor. If necessary, the observer can walk the
+ // parent itself.
+ let dropEvent = {
+ dropActor: this._draggable._dragActor,
+ targetActor: target,
+ clutterEvent: event
+ };
+ for (let dragMonitor of DND.dragMonitors) {
+ let dropFunc = dragMonitor.dragDrop;
+ if (dropFunc)
+ switch (dropFunc(dropEvent)) {
+ case DragDropResult.FAILURE:
+ case DragDropResult.SUCCESS:
+ return true;
+ case DragDropResult.CONTINUE:
+ continue;
+ }
+ }
+
+ // At this point it is too late to cancel a drag by destroying
+ // the actor, the fate of which is decided by acceptDrop and its
+ // side-effects
+ this._draggable._dragCancellable = false;
+
+ let destroyActor = false;
+ while (target) {
+ if (target._delegate && target._delegate.acceptDrop) {
+ let [r, targX, targY] = target.transform_stage_point(dropX, dropY);
+ if (target._delegate.acceptDrop(this._draggable.actor._delegate,
+ this._draggable._dragActor,
+ targX,
+ targY,
+ event.get_time())) {
+ // If it accepted the drop without taking the actor,
+ // handle it ourselves.
+ if (this._draggable._dragActor.get_parent() == Main.uiGroup) {
+ if (this._draggable._restoreOnSuccess) {
+ this._draggable._restoreDragActor(event.get_time());
+ return true;
+ }
+ else {
+ // We need this in order to make sure drag-end is fired
+ destroyActor = true;
+ }
+ }
+
+ this._draggable._dragInProgress = false;
+ getDpy().set_cursor(Meta.Cursor.DEFAULT);
+ this._draggable.emit('drag-end', event.get_time(), true);
+ if (destroyActor) {
+ this._draggable._dragActor.destroy();
+ }
+ this._draggable._dragComplete();
+
+ return true;
+ }
+ }
+ target = target.get_parent();
+ }
+
+ this._draggable._cancelDrag(event.get_time());
+
+ return true;
+ }
+
+ acceptDrop(xEnd, yEnd) {
+ let savedCoordinates = new Map();
+ let [xDiff, yDiff] = [xEnd - this._dragXStart, yEnd - this._dragYStart];
+ /* Remove all items before dropping new ones, so we can freely reposition
+ * them.
+ */
+ for (let item of this._selection) {
+ let [itemX, itemY] = item.actor.get_transformed_position();
+ let monitorIndex = findMonitorIndexForPos(itemX, itemY);
+ savedCoordinates.set(item, [itemX, itemY]);
+ this._desktopGrids[monitorIndex].removeFileItem(item);
+ }
+
+ for (let item of this._selection) {
+ let [itemX, itemY] = savedCoordinates.get(item);
+ /* Set the new ideal position where the item drop should happen */
+ let newFileX = Math.round(xDiff + itemX);
+ let newFileY = Math.round(yDiff + itemY);
+ let monitorIndex = findMonitorIndexForPos(newFileX, newFileY);
+ this._desktopGrids[monitorIndex].addFileItemCloseTo(item, newFileX, newFileY,
DesktopGrid.StoredCoordinates.OVERWRITE);
+ }
+
+ return true;
+ }
+
+ selectionDropOnFileItem (fileItemDestination) {
+ if (!fileItemDestination.isDirectory)
+ return false;
+
+ let droppedUris = [];
+ for (let fileItem of this._selection) {
+ if (fileItem.isSpecial)
+ return false;
+ if (fileItemDestination.file.get_uri() == fileItem.file.get_uri())
+ return false;
+ droppedUris.push(fileItem.file.get_uri());
+ }
+
+ if (droppedUris.length == 0)
+ return true;
+
+ DBusUtils.NautilusFileOperationsProxy.MoveURIsRemote(droppedUris,
+ fileItemDestination.file.get_uri(),
+ (result, error) => {
+ if (error)
+ throw new Error('Error moving files: ' + error.message);
+ }
+ );
+ for (let fileItem of this._selection) {
+ fileItem.state = FileItem.State.GONE;
+ }
+
+ this._recreateDesktopIcons();
+
+ return true;
+ }
+
+ _resetGridsAndScheduleLayout() {
+ this._deleteChildrenId = 0;
+
+ Object.values(this._desktopGrids).forEach((grid) => grid.reset());
+
+ this._layoutChildrenId = GLib.idle_add(GLib.PRIORITY_LOW, () => this._layoutChildren());
+
+ return GLib.SOURCE_REMOVE;
+ }
+
+ scheduleReLayoutChildren() {
+ if (this._deleteChildrenId != 0)
+ return;
+
+ if (this._layoutChildrenId != 0) {
+ GLib.source_remove(this._layoutChildrenId);
+ this._layoutChildrenId = 0;
+ }
+
+
+ this._deleteChildrenId = GLib.idle_add(GLib.PRIORITY_LOW, () => this._resetGridsAndScheduleLayout());
+ }
+
+ _addFileItemCloseTo(item) {
+ let coordinates;
+ let x = 0;
+ let y = 0;
+ let coordinatesAction = DesktopGrid.StoredCoordinates.ASSIGN;
+ if (item.savedCoordinates != null) {
+ [x, y] = item.savedCoordinates;
+ coordinatesAction = DesktopGrid.StoredCoordinates.PRESERVE;
+ }
+ let monitorIndex = findMonitorIndexForPos(x, y);
+ let desktopGrid = this._desktopGrids[monitorIndex];
+ try {
+ desktopGrid.addFileItemCloseTo(item, x, y, coordinatesAction);
+ } catch (e) {
+ log(`Error adding children to desktop: ${e.message}`);
+ }
+ }
+
+ _layoutChildren() {
+ let showHidden = Prefs.gtkSettings.get_boolean('show-hidden');
+ /*
+ * Paint the icons in two passes:
+ * * first pass paints those that have their coordinates defined in the metadata
+ * * second pass paints those new files that still don't have their definitive coordinates
+ */
+ for (let [fileUri, fileItem] of this._fileItems) {
+ if (fileItem.savedCoordinates == null)
+ continue;
+ if (fileItem.state != FileItem.State.NORMAL)
+ continue;
+ if (!showHidden && fileItem.isHidden)
+ continue;
+ this._addFileItemCloseTo(fileItem);
+ }
+
+ for (let [fileUri, fileItem] of this._fileItems) {
+ if (fileItem.savedCoordinates !== null)
+ continue;
+ if (fileItem.state != FileItem.State.NORMAL)
+ continue;
+ if (!showHidden && fileItem.isHidden)
+ continue;
+ this._addFileItemCloseTo(fileItem);
+ }
+
+ this._layoutChildrenId = 0;
+ return GLib.SOURCE_REMOVE;
+ }
+
+ doRename() {
+ if (this._selection.size != 1)
+ return;
+
+ let item = [...this._selection][0];
+ if (item.canRename())
+ item.doRename();
+ }
+
+ doOpen() {
+ for (let fileItem of this._selection)
+ fileItem.doOpen();
+ }
+
+ doTrash() {
+ DBusUtils.NautilusFileOperationsProxy.TrashFilesRemote([...this._selection].map((x) => { return
x.file.get_uri(); }),
+ (source, error) => {
+ if (error)
+ throw new Error('Error trashing files on the desktop: ' + error.message);
+ }
+ );
+ }
+
+ doEmptyTrash() {
+ DBusUtils.NautilusFileOperationsProxy.EmptyTrashRemote( (source, error) => {
+ if (error)
+ throw new Error('Error trashing files on the desktop: ' + error.message);
+ });
+ }
+
+ _onFileItemSelected(fileItem, keepCurrentSelection, rubberBandSelection, addToSelection) {
+
+ if (!keepCurrentSelection && !this._inDrag)
+ this.clearSelection();
+
+ let selection = keepCurrentSelection && rubberBandSelection ? this._currentSelection :
this._selection;
+ if (addToSelection)
+ selection.add(fileItem);
+ else
+ selection.delete(fileItem);
+
+ for (let [fileUri, fileItem] of this._fileItems)
+ fileItem.isSelected = this._currentSelection.has(fileItem) || this._selection.has(fileItem);
+ }
+
+ clearSelection() {
+ for (let [fileUri, fileItem] of this._fileItems)
+ fileItem.isSelected = false;
+ this._selection = new Set();
+ this._currentSelection = new Set();
+ }
+
+ _getClipboardText(isCopy) {
+ let action = isCopy ? 'copy' : 'cut';
+ let text = `x-special/nautilus-clipboard\n${action}\n${
+ [...this._selection].map(s => s.file.get_uri()).join('\n')
+ }\n`;
+
+ return text;
+ }
+
+ doCopy() {
+ Clipboard.set_text(CLIPBOARD_TYPE, this._getClipboardText(true));
+ }
+
+ doCut() {
+ Clipboard.set_text(CLIPBOARD_TYPE, this._getClipboardText(false));
+ }
+
+ destroy() {
+ if (this._monitorDesktopDir)
+ this._monitorDesktopDir.cancel();
+ this._monitorDesktopDir = null;
+
+ if (this.settingsId)
+ Prefs.settings.disconnect(this.settingsId);
+ this.settingsId = 0;
+ if (this.gtkSettingsId)
+ Prefs.gtkSettings.disconnect(this.gtkSettingsId);
+ this.gtkSettingsId = 0;
+
+ if (this._layoutChildrenId)
+ GLib.source_remove(this._layoutChildrenId);
+ this._layoutChildrenId = 0;
+
+ if (this._deleteChildrenId)
+ GLib.source_remove(this._deleteChildrenId);
+ this._deleteChildrenId = 0;
+
+ if (this._monitorsChangedId)
+ Main.layoutManager.disconnect(this._monitorsChangedId);
+ this._monitorsChangedId = 0;
+ if (this._stageReleaseEventId)
+ global.stage.disconnect(this._stageReleaseEventId);
+ this._stageReleaseEventId = 0;
+
+ if (this._rubberBandId)
+ global.stage.disconnect(this._rubberBandId);
+ this._rubberBandId = 0;
+
+ this._rubberBand.destroy();
+
+ if (this._queryFileInfoCancellable)
+ this._queryFileInfoCancellable.cancel();
+
+ Object.values(this._desktopGrids).forEach(grid => grid.actor.destroy());
+ this._desktopGrids = {}
+ }
+});
+
+function forEachBackgroundManager(func) {
+ Main.layoutManager._bgManagers.forEach(func);
+}
diff --git a/extensions/desktop-icons/extension.js b/extensions/desktop-icons/extension.js
new file mode 100644
index 0000000..4b960ab
--- /dev/null
+++ b/extensions/desktop-icons/extension.js
@@ -0,0 +1,71 @@
+/* Desktop Icons GNOME Shell extension
+ *
+ * Copyright (C) 2017 Carlos Soriano <csoriano redhat com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+const Main = imports.ui.main;
+
+const ExtensionUtils = imports.misc.extensionUtils;
+const Me = ExtensionUtils.getCurrentExtension();
+const Prefs = Me.imports.prefs;
+const { DesktopManager } = Me.imports.desktopManager;
+const DBusUtils = Me.imports.dbusUtils;
+
+var desktopManager = null;
+var addBackgroundMenuOrig = null;
+var _startupPreparedId;
+var lockActivitiesButton = false;
+
+var oldShouldToggleByCornerOrButtonFunction = null;
+
+function init() {
+ addBackgroundMenuOrig = Main.layoutManager._addBackgroundMenu;
+
+ Prefs.initTranslations();
+}
+
+function newShouldToggleByCornerOrButton() {
+ if (lockActivitiesButton)
+ return false;
+ else
+ return oldShouldToggleByCornerOrButtonFunction.bind(Main.overview);
+}
+
+function enable() {
+ // register a new function to allow to lock the Activities button when doing a rubberband selection
+ oldShouldToggleByCornerOrButtonFunction = Main.overview.shouldToggleByCornerOrButton;
+ Main.overview.shouldToggleByCornerOrButton = newShouldToggleByCornerOrButton;
+ // wait until the startup process has ended
+ if (Main.layoutManager._startingUp)
+ _startupPreparedId = Main.layoutManager.connect('startup-complete', () => innerEnable(true));
+ else
+ innerEnable(false);
+}
+
+function innerEnable(disconnectSignal) {
+ if (disconnectSignal)
+ Main.layoutManager.disconnect(_startupPreparedId);
+ DBusUtils.init();
+ Prefs.init();
+ Main.layoutManager._addBackgroundMenu = function() {};
+ desktopManager = new DesktopManager();
+}
+
+function disable() {
+ desktopManager.destroy();
+ Main.layoutManager._addBackgroundMenu = addBackgroundMenuOrig;
+ Main.overview.shouldToggleByCornerOrButton = oldShouldToggleByCornerOrButtonFunction;
+}
diff --git a/extensions/desktop-icons/fileItem.js b/extensions/desktop-icons/fileItem.js
new file mode 100644
index 0000000..0c6a54d
--- /dev/null
+++ b/extensions/desktop-icons/fileItem.js
@@ -0,0 +1,830 @@
+/* Desktop Icons GNOME Shell extension
+ *
+ * Copyright (C) 2017 Carlos Soriano <csoriano redhat com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+const Gtk = imports.gi.Gtk;
+const Clutter = imports.gi.Clutter;
+const Gio = imports.gi.Gio;
+const GLib = imports.gi.GLib;
+const St = imports.gi.St;
+const Pango = imports.gi.Pango;
+const Meta = imports.gi.Meta;
+const GdkPixbuf = imports.gi.GdkPixbuf;
+const Cogl = imports.gi.Cogl;
+const GnomeDesktop = imports.gi.GnomeDesktop;
+
+const Mainloop = imports.mainloop;
+const Signals = imports.signals;
+
+const Background = imports.ui.background;
+const Main = imports.ui.main;
+const PopupMenu = imports.ui.popupMenu;
+const Util = imports.misc.util;
+
+const ExtensionUtils = imports.misc.extensionUtils;
+const Me = ExtensionUtils.getCurrentExtension();
+const Extension = Me.imports.extension;
+const Prefs = Me.imports.prefs;
+const DBusUtils = Me.imports.dbusUtils;
+const DesktopIconsUtil = Me.imports.desktopIconsUtil;
+
+const Gettext = imports.gettext.domain('desktop-icons');
+
+const _ = Gettext.gettext;
+
+const DRAG_TRESHOLD = 8;
+
+var S_IXUSR = 0o00100;
+var S_IWOTH = 0o00002;
+
+var State = {
+ NORMAL: 0,
+ GONE: 1,
+};
+
+var FileItem = class {
+
+ constructor(file, fileInfo, fileExtra) {
+ this._fileExtra = fileExtra;
+ this._loadThumbnailDataCancellable = null;
+ this._thumbnailScriptWatch = 0;
+ this._setMetadataCancellable = null;
+ this._queryFileInfoCancellable = null;
+ this._isSpecial = this._fileExtra != Prefs.FileType.NONE;
+
+ this._file = file;
+
+ this._savedCoordinates = null;
+ let savedCoordinates = fileInfo.get_attribute_as_string('metadata::nautilus-icon-position');
+ if (savedCoordinates != null)
+ this._savedCoordinates = savedCoordinates.split(',').map(x => Number(x));
+
+ this._state = State.NORMAL;
+
+ this.actor = new St.Bin({ visible: true });
+ this.actor.set_fill(true, true);
+ let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
+ this.actor.set_height(Prefs.get_desired_height(scaleFactor));
+ this.actor.set_width(Prefs.get_desired_width(scaleFactor));
+ this.actor._delegate = this;
+ this.actor.connect('destroy', () => this._onDestroy());
+
+ this._container = new St.BoxLayout({ reactive: true,
+ track_hover: true,
+ can_focus: true,
+ style_class: 'file-item',
+ x_expand: true,
+ y_expand: true,
+ x_align: Clutter.ActorAlign.FILL,
+ vertical: true });
+ this.actor.set_child(this._container);
+ this._icon = new St.Bin();
+ this._icon.set_height(Prefs.get_icon_size() * scaleFactor);
+
+ this._iconContainer = new St.Bin({ visible: true });
+ this._iconContainer.child = this._icon;
+ this._container.add_child(this._iconContainer);
+
+ this._label = new St.Label({
+ style_class: 'name-label'
+ });
+
+ this._container.add_child(this._label);
+ let clutterText = this._label.get_clutter_text();
+ /* TODO: Convert to gobject.set for 3.30 */
+ clutterText.set_line_wrap(true);
+ clutterText.set_line_wrap_mode(Pango.WrapMode.WORD_CHAR);
+ clutterText.set_ellipsize(Pango.EllipsizeMode.END);
+
+ this._container.connect('button-press-event', (actor, event) => this._onPressButton(actor, event));
+ this._container.connect('motion-event', (actor, event) => this._onMotion(actor, event));
+ this._container.connect('leave-event', (actor, event) => this._onLeave(actor, event));
+ this._container.connect('button-release-event', (actor, event) => this._onReleaseButton(actor,
event));
+
+ /* Set the metadata and update relevant UI */
+ this._updateMetadataFromFileInfo(fileInfo);
+
+ this._menuManager = null;
+ this._menu = null;
+ this._updateIcon();
+
+ this._isSelected = false;
+ this._primaryButtonPressed = false;
+ if (this._attributeCanExecute && !this._isValidDesktopFile)
+ this._execLine = this.file.get_path();
+ if (fileExtra == Prefs.FileType.USER_DIRECTORY_TRASH) {
+ // if this icon is the trash, monitor the state of the directory to update the icon
+ this._trashChanged = false;
+ this._queryTrashInfoCancellable = null;
+ this._scheduleTrashRefreshId = 0;
+ this._monitorTrashDir = this._file.monitor_directory(Gio.FileMonitorFlags.WATCH_MOVES, null);
+ this._monitorTrashId = this._monitorTrashDir.connect('changed', (obj, file, otherFile,
eventType) => {
+ switch(eventType) {
+ case Gio.FileMonitorEvent.DELETED:
+ case Gio.FileMonitorEvent.MOVED_OUT:
+ case Gio.FileMonitorEvent.CREATED:
+ case Gio.FileMonitorEvent.MOVED_IN:
+ if (this._queryTrashInfoCancellable || this._scheduleTrashRefreshId) {
+ if (this._scheduleTrashRefreshId)
+ GLib.source_remove(this._scheduleTrashRefreshId);
+ this._scheduleTrashRefreshId = Mainloop.timeout_add(200, () =>
this._refreshTrashIcon());
+ } else {
+ this._refreshTrashIcon();
+ }
+ break;
+ }
+ });
+ }
+
+ this._writebleByOthersId = Extension.desktopManager.connect('notify::writable-by-others', () => {
+ if (!this._isValidDesktopFile)
+ return;
+ this._refreshMetadataAsync(true);
+ });
+ }
+
+ onAttributeChanged() {
+ if (this._isDesktopFile) {
+ this._refreshMetadataAsync(true);
+ }
+ }
+
+ _onDestroy() {
+ /* Regular file data */
+ if (this._setMetadataCancellable)
+ this._setMetadataCancellable.cancel();
+ if (this._queryFileInfoCancellable)
+ this._queryFileInfoCancellable.cancel();
+
+ Extension.desktopManager.disconnect(this._writebleByOthersId);
+
+ /* Thumbnailing */
+ if (this._thumbnailScriptWatch)
+ GLib.source_remove(this._thumbnailScriptWatch);
+ if (this._loadThumbnailDataCancellable)
+ this._loadThumbnailDataCancellable.cancel();
+
+ /* Desktop file */
+ if (this._monitorDesktopFileId) {
+ this._monitorDesktopFile.disconnect(this._monitorDesktopFileId);
+ this._monitorDesktopFile.cancel();
+ }
+
+ /* Trash */
+ if (this._monitorTrashDir) {
+ this._monitorTrashDir.disconnect(this._monitorTrashId);
+ this._monitorTrashDir.cancel();
+ }
+ if (this._queryTrashInfoCancellable)
+ this._queryTrashInfoCancellable.cancel();
+ if (this._scheduleTrashRefreshId)
+ GLib.source_remove(this._scheduleTrashRefreshId);
+
+ /* Menu */
+ this._removeMenu();
+ }
+
+ _refreshMetadataAsync(rebuild) {
+ if (this._queryFileInfoCancellable)
+ this._queryFileInfoCancellable.cancel();
+ this._queryFileInfoCancellable = new Gio.Cancellable();
+ this._file.query_info_async(DesktopIconsUtil.DEFAULT_ATTRIBUTES,
+ Gio.FileQueryInfoFlags.NONE,
+ GLib.PRIORITY_DEFAULT,
+ this._queryFileInfoCancellable,
+ (source, result) => {
+ try {
+ let newFileInfo = source.query_info_finish(result);
+ this._queryFileInfoCancellable = null;
+ this._updateMetadataFromFileInfo(newFileInfo);
+ if (rebuild) {
+ this._recreateMenu();
+ this._updateIcon();
+ }
+ } catch(error) {
+ if (!error.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
+ global.log("Error getting the file info: " + error);
+ }
+ });
+ }
+
+ _updateMetadataFromFileInfo(fileInfo) {
+ this._fileInfo = fileInfo;
+
+ let oldLabelText = this._label.text;
+
+ this._displayName = fileInfo.get_attribute_as_string('standard::display-name');
+ this._attributeCanExecute = fileInfo.get_attribute_boolean('access::can-execute');
+ this._unixmode = fileInfo.get_attribute_uint32('unix::mode')
+ this._writableByOthers = (this._unixmode & S_IWOTH) != 0;
+ this._trusted = fileInfo.get_attribute_as_string('metadata::trusted') == 'true';
+ this._attributeContentType = fileInfo.get_content_type();
+ this._isDesktopFile = this._attributeContentType == 'application/x-desktop';
+
+ if (this._isDesktopFile && this._writableByOthers)
+ log(`desktop-icons: File ${this._displayName} is writable by others - will not allow launching`);
+
+ if (this._isDesktopFile) {
+ this._desktopFile = Gio.DesktopAppInfo.new_from_filename(this._file.get_path());
+ if (!this._desktopFile) {
+ log(`Couldn’t parse ${this._displayName} as a desktop file, will treat it as a regular
file.`);
+ this._isValidDesktopFile = false;
+ } else {
+ this._isValidDesktopFile = true;
+ }
+ } else {
+ this._isValidDesktopFile = false;
+ }
+
+ if (this.displayName != oldLabelText) {
+ this._label.text = this.displayName;
+ }
+
+ this._fileType = fileInfo.get_file_type();
+ this._isDirectory = this._fileType == Gio.FileType.DIRECTORY;
+ this._isSpecial = this._fileExtra != Prefs.FileType.NONE;
+ this._isHidden = fileInfo.get_is_hidden() | fileInfo.get_is_backup();
+ this._isSymlink = fileInfo.get_is_symlink();
+ this._modifiedTime = this._fileInfo.get_attribute_uint64("time::modified");
+ /*
+ * This is a glib trick to detect broken symlinks. If a file is a symlink, the filetype
+ * points to the final file, unless it is broken; thus if the file type is SYMBOLIC_LINK,
+ * it must be a broken link.
+ * https://developer.gnome.org/gio/stable/GFile.html#g-file-query-info
+ */
+ this._isBrokenSymlink = this._isSymlink && this._fileType == Gio.FileType.SYMBOLIC_LINK
+ }
+
+ onFileRenamed(file) {
+ this._file = file;
+ this._refreshMetadataAsync(false);
+ }
+
+ _updateIcon() {
+ if (this._fileExtra == Prefs.FileType.USER_DIRECTORY_TRASH) {
+ this._icon.child = this._createEmblemedStIcon(this._fileInfo.get_icon(), null);
+ return;
+ }
+
+ let thumbnailFactory =
GnomeDesktop.DesktopThumbnailFactory.new(GnomeDesktop.DesktopThumbnailSize.LARGE);
+ if (thumbnailFactory.can_thumbnail(this._file.get_uri(),
+ this._attributeContentType,
+ this._modifiedTime)) {
+ let thumbnail = thumbnailFactory.lookup(this._file.get_uri(), this._modifiedTime);
+ if (thumbnail == null) {
+ if (!thumbnailFactory.has_valid_failed_thumbnail(this._file.get_uri(),
+ this._modifiedTime)) {
+ let argv = [];
+ argv.push(GLib.build_filenamev([ExtensionUtils.getCurrentExtension().path,
+ 'createThumbnail.js']));
+ argv.push(this._file.get_path());
+ let [success, pid] = GLib.spawn_async(null, argv, null,
+ GLib.SpawnFlags.SEARCH_PATH |
GLib.SpawnFlags.DO_NOT_REAP_CHILD, null);
+ if (this._thumbnailScriptWatch)
+ GLib.source_remove(this._thumbnailScriptWatch);
+ this._thumbnailScriptWatch = GLib.child_watch_add(GLib.PRIORITY_DEFAULT,
+ pid,
+ (pid, exitCode) => {
+ this._thumbnailScriptWatch = 0;
+ if (exitCode == 0)
+ this._updateIcon();
+ else
+ global.log('Failed to generate thumbnail for ' + this._filePath);
+ GLib.spawn_close_pid(pid);
+ return false;
+ }
+ );
+ }
+ } else {
+ if (this._loadThumbnailDataCancellable)
+ this._loadThumbnailDataCancellable.cancel();
+ this._loadThumbnailDataCancellable = new Gio.Cancellable();
+ let thumbnailFile = Gio.File.new_for_path(thumbnail);
+ thumbnailFile.load_bytes_async(this._loadThumbnailDataCancellable,
+ (source, result) => {
+ try {
+ this._loadThumbnailDataCancellable = null;
+ let [thumbnailData, etag_out] = source.load_bytes_finish(result);
+ let thumbnailStream = Gio.MemoryInputStream.new_from_bytes(thumbnailData);
+ let thumbnailPixbuf = GdkPixbuf.Pixbuf.new_from_stream(thumbnailStream, null);
+
+ if (thumbnailPixbuf != null) {
+ let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
+ let thumbnailImage = new Clutter.Image();
+ thumbnailImage.set_data(thumbnailPixbuf.get_pixels(),
+ thumbnailPixbuf.has_alpha ?
Cogl.PixelFormat.RGBA_8888 : Cogl.PixelFormat.RGB_888,
+ thumbnailPixbuf.width,
+ thumbnailPixbuf.height,
+ thumbnailPixbuf.rowstride
+ );
+ let icon = new Clutter.Actor();
+ icon.set_content(thumbnailImage);
+ let width = Prefs.get_desired_width(scaleFactor);
+ let height = Prefs.get_icon_size() * scaleFactor;
+ let aspectRatio = thumbnailPixbuf.width / thumbnailPixbuf.height;
+ if ((width / height) > aspectRatio)
+ icon.set_size(height * aspectRatio, height);
+ else
+ icon.set_size(width, width / aspectRatio);
+ this._icon.child = icon;
+ }
+ } catch (error) {
+ if (!error.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) {
+ global.log('Error while loading thumbnail: ' + error);
+ this._icon.child = this._createEmblemedStIcon(this._fileInfo.get_icon(),
null);
+ }
+ }
+ }
+ );
+ }
+ }
+
+ if (this._isBrokenSymlink) {
+ this._icon.child = this._createEmblemedStIcon(null, 'text-x-generic');
+ } else {
+ if (this.trustedDesktopFile && this._desktopFile.has_key('Icon'))
+ this._icon.child = this._createEmblemedStIcon(null, this._desktopFile.get_string('Icon'));
+ else
+ this._icon.child = this._createEmblemedStIcon(this._fileInfo.get_icon(), null);
+ }
+ }
+
+ _refreshTrashIcon() {
+ if (this._queryTrashInfoCancellable)
+ this._queryTrashInfoCancellable.cancel();
+ this._queryTrashInfoCancellable = new Gio.Cancellable();
+
+ this._file.query_info_async(DesktopIconsUtil.DEFAULT_ATTRIBUTES,
+ Gio.FileQueryInfoFlags.NONE,
+ GLib.PRIORITY_DEFAULT,
+ this._queryTrashInfoCancellable,
+ (source, result) => {
+ try {
+ this._fileInfo = source.query_info_finish(result);
+ this._queryTrashInfoCancellable = null;
+ this._updateIcon();
+ } catch(error) {
+ if (!error.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
+ global.log('Error getting the number of files in the trash: ' + error);
+ }
+ });
+
+ this._scheduleTrashRefreshId = 0;
+ return false;
+ }
+
+ get file() {
+ return this._file;
+ }
+
+ get isHidden() {
+ return this._isHidden;
+ }
+
+ _createEmblemedStIcon(icon, iconName) {
+ if (icon == null) {
+ if (GLib.path_is_absolute(iconName)) {
+ let iconFile = Gio.File.new_for_commandline_arg(iconName);
+ icon = new Gio.FileIcon({ file: iconFile });
+ } else {
+ icon = Gio.ThemedIcon.new_with_default_fallbacks(iconName);
+ }
+ }
+ let itemIcon = Gio.EmblemedIcon.new(icon, null);
+
+ if (this._isSymlink) {
+ if (this._isBrokenSymlink)
+ itemIcon.add_emblem(Gio.Emblem.new(Gio.ThemedIcon.new('emblem-unreadable')));
+ else
+ itemIcon.add_emblem(Gio.Emblem.new(Gio.ThemedIcon.new('emblem-symbolic-link')));
+ } else if (this.trustedDesktopFile) {
+ itemIcon.add_emblem(Gio.Emblem.new(Gio.ThemedIcon.new('emblem-symbolic-link')));
+ }
+
+ return new St.Icon({ gicon: itemIcon,
+ icon_size: Prefs.get_icon_size()
+ });
+ }
+
+ doRename() {
+ if (!this.canRename()) {
+ log (`Error: ${this.file.get_uri()} cannot be renamed`);
+ return;
+ }
+
+ this.emit('rename-clicked');
+ }
+
+ doOpen() {
+ if (this._isBrokenSymlink) {
+ log(`Error: Can’t open ${this.file.get_uri()} because it is a broken symlink.`);
+ return;
+ }
+
+ if (this.trustedDesktopFile) {
+ this._desktopFile.launch_uris_as_manager([], null, GLib.SpawnFlags.SEARCH_PATH, null, null);
+ return;
+ }
+
+ if (this._attributeCanExecute && !this._isDirectory && !this._isValidDesktopFile) {
+ if (this._execLine)
+ Util.spawnCommandLine(this._execLine);
+ return;
+ }
+
+ Gio.AppInfo.launch_default_for_uri_async(this.file.get_uri(),
+ null, null,
+ (source, result) => {
+ try {
+ Gio.AppInfo.launch_default_for_uri_finish(result);
+ } catch (e) {
+ log('Error opening file ' + this.file.get_uri() + ': ' + e.message);
+ }
+ }
+ );
+ }
+
+ _onCopyClicked() {
+ Extension.desktopManager.doCopy();
+ }
+
+ _onCutClicked() {
+ Extension.desktopManager.doCut();
+ }
+
+ _onShowInFilesClicked() {
+
+ DBusUtils.FreeDesktopFileManagerProxy.ShowItemsRemote([this.file.get_uri()], '',
+ (result, error) => {
+ if (error)
+ log('Error showing file on desktop: ' + error.message);
+ }
+ );
+ }
+
+ _onPropertiesClicked() {
+
+ DBusUtils.FreeDesktopFileManagerProxy.ShowItemPropertiesRemote([this.file.get_uri()], '',
+ (result, error) => {
+ if (error)
+ log('Error showing properties: ' + error.message);
+ }
+ );
+ }
+
+ _onMoveToTrashClicked() {
+ Extension.desktopManager.doTrash();
+ }
+
+ _onEmptyTrashClicked() {
+ Extension.desktopManager.doEmptyTrash();
+ }
+
+ get _allowLaunchingText() {
+ if (this.trustedDesktopFile)
+ return _("Don’t Allow Launching");
+
+ return _("Allow Launching");
+ }
+
+ get metadataTrusted() {
+ return this._trusted;
+ }
+
+ set metadataTrusted(value) {
+ this._trusted = value;
+
+ let info = new Gio.FileInfo();
+ info.set_attribute_string('metadata::trusted',
+ value ? 'true' : 'false');
+ this._file.set_attributes_async(info,
+ Gio.FileQueryInfoFlags.NONE,
+ GLib.PRIORITY_LOW,
+ null,
+ (source, result) => {
+ try {
+ source.set_attributes_finish(result);
+ this._refreshMetadataAsync(true);
+ } catch(e) {
+ log(`Failed to set metadata::trusted: ${e.message}`);
+ }
+ });
+ }
+
+ _onAllowDisallowLaunchingClicked() {
+ this.metadataTrusted = !this.trustedDesktopFile;
+
+ /*
+ * we're marking as trusted, make the file executable too. note that we
+ * do not ever remove the executable bit, since we don't know who set
+ * it.
+ */
+ if (this.metadataTrusted && !this._attributeCanExecute) {
+ let info = new Gio.FileInfo();
+ let newUnixMode = this._unixmode | S_IXUSR;
+ info.set_attribute_uint32(Gio.FILE_ATTRIBUTE_UNIX_MODE, newUnixMode);
+ this._file.set_attributes_async(info,
+ Gio.FileQueryInfoFlags.NONE,
+ GLib.PRIORITY_LOW,
+ null,
+ (source, result) => {
+ try {
+ source.set_attributes_finish (result);
+ } catch(e) {
+ log(`Failed to set unix mode: ${e.message}`);
+ }
+ });
+ }
+ }
+
+ canRename() {
+ return !this.trustedDesktopFile && this._fileExtra == Prefs.FileType.NONE;
+ }
+
+ _doOpenWith() {
+ DBusUtils.openFileWithOtherApplication(this.file.get_path());
+ }
+
+ _getSelectionStyle() {
+ let rgba = DesktopIconsUtil.getGtkClassBackgroundColor('view', Gtk.StateFlags.SELECTED);
+ let background_color =
+ 'rgba(' + rgba.red * 255 + ', ' + rgba.green * 255 + ', ' + rgba.blue * 255 + ', 0.6)';
+ let border_color =
+ 'rgba(' + rgba.red * 255 + ', ' + rgba.green * 255 + ', ' + rgba.blue * 255 + ', 0.8)';
+
+ return 'background-color: ' + background_color + ';' +
+ 'border-color: ' + border_color + ';'
+ }
+
+ _removeMenu() {
+ if (this._menu != null) {
+ if (this._menuManager != null)
+ this._menuManager.removeMenu(this._menu);
+
+ Main.layoutManager.uiGroup.remove_child(this._menu.actor);
+ this._menu.destroy();
+ this._menu = null;
+ }
+
+ this._menuManager = null;
+ }
+
+ _recreateMenu() {
+ this._removeMenu();
+
+ this._menuManager = new PopupMenu.PopupMenuManager({ actor: this.actor });
+ let side = St.Side.LEFT;
+ if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
+ side = St.Side.RIGHT;
+ this._menu = new PopupMenu.PopupMenu(this.actor, 0.5, side);
+ this._menu.addAction(_('Open'), () => this.doOpen());
+ switch (this._fileExtra) {
+ case Prefs.FileType.NONE:
+ if (!this._isDirectory)
+ this._actionOpenWith = this._menu.addAction(_('Open With Other Application'), () =>
this._doOpenWith());
+ else
+ this._actionOpenWith = null;
+ this._menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
+ this._actionCut = this._menu.addAction(_('Cut'), () => this._onCutClicked());
+ this._actionCopy = this._menu.addAction(_('Copy'), () => this._onCopyClicked());
+ if (this.canRename())
+ this._menu.addAction(_('Rename…'), () => this.doRename());
+ this._actionTrash = this._menu.addAction(_('Move to Trash'), () => this._onMoveToTrashClicked());
+ if (this._isValidDesktopFile && !Extension.desktopManager.writableByOthers &&
!this._writableByOthers) {
+ this._menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
+ this._allowLaunchingMenuItem = this._menu.addAction(this._allowLaunchingText,
+ () =>
this._onAllowDisallowLaunchingClicked());
+
+ }
+ break;
+ case Prefs.FileType.USER_DIRECTORY_TRASH:
+ this._menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
+ this._menu.addAction(_('Empty Trash'), () => this._onEmptyTrashClicked());
+ break;
+ default:
+ break;
+ }
+ this._menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
+ this._menu.addAction(_('Properties'), () => this._onPropertiesClicked());
+ this._menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
+ this._menu.addAction(_('Show in Files'), () => this._onShowInFilesClicked());
+ if (this._isDirectory && this.file.get_path() != null)
+ this._actionOpenInTerminal = this._menu.addAction(_('Open in Terminal'), () =>
this._onOpenTerminalClicked());
+
+ this._menuManager.addMenu(this._menu);
+
+ Main.layoutManager.uiGroup.add_child(this._menu.actor);
+ this._menu.actor.hide();
+ }
+
+ _ensureMenu() {
+ if (this._menu == null)
+ this._recreateMenu();
+
+ return this._menu;
+ }
+
+ _onOpenTerminalClicked () {
+ DesktopIconsUtil.launchTerminal(this.file.get_path());
+ }
+
+ _onPressButton(actor, event) {
+ let button = event.get_button();
+ if (button == 3) {
+ if (!this.isSelected)
+ this.emit('selected', false, false, true);
+ this._ensureMenu().toggle();
+ if (this._actionOpenWith) {
+ let allowOpenWith = (Extension.desktopManager.getNumberOfSelectedItems() == 1);
+ this._actionOpenWith.setSensitive(allowOpenWith);
+ }
+ let specialFilesSelected = Extension.desktopManager.checkIfSpecialFilesAreSelected();
+ if (this._actionCut)
+ this._actionCut.setSensitive(!specialFilesSelected);
+ if (this._actionCopy)
+ this._actionCopy.setSensitive(!specialFilesSelected);
+ if (this._actionTrash)
+ this._actionTrash.setSensitive(!specialFilesSelected);
+ return Clutter.EVENT_STOP;
+ } else if (button == 1) {
+ if (event.get_click_count() == 1) {
+ let [x, y] = event.get_coords();
+ this._primaryButtonPressed = true;
+ this._buttonPressInitialX = x;
+ this._buttonPressInitialY = y;
+ let shiftPressed = !!(event.get_state() & Clutter.ModifierType.SHIFT_MASK);
+ let controlPressed = !!(event.get_state() & Clutter.ModifierType.CONTROL_MASK);
+ if (!this.isSelected) {
+ this.emit('selected', shiftPressed || controlPressed, false, true);
+ }
+ }
+ return Clutter.EVENT_STOP;
+ }
+
+ return Clutter.EVENT_PROPAGATE;
+ }
+
+ _onLeave(actor, event) {
+ this._primaryButtonPressed = false;
+ }
+
+ _onMotion(actor, event) {
+ let [x, y] = event.get_coords();
+ if (this._primaryButtonPressed) {
+ let xDiff = x - this._buttonPressInitialX;
+ let yDiff = y - this._buttonPressInitialY;
+ let distance = Math.sqrt(Math.pow(xDiff, 2) + Math.pow(yDiff, 2));
+ if (distance > DRAG_TRESHOLD) {
+ // Don't need to track anymore this if we start drag, and also
+ // avoids reentrance here
+ this._primaryButtonPressed = false;
+ let event = Clutter.get_current_event();
+ let [x, y] = event.get_coords();
+ Extension.desktopManager.dragStart();
+ }
+ }
+
+ return Clutter.EVENT_PROPAGATE;
+ }
+
+ _onReleaseButton(actor, event) {
+ let button = event.get_button();
+ if (button == 1) {
+ // primaryButtonPressed is TRUE only if the user has pressed the button
+ // over an icon, and if (s)he has not started a drag&drop operation
+ if (this._primaryButtonPressed) {
+ this._primaryButtonPressed = false;
+ let shiftPressed = !!(event.get_state() & Clutter.ModifierType.SHIFT_MASK);
+ let controlPressed = !!(event.get_state() & Clutter.ModifierType.CONTROL_MASK);
+ if ((event.get_click_count() == 1) && Prefs.CLICK_POLICY_SINGLE && !shiftPressed &&
!controlPressed)
+ this.doOpen();
+ this.emit('selected', shiftPressed || controlPressed, false, true);
+ return Clutter.EVENT_STOP;
+ }
+ if ((event.get_click_count() == 2) && (!Prefs.CLICK_POLICY_SINGLE))
+ this.doOpen();
+ }
+ return Clutter.EVENT_PROPAGATE;
+ }
+
+ get savedCoordinates() {
+ return this._savedCoordinates;
+ }
+
+ _onSetMetadataFileFinished(source, result) {
+ try {
+ let [success, info] = source.set_attributes_finish(result);
+ } catch (error) {
+ if (!error.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
+ log('Error setting metadata to desktop files ', error);
+ }
+ }
+
+ set savedCoordinates(pos) {
+ if (this._setMetadataCancellable)
+ this._setMetadataCancellable.cancel();
+
+ this._setMetadataCancellable = new Gio.Cancellable();
+ this._savedCoordinates = [pos[0], pos[1]];
+ let info = new Gio.FileInfo();
+ info.set_attribute_string('metadata::nautilus-icon-position',
+ `${pos[0]},${pos[1]}`);
+ this.file.set_attributes_async(info,
+ Gio.FileQueryInfoFlags.NONE,
+ GLib.PRIORITY_DEFAULT,
+ this._setMetadataCancellable,
+ (source, result) => {
+ this._setMetadataCancellable = null;
+ this._onSetMetadataFileFinished(source, result);
+ }
+ );
+ }
+
+ intersectsWith(argX, argY, argWidth, argHeight) {
+ let rect = new Meta.Rectangle({ x: argX, y: argY, width: argWidth, height: argHeight });
+ let [containerX, containerY] = this._container.get_transformed_position();
+ let boundingBox = new Meta.Rectangle({ x: containerX,
+ y: containerY,
+ width: this._container.allocation.x2 -
this._container.allocation.x1,
+ height: this._container.allocation.y2 -
this._container.allocation.y1 });
+ let [intersects, _] = rect.intersect(boundingBox);
+
+ return intersects;
+ }
+
+ set isSelected(isSelected) {
+ isSelected = !!isSelected;
+ if (isSelected == this._isSelected)
+ return;
+
+ if (isSelected) {
+ this._container.set_style(this._getSelectionStyle());
+ } else {
+ this._container.set_style('background-color: transparent');
+ this._container.set_style('border-color: transparent');
+ }
+
+ this._isSelected = isSelected;
+ }
+
+ get isSelected() {
+ return this._isSelected;
+ }
+
+ get isSpecial() {
+ return this._isSpecial;
+ }
+
+ get state() {
+ return this._state;
+ }
+
+ set state(state) {
+ if (state == this._state)
+ return;
+
+ this._state = state;
+ }
+
+ get isDirectory() {
+ return this._isDirectory;
+ }
+
+ get trustedDesktopFile() {
+ return this._isValidDesktopFile &&
+ this._attributeCanExecute &&
+ this.metadataTrusted &&
+ !Extension.desktopManager.writableByOthers &&
+ !this._writableByOthers;
+ }
+
+ get fileName() {
+ return this._fileInfo.get_name();
+ }
+
+ get displayName() {
+ if (this.trustedDesktopFile)
+ return this._desktopFile.get_name();
+
+ return this._displayName || null;
+ }
+
+ acceptDrop() {
+ return Extension.desktopManager.selectionDropOnFileItem(this);
+ }
+};
+Signals.addSignalMethods(FileItem.prototype);
diff --git a/extensions/desktop-icons/meson.build b/extensions/desktop-icons/meson.build
new file mode 100644
index 0000000..8431af6
--- /dev/null
+++ b/extensions/desktop-icons/meson.build
@@ -0,0 +1,19 @@
+extension_data += configure_file(
+ input: metadata_name + '.in',
+ output: metadata_name,
+ configuration: metadata_conf
+)
+
+extension_schemas += files(join_paths('schemas', metadata_conf.get('gschemaname') + '.gschema.xml'))
+
+extension_sources += files(
+ 'createFolderDialog.js',
+ 'createThumbnail.js',
+ 'dbusUtils.js',
+ 'desktopGrid.js',
+ 'desktopIconsUtil.js',
+ 'desktopManager.js',
+ 'extension.js',
+ 'fileItem.js',
+ 'prefs.js'
+)
diff --git a/extensions/desktop-icons/metadata.json.in b/extensions/desktop-icons/metadata.json.in
new file mode 100644
index 0000000..78cabf0
--- /dev/null
+++ b/extensions/desktop-icons/metadata.json.in
@@ -0,0 +1,11 @@
+{
+"extension-id": "@extension_id@",
+"uuid": "@uuid@",
+"settings-schema": "@gschemaname@",
+"gettext-domain": "@gettext_domain@",
+"name": "Desktop Icons",
+"description": "Provide desktop icons support for classic mode",
+"original-authors": [ "csoriano redhat com" ],
+"shell-version": [ "@shell_current@" ],
+"url": "@url@"
+}
diff --git a/extensions/desktop-icons/po/LINGUAS b/extensions/desktop-icons/po/LINGUAS
new file mode 100644
index 0000000..65b7521
--- /dev/null
+++ b/extensions/desktop-icons/po/LINGUAS
@@ -0,0 +1,19 @@
+cs
+da
+de
+es
+fi
+fr
+fur
+hr
+hu
+id
+it
+ja
+nl
+pl
+pt_BR
+ru
+sv
+tr
+zh_TW
diff --git a/extensions/desktop-icons/po/POTFILES.in b/extensions/desktop-icons/po/POTFILES.in
new file mode 100644
index 0000000..7c2ebd3
--- /dev/null
+++ b/extensions/desktop-icons/po/POTFILES.in
@@ -0,0 +1,4 @@
+prefs.js
+desktopGrid.js
+fileItem.js
+schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml
\ No newline at end of file
diff --git a/extensions/desktop-icons/po/cs.po b/extensions/desktop-icons/po/cs.po
new file mode 100644
index 0000000..f5f9db4
--- /dev/null
+++ b/extensions/desktop-icons/po/cs.po
@@ -0,0 +1,195 @@
+# Czech translation for desktop-icons.
+# Copyright (C) 2018 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Marek Černocký <marek manet cz>, 2018.
+# Milan Zink <zeten30 gmail com>, 2018.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-03-01 12:49+0000\n"
+"PO-Revision-Date: 2019-03-02 18:02+0100\n"
+"Last-Translator: Daniel Rusek <mail asciiwolf com>\n"
+"Language-Team: Czech <zeten30 gmail com>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Poedit 2.2.1\n"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Název nové složky"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Vytvořit"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "Zrušit"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Názvy složek nesmí obsahovat „/“."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Složka se nemůže jmenovat „.“."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Složka se nemůže jmenovat „..“."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Složky s „.“ na začátku jejich názvu jsou skryty."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Soubor nebo složka s tímto názvem již existuje."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Velikost ikon na pracovní ploše"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "malé"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "standardní"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "velké"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Zobrazovat osobní složku na pracovní ploše"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Zobrazovat ikonu koše na pracovní ploše"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Nová složka"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Vložit"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Zpět"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Znovu"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Zobrazit plochu v Souborech"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Otevřít v terminálu"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Změnit pozadí…"
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "Zobrazit nastavení"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Nastavení"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Zadejte název souboru…"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "Budiž"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "Nepovolit spouštění"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Povolit spouštění"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Otevřít"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Otevřít pomocí jiné aplikace"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Vyjmout"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Kopírovat"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Přejmenovat…"
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "Přesunout do koše"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Vyprázdnit koš"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Vlastnosti"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "Zobrazit v Souborech"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Velikost ikon"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Nastavit velikost pro ikony na pracovní ploše."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Zobrazovat osobní složku"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Zobrazovat osobní složku na pracovní ploše."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Zobrazovat koš"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Zobrazovat ikonu koše na pracovní ploše."
+
+#~ msgid "Huge"
+#~ msgstr "obrovské"
+
+#~ msgid "Ok"
+#~ msgstr "Ok"
diff --git a/extensions/desktop-icons/po/da.po b/extensions/desktop-icons/po/da.po
new file mode 100644
index 0000000..d3f51f0
--- /dev/null
+++ b/extensions/desktop-icons/po/da.po
@@ -0,0 +1,159 @@
+# Danish translation for desktop-icons.
+# Copyright (C) 2018 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Alan Mortensen <alanmortensen am gmail com>, 2018.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-01-15 10:59+0000\n"
+"PO-Revision-Date: 2019-02-09 11:35+0100\n"
+"Last-Translator: Alan Mortensen <alanmortensen am gmail com>\n"
+"Language-Team: Danish <dansk dansk-gruppen dk>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 2.0.6\n"
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Størrelsen på skrivebordsikoner"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Små"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standard"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Store"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Vis den personlige mappe på skrivebordet"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Vis papirkurvsikonet på skrivebordet"
+
+#: desktopGrid.js:187 desktopGrid.js:306
+msgid "New Folder"
+msgstr "Ny mappe"
+
+#: desktopGrid.js:308
+msgid "Paste"
+msgstr "Indsæt"
+
+#: desktopGrid.js:309
+msgid "Undo"
+msgstr "Fortryd"
+
+#: desktopGrid.js:310
+msgid "Redo"
+msgstr "Omgør"
+
+#: desktopGrid.js:312
+msgid "Show Desktop in Files"
+msgstr "Vis skrivebordet i Filer"
+
+#: desktopGrid.js:313 fileItem.js:586
+msgid "Open in Terminal"
+msgstr "Åbn i terminal"
+
+#: desktopGrid.js:315
+msgid "Change Background…"
+msgstr "Skift baggrund …"
+
+#: desktopGrid.js:317
+msgid "Display Settings"
+msgstr "Skærmindstillinger"
+
+#: desktopGrid.js:318
+msgid "Settings"
+msgstr "Indstillinger"
+
+#: desktopGrid.js:559
+msgid "Enter file name…"
+msgstr "Indtast filnavn …"
+
+#: desktopGrid.js:563
+msgid "OK"
+msgstr "OK"
+
+#: desktopGrid.js:569
+msgid "Cancel"
+msgstr "Annullér"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "Tillad ikke opstart"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Tillad opstart"
+
+#: fileItem.js:559
+msgid "Open"
+msgstr "Åbn"
+
+#: fileItem.js:562
+msgid "Cut"
+msgstr "Klip"
+
+#: fileItem.js:563
+msgid "Copy"
+msgstr "Kopiér"
+
+#: fileItem.js:565
+msgid "Rename…"
+msgstr "Omdøb …"
+
+#: fileItem.js:566
+msgid "Move to Trash"
+msgstr "Flyt til papirkurven"
+
+#: fileItem.js:576
+msgid "Empty Trash"
+msgstr "Tøm papirkurven"
+
+#: fileItem.js:582
+msgid "Properties"
+msgstr "Egenskaber"
+
+#: fileItem.js:584
+msgid "Show in Files"
+msgstr "Vis i Filer"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Ikonstørrelse"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Angiv størrelsen på skrivebordsikoner."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Vis personlig mappe"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Vis den personlige mappe på skrivebordet."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Vis papirkurvsikon"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Vis papirkurvsikonet på skrivebordet."
+
+#~ msgid "Huge"
+#~ msgstr "Enorme"
diff --git a/extensions/desktop-icons/po/de.po b/extensions/desktop-icons/po/de.po
new file mode 100644
index 0000000..ed5a257
--- /dev/null
+++ b/extensions/desktop-icons/po/de.po
@@ -0,0 +1,192 @@
+# German translation for desktop-icons.
+# Copyright (C) 2018 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Mario Blättermann <mario blaettermann gmail com>, 2018.
+# rugk <rugk+i18n posteo de>, 2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-03-07 22:46+0000\n"
+"PO-Revision-Date: 2019-03-09 15:42+0100\n"
+"Last-Translator: Tim Sabsch <tim sabsch com>\n"
+"Language-Team: German <gnome-de gnome org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 2.2.1\n"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Neuer Ordner"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Erstellen"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Ordnernamen dürfen kein »/« enthalten."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Ein Ordner darf nicht ».« genannt werden."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Ein Ordner darf nicht »..« genannt werden."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Ordner mit ».« am Anfang sind verborgen."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Es gibt bereits eine Datei oder einen Ordner mit diesem Namen."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Größe der Arbeitsflächensymbole"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Klein"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standard"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Groß"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Den persönlichen Ordner auf der Arbeitsfläche anzeigen"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Papierkorb-Symbol auf der Arbeitsfläche anzeigen"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Neuer Ordner"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Einfügen"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Rückgängig"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Wiederholen"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Schreibtisch in Dateien anzeigen"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Im Terminal öffnen"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Hintergrund ändern …"
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "Anzeigeeinstellungen"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Einstellungen"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Dateinamen eingeben …"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "OK"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "Start nicht erlauben"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Start erlauben"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Öffnen"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Mit anderer Anwendung öffnen"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Ausschneiden"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Kopieren"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Umbenennen …"
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "In den Papierkorb verschieben"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Papierkorb leeren"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Eigenschaften"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "In Dateiverwaltung anzeigen"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Symbolgröße"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Die Größe der Arbeitsflächensymbole festlegen."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Persönlichen Ordner anzeigen"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Den persönlichen Ordner auf der Arbeitsfläche anzeigen."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Papierkorb-Symbol anzeigen"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Das Papierkorb-Symbol auf der Arbeitsfläche anzeigen."
+
+#~ msgid "Huge"
+#~ msgstr "Riesig"
diff --git a/extensions/desktop-icons/po/es.po b/extensions/desktop-icons/po/es.po
new file mode 100644
index 0000000..8cc87da
--- /dev/null
+++ b/extensions/desktop-icons/po/es.po
@@ -0,0 +1,218 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# Sergio Costas <rastersoft gmail com>, 2018.
+# Daniel Mustieles <daniel mustieles gmail com>, 2018-2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 1.0\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-03-01 12:11+0000\n"
+"PO-Revision-Date: 2019-03-04 10:37+0100\n"
+"Last-Translator: Daniel Mustieles <daniel mustieles gmail com>\n"
+"Language-Team: es <gnome-es-list gnome org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Gtranslator 3.31.90\n"
+
+#: createFolderDialog.js:48
+#| msgid "New Folder"
+msgid "New folder name"
+msgstr "Nombre de la nueva carpeta"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Crear"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Los nombres de carpetas no pueden contener «/»."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Una carpeta no se puede llamar «.»."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Una carpeta no se puede llamar «..»."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Las carpetas cuyo nombre empieza por «.» están ocultas."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Ya hay un archivo o carpeta con ese nombre."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Tamaño de los iconos del escritorio"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Pequeño"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Estándar"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Grande"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Mostrar la carpeta personal en el escritorio"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Mostrar la papelera en el escritorio"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Nueva carpeta"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Pegar"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Deshacer"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Rehacer"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Mostrar el escritorio en Archivos"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Abrir en una terminal"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Cambiar el fondo..."
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "Configuración de pantalla"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Configuración"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Introduzca el nombre del archivo…"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "Aceptar"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "No permitir lanzar"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Permitir lanzar"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Abrir"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Abrir con otra aplicación"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Cortar"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Copiar"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Renombrar…"
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "Mover a la papelera"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Vaciar la papelera"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Propiedades"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "Mostrar en Files"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Tamaño de los iconos"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Establece el tamaño de los iconos del escritorio."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Mostrar la carpeta personal"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Mostrar la carpeta personal en el escritorio."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Mostrar la papelera"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Mostrar la papelera en el escritorio."
+
+#~ msgid "Huge"
+#~ msgstr "Inmenso"
+
+#~ msgid "Ok"
+#~ msgstr "Aceptar"
+
+#~ msgid "huge"
+#~ msgstr "inmenso"
+
+#~ msgid "Maximum width for the icons and filename."
+#~ msgstr "Ancho máximo de los iconos y el nombre de fichero."
+
+#~ msgid "Shows the Documents folder in the desktop."
+#~ msgstr "Muestra la carpeta Documentos en el escritorio."
+
+#~ msgid "Shows the Downloads folder in the desktop."
+#~ msgstr "Muestra la carpeta Descargas en el escritorio."
+
+#~ msgid "Shows the Music folder in the desktop."
+#~ msgstr "Muestra la carpeta Música en el escritorio."
+
+#~ msgid "Shows the Pictures folder in the desktop."
+#~ msgstr "Muestra la carpeta Imágenes en el escritorio."
+
+#~ msgid "Shows the Videos folder in the desktop."
+#~ msgstr "Muestra la carpeta Vídeos en el escritorio."
diff --git a/extensions/desktop-icons/po/fi.po b/extensions/desktop-icons/po/fi.po
new file mode 100644
index 0000000..71ac40d
--- /dev/null
+++ b/extensions/desktop-icons/po/fi.po
@@ -0,0 +1,191 @@
+# Finnish translation for desktop-icons.
+# Copyright (C) 2018 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Jiri Grönroos <jiri gronroos iki fi>, 2018.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-03-01 12:11+0000\n"
+"PO-Revision-Date: 2019-03-02 11:29+0200\n"
+"Last-Translator: Jiri Grönroos <jiri gronroos+l10n iki fi>\n"
+"Language-Team: Finnish <lokalisointi-lista googlegroups com>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 2.0.6\n"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Uusi kansion nimi"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Luo"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "Peru"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Kansion nimi ei voi sisältää merkkiä “/”."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Kansion nimi ei voi olla “.”."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Kansion nimi ei voi olla “..”."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Kansiot, joiden nimi alkaa merkillä “.”, ovat piilotettuja."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Nimi on jo toisen tiedoston tai kansion käytössä."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Työpöytäkuvakkeiden koko"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Pieni"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Normaali"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Suuri"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Näytä kotikansio työpöydällä"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Näytä roskakorin kuvake työpöydällä"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Uusi kansio"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Liitä"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Kumoa"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Tee uudeleen"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Näytä työpöytä tiedostonhallinnassa"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Avaa päätteessä"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Vaihda taustakuvaa…"
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "Näytön asetukset"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Asetukset"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Anna tiedostonimi…"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "OK"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "Älä salli käynnistämistä"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Salli käynnistäminen"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Avaa"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Avaa toisella sovelluksella"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Leikkaa"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Kopioi"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Nimeä uudelleen…"
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "Siirrä roskakoriin"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Tyhjennä roskakori"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Ominaisuudet"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "Näytä tiedostonhallinnassa"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Kuvakekoko"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Aseta työpöytäkuvakkeiden koko."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Näytä kotikansio"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Näytä kotikansio työpöydällä."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Näytä roskakorin kuvake"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Näytä roskakorin kuvake työpöydällä."
+
+#~ msgid "Huge"
+#~ msgstr "Valtava"
diff --git a/extensions/desktop-icons/po/fr.po b/extensions/desktop-icons/po/fr.po
new file mode 100644
index 0000000..13e8f3a
--- /dev/null
+++ b/extensions/desktop-icons/po/fr.po
@@ -0,0 +1,164 @@
+# French translation for desktop-icons.
+# Copyright (C) 2018 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# ghentdebian <ghent debian gmail com>, 2018.
+# Charles Monzat <charles monzat numericable fr>, 2018.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2018-12-14 09:12+0000\n"
+"PO-Revision-Date: 2018-12-16 17:47+0100\n"
+"Last-Translator: Charles Monzat <charles monzat numericable fr>\n"
+"Language-Team: GNOME French Team <gnomefr traduc org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"X-Generator: Gtranslator 3.30.0\n"
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Taille des icônes du bureau"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Petite"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Normale"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Grande"
+
+#: prefs.js:102
+msgid "Huge"
+msgstr "Immense"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Montrer le dossier personnel sur le bureau"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Montrer la corbeille sur le bureau"
+
+#: desktopGrid.js:182 desktopGrid.js:301
+msgid "New Folder"
+msgstr "Nouveau dossier"
+
+#: desktopGrid.js:303
+msgid "Paste"
+msgstr "Coller"
+
+#: desktopGrid.js:304
+msgid "Undo"
+msgstr "Annuler"
+
+#: desktopGrid.js:305
+msgid "Redo"
+msgstr "Refaire"
+
+#: desktopGrid.js:307
+msgid "Open Desktop in Files"
+msgstr "Ouvrir le bureau dans Fichiers"
+
+#: desktopGrid.js:308
+msgid "Open Terminal"
+msgstr "Ouvrir un terminal"
+
+#: desktopGrid.js:310
+msgid "Change Background…"
+msgstr "Changer l’arrière-plan…"
+
+#: desktopGrid.js:311
+msgid "Display Settings"
+msgstr "Configuration d’affichage"
+
+#: desktopGrid.js:312
+msgid "Settings"
+msgstr "Paramètres"
+
+#: desktopGrid.js:568
+msgid "Enter file name…"
+msgstr "Saisir un nom de fichier…"
+
+#: desktopGrid.js:572
+msgid "OK"
+msgstr "Valider"
+
+#: desktopGrid.js:578
+msgid "Cancel"
+msgstr "Annuler"
+
+#: fileItem.js:485
+msgid "Don’t Allow Launching"
+msgstr "Ne pas autoriser le lancement"
+
+#: fileItem.js:487
+msgid "Allow Launching"
+msgstr "Autoriser le lancement"
+
+#: fileItem.js:550
+msgid "Open"
+msgstr "Ouvrir"
+
+#: fileItem.js:553
+msgid "Cut"
+msgstr "Couper"
+
+#: fileItem.js:554
+msgid "Copy"
+msgstr "Copier"
+
+#: fileItem.js:556
+msgid "Rename"
+msgstr "Renommer"
+
+#: fileItem.js:557
+msgid "Move to Trash"
+msgstr "Mettre à la corbeille"
+
+#: fileItem.js:567
+msgid "Empty Trash"
+msgstr "Vider la corbeille"
+
+#: fileItem.js:573
+msgid "Properties"
+msgstr "Propriétés"
+
+#: fileItem.js:575
+msgid "Show in Files"
+msgstr "Montrer dans Fichiers"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Icon size"
+msgstr "Taille d’icônes"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:13
+msgid "Set the size for the desktop icons."
+msgstr "Définir la taille des icônes du bureau."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show personal folder"
+msgstr "Montrer le dossier personnel"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:18
+msgid "Show the personal folder in the desktop."
+msgstr "Montrer le dossier personnel sur le bureau."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show trash icon"
+msgstr "Montrer l’icône de la corbeille"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:23
+msgid "Show the trash icon in the desktop."
+msgstr "Montrer la corbeille sur le bureau."
+
+#~ msgid "Ok"
+#~ msgstr "Valider"
diff --git a/extensions/desktop-icons/po/fur.po b/extensions/desktop-icons/po/fur.po
new file mode 100644
index 0000000..3ab6129
--- /dev/null
+++ b/extensions/desktop-icons/po/fur.po
@@ -0,0 +1,187 @@
+# Friulian translation for desktop-icons.
+# Copyright (C) 2019 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Fabio Tomat <f t public gmail com>, 2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-03-01 12:11+0000\n"
+"PO-Revision-Date: 2019-03-05 22:20+0100\n"
+"Last-Translator: Fabio Tomat <f t public gmail com>\n"
+"Language-Team: Friulian <fur li org>\n"
+"Language: fur\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.2.1\n"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Gnûf non de cartele"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Cree"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "Anule"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "I nons des cartelis no puedin contignî il caratar “/”"
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Une cartele no pues jessi clamade “.”."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Une cartele no pues jessi clamade “..”."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Lis cartelis cul “.” al inizi dal lôr non a son platadis."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Un file o une cartele cul stes non e esist za."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Dimension pes iconis dal scritori"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Piçule"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standard"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Largje"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Mostre la cartele personâl intal scritori"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Mostre la icone de scovacere intal scritori"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Gnove cartele"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Tache"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Anule"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Torne fâ"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Mostre Scritori in File"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Vierç in Terminâl"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Cambie sfont…"
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "Impostazions visôr"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Impostazions"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Inserìs il non dal file…"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "Va ben"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "No sta permeti inviament"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Permet inviament"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Vierç"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Vierç cuntune altre aplicazion"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Taie"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Copie"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Cambie non..."
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "Sposte te scovacere"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Disvuede scovacere"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Propietâts"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "Mostre in File"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Dimension icone"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Stabilìs la dimension pes iconis dal scritori."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Mostre cartele personâl"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Mostre la cartele personâl intal scritori."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Mostre la icone de scovacere"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Mostre la icone de scovacere intal scritori."
diff --git a/extensions/desktop-icons/po/hr.po b/extensions/desktop-icons/po/hr.po
new file mode 100644
index 0000000..0d26696
--- /dev/null
+++ b/extensions/desktop-icons/po/hr.po
@@ -0,0 +1,186 @@
+# Croatian translation for gnome-shell-extension-desktop-icons
+# Copyright (c) 2019 Rosetta Contributors and Canonical Ltd 2019
+# This file is distributed under the same license as the gnome-shell-extension-desktop-icons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gnome-shell-extension-desktop-icons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2019-03-05 11:27+0000\n"
+"PO-Revision-Date: 2019-03-23 16:03+0000\n"
+"Last-Translator: gogo <trebelnik2 gmail com>\n"
+"Language-Team: Croatian <hr li org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2019-03-27 09:36+0000\n"
+"X-Generator: Launchpad (build 18910)\n"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Novi naziv mape"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Stvori"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "Odustani"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Naziv mape ne može sadržavati “/”."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Mapa se ne može nazvati “.”."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Mapa se ne može nazvati “..”."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Mape sa “.” na početku njihovih naziva su skrivene."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Već postoji datoteka ili mapa s tim nazivom."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Veličina ikona radne površine"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Male"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standardne"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Velike"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Prikaži osobnu mapu na radnoj površini"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Prikaži mapu smeća na radnoj površini"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Nova mapa"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Zalijepi"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Poništi"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Ponovi"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Prikaži radnu površinu u Datotekama"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Otvori u Terminalu"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Promijeni pozadinu…"
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "Postavke zaslona"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Postavke"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Upiši naziv datoteke…"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "U redu"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "Ne dopuštaj pokretanje"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Dopusti pokretanje"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Otvori"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Otvori s drugom aplikacijom"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Izreži"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Kopiraj"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Preimenuj…"
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "Premjesti u smeće"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Isprazni smeće"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Svojstva"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "Prikaži u Datotekama"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Veličina ikona"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Postavi veličinu ikona radne površine."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Prikaži osobnu mapu"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Prikaži osobnu mapu na radnoj površini."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Prikaži ikonu smeća"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Prikaži ikonu smeća na radnoj površini."
diff --git a/extensions/desktop-icons/po/hu.po b/extensions/desktop-icons/po/hu.po
new file mode 100644
index 0000000..ec294f2
--- /dev/null
+++ b/extensions/desktop-icons/po/hu.po
@@ -0,0 +1,189 @@
+# Hungarian translation for desktop-icons.
+# Copyright (C) 2019 The Free Software Foundation, inc.
+# This file is distributed under the same license as the desktop-icons package.
+#
+# Balázs Úr <ur.balazs at fsf dot hu>, 2019.
+msgid ""
+msgstr ""
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-i"
+"cons/issues\n"
+"POT-Creation-Date: 2019-03-01 12:11+0000\n"
+"PO-Revision-Date: 2019-03-07 23:45+0100\n"
+"Last-Translator: Balázs Úr <ur.balazs at fsf dot hu>\n"
+"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Lokalize 2.0\n"
+
+#: createFolderDialog.js:48
+#| msgid "New Folder"
+msgid "New folder name"
+msgstr "Új mappa neve"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Létrehozás"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "Mégse"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "A mappanevek nem tartalmazhatnak „/” karaktert."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Egy mappának nem lehet „.” a neve."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Egy mappának nem lehet „..” a neve."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "A „.” karakterrel kezdődő nevű mappák rejtettek."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Már van egy fájl vagy mappa azzal a névvel."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Az asztali ikonok mérete"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Kicsi"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Szabványos"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Nagy"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "A személyes mappa megjelenítése az asztalon"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "A kuka ikon megjelenítése az asztalon"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Új mappa"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Beillesztés"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Visszavonás"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Újra"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Asztal megjelenítése a Fájlokban"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Megnyitás terminálban"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Háttér megváltoztatása…"
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "Megjelenítés beállításai"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Beállítások"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Adjon meg egy fájlnevet…"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "Rendben"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "Ne engedélyezzen indítást"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Indítás engedélyezése"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Megnyitás"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Megnyitás egyéb alkalmazással"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Kivágás"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Másolás"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Átnevezés…"
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "Áthelyezés a Kukába"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Kuka ürítése"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Tulajdonságok"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "Megjelenítés a Fájlokban"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Ikonméret"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Az asztali ikonok méretének beállítása."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Személyes mappa megjelenítése"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "A személyes mappa megjelenítése az asztalon."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Kuka ikon megjelenítése"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "A kuka ikon megjelenítése az asztalon."
diff --git a/extensions/desktop-icons/po/id.po b/extensions/desktop-icons/po/id.po
new file mode 100644
index 0000000..b809c3d
--- /dev/null
+++ b/extensions/desktop-icons/po/id.po
@@ -0,0 +1,190 @@
+# Indonesian translation for desktop-icons.
+# Copyright (C) 2018 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Kukuh Syafaat <kukuhsyafaat gnome org>, 2018, 2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-03-01 12:11+0000\n"
+"PO-Revision-Date: 2019-03-02 19:13+0700\n"
+"Last-Translator: Kukuh Syafaat <kukuhsyafaat gnome org>\n"
+"Language-Team: Indonesian <gnome-l10n-id googlegroups com>\n"
+"Language: id\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.2.1\n"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Nama folder baru"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Buat"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "Batal"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Nama folder tak boleh memuat \"/\"."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Sebuah folder tak bisa dinamai \".\"."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Sebuah folder tak bisa dinamai \"..\"."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Folder dengan \".\" di awal nama mereka disembunyikan."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Folder dengan nama itu sudah ada."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Ukuran untuk ikon destop"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Kecil"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standar"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Besar"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Tampilkan folder pribadi di destop"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Tampilkan ikon tong sampah di destop"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Folder Baru"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Tempel"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Tak Jadi"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Jadi Lagi"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Tampilkan Destop pada Berkas"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Buka dalam Terminal"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Ubah Latar Belakang…"
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "Pengaturan Tampilan"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Pengaturan"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Masukkan nama berkas…"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "OK"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "Jangan Izinkan Peluncuran"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Izinkan Peluncuran"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Buka"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Buka Dengan Aplikasi Lain"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Potong"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Salin"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Ganti Nama…"
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "Pindahkan ke Tong Sampah"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Kosongkan Tong Sampah"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Properti"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "Tampilkan pada Berkas"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Ukuran ikon"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Set ukuran untuk ikon destop."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Tampilkan folder pribadi"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Tampilkan folder pribadi di destop."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Tampilkan ikon tong sampah"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Tampilkan ikon tong sampah di destop."
+
+#~ msgid "Huge"
+#~ msgstr "Sangat besar"
diff --git a/extensions/desktop-icons/po/it.po b/extensions/desktop-icons/po/it.po
new file mode 100644
index 0000000..5001da4
--- /dev/null
+++ b/extensions/desktop-icons/po/it.po
@@ -0,0 +1,189 @@
+# Italian translation for desktop-icons.
+# Copyright (C) 2019 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Massimo Branchini <max bra gtalk gmail com>, 2019.
+# Milo Casagrande <milo milo name>, 2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-03-01 12:11+0000\n"
+"PO-Revision-Date: 2019-03-12 09:51+0100\n"
+"Last-Translator: Milo Casagrande <milo milo name>\n"
+"Language-Team: Italian <tp lists linux it>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 2.2.1\n"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Nuova cartella"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Crea"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "Annulla"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "I nomi di cartelle non possono contenere il carattere «/»"
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Una cartella non può essere chiamata «.»."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Una cartella non può essere chiamata «..»."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Cartelle il cui nome inizia con «.» sono nascoste."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Esiste già un file o una cartella con quel nome."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Dimensione delle icone della scrivania"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Piccola"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Normale"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Grande"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Mostra la cartella personale sulla scrivania"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Mostra il cestino sulla scrivania"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Nuova cartella"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Incolla"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Annulla"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Ripeti"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Mostra la scrivania in File"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Apri in Terminale"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Cambia lo sfondo…"
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "Impostazioni dello schermo"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Impostazioni"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Indicare un nome per il file…"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "Ok"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "Non permettere l'esecuzione"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Permetti l'esecuzione"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Apri"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Apri con altra applicazione"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Taglia"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Copia"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Rinomina…"
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "Sposta nel cestino"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Svuota il cestino"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Proprietà"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "Mostra in File"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Dimensione dell'icona"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Imposta la grandezza delle icone della scrivania."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Mostra la cartella personale"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Mostra la cartella personale sulla scrivania."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Mostra il cestino"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Mostra il cestino sulla scrivania."
diff --git a/extensions/desktop-icons/po/ja.po b/extensions/desktop-icons/po/ja.po
new file mode 100644
index 0000000..3b103e0
--- /dev/null
+++ b/extensions/desktop-icons/po/ja.po
@@ -0,0 +1,187 @@
+# Japanese translation for desktop-icons.
+# Copyright (C) 2019 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# sicklylife <translation sicklylife jp>, 2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-03-14 12:56+0000\n"
+"PO-Revision-Date: 2019-03-15 06:30+0000\n"
+"Last-Translator: sicklylife <translation sicklylife jp>\n"
+"Language-Team: Japanese <gnome-translation gnome gr jp>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "新しいフォルダー名"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "作成"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "キャンセル"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "“/”は、フォルダー名に含められません。"
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "“.”という名前をフォルダーに付けられません。"
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "“..”という名前をフォルダーに付けられません。"
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "名前が“.”で始まるフォルダーは、隠しフォルダーになります。"
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "その名前のファイルかフォルダーがすでに存在します。"
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "デスクトップアイコンのサイズ"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "小さい"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "標準"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "大きい"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "デスクトップにホームフォルダーを表示する"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "デスクトップにゴミ箱を表示する"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "新しいフォルダー"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "貼り付け"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "元に戻す"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "やり直す"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "“ファイル”でデスクトップを表示する"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "端末を開く"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "背景を変更する…"
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "ディスプレイの設定"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "設定"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "ファイル名を入力してください…"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "OK"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "起動を許可しない"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "起動を許可する"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "開く"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "別のアプリケーションで開く"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "切り取り"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "コピー"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "名前の変更…"
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "ゴミ箱へ移動する"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "ゴミ箱を空にする"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "プロパティ"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "“ファイル”で表示する"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "アイコンサイズ"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "デスクトップのアイコンサイズを設定します。"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "ホームフォルダーを表示する"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "デスクトップにホームフォルダーを表示します。"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "ゴミ箱アイコンを表示する"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "デスクトップにゴミ箱のアイコンを表示します。"
diff --git a/extensions/desktop-icons/po/meson.build b/extensions/desktop-icons/po/meson.build
new file mode 100644
index 0000000..b2e9e42
--- /dev/null
+++ b/extensions/desktop-icons/po/meson.build
@@ -0,0 +1 @@
+i18n.gettext (meson.project_name (), preset: 'glib')
diff --git a/extensions/desktop-icons/po/nl.po b/extensions/desktop-icons/po/nl.po
new file mode 100644
index 0000000..b2f7dab
--- /dev/null
+++ b/extensions/desktop-icons/po/nl.po
@@ -0,0 +1,188 @@
+# Dutch translation for desktop-icons.
+# Copyright (C) 2019 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Nathan Follens <nthn unseen is>, 2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-03-01 12:11+0000\n"
+"PO-Revision-Date: 2019-03-04 19:46+0100\n"
+"Last-Translator: Nathan Follens <nthn unseen is>\n"
+"Language-Team: Dutch <gnome-nl-list gnome org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 2.2.1\n"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Nieuwe mapnaam"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Aanmaken"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "Annuleren"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Mapnamen kunnen geen ‘/’ bevatten."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Een map kan niet ‘.’ worden genoemd."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Een map kan niet ‘..’ worden genoemd."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Mappen waarvan de naam begint met ‘.’ zijn verborgen."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Er bestaat al een bestand of map met die naam."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Grootte van bureaubladpictogrammen"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Klein"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standaard"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Groot"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Toon de persoonlijke map op het bureaublad"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Toon het prullenbakpictogram op het bureaublad"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Nieuwe map"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Plakken"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Ongedaan maken"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Opnieuw"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Bureaublad tonen in Bestanden"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Openen in terminalvenster"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Achtergrond aanpassen…"
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "Scherminstellingen"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Instellingen"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Voer bestandsnaam in…"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "Oké"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "Toepassingen starten niet toestaan"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Toepassingen starten toestaan"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Openen"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Met andere toepassing openen"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Knippen"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Kopiëren"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Hernoemen…"
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "Verplaatsen naar prullenbak"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Prullenbak legen"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Eigenschappen"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "Tonen in Bestanden"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Pictogramgrootte"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Stel de grootte van de bureaubladpictogrammen in."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Persoonlijke map tonen"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Toon de persoonlijke map op het bureaublad."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Prullenbakpictogram tonen"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Toon het prullenbakpictogram op het bureaublad."
diff --git a/extensions/desktop-icons/po/pl.po b/extensions/desktop-icons/po/pl.po
new file mode 100644
index 0000000..f57b3be
--- /dev/null
+++ b/extensions/desktop-icons/po/pl.po
@@ -0,0 +1,193 @@
+# Polish translation for desktop-icons.
+# Copyright © 2018-2019 the desktop-icons authors.
+# This file is distributed under the same license as the desktop-icons package.
+# Piotr Drąg <piotrdrag gmail com>, 2018-2019.
+# Aviary.pl <community-poland mozilla org>, 2018-2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: desktop-icons\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-04-29 14:11+0000\n"
+"PO-Revision-Date: 2019-05-01 13:03+0200\n"
+"Last-Translator: Piotr Drąg <piotrdrag gmail com>\n"
+"Language-Team: Polish <community-poland mozilla org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Nazwa nowego katalogu"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Utwórz"
+
+#: createFolderDialog.js:74 desktopGrid.js:592
+msgid "Cancel"
+msgstr "Anuluj"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Nazwy katalogów nie mogą zawierać znaku „/”."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Katalog nie może mieć nazwy „.”."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Katalog nie może mieć nazwy „..”."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Katalogi z „.” na początku nazwy są ukryte."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Plik lub katalog o tej nazwie już istnieje."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Rozmiar ikon na pulpicie"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Mały"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standardowy"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Duży"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Katalog domowy na pulpicie"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Kosz na pulpicie"
+
+#: desktopGrid.js:323
+msgid "New Folder"
+msgstr "Nowy katalog"
+
+#: desktopGrid.js:325
+msgid "Paste"
+msgstr "Wklej"
+
+#: desktopGrid.js:326
+msgid "Undo"
+msgstr "Cofnij"
+
+#: desktopGrid.js:327
+msgid "Redo"
+msgstr "Ponów"
+
+#: desktopGrid.js:329
+msgid "Show Desktop in Files"
+msgstr "Wyświetl pulpit w menedżerze plików"
+
+#: desktopGrid.js:330 fileItem.js:610
+msgid "Open in Terminal"
+msgstr "Otwórz w terminalu"
+
+#: desktopGrid.js:332
+msgid "Change Background…"
+msgstr "Zmień tło…"
+
+#: desktopGrid.js:334
+msgid "Display Settings"
+msgstr "Ustawienia ekranu"
+
+#: desktopGrid.js:335
+msgid "Settings"
+msgstr "Ustawienia"
+
+#: desktopGrid.js:582
+msgid "Enter file name…"
+msgstr "Nazwa pliku…"
+
+#: desktopGrid.js:586
+msgid "OK"
+msgstr "OK"
+
+#: desktopIconsUtil.js:61
+msgid "Command not found"
+msgstr "Nie odnaleziono polecenia"
+
+#: fileItem.js:494
+msgid "Don’t Allow Launching"
+msgstr "Nie zezwalaj na uruchamianie"
+
+#: fileItem.js:496
+msgid "Allow Launching"
+msgstr "Zezwól na uruchamianie"
+
+#: fileItem.js:578
+msgid "Open"
+msgstr "Otwórz"
+
+#: fileItem.js:582
+msgid "Open With Other Application"
+msgstr "Otwórz za pomocą innego programu"
+
+#: fileItem.js:586
+msgid "Cut"
+msgstr "Wytnij"
+
+#: fileItem.js:587
+msgid "Copy"
+msgstr "Skopiuj"
+
+#: fileItem.js:589
+msgid "Rename…"
+msgstr "Zmień nazwę…"
+
+#: fileItem.js:590
+msgid "Move to Trash"
+msgstr "Przenieś do kosza"
+
+#: fileItem.js:600
+msgid "Empty Trash"
+msgstr "Opróżnij kosz"
+
+#: fileItem.js:606
+msgid "Properties"
+msgstr "Właściwości"
+
+#: fileItem.js:608
+msgid "Show in Files"
+msgstr "Wyświetl w menedżerze plików"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Rozmiar ikon"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Ustawia rozmiar ikon na pulpicie."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Katalog domowy"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Wyświetla katalog domowy na pulpicie."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Kosz"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Wyświetla kosz na pulpicie."
diff --git a/extensions/desktop-icons/po/pt_BR.po b/extensions/desktop-icons/po/pt_BR.po
new file mode 100644
index 0000000..8d61c72
--- /dev/null
+++ b/extensions/desktop-icons/po/pt_BR.po
@@ -0,0 +1,199 @@
+# Brazilian Portuguese translation for desktop-icons.
+# Copyright (C) 2019 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Enrico Nicoletto <liverig gmail com>, 2018.
+# Rafael Fontenelle <rafaelff gnome org>, 2018-2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-04-29 14:11+0000\n"
+"PO-Revision-Date: 2019-04-29 17:35-0300\n"
+"Last-Translator: Rafael Fontenelle <rafaelff gnome org>\n"
+"Language-Team: Brazilian Portuguese <gnome-pt_br-list gnome org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"X-Generator: Gtranslator 3.32.0\n"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Nome da nova pasta"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Criar"
+
+#: createFolderDialog.js:74 desktopGrid.js:592
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Nomes de pastas não podem conter “/”."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Uma pasta não pode ser chamada “.”."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Uma pasta não pode ser chamada “..”."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Pastas com “.” no começo de seus nomes são ocultas."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Já existe um arquivo ou uma pasta com esse nome."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Tamanho para os ícones da área de trabalho"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Pequeno"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Padrão"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Grande"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Mostrar a pasta pessoal na área de trabalho"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Mostrar o ícone da lixeira na área de trabalho"
+
+#: desktopGrid.js:323
+msgid "New Folder"
+msgstr "Nova pasta"
+
+#: desktopGrid.js:325
+msgid "Paste"
+msgstr "Colar"
+
+#: desktopGrid.js:326
+msgid "Undo"
+msgstr "Desfazer"
+
+#: desktopGrid.js:327
+msgid "Redo"
+msgstr "Refazer"
+
+#: desktopGrid.js:329
+msgid "Show Desktop in Files"
+msgstr "Mostrar a área de trabalho no Arquivos"
+
+#: desktopGrid.js:330 fileItem.js:610
+msgid "Open in Terminal"
+msgstr "Abrir no terminal"
+
+#: desktopGrid.js:332
+msgid "Change Background…"
+msgstr "Alterar plano de fundo…"
+
+#: desktopGrid.js:334
+msgid "Display Settings"
+msgstr "Configurações de exibição"
+
+#: desktopGrid.js:335
+msgid "Settings"
+msgstr "Configurações"
+
+#: desktopGrid.js:582
+msgid "Enter file name…"
+msgstr "Insira um nome de arquivo…"
+
+#: desktopGrid.js:586
+msgid "OK"
+msgstr "OK"
+
+#: desktopIconsUtil.js:61
+msgid "Command not found"
+msgstr "Comando não encontrado"
+
+#: fileItem.js:494
+msgid "Don’t Allow Launching"
+msgstr "Não permitir iniciar"
+
+#: fileItem.js:496
+msgid "Allow Launching"
+msgstr "Permitir iniciar"
+
+#: fileItem.js:578
+msgid "Open"
+msgstr "Abrir"
+
+#: fileItem.js:582
+msgid "Open With Other Application"
+msgstr "Abrir com outro aplicativo"
+
+#: fileItem.js:586
+msgid "Cut"
+msgstr "Recortar"
+
+#: fileItem.js:587
+msgid "Copy"
+msgstr "Copiar"
+
+#: fileItem.js:589
+msgid "Rename…"
+msgstr "Renomear…"
+
+#: fileItem.js:590
+msgid "Move to Trash"
+msgstr "Mover para a lixeira"
+
+#: fileItem.js:600
+msgid "Empty Trash"
+msgstr "Esvaziar lixeira"
+
+#: fileItem.js:606
+msgid "Properties"
+msgstr "Propriedades"
+
+#: fileItem.js:608
+msgid "Show in Files"
+msgstr "Mostrar no Arquivos"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Tamanho do ícone"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Define o tamanho para os ícones da área de trabalho."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Mostrar pasta pessoal"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Mostra a pasta pessoal na área de trabalho."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Mostrar ícone da lixeira"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Mostra o ícone da lixeira na área de trabalho."
+
+#~ msgid "Huge"
+#~ msgstr "Enorme"
+
+#~ msgid "Ok"
+#~ msgstr "Ok"
diff --git a/extensions/desktop-icons/po/ru.po b/extensions/desktop-icons/po/ru.po
new file mode 100644
index 0000000..4094f16
--- /dev/null
+++ b/extensions/desktop-icons/po/ru.po
@@ -0,0 +1,153 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Eaglers <eaglersdeveloper gmail com>, 2018.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2018-11-22 08:42+0000\n"
+"PO-Revision-Date: 2018-11-22 22:02+0300\n"
+"Last-Translator: Stas Solovey <whats_up tut by>\n"
+"Language-Team: Russian <gnome-cyr gnome org>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Poedit 2.2\n"
+
+#: prefs.js:89
+msgid "Size for the desktop icons"
+msgstr "Размер значков"
+
+#: prefs.js:89
+msgid "Small"
+msgstr "Маленький"
+
+#: prefs.js:89
+msgid "Standard"
+msgstr "Стандартный"
+
+#: prefs.js:89
+msgid "Large"
+msgstr "Большой"
+
+#: prefs.js:89
+msgid "Huge"
+msgstr "Огромный"
+
+#: prefs.js:90
+msgid "Show the personal folder in the desktop"
+msgstr "Показывать домашнюю папку на рабочем столе"
+
+#: prefs.js:91
+msgid "Show the trash icon in the desktop"
+msgstr "Показывать «Корзину» на рабочем столе"
+
+#: desktopGrid.js:185 desktopGrid.js:304
+msgid "New Folder"
+msgstr "Создать папку"
+
+#: desktopGrid.js:306
+msgid "Paste"
+msgstr "Вставить"
+
+#: desktopGrid.js:307
+msgid "Undo"
+msgstr "Отменить"
+
+#: desktopGrid.js:308
+msgid "Redo"
+msgstr "Повторить"
+
+#: desktopGrid.js:310
+msgid "Open Desktop in Files"
+msgstr "Открыть «Рабочий стол» в «Файлах»"
+
+#: desktopGrid.js:311
+msgid "Open Terminal"
+msgstr "Открыть терминал"
+
+#: desktopGrid.js:313
+msgid "Change Background…"
+msgstr "Изменить фон…"
+
+#: desktopGrid.js:314
+msgid "Display Settings"
+msgstr "Настройки дисплея"
+
+#: desktopGrid.js:315
+msgid "Settings"
+msgstr "Параметры"
+
+#: desktopGrid.js:569
+msgid "Enter file name…"
+msgstr "Ввести имя файла…"
+
+#: desktopGrid.js:573
+msgid "Ok"
+msgstr "ОК"
+
+#: desktopGrid.js:579
+msgid "Cancel"
+msgstr "Отмена"
+
+#: fileItem.js:390
+msgid "Open"
+msgstr "Открыть"
+
+#: fileItem.js:393
+msgid "Cut"
+msgstr "Вырезать"
+
+#: fileItem.js:394
+msgid "Copy"
+msgstr "Вставить"
+
+#: fileItem.js:395
+msgid "Rename"
+msgstr "Переименовать"
+
+#: fileItem.js:396
+msgid "Move to Trash"
+msgstr "Переместить в корзину"
+
+#: fileItem.js:400
+msgid "Empty trash"
+msgstr "Очистить корзину"
+
+#: fileItem.js:406
+msgid "Properties"
+msgstr "Свойства"
+
+#: fileItem.js:408
+msgid "Show in Files"
+msgstr "Показать в «Файлах»"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Icon size"
+msgstr "Размер значков"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:13
+msgid "Set the size for the desktop icons."
+msgstr "Установить размер значков на рабочем столе."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show personal folder"
+msgstr "Показывать домашнюю папку"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:18
+msgid "Show the personal folder in the desktop."
+msgstr "Показывать значок домашней папки на рабочем столе."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show trash icon"
+msgstr "Показывать значок корзины"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:23
+msgid "Show the trash icon in the desktop."
+msgstr "Показывать значок корзины на рабочем столе."
diff --git a/extensions/desktop-icons/po/sv.po b/extensions/desktop-icons/po/sv.po
new file mode 100644
index 0000000..928cbe9
--- /dev/null
+++ b/extensions/desktop-icons/po/sv.po
@@ -0,0 +1,197 @@
+# Swedish translation for desktop-icons.
+# Copyright © 2018, 2019 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Anders Jonsson <anders jonsson norsjovallen se>, 2018, 2019.
+# Josef Andersson <l10nl18nsweja gmail com>, 2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-03-01 12:11+0000\n"
+"PO-Revision-Date: 2019-03-11 21:50+0100\n"
+"Last-Translator: Anders Jonsson <anders jonsson norsjovallen se>\n"
+"Language-Team: Swedish <tp-sv listor tp-sv se>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 2.2.1\n"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Nytt mappnamn"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Skapa"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Mappnamn kan inte innehålla ”/”."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "En mapp kan inte kallas ”.”."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "En mapp kan inte kallas ”..”."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Mappar med ”.” i början på sitt namn är dolda."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Det finns redan en fil eller mapp med det namnet"
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Storlek för skrivbordsikonerna"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Liten"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standard"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Stor"
+
+# TODO: *ON* the desktop?
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Visa den personliga mappen på skrivbordet"
+
+# TODO: *ON* the desktop?
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Visa papperskorgsikonen på skrivbordet"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Ny mapp"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Klistra in"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Ångra"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Gör om"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Visa skrivbord i Filer"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Öppna i terminal"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Ändra bakgrund…"
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "Visningsinställningar"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Inställningar"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Ange filnamn…"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "OK"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "Tillåt ej programstart"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Tillåt programstart"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Öppna"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Öppna med annat program"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Klipp ut"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Kopiera"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Byt namn…"
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "Flytta till papperskorgen"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Töm papperskorgen"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Egenskaper"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "Visa i Filer"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Ikonstorlek"
+
+# TODO: *ON* the desktop?
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Ställ in storleken för skrivbordsikonerna."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Visa personlig mapp"
+
+# TODO: *ON* the desktop?
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Visa den personliga mappen på skrivbordet."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Visa papperskorgsikon"
+
+# TODO: *ON* the desktop?
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Visa papperskorgsikonen på skrivbordet."
+
+#~ msgid "Huge"
+#~ msgstr "Enorm"
diff --git a/extensions/desktop-icons/po/tr.po b/extensions/desktop-icons/po/tr.po
new file mode 100644
index 0000000..2e5f5a7
--- /dev/null
+++ b/extensions/desktop-icons/po/tr.po
@@ -0,0 +1,191 @@
+# Turkish translation for desktop-icons.
+# Copyright (C) 2000-2019 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+#
+# Sabri Ünal <libreajans gmail com>, 2019.
+# Serdar Sağlam <teknomobil yandex com>, 2019
+# Emin Tufan Çetin <etcetin gmail com>, 2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-03-09 14:47+0000\n"
+"PO-Revision-Date: 2019-03-13 13:43+0300\n"
+"Last-Translator: Emin Tufan Çetin <etcetin gmail com>\n"
+"Language-Team: Türkçe <gnome-turk gnome org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Gtranslator 3.30.1\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Yeni klasör adı"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Oluştur"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "İptal"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Klasör adları “/” içeremez."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Bir klasör “.” olarak adlandırılamaz."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Bir klasör “..” olarak adlandırılamaz."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Adlarının başında “.” bulunan klasörler gizlenir."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Zaten bu adda bir dosya veya klasör var."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Masaüstü simgeleri boyutu"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Küçük"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standart"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Büyük"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Kişisel klasörü masaüstünde göster"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Çöp kutusunu masaüstünde göster"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Yeni Klasör"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Yapıştır"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Geri Al"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Yinele"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Masaüstünü Dosyalarʼda Göster"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Uçbirimde Aç"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Arka Planı Değiştir…"
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "Görüntü Ayarları"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Ayarlar"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Dosya adını gir…"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "Tamam"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "Başlatmaya İzin Verme"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Başlatmaya İzin Ver"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Aç"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Başka Uygulamayla Aç"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Kes"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Kopyala"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Yeniden Adlandır…"
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "Çöpe Taşı"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Çöpü Boşalt"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Özellikler"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "Dosyalarʼda Göster"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Simge boyutu"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Masaüstü simgelerinin boyutunu ayarla."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Kişisel klasörü göster"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Kişisel klasörü masaüstünde göster."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Çöp kutusunu göster"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Çöp kutusu simgesini masaüstünde göster."
diff --git a/extensions/desktop-icons/po/zh_TW.po b/extensions/desktop-icons/po/zh_TW.po
new file mode 100644
index 0000000..8ce4ab9
--- /dev/null
+++ b/extensions/desktop-icons/po/zh_TW.po
@@ -0,0 +1,135 @@
+# Chinese (Taiwan) translation for desktop-icons.
+# Copyright (C) 2018 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Yi-Jyun Pan <pan93412 gmail com>, 2018.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2018-10-22 14:12+0000\n"
+"PO-Revision-Date: 2018-10-24 21:31+0800\n"
+"Language-Team: Chinese (Taiwan) <chinese-l10n googlegroups com>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Last-Translator: pan93412 <pan93412 gmail com>\n"
+"X-Generator: Poedit 2.2\n"
+
+#: prefs.js:89
+msgid "Size for the desktop icons"
+msgstr "桌面圖示的大小"
+
+#: prefs.js:89
+msgid "Small"
+msgstr "小圖示"
+
+#: prefs.js:89
+msgid "Standard"
+msgstr "標準大小圖示"
+
+#: prefs.js:89
+msgid "Large"
+msgstr "大圖示"
+
+#: prefs.js:89
+msgid "Huge"
+msgstr "巨大圖示"
+
+#: prefs.js:90
+msgid "Show the personal folder in the desktop"
+msgstr "在桌面顯示個人資料夾"
+
+#: prefs.js:91
+msgid "Show the trash icon in the desktop"
+msgstr "在桌面顯示垃圾桶圖示"
+
+#: desktopGrid.js:178 desktopGrid.js:297
+msgid "New Folder"
+msgstr "新增資料夾"
+
+#: desktopGrid.js:299
+msgid "Paste"
+msgstr "貼上"
+
+#: desktopGrid.js:300
+msgid "Undo"
+msgstr "復原"
+
+#: desktopGrid.js:301
+msgid "Redo"
+msgstr "重做"
+
+#: desktopGrid.js:303
+msgid "Open Desktop in Files"
+msgstr "在《檔案》中開啟桌面"
+
+#: desktopGrid.js:304
+msgid "Open Terminal"
+msgstr "開啟終端器"
+
+#: desktopGrid.js:306
+msgid "Change Background…"
+msgstr "變更背景圖片…"
+
+#: desktopGrid.js:307
+msgid "Display Settings"
+msgstr "顯示設定"
+
+#: desktopGrid.js:308
+msgid "Settings"
+msgstr "設定"
+
+#: fileItem.js:223
+msgid "Open"
+msgstr "開啟"
+
+#: fileItem.js:226
+msgid "Cut"
+msgstr "剪下"
+
+#: fileItem.js:227
+msgid "Copy"
+msgstr "複製"
+
+#: fileItem.js:228
+msgid "Move to Trash"
+msgstr "移動到垃圾桶"
+
+#: fileItem.js:232
+msgid "Empty trash"
+msgstr "清空回收桶"
+
+#: fileItem.js:238
+msgid "Properties"
+msgstr "屬性"
+
+#: fileItem.js:240
+msgid "Show in Files"
+msgstr "在《檔案》中顯示"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Icon size"
+msgstr "圖示大小"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:13
+msgid "Set the size for the desktop icons."
+msgstr "設定桌面圖示的大小。"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show personal folder"
+msgstr "顯示個人資料夾"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:18
+msgid "Show the personal folder in the desktop."
+msgstr "在桌面顯示個人資料夾。"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show trash icon"
+msgstr "顯示垃圾桶圖示"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:23
+msgid "Show the trash icon in the desktop."
+msgstr "在桌面顯示垃圾桶圖示。"
diff --git a/extensions/desktop-icons/prefs.js b/extensions/desktop-icons/prefs.js
new file mode 100644
index 0000000..4b8d986
--- /dev/null
+++ b/extensions/desktop-icons/prefs.js
@@ -0,0 +1,159 @@
+
+/* Desktop Icons GNOME Shell extension
+ *
+ * Copyright (C) 2017 Carlos Soriano <csoriano redhat com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+const Gtk = imports.gi.Gtk;
+const GObject = imports.gi.GObject;
+const Gio = imports.gi.Gio;
+const GioSSS = Gio.SettingsSchemaSource;
+const ExtensionUtils = imports.misc.extensionUtils;
+const Gettext = imports.gettext;
+
+const Config = imports.misc.config;
+
+var _ = Gettext.domain('desktop-icons').gettext;
+
+const SCHEMA_NAUTILUS = 'org.gnome.nautilus.preferences';
+const SCHEMA_GTK = 'org.gtk.Settings.FileChooser';
+const SCHEMA = 'org.gnome.shell.extensions.desktop-icons';
+
+const ICON_SIZE = { 'small': 48, 'standard': 64, 'large': 96 };
+const ICON_WIDTH = { 'small': 120, 'standard': 128, 'large': 128 };
+const ICON_HEIGHT = { 'small': 98, 'standard': 114, 'large': 146 };
+
+var FileType = {
+ NONE: null,
+ USER_DIRECTORY_HOME: 'show-home',
+ USER_DIRECTORY_TRASH: 'show-trash',
+}
+
+var nautilusSettings;
+var gtkSettings;
+var settings;
+// This is already in Nautilus settings, so it should not be made tweakable here
+var CLICK_POLICY_SINGLE = false;
+
+function initTranslations() {
+ let extension = ExtensionUtils.getCurrentExtension();
+
+ let localedir = extension.dir.get_child('locale');
+ if (localedir.query_exists(null))
+ Gettext.bindtextdomain('desktop-icons', localedir.get_path());
+ else
+ Gettext.bindtextdomain('desktop-icons', Config.LOCALEDIR);
+}
+
+function init() {
+ let schemaSource = GioSSS.get_default();
+ let schemaGtk = schemaSource.lookup(SCHEMA_GTK, true);
+ gtkSettings = new Gio.Settings({ settings_schema: schemaGtk });
+ let schemaObj = schemaSource.lookup(SCHEMA_NAUTILUS, true);
+ if (!schemaObj) {
+ nautilusSettings = null;
+ } else {
+ nautilusSettings = new Gio.Settings({ settings_schema: schemaObj });;
+ nautilusSettings.connect('changed', _onNautilusSettingsChanged);
+ _onNautilusSettingsChanged();
+ }
+ settings = get_schema(SCHEMA);
+}
+
+function get_schema(schema) {
+ let extension = ExtensionUtils.getCurrentExtension();
+
+ // check if this extension was built with "make zip-file", and thus
+ // has the schema files in a subfolder
+ // otherwise assume that extension has been installed in the
+ // same prefix as gnome-shell (and therefore schemas are available
+ // in the standard folders)
+ let schemaDir = extension.dir.get_child('schemas');
+ let schemaSource;
+ if (schemaDir.query_exists(null))
+ schemaSource = GioSSS.new_from_directory(schemaDir.get_path(), GioSSS.get_default(), false);
+ else
+ schemaSource = GioSSS.get_default();
+
+ let schemaObj = schemaSource.lookup(schema, true);
+ if (!schemaObj)
+ throw new Error('Schema ' + schema + ' could not be found for extension ' + extension.metadata.uuid
+ '. Please check your installation.');
+
+ return new Gio.Settings({ settings_schema: schemaObj });
+}
+
+function buildPrefsWidget() {
+ initTranslations();
+ let frame = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, border_width: 10, spacing: 10 });
+
+ frame.add(buildSelector('icon-size', _("Size for the desktop icons"), { 'small': _("Small"), 'standard':
_("Standard"), 'large': _("Large") }));
+ frame.add(buildSwitcher('show-home', _("Show the personal folder in the desktop")));
+ frame.add(buildSwitcher('show-trash', _("Show the trash icon in the desktop")));
+ frame.show_all();
+ return frame;
+}
+
+function buildSwitcher(key, labelText) {
+ let hbox = new Gtk.Box({ orientation: Gtk.Orientation.HORIZONTAL, spacing: 10 });
+ let label = new Gtk.Label({ label: labelText, xalign: 0 });
+ let switcher = new Gtk.Switch({ active: settings.get_boolean(key) });
+ settings.bind(key, switcher, 'active', 3);
+ hbox.pack_start(label, true, true, 0);
+ hbox.add(switcher);
+ return hbox;
+}
+
+function buildSelector(key, labelText, elements) {
+ let listStore = new Gtk.ListStore();
+ listStore.set_column_types ([GObject.TYPE_STRING, GObject.TYPE_STRING]);
+ let schemaKey = settings.settings_schema.get_key(key);
+ let values = schemaKey.get_range().get_child_value(1).get_child_value(0).get_strv();
+ for (let val of values) {
+ let iter = listStore.append();
+ let visibleText = val;
+ if (visibleText in elements)
+ visibleText = elements[visibleText];
+ listStore.set (iter, [0, 1], [visibleText, val]);
+ }
+ let hbox = new Gtk.Box({ orientation: Gtk.Orientation.HORIZONTAL, spacing: 10 });
+ let label = new Gtk.Label({ label: labelText, xalign: 0 });
+ let combo = new Gtk.ComboBox({model: listStore});
+ let rendererText = new Gtk.CellRendererText();
+ combo.pack_start (rendererText, false);
+ combo.add_attribute (rendererText, 'text', 0);
+ combo.set_id_column(1);
+ settings.bind(key, combo, 'active-id', 3);
+ hbox.pack_start(label, true, true, 0);
+ hbox.add(combo);
+ return hbox;
+}
+
+function _onNautilusSettingsChanged() {
+ CLICK_POLICY_SINGLE = nautilusSettings.get_string('click-policy') == 'single';
+}
+
+function get_icon_size() {
+ // this one doesn't need scaling because Gnome Shell automagically scales the icons
+ return ICON_SIZE[settings.get_string('icon-size')];
+}
+
+function get_desired_width(scale_factor) {
+ return ICON_WIDTH[settings.get_string('icon-size')] * scale_factor;
+}
+
+function get_desired_height(scale_factor) {
+ return ICON_HEIGHT[settings.get_string('icon-size')] * scale_factor;
+}
diff --git a/extensions/desktop-icons/schemas/meson.build b/extensions/desktop-icons/schemas/meson.build
new file mode 100644
index 0000000..2b17916
--- /dev/null
+++ b/extensions/desktop-icons/schemas/meson.build
@@ -0,0 +1,6 @@
+gnome.compile_schemas()
+
+install_data(
+ 'org.gnome.shell.extensions.desktop-icons.gschema.xml',
+ install_dir : schema_dir
+)
diff --git a/extensions/desktop-icons/schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml
b/extensions/desktop-icons/schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml
new file mode 100644
index 0000000..bb4e50f
--- /dev/null
+++ b/extensions/desktop-icons/schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schemalist gettext-domain="desktop-icons">
+ <enum id="org.gnome.shell.extension.desktop-icons.ZoomLevel">
+ <value value="0" nick="small"/>
+ <value value="1" nick="standard"/>
+ <value value="2" nick="large"/>
+ </enum>
+ <schema path="/org/gnome/shell/extensions/desktop-icons/" id="org.gnome.shell.extensions.desktop-icons">
+ <key name="icon-size" enum="org.gnome.shell.extension.desktop-icons.ZoomLevel">
+ <default>'standard'</default>
+ <summary>Icon size</summary>
+ <description>Set the size for the desktop icons.</description>
+ </key>
+ <key type="b" name="show-home">
+ <default>true</default>
+ <summary>Show personal folder</summary>
+ <description>Show the personal folder in the desktop.</description>
+ </key>
+ <key type="b" name="show-trash">
+ <default>true</default>
+ <summary>Show trash icon</summary>
+ <description>Show the trash icon in the desktop.</description>
+ </key>
+ </schema>
+</schemalist>
diff --git a/extensions/desktop-icons/stylesheet.css b/extensions/desktop-icons/stylesheet.css
new file mode 100644
index 0000000..17d4b32
--- /dev/null
+++ b/extensions/desktop-icons/stylesheet.css
@@ -0,0 +1,38 @@
+.file-item {
+ padding: 4px;
+ border: 1px;
+ margin: 1px;
+}
+
+.file-item:hover {
+ background-color: rgba(238, 238, 238, 0.2);
+}
+
+.name-label {
+ text-shadow: 1px 1px black;
+ color: white;
+ text-align: center;
+}
+
+.draggable {
+ background-color: red;
+}
+
+.rename-popup {
+ min-width: 300px;
+ margin: 6px;
+}
+
+.create-folder-dialog-entry {
+ width: 20em;
+ margin-bottom: 6px;
+}
+
+.create-folder-dialog-label {
+ padding-bottom: .4em;
+}
+
+.create-folder-dialog-error-box {
+ padding-top: 16px;
+ spacing: 6px;
+}
diff --git a/meson.build b/meson.build
index cf855a0..6e8c41f 100644
--- a/meson.build
+++ b/meson.build
@@ -33,6 +33,7 @@ uuid_suffix = '@gnome-shell-extensions.gcampax.github.com'
classic_extensions = [
'apps-menu',
+ 'desktop-icons',
'places-menu',
'launch-new-instance',
'window-list'
diff --git a/po/ca.po b/po/ca.po
index f3be74c..53a097f 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -1,11 +1,19 @@
+# #-#-#-#-# ca.po (gnome-shell-extensions) #-#-#-#-#
# Catalan translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Jordi Mas i Hernandez <jmas softcatala org>, 2011.
# Gil Forcada <gilforcada guifi net>, 2012, 2013, 2014.
#
+# #-#-#-#-# ca.po (1.0) #-#-#-#-#
+#
+# This file is distributed under the same license as the PACKAGE package.
+# Jordi Mas i Hernandez <jmas softcatala org>, 2019
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# ca.po (gnome-shell-extensions) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
@@ -18,6 +26,20 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"#-#-#-#-# ca.po (1.0) #-#-#-#-#\n"
+"Project-Id-Version: 1.0\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-07-22 10:24+0200\n"
+"PO-Revision-Date: 2019-07-22 10:24+0200\n"
+"Language: ca\n"
+"Language-Team: Catalan <info softcatala org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Last-Translator: Jordi Mas <jmas softcatala org>\n"
+"Language: ca\n"
+"X-Generator: Poedit 2.2.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -362,6 +384,178 @@ msgstr "Nom"
msgid "Workspace %d"
msgstr "Espai de treball %d"
+#: ../createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Nom de la carpeta nou"
+
+#: ../createFolderDialog.js:72
+msgid "Create"
+msgstr "Crea"
+
+#: ../createFolderDialog.js:74 ../desktopGrid.js:592
+msgid "Cancel"
+msgstr "Cancel·la"
+
+#: ../createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Els noms de carpetes no poden contenir «/»."
+
+#: ../createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Una carpeta no es pot anomenar «.»."
+
+#: ../createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Una carpeta no es pot anomenar «..»."
+
+#: ../createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Les carpetes amb un «.» a l'inici del seu nom s'amaguen."
+
+#: ../createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Ja existeix un fitxer o carpeta amb aquest nom."
+
+#: ../prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Mida de les icones d'escriptori"
+
+#: ../prefs.js:102
+msgid "Small"
+msgstr "Petita"
+
+#: ../prefs.js:102
+msgid "Standard"
+msgstr "Estàndard"
+
+#: ../prefs.js:102
+msgid "Large"
+msgstr "Gran"
+
+#: ../prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Mostra la carpeta personal a l'escriptori"
+
+#: ../prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Mostra la icona de la paperera a l'escriptori"
+
+#: ../desktopGrid.js:323
+msgid "New Folder"
+msgstr "Carpeta nova"
+
+#: ../desktopGrid.js:325
+msgid "Paste"
+msgstr "Enganxa"
+
+#: ../desktopGrid.js:326
+msgid "Undo"
+msgstr "Desfés"
+
+#: ../desktopGrid.js:327
+msgid "Redo"
+msgstr "Refés"
+
+#: ../desktopGrid.js:329
+msgid "Show Desktop in Files"
+msgstr "Mostra l'escriptori al Fitxers"
+
+#: ../desktopGrid.js:330 ../fileItem.js:612
+msgid "Open in Terminal"
+msgstr "Obre al Terminal"
+
+#: ../desktopGrid.js:332
+msgid "Change Background…"
+msgstr "Canvia el fons de l'escriptori…"
+
+#: ../desktopGrid.js:334
+msgid "Display Settings"
+msgstr "Paràmetres de la pantalla"
+
+#: ../desktopGrid.js:335
+msgid "Settings"
+msgstr "Paràmetres"
+
+#: ../desktopGrid.js:582
+msgid "Enter file name…"
+msgstr "Introduïu un nom de fitxer…"
+
+#: ../desktopGrid.js:586
+msgid "OK"
+msgstr "D'acord"
+
+#: ../desktopIconsUtil.js:61
+msgid "Command not found"
+msgstr "\tNo s'ha trobat l'ordre"
+
+#: ../fileItem.js:500
+msgid "Don’t Allow Launching"
+msgstr "No permetis que s'iniciï"
+
+#: ../fileItem.js:502
+msgid "Allow Launching"
+msgstr "Permet que s'iniciï"
+
+#: ../fileItem.js:580
+msgid "Open"
+msgstr "Obre"
+
+#: ../fileItem.js:584
+msgid "Open With Other Application"
+msgstr "Obre amb una altra aplicació..."
+
+#: ../fileItem.js:588
+msgid "Cut"
+msgstr "Retalla"
+
+#: ../fileItem.js:589
+msgid "Copy"
+msgstr "Copia"
+
+#: ../fileItem.js:591
+msgid "Rename…"
+msgstr "Canvia el nom…"
+
+#: ../fileItem.js:592
+msgid "Move to Trash"
+msgstr "Mou a la paperera"
+
+#: ../fileItem.js:602
+msgid "Empty Trash"
+msgstr "Buida la paperera"
+
+#: ../fileItem.js:608
+msgid "Properties"
+msgstr "Propietats"
+
+#: ../fileItem.js:610
+msgid "Show in Files"
+msgstr "Mostra al Fitxers"
+
+#: ../schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml.h:1
+msgid "Icon size"
+msgstr "Mida d'icona"
+
+#: ../schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml.h:2
+msgid "Set the size for the desktop icons."
+msgstr "Estableix la mida per les icones de l'escriptori."
+
+#: ../schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml.h:3
+msgid "Show personal folder"
+msgstr "Mostra la carpeta personal"
+
+#: ../schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml.h:4
+msgid "Show the personal folder in the desktop."
+msgstr "Mostra la carpeta personal a l'escriptori."
+
+#: ../schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml.h:5
+msgid "Show trash icon"
+msgstr "Mostra la icona de la paperera"
+
+#: ../schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml.h:6
+msgid "Show the trash icon in the desktop."
+msgstr "Mostra la icona de la paperera a l'escriptori."
+
#~ msgid "GNOME Shell Classic"
#~ msgstr "GNOME Shell clàssic"
diff --git a/po/cs.po b/po/cs.po
index 04bb195..7ce51c9 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -1,11 +1,21 @@
+# #-#-#-#-# cs.po (gnome-shell-extensions) #-#-#-#-#
# Czech translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Petr Kovar <pknbe volny cz>, 2013.
# Marek Černocký <marek manet cz>, 2011, 2012, 2013, 2014, 2015, 2017.
#
+# #-#-#-#-# cs.po (desktop-icons master) #-#-#-#-#
+# Czech translation for desktop-icons.
+# Copyright (C) 2018 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Marek Černocký <marek manet cz>, 2018.
+# Milan Zink <zeten30 gmail com>, 2018.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# cs.po (gnome-shell-extensions) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
@@ -19,6 +29,20 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Gtranslator 2.91.6\n"
+"#-#-#-#-# cs.po (desktop-icons master) #-#-#-#-#\n"
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-03-01 12:49+0000\n"
+"PO-Revision-Date: 2019-03-02 18:02+0100\n"
+"Last-Translator: Daniel Rusek <mail asciiwolf com>\n"
+"Language-Team: Czech <zeten30 gmail com>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Poedit 2.2.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -350,3 +374,177 @@ msgstr "Název"
#, javascript-format
msgid "Workspace %d"
msgstr "Pracovní plocha %d"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Název nové složky"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Vytvořit"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "Zrušit"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Názvy složek nesmí obsahovat „/“."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Složka se nemůže jmenovat „.“."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Složka se nemůže jmenovat „..“."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Složky s „.“ na začátku jejich názvu jsou skryty."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Soubor nebo složka s tímto názvem již existuje."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Velikost ikon na pracovní ploše"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "malé"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "standardní"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "velké"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Zobrazovat osobní složku na pracovní ploše"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Zobrazovat ikonu koše na pracovní ploše"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Nová složka"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Vložit"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Zpět"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Znovu"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Zobrazit plochu v Souborech"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Otevřít v terminálu"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Změnit pozadí…"
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "Zobrazit nastavení"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Nastavení"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Zadejte název souboru…"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "Budiž"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "Nepovolit spouštění"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Povolit spouštění"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Otevřít"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Otevřít pomocí jiné aplikace"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Vyjmout"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Kopírovat"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Přejmenovat…"
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "Přesunout do koše"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Vyprázdnit koš"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Vlastnosti"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "Zobrazit v Souborech"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Velikost ikon"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Nastavit velikost pro ikony na pracovní ploše."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Zobrazovat osobní složku"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Zobrazovat osobní složku na pracovní ploše."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Zobrazovat koš"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Zobrazovat ikonu koše na pracovní ploše."
+
+#~ msgid "Huge"
+#~ msgstr "obrovské"
+
+#~ msgid "Ok"
+#~ msgstr "Ok"
diff --git a/po/da.po b/po/da.po
index 5a4c257..4e1f110 100644
--- a/po/da.po
+++ b/po/da.po
@@ -1,3 +1,4 @@
+# #-#-#-#-# da.po (gnome-shell-extensions master) #-#-#-#-#
# Danish translation for gnome-shell-extensions.
# Copyright (C) 2011-2017 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
@@ -6,8 +7,16 @@
# Ask Hjorth Larsen <asklarsen gmail com>, 2015, 2017.
# Joe Hansen <joedalton2 yahoo dk>, 2017.
#
+# #-#-#-#-# da.po (desktop-icons master) #-#-#-#-#
+# Danish translation for desktop-icons.
+# Copyright (C) 2018 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Alan Mortensen <alanmortensen am gmail com>, 2018.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# da.po (gnome-shell-extensions master) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
@@ -20,6 +29,19 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"#-#-#-#-# da.po (desktop-icons master) #-#-#-#-#\n"
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-03-01 12:11+0000\n"
+"PO-Revision-Date: 2019-03-04 14:55+0200\n"
+"Last-Translator: scootergrisen\n"
+"Language-Team: Danish <dansk dansk-gruppen dk>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -359,3 +381,175 @@ msgstr "Navn"
#, javascript-format
msgid "Workspace %d"
msgstr "Arbejdsområde %d"
+
+#: createFolderDialog.js:48
+#| msgid "New Folder"
+msgid "New folder name"
+msgstr "Nyt mappenavn"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Opret"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "Annullér"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Mappenavne må ikke indeholde “/”."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "En mappe må ikke kaldes “.”."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "En mappe må ikke kaldes “..”."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Mapper med “.” i begyndelsen af deres navn er skjulte."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Der findes allerede en fil eller mappe med det navn."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Størrelsen på skrivebordsikoner"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Små"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standard"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Store"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Vis den personlige mappe på skrivebordet"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Vis papirkurvsikonet på skrivebordet"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Ny mappe"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Indsæt"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Fortryd"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Omgør"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Vis skrivebordet i Filer"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Åbn i terminal"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Skift baggrund …"
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "Skærmindstillinger"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Indstillinger"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Indtast filnavn …"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "OK"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "Tillad ikke opstart"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Tillad opstart"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Åbn"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Åbn med et andet program"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Klip"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Kopiér"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Omdøb …"
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "Flyt til papirkurven"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Tøm papirkurven"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Egenskaber"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "Vis i Filer"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Ikonstørrelse"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Angiv størrelsen på skrivebordsikoner."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Vis personlig mappe"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Vis den personlige mappe på skrivebordet."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Vis papirkurvsikon"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Vis papirkurvsikonet på skrivebordet."
+
+#~ msgid "Huge"
+#~ msgstr "Enorme"
diff --git a/po/de.po b/po/de.po
index 01924b8..6bd5c83 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,3 +1,4 @@
+# #-#-#-#-# de.po (gnome-shell-extensions master) #-#-#-#-#
# German translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
@@ -7,8 +8,17 @@
# Wolfgang Stöggl <c72578 yahoo de>, 2014.
# Paul Seyfert <pseyfert mathphys fsk uni-heidelberg de>, 2017.
#
+# #-#-#-#-# de.po (desktop-icons master) #-#-#-#-#
+# German translation for desktop-icons.
+# Copyright (C) 2018 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Mario Blättermann <mario blaettermann gmail com>, 2018.
+# rugk <rugk+i18n posteo de>, 2019.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# de.po (gnome-shell-extensions master) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
@@ -22,6 +32,20 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.0.2\n"
+"#-#-#-#-# de.po (desktop-icons master) #-#-#-#-#\n"
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-03-07 22:46+0000\n"
+"PO-Revision-Date: 2019-03-09 15:42+0100\n"
+"Last-Translator: Tim Sabsch <tim sabsch com>\n"
+"Language-Team: German <gnome-de gnome org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 2.2.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -366,3 +390,174 @@ msgstr "Name"
#, javascript-format
msgid "Workspace %d"
msgstr "Arbeitsfläche %d"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Neuer Ordner"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Erstellen"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Ordnernamen dürfen kein »/« enthalten."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Ein Ordner darf nicht ».« genannt werden."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Ein Ordner darf nicht »..« genannt werden."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Ordner mit ».« am Anfang sind verborgen."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Es gibt bereits eine Datei oder einen Ordner mit diesem Namen."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Größe der Arbeitsflächensymbole"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Klein"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standard"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Groß"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Den persönlichen Ordner auf der Arbeitsfläche anzeigen"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Papierkorb-Symbol auf der Arbeitsfläche anzeigen"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Neuer Ordner"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Einfügen"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Rückgängig"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Wiederholen"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Schreibtisch in Dateien anzeigen"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Im Terminal öffnen"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Hintergrund ändern …"
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "Anzeigeeinstellungen"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Einstellungen"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Dateinamen eingeben …"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "OK"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "Start nicht erlauben"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Start erlauben"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Öffnen"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Mit anderer Anwendung öffnen"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Ausschneiden"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Kopieren"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Umbenennen …"
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "In den Papierkorb verschieben"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Papierkorb leeren"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Eigenschaften"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "In Dateiverwaltung anzeigen"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Symbolgröße"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Die Größe der Arbeitsflächensymbole festlegen."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Persönlichen Ordner anzeigen"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Den persönlichen Ordner auf der Arbeitsfläche anzeigen."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Papierkorb-Symbol anzeigen"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Das Papierkorb-Symbol auf der Arbeitsfläche anzeigen."
+
+#~ msgid "Huge"
+#~ msgstr "Riesig"
diff --git a/po/en_GB.po b/po/en_GB.po
index 92ae445..60fc687 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -1,11 +1,20 @@
+# #-#-#-#-# en_GB.po (gnome-shell-extensions) #-#-#-#-#
# British English translation of gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions'S COPYRIGHT HOLDER.
# This file is distributed under the same license as the gnome-shell-extensions package.
# Bruce Cowan <bruce bcowan eu>, 2011, 2018.
# Chris Leonard <cjlhomeaddress gmail com>, 2012.
# Philip Withnall <philip tecnocode co uk>, 2014.
+# #-#-#-#-# en_GB.po (desktop-icons master) #-#-#-#-#
+# British English translation for desktop-icons.
+# Copyright (C) 2019 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Zander Brown <zbrown gnome org>, 2019.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# en_GB.po (gnome-shell-extensions) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
@@ -20,6 +29,20 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.0.6\n"
"X-Project-Style: gnome\n"
+"#-#-#-#-# en_GB.po (desktop-icons master) #-#-#-#-#\n"
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-08-22 15:53+0000\n"
+"PO-Revision-Date: 2019-08-23 21:48+0100\n"
+"Last-Translator: Zander Brown <zbrown gnome org>\n"
+"Language-Team: English - United Kingdom <en_GB li org>\n"
+"Language: en_GB\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Gtranslator 3.32.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -367,6 +390,178 @@ msgstr "Name"
msgid "Workspace %d"
msgstr "Workspace %d"
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Icon size"
+
+#: desktopGrid.js:334
+msgid "Display Settings"
+msgstr "Display Settings"
+
+#: createFolderDialog.js:74 desktopGrid.js:592
+msgid "Cancel"
+msgstr "Cancel"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "New folder name"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Create"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Folder names cannot contain “/”."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "A folder cannot be called “.”."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "A folder cannot be called “..”."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Folders with “.” at the beginning of their name are hidden."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "There is already a file or folder with that name."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Size for the desktop icons"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Small"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standard"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Large"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Show the personal folder on the desktop"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Show the wastebasket icon on the desktop"
+
+#: desktopGrid.js:323
+msgid "New Folder"
+msgstr "New Folder"
+
+#: desktopGrid.js:325
+msgid "Paste"
+msgstr "Paste"
+
+#: desktopGrid.js:326
+msgid "Undo"
+msgstr "Undo"
+
+#: desktopGrid.js:327
+msgid "Redo"
+msgstr "Redo"
+
+#: desktopGrid.js:329
+msgid "Show Desktop in Files"
+msgstr "Show Desktop in Files"
+
+#: desktopGrid.js:330 fileItem.js:626
+msgid "Open in Terminal"
+msgstr "Open in Terminal"
+
+#: desktopGrid.js:332
+msgid "Change Background…"
+msgstr "Change Background…"
+
+#: desktopGrid.js:335
+msgid "Settings"
+msgstr "Settings"
+
+#: desktopGrid.js:582
+msgid "Enter file name…"
+msgstr "Enter file name…"
+
+#: desktopGrid.js:586
+msgid "OK"
+msgstr "OK"
+
+#: desktopIconsUtil.js:61
+msgid "Command not found"
+msgstr "Command not found"
+
+#: fileItem.js:499
+msgid "Don’t Allow Launching"
+msgstr "Don’t Allow Launching"
+
+#: fileItem.js:501
+msgid "Allow Launching"
+msgstr "Allow Launching"
+
+#: fileItem.js:594
+msgid "Open"
+msgstr "Open"
+
+#: fileItem.js:598
+msgid "Open With Other Application"
+msgstr "Open With Other Application"
+
+#: fileItem.js:602
+msgid "Cut"
+msgstr "Cut"
+
+#: fileItem.js:603
+msgid "Copy"
+msgstr "Copy"
+
+#: fileItem.js:605
+msgid "Rename…"
+msgstr "Rename…"
+
+#: fileItem.js:606
+msgid "Move to Trash"
+msgstr "Move to Wastebasket"
+
+#: fileItem.js:616
+msgid "Empty Trash"
+msgstr "Empty Wastebasket"
+
+#: fileItem.js:622
+msgid "Properties"
+msgstr "Properties"
+
+#: fileItem.js:624
+msgid "Show in Files"
+msgstr "Show in Files"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Set the size for the desktop icons."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Show personal folder"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Show the personal folder on the desktop."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Show wastebasket icon"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Show the trash icon on the desktop."
+
#~ msgid "GNOME Shell Classic"
#~ msgstr "GNOME Shell Classic"
@@ -434,9 +629,6 @@ msgstr "Workspace %d"
#~ "Sets the position of the dock in the screen. Allowed values are 'right' "
#~ "or 'left'"
-#~ msgid "Icon size"
-#~ msgstr "Icon size"
-
#~ msgid "Sets icon size of the dock."
#~ msgstr "Sets icon size of the dock."
@@ -508,9 +700,6 @@ msgstr "Workspace %d"
#~ msgid "Display"
#~ msgstr "Display"
-#~ msgid "Display Settings"
-#~ msgstr "Display Settings"
-
#~ msgid "Do Not Disturb"
#~ msgstr "Do Not Disturb"
@@ -582,9 +771,6 @@ msgstr "Workspace %d"
#~ msgid "Native"
#~ msgstr "Native"
-#~ msgid "Cancel"
-#~ msgstr "Cancel"
-
#~ msgid "Ask the user for a default behaviour if true."
#~ msgstr "Ask the user for a default behaviour if true."
diff --git a/po/es.po b/po/es.po
index a3c0703..ee30c8a 100644
--- a/po/es.po
+++ b/po/es.po
@@ -1,3 +1,4 @@
+# #-#-#-#-# es.po (gnome-shell-extensions master) #-#-#-#-#
# Spanish translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
@@ -6,8 +7,18 @@
#
# Daniel Mustieles <daniel mustieles gmail com>, 2011-2015, 2017.
#
+# #-#-#-#-# es.po (1.0) #-#-#-#-#
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# Sergio Costas <rastersoft gmail com>, 2018.
+# Daniel Mustieles <daniel mustieles gmail com>, 2018-2019.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# es.po (gnome-shell-extensions master) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
@@ -21,6 +32,20 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Gtranslator 2.91.6\n"
+"#-#-#-#-# es.po (1.0) #-#-#-#-#\n"
+"Project-Id-Version: 1.0\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-04-29 14:11+0000\n"
+"PO-Revision-Date: 2019-05-13 15:13+0200\n"
+"Last-Translator: Daniel Mustieles <daniel mustieles gmail com>\n"
+"Language-Team: es <gnome-es-list gnome org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Gtranslator 3.32.0\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -361,6 +386,188 @@ msgstr "Nombre"
msgid "Workspace %d"
msgstr "Área de trabajo %d"
+#: desktopGrid.js:334
+#, fuzzy
+msgid "Display Settings"
+msgstr ""
+"#-#-#-#-# es.po (gnome-shell-extensions master) #-#-#-#-#\n"
+"Configuración de pantalla\n"
+"#-#-#-#-# es.po (1.0) #-#-#-#-#\n"
+"Configuración de pantalla"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+#, fuzzy
+msgid "Icon size"
+msgstr ""
+"#-#-#-#-# es.po (gnome-shell-extensions master) #-#-#-#-#\n"
+"Tamaño del icono\n"
+"#-#-#-#-# es.po (1.0) #-#-#-#-#\n"
+"Tamaño de los iconos"
+
+#: createFolderDialog.js:74 desktopGrid.js:592
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Nombre de la nueva carpeta"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Crear"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Los nombres de carpetas no pueden contener «/»."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Una carpeta no se puede llamar «.»."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Una carpeta no se puede llamar «..»."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Las carpetas cuyo nombre empieza por «.» están ocultas."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Ya hay un archivo o carpeta con ese nombre."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Tamaño de los iconos del escritorio"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Pequeño"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Estándar"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Grande"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Mostrar la carpeta personal en el escritorio"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Mostrar la papelera en el escritorio"
+
+#: desktopGrid.js:323
+msgid "New Folder"
+msgstr "Nueva carpeta"
+
+#: desktopGrid.js:325
+msgid "Paste"
+msgstr "Pegar"
+
+#: desktopGrid.js:326
+msgid "Undo"
+msgstr "Deshacer"
+
+#: desktopGrid.js:327
+msgid "Redo"
+msgstr "Rehacer"
+
+#: desktopGrid.js:329
+msgid "Show Desktop in Files"
+msgstr "Mostrar el escritorio en Archivos"
+
+#: desktopGrid.js:330 fileItem.js:610
+msgid "Open in Terminal"
+msgstr "Abrir en una terminal"
+
+#: desktopGrid.js:332
+msgid "Change Background…"
+msgstr "Cambiar el fondo..."
+
+#: desktopGrid.js:335
+msgid "Settings"
+msgstr "Configuración"
+
+#: desktopGrid.js:582
+msgid "Enter file name…"
+msgstr "Introduzca el nombre del archivo…"
+
+#: desktopGrid.js:586
+msgid "OK"
+msgstr "Aceptar"
+
+#: desktopIconsUtil.js:61
+msgid "Command not found"
+msgstr "Comando no encontrado"
+
+#: fileItem.js:494
+msgid "Don’t Allow Launching"
+msgstr "No permitir lanzar"
+
+#: fileItem.js:496
+msgid "Allow Launching"
+msgstr "Permitir lanzar"
+
+#: fileItem.js:578
+msgid "Open"
+msgstr "Abrir"
+
+#: fileItem.js:582
+msgid "Open With Other Application"
+msgstr "Abrir con otra aplicación"
+
+#: fileItem.js:586
+msgid "Cut"
+msgstr "Cortar"
+
+#: fileItem.js:587
+msgid "Copy"
+msgstr "Copiar"
+
+#: fileItem.js:589
+msgid "Rename…"
+msgstr "Renombrar…"
+
+#: fileItem.js:590
+msgid "Move to Trash"
+msgstr "Mover a la papelera"
+
+#: fileItem.js:600
+msgid "Empty Trash"
+msgstr "Vaciar la papelera"
+
+#: fileItem.js:606
+msgid "Properties"
+msgstr "Propiedades"
+
+#: fileItem.js:608
+msgid "Show in Files"
+msgstr "Mostrar en Files"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Establece el tamaño de los iconos del escritorio."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Mostrar la carpeta personal"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Mostrar la carpeta personal en el escritorio."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Mostrar la papelera"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Mostrar la papelera en el escritorio."
+
#~ msgid "CPU"
#~ msgstr "CPU"
@@ -409,9 +616,6 @@ msgstr "Área de trabajo %d"
#~ msgid "Display"
#~ msgstr "Pantalla"
-#~ msgid "Display Settings"
-#~ msgstr "Configuración de pantalla"
-
#~ msgid "File System"
#~ msgstr "Sistema de archivos"
@@ -459,9 +663,6 @@ msgstr "Área de trabajo %d"
#~ "Configura la posición del tablero en la pantalla. Los valores permitidos "
#~ "son «right» (derecha) o «left» (izquierda)"
-#~ msgid "Icon size"
-#~ msgstr "Tamaño del icono"
-
#~ msgid "Sets icon size of the dock."
#~ msgstr "Configura el tamaño de los íconos del tablero."
@@ -632,9 +833,6 @@ msgstr "Área de trabajo %d"
#~ msgid "Alt Tab Behaviour"
#~ msgstr "Comportamiento de Alt+Tab"
-#~ msgid "Cancel"
-#~ msgstr "Cancelar"
-
#~ msgid "Notifications"
#~ msgstr "Notificaciones"
@@ -668,3 +866,30 @@ msgstr "Área de trabajo %d"
#~ msgid "Busy"
#~ msgstr "Ocupado"
+
+#~ msgid "Huge"
+#~ msgstr "Inmenso"
+
+#~ msgid "Ok"
+#~ msgstr "Aceptar"
+
+#~ msgid "huge"
+#~ msgstr "inmenso"
+
+#~ msgid "Maximum width for the icons and filename."
+#~ msgstr "Ancho máximo de los iconos y el nombre de fichero."
+
+#~ msgid "Shows the Documents folder in the desktop."
+#~ msgstr "Muestra la carpeta Documentos en el escritorio."
+
+#~ msgid "Shows the Downloads folder in the desktop."
+#~ msgstr "Muestra la carpeta Descargas en el escritorio."
+
+#~ msgid "Shows the Music folder in the desktop."
+#~ msgstr "Muestra la carpeta Música en el escritorio."
+
+#~ msgid "Shows the Pictures folder in the desktop."
+#~ msgstr "Muestra la carpeta Imágenes en el escritorio."
+
+#~ msgid "Shows the Videos folder in the desktop."
+#~ msgstr "Muestra la carpeta Vídeos en el escritorio."
diff --git a/po/fi.po b/po/fi.po
index e036448..e23c0c8 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -1,3 +1,4 @@
+# #-#-#-#-# fi.po (gnome-shell-extensions) #-#-#-#-#
# Finnish translation of gnome-shell-extensions.
# Copyright (C) 2011 Ville-Pekka Vainio
# This file is distributed under the same license as the gnome-shell-extensions package.
@@ -7,8 +8,16 @@
# Ville-Pekka Vainio <vpvainio iki fi>, 2011.
# Jiri Grönroos <jiri gronroos+l10n iki fi>, 2012, 2013, 2014, 2015, 2017.
#
+# #-#-#-#-# fi.po (desktop-icons master) #-#-#-#-#
+# Finnish translation for desktop-icons.
+# Copyright (C) 2018 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Jiri Grönroos <jiri gronroos iki fi>, 2018.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# fi.po (gnome-shell-extensions) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
@@ -24,6 +33,20 @@ msgstr ""
"X-Generator: Gtranslator 2.91.7\n"
"X-Project-Style: gnome\n"
"X-POT-Import-Date: 2012-03-05 15:06:12+0000\n"
+"#-#-#-#-# fi.po (desktop-icons master) #-#-#-#-#\n"
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-04-29 14:11+0000\n"
+"PO-Revision-Date: 2019-06-02 15:23+0300\n"
+"Last-Translator: Jiri Grönroos <jiri gronroos+l10n iki fi>\n"
+"Language-Team: Finnish <lokalisointi-lista googlegroups com>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 2.0.6\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -352,6 +375,183 @@ msgstr "Nimi"
msgid "Workspace %d"
msgstr "Työtila %d"
+#: desktopGrid.js:334
+msgid "Display Settings"
+msgstr "Näytön asetukset"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+#, fuzzy
+msgid "Icon size"
+msgstr ""
+"#-#-#-#-# fi.po (gnome-shell-extensions) #-#-#-#-#\n"
+"Kuvakkeiden koko\n"
+"#-#-#-#-# fi.po (desktop-icons master) #-#-#-#-#\n"
+"Kuvakekoko"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Uusi kansion nimi"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Luo"
+
+#: createFolderDialog.js:74 desktopGrid.js:592
+msgid "Cancel"
+msgstr "Peru"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Kansion nimi ei voi sisältää merkkiä “/”."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Kansion nimi ei voi olla “.”."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Kansion nimi ei voi olla “..”."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Kansiot, joiden nimi alkaa merkillä “.”, ovat piilotettuja."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Nimi on jo toisen tiedoston tai kansion käytössä."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Työpöytäkuvakkeiden koko"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Pieni"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Normaali"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Suuri"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Näytä kotikansio työpöydällä"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Näytä roskakorin kuvake työpöydällä"
+
+#: desktopGrid.js:323
+msgid "New Folder"
+msgstr "Uusi kansio"
+
+#: desktopGrid.js:325
+msgid "Paste"
+msgstr "Liitä"
+
+#: desktopGrid.js:326
+msgid "Undo"
+msgstr "Kumoa"
+
+#: desktopGrid.js:327
+msgid "Redo"
+msgstr "Tee uudeleen"
+
+#: desktopGrid.js:329
+msgid "Show Desktop in Files"
+msgstr "Näytä työpöytä tiedostonhallinnassa"
+
+#: desktopGrid.js:330 fileItem.js:610
+msgid "Open in Terminal"
+msgstr "Avaa päätteessä"
+
+#: desktopGrid.js:332
+msgid "Change Background…"
+msgstr "Vaihda taustakuvaa…"
+
+#: desktopGrid.js:335
+msgid "Settings"
+msgstr "Asetukset"
+
+#: desktopGrid.js:582
+msgid "Enter file name…"
+msgstr "Anna tiedostonimi…"
+
+#: desktopGrid.js:586
+msgid "OK"
+msgstr "OK"
+
+#: desktopIconsUtil.js:61
+msgid "Command not found"
+msgstr "Komentoa ei löydy"
+
+#: fileItem.js:494
+msgid "Don’t Allow Launching"
+msgstr "Älä salli käynnistämistä"
+
+#: fileItem.js:496
+msgid "Allow Launching"
+msgstr "Salli käynnistäminen"
+
+#: fileItem.js:578
+msgid "Open"
+msgstr "Avaa"
+
+#: fileItem.js:582
+msgid "Open With Other Application"
+msgstr "Avaa toisella sovelluksella"
+
+#: fileItem.js:586
+msgid "Cut"
+msgstr "Leikkaa"
+
+#: fileItem.js:587
+msgid "Copy"
+msgstr "Kopioi"
+
+#: fileItem.js:589
+msgid "Rename…"
+msgstr "Nimeä uudelleen…"
+
+#: fileItem.js:590
+msgid "Move to Trash"
+msgstr "Siirrä roskakoriin"
+
+#: fileItem.js:600
+msgid "Empty Trash"
+msgstr "Tyhjennä roskakori"
+
+#: fileItem.js:606
+msgid "Properties"
+msgstr "Ominaisuudet"
+
+#: fileItem.js:608
+msgid "Show in Files"
+msgstr "Näytä tiedostonhallinnassa"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Aseta työpöytäkuvakkeiden koko."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Näytä kotikansio"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Näytä kotikansio työpöydällä."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Näytä roskakorin kuvake"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Näytä roskakorin kuvake työpöydällä."
+
#~ msgid "CPU"
#~ msgstr "Suoritin"
@@ -388,9 +588,6 @@ msgstr "Työtila %d"
#~ msgid "Display"
#~ msgstr "Näyttö"
-#~ msgid "Display Settings"
-#~ msgstr "Näytön asetukset"
-
#~ msgid "Drag here to add favorites"
#~ msgstr "Raahaa tähän lisätäksesi suosikkeihin"
@@ -412,9 +609,6 @@ msgstr "Työtila %d"
#~ msgstr ""
#~ "Asettaa telakan sijainnin näytöllä. Sallitut arvot ovat 'right' tai 'left'"
-#~ msgid "Icon size"
-#~ msgstr "Kuvakkeiden koko"
-
#~ msgid "Sets icon size of the dock."
#~ msgstr "Asettaa telakan kuvakkeiden koon."
@@ -459,3 +653,6 @@ msgstr "Työtila %d"
#~ msgid "Workspace & Icons"
#~ msgstr "Työtila ja kuvakkeet"
+
+#~ msgid "Huge"
+#~ msgstr "Valtava"
diff --git a/po/fr.po b/po/fr.po
index 6825d0d..6961fa4 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,3 +1,4 @@
+# #-#-#-#-# fr.po (gnome-shell-extensions master) #-#-#-#-#
# French translation for gnome-shell-extensions.
# Copyright (C) 2011-12 Listed translators
# This file is distributed under the same license as the gnome-shell-extensions package.
@@ -5,8 +6,17 @@
# Alain Lojewski <allomervan gmail com>, 2012-2013.
# Charles Monzat <charles monzat numericable fr>, 2018.
#
+# #-#-#-#-# fr.po (desktop-icons master) #-#-#-#-#
+# French translation for desktop-icons.
+# Copyright (C) 2018 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# ghentdebian <ghent debian gmail com>, 2018.
+# Charles Monzat <charles monzat numericable fr>, 2018.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# fr.po (gnome-shell-extensions master) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
@@ -20,6 +30,20 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Gtranslator 3.30.0\n"
+"#-#-#-#-# fr.po (desktop-icons master) #-#-#-#-#\n"
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2018-12-14 09:12+0000\n"
+"PO-Revision-Date: 2018-12-16 17:47+0100\n"
+"Last-Translator: Charles Monzat <charles monzat numericable fr>\n"
+"Language-Team: GNOME French Team <gnomefr traduc org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"X-Generator: Gtranslator 3.30.0\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -323,6 +347,146 @@ msgstr "Nom"
msgid "Workspace %d"
msgstr "Espace de travail %d"
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Taille des icônes du bureau"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Petite"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Normale"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Grande"
+
+#: prefs.js:102
+msgid "Huge"
+msgstr "Immense"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Montrer le dossier personnel sur le bureau"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Montrer la corbeille sur le bureau"
+
+#: desktopGrid.js:182 desktopGrid.js:301
+msgid "New Folder"
+msgstr "Nouveau dossier"
+
+#: desktopGrid.js:303
+msgid "Paste"
+msgstr "Coller"
+
+#: desktopGrid.js:304
+msgid "Undo"
+msgstr "Annuler"
+
+#: desktopGrid.js:305
+msgid "Redo"
+msgstr "Refaire"
+
+#: desktopGrid.js:307
+msgid "Open Desktop in Files"
+msgstr "Ouvrir le bureau dans Fichiers"
+
+#: desktopGrid.js:308
+msgid "Open Terminal"
+msgstr "Ouvrir un terminal"
+
+#: desktopGrid.js:310
+msgid "Change Background…"
+msgstr "Changer l’arrière-plan…"
+
+#: desktopGrid.js:311
+msgid "Display Settings"
+msgstr "Configuration d’affichage"
+
+#: desktopGrid.js:312
+msgid "Settings"
+msgstr "Paramètres"
+
+#: desktopGrid.js:568
+msgid "Enter file name…"
+msgstr "Saisir un nom de fichier…"
+
+#: desktopGrid.js:572
+msgid "OK"
+msgstr "Valider"
+
+#: desktopGrid.js:578
+msgid "Cancel"
+msgstr "Annuler"
+
+#: fileItem.js:485
+msgid "Don’t Allow Launching"
+msgstr "Ne pas autoriser le lancement"
+
+#: fileItem.js:487
+msgid "Allow Launching"
+msgstr "Autoriser le lancement"
+
+#: fileItem.js:550
+msgid "Open"
+msgstr "Ouvrir"
+
+#: fileItem.js:553
+msgid "Cut"
+msgstr "Couper"
+
+#: fileItem.js:554
+msgid "Copy"
+msgstr "Copier"
+
+#: fileItem.js:556
+msgid "Rename"
+msgstr "Renommer"
+
+#: fileItem.js:557
+msgid "Move to Trash"
+msgstr "Mettre à la corbeille"
+
+#: fileItem.js:567
+msgid "Empty Trash"
+msgstr "Vider la corbeille"
+
+#: fileItem.js:573
+msgid "Properties"
+msgstr "Propriétés"
+
+#: fileItem.js:575
+msgid "Show in Files"
+msgstr "Montrer dans Fichiers"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Icon size"
+msgstr "Taille d’icônes"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:13
+msgid "Set the size for the desktop icons."
+msgstr "Définir la taille des icônes du bureau."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show personal folder"
+msgstr "Montrer le dossier personnel"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:18
+msgid "Show the personal folder in the desktop."
+msgstr "Montrer le dossier personnel sur le bureau."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show trash icon"
+msgstr "Montrer l’icône de la corbeille"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:23
+msgid "Show the trash icon in the desktop."
+msgstr "Montrer la corbeille sur le bureau."
+
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Attacher les boîtes de dialogue modales à leur fenêtre parente"
@@ -360,3 +524,6 @@ msgstr "Espace de travail %d"
#~ msgid "Memory"
#~ msgstr "Mémoire"
+
+#~ msgid "Ok"
+#~ msgstr "Valider"
diff --git a/po/fur.po b/po/fur.po
index 0fb3f70..a2793c9 100644
--- a/po/fur.po
+++ b/po/fur.po
@@ -1,10 +1,19 @@
+# #-#-#-#-# fur.po (gnome-shell-extensions master) #-#-#-#-#
# Friulian translation for gnome-shell-extensions.
# Copyright (C) 2013 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Fabio Tomat <f t public gmail com>, 2013.
#
+# #-#-#-#-# fur.po (desktop-icons master) #-#-#-#-#
+# Friulian translation for desktop-icons.
+# Copyright (C) 2019 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Fabio Tomat <f t public gmail com>, 2019.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# fur.po (gnome-shell-extensions master) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
@@ -17,6 +26,19 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.12\n"
+"#-#-#-#-# fur.po (desktop-icons master) #-#-#-#-#\n"
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-03-01 12:11+0000\n"
+"PO-Revision-Date: 2019-03-05 22:20+0100\n"
+"Last-Translator: Fabio Tomat <f t public gmail com>\n"
+"Language-Team: Friulian <fur li org>\n"
+"Language: fur\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.2.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -355,6 +377,179 @@ msgstr "Non"
msgid "Workspace %d"
msgstr "Spazi di lavôr %d"
+#: desktopGrid.js:331
+#, fuzzy
+msgid "Display Settings"
+msgstr ""
+"#-#-#-#-# fur.po (gnome-shell-extensions master) #-#-#-#-#\n"
+"Impostazions Visôr\n"
+"#-#-#-#-# fur.po (desktop-icons master) #-#-#-#-#\n"
+"Impostazions visôr"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Gnûf non de cartele"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Cree"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "Anule"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "I nons des cartelis no puedin contignî il caratar “/”"
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Une cartele no pues jessi clamade “.”."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Une cartele no pues jessi clamade “..”."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Lis cartelis cul “.” al inizi dal lôr non a son platadis."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Un file o une cartele cul stes non e esist za."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Dimension pes iconis dal scritori"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Piçule"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standard"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Largje"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Mostre la cartele personâl intal scritori"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Mostre la icone de scovacere intal scritori"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Gnove cartele"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Tache"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Anule"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Torne fâ"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Mostre Scritori in File"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Vierç in Terminâl"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Cambie sfont…"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Impostazions"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Inserìs il non dal file…"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "Va ben"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "No sta permeti inviament"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Permet inviament"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Vierç"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Vierç cuntune altre aplicazion"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Taie"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Copie"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Cambie non..."
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "Sposte te scovacere"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Disvuede scovacere"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Propietâts"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "Mostre in File"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Dimension icone"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Stabilìs la dimension pes iconis dal scritori."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Mostre cartele personâl"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Mostre la cartele personâl intal scritori."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Mostre la icone de scovacere"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Mostre la icone de scovacere intal scritori."
+
#~ msgid "CPU"
#~ msgstr "CPU"
@@ -381,6 +576,3 @@ msgstr "Spazi di lavôr %d"
#~ msgid "Display"
#~ msgstr "Visôr"
-
-#~ msgid "Display Settings"
-#~ msgstr "Impostazions Visôr"
diff --git a/po/hr.po b/po/hr.po
index deee76e..a4d39d1 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -1,10 +1,19 @@
+# #-#-#-#-# hr.po (gnome-shell-extensions master) #-#-#-#-#
# Croatian translation for gnome-shell-extensions.
# Copyright (C) 2017 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
+# #-#-#-#-# hr.po (gnome-shell-extension-desktop-icons) #-#-#-#-#
+# Croatian translation for gnome-shell-extension-desktop-icons
+# Copyright (c) 2019 Rosetta Contributors and Canonical Ltd 2019
+# This file is distributed under the same license as the gnome-shell-extension-desktop-icons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# hr.po (gnome-shell-extensions master) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
@@ -19,6 +28,20 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 2.0.2\n"
+"#-#-#-#-# hr.po (gnome-shell-extension-desktop-icons) #-#-#-#-#\n"
+"Project-Id-Version: gnome-shell-extension-desktop-icons\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-04-29 14:11+0000\n"
+"PO-Revision-Date: 2019-06-22 18:52+0200\n"
+"Last-Translator: gogo <trebelnik2 gmail com>\n"
+"Language-Team: Croatian <hr li org>\n"
+"Language: hr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2019-03-27 09:36+0000\n"
+"X-Generator: Poedit 2.2.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -353,3 +376,175 @@ msgstr "Naziv"
#, javascript-format
msgid "Workspace %d"
msgstr "Radni prostor %d"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Novi naziv mape"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Stvori"
+
+#: createFolderDialog.js:74 desktopGrid.js:592
+msgid "Cancel"
+msgstr "Odustani"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Naziv mape ne može sadržavati “/”."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Mapa se ne može nazvati “.”."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Mapa se ne može nazvati “..”."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Mape sa “.” na početku njihovih naziva su skrivene."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Već postoji datoteka ili mapa s tim nazivom."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Veličina ikona radne površine"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Male"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standardne"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Velike"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Prikaži osobnu mapu na radnoj površini"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Prikaži mapu smeća na radnoj površini"
+
+#: desktopGrid.js:323
+msgid "New Folder"
+msgstr "Nova mapa"
+
+#: desktopGrid.js:325
+msgid "Paste"
+msgstr "Zalijepi"
+
+#: desktopGrid.js:326
+msgid "Undo"
+msgstr "Poništi"
+
+#: desktopGrid.js:327
+msgid "Redo"
+msgstr "Ponovi"
+
+#: desktopGrid.js:329
+msgid "Show Desktop in Files"
+msgstr "Prikaži radnu površinu u Datotekama"
+
+#: desktopGrid.js:330 fileItem.js:610
+msgid "Open in Terminal"
+msgstr "Otvori u Terminalu"
+
+#: desktopGrid.js:332
+msgid "Change Background…"
+msgstr "Promijeni pozadinu…"
+
+#: desktopGrid.js:334
+msgid "Display Settings"
+msgstr "Postavke zaslona"
+
+#: desktopGrid.js:335
+msgid "Settings"
+msgstr "Postavke"
+
+#: desktopGrid.js:582
+msgid "Enter file name…"
+msgstr "Upiši naziv datoteke…"
+
+#: desktopGrid.js:586
+msgid "OK"
+msgstr "U redu"
+
+#: desktopIconsUtil.js:61
+msgid "Command not found"
+msgstr "Naredba nije pronađena"
+
+#: fileItem.js:494
+msgid "Don’t Allow Launching"
+msgstr "Ne dopuštaj pokretanje"
+
+#: fileItem.js:496
+msgid "Allow Launching"
+msgstr "Dopusti pokretanje"
+
+#: fileItem.js:578
+msgid "Open"
+msgstr "Otvori"
+
+#: fileItem.js:582
+msgid "Open With Other Application"
+msgstr "Otvori s drugom aplikacijom"
+
+#: fileItem.js:586
+msgid "Cut"
+msgstr "Izreži"
+
+#: fileItem.js:587
+msgid "Copy"
+msgstr "Kopiraj"
+
+#: fileItem.js:589
+msgid "Rename…"
+msgstr "Preimenuj…"
+
+#: fileItem.js:590
+msgid "Move to Trash"
+msgstr "Premjesti u smeće"
+
+#: fileItem.js:600
+msgid "Empty Trash"
+msgstr "Isprazni smeće"
+
+#: fileItem.js:606
+msgid "Properties"
+msgstr "Svojstva"
+
+#: fileItem.js:608
+msgid "Show in Files"
+msgstr "Prikaži u Datotekama"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Veličina ikona"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Postavi veličinu ikona radne površine."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Prikaži osobnu mapu"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Prikaži osobnu mapu na radnoj površini."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Prikaži ikonu smeća"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Prikaži ikonu smeća na radnoj površini."
diff --git a/po/hu.po b/po/hu.po
index 7c2c406..0635270 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -1,3 +1,4 @@
+# #-#-#-#-# hu.po (gnome-shell-extensions master) #-#-#-#-#
# Hungarian translation of
# Copyright (C) 2011, 2012, 2013, 2014, 2017 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell-extensions package.
@@ -5,8 +6,16 @@
# Biró Balázs <arch.scar at gmail dot com>, 2011.
# Gabor Kelemen <kelemeng at gnome dot hu>, 2011, 2012, 2013.
# Balázs Úr <urbalazs at gmail dot com>, 2013, 2014, 2017.
+# #-#-#-#-# hu.po (desktop-icons master) #-#-#-#-#
+# Hungarian translation for desktop-icons.
+# Copyright (C) 2019 The Free Software Foundation, inc.
+# This file is distributed under the same license as the desktop-icons package.
+#
+# Balázs Úr <ur.balazs at fsf dot hu>, 2019.
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# hu.po (gnome-shell-extensions master) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
@@ -20,6 +29,20 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.2\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"#-#-#-#-# hu.po (desktop-icons master) #-#-#-#-#\n"
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-04-29 14:11+0000\n"
+"PO-Revision-Date: 2019-06-01 18:50+0200\n"
+"Last-Translator: Balázs Úr <ur.balazs at fsf dot hu>\n"
+"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Lokalize 18.12.3\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -356,3 +379,175 @@ msgstr "Név"
#, javascript-format
msgid "Workspace %d"
msgstr "%d. munkaterület"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Új mappa neve"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Létrehozás"
+
+#: createFolderDialog.js:74 desktopGrid.js:592
+msgid "Cancel"
+msgstr "Mégse"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "A mappanevek nem tartalmazhatnak „/” karaktert."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Egy mappának nem lehet „.” a neve."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Egy mappának nem lehet „..” a neve."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "A „.” karakterrel kezdődő nevű mappák rejtettek."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Már van egy fájl vagy mappa azzal a névvel."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Az asztali ikonok mérete"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Kicsi"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Szabványos"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Nagy"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "A személyes mappa megjelenítése az asztalon"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "A kuka ikon megjelenítése az asztalon"
+
+#: desktopGrid.js:323
+msgid "New Folder"
+msgstr "Új mappa"
+
+#: desktopGrid.js:325
+msgid "Paste"
+msgstr "Beillesztés"
+
+#: desktopGrid.js:326
+msgid "Undo"
+msgstr "Visszavonás"
+
+#: desktopGrid.js:327
+msgid "Redo"
+msgstr "Újra"
+
+#: desktopGrid.js:329
+msgid "Show Desktop in Files"
+msgstr "Asztal megjelenítése a Fájlokban"
+
+#: desktopGrid.js:330 fileItem.js:610
+msgid "Open in Terminal"
+msgstr "Megnyitás terminálban"
+
+#: desktopGrid.js:332
+msgid "Change Background…"
+msgstr "Háttér megváltoztatása…"
+
+#: desktopGrid.js:334
+msgid "Display Settings"
+msgstr "Megjelenítés beállításai"
+
+#: desktopGrid.js:335
+msgid "Settings"
+msgstr "Beállítások"
+
+#: desktopGrid.js:582
+msgid "Enter file name…"
+msgstr "Adjon meg egy fájlnevet…"
+
+#: desktopGrid.js:586
+msgid "OK"
+msgstr "Rendben"
+
+#: desktopIconsUtil.js:61
+msgid "Command not found"
+msgstr "A parancs nem található"
+
+#: fileItem.js:494
+msgid "Don’t Allow Launching"
+msgstr "Ne engedélyezzen indítást"
+
+#: fileItem.js:496
+msgid "Allow Launching"
+msgstr "Indítás engedélyezése"
+
+#: fileItem.js:578
+msgid "Open"
+msgstr "Megnyitás"
+
+#: fileItem.js:582
+msgid "Open With Other Application"
+msgstr "Megnyitás egyéb alkalmazással"
+
+#: fileItem.js:586
+msgid "Cut"
+msgstr "Kivágás"
+
+#: fileItem.js:587
+msgid "Copy"
+msgstr "Másolás"
+
+#: fileItem.js:589
+msgid "Rename…"
+msgstr "Átnevezés…"
+
+#: fileItem.js:590
+msgid "Move to Trash"
+msgstr "Áthelyezés a Kukába"
+
+#: fileItem.js:600
+msgid "Empty Trash"
+msgstr "Kuka ürítése"
+
+#: fileItem.js:606
+msgid "Properties"
+msgstr "Tulajdonságok"
+
+#: fileItem.js:608
+msgid "Show in Files"
+msgstr "Megjelenítés a Fájlokban"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Ikonméret"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Az asztali ikonok méretének beállítása."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Személyes mappa megjelenítése"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "A személyes mappa megjelenítése az asztalon."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Kuka ikon megjelenítése"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "A kuka ikon megjelenítése az asztalon."
diff --git a/po/id.po b/po/id.po
index 8986a5e..29f27b6 100644
--- a/po/id.po
+++ b/po/id.po
@@ -1,11 +1,20 @@
+# #-#-#-#-# id.po (gnome-shell-extensions master) #-#-#-#-#
# Indonesian translation for gnome-shell-extensions.
# Copyright (C) 2012 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
#
# Andika Triwidada <andika gmail com>, 2012, 2013.
# Dirgita <dirgitadevina yahoo co id>, 2012.
+# #-#-#-#-# id.po (desktop-icons master) #-#-#-#-#
+# Indonesian translation for desktop-icons.
+# Copyright (C) 2018 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Kukuh Syafaat <kukuhsyafaat gnome org>, 2018, 2019.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# id.po (gnome-shell-extensions master) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
@@ -20,6 +29,19 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Generator: Poedit 2.0.2\n"
+"#-#-#-#-# id.po (desktop-icons master) #-#-#-#-#\n"
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-04-29 14:11+0000\n"
+"PO-Revision-Date: 2019-07-11 13:57+0700\n"
+"Last-Translator: Kukuh Syafaat <kukuhsyafaat gnome org>\n"
+"Language-Team: Indonesian <gnome-l10n-id googlegroups com>\n"
+"Language: id\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.2.3\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -358,8 +380,183 @@ msgstr "Nama"
msgid "Workspace %d"
msgstr "Ruang Kerja %d"
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Nama folder baru"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Buat"
+
+#: createFolderDialog.js:74 desktopGrid.js:592
+msgid "Cancel"
+msgstr "Batal"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Nama folder tak boleh memuat \"/\"."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Sebuah folder tak bisa dinamai \".\"."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Sebuah folder tak bisa dinamai \"..\"."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Folder dengan \".\" di awal nama mereka disembunyikan."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Folder dengan nama itu sudah ada."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Ukuran untuk ikon destop"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Kecil"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standar"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Besar"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Tampilkan folder pribadi di destop"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Tampilkan ikon tong sampah di destop"
+
+#: desktopGrid.js:323
+msgid "New Folder"
+msgstr "Folder Baru"
+
+#: desktopGrid.js:325
+msgid "Paste"
+msgstr "Tempel"
+
+#: desktopGrid.js:326
+msgid "Undo"
+msgstr "Tak Jadi"
+
+#: desktopGrid.js:327
+msgid "Redo"
+msgstr "Jadi Lagi"
+
+#: desktopGrid.js:329
+msgid "Show Desktop in Files"
+msgstr "Tampilkan Destop pada Berkas"
+
+#: desktopGrid.js:330 fileItem.js:610
+msgid "Open in Terminal"
+msgstr "Buka dalam Terminal"
+
+#: desktopGrid.js:332
+msgid "Change Background…"
+msgstr "Ubah Latar Belakang…"
+
+#: desktopGrid.js:334
+msgid "Display Settings"
+msgstr "Pengaturan Tampilan"
+
+#: desktopGrid.js:335
+msgid "Settings"
+msgstr "Pengaturan"
+
+#: desktopGrid.js:582
+msgid "Enter file name…"
+msgstr "Masukkan nama berkas…"
+
+#: desktopGrid.js:586
+msgid "OK"
+msgstr "OK"
+
+#: desktopIconsUtil.js:61
+msgid "Command not found"
+msgstr "Perintah tidak ditemukan"
+
+#: fileItem.js:494
+msgid "Don’t Allow Launching"
+msgstr "Jangan Izinkan Peluncuran"
+
+#: fileItem.js:496
+msgid "Allow Launching"
+msgstr "Izinkan Peluncuran"
+
+#: fileItem.js:578
+msgid "Open"
+msgstr "Buka"
+
+#: fileItem.js:582
+msgid "Open With Other Application"
+msgstr "Buka Dengan Aplikasi Lain"
+
+#: fileItem.js:586
+msgid "Cut"
+msgstr "Potong"
+
+#: fileItem.js:587
+msgid "Copy"
+msgstr "Salin"
+
+#: fileItem.js:589
+msgid "Rename…"
+msgstr "Ganti Nama…"
+
+#: fileItem.js:590
+msgid "Move to Trash"
+msgstr "Pindahkan ke Tong Sampah"
+
+#: fileItem.js:600
+msgid "Empty Trash"
+msgstr "Kosongkan Tong Sampah"
+
+#: fileItem.js:606
+msgid "Properties"
+msgstr "Properti"
+
+#: fileItem.js:608
+msgid "Show in Files"
+msgstr "Tampilkan pada Berkas"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Ukuran ikon"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Set ukuran untuk ikon destop."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Tampilkan folder pribadi"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Tampilkan folder pribadi di destop."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Tampilkan ikon tong sampah"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Tampilkan ikon tong sampah di destop."
+
#~ msgid "CPU"
#~ msgstr "CPU"
#~ msgid "Memory"
#~ msgstr "Memori"
+
+#~ msgid "Huge"
+#~ msgstr "Sangat besar"
diff --git a/po/it.po b/po/it.po
index 4e3a59c..2d215b1 100644
--- a/po/it.po
+++ b/po/it.po
@@ -1,3 +1,4 @@
+# #-#-#-#-# it.po (gnome-shell-extensions) #-#-#-#-#
# Italian translations for GNOME Shell extensions
# Copyright (C) 2011 Giovanni Campagna et al.
# Copyright (C) 2012, 2013, 2014, 2015, 2017 The Free Software Foundation, Inc.
@@ -6,8 +7,17 @@
# Milo Casagrande <milo milo name>, 2013, 2014, 2015, 2017.
# Gianvito Cavasoli <gianvito gmx it>, 2017.
#
+# #-#-#-#-# it.po (desktop-icons master) #-#-#-#-#
+# Italian translation for desktop-icons.
+# Copyright (C) 2019 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Massimo Branchini <max bra gtalk gmail com>, 2019.
+# Milo Casagrande <milo milo name>, 2019.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# it.po (gnome-shell-extensions) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
@@ -21,6 +31,20 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.8.12\n"
+"#-#-#-#-# it.po (desktop-icons master) #-#-#-#-#\n"
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-03-01 12:11+0000\n"
+"PO-Revision-Date: 2019-03-12 09:51+0100\n"
+"Last-Translator: Milo Casagrande <milo milo name>\n"
+"Language-Team: Italian <tp lists linux it>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 2.2.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -362,3 +386,171 @@ msgstr "Nome"
#, javascript-format
msgid "Workspace %d"
msgstr "Spazio di lavoro %d"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Nuova cartella"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Crea"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "Annulla"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "I nomi di cartelle non possono contenere il carattere «/»"
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Una cartella non può essere chiamata «.»."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Una cartella non può essere chiamata «..»."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Cartelle il cui nome inizia con «.» sono nascoste."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Esiste già un file o una cartella con quel nome."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Dimensione delle icone della scrivania"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Piccola"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Normale"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Grande"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Mostra la cartella personale sulla scrivania"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Mostra il cestino sulla scrivania"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Nuova cartella"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Incolla"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Annulla"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Ripeti"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Mostra la scrivania in File"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Apri in Terminale"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Cambia lo sfondo…"
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "Impostazioni dello schermo"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Impostazioni"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Indicare un nome per il file…"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "Ok"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "Non permettere l'esecuzione"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Permetti l'esecuzione"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Apri"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Apri con altra applicazione"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Taglia"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Copia"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Rinomina…"
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "Sposta nel cestino"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Svuota il cestino"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Proprietà"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "Mostra in File"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Dimensione dell'icona"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Imposta la grandezza delle icone della scrivania."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Mostra la cartella personale"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Mostra la cartella personale sulla scrivania."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Mostra il cestino"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Mostra il cestino sulla scrivania."
diff --git a/po/ja.po b/po/ja.po
index a2201ef..df5646d 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -1,3 +1,4 @@
+# #-#-#-#-# ja.po (gnome-shell-extensions master) #-#-#-#-#
# gnome-shell-extensions ja.po
# Copyright (C) 2011-2013 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
@@ -7,8 +8,16 @@
# Ikuya Awashiro <ikuya fruitsbasket info>, 2014.
# Hajime Taira <htaira redhat com>, 2014, 2015.
#
+# #-#-#-#-# ja.po (desktop-icons master) #-#-#-#-#
+# Japanese translation for desktop-icons.
+# Copyright (C) 2019 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# sicklylife <translation sicklylife jp>, 2019.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# ja.po (gnome-shell-extensions master) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
@@ -21,6 +30,19 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
+"#-#-#-#-# ja.po (desktop-icons master) #-#-#-#-#\n"
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-04-29 14:11+0000\n"
+"PO-Revision-Date: 2019-08-29 21:30+0900\n"
+"Last-Translator: sicklylife <translation sicklylife jp>\n"
+"Language-Team: Japanese <gnome-translation gnome gr jp>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -270,6 +292,188 @@ msgstr "名前"
msgid "Workspace %d"
msgstr "ワークスペース %d"
+#: desktopGrid.js:334
+#, fuzzy
+msgid "Display Settings"
+msgstr ""
+"#-#-#-#-# ja.po (gnome-shell-extensions master) #-#-#-#-#\n"
+"ディスプレイ設定\n"
+"#-#-#-#-# ja.po (desktop-icons master) #-#-#-#-#\n"
+"ディスプレイの設定"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+#, fuzzy
+msgid "Icon size"
+msgstr ""
+"#-#-#-#-# ja.po (gnome-shell-extensions master) #-#-#-#-#\n"
+"アイコンのサイズ\n"
+"#-#-#-#-# ja.po (desktop-icons master) #-#-#-#-#\n"
+"アイコンサイズ"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "新しいフォルダー名"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "作成"
+
+#: createFolderDialog.js:74 desktopGrid.js:592
+msgid "Cancel"
+msgstr "キャンセル"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "“/”は、フォルダー名に含められません。"
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "“.”という名前をフォルダーに付けられません。"
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "“..”という名前をフォルダーに付けられません。"
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "名前が“.”で始まるフォルダーは、隠しフォルダーになります。"
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "その名前のファイルかフォルダーがすでに存在します。"
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "デスクトップアイコンのサイズ"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "小さい"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "標準"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "大きい"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "デスクトップにホームフォルダーを表示する"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "デスクトップにゴミ箱を表示する"
+
+#: desktopGrid.js:323
+msgid "New Folder"
+msgstr "新しいフォルダー"
+
+#: desktopGrid.js:325
+msgid "Paste"
+msgstr "貼り付け"
+
+#: desktopGrid.js:326
+msgid "Undo"
+msgstr "元に戻す"
+
+#: desktopGrid.js:327
+msgid "Redo"
+msgstr "やり直す"
+
+#: desktopGrid.js:329
+msgid "Show Desktop in Files"
+msgstr "“ファイル”でデスクトップを表示"
+
+#: desktopGrid.js:330 fileItem.js:610
+msgid "Open in Terminal"
+msgstr "端末を開く"
+
+#: desktopGrid.js:332
+msgid "Change Background…"
+msgstr "背景の変更…"
+
+#: desktopGrid.js:335
+msgid "Settings"
+msgstr "設定"
+
+#: desktopGrid.js:582
+msgid "Enter file name…"
+msgstr "ファイル名を入力してください…"
+
+#: desktopGrid.js:586
+msgid "OK"
+msgstr "OK"
+
+#: desktopIconsUtil.js:61
+msgid "Command not found"
+msgstr "コマンドが見つかりません"
+
+#: fileItem.js:494
+msgid "Don’t Allow Launching"
+msgstr "起動を許可しない"
+
+#: fileItem.js:496
+msgid "Allow Launching"
+msgstr "起動を許可する"
+
+#: fileItem.js:578
+msgid "Open"
+msgstr "開く"
+
+#: fileItem.js:582
+msgid "Open With Other Application"
+msgstr "別のアプリケーションで開く"
+
+#: fileItem.js:586
+msgid "Cut"
+msgstr "切り取り"
+
+#: fileItem.js:587
+msgid "Copy"
+msgstr "コピー"
+
+#: fileItem.js:589
+msgid "Rename…"
+msgstr "名前の変更…"
+
+#: fileItem.js:590
+msgid "Move to Trash"
+msgstr "ゴミ箱へ移動する"
+
+#: fileItem.js:600
+msgid "Empty Trash"
+msgstr "ゴミ箱を空にする"
+
+#: fileItem.js:606
+msgid "Properties"
+msgstr "プロパティ"
+
+#: fileItem.js:608
+msgid "Show in Files"
+msgstr "“ファイル”で表示"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "デスクトップのアイコンサイズを設定します。"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "ホームフォルダーを表示する"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "デスクトップにホームフォルダーを表示します。"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "ゴミ箱アイコンを表示する"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "デスクトップにゴミ箱のアイコンを表示します。"
+
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "モーダルダイアログを親ウィンドウに結び付ける"
@@ -365,9 +569,6 @@ msgstr "ワークスペース %d"
#~ msgid "Display"
#~ msgstr "ディスプレイ"
-#~ msgid "Display Settings"
-#~ msgstr "ディスプレイ設定"
-
#~ msgid "Suspend"
#~ msgstr "サスペンド"
@@ -413,9 +614,6 @@ msgstr "ワークスペース %d"
#~ msgid "Remove from Favorites"
#~ msgstr "お気に入りから削除"
-#~ msgid "Icon size"
-#~ msgstr "アイコンのサイズ"
-
#~ msgid "Position of the dock"
#~ msgstr "ドックの位置"
diff --git a/po/nl.po b/po/nl.po
index a7998d3..bbf7b1f 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,11 +1,20 @@
+# #-#-#-#-# nl.po (gnome-shell-extensions master) #-#-#-#-#
# Dutch translation for gnome-shell-extensions.
# Copyright (C) 2013 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Reinout van Schouwen <reinouts gnome org>, 2013, 2014.
# Nathan Follens <nthn unseen is>, 2015-2017.
# Hannie Dumoleyn <hannie ubuntu-nl org>, 2015.
+# #-#-#-#-# nl.po (desktop-icons master) #-#-#-#-#
+# Dutch translation for desktop-icons.
+# Copyright (C) 2019 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Nathan Follens <nthn unseen is>, 2019.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# nl.po (gnome-shell-extensions master) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
@@ -20,6 +29,20 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.0.2\n"
"X-Project-Style: gnome\n"
+"#-#-#-#-# nl.po (desktop-icons master) #-#-#-#-#\n"
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-03-01 12:11+0000\n"
+"PO-Revision-Date: 2019-03-04 19:46+0100\n"
+"Last-Translator: Nathan Follens <nthn unseen is>\n"
+"Language-Team: Dutch <gnome-nl-list gnome org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 2.2.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -360,6 +383,174 @@ msgstr "Naam"
msgid "Workspace %d"
msgstr "Werkblad %d"
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Nieuwe mapnaam"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Aanmaken"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "Annuleren"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Mapnamen kunnen geen ‘/’ bevatten."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Een map kan niet ‘.’ worden genoemd."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Een map kan niet ‘..’ worden genoemd."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Mappen waarvan de naam begint met ‘.’ zijn verborgen."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Er bestaat al een bestand of map met die naam."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Grootte van bureaubladpictogrammen"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Klein"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standaard"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Groot"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Toon de persoonlijke map op het bureaublad"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Toon het prullenbakpictogram op het bureaublad"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Nieuwe map"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Plakken"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Ongedaan maken"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Opnieuw"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Bureaublad tonen in Bestanden"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Openen in terminalvenster"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Achtergrond aanpassen…"
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "Scherminstellingen"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Instellingen"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Voer bestandsnaam in…"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "Oké"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "Toepassingen starten niet toestaan"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Toepassingen starten toestaan"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Openen"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Met andere toepassing openen"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Knippen"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Kopiëren"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Hernoemen…"
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "Verplaatsen naar prullenbak"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Prullenbak legen"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Eigenschappen"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "Tonen in Bestanden"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Pictogramgrootte"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Stel de grootte van de bureaubladpictogrammen in."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Persoonlijke map tonen"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Toon de persoonlijke map op het bureaublad."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Prullenbakpictogram tonen"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Toon het prullenbakpictogram op het bureaublad."
+
#~ msgid "GNOME Shell Classic"
#~ msgstr "Gnome Shell klassiek"
diff --git a/po/pl.po b/po/pl.po
index 35799ee..a779932 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,11 +1,21 @@
+# #-#-#-#-# pl.po (gnome-shell-extensions) #-#-#-#-#
# Polish translation for gnome-shell-extensions.
# Copyright © 2011-2017 the gnome-shell-extensions authors.
# This file is distributed under the same license as the gnome-shell-extensions package.
# Piotr Drąg <piotrdrag gmail com>, 2011-2017.
# Aviary.pl <community-poland mozilla org>, 2011-2017.
#
+# #-#-#-#-# pl.po (desktop-icons) #-#-#-#-#
+# Polish translation for desktop-icons.
+# Copyright © 2018-2019 the desktop-icons authors.
+# This file is distributed under the same license as the desktop-icons package.
+# Piotr Drąg <piotrdrag gmail com>, 2018-2019.
+# Aviary.pl <community-poland mozilla org>, 2018-2019.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# pl.po (gnome-shell-extensions) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
@@ -19,6 +29,20 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
+"#-#-#-#-# pl.po (desktop-icons) #-#-#-#-#\n"
+"Project-Id-Version: desktop-icons\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-04-29 14:11+0000\n"
+"PO-Revision-Date: 2019-05-01 13:03+0200\n"
+"Last-Translator: Piotr Drąg <piotrdrag gmail com>\n"
+"Language-Team: Polish <community-poland mozilla org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -358,3 +382,175 @@ msgstr "Nazwa"
#, javascript-format
msgid "Workspace %d"
msgstr "%d. obszar roboczy"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Nazwa nowego katalogu"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Utwórz"
+
+#: createFolderDialog.js:74 desktopGrid.js:592
+msgid "Cancel"
+msgstr "Anuluj"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Nazwy katalogów nie mogą zawierać znaku „/”."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Katalog nie może mieć nazwy „.”."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Katalog nie może mieć nazwy „..”."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Katalogi z „.” na początku nazwy są ukryte."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Plik lub katalog o tej nazwie już istnieje."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Rozmiar ikon na pulpicie"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Mały"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standardowy"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Duży"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Katalog domowy na pulpicie"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Kosz na pulpicie"
+
+#: desktopGrid.js:323
+msgid "New Folder"
+msgstr "Nowy katalog"
+
+#: desktopGrid.js:325
+msgid "Paste"
+msgstr "Wklej"
+
+#: desktopGrid.js:326
+msgid "Undo"
+msgstr "Cofnij"
+
+#: desktopGrid.js:327
+msgid "Redo"
+msgstr "Ponów"
+
+#: desktopGrid.js:329
+msgid "Show Desktop in Files"
+msgstr "Wyświetl pulpit w menedżerze plików"
+
+#: desktopGrid.js:330 fileItem.js:610
+msgid "Open in Terminal"
+msgstr "Otwórz w terminalu"
+
+#: desktopGrid.js:332
+msgid "Change Background…"
+msgstr "Zmień tło…"
+
+#: desktopGrid.js:334
+msgid "Display Settings"
+msgstr "Ustawienia ekranu"
+
+#: desktopGrid.js:335
+msgid "Settings"
+msgstr "Ustawienia"
+
+#: desktopGrid.js:582
+msgid "Enter file name…"
+msgstr "Nazwa pliku…"
+
+#: desktopGrid.js:586
+msgid "OK"
+msgstr "OK"
+
+#: desktopIconsUtil.js:61
+msgid "Command not found"
+msgstr "Nie odnaleziono polecenia"
+
+#: fileItem.js:494
+msgid "Don’t Allow Launching"
+msgstr "Nie zezwalaj na uruchamianie"
+
+#: fileItem.js:496
+msgid "Allow Launching"
+msgstr "Zezwól na uruchamianie"
+
+#: fileItem.js:578
+msgid "Open"
+msgstr "Otwórz"
+
+#: fileItem.js:582
+msgid "Open With Other Application"
+msgstr "Otwórz za pomocą innego programu"
+
+#: fileItem.js:586
+msgid "Cut"
+msgstr "Wytnij"
+
+#: fileItem.js:587
+msgid "Copy"
+msgstr "Skopiuj"
+
+#: fileItem.js:589
+msgid "Rename…"
+msgstr "Zmień nazwę…"
+
+#: fileItem.js:590
+msgid "Move to Trash"
+msgstr "Przenieś do kosza"
+
+#: fileItem.js:600
+msgid "Empty Trash"
+msgstr "Opróżnij kosz"
+
+#: fileItem.js:606
+msgid "Properties"
+msgstr "Właściwości"
+
+#: fileItem.js:608
+msgid "Show in Files"
+msgstr "Wyświetl w menedżerze plików"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Rozmiar ikon"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Ustawia rozmiar ikon na pulpicie."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Katalog domowy"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Wyświetla katalog domowy na pulpicie."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Kosz"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Wyświetla kosz na pulpicie."
diff --git a/po/pt_BR.po b/po/pt_BR.po
index d029648..f1e17f7 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -1,3 +1,4 @@
+# #-#-#-#-# pt_BR.po (gnome-shell-extensions master) #-#-#-#-#
# Brazilian Portuguese translation for gnome-shell-extensions.
# Copyright (C) 2017 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
@@ -9,8 +10,17 @@
# Og Maciel <ogmaciel gnome org>, 2012.
# Enrico Nicoletto <liverig gmail com>, 2013, 2014.
# Rafael Fontenelle <rafaelff gnome org>, 2013, 2017.
+# #-#-#-#-# pt_BR.po (desktop-icons master) #-#-#-#-#
+# Brazilian Portuguese translation for desktop-icons.
+# Copyright (C) 2019 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Enrico Nicoletto <liverig gmail com>, 2018.
+# Rafael Fontenelle <rafaelff gnome org>, 2018-2019.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# pt_BR.po (gnome-shell-extensions master) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
@@ -25,6 +35,20 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Virtaal 1.0.0-beta1\n"
"X-Project-Style: gnome\n"
+"#-#-#-#-# pt_BR.po (desktop-icons master) #-#-#-#-#\n"
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-04-29 14:11+0000\n"
+"PO-Revision-Date: 2019-04-29 17:35-0300\n"
+"Last-Translator: Rafael Fontenelle <rafaelff gnome org>\n"
+"Language-Team: Brazilian Portuguese <gnome-pt_br-list gnome org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"X-Generator: Gtranslator 3.32.0\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -366,6 +390,183 @@ msgstr "Nome"
msgid "Workspace %d"
msgstr "Espaço de trabalho %d"
+#: desktopGrid.js:334
+#, fuzzy
+msgid "Display Settings"
+msgstr ""
+"#-#-#-#-# pt_BR.po (gnome-shell-extensions master) #-#-#-#-#\n"
+"Configurações de tela\n"
+"#-#-#-#-# pt_BR.po (desktop-icons master) #-#-#-#-#\n"
+"Configurações de exibição"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Tamanho do ícone"
+
+#: createFolderDialog.js:74 desktopGrid.js:592
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Nome da nova pasta"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Criar"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Nomes de pastas não podem conter “/”."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Uma pasta não pode ser chamada “.”."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Uma pasta não pode ser chamada “..”."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Pastas com “.” no começo de seus nomes são ocultas."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Já existe um arquivo ou uma pasta com esse nome."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Tamanho para os ícones da área de trabalho"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Pequeno"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Padrão"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Grande"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Mostrar a pasta pessoal na área de trabalho"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Mostrar o ícone da lixeira na área de trabalho"
+
+#: desktopGrid.js:323
+msgid "New Folder"
+msgstr "Nova pasta"
+
+#: desktopGrid.js:325
+msgid "Paste"
+msgstr "Colar"
+
+#: desktopGrid.js:326
+msgid "Undo"
+msgstr "Desfazer"
+
+#: desktopGrid.js:327
+msgid "Redo"
+msgstr "Refazer"
+
+#: desktopGrid.js:329
+msgid "Show Desktop in Files"
+msgstr "Mostrar a área de trabalho no Arquivos"
+
+#: desktopGrid.js:330 fileItem.js:610
+msgid "Open in Terminal"
+msgstr "Abrir no terminal"
+
+#: desktopGrid.js:332
+msgid "Change Background…"
+msgstr "Alterar plano de fundo…"
+
+#: desktopGrid.js:335
+msgid "Settings"
+msgstr "Configurações"
+
+#: desktopGrid.js:582
+msgid "Enter file name…"
+msgstr "Insira um nome de arquivo…"
+
+#: desktopGrid.js:586
+msgid "OK"
+msgstr "OK"
+
+#: desktopIconsUtil.js:61
+msgid "Command not found"
+msgstr "Comando não encontrado"
+
+#: fileItem.js:494
+msgid "Don’t Allow Launching"
+msgstr "Não permitir iniciar"
+
+#: fileItem.js:496
+msgid "Allow Launching"
+msgstr "Permitir iniciar"
+
+#: fileItem.js:578
+msgid "Open"
+msgstr "Abrir"
+
+#: fileItem.js:582
+msgid "Open With Other Application"
+msgstr "Abrir com outro aplicativo"
+
+#: fileItem.js:586
+msgid "Cut"
+msgstr "Recortar"
+
+#: fileItem.js:587
+msgid "Copy"
+msgstr "Copiar"
+
+#: fileItem.js:589
+msgid "Rename…"
+msgstr "Renomear…"
+
+#: fileItem.js:590
+msgid "Move to Trash"
+msgstr "Mover para a lixeira"
+
+#: fileItem.js:600
+msgid "Empty Trash"
+msgstr "Esvaziar lixeira"
+
+#: fileItem.js:606
+msgid "Properties"
+msgstr "Propriedades"
+
+#: fileItem.js:608
+msgid "Show in Files"
+msgstr "Mostrar no Arquivos"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Define o tamanho para os ícones da área de trabalho."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Mostrar pasta pessoal"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Mostra a pasta pessoal na área de trabalho."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Mostrar ícone da lixeira"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Mostra o ícone da lixeira na área de trabalho."
+
#~ msgid "CPU"
#~ msgstr "CPU"
@@ -414,9 +615,6 @@ msgstr "Espaço de trabalho %d"
#~ msgid "Display"
#~ msgstr "Tela"
-#~ msgid "Display Settings"
-#~ msgstr "Configurações de tela"
-
#~ msgid "The application icon mode."
#~ msgstr "O modo de ícone do aplicativo."
@@ -451,9 +649,6 @@ msgstr "Espaço de trabalho %d"
#~ "Define a posição do dock na tela. Os valores permitidos são \"right\" ou "
#~ "\"left\""
-#~ msgid "Icon size"
-#~ msgstr "Tamanho do ícone"
-
#~ msgid "Sets icon size of the dock."
#~ msgstr "Define o tamanho do ícone do dock."
@@ -613,9 +808,6 @@ msgstr "Espaço de trabalho %d"
#~ msgid "Alt Tab Behaviour"
#~ msgstr "Comportamento do Alt Tab"
-#~ msgid "Cancel"
-#~ msgstr "Cancelar"
-
#~ msgid "Ask the user for a default behaviour if true."
#~ msgstr "Pergunte ao usuário por um comportamento padrão se marcado."
@@ -639,3 +831,9 @@ msgstr "Espaço de trabalho %d"
#~ msgid "Log Out..."
#~ msgstr "Encerrar sessão..."
+
+#~ msgid "Huge"
+#~ msgstr "Enorme"
+
+#~ msgid "Ok"
+#~ msgstr "Ok"
diff --git a/po/ru.po b/po/ru.po
index c18c0ba..9320c3c 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -1,11 +1,20 @@
+# #-#-#-#-# ru.po (gnome-shell-extensions gnome-3-0) #-#-#-#-#
# Russian translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Yuri Myasoedov <omerta13 yandex ru>, 2011, 2012, 2013.
# Stas Solovey <whats_up tut by>, 2011, 2012, 2013, 2015, 2017.
#
+# #-#-#-#-# ru.po #-#-#-#-#
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Eaglers <eaglersdeveloper gmail com>, 2018.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# ru.po (gnome-shell-extensions gnome-3-0) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
@@ -20,6 +29,21 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 2.0.3\n"
+"#-#-#-#-# ru.po #-#-#-#-#\n"
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2018-11-22 08:42+0000\n"
+"PO-Revision-Date: 2018-11-22 22:02+0300\n"
+"Last-Translator: Stas Solovey <whats_up tut by>\n"
+"Language-Team: Russian <gnome-cyr gnome org>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Poedit 2.2\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -360,6 +384,138 @@ msgstr "Название"
msgid "Workspace %d"
msgstr "Рабочая область %d"
+#: prefs.js:89
+msgid "Size for the desktop icons"
+msgstr "Размер значков"
+
+#: prefs.js:89
+msgid "Small"
+msgstr "Маленький"
+
+#: prefs.js:89
+msgid "Standard"
+msgstr "Стандартный"
+
+#: prefs.js:89
+msgid "Large"
+msgstr "Большой"
+
+#: prefs.js:89
+msgid "Huge"
+msgstr "Огромный"
+
+#: prefs.js:90
+msgid "Show the personal folder in the desktop"
+msgstr "Показывать домашнюю папку на рабочем столе"
+
+#: prefs.js:91
+msgid "Show the trash icon in the desktop"
+msgstr "Показывать «Корзину» на рабочем столе"
+
+#: desktopGrid.js:185 desktopGrid.js:304
+msgid "New Folder"
+msgstr "Создать папку"
+
+#: desktopGrid.js:306
+msgid "Paste"
+msgstr "Вставить"
+
+#: desktopGrid.js:307
+msgid "Undo"
+msgstr "Отменить"
+
+#: desktopGrid.js:308
+msgid "Redo"
+msgstr "Повторить"
+
+#: desktopGrid.js:310
+msgid "Open Desktop in Files"
+msgstr "Открыть «Рабочий стол» в «Файлах»"
+
+#: desktopGrid.js:311
+msgid "Open Terminal"
+msgstr "Открыть терминал"
+
+#: desktopGrid.js:313
+msgid "Change Background…"
+msgstr "Изменить фон…"
+
+#: desktopGrid.js:314
+msgid "Display Settings"
+msgstr "Настройки дисплея"
+
+#: desktopGrid.js:315
+msgid "Settings"
+msgstr "Параметры"
+
+#: desktopGrid.js:569
+msgid "Enter file name…"
+msgstr "Ввести имя файла…"
+
+#: desktopGrid.js:573
+msgid "Ok"
+msgstr "ОК"
+
+#: desktopGrid.js:579
+msgid "Cancel"
+msgstr "Отмена"
+
+#: fileItem.js:390
+msgid "Open"
+msgstr "Открыть"
+
+#: fileItem.js:393
+msgid "Cut"
+msgstr "Вырезать"
+
+#: fileItem.js:394
+msgid "Copy"
+msgstr "Вставить"
+
+#: fileItem.js:395
+msgid "Rename"
+msgstr "Переименовать"
+
+#: fileItem.js:396
+msgid "Move to Trash"
+msgstr "Переместить в корзину"
+
+#: fileItem.js:400
+msgid "Empty trash"
+msgstr "Очистить корзину"
+
+#: fileItem.js:406
+msgid "Properties"
+msgstr "Свойства"
+
+#: fileItem.js:408
+msgid "Show in Files"
+msgstr "Показать в «Файлах»"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Icon size"
+msgstr "Размер значков"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:13
+msgid "Set the size for the desktop icons."
+msgstr "Установить размер значков на рабочем столе."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show personal folder"
+msgstr "Показывать домашнюю папку"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:18
+msgid "Show the personal folder in the desktop."
+msgstr "Показывать значок домашней папки на рабочем столе."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show trash icon"
+msgstr "Показывать значок корзины"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:23
+msgid "Show the trash icon in the desktop."
+msgstr "Показывать значок корзины на рабочем столе."
+
#~ msgid "CPU"
#~ msgstr "ЦП"
diff --git a/po/sv.po b/po/sv.po
index 3aeafac..33eba9f 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,3 +1,4 @@
+# #-#-#-#-# sv.po (gnome-shell-extensions) #-#-#-#-#
# Swedish translation for gnome-shell-extensions.
# Copyright © 2011, 2012, 2014, 2015, 2017 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell-extensions package.
@@ -5,8 +6,17 @@
# Mattias Eriksson <snaggen gmail com>, 2014.
# Anders Jonsson <anders jonsson norsjovallen se>, 2015, 2017.
#
+# #-#-#-#-# sv.po (desktop-icons master) #-#-#-#-#
+# Swedish translation for desktop-icons.
+# Copyright © 2018, 2019 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Anders Jonsson <anders jonsson norsjovallen se>, 2018, 2019.
+# Josef Andersson <l10nl18nsweja gmail com>, 2019.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# sv.po (gnome-shell-extensions) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
@@ -19,6 +29,20 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.4\n"
+"#-#-#-#-# sv.po (desktop-icons master) #-#-#-#-#\n"
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-04-29 14:11+0000\n"
+"PO-Revision-Date: 2019-08-22 17:52+0200\n"
+"Last-Translator: Anders Jonsson <anders jonsson norsjovallen se>\n"
+"Language-Team: Swedish <tp-sv listor tp-sv se>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 2.2.3\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -355,8 +379,188 @@ msgstr "Namn"
msgid "Workspace %d"
msgstr "Arbetsyta %d"
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Nytt mappnamn"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Skapa"
+
+#: createFolderDialog.js:74 desktopGrid.js:592
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Mappnamn kan inte innehålla ”/”."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "En mapp kan inte kallas ”.”."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "En mapp kan inte kallas ”..”."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Mappar med ”.” i början på sitt namn är dolda."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Det finns redan en fil eller mapp med det namnet"
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Storlek för skrivbordsikonerna"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Liten"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standard"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Stor"
+
+# TODO: *ON* the desktop?
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Visa den personliga mappen på skrivbordet"
+
+# TODO: *ON* the desktop?
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Visa papperskorgsikonen på skrivbordet"
+
+#: desktopGrid.js:323
+msgid "New Folder"
+msgstr "Ny mapp"
+
+#: desktopGrid.js:325
+msgid "Paste"
+msgstr "Klistra in"
+
+#: desktopGrid.js:326
+msgid "Undo"
+msgstr "Ångra"
+
+#: desktopGrid.js:327
+msgid "Redo"
+msgstr "Gör om"
+
+#: desktopGrid.js:329
+msgid "Show Desktop in Files"
+msgstr "Visa skrivbord i Filer"
+
+#: desktopGrid.js:330 fileItem.js:610
+msgid "Open in Terminal"
+msgstr "Öppna i terminal"
+
+#: desktopGrid.js:332
+msgid "Change Background…"
+msgstr "Ändra bakgrund…"
+
+#: desktopGrid.js:334
+msgid "Display Settings"
+msgstr "Visningsinställningar"
+
+#: desktopGrid.js:335
+msgid "Settings"
+msgstr "Inställningar"
+
+#: desktopGrid.js:582
+msgid "Enter file name…"
+msgstr "Ange filnamn…"
+
+#: desktopGrid.js:586
+msgid "OK"
+msgstr "OK"
+
+#: desktopIconsUtil.js:61
+msgid "Command not found"
+msgstr "Kommandot hittades inte"
+
+#: fileItem.js:494
+msgid "Don’t Allow Launching"
+msgstr "Tillåt ej programstart"
+
+#: fileItem.js:496
+msgid "Allow Launching"
+msgstr "Tillåt programstart"
+
+#: fileItem.js:578
+msgid "Open"
+msgstr "Öppna"
+
+#: fileItem.js:582
+msgid "Open With Other Application"
+msgstr "Öppna med annat program"
+
+#: fileItem.js:586
+msgid "Cut"
+msgstr "Klipp ut"
+
+#: fileItem.js:587
+msgid "Copy"
+msgstr "Kopiera"
+
+#: fileItem.js:589
+msgid "Rename…"
+msgstr "Byt namn…"
+
+#: fileItem.js:590
+msgid "Move to Trash"
+msgstr "Flytta till papperskorgen"
+
+#: fileItem.js:600
+msgid "Empty Trash"
+msgstr "Töm papperskorgen"
+
+#: fileItem.js:606
+msgid "Properties"
+msgstr "Egenskaper"
+
+#: fileItem.js:608
+msgid "Show in Files"
+msgstr "Visa i Filer"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Ikonstorlek"
+
+# TODO: *ON* the desktop?
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Ställ in storleken för skrivbordsikonerna."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Visa personlig mapp"
+
+# TODO: *ON* the desktop?
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Visa den personliga mappen på skrivbordet."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Visa papperskorgsikon"
+
+# TODO: *ON* the desktop?
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Visa papperskorgsikonen på skrivbordet."
+
#~ msgid "CPU"
#~ msgstr "CPU"
#~ msgid "Memory"
#~ msgstr "Minne"
+
+#~ msgid "Huge"
+#~ msgstr "Enorm"
diff --git a/po/tr.po b/po/tr.po
index 6243374..30ceafa 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -1,3 +1,4 @@
+# #-#-#-#-# tr.po (gnome-shell-extensions master) #-#-#-#-#
# Turkish translation for gnome-shell-extensions.
# Copyright (C) 2012 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
@@ -7,8 +8,19 @@
# Muhammet Kara <muhammetk gmail com>, 2013, 2014, 2015.
# Furkan Tokaç <developmentft gmail com>, 2017.
#
+# #-#-#-#-# tr.po #-#-#-#-#
+# Turkish translation for desktop-icons.
+# Copyright (C) 2000-2019 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+#
+# Sabri Ünal <libreajans gmail com>, 2019.
+# Serdar Sağlam <teknomobil yandex com>, 2019
+# Emin Tufan Çetin <etcetin gmail com>, 2019.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# tr.po (gnome-shell-extensions master) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
@@ -22,6 +34,20 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Gtranslator 2.91.7\n"
+"#-#-#-#-# tr.po #-#-#-#-#\n"
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2019-03-09 14:47+0000\n"
+"PO-Revision-Date: 2019-03-13 13:43+0300\n"
+"Last-Translator: Emin Tufan Çetin <etcetin gmail com>\n"
+"Language-Team: Türkçe <gnome-turk gnome org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Gtranslator 3.30.1\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -362,6 +388,174 @@ msgstr "İsim"
msgid "Workspace %d"
msgstr "Çalışma Alanı %d"
+#: createFolderDialog.js:48
+msgid "New folder name"
+msgstr "Yeni klasör adı"
+
+#: createFolderDialog.js:72
+msgid "Create"
+msgstr "Oluştur"
+
+#: createFolderDialog.js:74 desktopGrid.js:586
+msgid "Cancel"
+msgstr "İptal"
+
+#: createFolderDialog.js:145
+msgid "Folder names cannot contain “/”."
+msgstr "Klasör adları “/” içeremez."
+
+#: createFolderDialog.js:148
+msgid "A folder cannot be called “.”."
+msgstr "Bir klasör “.” olarak adlandırılamaz."
+
+#: createFolderDialog.js:151
+msgid "A folder cannot be called “..”."
+msgstr "Bir klasör “..” olarak adlandırılamaz."
+
+#: createFolderDialog.js:153
+msgid "Folders with “.” at the beginning of their name are hidden."
+msgstr "Adlarının başında “.” bulunan klasörler gizlenir."
+
+#: createFolderDialog.js:155
+msgid "There is already a file or folder with that name."
+msgstr "Zaten bu adda bir dosya veya klasör var."
+
+#: prefs.js:102
+msgid "Size for the desktop icons"
+msgstr "Masaüstü simgeleri boyutu"
+
+#: prefs.js:102
+msgid "Small"
+msgstr "Küçük"
+
+#: prefs.js:102
+msgid "Standard"
+msgstr "Standart"
+
+#: prefs.js:102
+msgid "Large"
+msgstr "Büyük"
+
+#: prefs.js:103
+msgid "Show the personal folder in the desktop"
+msgstr "Kişisel klasörü masaüstünde göster"
+
+#: prefs.js:104
+msgid "Show the trash icon in the desktop"
+msgstr "Çöp kutusunu masaüstünde göster"
+
+#: desktopGrid.js:320
+msgid "New Folder"
+msgstr "Yeni Klasör"
+
+#: desktopGrid.js:322
+msgid "Paste"
+msgstr "Yapıştır"
+
+#: desktopGrid.js:323
+msgid "Undo"
+msgstr "Geri Al"
+
+#: desktopGrid.js:324
+msgid "Redo"
+msgstr "Yinele"
+
+#: desktopGrid.js:326
+msgid "Show Desktop in Files"
+msgstr "Masaüstünü Dosyalarʼda Göster"
+
+#: desktopGrid.js:327 fileItem.js:606
+msgid "Open in Terminal"
+msgstr "Uçbirimde Aç"
+
+#: desktopGrid.js:329
+msgid "Change Background…"
+msgstr "Arka Planı Değiştir…"
+
+#: desktopGrid.js:331
+msgid "Display Settings"
+msgstr "Görüntü Ayarları"
+
+#: desktopGrid.js:332
+msgid "Settings"
+msgstr "Ayarlar"
+
+#: desktopGrid.js:576
+msgid "Enter file name…"
+msgstr "Dosya adını gir…"
+
+#: desktopGrid.js:580
+msgid "OK"
+msgstr "Tamam"
+
+#: fileItem.js:490
+msgid "Don’t Allow Launching"
+msgstr "Başlatmaya İzin Verme"
+
+#: fileItem.js:492
+msgid "Allow Launching"
+msgstr "Başlatmaya İzin Ver"
+
+#: fileItem.js:574
+msgid "Open"
+msgstr "Aç"
+
+#: fileItem.js:578
+msgid "Open With Other Application"
+msgstr "Başka Uygulamayla Aç"
+
+#: fileItem.js:582
+msgid "Cut"
+msgstr "Kes"
+
+#: fileItem.js:583
+msgid "Copy"
+msgstr "Kopyala"
+
+#: fileItem.js:585
+msgid "Rename…"
+msgstr "Yeniden Adlandır…"
+
+#: fileItem.js:586
+msgid "Move to Trash"
+msgstr "Çöpe Taşı"
+
+#: fileItem.js:596
+msgid "Empty Trash"
+msgstr "Çöpü Boşalt"
+
+#: fileItem.js:602
+msgid "Properties"
+msgstr "Özellikler"
+
+#: fileItem.js:604
+msgid "Show in Files"
+msgstr "Dosyalarʼda Göster"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
+msgid "Icon size"
+msgstr "Simge boyutu"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Set the size for the desktop icons."
+msgstr "Masaüstü simgelerinin boyutunu ayarla."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
+msgid "Show personal folder"
+msgstr "Kişisel klasörü göster"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show the personal folder in the desktop."
+msgstr "Kişisel klasörü masaüstünde göster."
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
+msgid "Show trash icon"
+msgstr "Çöp kutusunu göster"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show the trash icon in the desktop."
+msgstr "Çöp kutusu simgesini masaüstünde göster."
+
#~ msgid "CPU"
#~ msgstr "İşlemci"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 74a95f8..fa5ba9b 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -1,10 +1,19 @@
+# #-#-#-#-# zh_TW.po (gnome-shell-extensions gnome-3-0) #-#-#-#-#
# Chinese (Taiwan) translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Cheng-Chia Tseng <pswo10680 gmail com>, 2011.
#
+# #-#-#-#-# zh_TW.po (desktop-icons master) #-#-#-#-#
+# Chinese (Taiwan) translation for desktop-icons.
+# Copyright (C) 2018 desktop-icons's COPYRIGHT HOLDER
+# This file is distributed under the same license as the desktop-icons package.
+# Yi-Jyun Pan <pan93412 gmail com>, 2018.
+#
+#, fuzzy
msgid ""
msgstr ""
+"#-#-#-#-# zh_TW.po (gnome-shell-extensions gnome-3-0) #-#-#-#-#\n"
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
@@ -17,6 +26,19 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.3\n"
+"#-#-#-#-# zh_TW.po (desktop-icons master) #-#-#-#-#\n"
+"Project-Id-Version: desktop-icons master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
+"icons/issues\n"
+"POT-Creation-Date: 2018-10-22 14:12+0000\n"
+"PO-Revision-Date: 2018-10-24 21:31+0800\n"
+"Language-Team: Chinese (Taiwan) <chinese-l10n googlegroups com>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Last-Translator: pan93412 <pan93412 gmail com>\n"
+"X-Generator: Poedit 2.2\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -344,6 +366,127 @@ msgstr "名稱"
msgid "Workspace %d"
msgstr "工作區 %d"
+#: desktopGrid.js:307
+#, fuzzy
+msgid "Display Settings"
+msgstr ""
+"#-#-#-#-# zh_TW.po (gnome-shell-extensions gnome-3-0) #-#-#-#-#\n"
+"顯示設定值\n"
+"#-#-#-#-# zh_TW.po (desktop-icons master) #-#-#-#-#\n"
+"顯示設定"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
+msgid "Icon size"
+msgstr "圖示大小"
+
+#: prefs.js:89
+msgid "Size for the desktop icons"
+msgstr "桌面圖示的大小"
+
+#: prefs.js:89
+msgid "Small"
+msgstr "小圖示"
+
+#: prefs.js:89
+msgid "Standard"
+msgstr "標準大小圖示"
+
+#: prefs.js:89
+msgid "Large"
+msgstr "大圖示"
+
+#: prefs.js:89
+msgid "Huge"
+msgstr "巨大圖示"
+
+#: prefs.js:90
+msgid "Show the personal folder in the desktop"
+msgstr "在桌面顯示個人資料夾"
+
+#: prefs.js:91
+msgid "Show the trash icon in the desktop"
+msgstr "在桌面顯示垃圾桶圖示"
+
+#: desktopGrid.js:178 desktopGrid.js:297
+msgid "New Folder"
+msgstr "新增資料夾"
+
+#: desktopGrid.js:299
+msgid "Paste"
+msgstr "貼上"
+
+#: desktopGrid.js:300
+msgid "Undo"
+msgstr "復原"
+
+#: desktopGrid.js:301
+msgid "Redo"
+msgstr "重做"
+
+#: desktopGrid.js:303
+msgid "Open Desktop in Files"
+msgstr "在《檔案》中開啟桌面"
+
+#: desktopGrid.js:304
+msgid "Open Terminal"
+msgstr "開啟終端器"
+
+#: desktopGrid.js:306
+msgid "Change Background…"
+msgstr "變更背景圖片…"
+
+#: desktopGrid.js:308
+msgid "Settings"
+msgstr "設定"
+
+#: fileItem.js:223
+msgid "Open"
+msgstr "開啟"
+
+#: fileItem.js:226
+msgid "Cut"
+msgstr "剪下"
+
+#: fileItem.js:227
+msgid "Copy"
+msgstr "複製"
+
+#: fileItem.js:228
+msgid "Move to Trash"
+msgstr "移動到垃圾桶"
+
+#: fileItem.js:232
+msgid "Empty trash"
+msgstr "清空回收桶"
+
+#: fileItem.js:238
+msgid "Properties"
+msgstr "屬性"
+
+#: fileItem.js:240
+msgid "Show in Files"
+msgstr "在《檔案》中顯示"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:13
+msgid "Set the size for the desktop icons."
+msgstr "設定桌面圖示的大小。"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
+msgid "Show personal folder"
+msgstr "顯示個人資料夾"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:18
+msgid "Show the personal folder in the desktop."
+msgstr "在桌面顯示個人資料夾。"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
+msgid "Show trash icon"
+msgstr "顯示垃圾桶圖示"
+
+#: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:23
+msgid "Show the trash icon in the desktop."
+msgstr "在桌面顯示垃圾桶圖示。"
+
#~ msgid "CPU"
#~ msgstr "CPU"
@@ -371,9 +514,6 @@ msgstr "工作區 %d"
#~ msgid "Display"
#~ msgstr "顯示"
-#~ msgid "Display Settings"
-#~ msgstr "顯示設定值"
-
#~ msgid "Suspend"
#~ msgstr "暫停"
@@ -481,9 +621,6 @@ msgstr "工作區 %d"
#~ msgid "Enable/disable autohide"
#~ msgstr "啟用/停用自動隱藏"
-#~ msgid "Icon size"
-#~ msgstr "圖示大小"
-
#~ msgid "Position of the dock"
#~ msgstr "Dock 的位置"
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]