summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2006-09-22 16:11:04 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2006-09-22 16:11:04 +0000
commit09f461b01e3eed0cca58e786d08628195a4ae16e (patch)
tree3e9e35fc1239b65f5f9a61dca3cce80510bc1eb7
parent2f50232a4258c27e793db55c0ab26ab5009432ad (diff)
downloadgdk-pixbuf-09f461b01e3eed0cca58e786d08628195a4ae16e.tar.gz
Make remote bookmarks work better (#354887)
2006-09-22 Matthias Clasen <mclasen@redhat.com> Make remote bookmarks work better (#354887) * gtk/gtkfilechooserdefault.c (shortcuts_reload_icons): (shortcuts_insert_path): * gtk/gtkfilechooserbutton.c (change_icon_theme): (model_add_bookmarks): (model_update_current_folder): (update_label_and_image): If the bookmark points to a remote file, don't call get_info(), since that may a) take a long time and b) pop up an auth dialog. Instead, just use a folder icon and create a display name from the uri. * gtk/gtkfilechooserdefault.c (_gtk_file_chooser_label_for_uri): New function to create a suitable display name for a remote uri. This should really be done in GtkFileSystem.
-rw-r--r--ChangeLog19
-rw-r--r--gtk/gtkfilechooserbutton.c202
-rw-r--r--gtk/gtkfilechooserdefault.c102
-rw-r--r--po/ChangeLog5
-rw-r--r--po/be.po3
-rw-r--r--po/bg.po3
-rw-r--r--po/bn.po3
-rw-r--r--po/bn_IN.po3
-rw-r--r--po/br.po3
-rw-r--r--po/ca.po3
-rw-r--r--po/cs.po3
-rw-r--r--po/cy.po3
-rw-r--r--po/da.po3
-rw-r--r--po/de.po3
-rw-r--r--po/dz.po3
-rw-r--r--po/el.po3
-rw-r--r--po/en_CA.po3
-rw-r--r--po/en_GB.po3
-rw-r--r--po/es.po3
-rw-r--r--po/et.po3
-rw-r--r--po/eu.po3
-rw-r--r--po/fi.po3
-rw-r--r--po/fr.po3
-rw-r--r--po/gl.po3
-rw-r--r--po/gu.po3
-rw-r--r--po/he.po3
-rw-r--r--po/hi.po3
-rw-r--r--po/hu.po3
-rw-r--r--po/id.po3
-rw-r--r--po/it.po3
-rw-r--r--po/ja.po3
-rw-r--r--po/ka.po3
-rw-r--r--po/ko.po3
-rw-r--r--po/ku.po3
-rw-r--r--po/lt.po3
-rw-r--r--po/lv.po3
-rw-r--r--po/mk.po3
-rw-r--r--po/ml.po3
-rw-r--r--po/mn.po3
-rw-r--r--po/mr.po3
-rw-r--r--po/nb.po3
-rw-r--r--po/nl.po3
-rw-r--r--po/nn.po3
-rw-r--r--po/or.po3
-rw-r--r--po/pa.po3
-rw-r--r--po/pl.po3
-rw-r--r--po/pt.po3
-rw-r--r--po/pt_BR.po3
-rw-r--r--po/ro.po3
-rw-r--r--po/ru.po3
-rw-r--r--po/sk.po3
-rw-r--r--po/sl.po3
-rw-r--r--po/sq.po3
-rw-r--r--po/sr.po3
-rw-r--r--po/sr@Latn.po3
-rw-r--r--po/sv.po3
-rw-r--r--po/ta.po3
-rw-r--r--po/th.po3
-rw-r--r--po/uk.po3
-rw-r--r--po/vi.po4
-rw-r--r--po/zh_CN.po3
-rw-r--r--po/zh_HK.po3
-rw-r--r--po/zh_TW.po3
63 files changed, 455 insertions, 51 deletions
diff --git a/ChangeLog b/ChangeLog
index 77c6a51bc..0ae3fb364 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2006-09-22 Matthias Clasen <mclasen@redhat.com>
+
+ Make remote bookmarks work better (#354887)
+
+ * gtk/gtkfilechooserdefault.c (shortcuts_reload_icons):
+ (shortcuts_insert_path):
+ * gtk/gtkfilechooserbutton.c (change_icon_theme):
+ (model_add_bookmarks):
+ (model_update_current_folder):
+ (update_label_and_image):
+ If the bookmark points to a remote file, don't call get_info(),
+ since that may a) take a long time and b) pop up an auth dialog.
+ Instead, just use a folder icon and create a display name
+ from the uri.
+
+ * gtk/gtkfilechooserdefault.c (_gtk_file_chooser_label_for_uri):
+ New function to create a suitable display name for a remote
+ uri. This should really be done in GtkFileSystem.
+
2006-09-21 Michael Natterer <mitch@imendio.com>
Implement lots of value setters for GdkGC, based on a heavily
diff --git a/gtk/gtkfilechooserbutton.c b/gtk/gtkfilechooserbutton.c
index b99274f09..f00339f1e 100644
--- a/gtk/gtkfilechooserbutton.c
+++ b/gtk/gtkfilechooserbutton.c
@@ -1290,23 +1290,34 @@ change_icon_theme (GtkFileChooserButton *button)
case ROW_TYPE_CURRENT_FOLDER:
if (data)
{
- GtkTreePath *path;
- GtkFileSystemHandle *handle;
- struct ChangeIconThemeData *info;
-
- info = g_new0 (struct ChangeIconThemeData, 1);
- info->button = g_object_ref (button);
- path = gtk_tree_model_get_path (priv->model, &iter);
- info->row_ref = gtk_tree_row_reference_new (priv->model, path);
- gtk_tree_path_free (path);
-
- handle =
- gtk_file_system_get_info (priv->fs, data, GTK_FILE_INFO_ICON,
- change_icon_theme_get_info_cb,
- info);
- button->priv->change_icon_theme_handles =
- g_slist_append (button->priv->change_icon_theme_handles, handle);
- pixbuf = NULL;
+ if (gtk_file_system_path_is_local (priv->fs, (GtkFilePath *)data))
+ {
+ GtkTreePath *path;
+ GtkFileSystemHandle *handle;
+ struct ChangeIconThemeData *info;
+
+ info = g_new0 (struct ChangeIconThemeData, 1);
+ info->button = g_object_ref (button);
+ path = gtk_tree_model_get_path (priv->model, &iter);
+ info->row_ref = gtk_tree_row_reference_new (priv->model, path);
+ gtk_tree_path_free (path);
+
+ handle =
+ gtk_file_system_get_info (priv->fs, data, GTK_FILE_INFO_ICON,
+ change_icon_theme_get_info_cb,
+ info);
+ button->priv->change_icon_theme_handles =
+ g_slist_append (button->priv->change_icon_theme_handles, handle);
+ pixbuf = NULL;
+ }
+ else
+ /* Don't call get_info for remote paths to avoid latency and
+ * auth dialogs.
+ * If we switch to a better bookmarks file format (XBEL), we
+ * should use mime info to get a better icon.
+ */
+ pixbuf = gtk_icon_theme_load_icon (theme, "gnome-fs-regular",
+ priv->icon_size, 0, NULL);
}
else
pixbuf = gtk_icon_theme_load_icon (theme, FALLBACK_ICON_NAME,
@@ -1465,7 +1476,6 @@ set_info_for_path_at_iter (GtkFileChooserButton *button,
data = g_new0 (struct SetDisplayNameData, 1);
data->button = g_object_ref (button);
-
data->label = gtk_file_system_get_bookmark_label (button->priv->fs, path);
tree_path = gtk_tree_model_get_path (button->priv->model, iter);
@@ -1793,6 +1803,8 @@ model_add_volumes (GtkFileChooserButton *button,
}
}
+extern gchar * _gtk_file_chooser_label_for_uri (const gchar *uri);
+
static void
model_add_bookmarks (GtkFileChooserButton *button,
GSList *bookmarks)
@@ -1816,19 +1828,58 @@ model_add_bookmarks (GtkFileChooserButton *button,
path = l->data;
- if (local_only &&
- !gtk_file_system_path_is_local (button->priv->fs, path))
- continue;
+ if (gtk_file_system_path_is_local (button->priv->fs, path))
+ {
+ gtk_list_store_insert (store, &iter, pos);
+ gtk_list_store_set (store, &iter,
+ ICON_COLUMN, NULL,
+ DISPLAY_NAME_COLUMN, _(FALLBACK_DISPLAY_NAME),
+ TYPE_COLUMN, ROW_TYPE_BOOKMARK,
+ DATA_COLUMN, gtk_file_path_copy (path),
+ IS_FOLDER_COLUMN, FALSE,
+ -1);
+ set_info_for_path_at_iter (button, path, &iter);
+ }
+ else
+ {
+ gchar *label;
+ GtkIconTheme *icon_theme;
+ GdkPixbuf *pixbuf;
+
+ if (local_only)
+ continue;
+
+ /* Don't call get_info for remote paths to avoid latency and
+ * auth dialogs.
+ * If we switch to a better bookmarks file format (XBEL), we
+ * should use mime info to get a better icon.
+ */
+ label = gtk_file_system_get_bookmark_label (button->priv->fs, path);
+ if (!label)
+ {
+ gchar *uri;
- gtk_list_store_insert (store, &iter, pos);
- gtk_list_store_set (store, &iter,
- ICON_COLUMN, NULL,
- DISPLAY_NAME_COLUMN, _(FALLBACK_DISPLAY_NAME),
- TYPE_COLUMN, ROW_TYPE_BOOKMARK,
- DATA_COLUMN, gtk_file_path_copy (path),
- IS_FOLDER_COLUMN, FALSE,
- -1);
- set_info_for_path_at_iter (button, path, &iter);
+ uri = gtk_file_system_path_to_uri (button->priv->fs, path);
+ label = _gtk_file_chooser_label_for_uri (uri);
+ g_free (uri);
+ }
+
+ icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (button)));
+ pixbuf = gtk_icon_theme_load_icon (icon_theme, "gnome-fs-directory",
+ button->priv->icon_size, 0, NULL);
+
+ gtk_list_store_insert (store, &iter, pos);
+ gtk_list_store_set (store, &iter,
+ ICON_COLUMN, pixbuf,
+ DISPLAY_NAME_COLUMN, label,
+ TYPE_COLUMN, ROW_TYPE_BOOKMARK,
+ DATA_COLUMN, gtk_file_path_copy (path),
+ IS_FOLDER_COLUMN, TRUE,
+ -1);
+
+ g_free (label);
+ g_object_unref (pixbuf);
+ }
button->priv->n_bookmarks++;
pos++;
@@ -1890,14 +1941,53 @@ model_update_current_folder (GtkFileChooserButton *button,
model_free_row_data (button, &iter);
}
- gtk_list_store_set (store, &iter,
- ICON_COLUMN, NULL,
- DISPLAY_NAME_COLUMN, _(FALLBACK_DISPLAY_NAME),
- TYPE_COLUMN, ROW_TYPE_CURRENT_FOLDER,
- DATA_COLUMN, gtk_file_path_copy (path),
- IS_FOLDER_COLUMN, FALSE,
- -1);
- set_info_for_path_at_iter (button, path, &iter);
+ if (gtk_file_system_path_is_local (button->priv->fs, path))
+ {
+ gtk_list_store_set (store, &iter,
+ ICON_COLUMN, NULL,
+ DISPLAY_NAME_COLUMN, _(FALLBACK_DISPLAY_NAME),
+ TYPE_COLUMN, ROW_TYPE_CURRENT_FOLDER,
+ DATA_COLUMN, gtk_file_path_copy (path),
+ IS_FOLDER_COLUMN, FALSE,
+ -1);
+ set_info_for_path_at_iter (button, path, &iter);
+ }
+ else
+ {
+ gchar *label;
+ GtkIconTheme *icon_theme;
+ GdkPixbuf *pixbuf;
+
+ /* Don't call get_info for remote paths to avoid latency and
+ * auth dialogs.
+ * If we switch to a better bookmarks file format (XBEL), we
+ * should use mime info to get a better icon.
+ */
+ label = gtk_file_system_get_bookmark_label (button->priv->fs, path);
+ if (!label)
+ {
+ gchar *uri;
+
+ uri = gtk_file_system_path_to_uri (button->priv->fs, path);
+ label = _gtk_file_chooser_label_for_uri (uri);
+ g_free (uri);
+ }
+
+ icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (button)));
+ pixbuf = gtk_icon_theme_load_icon (icon_theme, "gnome-fs-directory",
+ button->priv->icon_size, 0, NULL);
+
+ gtk_list_store_set (store, &iter,
+ ICON_COLUMN, pixbuf,
+ DISPLAY_NAME_COLUMN, label,
+ TYPE_COLUMN, ROW_TYPE_CURRENT_FOLDER,
+ DATA_COLUMN, gtk_file_path_copy (path),
+ IS_FOLDER_COLUMN, TRUE,
+ -1);
+
+ g_free (label);
+ g_object_unref (pixbuf);
+ }
}
static inline void
@@ -2009,6 +2099,7 @@ filter_model_visible_func (GtkTreeModel *model,
break;
case ROW_TYPE_VOLUME:
{
+ retval = TRUE;
if (local_only)
{
if (gtk_file_system_volume_get_is_mounted (priv->fs, data))
@@ -2244,13 +2335,34 @@ update_label_and_image (GtkFileChooserButton *button)
}
if (priv->update_button_handle)
- gtk_file_system_cancel_operation (priv->update_button_handle);
-
- priv->update_button_handle =
- gtk_file_system_get_info (priv->fs, path,
- GTK_FILE_INFO_DISPLAY_NAME | GTK_FILE_INFO_ICON,
- update_label_get_info_cb,
- g_object_ref (button));
+ {
+ gtk_file_system_cancel_operation (priv->update_button_handle);
+ priv->upate_button_handle = NULL;
+ }
+
+ if (gtk_file_system_path_is_local (priv->fs, path))
+ {
+ priv->update_button_handle =
+ gtk_file_system_get_info (priv->fs, path,
+ GTK_FILE_INFO_DISPLAY_NAME | GTK_FILE_INFO_ICON,
+ update_label_get_info_cb,
+ g_object_ref (button));
+ }
+ else
+ {
+ GdkPixbuf *pixbuf;
+
+ label_text = gtk_file_system_get_bookmark_label (button->priv->fs, path);
+
+ pixbuf = gtk_icon_theme_load_icon (get_icon_theme (GTK_WIDGET (priv->image)),
+ "gnome-fs-regular",
+ priv->icon_size, 0, NULL);
+
+ gtk_image_set_from_pixbuf (GTK_IMAGE (priv->image), pixbuf);
+
+ if (pixbuf)
+ g_object_unref (pixbuf);
+ }
}
out:
gtk_file_paths_free (paths);
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
index c5338b9b6..095a8b40d 100644
--- a/gtk/gtkfilechooserdefault.c
+++ b/gtk/gtkfilechooserdefault.c
@@ -1177,7 +1177,7 @@ shortcuts_reload_icons (GtkFileChooserDefault *impl)
if (pixbuf)
g_object_unref (pixbuf);
}
- else
+ else if (gtk_file_system_path_is_local (impl->file_system, (GtkFilePath *)data))
{
const GtkFilePath *path;
struct ReloadIconsData *info;
@@ -1198,6 +1198,26 @@ shortcuts_reload_icons (GtkFileChooserDefault *impl)
info);
impl->reload_icon_handles = g_slist_append (impl->reload_icon_handles, handle);
}
+ else
+ {
+ GtkIconTheme *icon_theme;
+
+ /* Don't call get_info for remote paths to avoid latency and
+ * auth dialogs.
+ * If we switch to a better bookmarks file format (XBEL), we
+ * should use mime info to get a better icon.
+ */
+ icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (impl)));
+ pixbuf = gtk_icon_theme_load_icon (icon_theme, "gnome-fs-directory",
+ impl->icon_size, 0, NULL);
+
+ gtk_list_store_set (impl->shortcuts_model, &iter,
+ SHORTCUTS_COL_PIXBUF, pixbuf,
+ -1);
+
+ if (pixbuf)
+ g_object_unref (pixbuf);
+ }
}
}
while (gtk_tree_model_iter_next (GTK_TREE_MODEL (impl->shortcuts_model),&iter));
@@ -1430,6 +1450,54 @@ out:
g_object_unref (handle);
}
+/* FIXME: GtkFileSystem needs a function to split a remote path
+ * into hostname and path components, or maybe just have a
+ * gtk_file_system_path_get_display_name().
+ *
+ * This function is also used in gtkfilechooserbutton.c
+ */
+gchar *
+_gtk_file_chooser_label_for_uri (const gchar *uri)
+{
+ const gchar *path, *start, *end, *p;
+ gchar *host, *label;
+
+ start = strstr (uri, "://");
+ start += 3;
+ path = strchr (start, '/');
+
+ if (path)
+ end = path;
+ else
+ {
+ end = uri + strlen (uri);
+ path = "/";
+ }
+
+ /* strip username */
+ p = strchr (start, '@');
+ if (p && p < end)
+ {
+ start = p + 1;
+ }
+
+ p = strchr (start, ':');
+ if (p && p < end)
+ end = p;
+
+ host = g_strndup (start, end - start);
+
+ /* Translators: the first string is a path and the second string
+ * is a hostname. Nautilus and the panel contain the same string
+ * to translate.
+ */
+ label = g_strdup_printf (_("%1$s on %2$s"), path, host);
+
+ g_free (host);
+
+ return label;
+}
+
/* Inserts a path in the shortcuts tree, making a copy of it; alternatively,
* inserts a volume. A position of -1 indicates the end of the tree.
*/
@@ -1447,6 +1515,7 @@ shortcuts_insert_path (GtkFileChooserDefault *impl,
GdkPixbuf *pixbuf = NULL;
gpointer data = NULL;
GtkTreeIter iter;
+ GtkIconTheme *icon_theme;
profile_start ("start", is_volume ? "volume" : (char *) path);
@@ -1457,7 +1526,7 @@ shortcuts_insert_path (GtkFileChooserDefault *impl,
pixbuf = gtk_file_system_volume_render_icon (impl->file_system, volume, GTK_WIDGET (impl),
impl->icon_size, NULL);
}
- else
+ else if (gtk_file_system_path_is_local (impl->file_system, path))
{
struct ShortcutsInsertRequest *request;
GtkFileSystemHandle *handle;
@@ -1496,9 +1565,32 @@ shortcuts_insert_path (GtkFileChooserDefault *impl,
return;
}
+ else
+ {
+ /* Don't call get_info for remote paths to avoid latency and
+ * auth dialogs.
+ */
+ data = gtk_file_path_copy (path);
+ if (label)
+ label_copy = g_strdup (label);
+ else
+ {
+ gchar *uri;
+
+ uri = gtk_file_system_path_to_uri (impl->file_system, path);
+
+ label_copy = _gtk_file_chooser_label_for_uri (uri);
- if (!data)
- data = gtk_file_path_copy (path);
+ g_free (uri);
+ }
+
+ /* If we switch to a better bookmarks file format (XBEL), we
+ * should use mime info to get a better icon.
+ */
+ icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (impl)));
+ pixbuf = gtk_icon_theme_load_icon (icon_theme, "gnome-fs-directory",
+ impl->icon_size, 0, NULL);
+ }
if (pos == -1)
gtk_list_store_append (impl->shortcuts_model, &iter);
@@ -1711,6 +1803,7 @@ shortcuts_add_volumes (GtkFileChooserDefault *impl)
profile_start ("start", NULL);
+
old_changing_folders = impl->changing_folder;
impl->changing_folder = TRUE;
@@ -1797,7 +1890,6 @@ shortcuts_add_bookmarks (GtkFileChooserDefault *impl)
profile_start ("start", NULL);
-
old_changing_folders = impl->changing_folder;
impl->changing_folder = TRUE;
diff --git a/po/ChangeLog b/po/ChangeLog
index fbdabb3cf..2da45f904 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,8 @@
+2006-09-22 Matthias Clasen <mclasen@redhat.com>
+
+ * *.po: Copy existing translations for a new string
+ from the panel.
+
2006-09-21 Priit Laes <plaes@cvs.gnome.org>
* et.po: Translation updated by Ivar Smolin.
diff --git a/po/be.po b/po/be.po
index 401b8e496..cc40548a3 100644
--- a/po/be.po
+++ b/po/be.po
@@ -4534,3 +4534,6 @@ msgstr ""
#~ msgid "Zoom to _Fit"
#~ msgstr "Маштаб най_лепшы"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s на вузьле %2$s"
diff --git a/po/bg.po b/po/bg.po
index dc3c4bc57..6bf617111 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -4216,3 +4216,6 @@ msgstr ""
#~ msgid "PNM image format is invalid"
#~ msgstr "Невалиден формат на изображение тип PNM"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s на %2$s"
diff --git a/po/bn.po b/po/bn.po
index 4d579bb4c..18d453860 100644
--- a/po/bn.po
+++ b/po/bn.po
@@ -4169,3 +4169,6 @@ msgid ""
msgstr ""
"'%s''এ কোনো থিম ইন্ডেক্স ফাইল উপস্থিত নেই।\n"
"এই স্থানে আইকন ক্যাশে নির্মাণের জন্য --ignore-theme-index ব্যবহার করুন।\n"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s, %2$s'র উপর"
diff --git a/po/bn_IN.po b/po/bn_IN.po
index 7e3e01a0f..cb5d16531 100644
--- a/po/bn_IN.po
+++ b/po/bn_IN.po
@@ -4291,3 +4291,6 @@ msgid ""
msgstr ""
"'%s''এ কোনো থিম ইন্ডেক্স ফাইল উপস্থিত নেই।\n"
"এই স্থানে আইকন ক্যাশে নির্মাণের জন্য --ignore-theme-index ব্যবহার করুন।\n"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s, %2$s'র উপর"
diff --git a/po/br.po b/po/br.po
index 8d0fed012..5881189f8 100644
--- a/po/br.po
+++ b/po/br.po
@@ -4456,3 +4456,6 @@ msgstr ""
#~ msgid "Gravity"
#~ msgstr "Dedennerezh"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s war %2$s"
diff --git a/po/ca.po b/po/ca.po
index cc5b0578b..e5773e820 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -4343,3 +4343,6 @@ msgstr ""
#~ msgid "_Up"
#~ msgstr "A _dalt"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s a %2$s"
diff --git a/po/cs.po b/po/cs.po
index d04357d23..0c0dd1b57 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -4341,3 +4341,6 @@ msgid ""
"No theme index file in '%s'.\n"
"If you really want to create an icon cache here, use --ignore-theme-index.\n"
msgstr ""
+
+msgid "%1$s on %2$s"
+msgstr "%1$s na %2$s"
diff --git a/po/cy.po b/po/cy.po
index 290aa98f3..03bd5696a 100644
--- a/po/cy.po
+++ b/po/cy.po
@@ -5549,3 +5549,6 @@ msgstr ""
#~ msgid "Text to render"
#~ msgstr "Y testun i'w lunio"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s ar %2$s"
diff --git a/po/da.po b/po/da.po
index 05dcbbad3..806e7b9e8 100644
--- a/po/da.po
+++ b/po/da.po
@@ -4579,3 +4579,6 @@ msgstr ""
#~ msgid "Zoom to _Fit"
#~ msgstr "Zoom _tilpasset"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s på %2$s"
diff --git a/po/de.po b/po/de.po
index d9227bbf2..0c73f6773 100644
--- a/po/de.po
+++ b/po/de.po
@@ -4825,3 +4825,6 @@ msgstr ""
#~ msgid "Folder"
#~ msgstr "Ordner"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s, %2$s"
diff --git a/po/dz.po b/po/dz.po
index 564542b39..be9c53a53 100644
--- a/po/dz.po
+++ b/po/dz.po
@@ -4854,3 +4854,6 @@ msgstr ""
#~ msgid "_Up"
#~ msgstr "ཡར།(_U)"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s, %2$s གུ"
diff --git a/po/el.po b/po/el.po
index 7f3ba965b..d64a558e2 100644
--- a/po/el.po
+++ b/po/el.po
@@ -4232,3 +4232,6 @@ msgstr ""
#~ msgid "PNM image format is invalid"
#~ msgstr "Μη έγκυρος τύπος εικόνας PNM"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s σε %2$s"
diff --git a/po/en_CA.po b/po/en_CA.po
index 04eb6c602..0784a2218 100644
--- a/po/en_CA.po
+++ b/po/en_CA.po
@@ -4451,3 +4451,6 @@ msgstr ""
#~ msgid "Pixmap path element: \"%s\" must be absolute, %s, line %d"
#~ msgstr "Pixmap path element: \"%s\" must be absolute, %s, line %d"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s on %2$s"
diff --git a/po/en_GB.po b/po/en_GB.po
index 51b768896..863bccddb 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -4275,3 +4275,6 @@ msgstr ""
#~ msgid "_Up"
#~ msgstr "_Up"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s on %2$s"
diff --git a/po/es.po b/po/es.po
index d587d6dbe..0d54ce30c 100644
--- a/po/es.po
+++ b/po/es.po
@@ -4227,3 +4227,6 @@ msgstr ""
"No hay archivo de índice del tema en «%s».\n"
"Si realmente quiere crear un caché de iconos aquí, use --ignore-theme-"
"index.\n"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s en %2$s"
diff --git a/po/et.po b/po/et.po
index 6a4e4f9b9..8ed70ba8b 100644
--- a/po/et.po
+++ b/po/et.po
@@ -4168,3 +4168,6 @@ msgid ""
"No theme index file in '%s'.\n"
"If you really want to create an icon cache here, use --ignore-theme-index.\n"
msgstr ""
+
+msgid "%1$s on %2$s"
+msgstr "%2$s hostil %1$s"
diff --git a/po/eu.po b/po/eu.po
index 9a1af12bd..69630954c 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -4322,3 +4322,6 @@ msgid ""
msgstr ""
"Ez dago gaiaren indize fitxategirik '%s'(e)n.\n"
"Ikono-cache bat sortzea nahi baduzu erabili --ignore-theme-index.\n"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s, %2$s"
diff --git a/po/fi.po b/po/fi.po
index a02c8225e..05eac2747 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -4766,3 +4766,6 @@ msgstr ""
#~ msgid "Pixmap path element: \"%s\" must be absolute, %s, line %d"
#~ msgstr "Kuvan polku \"%s\" ei voi olla suhteellinen, %s, rivi %d"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s - %2$s"
diff --git a/po/fr.po b/po/fr.po
index 9f8256e00..ec5deb90f 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -4236,3 +4236,6 @@ msgstr ""
"Aucun fichier d'index de thème dans « %s ».\n"
"Si vous souhaitez vraiment créer un cache d'icône ici, utilisez --ignore-"
"theme-index.\n"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s sur %2$s"
diff --git a/po/gl.po b/po/gl.po
index 094780101..a322ea7df 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -4881,3 +4881,6 @@ msgstr ""
#~ msgid "shortcut %s already exists"
#~ msgstr "o atallo %s xa existe"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s en %2$s"
diff --git a/po/gu.po b/po/gu.po
index b84780b73..577e6d146 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -4576,3 +4576,6 @@ msgid ""
msgstr ""
"'%s' માં કોઈ થીમ અનુક્રમ ફાઈલ નથી.\n"
"જો તમે ખરેખર ચિહ્ન કેશ અંહિ બનાવવા માંગો, તો --ignore-theme-index વાપરો.\n"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s, %2$s પર"
diff --git a/po/he.po b/po/he.po
index a25a895e6..072216875 100644
--- a/po/he.po
+++ b/po/he.po
@@ -4746,3 +4746,6 @@ msgstr ""
#~ msgid "Unsupported TIFF variant"
#~ msgstr "סוג TIFF לא נתמך"
+
+msgid "%1$s on %2$s"
+msgstr "‏%1$s ב-%2$s"
diff --git a/po/hi.po b/po/hi.po
index 4fc2b230f..578644bc4 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -4335,3 +4335,6 @@ msgid ""
"No theme index file in '%s'.\n"
"If you really want to create an icon cache here, use --ignore-theme-index.\n"
msgstr ""
+
+msgid "%1$s on %2$s"
+msgstr "%1$s %2$s पर"
diff --git a/po/hu.po b/po/hu.po
index a6a37f05a..525c0114a 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -4184,3 +4184,6 @@ msgid ""
msgstr "Nem található témaindexfájl a következőben: \"%s\".\n"
"HA valóban ikongyorsítótárat kíván itt létrehozni, akkor használja a --ignore-theme-index kapcsolót.\n"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s ezen: %2$s"
diff --git a/po/id.po b/po/id.po
index 3089cc8df..42ac216c8 100644
--- a/po/id.po
+++ b/po/id.po
@@ -4276,3 +4276,6 @@ msgstr ""
#~ msgid "Home"
#~ msgstr "Rumah"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s pada %2$s"
diff --git a/po/it.po b/po/it.po
index 937ad6077..f816d5de2 100644
--- a/po/it.po
+++ b/po/it.po
@@ -4521,3 +4521,6 @@ msgstr ""
#, fuzzy
#~ msgid "shortcut %s already exists"
#~ msgstr "La scorciatoia %s non esiste"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s su %2$s"
diff --git a/po/ja.po b/po/ja.po
index f6d9d2fe2..261ae5bff 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -4850,3 +4850,6 @@ msgstr ""
#~ msgid "This function is not implemented for widgets of class '%s'."
#~ msgstr "この関数は '%s' クラスのウィジットでは実装されていません"
+
+msgid "%1$s on %2$s"
+msgstr "%2$s にある %1$s"
diff --git a/po/ka.po b/po/ka.po
index 0258d6806..b2e9e6ecd 100644
--- a/po/ka.po
+++ b/po/ka.po
@@ -4431,3 +4431,6 @@ msgstr ""
#~ msgid "Home"
#~ msgstr "ჩემი სახლი"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s - %2$s"
diff --git a/po/ko.po b/po/ko.po
index ab578d975..3ccb9bcec 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -4832,3 +4832,6 @@ msgstr ""
#~ msgid "A <text> element has already been specified"
#~ msgstr "<text> 엘리먼트가 이미 지정되었습니다"
+
+msgid "%1$s on %2$s"
+msgstr "%s %s"
diff --git a/po/ku.po b/po/ku.po
index e3b569dfe..f7ad192c9 100644
--- a/po/ku.po
+++ b/po/ku.po
@@ -4422,3 +4422,6 @@ msgstr ""
#~ msgid "Pixmap path element: \"%s\" must be absolute, %s, line %d"
#~ msgstr "Endamê nexşeya Pix: \"%s\" Pêwiste ku bê kêmasî be %s, rêzik %d"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s di %2$s de"
diff --git a/po/lt.po b/po/lt.po
index 56269abac..6610dfdf2 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -4199,3 +4199,6 @@ msgstr ""
#~ msgid "PNM image format is invalid"
#~ msgstr "PNM paveikslėlio formatas yra neteisingas"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s kompiuteryje %2$s"
diff --git a/po/lv.po b/po/lv.po
index af3ba56db..4fd22048d 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -4285,3 +4285,6 @@ msgid ""
"If you really want to create an icon cache here, use --ignore-theme-index.\n"
msgstr ""
+
+msgid "%1$s on %2$s"
+msgstr "%1$s uz %2$s"
diff --git a/po/mk.po b/po/mk.po
index ab5c5e532..f0c0aa460 100644
--- a/po/mk.po
+++ b/po/mk.po
@@ -4198,3 +4198,6 @@ msgstr ""
"Ако навистина сакате да креирате кеш за икони овде, тогаш користете --ignore-"
"theme-index.\n"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s на %2$s"
diff --git a/po/ml.po b/po/ml.po
index a86940cfc..b5c572c8e 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -4206,3 +4206,6 @@ msgstr ""
"'%s'-ല്‍ ഥീം ഇന്‍ഡെക്സ് ഫയലില്ല.\n"
"നിങ്ങള്‍ക്ക് ഇവിടെ ഒരു ഐക്കണ്‍ cache ഉണ്ടാക്കണമെങ്കില്‍ , --ignore-theme-index ഉപയോഗിക്കുക.\n"
+
+msgid "%1$s on %2$s"
+msgstr "%2$s-ല്‍ %1$s"
diff --git a/po/mn.po b/po/mn.po
index b0273354f..403b6ba9a 100644
--- a/po/mn.po
+++ b/po/mn.po
@@ -4990,3 +4990,6 @@ msgstr ""
# gtk/gtkcolorsel.c:1718
#~ msgid "Current folder: %s"
#~ msgstr "Идэвхитэй хавтас: %s"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s, %2$s"
diff --git a/po/mr.po b/po/mr.po
index 587cde158..b44fa9854 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -4700,3 +4700,6 @@ msgid ""
"If you really want to create an icon cache here, use --ignore-theme-index.\n"
msgstr ""
+
+msgid "%1$s on %2$s"
+msgstr "%s, %s"
diff --git a/po/nb.po b/po/nb.po
index 84647caef..f12304fea 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -4308,3 +4308,6 @@ msgstr ""
#~ msgid "Image has unsupported number of %u-bit planes"
#~ msgstr "Bildet har ustøttet antall %u-bitplan"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s på %2$s"
diff --git a/po/nl.po b/po/nl.po
index e93d3d767..5e9d0c933 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -5226,3 +5226,6 @@ msgstr ""
#~ msgid "This file system does not support icons"
#~ msgstr "Dit bestandsysteem ondersteunt geen pictogrammen"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s op %2$s"
diff --git a/po/nn.po b/po/nn.po
index 88f2f9c1e..e4c08163e 100644
--- a/po/nn.po
+++ b/po/nn.po
@@ -4560,3 +4560,6 @@ msgstr ""
#~ msgid "Unsupported TIFF variant"
#~ msgstr "Ustøtta TIFF-variant"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s på %2$s"
diff --git a/po/or.po b/po/or.po
index 729b0b5f3..43cee9541 100644
--- a/po/or.po
+++ b/po/or.po
@@ -4298,3 +4298,6 @@ msgstr ""
"'%s' ରେ କୌଣସି ପ୍ରସଙ୍ଗ ଅନୁକ୍ରମଣିକା ଫାଇଲ ନାହିଁ।\n"
"ଯଦି ଆପଣ ପ୍ରକ୍ରୁତରେ ଏଠାରେ ଗୋଟିଏ ଚିତ୍ରସଙ୍କେତ କ୍ଯାଶେକୁ ସ୍ରୁଷ୍ଟି କରିବା ପାଇଁ ଚାହୁଁଛନ୍ତି, ତାହାହେଲେ--"
"ignore-theme-index ନିର୍ଦ୍ଦେଶ କୁ ବ୍ଯବହାର କରନ୍ତୁ।\n"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s %2$sରେ"
diff --git a/po/pa.po b/po/pa.po
index 50e05264f..31add94be 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -4776,3 +4776,6 @@ msgstr ""
#~ msgid "ROC 8k"
#~ msgstr "ROC 8k"
+
+msgid "%1$s on %2$s"
+msgstr "%2$s ਉੱਤੇ %1$s"
diff --git a/po/pl.po b/po/pl.po
index 510276444..5706636d4 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -4335,3 +4335,6 @@ msgstr ""
"Brak pliku indeksu motywu w \"%s\".\n"
"Jeżeli naprawdę chcesz tutaj utworzyć bufor ikon, użyj --ignore-theme-"
"index.\n"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s na %2$s"
diff --git a/po/pt.po b/po/pt.po
index 256e25959..f071b075f 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -4498,3 +4498,6 @@ msgstr ""
#~ msgid "This file system does not support bookmarks"
#~ msgstr "Este sistema de ficheiros não suporta marcadores"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s em %2$s"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index eff5ffdda..3e5bc7365 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -4571,3 +4571,6 @@ msgstr ""
#~ msgid "_Up"
#~ msgstr "_Acima"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s em %2$s"
diff --git a/po/ro.po b/po/ro.po
index 1ee7c0c75..6c0295f1b 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -4201,3 +4201,6 @@ msgstr ""
"Dacă chiar doriţi să creaţi aici un cache pentru iconiţe, utilizaţi "
"--ignore-theme-index.\n"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s pe %2$s"
diff --git a/po/ru.po b/po/ru.po
index d98adec34..db3f4f031 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -4219,3 +4219,6 @@ msgstr ""
"Нет индексного файла темы в \"%s\".\n"
"Если Вы действительно хотите создать здесь кеш значков, используйте --ignore-"
"theme-index.\n"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s на %2$s"
diff --git a/po/sk.po b/po/sk.po
index ea3529049..a9d6c9bf9 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -4458,3 +4458,6 @@ msgstr ""
#~ msgid "Pixmap path element: \"%s\" must be absolute, %s, line %d"
#~ msgstr "Element cesty k pixmap: \"%s\" musí byť absolútny, %s, riadok %d"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s na %2$s"
diff --git a/po/sl.po b/po/sl.po
index b10ba4103..85be74440 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -4560,3 +4560,6 @@ msgstr ""
#~ msgid "Zoom to _Fit"
#~ msgstr "Povečaj na _stran"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s na %2$s"
diff --git a/po/sq.po b/po/sq.po
index e0048502d..b95539642 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -4431,3 +4431,6 @@ msgstr ""
#~ msgid "Pixmap path element: \"%s\" must be absolute, %s, line %d"
#~ msgstr ""
#~ "Pozicioni i elementit pixmap: \"%s\" duhet të jetë absolut, %s, rreshti %d"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s mbi %2$s"
diff --git a/po/sr.po b/po/sr.po
index db26f6175..db9a5f45d 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -4411,3 +4411,6 @@ msgstr ""
#~ msgid "This file system does not support bookmarks"
#~ msgstr "Овај систем датотека не подржава обележиваче"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s на %2$s"
diff --git a/po/sr@Latn.po b/po/sr@Latn.po
index 1d7f75b70..1d62e0160 100644
--- a/po/sr@Latn.po
+++ b/po/sr@Latn.po
@@ -4411,3 +4411,6 @@ msgstr ""
#~ msgid "This file system does not support bookmarks"
#~ msgstr "Ovaj sistem datoteka ne podržava obeleživače"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s na %2$s"
diff --git a/po/sv.po b/po/sv.po
index 424eff0bb..5c7521c58 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -4387,3 +4387,6 @@ msgstr ""
#~ msgid "Create _Folder"
#~ msgstr "Skapa _mapp"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s på %2$s"
diff --git a/po/ta.po b/po/ta.po
index 2c3c5d9a4..32f3749ec 100644
--- a/po/ta.po
+++ b/po/ta.po
@@ -4166,3 +4166,6 @@ msgstr ""
"நீங்கள் ஒரு சின்னத்தின் இடமாற்றினை உருவாக்க நினைத்தால், --ignore-theme-index ஐ "
"பயன்படுத்தவும்.\n"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s on %2$s"
diff --git a/po/th.po b/po/th.po
index 7750cb03f..93d679d51 100644
--- a/po/th.po
+++ b/po/th.po
@@ -4927,3 +4927,6 @@ msgstr ""
#~ msgid "Zoom to _Fit"
#~ msgstr "ขยายให้พอดี (_F)"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s ที่ %2$s"
diff --git a/po/uk.po b/po/uk.po
index 2f13fbb37..90b12ed0c 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -4332,3 +4332,6 @@ msgstr ""
"Немає індексного файлу теми у \"%s\".\n"
"Якщо ви дійсно бажаєте створити тут кеш значків, використовуйте --ignore-"
"theme-index.\n"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s на %2$s"
diff --git a/po/vi.po b/po/vi.po
index a51e62ca3..3df36cdc2 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -4250,4 +4250,6 @@ msgid ""
"No theme index file in '%s'.\n"
"If you really want to create an icon cache here, use --ignore-theme-index.\n"
msgstr "Không có tập tin chỉ mục sắc thái nằm trong « %s ».\n"
-"Nếu bạn thật muốn tạo một bộ nhớ biểu tượng ở đây, hãy dùng « --ignore-theme-index ».\n" \ No newline at end of file
+"Nếu bạn thật muốn tạo một bộ nhớ biểu tượng ở đây, hãy dùng « --ignore-theme-index ».\n"
+msgid "%1$s on %2$s"
+msgstr "%1$s trên %2$s"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 0a7e4a242..843193a5a 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -4141,3 +4141,6 @@ msgid ""
msgstr ""
"“%s”中没有主题索引文件。\n"
"如果您真的想要在此创建图标缓存,请使用 --ignore-theme-index。\n"
+
+msgid "%1$s on %2$s"
+msgstr "%2$s 上的 %1$s"
diff --git a/po/zh_HK.po b/po/zh_HK.po
index 8231b0e7f..c45f5049b 100644
--- a/po/zh_HK.po
+++ b/po/zh_HK.po
@@ -4723,3 +4723,6 @@ msgstr ""
#~ msgid "Home"
#~ msgstr "個人資料夾"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s 於 %2$s"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 1ed355c8a..1b8c4e0e4 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -4727,3 +4727,6 @@ msgstr ""
#~ msgid "Home"
#~ msgstr "個人資料夾"
+
+msgid "%1$s on %2$s"
+msgstr "%1$s 於 %2$s"