[gthumb] Rename Categories to Tags



commit 0f1f096fe2cfdb1d61872aa94e5dad5d8e06245d
Author: Marc Pavot <marc pavot gmail com>
Date:   Sun May 17 19:13:57 2009 -0400

    Rename Categories to Tags
---
 data/glade/gthumb.glade             |    4 +-
 data/glade/gthumb_camera.glade      |    6 +-
 data/glade/gthumb_comments.glade    |   12 +-
 data/glade/gthumb_preferences.glade |    4 +-
 data/glade/gthumb_search.glade      |   30 +-
 data/gthumb.schemas.in              |    4 +-
 doc/C/gthumb.xml                    |   74 ++--
 libgthumb/comments.c                |   28 +-
 libgthumb/comments.h                |    4 +-
 libgthumb/file-data.c               |   12 +-
 libgthumb/file-data.h               |    2 +-
 libgthumb/gth-exiv2-utils.cpp       |    2 +-
 libgthumb/gth-file-list.c           |    4 +-
 libgthumb/gth-file-view-list.c      |   30 +-
 libgthumb/gth-file-view-thumbs.c    |   22 +-
 libgthumb/gth-file-view.c           |   34 +-
 libgthumb/gth-file-view.h           |   20 +-
 libgthumb/gth-gstreamer-utils.c     |    2 +-
 libgthumb/gth-image-list.c          |  200 ++++----
 libgthumb/gth-image-list.h          |   14 +-
 libgthumb/gthumb-init.c             |    2 +-
 libgthumb/preferences.c             |    8 +-
 libgthumb/preferences.h             |    2 +-
 libgthumb/typedefs.h                |    6 +-
 src/Makefile.am                     |    8 +-
 src/dlg-categories.c                |  901 -----------------------------------
 src/dlg-categories.h                |   40 --
 src/dlg-image-prop.c                |   12 +-
 src/dlg-photo-importer.c            |   72 ++--
 src/dlg-preferences.c               |   16 +-
 src/dlg-search.c                    |  212 ++++----
 src/gth-browser-actions-callbacks.c |   44 +-
 src/gth-browser-actions-callbacks.h |    4 +-
 src/gth-browser-actions-entries.h   |   16 +-
 src/gth-browser-ui.h                |   12 +-
 src/gth-browser.c                   |   14 +-
 src/gth-category-selection-dialog.c |  479 -------------------
 src/gth-category-selection-dialog.h |   62 ---
 src/gth-filter-bar.c                |   62 ++--
 src/gth-fullscreen.c                |   12 +-
 src/gth-viewer-ui.h                 |    2 +-
 src/gth-viewer.c                    |    6 +-
 src/gth-window-actions-callbacks.c  |    8 +-
 src/gth-window-actions-callbacks.h  |    2 +-
 src/gth-window-actions-entries.h    |   18 +-
 src/gth-window.c                    |   36 +-
 src/gth-window.h                    |    8 +-
 src/main.c                          |   44 +-
 48 files changed, 567 insertions(+), 2049 deletions(-)

diff --git a/data/glade/gthumb.glade b/data/glade/gthumb.glade
index 325532d..63f7340 100644
--- a/data/glade/gthumb.glade
+++ b/data/glade/gthumb.glade
@@ -2026,7 +2026,7 @@
 		  <child>
 		    <widget class="GtkLabel" id="label184">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;Categories:&lt;/b&gt;</property>
+		      <property name="label" translatable="yes">&lt;b&gt;Tags:&lt;/b&gt;</property>
 		      <property name="use_underline">False</property>
 		      <property name="use_markup">True</property>
 		      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -2080,7 +2080,7 @@
 		      </child>
 
 		      <child>
-			<widget class="GtkLabel" id="i_categories_label">
+			<widget class="GtkLabel" id="i_tags_label">
 			  <property name="visible">True</property>
 			  <property name="can_focus">True</property>
 			  <property name="label" translatable="yes"></property>
diff --git a/data/glade/gthumb_camera.glade b/data/glade/gthumb_camera.glade
index dd01e32..2ef43ca 100644
--- a/data/glade/gthumb_camera.glade
+++ b/data/glade/gthumb_camera.glade
@@ -426,7 +426,7 @@
 		  <child>
 		    <widget class="GtkLabel" id="label3">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Ca_tegories:</property>
+		      <property name="label" translatable="yes">_Tags:</property>
 		      <property name="use_underline">True</property>
 		      <property name="use_markup">False</property>
 		      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -458,7 +458,7 @@
 		      <property name="spacing">6</property>
 
 		      <child>
-			<widget class="GtkEntry" id="categories_entry">
+			<widget class="GtkEntry" id="tags_entry">
 			  <property name="visible">True</property>
 			  <property name="can_focus">True</property>
 			  <property name="editable">False</property>
@@ -477,7 +477,7 @@
 		      </child>
 
 		      <child>
-			<widget class="GtkButton" id="choose_categories_button">
+			<widget class="GtkButton" id="choose_tags_button">
 			  <property name="visible">True</property>
 			  <property name="can_focus">True</property>
 			  <property name="label" translatable="yes">...</property>
diff --git a/data/glade/gthumb_comments.glade b/data/glade/gthumb_comments.glade
index 523470b..791a2ab 100644
--- a/data/glade/gthumb_comments.glade
+++ b/data/glade/gthumb_comments.glade
@@ -4,9 +4,9 @@
 <glade-interface>
 <requires lib="gnome"/>
 
-<widget class="GtkDialog" id="categories_dialog">
+<widget class="GtkDialog" id="tags_dialog">
   <property name="border_width">6</property>
-  <property name="title" translatable="yes">Categories</property>
+  <property name="title" translatable="yes">Tags</property>
   <property name="type">GTK_WINDOW_TOPLEVEL</property>
   <property name="window_position">GTK_WIN_POS_NONE</property>
   <property name="modal">True</property>
@@ -97,7 +97,7 @@
 	      <child>
 		<widget class="GtkLabel" id="label4">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">A_vailable categories:</property>
+		  <property name="label" translatable="yes">A_vailable tags:</property>
 		  <property name="use_underline">True</property>
 		  <property name="use_markup">False</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -173,7 +173,7 @@
 			  <child>
 			    <widget class="GtkButton" id="c_add_key_button">
 			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Create a new category</property>
+			      <property name="tooltip" translatable="yes">Create a new tag</property>
 			      <property name="can_focus">True</property>
 			      <property name="label">gtk-new</property>
 			      <property name="use_stock">True</property>
@@ -190,7 +190,7 @@
 			  <child>
 			    <widget class="GtkButton" id="c_remove_key_button">
 			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Remove selected category</property>
+			      <property name="tooltip" translatable="yes">Remove selected tag</property>
 			      <property name="can_focus">True</property>
 			      <property name="label">gtk-delete</property>
 			      <property name="use_stock">True</property>
@@ -241,7 +241,7 @@
 	      <child>
 		<widget class="GtkLabel" id="label5">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">_Selected categories:</property>
+		  <property name="label" translatable="yes">_Selected tags:</property>
 		  <property name="use_underline">True</property>
 		  <property name="use_markup">False</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
diff --git a/data/glade/gthumb_preferences.glade b/data/glade/gthumb_preferences.glade
index 16bdf48..be85930 100644
--- a/data/glade/gthumb_preferences.glade
+++ b/data/glade/gthumb_preferences.glade
@@ -944,10 +944,10 @@
 			  </child>
 
 			  <child>
-			    <widget class="GtkCheckButton" id="toggle_show_categories">
+			    <widget class="GtkCheckButton" id="toggle_show_tags">
 			      <property name="visible">True</property>
 			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">C_ategories</property>
+			      <property name="label" translatable="yes">T_ags</property>
 			      <property name="use_underline">True</property>
 			      <property name="relief">GTK_RELIEF_NORMAL</property>
 			      <property name="focus_on_click">True</property>
diff --git a/data/glade/gthumb_search.glade b/data/glade/gthumb_search.glade
index 6e19dd0..a377e42 100644
--- a/data/glade/gthumb_search.glade
+++ b/data/glade/gthumb_search.glade
@@ -420,7 +420,7 @@
 	      <child>
 		<widget class="GtkLabel" id="label58">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">Ca_tegories:</property>
+		  <property name="label" translatable="yes">_Tags:</property>
 		  <property name="use_underline">True</property>
 		  <property name="use_markup">False</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -430,7 +430,7 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="mnemonic_widget">s_categories_entry</property>
+		  <property name="mnemonic_widget">s_tags_entry</property>
 		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
 		  <property name="width_chars">-1</property>
 		  <property name="single_line_mode">False</property>
@@ -553,7 +553,7 @@
 		  <property name="spacing">5</property>
 
 		  <child>
-		    <widget class="GtkEntry" id="s_categories_entry">
+		    <widget class="GtkEntry" id="s_tags_entry">
 		      <property name="visible">True</property>
 		      <property name="can_focus">True</property>
 		      <property name="editable">True</property>
@@ -572,9 +572,9 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkButton" id="s_choose_categories_button">
+		    <widget class="GtkButton" id="s_choose_tags_button">
 		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">Choose categories from the saved list</property>
+		      <property name="tooltip" translatable="yes">Choose tags from the saved list</property>
 		      <property name="can_focus">True</property>
 		      <property name="label" translatable="yes">...</property>
 		      <property name="use_underline">True</property>
@@ -1786,9 +1786,9 @@
   </child>
 </widget>
 
-<widget class="GtkDialog" id="categories_dialog">
+<widget class="GtkDialog" id="tags_dialog">
   <property name="border_width">6</property>
-  <property name="title" translatable="yes">Categories</property>
+  <property name="title" translatable="yes">Tags</property>
   <property name="type">GTK_WINDOW_TOPLEVEL</property>
   <property name="window_position">GTK_WIN_POS_NONE</property>
   <property name="modal">True</property>
@@ -1866,7 +1866,7 @@
 	      <child>
 		<widget class="GtkLabel" id="label46">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">A_vailable categories:</property>
+		  <property name="label" translatable="yes">A_vailable tags:</property>
 		  <property name="use_underline">True</property>
 		  <property name="use_markup">False</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -1876,7 +1876,7 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="mnemonic_widget">c_categories_treeview</property>
+		  <property name="mnemonic_widget">c_tags_treeview</property>
 		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
 		  <property name="width_chars">-1</property>
 		  <property name="single_line_mode">False</property>
@@ -1901,7 +1901,7 @@
 		  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
 
 		  <child>
-		    <widget class="GtkTreeView" id="c_categories_treeview">
+		    <widget class="GtkTreeView" id="c_tags_treeview">
 		      <property name="visible">True</property>
 		      <property name="can_focus">True</property>
 		      <property name="headers_visible">False</property>
@@ -1937,7 +1937,7 @@
 	      <child>
 		<widget class="GtkLabel" id="label59">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">_Selected categories:</property>
+		  <property name="label" translatable="yes">_Selected tags:</property>
 		  <property name="use_underline">True</property>
 		  <property name="use_markup">False</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -1947,7 +1947,7 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
-		  <property name="mnemonic_widget">c_categories_entry</property>
+		  <property name="mnemonic_widget">c_tags_entry</property>
 		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
 		  <property name="width_chars">-1</property>
 		  <property name="single_line_mode">False</property>
@@ -1961,7 +1961,7 @@
 	      </child>
 
 	      <child>
-		<widget class="GtkEntry" id="c_categories_entry">
+		<widget class="GtkEntry" id="c_tags_entry">
 		  <property name="visible">True</property>
 		  <property name="can_focus">True</property>
 		  <property name="editable">False</property>
@@ -1996,7 +1996,7 @@
 		<widget class="GtkRadioButton" id="s_at_least_one_cat_radiobutton">
 		  <property name="visible">True</property>
 		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">Match a_ny selected category</property>
+		  <property name="label" translatable="yes">Match a_ny selected tag</property>
 		  <property name="use_underline">True</property>
 		  <property name="relief">GTK_RELIEF_NORMAL</property>
 		  <property name="focus_on_click">True</property>
@@ -2015,7 +2015,7 @@
 		<widget class="GtkRadioButton" id="s_all_cat_radiobutton">
 		  <property name="visible">True</property>
 		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">Match a_ll selected categories</property>
+		  <property name="label" translatable="yes">Match a_ll selected tags</property>
 		  <property name="use_underline">True</property>
 		  <property name="relief">GTK_RELIEF_NORMAL</property>
 		  <property name="focus_on_click">True</property>
diff --git a/data/gthumb.schemas.in b/data/gthumb.schemas.in
index cf02d24..12ab893 100644
--- a/data/gthumb.schemas.in
+++ b/data/gthumb.schemas.in
@@ -150,8 +150,8 @@
       </schema>
 
       <schema>
-	<key>/schemas/apps/gthumb/browser/show_categories</key>
-	<applyto>/apps/gthumb/browser/show_categories</applyto>
+	<key>/schemas/apps/gthumb/browser/show_tags</key>
+	<applyto>/apps/gthumb/browser/show_tags</applyto>
 	<owner>gthumb</owner>
 	<type>bool</type>
 	<default>true</default>
diff --git a/doc/C/gthumb.xml b/doc/C/gthumb.xml
index ecd52fc..98fecfc 100644
--- a/doc/C/gthumb.xml
+++ b/doc/C/gthumb.xml
@@ -1373,42 +1373,42 @@
   </sect2>
   </sect1>
 
-  <!-- ============= Categories ================================== -->
-  <sect1 id="gthumb-categories">
-  <title>Categories</title>
+  <!-- ============= Tags ================================== -->
+  <sect1 id="gthumb-tags">
+  <title>Tags</title>
   <para>
-    Categories are keywords assigned to images and can be used to perform fine
+    Tags are keywords assigned to images and can be used to perform fine
     grained searches as described in <xref linkend="gthumb-finding"/>.
     <note>
       <title>WARNING</title>
-      <para>Categories are not embedded in image files, they are instead saved
+      <para>Tags are not embedded in image files, they are instead saved
       separately.  This means that if you move images or
       folders with other programs you will lose your comments.
       </para>
     </note>
     <note>
       <title>FOR EXPERTS</title>
-      <para>Categories are saved in the subfolder
+      <para>Tags are saved in the subfolder
       <filename>.comments</filename> of the image folder and in the same file
       where the image comment is saved.
       </para>
     </note>
   </para>
-  <sect2 id="gthumb-categories-add">
-  <title>To Assign Categories to a Series of Images</title>
+  <sect2 id="gthumb-tags-add">
+  <title>To Assign Tags to a Series of Images</title>
   <para>
-    To add categories to a series of images, perform the following steps:
+    To add tags to a series of images, perform the following steps:
     <orderedlist>
       <listitem>
         <para>Select the images and choose
-        <menuchoice><guimenu>Edit</guimenu><guimenuitem>Categories
+        <menuchoice><guimenu>Edit</guimenu><guimenuitem>Tags
         </guimenuitem></menuchoice>. &app; shows the
-        <guilabel>Categories</guilabel> dialog.</para>
+        <guilabel>Tags</guilabel> dialog.</para>
       </listitem>
       <listitem>
-	<para>Check the categories in the <guilabel>Available Categories
-        </guilabel> List.  You can create new categories clicking on the
-        <guilabel>New</guilabel> button, and delete categories from the
+	<para>Check the tags in the <guilabel>Available Tags
+        </guilabel> List.  You can create new tags clicking on the
+        <guilabel>New</guilabel> button, and delete tags from the
 	list clicking on the <guilabel>Remove</guilabel> button. </para>
       </listitem>
       <listitem>
@@ -1419,29 +1419,29 @@
     </orderedlist>
   </para>
   </sect2>
-  <sect2 id="gthumb-categories-add-to-folder">
-  <title>To Assign Categories to a Folder</title>
+  <sect2 id="gthumb-tags-add-to-folder">
+  <title>To Assign Tags to a Folder</title>
   <para>
-    Instead of assigning categories to single images you can assign them
-    to a folder, this is equivalent to assign the categories to all the images
+    Instead of assigning tags to single images you can assign them
+    to a folder, this is equivalent to assign the tags to all the images
     contained in the folder and in all of its subfolders.
   </para>
   <para>
-    To add categories to a folder, perform the following steps:
+    To add tags to a folder, perform the following steps:
     <orderedlist>
       <listitem>
         <para>Go to the parent folder in order to visualize the folder name
 	in the folder list pane, right-click on the folder name and
-	select the <menuchoice><guimenuitem>Categories</guimenuitem>
+	select the <menuchoice><guimenuitem>Tags</guimenuitem>
         </menuchoice> command; alternatively go to the folder and select
 	the <menuchoice><guimenu>File</guimenu><guisubmenu>Folder</guisubmenu>
-        <guimenuitem>Categories</guimenuitem></menuchoice> commands.  In both
-        cases &app; shows the <guilabel>Categories</guilabel> dialog.</para>
+        <guimenuitem>Tags</guimenuitem></menuchoice> commands.  In both
+        cases &app; shows the <guilabel>Tags</guilabel> dialog.</para>
       </listitem>
       <listitem>
-	<para>Check the categories in the <guilabel>Available Categories
-        </guilabel> List.  You can create new categories clicking on the
-        <guilabel>New</guilabel> button, and delete categories from the
+	<para>Check the tags in the <guilabel>Available Tags
+        </guilabel> List.  You can create new tags clicking on the
+        <guilabel>New</guilabel> button, and delete tags from the
 	list clicking on the <guilabel>Remove</guilabel> button. </para>
       </listitem>
       <listitem>
@@ -1452,11 +1452,11 @@
     </orderedlist>
   </para>
   </sect2>
-  <sect2 id="gthumb-categories-remove">
-  <title>To Remove Categories from an Image or a Folder</title>
+  <sect2 id="gthumb-tags-remove">
+  <title>To Remove Tags from an Image or a Folder</title>
   <para>
-    To remove categories from a series of images or a folder perform the
-    same steps as described above and uncheck the categories you want
+    To remove tags from a series of images or a folder perform the
+    same steps as described above and uncheck the tags you want
     to remove. Finally click on <guibutton>Ok</guibutton> to confirm the
     operation.
   </para>
@@ -1889,18 +1889,18 @@
 	  </varlistentry>
 	  <varlistentry>
 	    <!-- -->
-            <term><guilabel>Categories</guilabel></term>
+            <term><guilabel>Tags</guilabel></term>
 	    <listitem>
 	    <para>
-	    The list of categories an images must belong to.
-	    Categories can be added to images using the
-	    <menuchoice><guimenu>Edit</guimenu><guimenuitem>Categories</guimenuitem></menuchoice>
+	    The list of tags an images must belong to.
+	    Tags can be added to images using the
+	    <menuchoice><guimenu>Edit</guimenu><guimenuitem>Tags</guimenuitem></menuchoice>
 	    command or pressing
 	    <keycombo><keycap>K</keycap></keycombo>.
             </para>
 	    <para>
 	      You can choose to search for images that belongs to all
-	      the specified categories or at least to one of them,
+	      the specified tags or at least to one of them,
 	      checking the corresponding option.
 	    </para>
             <para>
@@ -3004,8 +3004,8 @@
 	of the E modifier is to use a locale-dependent alternative representation.
        </para>
        <para>
-         <guilabel>Categories</guilabel> can be specified for the imported
-         photos using the <guilabel>Categories</guilabel> box.
+         <guilabel>Tags</guilabel> can be specified for the imported
+         photos using the <guilabel>Tags</guilabel> box.
        </para>
        <para>
          If the <guilabel>Delete imported images from the camera</guilabel>
@@ -4109,7 +4109,7 @@
 	      </para>
 	    </entry>
             <entry>
-	      <para>Assign categories to the selected images.</para>
+	      <para>Assign tags to the selected images.</para>
 	    </entry>
             <entry>
 	      <para>yes</para>
diff --git a/libgthumb/comments.c b/libgthumb/comments.c
index 7cf2442..1e22e84 100644
--- a/libgthumb/comments.c
+++ b/libgthumb/comments.c
@@ -636,12 +636,12 @@ comments_save_comment (const char  *uri,
 	new_data = comments_load_comment (uri, FALSE);
 	
 	if ((new_data == NULL) && (data != NULL)) {
-		CommentData *data_without_categories;
+		CommentData *data_without_tags;
 
-		data_without_categories = comment_data_dup (data);
-		comment_data_free_keywords (data_without_categories);
-		save_comment (uri, data_without_categories, TRUE);
-		comment_data_free (data_without_categories);
+		data_without_tags = comment_data_dup (data);
+		comment_data_free_keywords (data_without_tags);
+		save_comment (uri, data_without_tags, TRUE);
+		comment_data_free (data_without_tags);
 
 		return;
 	}
@@ -700,7 +700,7 @@ comments_save_comment_non_null (const char  *uri,
 
 
 void
-comments_save_categories (const char  *uri,
+comments_save_tags (const char  *uri,
 			  CommentData *data)
 {
 	CommentData *new_data;
@@ -981,10 +981,10 @@ _get_comment_as_string_common (CommentData *data,
 
 /* Note: separators are not escaped */
 static char *
-_get_categories_as_string_common (CommentData *data,
+_get_tags_as_string_common (CommentData *data,
                                   char        *sep)
 {
-        GString *categories;
+        GString *tags;
         GSList  *tmp;
 
 	if (data == NULL)
@@ -993,15 +993,15 @@ _get_categories_as_string_common (CommentData *data,
         if (data->keywords == NULL)
                 return NULL;
 
-        categories = g_string_new ("");
+        tags = g_string_new ("");
 
         for (tmp = data->keywords; tmp; tmp = g_slist_next (tmp)) {
-                g_string_append (categories, tmp->data);
+                g_string_append (tags, tmp->data);
                 if (g_slist_next (tmp))
-                        g_string_append (categories, sep);
+                        g_string_append (tags, sep);
         }
 
-        return g_string_free (categories, FALSE);
+        return g_string_free (tags, FALSE);
 }
 
 
@@ -1014,9 +1014,9 @@ comments_get_comment_as_string (CommentData *data,
 }
 
 char *
-comments_get_categories_as_string (CommentData *data,
+comments_get_tags_as_string (CommentData *data,
                                    char        *sep)
 {
-	return _get_categories_as_string_common (data, sep);
+	return _get_tags_as_string_common (data, sep);
 }
 
diff --git a/libgthumb/comments.h b/libgthumb/comments.h
index bac07ab..64a57a7 100644
--- a/libgthumb/comments.h
+++ b/libgthumb/comments.h
@@ -68,12 +68,12 @@ void           comments_save_comment               (const char  *uri,
 						    CommentData *data);
 void           comments_save_comment_non_null      (const char  *uri,
 						    CommentData *data);
-void           comments_save_categories            (const char  *uri,
+void           comments_save_tags                  (const char  *uri,
 						    CommentData *data);
 char *         comments_get_comment_as_string      (CommentData *data,
 						    char        *sep1,
 						    char        *sep2);
-char *         comments_get_categories_as_string   (CommentData *data,
+char *         comments_get_tags_as_string         (CommentData *data,
 						    char        *sep);
 char*          _g_escape_text_for_html             (const gchar *text,
 						    gssize       length);
diff --git a/libgthumb/file-data.c b/libgthumb/file-data.c
index 5452035..a08e182 100644
--- a/libgthumb/file-data.c
+++ b/libgthumb/file-data.c
@@ -137,7 +137,7 @@ file_data_new (const char *path)
 	fd->thumb_loaded = FALSE;
 	fd->thumb_created = FALSE;
 	fd->comment = g_strdup ("");
-	fd->categories = g_strdup ("");
+	fd->tags = g_strdup ("");
 
 	return fd;
 }
@@ -181,7 +181,7 @@ file_data_dup (FileData *source)
 	fd->thumb_loaded = source->thumb_loaded;
 	fd->thumb_created = source->thumb_created;
 	fd->comment = (source->comment != NULL) ? g_strdup (source->comment) : NULL;
-	fd->categories = (source->categories != NULL) ? g_strdup (source->categories) : NULL;
+	fd->tags = (source->tags != NULL) ? g_strdup (source->tags) : NULL;
 	fd->comment_data = comment_data_dup (source->comment_data);
 	
 	return fd;
@@ -202,7 +202,7 @@ file_data_unref (FileData *fd)
 		if (fd->comment_data != NULL)
 			comment_data_free (fd->comment_data);
 		g_free (fd->comment);
-		g_free (fd->categories);
+		g_free (fd->tags);
 		fd_free_metadata (fd);
 		g_free (fd);
 	}
@@ -289,9 +289,9 @@ file_data_update_comment (FileData *fd)
 	if (fd->comment == NULL)
 		fd->comment = g_strdup ("");
 
-	fd->categories = comments_get_categories_as_string (fd->comment_data, ", ");
-	if (fd->categories == NULL)
-		fd->categories = g_strdup ("");
+	fd->tags = comments_get_tags_as_string (fd->comment_data, ", ");
+	if (fd->tags == NULL)
+		fd->tags = g_strdup ("");
 }
 
 
diff --git a/libgthumb/file-data.h b/libgthumb/file-data.h
index aa9fe28..9e56a33 100644
--- a/libgthumb/file-data.h
+++ b/libgthumb/file-data.h
@@ -55,7 +55,7 @@ typedef struct {
 						* created for this image. */
 
 	char               *comment;
-	char               *categories;
+	char               *tags;
 	CommentData        *comment_data;
 	
 	GList              *metadata;
diff --git a/libgthumb/gth-exiv2-utils.cpp b/libgthumb/gth-exiv2-utils.cpp
index 9d5fb08..02b59f2 100644
--- a/libgthumb/gth-exiv2-utils.cpp
+++ b/libgthumb/gth-exiv2-utils.cpp
@@ -603,7 +603,7 @@ write_metadata (const char *from_file,
 					id[metadatum->full_name] = metadatum->raw_value;
 				} else if (g_str_has_prefix (metadatum->full_name, "Xmp")) {
 					// Remove existing tags of the same type.
-					// Seems to be needed for storing category keywords.
+					// Seems to be needed for storing tags keywords.
 					// Not exactly sure why!
 					Exiv2::XmpData::iterator iter = xd.findKey (Exiv2::XmpKey (metadatum->full_name));
 					if (iter != xd.end ())
diff --git a/libgthumb/gth-file-list.c b/libgthumb/gth-file-list.c
index 72c7441..3cb2dea 100644
--- a/libgthumb/gth-file-list.c
+++ b/libgthumb/gth-file-list.c
@@ -1114,7 +1114,7 @@ add_list_in_chunks (gpointer callback_data)
 					      		pixbuf,
 							fd->utf8_name,
 							fd->comment,
-							fd->categories,
+							fd->tags,
 							fd);
 			g_object_unref (pixbuf);
 		}
@@ -1724,7 +1724,7 @@ gfl_update_comment (GthFileList *file_list,
 		/* Set the new name. */
 
 		gth_file_view_set_image_comment (file_list->view, pos, fd->comment);
-		gth_file_view_set_image_categories (file_list->view, pos, fd->categories);
+		gth_file_view_set_image_tags (file_list->view, pos, fd->tags);
 		file_data_unref (fd);
 	}
 }
diff --git a/libgthumb/gth-file-view-list.c b/libgthumb/gth-file-view-list.c
index 857caa1..cc01d33 100644
--- a/libgthumb/gth-file-view-list.c
+++ b/libgthumb/gth-file-view-list.c
@@ -47,7 +47,7 @@ enum {
 	COLUMN_TIME,
 	COLUMN_COMMENT,
 	COLUMN_EXIF_DATE,
-	COLUMN_CATEGORIES,
+	COLUMN_TAGS,
 	NUMBER_OF_COLUMNS
 };
 
@@ -216,7 +216,7 @@ gfv_insert (GthFileView  *file_view,
 	    GdkPixbuf    *pixbuf,
 	    const char   *text,
 	    const char   *comment,
-            const char   *categories)
+            const char   *tags)
 {
 	GthFileViewList *gfv_list = (GthFileViewList *) file_view;
 	GtkListStore    *list_store = gfv_list->priv->list_store;
@@ -232,7 +232,7 @@ gfv_insert (GthFileView  *file_view,
 			    COLUMN_ICON, real_pixbuf,
 			    COLUMN_NAME, text,
 			    COLUMN_COMMENT, comment,
-			    COLUMN_CATEGORIES, categories,
+			    COLUMN_TAGS, tags,
 			    -1);
 
 	if (real_pixbuf != NULL)
@@ -245,7 +245,7 @@ gfv_append (GthFileView  *file_view,
 	    GdkPixbuf    *pixbuf,
 	    const char   *text,
 	    const char   *comment,
-            const char   *categories)
+            const char   *tags)
 {
 	GthFileViewList *gfv_list = (GthFileViewList *) file_view;
 	GtkListStore    *list_store = gfv_list->priv->list_store;
@@ -263,7 +263,7 @@ gfv_append (GthFileView  *file_view,
 			    COLUMN_ICON, real_pixbuf,
 			    COLUMN_NAME, text,
 			    COLUMN_COMMENT, comment,
-			    COLUMN_CATEGORIES, categories,
+			    COLUMN_TAGS, tags,
 			    -1);
 
 	if (real_pixbuf != NULL)
@@ -282,7 +282,7 @@ gfv_append_with_data (GthFileView  *file_view,
 		      GdkPixbuf    *pixbuf,
 		      const char   *text,
 		      const char   *comment,
-                      const char   *categories,
+                      const char   *tags,
 		      gpointer      data)
 {
 	GthFileViewList *gfv_list = (GthFileViewList *) file_view;
@@ -301,7 +301,7 @@ gfv_append_with_data (GthFileView  *file_view,
 			    COLUMN_ICON, real_pixbuf,
 			    COLUMN_NAME, text,
 			    COLUMN_COMMENT, comment,
-			    COLUMN_CATEGORIES, categories,
+			    COLUMN_TAGS, tags,
 			    COLUMN_FILE_DATA, data,
 			    -1);
 
@@ -456,9 +456,9 @@ gfv_set_image_comment (GthFileView  *file_view,
 
 
 static void
-gfv_set_image_categories (GthFileView  *file_view,
+gfv_set_image_tags (GthFileView  *file_view,
                           int           pos,
-                          const char   *categories)
+                          const char   *tags)
 {
 	GthFileViewList *gfv_list = (GthFileViewList *) file_view;
 	GtkTreeIter      iter;
@@ -467,7 +467,7 @@ gfv_set_image_categories (GthFileView  *file_view,
 		return;
 
 	gtk_list_store_set (gfv_list->priv->list_store, &iter,
-			    COLUMN_CATEGORIES, categories,
+			    COLUMN_TAGS, tags,
 			    -1);
 }
 
@@ -883,7 +883,7 @@ gfv_set_view_mode (GthFileView *file_view,
 	gtk_tree_view_column_set_visible (column, mode & GTH_VIEW_MODE_COMMENTS);
 
 	column = gtk_tree_view_get_column (gfv_list->priv->tree_view, 3);
-	gtk_tree_view_column_set_visible (column, mode & GTH_VIEW_MODE_CATEGORIES);
+	gtk_tree_view_column_set_visible (column, mode & GTH_VIEW_MODE_TAGS);
 }
 
 
@@ -1334,7 +1334,7 @@ gth_file_view_list_class_init (GthFileViewListClass *file_view_list_class)
 	file_view_class->set_image_text       = gfv_set_image_text;
 	file_view_class->get_image_text       = gfv_get_image_text;
 	file_view_class->set_image_comment    = gfv_set_image_comment;
-	file_view_class->set_image_categories    = gfv_set_image_categories;
+	file_view_class->set_image_tags       = gfv_set_image_tags;
 	file_view_class->get_image_comment    = gfv_get_image_comment;
 	file_view_class->get_images           = gfv_get_images;
 	file_view_class->get_list             = gfv_get_list;
@@ -1521,14 +1521,14 @@ add_columns (GtkTreeView *treeview)
 
 	gtk_tree_view_append_column (treeview, column);
 
-	/* Categories column */
+	/* Tags column */
 
 	column = gtk_tree_view_column_new ();
 
 	renderer = gtk_cell_renderer_text_new ();
 	gtk_tree_view_column_pack_start (column, renderer, TRUE);
 	gtk_tree_view_column_set_attributes (column, renderer,
-					     "text", COLUMN_CATEGORIES,
+					     "text", COLUMN_TAGS,
 					     NULL);
 
 	g_value_init (&value, PANGO_TYPE_ELLIPSIZE_MODE);
@@ -1536,7 +1536,7 @@ add_columns (GtkTreeView *treeview)
 	g_object_set_property (G_OBJECT (renderer), "ellipsize", &value);
 	g_value_unset (&value);
 
-	gtk_tree_view_column_set_sort_column_id (column, COLUMN_CATEGORIES);
+	gtk_tree_view_column_set_sort_column_id (column, COLUMN_TAGS);
 	gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
 	gtk_tree_view_column_set_resizable (column, FALSE);
 	gtk_tree_view_column_set_expand (column, TRUE);
diff --git a/libgthumb/gth-file-view-thumbs.c b/libgthumb/gth-file-view-thumbs.c
index d74dec5..ecdbf4c 100644
--- a/libgthumb/gth-file-view-thumbs.c
+++ b/libgthumb/gth-file-view-thumbs.c
@@ -133,14 +133,14 @@ gfv_insert (GthFileView  *file_view,
 	    GdkPixbuf    *pixbuf,
 	    const char   *text,
 	    const char   *comment,
-            const char   *categories)
+            const char   *tags)
 {
 	GthFileViewThumbs *gfv_thumbs = (GthFileViewThumbs *) file_view;
 	GthImageList      *ilist = gfv_thumbs->priv->ilist;
 
 	g_return_if_fail (pixbuf != NULL);
 
-	gth_image_list_insert (ilist, pos, pixbuf, text, comment, categories);
+	gth_image_list_insert (ilist, pos, pixbuf, text, comment, tags);
 }
 
 
@@ -149,14 +149,14 @@ gfv_append (GthFileView  *file_view,
 	    GdkPixbuf    *pixbuf,
 	    const char   *text,
 	    const char   *comment,
-            const char   *categories)
+            const char   *tags)
 {
 	GthFileViewThumbs *gfv_thumbs = (GthFileViewThumbs *) file_view;
 	GthImageList      *ilist = gfv_thumbs->priv->ilist;
 
 	g_return_val_if_fail (pixbuf != NULL, -1);
 
-	return 	gth_image_list_append (ilist, pixbuf, text, comment, categories);
+	return 	gth_image_list_append (ilist, pixbuf, text, comment, tags);
 }
 
 
@@ -165,7 +165,7 @@ gfv_append_with_data (GthFileView  *file_view,
 		      GdkPixbuf    *pixbuf,
 		      const char   *text,
 		      const char   *comment,
-		      const char   *categories,
+		      const char   *tags,
 		      gpointer      data)
 {
 	GthFileViewThumbs *gfv_thumbs = (GthFileViewThumbs *) file_view;
@@ -173,7 +173,7 @@ gfv_append_with_data (GthFileView  *file_view,
 
 	g_return_val_if_fail (pixbuf != NULL, -1);
 
-	return 	gth_image_list_append_with_data (ilist, pixbuf, text, comment, categories, data);
+	return 	gth_image_list_append_with_data (ilist, pixbuf, text, comment, tags, data);
 }
 
 
@@ -246,14 +246,14 @@ gfv_set_image_comment (GthFileView  *file_view,
 
 
 static void
-gfv_set_image_categories (GthFileView  *file_view,
-                          int           pos,
-                          const char   *categories)
+gfv_set_image_tags (GthFileView  *file_view,
+                    int           pos,
+                    const char   *tags)
 {
 	GthFileViewThumbs *gfv_thumbs = (GthFileViewThumbs *) file_view;
 	GthImageList      *ilist = gfv_thumbs->priv->ilist;
 
-	gth_image_list_set_image_categories (ilist, pos, categories);
+	gth_image_list_set_image_tags (ilist, pos, tags);
 }
 
 
@@ -898,7 +898,7 @@ gth_file_view_thumbs_class_init (GthFileViewThumbsClass *file_view_thumbs_class)
 	file_view_class->set_image_text       = gfv_set_image_text;
 	file_view_class->get_image_text       = gfv_get_image_text;
 	file_view_class->set_image_comment    = gfv_set_image_comment;
-	file_view_class->set_image_categories = gfv_set_image_categories;
+	file_view_class->set_image_tags       = gfv_set_image_tags;
 	file_view_class->get_image_comment    = gfv_get_image_comment;
 	file_view_class->get_images           = gfv_get_images;
 	file_view_class->get_list             = gfv_get_list;
diff --git a/libgthumb/gth-file-view.c b/libgthumb/gth-file-view.c
index 0e66775..d4b034c 100644
--- a/libgthumb/gth-file-view.c
+++ b/libgthumb/gth-file-view.c
@@ -112,7 +112,7 @@ gfv_insert (GthFileView  *file_view,
 	    GdkPixbuf    *pixbuf,
 	    const char   *text,
 	    const char   *comment,
-            const char   *categories)
+            const char   *tags)
 {
 }
 
@@ -122,7 +122,7 @@ gfv_append (GthFileView  *file_view,
 	    GdkPixbuf    *pixbuf,
 	    const char   *text,
 	    const char   *comment,
-            const char   *categories)
+            const char   *tags)
 {
 	return -1;
 }
@@ -133,7 +133,7 @@ gfv_append_with_data (GthFileView  *file_view,
 		      GdkPixbuf    *pixbuf,
 		      const char   *text,
 		      const char   *comment,
-                      const char   *categories,
+                      const char   *tags,
 		      gpointer      data)
 {
 	return -1;
@@ -186,9 +186,9 @@ gfv_set_image_comment (GthFileView  *file_view,
 
 
 static void
-gfv_set_image_categories (GthFileView  *file_view,
-                          int           pos,
-                          const char   *categories)
+gfv_set_image_tags (GthFileView  *file_view,
+                    int           pos,
+                    const char   *tags)
 {
 }
 
@@ -521,7 +521,7 @@ gth_file_view_class_init (GthFileViewClass *file_view_class)
 	file_view_class->set_image_text       = gfv_set_image_text;
 	file_view_class->get_image_text       = gfv_get_image_text;
 	file_view_class->set_image_comment    = gfv_set_image_comment;
-	file_view_class->set_image_categories = gfv_set_image_categories;
+	file_view_class->set_image_tags       = gfv_set_image_tags;
 	file_view_class->get_image_comment    = gfv_get_image_comment;
 	file_view_class->get_images           = gfv_get_images;
 	file_view_class->get_list             = gfv_get_list;
@@ -706,9 +706,9 @@ gth_file_view_insert (GthFileView  *file_view,
 		      GdkPixbuf    *pixbuf,
 		      const char   *text,
 		      const char   *comment,
-                      const char   *categories)
+                      const char   *tags)
 {
-	GTH_FILE_VIEW_GET_CLASS (file_view)->insert (file_view, pos, pixbuf, text, comment, categories);
+	GTH_FILE_VIEW_GET_CLASS (file_view)->insert (file_view, pos, pixbuf, text, comment, tags);
 }
 
 
@@ -717,9 +717,9 @@ gth_file_view_append (GthFileView  *file_view,
 		      GdkPixbuf    *pixbuf,
 		      const char   *text,
 		      const char   *comment,
-                      const char   *categories)
+                      const char   *tags)
 {
-	return GTH_FILE_VIEW_GET_CLASS (file_view)->append (file_view, pixbuf, text, comment, categories);
+	return GTH_FILE_VIEW_GET_CLASS (file_view)->append (file_view, pixbuf, text, comment, tags);
 }
 
 
@@ -728,10 +728,10 @@ gth_file_view_append_with_data (GthFileView  *file_view,
 				GdkPixbuf    *pixbuf,
 				const char   *text,
 				const char   *comment,
-                                const char   *categories,
+                                const char   *tags,
 				gpointer      data)
 {
-	return GTH_FILE_VIEW_GET_CLASS (file_view)->append_with_data (file_view, pixbuf, text, comment, categories, data);
+	return GTH_FILE_VIEW_GET_CLASS (file_view)->append_with_data (file_view, pixbuf, text, comment, tags, data);
 }
 
 
@@ -786,11 +786,11 @@ gth_file_view_set_image_comment (GthFileView  *file_view,
 
 
 void
-gth_file_view_set_image_categories (GthFileView  *file_view,
-                                    int           pos,
-                                    const char   *categories)
+gth_file_view_set_image_tags (GthFileView  *file_view,
+                              int           pos,
+                              const char   *tags)
 {
-	GTH_FILE_VIEW_GET_CLASS (file_view)->set_image_categories (file_view, pos, categories);
+	GTH_FILE_VIEW_GET_CLASS (file_view)->set_image_tags (file_view, pos, tags);
 }
 
 
diff --git a/libgthumb/gth-file-view.h b/libgthumb/gth-file-view.h
index 66e439a..f6f2759 100644
--- a/libgthumb/gth-file-view.h
+++ b/libgthumb/gth-file-view.h
@@ -78,17 +78,17 @@ typedef struct {
 						 GdkPixbuf    *pixbuf,
 						 const char   *text,
 						 const char   *comment,
-                                                 const char   *categories);
+                                                 const char   *tags);
 	int            (* append)               (GthFileView  *file_view,
 						 GdkPixbuf    *pixbuf,
 						 const char   *text,
 						 const char   *comment,
-                                                 const char   *categories);
+                                                 const char   *tags);
 	int            (* append_with_data)     (GthFileView  *file_view,
 						 GdkPixbuf    *pixbuf,
 						 const char   *text,
 						 const char   *comment,
-                                                 const char   *categories,
+                                                 const char   *tags,
 						 gpointer      data);
 	void           (* remove)               (GthFileView  *file_view,
 						 gpointer      data);
@@ -106,9 +106,9 @@ typedef struct {
 	void           (* set_image_comment)    (GthFileView  *file_view,
 						 int           pos,
 						 const char   *comment);
-	void           (* set_image_categories) (GthFileView  *file_view,
+	void           (* set_image_tags)       (GthFileView  *file_view,
 						 int           pos,
-						 const char   *categories);
+						 const char   *tags);
 	const char*    (* get_image_comment)    (GthFileView  *file_view,
 						 int           pos);
 	int            (* get_images)           (GthFileView  *file_view);
@@ -225,17 +225,17 @@ void           gth_file_view_insert              (GthFileView  *file_view,
 						  GdkPixbuf    *pixbuf,
 						  const char   *text,
 						  const char   *comment,
-                                                  const char   *categories);
+                                                  const char   *tags);
 int            gth_file_view_append              (GthFileView  *file_view,
 						  GdkPixbuf    *pixbuf,
 						  const char   *text,
 						  const char   *comment,
-                                                  const char   *categories);
+                                                  const char   *tags);
 int            gth_file_view_append_with_data    (GthFileView  *file_view,
 						  GdkPixbuf    *pixbuf,
 						  const char   *text,
 						  const char   *comment,
-                                                  const char   *categories,
+                                                  const char   *tags,
 						  gpointer      data);
 void           gth_file_view_remove              (GthFileView  *file_view,
 						  gpointer      data);
@@ -255,9 +255,9 @@ void           gth_file_view_set_image_comment   (GthFileView  *file_view,
 						  const char   *comment);
 const char*    gth_file_view_get_image_comment   (GthFileView  *file_view,
 						  int           pos);
-void           gth_file_view_set_image_categories(GthFileView  *file_view,
+void           gth_file_view_set_image_tags      (GthFileView  *file_view,
 						  int           pos,
-						  const char   *categories);
+						  const char   *tags);
 int            gth_file_view_get_images          (GthFileView  *file_view);
 GList *        gth_file_view_get_list            (GthFileView  *file_view);
 GList *        gth_file_view_get_selection       (GthFileView  *file_view);
diff --git a/libgthumb/gth-gstreamer-utils.c b/libgthumb/gth-gstreamer-utils.c
index 3d48c97..3ec2e26 100644
--- a/libgthumb/gth-gstreamer-utils.c
+++ b/libgthumb/gth-gstreamer-utils.c
@@ -207,7 +207,7 @@ add_metadata (GList *metadata,
 
 	if (value != NULL) {
 		new_entry = g_new (GthMetadata, 1);
-        	new_entry->category = GTH_METADATA_CATEGORY_GSTREAMER;
+		new_entry->category = GTH_METADATA_CATEGORY_GSTREAMER;
 		new_entry->full_name = g_strdup (key);
 		new_entry->display_name = key;
         	new_entry->formatted_value = value;
diff --git a/libgthumb/gth-image-list.c b/libgthumb/gth-image-list.c
index d3d51c9..9a4c104 100644
--- a/libgthumb/gth-image-list.c
+++ b/libgthumb/gth-image-list.c
@@ -48,7 +48,7 @@
 #define DEFAULT_TEXT_SPACING 6
 #define DEFAULT_IMAGE_BORDER 3
 #define TEXT_COMMENT_SPACE 6       /* space between text and comment. */
-#define TEXT_CATEGORIES_SPACE 6       /* space between text and categories. */
+#define TEXT_TAGS_SPACE 6       /* space between text and tags. */
 #define KEYBOARD_SELECTION_BORDER 10
 #define FRAME_SELECTION_BORDER 3
 
@@ -70,9 +70,9 @@
   + ((((il)->comment_height > 0) || ((il)->text_height > 0)) ? (gil)->priv->text_spacing : 0) \
   + (il)->comment_height \
   + ((((il)->comment_height > 0) && ((il)->text_height > 0)) ? TEXT_COMMENT_SPACE : 0) \
-  + ((((il)->categories_height > 0) || ((il)->text_height > 0)) ? (gil)->priv->text_spacing : 0) \
-  + (il)->categories_height \
-  + ((((il)->categories_height > 0) && ((il)->text_height > 0)) ? TEXT_CATEGORIES_SPACE : 0) \
+  + ((((il)->tags_height > 0) || ((il)->text_height > 0)) ? (gil)->priv->text_spacing : 0) \
+  + (il)->tags_height \
+  + ((((il)->tags_height > 0) && ((il)->text_height > 0)) ? TEXT_TAGS_SPACE : 0) \
   + (il)->text_height \
   + (gil)->priv->row_spacing)
 
@@ -240,7 +240,7 @@ gth_image_list_item_new (GthImageList  *image_list,
 			 GdkPixbuf     *image,
 			 const char    *label,
 			 const char    *comment,
-			 const char    *categories,
+			 const char    *tags,
 			 GType          data_type)
 {
 	GthImageListItem *item;
@@ -254,7 +254,7 @@ gth_image_list_item_new (GthImageList  *image_list,
 	item->image_area.width = -1;
 	item->label_area.width = -1;
 	item->comment_area.width = -1;
-	item->categories_area.width = -1;
+	item->tags_area.width = -1;
 
 	if (image != NULL)
 		gth_image_list_item_set_pixbuf (image_list, item, image);
@@ -265,8 +265,8 @@ gth_image_list_item_new (GthImageList  *image_list,
 	if (comment != NULL)
 		item->comment = g_strdup (comment);
 
-	if (categories != NULL)
-		item->categories = g_strdup (categories);
+	if (tags != NULL)
+		item->tags = g_strdup (tags);
 
 	return item;
 }
@@ -294,7 +294,7 @@ gth_image_list_item_unref (GthImageListItem *item)
 		gth_image_list_item_free_pixmap_and_mask (item);
 		g_free (item->label);
 		g_free (item->comment);
-		g_free (item->categories);
+		g_free (item->tags);
 		if (item->data != NULL) 
 			g_boxed_free (item->data_type, item->data);
 		g_free (item);
@@ -307,7 +307,7 @@ typedef struct {
 	int    image_height;
 	int    text_height;
 	int    comment_height;
-        int    categories_height;
+        int    tags_height;
 	GList *image_list;
 } GthImageListLine;
 
@@ -401,7 +401,7 @@ struct _GthImageListPrivate {
 
 	PangoLayout      *layout;
 	PangoLayout      *comment_layout;
-	PangoLayout      *categories_layout;
+	PangoLayout      *tags_layout;
 	PangoLayout      *no_image_msg_layout;
 	guint             layout_timeout;
 
@@ -561,9 +561,9 @@ gth_image_list_finalize (GObject *object)
 		priv->comment_layout = NULL;
 	}
 
-	if (priv->categories_layout != NULL) {
-		g_object_unref (priv->categories_layout);
-		priv->categories_layout = NULL;
+	if (priv->tags_layout != NULL) {
+		g_object_unref (priv->tags_layout);
+		priv->tags_layout = NULL;
 	}
 
 	if (priv->no_image_msg_layout != NULL) {
@@ -675,24 +675,24 @@ get_comment_size (GthImageList     *image_list,
 }
 
 static void
-get_categories_size (GthImageList     *image_list,
-		  GthImageListItem *item,
-		  int              *width,
-		  int              *height)
+get_tags_size (GthImageList     *image_list,
+               GthImageListItem *item,
+               int              *width,
+               int              *height)
 {
-	if ((item->categories != NULL) && (*item->categories != 0)) {
-		if ((item->categories_area.width == -1) || (item->categories_area.height == -1))
+	if ((item->tags != NULL) && (*item->tags != 0)) {
+		if ((item->tags_area.width == -1) || (item->tags_area.height == -1))
 			get_text_size (image_list,
-				       item->categories,
-				       & (item->categories_area.width),
-				       & (item->categories_area.height),
+				       item->tags,
+				       & (item->tags_area.width),
+				       & (item->tags_area.height),
 				       TRUE);
 
 		if (width != NULL)
-			*width = item->categories_area.width;
+			*width = item->tags_area.width;
 
 		if (height != NULL)
-			*height = item->categories_area.height;
+			*height = item->tags_area.height;
 
 	} else {
 		if (width != NULL)
@@ -709,20 +709,20 @@ item_get_view_mode (GthImageList     *image_list,
 		    GthImageListItem *item,
 		    gboolean         *view_label,
 		    gboolean         *view_comment,
-		    gboolean         *view_categories)
+		    gboolean         *view_tags)
 {
 	GthImageListPrivate *priv = image_list->priv;
 
 	*view_label   = priv->view_mode & GTH_VIEW_MODE_LABEL;
 	*view_comment = priv->view_mode & GTH_VIEW_MODE_COMMENTS;
-	*view_categories = priv->view_mode & GTH_VIEW_MODE_CATEGORIES;
+	*view_tags = priv->view_mode & GTH_VIEW_MODE_TAGS;
 
 	if (STRING_IS_VOID (item->label))
 		*view_label = FALSE;
 	if (STRING_IS_VOID (item->comment))
 		*view_comment = FALSE;
-	if (STRING_IS_VOID (item->categories))
-		*view_categories = FALSE;
+	if (STRING_IS_VOID (item->tags))
+		*view_tags = FALSE;
 }
 
 
@@ -732,12 +732,12 @@ get_item_height (GthImageList     *image_list,
 		 int              *image_height,
 		 int              *text_height,
 		 int              *comment_height,
-                 int              *categories_height)
+                 int              *tags_height)
 {
 	*image_height = image_list->priv->max_item_width;
 	get_label_size (image_list, item, NULL, text_height);
 	get_comment_size (image_list, item, NULL, comment_height);
-	get_categories_size (image_list, item, NULL, categories_height);
+	get_tags_size (image_list, item, NULL, tags_height);
 }
 
 
@@ -763,7 +763,7 @@ place_item (GthImageList     *image_list,
 	    int               image_height,
 	    gboolean          view_label,
 	    gboolean          view_comment,
-            gboolean          view_categories)
+            gboolean          view_tags)
 {
 	GthImageListPrivate *priv = image_list->priv;
 	int                  x_offset, y_offset;
@@ -792,14 +792,14 @@ place_item (GthImageList     *image_list,
 		y += comment_height + TEXT_COMMENT_SPACE;
 	}
 
-	x_offset = (priv->max_item_width - item->categories_area.width) / 2;
-	if (view_categories) {
-		int categories_height;
+	x_offset = (priv->max_item_width - item->tags_area.width) / 2;
+	if (view_tags) {
+		int tags_height;
 
-		item->categories_area.x = x + x_offset + 1;
-		item->categories_area.y = y;
-		get_categories_size (image_list, item, NULL, &categories_height);
-		y += categories_height + TEXT_CATEGORIES_SPACE;
+		item->tags_area.x = x + x_offset + 1;
+		item->tags_area.y = y;
+		get_tags_size (image_list, item, NULL, &tags_height);
+		y += tags_height + TEXT_TAGS_SPACE;
 	}
 
 	x_offset = (priv->max_item_width - item->label_area.width) / 2;
@@ -816,13 +816,13 @@ layout_line (GthImageList     *image_list,
 {
 	GthImageListPrivate *priv = image_list->priv;
 	GList               *scan;
-	gboolean             view_label, view_comment, view_categories;
+	gboolean             view_label, view_comment, view_tags;
 	int                  x = 0;
 
 	for (scan = line->image_list; scan; scan = scan->next) {
 		GthImageListItem *item = scan->data;
 
-		item_get_view_mode (image_list, item, &view_label, &view_comment, &view_categories);
+		item_get_view_mode (image_list, item, &view_label, &view_comment, &view_tags);
 
 		x += priv->col_spacing;
 		place_item (image_list,
@@ -832,7 +832,7 @@ layout_line (GthImageList     *image_list,
 			    line->image_height,
 			    view_label,
 			    view_comment,
-                            view_categories);
+                            view_tags);
 		x += priv->max_item_width;
 	}
 }
@@ -845,7 +845,7 @@ add_and_layout_line (GthImageList *image_list,
 		     int           image_height,
 		     int           text_height,
 		     int           comment_height,
-                     int           categories_height)
+                     int           tags_height)
 {
 	GthImageListPrivate *priv = image_list->priv;
 	GthImageListLine    *line;
@@ -856,7 +856,7 @@ add_and_layout_line (GthImageList *image_list,
 	line->image_height = image_height;
 	line->text_height = text_height;
 	line->comment_height = comment_height;
-	line->categories_height = categories_height;
+	line->tags_height = tags_height;
 
 	layout_line (image_list, line);
 	priv->lines = g_list_append (priv->lines, line);
@@ -902,7 +902,7 @@ relayout_images_at (GthImageList *image_list,
 		    int           y)
 {
 	GthImageListPrivate *priv = image_list->priv;
-	int    text_height = 0, image_height = 0, comment_height = 0, categories_height = 0;
+	int    text_height = 0, image_height = 0, comment_height = 0, tags_height = 0;
 	int    images_per_line, n;
 	GList *line_images = NULL, *scan;
 	int    max_height = 0;
@@ -914,7 +914,7 @@ relayout_images_at (GthImageList *image_list,
 	for (; scan; scan = scan->next, n++) {
 		GthImageListItem *item = scan->data;
 		int               ih, th, ch, cath;
-		gboolean          view_label, view_comment, view_categories;
+		gboolean          view_label, view_comment, view_tags;
 
 		if (! (n % images_per_line)) {
 			if (line_images != NULL) {
@@ -924,7 +924,7 @@ relayout_images_at (GthImageList *image_list,
 						     image_height,
 						     text_height,
 						     comment_height,
-                                                     categories_height);
+                                                     tags_height);
 				line_images = NULL;
 				y += max_height + priv->row_spacing;
 			}
@@ -933,11 +933,11 @@ relayout_images_at (GthImageList *image_list,
 			image_height   = 0;
 			text_height    = 0;
 			comment_height = 0;
-                        categories_height = 0;
+                        tags_height = 0;
 		}
 
 		get_item_height (image_list, item, &ih, &th, &ch, &cath);
-		item_get_view_mode (image_list, item, &view_label, &view_comment, &view_categories);
+		item_get_view_mode (image_list, item, &view_label, &view_comment, &view_tags);
 
 		if (! view_label)
 			th = 0;
@@ -945,21 +945,21 @@ relayout_images_at (GthImageList *image_list,
 		if (! view_comment)
 			ch = 0;
 
-		if (! view_categories)
+		if (! view_tags)
 			cath = 0;
 
 		image_height   = MAX (ih, image_height);
 		text_height    = MAX (th, text_height);
 		comment_height = MAX (ch, comment_height);
-		categories_height = MAX (cath, categories_height);
+		tags_height = MAX (cath, tags_height);
 
 		max_height = (image_height
 			      + ((comment_height || text_height) ? priv->text_spacing : 0)
 			      + comment_height
 			      + ((comment_height && text_height) ? TEXT_COMMENT_SPACE : 0)
-			      + ((categories_height || text_height) ? priv->text_spacing : 0)
-			      + categories_height
-			      + ((categories_height && text_height) ? TEXT_COMMENT_SPACE : 0)
+			      + ((tags_height || text_height) ? priv->text_spacing : 0)
+			      + tags_height
+			      + ((tags_height && text_height) ? TEXT_COMMENT_SPACE : 0)
 			      + text_height);
 
 		line_images = g_list_append (line_images, item);
@@ -972,7 +972,7 @@ relayout_images_at (GthImageList *image_list,
 				     image_height,
 				     text_height,
 				     comment_height,
-                                     categories_height);
+                                     tags_height);
 
 	update_scrollbar_adjust (image_list);
 }
@@ -1038,13 +1038,13 @@ reset_text_width (GthImageList *image_list)
 
 	pango_layout_set_width (priv->layout, priv->max_item_width * PANGO_SCALE);
 	pango_layout_set_width (priv->comment_layout, priv->max_item_width * PANGO_SCALE);
-	pango_layout_set_width (priv->categories_layout, priv->max_item_width * PANGO_SCALE);
+	pango_layout_set_width (priv->tags_layout, priv->max_item_width * PANGO_SCALE);
 
 	for (scan = priv->image_list; scan; scan = scan->next) {
 		GthImageListItem *item = scan->data;
 		item->label_area.width = -1;
 		item->comment_area.width = -1;
-		item->categories_area.width = -1;
+		item->tags_area.width = -1;
 	}
 	priv->update_width = FALSE;
 }
@@ -1205,19 +1205,19 @@ gth_image_list_realize (GtkWidget *widget)
 	if (priv->comment_layout != NULL)
 		g_object_unref (priv->comment_layout);
 
-	if (priv->categories_layout != NULL)
-		g_object_unref (priv->categories_layout);
+	if (priv->tags_layout != NULL)
+		g_object_unref (priv->tags_layout);
 
 	priv->comment_layout = pango_layout_copy (priv->layout);
-	priv->categories_layout = pango_layout_copy (priv->layout);
+	priv->tags_layout = pango_layout_copy (priv->layout);
 
 	font_desc = pango_font_description_copy (pango_context_get_font_description (pango_layout_get_context (priv->comment_layout)));
 	pango_font_description_set_style (font_desc, PANGO_STYLE_ITALIC);
 	pango_layout_set_font_description (priv->comment_layout, font_desc);
 
-	font_desc = pango_font_description_copy (pango_context_get_font_description (pango_layout_get_context (priv->categories_layout)));
+	font_desc = pango_font_description_copy (pango_context_get_font_description (pango_layout_get_context (priv->tags_layout)));
 	pango_font_description_set_style (font_desc, PANGO_STYLE_ITALIC);
-	pango_layout_set_font_description (priv->categories_layout, font_desc);
+	pango_layout_set_font_description (priv->tags_layout, font_desc);
 
 	/* 'No Image' message Layout */
 
@@ -1268,9 +1268,9 @@ gth_image_list_unrealize (GtkWidget *widget)
 		image_list->priv->comment_layout = NULL;
 	}
 
-	if (image_list->priv->categories_layout) {
-		g_object_unref (image_list->priv->categories_layout);
-		image_list->priv->categories_layout = NULL;
+	if (image_list->priv->tags_layout) {
+		g_object_unref (image_list->priv->tags_layout);
+		image_list->priv->tags_layout = NULL;
 	}
 
 	(* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
@@ -1449,9 +1449,9 @@ get_item_bounding_box (GthImageList     *image_list,
 		       GthImageListItem *item,
 		       GdkRectangle     *item_rectangle)
 {
-	gboolean view_text, view_comment, view_categories;
+	gboolean view_text, view_comment, view_tags;
 
-	item_get_view_mode (image_list, item, &view_text, &view_comment, &view_categories);
+	item_get_view_mode (image_list, item, &view_text, &view_comment, &view_tags);
 
 	*item_rectangle = item->slide_area;
 	item_rectangle->width = image_list->priv->max_item_width;
@@ -1473,11 +1473,11 @@ get_item_bounding_box (GthImageList     *image_list,
 				     item_rectangle);
 	}
 
-	if (view_categories) {
+	if (view_tags) {
 		GdkRectangle tmp_rectangle;
 		tmp_rectangle = *item_rectangle;
 		gdk_rectangle_union (&tmp_rectangle,
-				     &item->categories_area,
+				     &item->tags_area,
 				     item_rectangle);
 	}
 
@@ -1505,7 +1505,7 @@ paint_item (GthImageList     *image_list,
 	GtkWidget    *widget = (GtkWidget*) image_list;
 	GtkStateType  state, text_state, focus_state;
 	GdkRectangle  item_rectangle, rect;
-	gboolean      view_label, view_comment, view_categories;
+	gboolean      view_label, view_comment, view_tags;
 	gboolean      focused;
 
 	if ((item->image_area.x == -1) || (item->slide_area.x == -1))
@@ -1589,7 +1589,7 @@ paint_item (GthImageList     *image_list,
 		g_object_unref (image_gc);
 	}
 
-	item_get_view_mode (image_list, item, &view_label, &view_comment, &view_categories);
+	item_get_view_mode (image_list, item, &view_label, &view_comment, &view_tags);
 
 	/* Label */
 
@@ -1629,23 +1629,23 @@ paint_item (GthImageList     *image_list,
 				 image_list->priv->comment_layout);
 	}
 
-	/* Categories */
+	/* Tags */
 
-	if (view_categories) {
+	if (view_tags) {
 		gdk_draw_rectangle (image_list->priv->bin_window,
 				    widget->style->base_gc[text_state],
 				    TRUE,
-				    item->categories_area.x - 1,
-				    item->categories_area.y - 1,
-				    item->categories_area.width + 2,
-				    item->categories_area.height + 2);
+				    item->tags_area.x - 1,
+				    item->tags_area.y - 1,
+				    item->tags_area.width + 2,
+				    item->tags_area.height + 2);
 
-		pango_layout_set_text (image_list->priv->categories_layout, item->categories, strlen (item->categories));
+		pango_layout_set_text (image_list->priv->tags_layout, item->tags, strlen (item->tags));
 		gdk_draw_layout (image_list->priv->bin_window,
 				 widget->style->text_gc[text_state],
-				 item->categories_area.x - (image_list->priv->max_item_width - item->categories_area.width) / 2,
-				 item->categories_area.y,
-				 image_list->priv->categories_layout);
+				 item->tags_area.x - (image_list->priv->max_item_width - item->tags_area.width) / 2,
+				 item->tags_area.y,
+				 image_list->priv->tags_layout);
 	}
 
 	/* Focus */
@@ -3851,7 +3851,7 @@ gth_image_list_insert (GthImageList *image_list,
 		       GdkPixbuf    *pixbuf,
 		       const char   *text,
 		       const char   *comment,
-                       const char   *categories)
+                       const char   *tags)
 {
 	GthImageListItem *item;
 	char             *comment2;
@@ -3861,7 +3861,7 @@ gth_image_list_insert (GthImageList *image_list,
 	g_return_if_fail ((pos >= 0) && (pos <= image_list->priv->n_images));
 
 	comment2 = truncate_comment_if_needed (image_list, comment);
-	item = gth_image_list_item_new (image_list, pixbuf, text, comment2, categories, image_list->priv->data_type);
+	item = gth_image_list_item_new (image_list, pixbuf, text, comment2, tags, image_list->priv->data_type);
 	g_free (comment2);
 
 	image_list_insert_item (image_list, item, pos);
@@ -3873,7 +3873,7 @@ gth_image_list_append_with_data (GthImageList *image_list,
 				 GdkPixbuf    *pixbuf,
 				 const char   *text,
 				 const char   *comment,
-                                 const char   *categories,
+                                 const char   *tags,
 				 gpointer      data)
 {
 	GthImageListItem *item;
@@ -3883,7 +3883,7 @@ gth_image_list_append_with_data (GthImageList *image_list,
 	g_return_val_if_fail (pixbuf != NULL, -1);
 
 	comment2 = truncate_comment_if_needed (image_list, comment);
-	item = gth_image_list_item_new (image_list, pixbuf, text, comment2, categories, image_list->priv->data_type);
+	item = gth_image_list_item_new (image_list, pixbuf, text, comment2, tags, image_list->priv->data_type);
 	g_free (comment2);
 
 	/**/
@@ -3910,9 +3910,9 @@ gth_image_list_append (GthImageList  *image_list,
 		       GdkPixbuf     *pixbuf,
 		       const char    *text,
 		       const char    *comment,
-                       const char    *categories)
+                       const char    *tags)
 {
-	return gth_image_list_append_with_data (image_list, pixbuf, text, comment, categories, NULL);
+	return gth_image_list_append_with_data (image_list, pixbuf, text, comment, tags, NULL);
 }
 
 
@@ -4134,25 +4134,25 @@ gth_image_list_set_image_comment (GthImageList  *image_list,
 
 
 void
-gth_image_list_set_image_categories (GthImageList  *image_list,
-                                     int            pos,
-                                     const char    *categories)
+gth_image_list_set_image_tags (GthImageList  *image_list,
+                               int            pos,
+                               const char    *tags)
 {
 	GthImageListItem *item;
 
 	g_return_if_fail (image_list != NULL);
 	g_return_if_fail ((pos >= 0) && (pos < image_list->priv->n_images));
-	g_return_if_fail (categories!= NULL);
+	g_return_if_fail (tags!= NULL);
 
 	item = g_list_nth (image_list->priv->image_list, pos)->data;
 	g_return_if_fail (item != NULL);
 
-	g_free (item->categories);
-	item->categories= NULL;
-	if (categories != NULL)
-		item->categories = g_strdup (categories);
-	item->categories_area.width = -1;
-	item->categories_area.height = -1;
+	g_free (item->tags);
+	item->tags= NULL;
+	if (tags != NULL)
+		item->tags = g_strdup (tags);
+	item->tags_area.width = -1;
+	item->tags_area.height = -1;
 
 	if (image_list->priv->frozen) {
 		image_list->priv->dirty = TRUE;
@@ -4488,7 +4488,7 @@ gth_image_list_get_image_at (GthImageList *image_list,
 
 	for (n = 0, scan = priv->image_list; scan; scan = scan->next, n++) {
 		GthImageListItem *item = scan->data;
-		gboolean          view_text, view_comment, view_categories;
+		gboolean          view_text, view_comment, view_tags;
 
 		if ((x >= item->slide_area.x)
 		    && (y >= item->slide_area.y)
@@ -4497,7 +4497,7 @@ gth_image_list_get_image_at (GthImageList *image_list,
 			return n;
 		}
 
-		item_get_view_mode (image_list, item, &view_text, &view_comment, &view_categories);
+		item_get_view_mode (image_list, item, &view_text, &view_comment, &view_tags);
 
 		if (view_text && _gdk_rectangle_point_in (&item->label_area, x, y)) {
 			return n;
@@ -4507,7 +4507,7 @@ gth_image_list_get_image_at (GthImageList *image_list,
 			return n;
 		}
 
-		if (view_categories && _gdk_rectangle_point_in (&item->categories_area, x, y)) {
+		if (view_tags && _gdk_rectangle_point_in (&item->tags_area, x, y)) {
 			return n;
                 }
 	}
diff --git a/libgthumb/gth-image-list.h b/libgthumb/gth-image-list.h
index 801b7cb..6872b3d 100644
--- a/libgthumb/gth-image-list.h
+++ b/libgthumb/gth-image-list.h
@@ -65,7 +65,7 @@ typedef struct {
 
 	char             *label;
 	char             *comment;
-	char             *categories;
+	char             *tags;
 
 	gpointer          data;
 
@@ -84,7 +84,7 @@ typedef struct {
 	GdkRectangle      image_area;
 	GdkRectangle      label_area;
 	GdkRectangle      comment_area;
-	GdkRectangle      categories_area;
+	GdkRectangle      tags_area;
 
 	guint             tmp_selected : 1;
 } GthImageListItem;
@@ -150,17 +150,17 @@ void           gth_image_list_insert               (GthImageList  *image_list,
 						    GdkPixbuf     *pixbuf,
 						    const char    *text,
 						    const char    *comment,
-                                                    const char    *categories);
+                                                    const char    *tags);
 int            gth_image_list_append               (GthImageList  *image_list,
 						    GdkPixbuf     *pixbuf,
 						    const char    *text,
 						    const char    *comment,
-                                                    const char    *categories);
+                                                    const char    *tags);
 int            gth_image_list_append_with_data     (GthImageList  *image_list,
 						    GdkPixbuf     *pixbuf,
 						    const char    *text,
 						    const char    *comment,
-                                                    const char    *categories,
+                                                    const char    *tags,
 						    gpointer       data);
 void           gth_image_list_remove               (GthImageList  *image_list,
 						    gpointer       data);
@@ -176,9 +176,9 @@ const char*    gth_image_list_get_image_text       (GthImageList  *image_list,
 void           gth_image_list_set_image_comment    (GthImageList  *image_list,
 						    int            pos,
 						    const char    *comment);
-void           gth_image_list_set_image_categories (GthImageList  *image_list,
+void           gth_image_list_set_image_tags       (GthImageList  *image_list,
 						    int            pos,
-						    const char    *categories);
+						    const char    *tags);
 const char*    gth_image_list_get_image_comment    (GthImageList  *image_list,
 						    int            pos);
 int            gth_image_list_get_images           (GthImageList  *image_list);
diff --git a/libgthumb/gthumb-init.c b/libgthumb/gthumb-init.c
index 831a9fd..9f43b31 100644
--- a/libgthumb/gthumb-init.c
+++ b/libgthumb/gthumb-init.c
@@ -135,7 +135,7 @@ migrate_to_new_directories (void)
 	migrate_dir_from_to (OLD_RC_COMMENTS_DIR, RC_COMMENTS_DIR);
 	migrate_file_from_to (OLD_RC_BOOKMARKS_FILE, RC_BOOKMARKS_FILE);
 	migrate_file_from_to (OLD_RC_HISTORY_FILE, RC_HISTORY_FILE);
-	migrate_file_from_to (OLD_RC_CATEGORIES_FILE, RC_CATEGORIES_FILE);
+	migrate_file_from_to (OLD_RC_TAGS_FILE, RC_TAGS_FILE);
 
 	eel_gconf_set_boolean (PREF_MIGRATE_DIRECTORIES, FALSE);
 }
diff --git a/libgthumb/preferences.c b/libgthumb/preferences.c
index 4b51a55..6a78ba7 100644
--- a/libgthumb/preferences.c
+++ b/libgthumb/preferences.c
@@ -521,18 +521,18 @@ pref_get_view_mode (void)
         int view_mode = 0;
 	gboolean view_filenames;
 	gboolean view_comments;
-	gboolean view_categories;
+	gboolean view_tags;
 
 	view_filenames = eel_gconf_get_boolean (PREF_SHOW_FILENAMES, FALSE);
 	view_comments = eel_gconf_get_boolean (PREF_SHOW_COMMENTS, TRUE);
-	view_categories = eel_gconf_get_boolean (PREF_SHOW_CATEGORIES, TRUE);
+	view_tags = eel_gconf_get_boolean (PREF_SHOW_TAGS, TRUE);
 
         if (view_filenames)
                 view_mode |= GTH_VIEW_MODE_LABEL;
         if (view_comments)
                 view_mode |= GTH_VIEW_MODE_COMMENTS;
-        if (view_categories)
-                view_mode |= GTH_VIEW_MODE_CATEGORIES;
+        if (view_tags)
+                view_mode |= GTH_VIEW_MODE_TAGS;
 
 	return view_mode;
 }
diff --git a/libgthumb/preferences.h b/libgthumb/preferences.h
index 51325e9..ca8a67f 100644
--- a/libgthumb/preferences.h
+++ b/libgthumb/preferences.h
@@ -49,7 +49,7 @@
 #define  PREF_SHOW_FILENAMES         "/apps/gthumb/browser/show_filenames"
 #define  PREF_SHOW_COMMENTS          "/apps/gthumb/browser/show_comments"
 #define  PREF_SHOW_THUMBNAILS        "/apps/gthumb/browser/show_thumbnails"
-#define  PREF_SHOW_CATEGORIES        "/apps/gthumb/browser/show_categories"
+#define  PREF_SHOW_TAGS              "/apps/gthumb/browser/show_tags"
 #define  PREF_FAST_FILE_TYPE         "/apps/gthumb/browser/fast_file_type"
 #define  PREF_SAVE_THUMBNAILS        "/apps/gthumb/browser/save_thumbnails"
 #define  PREF_THUMBNAIL_SIZE         "/apps/gthumb/browser/thumbnail_size"
diff --git a/libgthumb/typedefs.h b/libgthumb/typedefs.h
index d73bf3d..a4e6a7c 100644
--- a/libgthumb/typedefs.h
+++ b/libgthumb/typedefs.h
@@ -42,14 +42,14 @@
 #define RC_COMMENTS_DIR           ".gnome2/gthumb/comments"
 #define RC_BOOKMARKS_FILE         ".gnome2/gthumb/bookmarks"
 #define RC_HISTORY_FILE           ".gnome2/gthumb/history"
-#define RC_CATEGORIES_FILE        ".gnome2/gthumb/categories"
+#define RC_TAGS_FILE              ".gnome2/gthumb/categories"
 #define RC_REMOTE_CACHE_DIR	  ".gnome2/gthumb/remote_cache"
 
 #define OLD_RC_CATALOG_DIR        ".gqview/collections"
 #define OLD_RC_COMMENTS_DIR       ".gqview/comments"
 #define OLD_RC_BOOKMARKS_FILE     ".gqview/bookmarks"
 #define OLD_RC_HISTORY_FILE       ".gqview/history"
-#define OLD_RC_CATEGORIES_FILE    ".gqview/categories"
+#define OLD_RC_TAGS_FILE          ".gqview/categories"
 
 #define CACHE_DIR                 ".thumbnails"
 
@@ -93,7 +93,7 @@ typedef enum { /*< skip >*/
 enum { /*< skip >*/
 	GTH_VIEW_MODE_LABEL = 0x1,              /* Display label. */
 	GTH_VIEW_MODE_COMMENTS = 0x2,           /* Display comment. */
-	GTH_VIEW_MODE_CATEGORIES = 0x4,         /* Display categories. */
+	GTH_VIEW_MODE_TAGS = 0x4,               /* Display tags. */
 };
 
 typedef enum { /*< skip >*/
diff --git a/src/Makefile.am b/src/Makefile.am
index df3ffb1..8f32f22 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -55,8 +55,8 @@ gthumb_SOURCES = 				\
 	dlg-brightness-contrast.h		\
 	dlg-catalog.c				\
 	dlg-catalog.h				\
-	dlg-categories.c			\
-	dlg-categories.h			\
+	dlg-tags.c				\
+	dlg-tags.h				\
 	dlg-change-date.c			\
 	dlg-change-date.h			\
 	dlg-color-balance.c			\
@@ -103,8 +103,8 @@ gthumb_SOURCES = 				\
 	gth-browser-actions-callbacks.h		\
 	gth-browser-actions-callbacks.c		\
 	gth-browser-ui.h			\
-	gth-category-selection-dialog.c		\
-	gth-category-selection-dialog.h		\
+	gth-tag-selection-dialog.c		\
+	gth-tag-selection-dialog.h		\
 	gth-dir-list.c				\
 	gth-dir-list.h				\
 	gth-exif-data-viewer.c			\
diff --git a/src/dlg-categories.c b/src/dlg-categories.c
deleted file mode 100644
index 1efd5fd..0000000
--- a/src/dlg-categories.c
+++ /dev/null
@@ -1,901 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-
-/*
- *  GThumb
- *
- *  Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
- */
-
-#include <config.h>
-#include <string.h>
-
-#include <glib/gi18n.h>
-#include <gtk/gtk.h>
-#include <gdk/gdkkeysyms.h>
-#include <libgnomeui/gnome-help.h>
-#include <glade/glade.h>
-
-#include "typedefs.h"
-#include "file-utils.h"
-#include "preferences.h"
-#include "main.h"
-#include "gth-utils.h"
-#include "gth-window.h"
-#include "gtk-utils.h"
-#include "gtkcellrendererthreestates.h"
-#include "gth-file-view.h"
-#include "comments.h"
-#include "dlg-categories.h"
-
-
-typedef void (*SaveFunc) (GList *file_list, gpointer data);
-
-
-#define DIALOG_NAME "categories"
-#define GLADE_FILE "gthumb_comments.glade"
-#define CATEGORY_SEPARATOR ";"
-
-
-enum {
-	IS_EDITABLE_COLUMN,
-	HAS_THIRD_STATE_COLUMN,
-	USE_CATEGORY_COLUMN,
-	CATEGORY_COLUMN,
-	NUM_COLUMNS
-};
-
-
-typedef struct {
-	GladeXML      *gui;
-	GList         *file_list;
-	GList         *default_categories_list;
-	GList        **add_list;
-	GList        **remove_list;
-	SaveFunc       save_func;
-	gpointer       save_data;
-	DoneFunc       done_func;
-	gpointer       done_data;
-
-	GthWindow     *window;
-	GtkWidget     *dialog;
-
-	GtkWidget     *c_ok_button;
-	GtkWidget     *keyword_entry;
-	GtkWidget     *add_key_button;
-	GtkWidget     *remove_key_button;
-	GtkWidget     *keywords_list_view;
-	GtkListStore  *keywords_list_model;
-
-	CommentData   *original_cdata;
-} DialogData;
-
-
-
-static void
-free_dialog_data (DialogData *data)
-{
-	if (data->file_list != NULL) {
-		g_list_foreach (data->file_list, (GFunc) g_free, NULL);
-		g_list_free (data->file_list);
-		data->file_list = NULL;
-	}
-
-	if (data->original_cdata != NULL) {
-		comment_data_free (data->original_cdata);
-		data->original_cdata = NULL;
-	}
-}
-
-
-/* called when the main dialog is closed. */
-static void
-destroy_cb (GtkWidget  *widget,
-	    DialogData *data)
-{
-	if (data->window != NULL)
-		gth_window_set_categories_dlg (data->window, NULL);
-
-	g_object_unref (data->gui);
-	free_dialog_data (data);
-	path_list_free (data->default_categories_list);
-
-	if (data->done_func)
-		(*data->done_func) (data->done_data);
-
-	g_free (data);
-}
-
-
-static gboolean
-unrealize_cb (GtkWidget  *widget,
-	  DialogData *data)
-{
-	pref_util_save_window_geometry (GTK_WINDOW (widget), DIALOG_NAME);
-	return FALSE;
-}
-
-
-static void
-update_category_entry (DialogData *data)
-{
-	GtkTreeIter   iter;
-	GtkTreeModel *model = GTK_TREE_MODEL (data->keywords_list_model);
-	GString      *categories;
-
-	if (! gtk_tree_model_get_iter_first (model, &iter)) {
-		gtk_entry_set_text (GTK_ENTRY (data->keyword_entry), "");
-		return;
-	}
-
-	categories = g_string_new (NULL);
-	do {
-		guint use_category;
-		gtk_tree_model_get (model, &iter, USE_CATEGORY_COLUMN, &use_category, -1);
-		if (use_category == 1) {
-			char *utf8_name;
-
-			gtk_tree_model_get (model, &iter,
-					    CATEGORY_COLUMN, &utf8_name,
-					    -1);
-
-			if (categories->len > 0)
-				categories = g_string_append (categories, CATEGORY_SEPARATOR " ");
-			categories = g_string_append (categories, utf8_name);
-
-			g_free (utf8_name);
-		}
-	} while (gtk_tree_model_iter_next (model, &iter));
-
-	gtk_entry_set_text (GTK_ENTRY (data->keyword_entry), categories->str);
-	g_string_free (categories, TRUE);
-}
-
-
-/* if state_to_get == -1 get all categories. */
-static GList *
-get_categories (GtkListStore *store,
-		guint         state_to_get)
-{
-	GtkTreeModel *model = GTK_TREE_MODEL (store);
-	GList        *list = NULL;
-	GtkTreeIter   iter;
-
-	if (! gtk_tree_model_get_iter_first (model, &iter))
-		return NULL;
-
-	do {
-		guint  state;
-		char  *utf8_name;
-
-		gtk_tree_model_get (model,
-				    &iter,
-				    USE_CATEGORY_COLUMN, &state,
-				    CATEGORY_COLUMN, &utf8_name,
-				    -1);
-		if ((state_to_get == -1) || (state == state_to_get))
-			list = g_list_prepend (list, utf8_name);
-		else
-			g_free (utf8_name);
-
-	} while (gtk_tree_model_iter_next (model, &iter));
-
-	return g_list_reverse (list);
-}
-
-
-static gboolean
-category_present (DialogData *data,
-		  char       *category)
-{
-	GList    *all_categories;
-	GList    *scan;
-	gboolean  present = FALSE;
-
-	all_categories = get_categories (data->keywords_list_model, -1);
-	for (scan = all_categories; scan; scan = scan->next) {
-		char *category2 = scan->data;
-		if (strcmp (category2, category) == 0)
-			present = TRUE;
-	}
-	path_list_free (all_categories);
-
-	return present;
-}
-
-
-static gboolean
-category_name_is_valid (const char *name)
-{
-	gboolean valid = TRUE;
-	if (strchr (name, ',') != NULL)
-		valid = FALSE;
-	return valid;
-}
-
-
-/* called when the "add category" button is pressed. */
-static void
-add_category_cb (GtkWidget  *widget,
-		 DialogData *data)
-{
-	GtkTreeIter  iter;
-	char        *new_category;
-
-	new_category = _gtk_request_dialog_run (GTK_WINDOW (data->dialog),
-						GTK_DIALOG_MODAL,
-						_("Enter the new category name"),
-						"",
-						1024,
-						GTK_STOCK_CANCEL,
-						_("C_reate"));
-
-	if (new_category == NULL)
-		return;
-
-	if (! category_name_is_valid (new_category)) {
-		_gtk_error_dialog_run (GTK_WINDOW (data->dialog),
-				       _("The name \"%s\" is not valid because it contains the character \",\". " "Please use a different name."),
-				       new_category);
-
-	} else if (category_present (data, new_category)) {
-		_gtk_error_dialog_run (GTK_WINDOW (data->dialog),
-				       _("The category \"%s\" is already present. Please use a different name."),
-				       new_category);
-
-	} else {
-		gtk_list_store_append (data->keywords_list_model, &iter);
-		gtk_list_store_set (data->keywords_list_model, &iter,
-				    IS_EDITABLE_COLUMN, TRUE,
-				    USE_CATEGORY_COLUMN, 1,
-				    CATEGORY_COLUMN, new_category,
-				    -1);
-		update_category_entry (data);
-	}
-
-	g_free (new_category);
-}
-
-
-/* called when the "remove category" button is pressed. */
-static void
-remove_category_cb (GtkWidget *widget,
-		    DialogData *data)
-{
-	GtkTreeSelection *selection;
-	GtkTreeIter       iter;
-
-	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (data->keywords_list_view));
-	if (! gtk_tree_selection_get_selected (selection, NULL, &iter))
-		return;
-
-	gtk_list_store_remove (data->keywords_list_model, &iter);
-	update_category_entry (data);
-}
-
-
-static void
-save_categories (DialogData *data)
-{
-	Bookmarks *categories;
-	GList     *scan;
-	GList     *cat_list;
-
-	cat_list = get_categories (data->keywords_list_model, -1);
-	categories = bookmarks_new (RC_CATEGORIES_FILE);
-	bookmarks_set_max_lines (categories, -1);
-
-	for (scan = cat_list; scan; scan = scan->next) {
-		char *category = scan->data;
-		bookmarks_add (categories, category, TRUE, TRUE);
-	}
-
-	bookmarks_write_to_disk (categories);
-
-	path_list_free (cat_list);
-	bookmarks_free (categories);
-}
-
-
-/* called when the "cancel" button is pressed. */
-static void
-cancel_clicked_cb (GtkWidget  *widget,
-		   DialogData *data)
-{
-	save_categories (data);
-	gtk_widget_destroy (data->dialog);
-}
-
-
-/* called when the "ok" button is pressed. */
-static void
-ok_clicked_cb (GtkWidget  *widget,
-	       DialogData *data)
-{
-	save_categories (data);
-
-	if (data->add_list != NULL) {
-		if (*(data->add_list) != NULL)
-			path_list_free (*(data->add_list));
-		*(data->add_list) = get_categories (data->keywords_list_model, 1);
-	}
-
-	if (data->remove_list != NULL) {
-		if (*(data->remove_list) != NULL)
-			path_list_free (*(data->remove_list));
-		*(data->remove_list) = get_categories (data->keywords_list_model, 0);
-	}
-
-	if (data->save_func) {
-		(*data->save_func) (data->file_list, data->save_data);
-		if (data->window != NULL) {
-			gth_window_update_current_image_metadata (data->window);
-			dlg_categories_close (data->dialog);
-		}
-	} else
-		gtk_widget_destroy (data->dialog);
-}
-
-
-/* called when the "help" button in the search dialog is pressed. */
-static void
-help_cb (GtkWidget  *widget,
-	 DialogData *data)
-{
-	gthumb_display_help (GTK_WINDOW (data->dialog), "gthumb-categories");
-}
-
-
-static void
-use_category_toggled (GtkCellRendererThreeStates *cell,
-		      gchar                      *path_string,
-		      gpointer                    callback_data)
-{
-	DialogData   *data  = callback_data;
-	GtkTreeModel *model = GTK_TREE_MODEL (data->keywords_list_model);
-	GtkTreeIter   iter;
-	GtkTreePath  *path = gtk_tree_path_new_from_string (path_string);
-	guint         value;
-
-	gtk_tree_model_get_iter (model, &iter, path);
-	value = gtk_cell_renderer_three_states_get_next_state (cell);
-	gtk_list_store_set (GTK_LIST_STORE (model), &iter, USE_CATEGORY_COLUMN, value, -1);
-
-	gtk_tree_path_free (path);
-	update_category_entry (data);
-}
-
-
-static void
-add_saved_categories (DialogData *data)
-{
-	Bookmarks *categories;
-	GList     *scan;
-	GList     *cat_list;
-
-	cat_list = get_categories (data->keywords_list_model, -1);
-	categories = bookmarks_new (RC_CATEGORIES_FILE);
-	bookmarks_load_from_disk (categories);
-
-	for (scan = categories->list; scan; scan = scan->next) {
-		GtkTreeIter  iter;
-		GList       *scan2;
-		gboolean     found = FALSE;
-		char        *category1 = scan->data;
-
-		for (scan2 = cat_list; scan2 && !found; scan2 = scan2->next) {
-			char *category2 = scan2->data;
-			if (strcmp (category1, category2) == 0)
-				found = TRUE;
-		}
-
-		if (found)
-			continue;
-
-		gtk_list_store_append (data->keywords_list_model, &iter);
-
-		gtk_list_store_set (data->keywords_list_model, &iter,
-				    IS_EDITABLE_COLUMN, FALSE,
-				    USE_CATEGORY_COLUMN, 0,
-				    CATEGORY_COLUMN, category1,
-				    -1);
-	}
-
-	bookmarks_free (categories);
-	path_list_free (cat_list);
-}
-
-
-static gboolean
-key_in_list (GList      *list,
-	     const char *key)
-{
-	GList *scan;
-
-	for (scan = list; scan; scan = scan->next)
-		if (strcmp (scan->data, key) == 0)
-			return TRUE;
-	return FALSE;
-}
-
-
-static int
-name_column_sort_func (GtkTreeModel *model,
-                       GtkTreeIter  *a,
-                       GtkTreeIter  *b,
-                       gpointer      user_data)
-{
-        char *category1, *category2;
-	int   result;
-
-        gtk_tree_model_get (model, a, CATEGORY_COLUMN, &category1, -1);
-        gtk_tree_model_get (model, b, CATEGORY_COLUMN, &category2, -1);
-
-	result = g_utf8_collate (category1, category2);
-
-	g_free (category1);
-	g_free (category2);
-
-        return result;
-}
-
-
-static gboolean
-keyword_equal_func (GtkTreeModel *model,
-		    gint          column,
-		    const gchar  *key,
-		    GtkTreeIter  *iter,
-		    gpointer      search_data)
-{
-	char *cell;
-	gtk_tree_model_get (model, iter, column, &cell, -1);
-	return g_strcasecmp (key, cell) > 0;
-}
-
-
-static GtkWidget*
-dlg_categories_common (GtkWindow     *parent,
-		       GthWindow     *window,
-		       GList         *file_list,
-		       GList         *default_categories_list,
-		       GList        **add_categories_list,
-		       GList        **remove_categories_list,
-		       SaveFunc       save_func,
-		       gpointer       save_data,
-		       DoneFunc       done_func,
-		       gpointer       done_data,
-		       gboolean       modal)
-{
-	DialogData        *data;
-	GtkWidget         *btn_ok;
-	GtkWidget         *btn_cancel;
-	GtkWidget         *btn_help;
-	GtkCellRenderer   *renderer;
-	GtkTreeViewColumn *column;
-
-
-	data = g_new (DialogData, 1);
-
-	data->window = window;
-	data->default_categories_list = path_list_dup (default_categories_list);
-	data->add_list = add_categories_list;
-	data->remove_list = remove_categories_list;
-	data->save_func = save_func;
-	data->save_data = save_data;
-	data->done_func = done_func;
-	data->done_data = done_data;
-	data->original_cdata = NULL;
-
-	data->gui = glade_xml_new (GTHUMB_GLADEDIR "/" GLADE_FILE , NULL, NULL);
-        if (!data->gui) {
-		g_free (data);
-                g_warning ("Could not find " GLADE_FILE "\n");
-                return NULL;
-        }
-
-	if (file_list != NULL)
-		data->file_list = path_list_dup (file_list);
-	else
-		data->file_list = NULL;
-
-	/* Get the widgets. */
-
-	data->dialog = glade_xml_get_widget (data->gui, "categories_dialog");
-
-	data->keyword_entry = glade_xml_get_widget (data->gui, "c_keyword_entry");
-	data->add_key_button = glade_xml_get_widget (data->gui, "c_add_key_button");
-	data->remove_key_button = glade_xml_get_widget (data->gui, "c_remove_key_button");
-	data->keywords_list_view = glade_xml_get_widget (data->gui, "c_keywords_treeview");
-
-	data->c_ok_button = btn_ok = glade_xml_get_widget (data->gui, "c_ok_button");
-	btn_cancel = glade_xml_get_widget (data->gui, "c_cancel_button");
-	btn_help = glade_xml_get_widget (data->gui, "c_help_button");
-
-	/* Set widgets data. */
-
-	g_object_set_data (G_OBJECT (data->dialog), "dialog_data", data);
-
-	data->keywords_list_model = gtk_list_store_new (NUM_COLUMNS,
-							G_TYPE_BOOLEAN,
-							G_TYPE_BOOLEAN,
-							G_TYPE_UINT,
-							G_TYPE_STRING);
-	gtk_tree_view_set_model (GTK_TREE_VIEW (data->keywords_list_view),
-				 GTK_TREE_MODEL (data->keywords_list_model));
-	g_object_unref (data->keywords_list_model);
-	gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (data->keywords_list_view), FALSE);
-
-	gtk_tree_view_set_search_column (GTK_TREE_VIEW (data->keywords_list_view),
-					 CATEGORY_COLUMN);
-	gtk_tree_view_set_search_equal_func (GTK_TREE_VIEW (data->keywords_list_view),
-					     keyword_equal_func,
-					     NULL,
-					     NULL);
-
-	column = gtk_tree_view_column_new ();
-
-	renderer = gtk_cell_renderer_three_states_new ();
-	g_signal_connect (G_OBJECT (renderer),
-			  "toggled",
-			  G_CALLBACK (use_category_toggled),
-			  data);
-	gtk_tree_view_column_pack_start (column, renderer, FALSE);
-	gtk_tree_view_column_set_attributes (column, renderer,
-					     "state", USE_CATEGORY_COLUMN,
-					     "has_third_state", HAS_THIRD_STATE_COLUMN,
-					     NULL);
-
-	renderer = gtk_cell_renderer_text_new ();
-	gtk_tree_view_column_pack_start (column, renderer, TRUE);
-	gtk_tree_view_column_set_attributes (column, renderer,
-					     "text", CATEGORY_COLUMN,
-					     "editable", IS_EDITABLE_COLUMN,
-					     NULL);
-
-	gtk_tree_view_column_set_sort_column_id (column, 0);
-	gtk_tree_view_append_column (GTK_TREE_VIEW (data->keywords_list_view),
-				     column);
-
-	gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (data->keywords_list_model), name_column_sort_func, NULL, NULL);
-	gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (data->keywords_list_model), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING);
-
-	/* Set the signals handlers. */
-
-	g_signal_connect (G_OBJECT (data->dialog),
-			  "destroy",
-			  G_CALLBACK (destroy_cb),
-			  data);
-	g_signal_connect (G_OBJECT (data->dialog),
-			  "unrealize",
-			  G_CALLBACK (unrealize_cb),
-			  data);
-	g_signal_connect (G_OBJECT (btn_ok),
-			  "clicked",
-			  G_CALLBACK (ok_clicked_cb),
-			  data);
-	g_signal_connect (G_OBJECT (btn_cancel),
-			  "clicked",
-			  G_CALLBACK (cancel_clicked_cb),
-			  data);
-	g_signal_connect (G_OBJECT (btn_help),
-			  "clicked",
-			  G_CALLBACK (help_cb),
-			  data);
-
-	g_signal_connect (G_OBJECT (data->add_key_button),
-			  "clicked",
-			  G_CALLBACK (add_category_cb),
-			  data);
-	g_signal_connect (G_OBJECT (data->remove_key_button),
-			  "clicked",
-			  G_CALLBACK (remove_category_cb),
-			  data);
-
-	/* run dialog. */
-
-	if (parent != NULL)
-		gtk_window_set_transient_for (GTK_WINDOW (data->dialog), parent);
-
-	gtk_window_set_modal (GTK_WINDOW (data->dialog), modal);
-	pref_util_restore_window_geometry (GTK_WINDOW (data->dialog), DIALOG_NAME);
-	dlg_categories_update (data->dialog);
-
-	gtk_widget_grab_focus (data->keywords_list_view);
-
-	return data->dialog;
-}
-
-
-/**/
-
-
-void
-dlg_choose_categories (GtkWindow     *parent,
-		       GList         *file_list,
-		       GList         *default_categories_list,
-		       GList        **add_categories_list,
-		       GList        **remove_categories_list,
-		       DoneFunc       done_func,
-		       gpointer       done_data)
-{
-	dlg_categories_common (parent,
-			       NULL,
-			       file_list,
-			       default_categories_list,
-			       add_categories_list,
-			       remove_categories_list,
-			       NULL,
-			       NULL,
-			       done_func,
-			       done_data,
-			       TRUE);
-}
-
-
-/**/
-
-
-typedef struct {
-	GthWindow     *window;
-	GList         *add_list;
-	GList         *remove_list;
-} DlgCategoriesData;
-
-
-static void
-dlg_categories__done (gpointer data)
-{
-	DlgCategoriesData *dcdata = data;
-
-	path_list_free (dcdata->add_list);
-	dcdata->add_list = NULL;
-
-	path_list_free (dcdata->remove_list);
-	dcdata->remove_list = NULL;
-
-	g_free (dcdata);
-}
-
-
-static void
-dlg_categories__save (GList    *file_list,
-		      gpointer  data)
-{
-	DlgCategoriesData *dcdata = data;
-	GList             *scan;
-
-	for (scan = file_list; scan; scan = scan->next) {
-		const char  *filename = scan->data;
-		CommentData *cdata;
-		GList       *scan2;
-
-		cdata = comments_load_comment (filename, TRUE);
-		if (cdata == NULL)
-			cdata = comment_data_new ();
-		else
-			for (scan2 = dcdata->remove_list; scan2; scan2 = scan2->next) {
-				const char *k = scan2->data;
-				comment_data_remove_keyword (cdata, k);
-			}
-
-		for (scan2 = dcdata->add_list; scan2; scan2 = scan2->next) {
-			const char *k = scan2->data;
-			comment_data_add_keyword (cdata, k);
-		}
-
-		comments_save_categories (filename, cdata);
-		comment_data_free (cdata);
-	}
-
-	path_list_free (dcdata->add_list);
-	dcdata->add_list = NULL;
-
-	path_list_free (dcdata->remove_list);
-	dcdata->remove_list = NULL;
-}
-
-
-GtkWidget*
-dlg_categories_new (GthWindow *window)
-{
-	GtkWidget         *current_dlg;
-	DlgCategoriesData *dcdata;
-
-	current_dlg = gth_window_get_categories_dlg (window);
-	if (current_dlg != NULL) {
-		gtk_window_present (GTK_WINDOW (current_dlg));
-		return current_dlg;
-	}
-
-	dcdata = g_new0 (DlgCategoriesData, 1);
-	dcdata->window = window;
-	dcdata->add_list = NULL;
-	dcdata->remove_list = NULL;
-
-	return dlg_categories_common (GTK_WINDOW (window),
-				      window,
-				      NULL,
-				      NULL,
-				      &(dcdata->add_list),
-				      &(dcdata->remove_list),
-				      dlg_categories__save,
-				      dcdata,
-				      dlg_categories__done,
-				      dcdata,
-				      FALSE);
-}
-
-
-void
-dlg_categories_update (GtkWidget *dlg)
-{
-	DialogData    *data;
-	CommentData   *cdata = NULL;
-	GList         *scan;
-	GList         *other_keys = NULL;
-        GSList        *tmp1, *tmp2;
-
-
-	g_return_if_fail (dlg != NULL);
-
-	data = g_object_get_data (G_OBJECT (dlg), "dialog_data");
-	g_return_if_fail (data != NULL);
-
-	gtk_list_store_clear (data->keywords_list_model);
-
-	/**/
-
-	if (data->window != NULL) {
-		free_dialog_data (data);
-		data->file_list = gth_window_get_file_list_selection (data->window);
-	} else if (data->original_cdata != NULL) {
-		comment_data_free (data->original_cdata);
-		data->original_cdata = NULL;
-	}
-
-	if (data->file_list != NULL) {
-		char *first_image = data->file_list->data;
-		data->original_cdata = cdata = comments_load_comment (first_image, TRUE);
-	}
-
-	if (cdata != NULL) {
-		comment_data_free_comment (cdata);
-
-		/* remove a category if it is not in all comments. */
-		for (scan = data->file_list->next; scan; scan = scan->next) {
-			CommentData *scan_cdata;
-
-			scan_cdata = comments_load_comment (scan->data, TRUE);
-
-			if (scan_cdata == NULL) {
-				comment_data_free_keywords (cdata);
-				break;
-			}
-
-			for (tmp1 = cdata->keywords; tmp1; tmp1 = g_slist_next (tmp1)) {
-				char     *k1 = tmp1->data;
-				gboolean  found = FALSE;
-
-				for (tmp2 =  scan_cdata->keywords; tmp2; tmp2 = g_slist_next (tmp2)) {
-					char *k2 = tmp2->data;
-					if (strcmp (k1, k2) == 0) {
-						found = TRUE;
-						break;
-					}
-				}
-
-				if (!found)
-					comment_data_remove_keyword (cdata, k1);
-			}
-
-			comment_data_free (scan_cdata);
-		}
-	}
-
-	for (scan = data->file_list; scan; scan = scan->next) {
-		CommentData *scan_cdata;
-
-		scan_cdata = comments_load_comment (scan->data, TRUE);
-
-		if (scan_cdata == NULL)
-			continue;
-
-                for (tmp2 =  scan_cdata->keywords; tmp2; tmp2 = g_slist_next (tmp2)) {
-                        char *k2 = tmp2->data;
-			gboolean  found = FALSE;
-
-			if (cdata != NULL)
-                                for (tmp1 = cdata->keywords; tmp1; tmp1 = g_slist_next (tmp1)) {
-                                        char     *k1 = tmp1->data;
-					if (strcmp (k1, k2) == 0) {
-						found = TRUE;
-						break;
-					}
-				}
-
-			if (! found && ! key_in_list (other_keys, k2))
-				other_keys = g_list_prepend (other_keys,
-							     g_strdup (k2));
-		}
-		comment_data_free (scan_cdata);
-	}
-
-	if (cdata != NULL) {
-                for (tmp1 = cdata->keywords; tmp1; tmp1 = g_slist_next (tmp1)) {
-			GtkTreeIter  iter;
-
-			gtk_list_store_append (data->keywords_list_model,
-					       &iter);
-
-			gtk_list_store_set (data->keywords_list_model, &iter,
-					    IS_EDITABLE_COLUMN, FALSE,
-					    HAS_THIRD_STATE_COLUMN, FALSE,
-					    USE_CATEGORY_COLUMN, 1,
-					    CATEGORY_COLUMN, tmp1->data,
-					    -1);
-		}
-	}
-
-	for (scan = data->default_categories_list; scan; scan = scan->next) {
-		char        *keyword = scan->data;
-		GtkTreeIter  iter;
-
-		gtk_list_store_append (data->keywords_list_model,
-				       &iter);
-
-		gtk_list_store_set (data->keywords_list_model, &iter,
-				    IS_EDITABLE_COLUMN, FALSE,
-				    HAS_THIRD_STATE_COLUMN, FALSE,
-				    USE_CATEGORY_COLUMN, 1,
-				    CATEGORY_COLUMN, keyword,
-				    -1);
-	}
-
-	for (scan = other_keys; scan; scan = scan->next) {
-		char        *keyword = scan->data;
-		GtkTreeIter  iter;
-
-		gtk_list_store_append (data->keywords_list_model,
-				       &iter);
-
-		gtk_list_store_set (data->keywords_list_model, &iter,
-				    IS_EDITABLE_COLUMN, FALSE,
-				    HAS_THIRD_STATE_COLUMN, TRUE,
-				    USE_CATEGORY_COLUMN, 2,
-				    CATEGORY_COLUMN, keyword,
-				    -1);
-	}
-
-	if (other_keys != NULL)
-		path_list_free (other_keys);
-
-	add_saved_categories (data);
-	update_category_entry (data);
-}
-
-
-void
-dlg_categories_close  (GtkWidget *dlg)
-{
-	DialogData *data;
-
-	g_return_if_fail (dlg != NULL);
-
-	data = g_object_get_data (G_OBJECT (dlg), "dialog_data");
-	g_return_if_fail (data != NULL);
-
-	gtk_widget_destroy (dlg);
-}
diff --git a/src/dlg-categories.h b/src/dlg-categories.h
deleted file mode 100644
index dbc18cc..0000000
--- a/src/dlg-categories.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-
-/*
- *  GThumb
- *
- *  Copyright (C) 2001 The Free Software Foundation, Inc.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef DLG_CATEGORIES_H
-#define DLG_CATEGORIES_H
-
-#include "typedefs.h"
-#include "gth-window.h"
-
-void        dlg_choose_categories    (GtkWindow     *parent,
-				      GList         *file_list,
-				      GList         *default_categories_list,
-				      GList        **add_categories_list,
-				      GList        **remove_categories_list,
-				      DoneFunc       done_func,
-				      gpointer       done_data);
-GtkWidget*  dlg_categories_new       (GthWindow     *window);
-void        dlg_categories_update    (GtkWidget     *dlg);
-void        dlg_categories_close     (GtkWidget     *dlg);
-
-#endif /* DLG_CATEGORIES_H */
diff --git a/src/dlg-image-prop.c b/src/dlg-image-prop.c
index f01e13c..dd0ee32 100644
--- a/src/dlg-image-prop.c
+++ b/src/dlg-image-prop.c
@@ -88,7 +88,7 @@ typedef struct {
 
 	GtkWidget     *i_comment_textview;
 	GtkTextBuffer *i_comment_textbuffer;
-	GtkWidget     *i_categories_label;
+	GtkWidget     *i_tags_label;
 
 	GtkWidget     *i_exif_data_view;	
 	GtkWidget     *i_exif_data_container;
@@ -283,7 +283,7 @@ update_comment (DialogData *data)
 	char        *comment;
         GSList      *tmp;
 
-	g_return_if_fail (GTK_IS_WIDGET (data->i_categories_label));
+	g_return_if_fail (GTK_IS_WIDGET (data->i_tags_label));
 	g_return_if_fail (GTK_IS_TEXT_BUFFER (data->i_comment_textbuffer));
 
 	cdata = comments_load_comment (gth_window_get_image_filename (GTH_WINDOW (data->browser)), TRUE);
@@ -296,7 +296,7 @@ update_comment (DialogData *data)
 		gtk_text_buffer_delete     (data->i_comment_textbuffer,
 					    &start_iter, 
 					    &end_iter);
-		gtk_label_set_text (GTK_LABEL (data->i_categories_label), "");
+		gtk_label_set_text (GTK_LABEL (data->i_tags_label), "");
                 return;
 	}
 
@@ -337,11 +337,11 @@ update_comment (DialogData *data)
                                 g_string_append_c (keywords, '.');
 		}
 
-		gtk_label_set_text (GTK_LABEL (data->i_categories_label), keywords->str);
+		gtk_label_set_text (GTK_LABEL (data->i_tags_label), keywords->str);
 
 		g_string_free (keywords, TRUE);
 	} else
-		gtk_label_set_text (GTK_LABEL (data->i_categories_label), "");
+		gtk_label_set_text (GTK_LABEL (data->i_tags_label), "");
 
 	g_free (comment);
 	comment_data_free (cdata);
@@ -582,7 +582,7 @@ dlg_image_prop_new (GthBrowser *browser)
 	data->i_notebook = glade_xml_get_widget (data->gui, "i_notebook");
 
 	data->i_comment_textview = glade_xml_get_widget (data->gui, "i_comment_textview");
-	data->i_categories_label = glade_xml_get_widget (data->gui, "i_categories_label");
+	data->i_tags_label = glade_xml_get_widget (data->gui, "i_tags_label");
 
 	data->i_exif_data_container = glade_xml_get_widget (data->gui, "i_exif_data_container");
 
diff --git a/src/dlg-photo-importer.c b/src/dlg-photo-importer.c
index 40259ee..3970fdc 100644
--- a/src/dlg-photo-importer.c
+++ b/src/dlg-photo-importer.c
@@ -46,7 +46,7 @@
 #include "gth-browser.h"
 #include "file-data.h"
 #include "file-utils.h"
-#include "dlg-categories.h"
+#include "dlg-tags.h"
 #include "comments.h"
 #include "gth-image-list.h"
 #include "dlg-file-utils.h"
@@ -57,10 +57,10 @@
 #include "main.h"
 
 #define GLADE_FILE "gthumb_camera.glade"
-#define CATEGORIES_GLADE_FILE "gthumb_comment.glade"
+#define TAGS_GLADE_FILE "gthumb_comment.glade"
 #define CAMERA_FILE "gphoto-48.png"
 #define MUTE_FILE "volume-mute.png"
-#define CATEGORY_SEPARATOR ";"
+#define TAG_SEPARATOR ";"
 #define MAX_TRIES 50
 #define THUMB_SIZE 100
 #define THUMB_BORDER 14
@@ -92,8 +92,8 @@ struct _DialogData {
 	GtkWidget           *format_code_label;
 	GtkWidget           *keep_names_checkbutton;
 	GtkWidget           *delete_checkbutton;
-	GtkWidget           *choose_categories_button;
-	GtkWidget           *categories_entry;
+	GtkWidget           *choose_tags_button;
+	GtkWidget           *tags_entry;
 	GtkWidget           *import_progressbar;
 	GtkWidget           *progress_camera_image;
 	GtkWidget           *import_preview_box;
@@ -139,7 +139,7 @@ struct _DialogData {
 	const char          *msg_icon;
 	char                *msg_text;
 
-	GList               *categories_list;
+	GList               *tags_list;
 	GList               *delete_list;
 	GList               *adjust_orientation_list;
 	GList               *saved_images_list;
@@ -389,7 +389,7 @@ destroy_cb (GtkWidget  *widget,
 		g_object_unref (data->no_camera_pixbuf);
 	if (data->camera_present_pixbuf != NULL)
 		g_object_unref (data->camera_present_pixbuf);
-	path_list_free (data->categories_list);
+	path_list_free (data->tags_list);
 	path_list_free (data->delete_list);
 	path_list_free (data->adjust_orientation_list);
 	path_list_free (data->saved_images_list);
@@ -1203,14 +1203,14 @@ get_file_name (DialogData *data,
 
 
 static void
-add_categories_to_image (DialogData *data,
-			 const char *local_file)
+add_tags_to_image (DialogData *data,
+                   const char *local_file)
 {
 	CommentData *cdata;
 	GList       *scan;
 	char        *uri;
 	
-	if (data->categories_list == NULL)
+	if (data->tags_list == NULL)
 		return;
 
 	uri = get_uri_from_local_path (local_file);
@@ -1218,12 +1218,12 @@ add_categories_to_image (DialogData *data,
 	if (cdata == NULL)
 		cdata = comment_data_new ();
 
-	for (scan = data->categories_list; scan; scan = scan->next) {
+	for (scan = data->tags_list; scan; scan = scan->next) {
 		const char *k = scan->data;
 		comment_data_add_keyword (cdata, k);
 	}
 
-	comments_save_categories (uri, cdata);
+	comments_save_tags (uri, cdata);
 	comment_data_free (cdata);
 	
 	g_free (uri);
@@ -1374,7 +1374,7 @@ save_image (DialogData *data,
 			if (data->delete_from_camera)
 				data->delete_list = g_list_prepend (data->delete_list, g_strdup (camera_path));
 			data->saved_images_list = g_list_prepend (data->saved_images_list, g_strdup (final_dest_path));
-			add_categories_to_image (data, final_dest_path);
+			add_tags_to_image (data, final_dest_path);
 		}
 	} 
 	else {
@@ -1746,37 +1746,37 @@ ok_clicked_cb (GtkButton  *button,
 
 
 static void
-choose_categories__done (gpointer callback_data)
+choose_tags__done (gpointer callback_data)
 {
 	DialogData *data = callback_data;
-	GString    *categories;
+	GString    *tags;
 	GList      *scan;
 
-	categories = g_string_new ("");
+	tags = g_string_new ("");
 
-	for (scan = data->categories_list; scan; scan = scan->next) {
+	for (scan = data->tags_list; scan; scan = scan->next) {
 		char *name = scan->data;
-		if (categories->len > 0)
-			categories = g_string_append (categories, CATEGORY_SEPARATOR " ");
-		categories = g_string_append (categories, name);
+		if (tags->len > 0)
+			tags = g_string_append (tags, TAG_SEPARATOR " ");
+		tags = g_string_append (tags, name);
 	}
 
-	gtk_entry_set_text (GTK_ENTRY (data->categories_entry), categories->str);
-	g_string_free (categories, TRUE);
+	gtk_entry_set_text (GTK_ENTRY (data->tags_entry), tags->str);
+	g_string_free (tags, TRUE);
 }
 
 
 static void
-choose_categories_cb (GtkButton  *button,
-		      DialogData *data)
+choose_tags_cb (GtkButton  *button,
+                DialogData *data)
 {
-	dlg_choose_categories (GTK_WINDOW (data->dialog),
-			       NULL,
-			       data->categories_list,
-			       &(data->categories_list),
-			       NULL,
-			       choose_categories__done,
-			       data);
+	dlg_choose_tags (GTK_WINDOW (data->dialog),
+                         NULL,
+                         data->tags_list,
+                         &(data->tags_list),
+                         NULL,
+                         choose_tags__done,
+                         data);
 }
 
 
@@ -2046,7 +2046,7 @@ dlg_photo_importer (GthBrowser *browser)
 	gp_abilities_list_new (&data->abilities_list);
 	gp_port_info_list_new (&data->port_list);
 
-	data->categories_list = NULL;
+	data->tags_list = NULL;
 	data->delete_list = NULL;
 	data->interrupted = FALSE;
 	data->camera_setted = FALSE;
@@ -2069,8 +2069,8 @@ dlg_photo_importer (GthBrowser *browser)
 	data->format_code_label = glade_xml_get_widget (data->gui, "format_code_label");
 	data->keep_names_checkbutton = glade_xml_get_widget (data->gui, "keep_names_checkbutton");
 	data->delete_checkbutton = glade_xml_get_widget (data->gui, "delete_checkbutton");
-	data->choose_categories_button = glade_xml_get_widget (data->gui, "choose_categories_button");
-	data->categories_entry = glade_xml_get_widget (data->gui, "categories_entry");
+	data->choose_tags_button = glade_xml_get_widget (data->gui, "choose_tags_button");
+	data->tags_entry = glade_xml_get_widget (data->gui, "tags_entry");
 	data->import_progressbar = glade_xml_get_widget (data->gui, "import_progressbar");
 	data->progress_info_image = glade_xml_get_widget (data->gui, "progress_info_image");
 	data->progress_info_label = glade_xml_get_widget (data->gui, "progress_info_label");
@@ -2167,9 +2167,9 @@ dlg_photo_importer (GthBrowser *browser)
 			  "clicked",
 			  G_CALLBACK (dlg_select_camera_model_cb),
 			  data);
-	g_signal_connect (G_OBJECT (data->choose_categories_button),
+	g_signal_connect (G_OBJECT (data->choose_tags_button),
 			  "clicked",
-			  G_CALLBACK (choose_categories_cb),
+			  G_CALLBACK (choose_tags_cb),
 			  data);
 
 	g_signal_connect (G_OBJECT (data->import_reload_button),
diff --git a/src/dlg-preferences.c b/src/dlg-preferences.c
index 7a7178f..343c61d 100644
--- a/src/dlg-preferences.c
+++ b/src/dlg-preferences.c
@@ -81,7 +81,7 @@ typedef struct {
 	GtkWidget  *toggle_show_filenames;
 	GtkWidget  *toggle_show_comments;
 	GtkWidget  *toggle_show_thumbs;
-	GtkWidget  *toggle_show_categories;
+	GtkWidget  *toggle_show_tags;
 	GtkWidget  *toggle_file_type;
 	GtkWidget  *toggle_audio_video;
 	GtkWidget  *opt_thumbs_size;
@@ -256,10 +256,10 @@ show_thumbs_toggled_cb (GtkToggleButton *button,
 
 
 static void
-show_categories_toggled_cb (GtkToggleButton *button,
-                            DialogData      *data)
+show_tags_toggled_cb (GtkToggleButton *button,
+                      DialogData      *data)
 {
-	eel_gconf_set_boolean (PREF_SHOW_CATEGORIES, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->toggle_show_categories)));
+	eel_gconf_set_boolean (PREF_SHOW_TAGS, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->toggle_show_tags)));
 }
 
 
@@ -423,7 +423,7 @@ dlg_preferences (GthBrowser *browser)
         data->toggle_show_comments = glade_xml_get_widget (data->gui, "toggle_show_comments");
 
         data->toggle_show_thumbs = glade_xml_get_widget (data->gui, "toggle_show_thumbs");
-        data->toggle_show_categories = glade_xml_get_widget (data->gui, "toggle_show_categories");
+        data->toggle_show_tags = glade_xml_get_widget (data->gui, "toggle_show_tags");
         data->toggle_file_type = glade_xml_get_widget (data->gui, "toggle_file_type");
 	data->toggle_audio_video = glade_xml_get_widget (data->gui, "toggle_audio_video");
 
@@ -502,7 +502,7 @@ dlg_preferences (GthBrowser *browser)
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->toggle_show_filenames), eel_gconf_get_boolean (PREF_SHOW_FILENAMES, FALSE));
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->toggle_show_comments), eel_gconf_get_boolean (PREF_SHOW_COMMENTS, TRUE));
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->toggle_show_thumbs), eel_gconf_get_boolean (PREF_SHOW_THUMBNAILS, TRUE));
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->toggle_show_categories), eel_gconf_get_boolean (PREF_SHOW_CATEGORIES, TRUE));
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->toggle_show_tags), eel_gconf_get_boolean (PREF_SHOW_TAGS, TRUE));
 	gtk_option_menu_set_history (GTK_OPTION_MENU (data->opt_thumbs_size), get_idx_from_size (eel_gconf_get_integer (PREF_THUMBNAIL_SIZE, 95)));
 	gtk_option_menu_set_history (GTK_OPTION_MENU (data->opt_click_policy), pref_get_click_policy ());
 
@@ -584,9 +584,9 @@ dlg_preferences (GthBrowser *browser)
 			  "toggled",
 			  G_CALLBACK (show_thumbs_toggled_cb),
 			  data);
-	g_signal_connect (G_OBJECT (data->toggle_show_categories),
+	g_signal_connect (G_OBJECT (data->toggle_show_tags),
 			  "toggled",
-			  G_CALLBACK (show_categories_toggled_cb),
+			  G_CALLBACK (show_tags_toggled_cb),
 			  data);
 	g_signal_connect (G_OBJECT (data->toggle_show_filenames),
 			  "toggled",
diff --git a/src/dlg-search.c b/src/dlg-search.c
index 8bacd6f..042a591 100644
--- a/src/dlg-search.c
+++ b/src/dlg-search.c
@@ -47,8 +47,8 @@
 
 
 enum {
-	C_USE_CATEGORY_COLUMN,
-	C_CATEGORY_COLUMN,
+	C_USE_TAG_COLUMN,
+	C_TAG_COLUMN,
 	C_NUM_COLUMNS
 };
 
@@ -58,8 +58,8 @@ enum {
 	P_NUM_COLUMNS
 };
 
-#define CATEGORY_SEPARATOR_C   ';'
-#define CATEGORY_SEPARATOR_STR ";"
+#define TAG_SEPARATOR_C   ';'
+#define TAG_SEPARATOR_STR ";"
 #define ONE_DAY (60*60*24)
 
 static void dlg_search_ui (GthBrowser *browser,
@@ -107,8 +107,8 @@ typedef struct {
 	GtkWidget      *s_filename_entry;
 	GtkWidget      *s_comment_entry;
 	GtkWidget      *s_place_entry;
-	GtkWidget      *s_categories_entry;
-	GtkWidget      *s_choose_categories_button;
+	GtkWidget      *s_tags_entry;
+	GtkWidget      *s_choose_tags_button;
 	GtkWidget      *s_date_optionmenu;
 	GtkWidget      *s_date_dateedit;
 
@@ -301,7 +301,7 @@ search_clicked_cb (GtkWidget  *widget,
 
 	/* * keywords pattern */
 
-	entry = gtk_entry_get_text (GTK_ENTRY (data->s_categories_entry));
+	entry = gtk_entry_get_text (GTK_ENTRY (data->s_tags_entry));
 	search_data_set_keywords_pattern (data->search_data, entry, data->all_keywords);
 	if (entry != NULL)
 		data->keywords_patterns = search_util_get_patterns (entry, TRUE);
@@ -474,17 +474,17 @@ help_cb (GtkWidget  *widget,
 }
 
 
-/* -- choose category dialog -- */
+/* -- choose tag dialog -- */
 
 
-static void choose_categories_dialog (DialogData *data);
+static void choose_tags_dialog (DialogData *data);
 
 
 static void
-choose_categories_cb (GtkWidget  *widget,
-		      DialogData *data)
+choose_tags_cb (GtkWidget  *widget,
+                DialogData *data)
 {
-	choose_categories_dialog (data);
+	choose_tags_dialog (data);
 }
 
 
@@ -570,9 +570,9 @@ dlg_search_ui (GthBrowser *browser,
 	data->s_filename_entry = glade_xml_get_widget (data->gui, "s_filename_entry");
 	data->s_comment_entry = glade_xml_get_widget (data->gui, "s_comment_entry");
 	data->s_place_entry = glade_xml_get_widget (data->gui, "s_place_entry");
-	data->s_categories_entry = glade_xml_get_widget (data->gui, "s_categories_entry");
+	data->s_tags_entry = glade_xml_get_widget (data->gui, "s_tags_entry");
 
-	data->s_choose_categories_button = glade_xml_get_widget (data->gui, "s_choose_categories_button");
+	data->s_choose_tags_button = glade_xml_get_widget (data->gui, "s_choose_tags_button");
 	data->s_date_optionmenu = glade_xml_get_widget (data->gui, "s_date_optionmenu");
 	data->s_date_dateedit = glade_xml_get_widget (data->gui, "s_date_dateedit");
 
@@ -650,7 +650,7 @@ dlg_search_ui (GthBrowser *browser,
 				    search_data->comment_pattern);
 		gtk_entry_set_text (GTK_ENTRY (data->s_place_entry),
 				    search_data->place_pattern);
-		gtk_entry_set_text (GTK_ENTRY (data->s_categories_entry),
+		gtk_entry_set_text (GTK_ENTRY (data->s_tags_entry),
 				    search_data->keywords_pattern);
 
 		gtk_option_menu_set_history (GTK_OPTION_MENU (data->s_date_optionmenu),
@@ -691,9 +691,9 @@ dlg_search_ui (GthBrowser *browser,
 			  "clicked",
 			  G_CALLBACK (view_or_save_cb),
 			  data);
-	g_signal_connect (G_OBJECT (data->s_choose_categories_button),
+	g_signal_connect (G_OBJECT (data->s_choose_tags_button),
 			  "clicked",
-			  G_CALLBACK (choose_categories_cb),
+			  G_CALLBACK (choose_tags_cb),
 			  data);
 	g_signal_connect (G_OBJECT (data->s_date_optionmenu),
 			  "changed",
@@ -1169,21 +1169,21 @@ typedef struct {
 	GladeXML       *gui;
 
 	GtkWidget      *dialog;
-	GtkWidget      *c_categories_entry;
-	GtkWidget      *c_categories_treeview;
+	GtkWidget      *c_tags_entry;
+	GtkWidget      *c_tags_treeview;
 	GtkWidget      *c_ok_button;
 	GtkWidget      *c_cancel_button;
 	GtkWidget      *s_at_least_one_cat_radiobutton;
 	GtkWidget      *s_all_cat_radiobutton;
 
-	GtkListStore   *c_categories_list_model;
-} CategoriesDialogData;
+	GtkListStore   *c_tags_list_model;
+} TagsDialogData;
 
 
 /* called when the main dialog is closed. */
 static void
-categories_dialog__destroy_cb (GtkWidget            *widget,
-			       CategoriesDialogData *cdata)
+tags_dialog__destroy_cb (GtkWidget            *widget,
+                         TagsDialogData *cdata)
 {
 	g_object_unref (cdata->gui);
 	g_free (cdata);
@@ -1191,172 +1191,172 @@ categories_dialog__destroy_cb (GtkWidget            *widget,
 
 
 static void
-update_category_entry (CategoriesDialogData *cdata)
+update_tag_entry (TagsDialogData *cdata)
 {
 	GtkTreeIter   iter;
-	GtkTreeModel *model = GTK_TREE_MODEL (cdata->c_categories_list_model);
-	GString      *categories;
+	GtkTreeModel *model = GTK_TREE_MODEL (cdata->c_tags_list_model);
+	GString      *tags;
 
 	if (! gtk_tree_model_get_iter_first (model, &iter)) {
-		gtk_entry_set_text (GTK_ENTRY (cdata->c_categories_entry), "");
+		gtk_entry_set_text (GTK_ENTRY (cdata->c_tags_entry), "");
 		return;
 	}
 
-	categories = g_string_new (NULL);
+	tags = g_string_new (NULL);
 	do {
-		gboolean use_category;
-		gtk_tree_model_get (model, &iter, C_USE_CATEGORY_COLUMN, &use_category, -1);
-		if (use_category) {
-			char *category_name;
+		gboolean use_tag;
+		gtk_tree_model_get (model, &iter, C_USE_TAG_COLUMN, &use_tag, -1);
+		if (use_tag) {
+			char *tag_name;
 
 			gtk_tree_model_get (model, &iter,
-					    C_CATEGORY_COLUMN, &category_name,
+					    C_TAG_COLUMN, &tag_name,
 					    -1);
-			if (categories->len > 0)
-				categories = g_string_append (categories, CATEGORY_SEPARATOR_STR " ");
-			categories = g_string_append (categories, category_name);
-			g_free (category_name);
+			if (tags->len > 0)
+				tags = g_string_append (tags, TAG_SEPARATOR_STR " ");
+			tags = g_string_append (tags, tag_name);
+			g_free (tag_name);
 		}
 	} while (gtk_tree_model_iter_next (model, &iter));
 
-	gtk_entry_set_text (GTK_ENTRY (cdata->c_categories_entry), categories->str);
-	g_string_free (categories, TRUE);
+	gtk_entry_set_text (GTK_ENTRY (cdata->c_tags_entry), tags->str);
+	g_string_free (tags, TRUE);
 }
 
 
 static GList *
-get_categories_from_entry (CategoriesDialogData *cdata)
+get_tags_from_entry (TagsDialogData *cdata)
 {
 	GList       *cat_list = NULL;
 	const char  *utf8_text;
-	char       **categories;
+	char       **tags;
 	int          i;
 
-	utf8_text = gtk_entry_get_text (GTK_ENTRY (cdata->c_categories_entry));
+	utf8_text = gtk_entry_get_text (GTK_ENTRY (cdata->c_tags_entry));
 	if (utf8_text == NULL)
 		return NULL;
 
-	categories = _g_utf8_strsplit (utf8_text, CATEGORY_SEPARATOR_C);
+	tags = _g_utf8_strsplit (utf8_text, TAG_SEPARATOR_C);
 
-	for (i = 0; categories[i] != NULL; i++) {
+	for (i = 0; tags[i] != NULL; i++) {
 		char *s;
 
-		s = _g_utf8_strstrip (categories[i]);
+		s = _g_utf8_strstrip (tags[i]);
 
 		if (s != NULL)
 			cat_list = g_list_prepend (cat_list, s);
 	}
-	g_strfreev (categories);
+	g_strfreev (tags);
 
 	return g_list_reverse (cat_list);
 }
 
 
 static void
-add_saved_categories (CategoriesDialogData *cdata,
-		      GList                *cat_list)
+add_saved_tags (TagsDialogData *cdata,
+                GList          *cat_list)
 {
-	Bookmarks *categories;
+	Bookmarks *tags;
 	GList     *scan;
 
-	categories = bookmarks_new (RC_CATEGORIES_FILE);
-	bookmarks_load_from_disk (categories);
+	tags = bookmarks_new (RC_TAGS_FILE);
+	bookmarks_load_from_disk (tags);
 
-	for (scan = categories->list; scan; scan = scan->next) {
+	for (scan = tags->list; scan; scan = scan->next) {
 		GtkTreeIter  iter;
 		GList       *scan2;
 		gboolean     found = FALSE;
-		char        *category1 = scan->data;
+		char        *tag1 = scan->data;
 
 		for (scan2 = cat_list; scan2 && !found; scan2 = scan2->next) {
-			char *category2 = scan2->data;
-			if (strcmp (category1, category2) == 0)
+			char *tag2 = scan2->data;
+			if (strcmp (tag1, tag2) == 0)
 				found = TRUE;
 		}
 
 		if (found)
 			continue;
 
-		gtk_list_store_append (cdata->c_categories_list_model, &iter);
+		gtk_list_store_append (cdata->c_tags_list_model, &iter);
 
-		gtk_list_store_set (cdata->c_categories_list_model, &iter,
-				    C_USE_CATEGORY_COLUMN, FALSE,
-				    C_CATEGORY_COLUMN, category1,
+		gtk_list_store_set (cdata->c_tags_list_model, &iter,
+				    C_USE_TAG_COLUMN, FALSE,
+				    C_TAG_COLUMN, tag1,
 				    -1);
 	}
 
-	bookmarks_free (categories);
+	bookmarks_free (tags);
 }
 
 
 static void
-update_list_from_entry (CategoriesDialogData *cdata)
+update_list_from_entry (TagsDialogData *cdata)
 {
-	GList *categories = NULL;
+	GList *tags = NULL;
 	GList *scan;
 
-	categories = get_categories_from_entry (cdata);
+	tags = get_tags_from_entry (cdata);
 
-	gtk_list_store_clear (cdata->c_categories_list_model);
-	for (scan = categories; scan; scan = scan->next) {
-		char        *category = scan->data;
+	gtk_list_store_clear (cdata->c_tags_list_model);
+	for (scan = tags; scan; scan = scan->next) {
+		char        *tag = scan->data;
 		GtkTreeIter  iter;
 
-		gtk_list_store_append (cdata->c_categories_list_model, &iter);
+		gtk_list_store_append (cdata->c_tags_list_model, &iter);
 
-		gtk_list_store_set (cdata->c_categories_list_model, &iter,
-				    C_USE_CATEGORY_COLUMN, TRUE,
-				    C_CATEGORY_COLUMN, category,
+		gtk_list_store_set (cdata->c_tags_list_model, &iter,
+				    C_USE_TAG_COLUMN, TRUE,
+				    C_TAG_COLUMN, tag,
 				    -1);
 	}
-	add_saved_categories (cdata, categories);
-	path_list_free (categories);
+	add_saved_tags (cdata, tags);
+	path_list_free (tags);
 }
 
 
 static void
-use_category_toggled (GtkCellRendererToggle *cell,
-		      gchar                 *path_string,
-		      gpointer               callback_data)
+use_tag_toggled (GtkCellRendererToggle *cell,
+                 gchar                 *path_string,
+                 gpointer               callback_data)
 {
-	CategoriesDialogData *cdata  = callback_data;
-	GtkTreeModel *model = GTK_TREE_MODEL (cdata->c_categories_list_model);
+	TagsDialogData *cdata  = callback_data;
+	GtkTreeModel *model = GTK_TREE_MODEL (cdata->c_tags_list_model);
 	GtkTreeIter   iter;
 	GtkTreePath  *path = gtk_tree_path_new_from_string (path_string);
 	gboolean      value;
 
 	gtk_tree_model_get_iter (model, &iter, path);
-	gtk_tree_model_get (model, &iter, C_USE_CATEGORY_COLUMN, &value, -1);
+	gtk_tree_model_get (model, &iter, C_USE_TAG_COLUMN, &value, -1);
 
 	value = !value;
-	gtk_list_store_set (GTK_LIST_STORE (model), &iter, C_USE_CATEGORY_COLUMN, value, -1);
+	gtk_list_store_set (GTK_LIST_STORE (model), &iter, C_USE_TAG_COLUMN, value, -1);
 
 	gtk_tree_path_free (path);
-	update_category_entry (cdata);
+	update_tag_entry (cdata);
 }
 
 
 static void
-choose_categories_ok_cb (GtkWidget            *widget,
-			 CategoriesDialogData *cdata)
+choose_tags_ok_cb (GtkWidget      *widget,
+                   TagsDialogData *cdata)
 {
-	const char *categories;
+	const char *tags;
 
-	categories = gtk_entry_get_text (GTK_ENTRY (cdata->c_categories_entry));
-	gtk_entry_set_text (GTK_ENTRY (cdata->data->s_categories_entry), categories);
+	tags = gtk_entry_get_text (GTK_ENTRY (cdata->c_tags_entry));
+	gtk_entry_set_text (GTK_ENTRY (cdata->data->s_tags_entry), tags);
 	cdata->data->all_keywords = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cdata->s_all_cat_radiobutton));
 	gtk_widget_destroy (cdata->dialog);
 }
 
 
 static void
-choose_categories_dialog (DialogData *data)
+choose_tags_dialog (DialogData *data)
 {
-	CategoriesDialogData *cdata;
+	TagsDialogData *cdata;
 	GtkCellRenderer      *renderer;
 	GtkTreeViewColumn    *column;
 
-	cdata = g_new (CategoriesDialogData, 1);
+	cdata = g_new (TagsDialogData, 1);
 	cdata->data = data;
 
 	cdata->gui = glade_xml_new (GTHUMB_GLADEDIR "/" SEARCH_GLADE_FILE,
@@ -1371,9 +1371,9 @@ choose_categories_dialog (DialogData *data)
 
 	/* Get the widgets. */
 
-	cdata->dialog = glade_xml_get_widget (cdata->gui, "categories_dialog");
-	cdata->c_categories_entry = glade_xml_get_widget (cdata->gui, "c_categories_entry");
-	cdata->c_categories_treeview = glade_xml_get_widget (cdata->gui, "c_categories_treeview");
+	cdata->dialog = glade_xml_get_widget (cdata->gui, "tags_dialog");
+	cdata->c_tags_entry = glade_xml_get_widget (cdata->gui, "c_tags_entry");
+	cdata->c_tags_treeview = glade_xml_get_widget (cdata->gui, "c_tags_treeview");
 	cdata->c_ok_button = glade_xml_get_widget (cdata->gui, "c_ok_button");
 	cdata->c_cancel_button = glade_xml_get_widget (cdata->gui, "c_cancel_button");
 	cdata->s_at_least_one_cat_radiobutton = glade_xml_get_widget (cdata->gui, "s_at_least_one_cat_radiobutton");
@@ -1381,38 +1381,38 @@ choose_categories_dialog (DialogData *data)
 
 	/* Set widgets data. */
 
-	cdata->c_categories_list_model = gtk_list_store_new (C_NUM_COLUMNS,
+	cdata->c_tags_list_model = gtk_list_store_new (C_NUM_COLUMNS,
 							     G_TYPE_BOOLEAN,
 							     G_TYPE_STRING);
-	gtk_tree_view_set_model (GTK_TREE_VIEW (cdata->c_categories_treeview),
-				 GTK_TREE_MODEL (cdata->c_categories_list_model));
-	g_object_unref (cdata->c_categories_list_model);
-	gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (cdata->c_categories_treeview), FALSE);
+	gtk_tree_view_set_model (GTK_TREE_VIEW (cdata->c_tags_treeview),
+				 GTK_TREE_MODEL (cdata->c_tags_list_model));
+	g_object_unref (cdata->c_tags_list_model);
+	gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (cdata->c_tags_treeview), FALSE);
 
 	renderer = gtk_cell_renderer_toggle_new ();
 	g_signal_connect (G_OBJECT (renderer),
 			  "toggled",
-			  G_CALLBACK (use_category_toggled),
+			  G_CALLBACK (use_tag_toggled),
 			  cdata);
-	gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (cdata->c_categories_treeview),
+	gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (cdata->c_tags_treeview),
 						     -1, "Use",
 						     renderer,
-						     "active", C_USE_CATEGORY_COLUMN,
+						     "active", C_USE_TAG_COLUMN,
 						     NULL);
 
 	renderer = gtk_cell_renderer_text_new ();
 	column = gtk_tree_view_column_new_with_attributes ("",
 							   renderer,
-							   "text", C_CATEGORY_COLUMN,
+							   "text", C_TAG_COLUMN,
 							   NULL);
 
 	gtk_tree_view_column_set_sort_column_id (column, 0);
-	gtk_tree_view_append_column (GTK_TREE_VIEW (cdata->c_categories_treeview),
+	gtk_tree_view_append_column (GTK_TREE_VIEW (cdata->c_tags_treeview),
 				     column);
 
-	gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (cdata->c_categories_list_model), C_CATEGORY_COLUMN, GTK_SORT_ASCENDING);
+	gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (cdata->c_tags_list_model), C_TAG_COLUMN, GTK_SORT_ASCENDING);
 
-	gtk_entry_set_text (GTK_ENTRY (cdata->c_categories_entry), gtk_entry_get_text (GTK_ENTRY (cdata->data->s_categories_entry)));
+	gtk_entry_set_text (GTK_ENTRY (cdata->c_tags_entry), gtk_entry_get_text (GTK_ENTRY (cdata->data->s_tags_entry)));
 	update_list_from_entry (cdata);
 
 	if (data->all_keywords)
@@ -1424,11 +1424,11 @@ choose_categories_dialog (DialogData *data)
 
 	g_signal_connect (G_OBJECT (cdata->dialog),
 			  "destroy",
-			  G_CALLBACK (categories_dialog__destroy_cb),
+			  G_CALLBACK (tags_dialog__destroy_cb),
 			  cdata);
 	g_signal_connect (G_OBJECT (cdata->c_ok_button),
 			  "clicked",
-			  G_CALLBACK (choose_categories_ok_cb),
+			  G_CALLBACK (choose_tags_ok_cb),
 			  cdata);
 	g_signal_connect_swapped (G_OBJECT (cdata->c_cancel_button),
 				  "clicked",
@@ -1437,7 +1437,7 @@ choose_categories_dialog (DialogData *data)
 
 	/* Run dialog. */
 
-	gtk_widget_grab_focus (cdata->c_categories_treeview);
+	gtk_widget_grab_focus (cdata->c_tags_treeview);
 
 	gtk_window_set_transient_for (GTK_WINDOW (cdata->dialog),
 				      GTK_WINDOW (data->dialog));
diff --git a/src/gth-browser-actions-callbacks.c b/src/gth-browser-actions-callbacks.c
index da80956..7f128d3 100644
--- a/src/gth-browser-actions-callbacks.c
+++ b/src/gth-browser-actions-callbacks.c
@@ -29,7 +29,7 @@
 #include "comments.h"
 #include "dlg-bookmarks.h"
 #include "dlg-catalog.h"
-#include "dlg-categories.h"
+#include "dlg-tags.h"
 #include "dlg-convert.h"
 #include "dlg-duplicates.h"
 #include "dlg-file-utils.h"
@@ -1376,13 +1376,13 @@ typedef struct {
 	GthBrowser *browser;
 	GList      *file_list;
 	GList      *add_list, *remove_list;
-} FolderCategoriesData;
+} FolderTagsData;
 
 
 static void
-edit_current_folder_categories__done (gpointer data)
+edit_current_folder_tags__done (gpointer data)
 {
-	FolderCategoriesData *fcdata = data;
+	FolderTagsData *fcdata = data;
 	GList                *scan;
 
 	for (scan = fcdata->file_list; scan; scan = scan->next) {
@@ -1405,7 +1405,7 @@ edit_current_folder_categories__done (gpointer data)
 			comment_data_add_keyword (cdata, k);
 		}
 
-		comments_save_categories (filename, cdata);
+		comments_save_tags (filename, cdata);
 		comment_data_free (cdata);
 
 		dir_list = gth_browser_get_dir_list (fcdata->browser);
@@ -1423,40 +1423,40 @@ edit_current_folder_categories__done (gpointer data)
 
 
 static void
-edit_current_folder_categories (GthBrowser *browser,
-				const char *path)
+edit_current_folder_tags (GthBrowser *browser,
+                          const char *path)
 {
-	FolderCategoriesData *fcdata;
+	FolderTagsData *fcdata;
 
 	if (path == NULL)
 		return;
 
-	fcdata = g_new0 (FolderCategoriesData, 1);
+	fcdata = g_new0 (FolderTagsData, 1);
 	fcdata->browser = browser;
 	fcdata->add_list = NULL;
 	fcdata->remove_list = NULL;
 	fcdata->file_list = g_list_prepend (NULL, g_strdup (path));
 
-	dlg_choose_categories (GTK_WINDOW (browser),
-			       fcdata->file_list,
-			       NULL,
-			       &(fcdata->add_list),
-			       &(fcdata->remove_list),
-			       edit_current_folder_categories__done,
-			       fcdata);
+	dlg_choose_tags (GTK_WINDOW (browser),
+                         fcdata->file_list,
+                         NULL,
+                         &(fcdata->add_list),
+                         &(fcdata->remove_list),
+                         edit_current_folder_tags__done,
+                         fcdata);
 }
 
 
 void
-gth_browser_activate_action_edit_dir_categories (GtkAction  *action,
-						 GthBrowser *browser)
+gth_browser_activate_action_edit_dir_tags (GtkAction  *action,
+                                           GthBrowser *browser)
 {
 	char *path;
 
 	path = gth_dir_list_get_selected_path (gth_browser_get_dir_list (browser));
 	if (path == NULL)
 		return;
-	edit_current_folder_categories (browser, path);
+	edit_current_folder_tags (browser, path);
 	g_free (path);
 }
 
@@ -1502,10 +1502,10 @@ gth_browser_activate_action_edit_current_dir_move (GtkAction  *action,
 
 
 void
-gth_browser_activate_action_edit_current_dir_categories (GtkAction  *action,
-							 GthBrowser *browser)
+gth_browser_activate_action_edit_current_dir_tags (GtkAction  *action,
+                                                   GthBrowser *browser)
 {
-	edit_current_folder_categories (browser, gth_browser_get_dir_list (browser)->path);
+	edit_current_folder_tags (browser, gth_browser_get_dir_list (browser)->path);
 }
 
 
diff --git a/src/gth-browser-actions-callbacks.h b/src/gth-browser-actions-callbacks.h
index 5827925..8b41597 100644
--- a/src/gth-browser-actions-callbacks.h
+++ b/src/gth-browser-actions-callbacks.h
@@ -68,13 +68,13 @@ DEFINE_ACTION(gth_browser_activate_action_edit_dir_rename)
 DEFINE_ACTION(gth_browser_activate_action_edit_dir_delete)
 DEFINE_ACTION(gth_browser_activate_action_edit_dir_copy)
 DEFINE_ACTION(gth_browser_activate_action_edit_dir_move)
-DEFINE_ACTION(gth_browser_activate_action_edit_dir_categories)
+DEFINE_ACTION(gth_browser_activate_action_edit_dir_tags)
 DEFINE_ACTION(gth_browser_activate_action_edit_current_dir_open)
 DEFINE_ACTION(gth_browser_activate_action_edit_current_dir_rename)
 DEFINE_ACTION(gth_browser_activate_action_edit_current_dir_delete)
 DEFINE_ACTION(gth_browser_activate_action_edit_current_dir_copy)
 DEFINE_ACTION(gth_browser_activate_action_edit_current_dir_move)
-DEFINE_ACTION(gth_browser_activate_action_edit_current_dir_categories)
+DEFINE_ACTION(gth_browser_activate_action_edit_current_dir_tags)
 DEFINE_ACTION(gth_browser_activate_action_edit_current_dir_new)
 DEFINE_ACTION(gth_browser_activate_action_view_next_image)
 DEFINE_ACTION(gth_browser_activate_action_view_prev_image)
diff --git a/src/gth-browser-actions-entries.h b/src/gth-browser-actions-entries.h
index 30d834d..5d81ce7 100644
--- a/src/gth-browser-actions-entries.h
+++ b/src/gth-browser-actions-entries.h
@@ -240,10 +240,10 @@ static GtkActionEntry gth_browser_action_entries[] = {
 	  N_("Move selected folder"),
 	  G_CALLBACK (gth_browser_activate_action_edit_dir_move) },
 
-	{ "EditDir_Categories", NULL,
-	  N_("Ca_tegories..."), NULL,
-	  N_("Assign categories to the selected folder"),
-	  G_CALLBACK (gth_browser_activate_action_edit_dir_categories) },
+	{ "EditDir_Tags", NULL,
+	  N_("T_ags..."), NULL,
+	  N_("Assign tags to the selected folder"),
+	  G_CALLBACK (gth_browser_activate_action_edit_dir_tags) },
 
 	{ "EditCurrentDir_Open", NULL,
 	  N_("Open with the _File Manager"), NULL,
@@ -270,10 +270,10 @@ static GtkActionEntry gth_browser_action_entries[] = {
 	  N_("Move current folder"),
 	  G_CALLBACK (gth_browser_activate_action_edit_current_dir_move) },
 
-	{ "EditCurrentDir_Categories", NULL,
-	  N_("Ca_tegories..."), NULL,
-	  N_("Assign categories to the current folder"),
-	  G_CALLBACK (gth_browser_activate_action_edit_current_dir_categories) },
+	{ "EditCurrentDir_Tags", NULL,
+	  N_("T_ags..."), NULL,
+	  N_("Assign tags to the current folder"),
+	  G_CALLBACK (gth_browser_activate_action_edit_current_dir_tags) },
 
 	{ "EditCurrentDir_New", NULL,
 	  N_("_New Folder..."), "<shift><ctrl>N",
diff --git a/src/gth-browser-ui.h b/src/gth-browser-ui.h
index 6fff5d7..e90d502 100644
--- a/src/gth-browser-ui.h
+++ b/src/gth-browser-ui.h
@@ -68,7 +68,7 @@ static const gchar *main_ui_info =
 "      <menuitem action='Tools_FindDuplicates'/>"
 "      <separator/>"
 "      <menuitem action='Edit_EditComment'/>"
-"      <menuitem action='Edit_EditCategories'/>"
+"      <menuitem action='Edit_EditTags'/>"
 "      <separator/>"
 "      <menuitem action='Edit_AddToCatalog'/>"
 "      <menuitem action='Edit_RemoveFromCatalog'/>"
@@ -224,7 +224,7 @@ static const gchar *main_ui_info =
 "    <menuitem action='Edit_DeleteFiles'/>"
 "    <separator/>"
 "    <menuitem action='Edit_EditComment'/>"
-"    <menuitem action='Edit_EditCategories'/>"
+"    <menuitem action='Edit_EditTags'/>"
 "    <separator/>"
 "    <menuitem action='Edit_AddToCatalog'/>"
 "    <menuitem action='Edit_RemoveFromCatalog'/>"
@@ -261,7 +261,7 @@ static const gchar *main_ui_info =
 "    <menuitem action='View_ExitFullscreen'/>"
 "    <separator/>"
 "    <menuitem action='Edit_EditComment'/>"
-"    <menuitem action='Edit_EditCategories'/>"
+"    <menuitem action='Edit_EditTags'/>"
 "  </popup>"
 "  <popup name='CatalogPopup'>"
 "    <menuitem action='EditCatalog_View'/>"
@@ -291,7 +291,7 @@ static const gchar *main_ui_info =
 "    <menuitem action='EditDir_Copy'/>"
 "    <menuitem action='EditDir_Move'/>"
 "    <separator/>"
-"    <menuitem action='EditDir_Categories'/>"
+"    <menuitem action='EditDir_Tags'/>"
 "  </popup>"
 "  <popup name='DirListPopup'>"
 "    <menuitem action='EditCurrentDir_New'/>"
@@ -326,7 +326,7 @@ static const gchar *folder_ui_info =
 "          <menuitem action='EditCurrentDir_Copy'/>"
 "          <menuitem action='EditCurrentDir_Move'/>"
 "          <separator/>"
-"          <menuitem action='EditCurrentDir_Categories'/>"
+"          <menuitem action='EditCurrentDir_Tags'/>"
 "        </menu>"
 "      </placeholder>"
 "    </menu>"
@@ -386,7 +386,7 @@ static const gchar *browser_ui_info =
 "      <toolitem action='ToolBar_FindImages'/>"
 "      <separator/>"
 "      <toolitem action='ToolBar_EditComment'/>"
-"      <toolitem action='ToolBar_EditCategories'/>"
+"      <toolitem action='ToolBar_EditTags'/>"
 "    </placeholder>"
 "  </toolbar>"
 "</ui>";
diff --git a/src/gth-browser.c b/src/gth-browser.c
index 1d76550..f272f24 100644
--- a/src/gth-browser.c
+++ b/src/gth-browser.c
@@ -36,7 +36,7 @@
 #include "catalog-list.h"
 #include "comments.h"
 #include "dlg-bookmarks.h"
-#include "dlg-categories.h"
+#include "dlg-tags.h"
 #include "dlg-comment.h"
 #include "dlg-file-utils.h"
 #include "dlg-image-prop.h"
@@ -877,8 +877,8 @@ window_update_sensitivity (GthBrowser *browser)
 
 	set_action_sensitive (browser, "Edit_EditComment", sel_not_null);
 	set_action_sensitive (browser, "ToolBar_EditComment", sel_not_null);
-	set_action_sensitive (browser, "Edit_EditCategories", sel_not_null);
-	set_action_sensitive (browser, "ToolBar_EditCategories", sel_not_null);
+	set_action_sensitive (browser, "Edit_EditTags", sel_not_null);
+	set_action_sensitive (browser, "ToolBar_EditTags", sel_not_null);
 
 	set_action_sensitive (browser, "Edit_AddToCatalog", sel_not_null);
 	set_action_sensitive (browser, "Edit_RemoveFromCatalog", viewing_catalog && sel_not_null);
@@ -1954,7 +1954,7 @@ file_selection_changed_cb (GtkWidget *widget,
 						  sel_change_update_cb,
 						  browser);
 
-	gth_window_update_comment_categories_dlg (GTH_WINDOW (browser));
+	gth_window_update_comment_tags_dlg (GTH_WINDOW (browser));
 
 	return TRUE;
 }
@@ -3089,11 +3089,11 @@ key_press_cb (GtkWidget   *widget,
 		gth_window_edit_comment (GTH_WINDOW (browser));
 		return TRUE;
 
-		/* Edit keywords */
+		/* Edit tags */
 	case GDK_k:
 		if (! sel_not_null)
 			break;
-		gth_window_edit_categories (GTH_WINDOW (browser));
+		gth_window_edit_tags (GTH_WINDOW (browser));
 		return TRUE;
 
 		/* gimp hotkey */
@@ -7036,7 +7036,7 @@ gth_browser_construct (GthBrowser  *browser,
 					   browser);
 
 	priv->cnxn_id[i++] = eel_gconf_notification_add (
-					   PREF_SHOW_CATEGORIES,
+					   PREF_SHOW_TAGS,
 					   pref_view_mode_changed,
 					   browser);
 
diff --git a/src/gth-category-selection-dialog.c b/src/gth-category-selection-dialog.c
deleted file mode 100644
index 904e04e..0000000
--- a/src/gth-category-selection-dialog.c
+++ /dev/null
@@ -1,479 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-
-/*
- *  GThumb
- *
- *  Copyright (C) 2007 The Free Software Foundation, Inc.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
- */
-
-
-#include <config.h>
-#include <string.h>
-
-#include <glib/gi18n.h>
-#include <gtk/gtk.h>
-#include <glade/glade.h>
-#include "typedefs.h"
-#include "glib-utils.h"
-#include "file-utils.h"
-#include "bookmarks.h"
-#include "gth-category-selection-dialog.h"
-
-enum {
-        RESPONSE,
-        LAST_SIGNAL
-};
-
-
-enum {
-	C_USE_CATEGORY_COLUMN,
-	C_CATEGORY_COLUMN,
-	C_NUM_COLUMNS
-};
-
-
-#define CATEGORY_SEPARATOR_C   ';'
-#define CATEGORY_SEPARATOR_STR ";"
-#define SEARCH_GLADE_FILE     "gthumb_search.glade"
-#define DEFAULT_DIALOG_WIDTH  540
-#define DEFAULT_DIALOG_HEIGHT 480
-
-
-struct _GthCategorySelectionPrivate
-{
-	char           *categories;
-	gboolean        match_all;
-	gboolean        ok_clicked;
-
-	GladeXML       *gui;
-
-	GtkWidget      *dialog;
-	GtkWidget      *c_categories_entry;
-	GtkWidget      *c_categories_treeview;
-	GtkWidget      *c_ok_button;
-	GtkWidget      *c_cancel_button;
-	GtkWidget      *s_at_least_one_cat_radiobutton;
-	GtkWidget      *s_all_cat_radiobutton;
-
-	GtkListStore   *c_categories_list_model;
-};
-
-
-static GObjectClass *parent_class = NULL;
-static guint signals[LAST_SIGNAL] = { 0 };
-
-
-static void
-gth_category_selection_finalize (GObject *object)
-{
-	GthCategorySelection *category_sel;
-
-	category_sel = GTH_CATEGORY_SELECTION (object);
-
-	if (category_sel->priv != NULL) {
-
-		if (category_sel->priv->dialog != NULL)
-			g_signal_handlers_disconnect_by_data (category_sel->priv->dialog, category_sel);
-
-		g_free (category_sel->priv->categories);
-		category_sel->priv->categories = NULL;
-
-		if (category_sel->priv->gui != NULL) {
-			g_object_unref (category_sel->priv->gui);
-			category_sel->priv->gui = NULL;
-		}
-
-		g_free (category_sel->priv);
-		category_sel->priv = NULL;
-	}
-
-	G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
-
-static void
-gth_category_selection_class_init (GthCategorySelectionClass *class)
-{
-	GObjectClass *object_class;
-
-	parent_class = g_type_class_peek_parent (class);
-	object_class = (GObjectClass*) class;
-
-	object_class->finalize = gth_category_selection_finalize;
-
-	signals[RESPONSE] =
-		g_signal_new ("response",
-                              G_TYPE_FROM_CLASS (class),
-                              G_SIGNAL_RUN_LAST,
-                              G_STRUCT_OFFSET (GthCategorySelectionClass, response),
-                              NULL, NULL,
-                              g_cclosure_marshal_VOID__INT,
-                              G_TYPE_NONE,
-                              1, G_TYPE_INT);
-}
-
-
-static void
-gth_category_selection_init (GthCategorySelection *category_sel)
-{
-	category_sel->priv = g_new0 (GthCategorySelectionPrivate, 1);
-}
-
-
-static void
-update_category_entry (GthCategorySelection *category_sel)
-{
-	GthCategorySelectionPrivate *priv = category_sel->priv;
-	GtkTreeIter   iter;
-	GtkTreeModel *model = GTK_TREE_MODEL (priv->c_categories_list_model);
-	GString      *categories;
-
-	if (! gtk_tree_model_get_iter_first (model, &iter)) {
-		gtk_entry_set_text (GTK_ENTRY (priv->c_categories_entry), "");
-		return;
-	}
-
-	categories = g_string_new (NULL);
-	do {
-		gboolean use_category;
-		gtk_tree_model_get (model, &iter, C_USE_CATEGORY_COLUMN, &use_category, -1);
-		if (use_category) {
-			char *category_name;
-
-			gtk_tree_model_get (model, &iter,
-					    C_CATEGORY_COLUMN, &category_name,
-					    -1);
-			if (categories->len > 0)
-				categories = g_string_append (categories, CATEGORY_SEPARATOR_STR " ");
-			categories = g_string_append (categories, category_name);
-			g_free (category_name);
-		}
-	} while (gtk_tree_model_iter_next (model, &iter));
-
-	gtk_entry_set_text (GTK_ENTRY (priv->c_categories_entry), categories->str);
-	g_string_free (categories, TRUE);
-}
-
-
-static GList *
-get_categories_from_entry (GthCategorySelection *category_sel)
-{
-	GthCategorySelectionPrivate *priv = category_sel->priv;
-	GList       *cat_list = NULL;
-	const char  *utf8_text;
-	char       **categories;
-	int          i;
-
-	utf8_text = gtk_entry_get_text (GTK_ENTRY (priv->c_categories_entry));
-	if (utf8_text == NULL)
-		return NULL;
-
-	categories = _g_utf8_strsplit (utf8_text, CATEGORY_SEPARATOR_C);
-
-	for (i = 0; categories[i] != NULL; i++) {
-		char *s;
-
-		s = _g_utf8_strstrip (categories[i]);
-
-		if (s != NULL)
-			cat_list = g_list_prepend (cat_list, s);
-	}
-	g_strfreev (categories);
-
-	return g_list_reverse (cat_list);
-}
-
-
-static void
-add_saved_categories (GthCategorySelection *category_sel,
-		      GList                *cat_list)
-{
-	GthCategorySelectionPrivate *priv = category_sel->priv;
-	Bookmarks *categories;
-	GList     *scan;
-
-	categories = bookmarks_new (RC_CATEGORIES_FILE);
-	bookmarks_load_from_disk (categories);
-
-	for (scan = categories->list; scan; scan = scan->next) {
-		GtkTreeIter  iter;
-		GList       *scan2;
-		gboolean     found = FALSE;
-		char        *category1 = scan->data;
-
-		for (scan2 = cat_list; scan2 && !found; scan2 = scan2->next) {
-			char *category2 = scan2->data;
-			if (strcmp (category1, category2) == 0)
-				found = TRUE;
-		}
-
-		if (found)
-			continue;
-
-		gtk_list_store_append (priv->c_categories_list_model, &iter);
-
-		gtk_list_store_set (priv->c_categories_list_model, &iter,
-				    C_USE_CATEGORY_COLUMN, FALSE,
-				    C_CATEGORY_COLUMN, category1,
-				    -1);
-	}
-
-	bookmarks_free (categories);
-}
-
-
-static void
-update_list_from_entry (GthCategorySelection *category_sel)
-{
-	GthCategorySelectionPrivate *priv = category_sel->priv;
-	GList *categories = NULL;
-	GList *scan;
-
-	categories = get_categories_from_entry (category_sel);
-
-	gtk_list_store_clear (priv->c_categories_list_model);
-	for (scan = categories; scan; scan = scan->next) {
-		char        *category = scan->data;
-		GtkTreeIter  iter;
-
-		gtk_list_store_append (priv->c_categories_list_model, &iter);
-
-		gtk_list_store_set (priv->c_categories_list_model, &iter,
-				    C_USE_CATEGORY_COLUMN, TRUE,
-				    C_CATEGORY_COLUMN, category,
-				    -1);
-	}
-	add_saved_categories (category_sel, categories);
-	path_list_free (categories);
-}
-
-
-static void
-use_category_toggled (GtkCellRendererToggle *cell,
-		      gchar                 *path_string,
-		      gpointer               callback_data)
-{
-	GthCategorySelection *category_sel = callback_data;
-	GthCategorySelectionPrivate *priv = category_sel->priv;
-	GtkTreeModel *model = GTK_TREE_MODEL (priv->c_categories_list_model);
-	GtkTreeIter   iter;
-	GtkTreePath  *path = gtk_tree_path_new_from_string (path_string);
-	gboolean      value;
-
-	gtk_tree_model_get_iter (model, &iter, path);
-	gtk_tree_model_get (model, &iter, C_USE_CATEGORY_COLUMN, &value, -1);
-
-	value = !value;
-	gtk_list_store_set (GTK_LIST_STORE (model), &iter, C_USE_CATEGORY_COLUMN, value, -1);
-
-	gtk_tree_path_free (path);
-	update_category_entry (category_sel);
-}
-
-
-static void
-choose_categories_ok_cb (GtkWidget            *widget,
-			 GthCategorySelection *category_sel)
-{
-	GthCategorySelectionPrivate *priv = category_sel->priv;
-
-	priv->ok_clicked = TRUE;
-
-	g_free (priv->categories);
-	priv->categories = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->c_categories_entry)));
-	priv->match_all = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->s_all_cat_radiobutton));
-
-	gtk_widget_destroy (priv->dialog);
-	priv->dialog = NULL;
-
-	g_signal_emit (category_sel, signals[RESPONSE], 0, GTK_RESPONSE_OK);
-}
-
-
-static gboolean
-categories_dialog__destroy_cb (GtkWidget            *widget,
-			       GthCategorySelection *category_sel)
-{
-	category_sel->priv->dialog = NULL;
-
-	return FALSE;
-
-	if (! category_sel->priv->ok_clicked) {
-		g_object_ref (category_sel);
-		g_signal_emit (category_sel, signals[RESPONSE], 0, GTK_RESPONSE_CANCEL);
-		g_object_unref (category_sel);
-	}
-}
-
-
-static void
-gth_category_selection_construct (GthCategorySelection *category_sel,
-				  GtkWindow            *parent,
-				  const char           *categories,
-				  gboolean              match_all)
-{
-	GthCategorySelectionPrivate *priv;
-	GtkCellRenderer             *renderer;
-	GtkTreeViewColumn           *column;
-
-	priv = category_sel->priv;
-
-	priv->gui = glade_xml_new (GTHUMB_GLADEDIR "/" SEARCH_GLADE_FILE,
-				   NULL,
-				   NULL);
-	if (! priv->gui) {
-		g_warning ("Could not find " SEARCH_GLADE_FILE "\n");
-		return;
-	}
-
-	if (categories != NULL)
-		priv->categories = g_strdup (categories);
-	priv->match_all = match_all;
-
-	/* Get the widgets. */
-
-	priv->dialog = glade_xml_get_widget (priv->gui, "categories_dialog");
-	priv->c_categories_entry = glade_xml_get_widget (priv->gui, "c_categories_entry");
-	priv->c_categories_treeview = glade_xml_get_widget (priv->gui, "c_categories_treeview");
-	priv->c_ok_button = glade_xml_get_widget (priv->gui, "c_ok_button");
-	priv->c_cancel_button = glade_xml_get_widget (priv->gui, "c_cancel_button");
-	priv->s_at_least_one_cat_radiobutton = glade_xml_get_widget (priv->gui, "s_at_least_one_cat_radiobutton");
-	priv->s_all_cat_radiobutton = glade_xml_get_widget (priv->gui, "s_all_cat_radiobutton");
-
-	/* Set widgets data. */
-
-	priv->c_categories_list_model = gtk_list_store_new (C_NUM_COLUMNS,
-							    G_TYPE_BOOLEAN,
-							    G_TYPE_STRING);
-	gtk_tree_view_set_model (GTK_TREE_VIEW (priv->c_categories_treeview),
-				 GTK_TREE_MODEL (priv->c_categories_list_model));
-	g_object_unref (priv->c_categories_list_model);
-	gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (priv->c_categories_treeview), FALSE);
-
-	renderer = gtk_cell_renderer_toggle_new ();
-	g_signal_connect (G_OBJECT (renderer),
-			  "toggled",
-			  G_CALLBACK (use_category_toggled),
-			  category_sel);
-	gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->c_categories_treeview),
-						     -1, "Use",
-						     renderer,
-						     "active", C_USE_CATEGORY_COLUMN,
-						     NULL);
-
-	renderer = gtk_cell_renderer_text_new ();
-	column = gtk_tree_view_column_new_with_attributes ("",
-							   renderer,
-							   "text", C_CATEGORY_COLUMN,
-							   NULL);
-
-	gtk_tree_view_column_set_sort_column_id (column, 0);
-	gtk_tree_view_append_column (GTK_TREE_VIEW (priv->c_categories_treeview),
-				     column);
-
-	gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (priv->c_categories_list_model), C_CATEGORY_COLUMN, GTK_SORT_ASCENDING);
-
-	gtk_entry_set_text (GTK_ENTRY (priv->c_categories_entry), categories);
-	update_list_from_entry (category_sel);
-
-	if (priv->match_all)
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->s_all_cat_radiobutton), TRUE);
-	else
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->s_at_least_one_cat_radiobutton), TRUE);
-
-	/* Set the signals handlers. */
-
-	g_signal_connect (G_OBJECT (priv->dialog),
-			  "destroy",
-			  G_CALLBACK (categories_dialog__destroy_cb),
-			  category_sel);
-	g_signal_connect (G_OBJECT (priv->c_ok_button),
-			  "clicked",
-			  G_CALLBACK (choose_categories_ok_cb),
-			  category_sel);
-	g_signal_connect_swapped (G_OBJECT (priv->c_cancel_button),
-				  "clicked",
-				  G_CALLBACK (gtk_widget_destroy),
-				  G_OBJECT (priv->dialog));
-
-	/* Run dialog. */
-
-	gtk_widget_grab_focus (priv->c_categories_treeview);
-
-	if (parent != NULL) {
-		gtk_window_set_transient_for (GTK_WINDOW (priv->dialog), parent);
-		gtk_window_set_modal (GTK_WINDOW (priv->dialog), TRUE);
-	}
-
-	gtk_widget_show (priv->dialog);
-}
-
-
-GType
-gth_category_selection_get_type (void)
-{
-        static GType type = 0;
-
-        if (! type) {
-                GTypeInfo type_info = {
-			sizeof (GthCategorySelectionClass),
-			NULL,
-			NULL,
-			(GClassInitFunc) gth_category_selection_class_init,
-			NULL,
-			NULL,
-			sizeof (GthCategorySelection),
-			0,
-			(GInstanceInitFunc) gth_category_selection_init
-		};
-
-		type = g_type_register_static (G_TYPE_OBJECT,
-					       "GthCategorySelection",
-					       &type_info,
-					       0);
-	}
-
-        return type;
-}
-
-
-GthCategorySelection*
-gth_category_selection_new (GtkWindow  *parent,
-			    const char *categories,
-			    gboolean    match_all)
-{
-	GthCategorySelection *csel;
-
-	csel = GTH_CATEGORY_SELECTION (g_object_new (GTH_TYPE_CATEGORY_SELECTION, NULL));
-	gth_category_selection_construct (csel, parent, categories, match_all);
-
-	return csel;
-}
-
-
-char *
-gth_category_selection_get_categories (GthCategorySelection *csel)
-{
-	return csel->priv->categories;
-}
-
-
-gboolean
-gth_category_selection_get_match_all  (GthCategorySelection *csel)
-{
-	return csel->priv->match_all;
-}
diff --git a/src/gth-category-selection-dialog.h b/src/gth-category-selection-dialog.h
deleted file mode 100644
index a97c72b..0000000
--- a/src/gth-category-selection-dialog.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-
-/*
- *  GThumb
- *
- *  Copyright (C) 2007 The Free Software Foundation, Inc.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef GTH_CATEGORY_SELECTION_DIALOG_H
-#define GTH_CATEGORY_SELECTION_DIALOG_H
-
-#include <gtk/gtk.h>
-
-#define GTH_TYPE_CATEGORY_SELECTION         (gth_category_selection_get_type ())
-#define GTH_CATEGORY_SELECTION(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GTH_TYPE_CATEGORY_SELECTION, GthCategorySelection))
-#define GTH_CATEGORY_SELECTION_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST ((k), GTH_TYPE_CATEGORY_SELECTION, GthCategorySelectionClass))
-#define GTH_IS_CATEGORY_SELECTION(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTH_TYPE_CATEGORY_SELECTION))
-#define GTH_IS_CATEGORY_SELECTION_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), GTH_TYPE_CATEGORY_SELECTION))
-#define GTH_CATEGORY_SELECTION_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), GTH_TYPE_CATEGORY_SELECTION, GthCategorySelectionClass))
-
-typedef struct _GthCategorySelection         GthCategorySelection;
-typedef struct _GthCategorySelectionPrivate  GthCategorySelectionPrivate;
-typedef struct _GthCategorySelectionClass    GthCategorySelectionClass;
-
-struct _GthCategorySelection
-{
-	GObject __parent;
-	GthCategorySelectionPrivate *priv;
-};
-
-struct _GthCategorySelectionClass
-{
-	GObjectClass __parent_class;
-
-	/* -- Signals -- */
-
-        void (* response) (GthCategorySelection *csel,
-        		   GtkResponseType       response);
-};
-
-GType                  gth_category_selection_get_type       (void) G_GNUC_CONST;
-GthCategorySelection * gth_category_selection_new            (GtkWindow            *parent,
-							      const char           *categories,
-							      gboolean              match_all);
-char *                 gth_category_selection_get_categories (GthCategorySelection *csel);
-gboolean               gth_category_selection_get_match_all  (GthCategorySelection *csel);
-
-#endif /* GTH_CATEGORY_SELECTION_DIALOG_H */
diff --git a/src/gth-filter-bar.c b/src/gth-filter-bar.c
index 0f650b1..04bcafc 100644
--- a/src/gth-filter-bar.c
+++ b/src/gth-filter-bar.c
@@ -29,7 +29,7 @@
 #include <gtk/gtk.h>
 #include <libgnomeui/gnome-dateedit.h>
 #include "gth-filter-bar.h"
-#include "gth-category-selection-dialog.h"
+#include "gth-tag-selection-dialog.h"
 
 enum {
 	FILTER_TYPE_NONE,
@@ -60,12 +60,12 @@ struct _GthFilterBarPrivate
 	gboolean      has_focus;
 	GtkWidget    *text_entry;
 	GtkWidget    *text_op_combo_box;
-	GtkWidget    *category_op_combo_box;
+	GtkWidget    *tag_op_combo_box;
 	GtkWidget    *date_op_combo_box;
 	GtkWidget    *int_op_combo_box;
 	GtkWidget    *size_combo_box;
 	GtkWidget    *scope_combo_box;
-	GtkWidget    *choose_categories_button;
+	GtkWidget    *choose_tags_button;
 	GtkWidget    *date_edit;
 	GtkListStore *model;
 };
@@ -189,7 +189,7 @@ GthOpData date_op_data[] = { { N_("is equal to"), GTH_TEST_OP_EQUAL, FALSE },
 		     { N_("is after"), GTH_TEST_OP_AFTER, FALSE } };
 
 
-GthOpData category_op_data[] = { { N_("is"), GTH_TEST_OP_CONTAINS, FALSE },
+GthOpData tag_op_data[] = { { N_("is"), GTH_TEST_OP_CONTAINS, FALSE },
 		         { N_("is not"), GTH_TEST_OP_CONTAINS, TRUE } };
 
 static struct {
@@ -207,7 +207,7 @@ static struct {
 		   { N_("Place"), GTH_TEST_SCOPE_PLACE },
 		   { N_("Date"), GTH_TEST_SCOPE_DATE },
 		   { N_("Size"), GTH_TEST_SCOPE_SIZE },
-		   { N_("Category"), GTH_TEST_SCOPE_KEYWORDS },
+		   { N_("Tag"), GTH_TEST_SCOPE_KEYWORDS },
 		   { N_("Text contains"), GTH_TEST_SCOPE_ALL } };
 
 
@@ -229,9 +229,9 @@ scope_combo_box_changed_cb (GtkComboBox  *scope_combo_box,
 			    -1);
 
 	if ((filter_type == FILTER_TYPE_SCOPE) && (scope_type == GTH_TEST_SCOPE_KEYWORDS))
-		gtk_widget_show (filter_bar->priv->choose_categories_button);
+		gtk_widget_show (filter_bar->priv->choose_tags_button);
 	else
-		gtk_widget_hide (filter_bar->priv->choose_categories_button);
+		gtk_widget_hide (filter_bar->priv->choose_tags_button);
 
 	if ((filter_type == FILTER_TYPE_ALL)
 	    || ((filter_type == FILTER_TYPE_SCOPE)
@@ -262,9 +262,9 @@ scope_combo_box_changed_cb (GtkComboBox  *scope_combo_box,
 	}
 
 	if ((filter_type == FILTER_TYPE_SCOPE) && (scope_type == GTH_TEST_SCOPE_KEYWORDS))
-		gtk_widget_show (filter_bar->priv->category_op_combo_box);
+		gtk_widget_show (filter_bar->priv->tag_op_combo_box);
 	else
-		gtk_widget_hide (filter_bar->priv->category_op_combo_box);
+		gtk_widget_hide (filter_bar->priv->tag_op_combo_box);
 
 	if ((filter_type == FILTER_TYPE_ALL)
 	    || ((filter_type == FILTER_TYPE_SCOPE)
@@ -301,14 +301,14 @@ scope_combo_boxrow_separator_func (GtkTreeModel *model,
 
 
 static void
-category_selection_response_cb (GthCategorySelection *csel,
-				GtkResponseType       response,
-				GthFilterBar         *filter_bar)
+tag_selection_response_cb (GthTagSelection *csel,
+                           GtkResponseType       response,
+                           GthFilterBar         *filter_bar)
 {
 	if (response == GTK_RESPONSE_OK) {
 		gtk_entry_set_text (GTK_ENTRY (filter_bar->priv->text_entry),
-				    gth_category_selection_get_categories (csel));
-		filter_bar->priv->match_all = gth_category_selection_get_match_all (csel);
+				    gth_tag_selection_get_tags (csel));
+		filter_bar->priv->match_all = gth_tag_selection_get_match_all (csel);
 		gth_filter_bar_changed (filter_bar);
 	}
 
@@ -318,20 +318,20 @@ category_selection_response_cb (GthCategorySelection *csel,
 
 
 static void
-choose_categories_button_clicked_cb (GtkButton    *button,
+choose_tags_button_clicked_cb (GtkButton    *button,
 				     GthFilterBar *filter_bar)
 {
-	GthCategorySelection *csel;
+	GthTagSelection *csel;
 	GtkWidget *toplevel;
 
 	toplevel = gtk_widget_get_toplevel (GTK_WIDGET (filter_bar));
  	if (! GTK_WIDGET_TOPLEVEL (toplevel))
  		toplevel = NULL;
 
-	csel = gth_category_selection_new (GTK_WINDOW (toplevel), gtk_entry_get_text (GTK_ENTRY (filter_bar->priv->text_entry)), filter_bar->priv->match_all);
+	csel = gth_tag_selection_new (GTK_WINDOW (toplevel), gtk_entry_get_text (GTK_ENTRY (filter_bar->priv->text_entry)), filter_bar->priv->match_all);
 	g_signal_connect (G_OBJECT (csel),
 			  "response",
-			  G_CALLBACK (category_selection_response_cb),
+			  G_CALLBACK (tag_selection_response_cb),
 			  filter_bar);
 }
 
@@ -365,12 +365,12 @@ gth_filter_bar_construct (GthFilterBar *filter_bar)
 	GTK_BOX (filter_bar)->spacing = 6;
 	gtk_container_set_border_width (GTK_CONTAINER (filter_bar), 2);
 
-	/* choose category button */
+	/* choose tag button */
 
-	filter_bar->priv->choose_categories_button = gtk_button_new_with_label ("...");
-	g_signal_connect (G_OBJECT (filter_bar->priv->choose_categories_button),
+	filter_bar->priv->choose_tags_button = gtk_button_new_with_label ("...");
+	g_signal_connect (G_OBJECT (filter_bar->priv->choose_tags_button),
 			  "clicked",
-			  G_CALLBACK (choose_categories_button_clicked_cb),
+			  G_CALLBACK (choose_tags_button_clicked_cb),
 			  filter_bar);
 
 	/* date edit */
@@ -430,13 +430,13 @@ gth_filter_bar_construct (GthFilterBar *filter_bar)
 			  G_CALLBACK (date_op_combo_box_changed_cb),
 			  filter_bar);
 
-	/* category operation combo box */
+	/* tag operation combo box */
 
-	filter_bar->priv->category_op_combo_box = gtk_combo_box_new_text ();
-	for (i = 0; i < G_N_ELEMENTS (category_op_data); i++)
-		gtk_combo_box_append_text (GTK_COMBO_BOX (filter_bar->priv->category_op_combo_box),
-					   _(category_op_data[i].name));
-	gtk_combo_box_set_active (GTK_COMBO_BOX (filter_bar->priv->category_op_combo_box), 0);
+	filter_bar->priv->tag_op_combo_box = gtk_combo_box_new_text ();
+	for (i = 0; i < G_N_ELEMENTS (tag_op_data); i++)
+		gtk_combo_box_append_text (GTK_COMBO_BOX (filter_bar->priv->tag_op_combo_box),
+					   _(tag_op_data[i].name));
+	gtk_combo_box_set_active (GTK_COMBO_BOX (filter_bar->priv->tag_op_combo_box), 0);
 
 	/* scope combo box */
 
@@ -548,9 +548,9 @@ gth_filter_bar_construct (GthFilterBar *filter_bar)
 	gtk_box_pack_start (GTK_BOX (filter_bar), filter_bar->priv->text_op_combo_box, FALSE, FALSE, 0);
 	gtk_box_pack_start (GTK_BOX (filter_bar), filter_bar->priv->int_op_combo_box, FALSE, FALSE, 0);
 	gtk_box_pack_start (GTK_BOX (filter_bar), filter_bar->priv->date_op_combo_box, FALSE, FALSE, 0);
-	gtk_box_pack_start (GTK_BOX (filter_bar), filter_bar->priv->category_op_combo_box, FALSE, FALSE, 0);
+	gtk_box_pack_start (GTK_BOX (filter_bar), filter_bar->priv->tag_op_combo_box, FALSE, FALSE, 0);
 	gtk_box_pack_start (GTK_BOX (filter_bar), filter_bar->priv->text_entry, FALSE, FALSE, 0);
-	gtk_box_pack_start (GTK_BOX (filter_bar), filter_bar->priv->choose_categories_button, FALSE, FALSE, 0);
+	gtk_box_pack_start (GTK_BOX (filter_bar), filter_bar->priv->choose_tags_button, FALSE, FALSE, 0);
 	gtk_box_pack_start (GTK_BOX (filter_bar), filter_bar->priv->size_combo_box, FALSE, FALSE, 0);
 	gtk_box_pack_start (GTK_BOX (filter_bar), filter_bar->priv->date_edit, FALSE, FALSE, 0);
 	gtk_box_pack_end (GTK_BOX (filter_bar), button, FALSE, FALSE, 0);
@@ -660,7 +660,7 @@ gth_filter_bar_get_filter (GthFilterBar *filter_bar)
 			test = gth_test_new_with_int (scope_type, op_data.op, op_data.negative, size);
 			break;
 		case GTH_TEST_SCOPE_KEYWORDS:
-			op_data = category_op_data[gtk_combo_box_get_active (GTK_COMBO_BOX (filter_bar->priv->category_op_combo_box))];
+			op_data = tag_op_data[gtk_combo_box_get_active (GTK_COMBO_BOX (filter_bar->priv->tag_op_combo_box))];
 			if (filter_bar->priv->match_all)
 				op_data.op = GTH_TEST_OP_CONTAINS_ALL;
 			else
diff --git a/src/gth-fullscreen.c b/src/gth-fullscreen.c
index 731f934..d6a3712 100644
--- a/src/gth-fullscreen.c
+++ b/src/gth-fullscreen.c
@@ -931,7 +931,7 @@ show_comment_on_image (GthFullscreen *fullscreen)
 	keywords = NULL;
 	if (cdata != NULL) {
 		comment = comments_get_comment_as_string (cdata, "\n", " - ");
-		keywords = comments_get_categories_as_string (cdata, ", ");
+		keywords = comments_get_tags_as_string (cdata, ", ");
 		comment_data_free (cdata);
 	}
 
@@ -1223,10 +1223,10 @@ viewer_key_press_cb (GtkWidget   *widget,
 		gth_window_edit_comment (GTH_WINDOW (fullscreen));
 		break;
 
-		/* Edit categories. */
+		/* Edit tags. */
 	case GDK_k:
 		_show_cursor__hide_comment (fullscreen);
-		gth_window_edit_categories (window);
+		gth_window_edit_tags (window);
 		break;
 
 		/* View/Hide comment */
@@ -1925,8 +1925,8 @@ gth_fullscreen_class_init (GthFullscreenClass *class)
 	window_class->save_pixbuf = gth_fullscreen_save_pixbuf;
 	window_class->exec_pixbuf_op = gth_fullscreen_exec_pixbuf_op;
 
-	window_class->set_categories_dlg = gth_fullscreen_set_categories_dlg;
-	window_class->get_categories_dlg = gth_fullscreen_get_categories_dlg;
+	window_class->set_tags_dlg = gth_fullscreen_set_tags_dlg;
+	window_class->get_tags_dlg = gth_fullscreen_get_tags_dlg;
 	window_class->set_comment_dlg = gth_fullscreen_set_comment_dlg;
 	window_class->get_comment_dlg = gth_fullscreen_get_comment_dlg;
 	window_class->reload_current_image = gth_fullscreen_reload_current_image;
@@ -1940,7 +1940,7 @@ gth_fullscreen_class_init (GthFullscreenClass *class)
 	window_class->step_animation = gth_fullscreen_step_animation;
 	/*
 	window_class->edit_comment = gth_fullscreen_edit_comment;
-	window_class->edit_categories = gth_fullscreen_edit_categories;
+	window_class->edit_tags = gth_fullscreen_edit_tags;
 	window_class->set_fullscreen = gth_fullscreen_set_fullscreen;
 	window_class->get_fullscreen = gth_fullscreen_get_fullscreen;
 	window_class->set_slideshow = gth_fullscreen_set_slideshow;
diff --git a/src/gth-viewer-ui.h b/src/gth-viewer-ui.h
index c14b8a0..d7038d6 100644
--- a/src/gth-viewer-ui.h
+++ b/src/gth-viewer-ui.h
@@ -52,7 +52,7 @@ static const gchar *viewer_window_ui_info =
 "      <menuitem action='Edit_Redo'/>"
 "      <separator name='sep01'/>"
 "      <menuitem action='Edit_EditComment'/>"
-"      <menuitem action='Edit_EditCategories'/>"
+"      <menuitem action='Edit_EditTags'/>"
 "      <separator/>"
 "      <menuitem action='Edit_AddToCatalog'/>"
 "    </menu>"
diff --git a/src/gth-viewer.c b/src/gth-viewer.c
index 7737667..4721ffe 100644
--- a/src/gth-viewer.c
+++ b/src/gth-viewer.c
@@ -32,7 +32,7 @@
 #include "jpegutils/jpeg-data.h"
 #include "comments.h"
 #include "dlg-save-image.h"
-#include "dlg-categories.h"
+#include "dlg-tags.h"
 #include "dlg-comment.h"
 #include "file-data.h"
 #include "file-utils.h"
@@ -1087,9 +1087,9 @@ viewer_key_press_cb (GtkWidget   *widget,
 		gth_window_edit_comment (GTH_WINDOW (viewer));
 		return TRUE;
 
-		/* Edit keywords */
+		/* Edit tags */
 	case GDK_k:
-		gth_window_edit_categories (GTH_WINDOW (viewer));
+		gth_window_edit_tags (GTH_WINDOW (viewer));
 		return TRUE;
 
 	default:
diff --git a/src/gth-window-actions-callbacks.c b/src/gth-window-actions-callbacks.c
index 5814f14..4a8aee2 100644
--- a/src/gth-window-actions-callbacks.c
+++ b/src/gth-window-actions-callbacks.c
@@ -40,7 +40,7 @@
 #include "dlg-brightness-contrast.h"
 #include "dlg-hue-saturation.h"
 #include "dlg-catalog.h"
-#include "dlg-categories.h"
+#include "dlg-tags.h"
 #include "dlg-change-date.h"
 #include "dlg-reset-exif.h"
 #include "dlg-comment.h"
@@ -271,10 +271,10 @@ gth_window_activate_action_edit_edit_comment (GtkAction *action,
 
 
 void
-gth_window_activate_action_edit_edit_categories (GtkAction *action,
-						 GthWindow *window)
+gth_window_activate_action_edit_edit_tags (GtkAction *action,
+                                           GthWindow *window)
 {
-	gth_window_edit_categories (window);
+	gth_window_edit_tags (window);
 }
 
 
diff --git a/src/gth-window-actions-callbacks.h b/src/gth-window-actions-callbacks.h
index cd5afd5..6c39b4a 100644
--- a/src/gth-window-actions-callbacks.h
+++ b/src/gth-window-actions-callbacks.h
@@ -36,7 +36,7 @@ DEFINE_ACTION(gth_window_activate_action_file_save_as)
 DEFINE_ACTION(gth_window_activate_action_file_revert)
 DEFINE_ACTION(gth_window_activate_action_file_print)
 DEFINE_ACTION(gth_window_activate_action_edit_edit_comment)
-DEFINE_ACTION(gth_window_activate_action_edit_edit_categories)
+DEFINE_ACTION(gth_window_activate_action_edit_edit_tags)
 DEFINE_ACTION(gth_window_activate_action_edit_undo)
 DEFINE_ACTION(gth_window_activate_action_edit_redo)
 DEFINE_ACTION(gth_window_activate_action_alter_image_rotate90)
diff --git a/src/gth-window-actions-entries.h b/src/gth-window-actions-entries.h
index 71b3985..a69ae57 100644
--- a/src/gth-window-actions-entries.h
+++ b/src/gth-window-actions-entries.h
@@ -86,15 +86,15 @@ static GtkActionEntry gth_window_action_entries[] = {
 	  N_("Add a comment to selected images"),
 	  G_CALLBACK (gth_window_activate_action_edit_edit_comment) },
 
-	{ "Edit_EditCategories", GTK_STOCK_INDEX,
-	  N_("Ca_tegories..."), "",
-	  N_("Assign categories to selected images"),
-	  G_CALLBACK (gth_window_activate_action_edit_edit_categories) },
-
-	{ "ToolBar_EditCategories", GTK_STOCK_INDEX,
-	  N_("Ca_tegories"), NULL,
-	  N_("Assign categories to selected images"),
-	  G_CALLBACK (gth_window_activate_action_edit_edit_categories) },
+	{ "Edit_EditTags", GTK_STOCK_INDEX,
+	  N_("T_ags..."), "",
+	  N_("Assign tags to selected images"),
+	  G_CALLBACK (gth_window_activate_action_edit_edit_tags) },
+
+	{ "ToolBar_EditTags", GTK_STOCK_INDEX,
+	  N_("T_ags"), NULL,
+	  N_("Assign tags to selected images"),
+	  G_CALLBACK (gth_window_activate_action_edit_edit_tags) },
 
 	{ "Edit_Undo", GTK_STOCK_UNDO,
 	  NULL, "<control>Z",
diff --git a/src/gth-window.c b/src/gth-window.c
index eab8014..96a08a1 100644
--- a/src/gth-window.c
+++ b/src/gth-window.c
@@ -26,7 +26,7 @@
 #include "gth-image-history.h"
 #include "gth-window.h"
 #include "dlg-comment.h"
-#include "dlg-categories.h"
+#include "dlg-tags.h"
 #include "main.h"
 
 enum {
@@ -42,7 +42,7 @@ struct _GthWindowPrivateData {
 	GtkWidget       *table;
 	GtkWidget       *contents;
 	GtkWidget       *comment_dlg;
-	GtkWidget       *categories_dlg;
+	GtkWidget       *tags_dlg;
 	gboolean         slideshow;
 	gboolean         fullscreen;
 	GthImageHistory *history;
@@ -242,7 +242,7 @@ gth_window_init (GthWindow *window)
 
 	priv->contents = NULL;
 	priv->comment_dlg = NULL;
-	priv->categories_dlg = NULL;
+	priv->tags_dlg = NULL;
 	priv->history = gth_image_history_new ();
 
 	window_list = g_list_prepend (window_list, window);
@@ -288,9 +288,9 @@ gth_window_close (GthWindow *window)
 		priv->comment_dlg = NULL;
 	}
 
-	if (priv->categories_dlg != NULL) {
-		dlg_categories_close (priv->categories_dlg);
-		priv->categories_dlg = NULL;
+	if (priv->tags_dlg != NULL) {
+		dlg_tags_close (priv->tags_dlg);
+		priv->tags_dlg = NULL;
 	}
 
 	class->close (window);
@@ -510,17 +510,17 @@ gth_window_attach (GthWindow     *window,
 
 
 void
-gth_window_set_categories_dlg (GthWindow *window,
-			       GtkWidget *dialog)
+gth_window_set_tags_dlg (GthWindow *window,
+                         GtkWidget *dialog)
 {
-	window->priv->categories_dlg = dialog;
+	window->priv->tags_dlg = dialog;
 }
 
 
 GtkWidget *
-gth_window_get_categories_dlg (GthWindow *window)
+gth_window_get_tags_dlg (GthWindow *window)
 {
-	return window->priv->categories_dlg;
+	return window->priv->tags_dlg;
 }
 
 
@@ -540,15 +540,15 @@ gth_window_get_comment_dlg (GthWindow *window)
 
 
 void
-gth_window_update_comment_categories_dlg (GthWindow *window)
+gth_window_update_comment_tags_dlg (GthWindow *window)
 {
 	GthWindowPrivateData *priv = window->priv;
 
 	if (priv->comment_dlg != NULL)
 		dlg_comment_update (priv->comment_dlg);
 
-	if (priv->categories_dlg != NULL)
-		dlg_categories_update (priv->categories_dlg);
+	if (priv->tags_dlg != NULL)
+		dlg_tags_update (priv->tags_dlg);
 }
 
 
@@ -622,14 +622,14 @@ gth_window_edit_comment (GthWindow *window)
 
 
 void
-gth_window_edit_categories (GthWindow *window)
+gth_window_edit_tags (GthWindow *window)
 {
 	GthWindowPrivateData *priv = window->priv;
 
-	if (priv->categories_dlg == NULL)
-		priv->categories_dlg = dlg_categories_new (window);
+	if (priv->tags_dlg == NULL)
+		priv->tags_dlg = dlg_tags_new (window);
 	else
-		gtk_window_present (GTK_WINDOW (priv->categories_dlg));
+		gtk_window_present (GTK_WINDOW (priv->tags_dlg));
 }
 
 
diff --git a/src/gth-window.h b/src/gth-window.h
index 23a734a..b021e7e 100644
--- a/src/gth-window.h
+++ b/src/gth-window.h
@@ -115,13 +115,13 @@ typedef enum {
 void           gth_window_attach                         (GthWindow     *window,
 							  GtkWidget     *child,
 							  GthWindowArea  area);
-void           gth_window_set_categories_dlg             (GthWindow   *window,
+void           gth_window_set_tags_dlg                   (GthWindow   *window,
 							  GtkWidget   *dialog);
-GtkWidget *    gth_window_get_categories_dlg             (GthWindow   *window);
+GtkWidget *    gth_window_get_tags_dlg                   (GthWindow   *window);
 void           gth_window_set_comment_dlg                (GthWindow   *window,
 							  GtkWidget   *dialog);
 GtkWidget *    gth_window_get_comment_dlg                (GthWindow   *window);
-void           gth_window_update_comment_categories_dlg  (GthWindow   *window);
+void           gth_window_update_comment_tags_dlg        (GthWindow   *window);
 void           gth_window_reload_current_image           (GthWindow   *window);
 void           gth_window_update_current_image_metadata  (GthWindow   *window);
 GList *        gth_window_get_file_list_selection        (GthWindow   *window);
@@ -131,7 +131,7 @@ void           gth_window_set_animation                  (GthWindow   *window,
 gboolean       gth_window_get_animation                  (GthWindow   *window);
 void           gth_window_step_animation                 (GthWindow   *window);
 void           gth_window_edit_comment                   (GthWindow   *window);
-void           gth_window_edit_categories                (GthWindow   *window);
+void           gth_window_edit_tags                      (GthWindow   *window);
 void           gth_window_set_fullscreen                 (GthWindow   *window,
 							  gboolean     value);
 gboolean       gth_window_get_fullscreen                 (GthWindow   *window);
diff --git a/src/main.c b/src/main.c
index b7a1568..393864b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -140,28 +140,28 @@ theme_changed_cb (GtkIconTheme *theme,
 
 
 static void
-create_default_categories_if_needed (void)
+create_default_tags_if_needed (void)
 {
-	Bookmarks *categories;
-	char      *default_categories[] = { N_("Holidays"),
-					    N_("Temporary"),
-					    N_("Screenshots"),
-					    N_("Science"),
-					    N_("Favourite"),
-					    N_("Important"),
-					    N_("GNOME"),
-					    N_("Games"),
-					    N_("Party"),
-					    N_("Birthday"),
-					    N_("Astronomy"),
-					    N_("Family"),
-					    NULL };
+	Bookmarks *tags;
+	char      *default_tags[] = { N_("Holidays"),
+				      N_("Temporary"),
+				      N_("Screenshots"),
+				      N_("Science"),
+				      N_("Favourite"),
+				      N_("Important"),
+				      N_("GNOME"),
+				      N_("Games"),
+				      N_("Party"),
+				      N_("Birthday"),
+				      N_("Astronomy"),
+				      N_("Family"),
+				      NULL };
 	int        i;
 	char      *path;
 
 	path = g_strconcat (g_get_home_dir (),
 			    "/",
-			    RC_CATEGORIES_FILE,
+			    RC_TAGS_FILE,
 			    NULL);
 	if (path_is_file (path)) {
 		g_free (path);
@@ -169,11 +169,11 @@ create_default_categories_if_needed (void)
 	}
 	g_free (path);
 
-	categories = bookmarks_new (RC_CATEGORIES_FILE);
-	for (i = 0; default_categories[i] != NULL; i++)
-		bookmarks_add (categories, _(default_categories[i]), TRUE, TRUE);
-	bookmarks_write_to_disk (categories);
-	bookmarks_free (categories);
+	tags = bookmarks_new (RC_TAGS_FILE);
+	for (i = 0; default_tags[i] != NULL; i++)
+		bookmarks_add (tags, _(default_tags[i]), TRUE, TRUE);
+	bookmarks_write_to_disk (tags);
+	bookmarks_free (tags);
 }
 
 
@@ -417,7 +417,7 @@ initialize_data (void)
 	int   i = 0;
 
 	convert_to_new_comment_system ();
-	create_default_categories_if_needed ();
+	create_default_tags_if_needed ();
 
 	eel_gconf_monitor_add ("/apps/gthumb");
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]