commit 2a4e5c8923d2697e74e5d2c02e556370e5ae90b0
Author: Marc Dequènes (Duck) <Duck@DuckCorp.org>
Date:   Sun Jun 6 17:09:59 2010 +0200

    [evol] added tags and fixes a few typos

diff --git a/app/controllers/admin/artworks_controller.rb b/app/controllers/admin/artworks_controller.rb
index 4ed60f9..2c12168 100644
--- a/app/controllers/admin/artworks_controller.rb
+++ b/app/controllers/admin/artworks_controller.rb
@@ -11,5 +11,6 @@ class Admin::ArtworksController < Admin::AdminController
     @artwork_conditions = ArtworkCondition.find(:all, :order => "position ASC")
     @artwork_placement_reasons = ArtworkPlacementReason.find(:all, :order => "name ASC")
     @artwork_supports = ArtworkSupport.find(:all, :order => "name ASC")
+    @tags = Tag.find(:all, :order => "name ASC")
   end
 end
diff --git a/app/controllers/admin/tags_controller.rb b/app/controllers/admin/tags_controller.rb
new file mode 100644
index 0000000..369acf4
--- /dev/null
+++ b/app/controllers/admin/tags_controller.rb
@@ -0,0 +1,3 @@
+class Admin::TagsController < Admin::AdminController
+  simple_rest_support
+end
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index a7b05df..2b6f980 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -145,7 +145,7 @@ module ApplicationHelper
   end
 
   def display_alert(text)
-    "<p>" + display_icon_tag('status/important', :large, :title => _("Alert !") ) +
+    "<p>" + display_icon_tag('status/important', :large, :title => _("Alert!") ) +
       "<span class=\"alert\">" + text + "</span></p>"
   end
 
@@ -217,12 +217,12 @@ module ApplicationHelper
     return if img.nil?
 
     if not img.exists?
-      return "<span class='error'>" + _("Missing Image !") + "</span>"
+      return "<span class='error'>" + _("Missing Image!") + "</span>"
     end
 
     thumb = img.thumbnail(size_name)
     if thumb.nil?
-      "<span class='error'>" + _("Missing Thumbnail !") + "</span>"
+      "<span class='error'>" + _("Missing Thumbnail!") + "</span>"
     else
       image_tag(img.public_filename(size_name))
     end
diff --git a/app/models/artwork.rb b/app/models/artwork.rb
index 35a1e68..4e88591 100644
--- a/app/models/artwork.rb
+++ b/app/models/artwork.rb
@@ -7,6 +7,7 @@ class Artwork < ActiveRecord::Base
   has_many :artwork_step_images, :order => "date ASC, position ASC, id DESC"
   has_and_belongs_to_many :artwork_supports, :order => "name ASC"
   has_and_belongs_to_many :artwork_materials, :order => "name ASC"
+  has_and_belongs_to_many :tags, :order => "name ASC"
 
   validates_presence_of :title, :artwork_size_id, :artwork_condition_id
   validates_uniqueness_of :title
diff --git a/app/models/tag.rb b/app/models/tag.rb
new file mode 100644
index 0000000..1fd57c8
--- /dev/null
+++ b/app/models/tag.rb
@@ -0,0 +1,7 @@
+class Tag < ActiveRecord::Base
+  has_and_belongs_to_many :artworks
+
+  validates_presence_of :name
+  validates_uniqueness_of :name
+  validates_length_of :name, :within => 1..32, :allow_blank => false
+end
diff --git a/app/views/admin/artworks/_form.rhtml b/app/views/admin/artworks/_form.rhtml
index 59262fb..eb230c3 100644
--- a/app/views/admin/artworks/_form.rhtml
+++ b/app/views/admin/artworks/_form.rhtml
@@ -27,6 +27,7 @@ stacking_form(f) do |table|
       render(:partial => 'admin/artwork_sizes/selector', :locals => {:form_object => resource_name, :form_field => "artwork_size_id", :selected => selected_artwork_size_id})
     cat.field :artwork_material_ids, _("Materials:"), :collection_select, @artwork_materials, :id, :name, {:include_blank => true}, {:multiple => true, :size => [@artwork_materials.size + 1, 10].min}
     cat.field :artwork_support_ids, _("Supports"), :collection_select, @artwork_supports, :id, :name, {:include_blank => true}, {:multiple => true, :size => [@artwork_supports.size + 1, 10].min}
+    cat.field :tag_ids, _("Tags"), :collection_select, @tags, :id, :name, {:include_blank => true}, {:multiple => true, :size => [@tags.size + 1, 20].min}
   end
   table.category _("Result") do |cat|
     cat.field :artwork_condition_id, _("Condition:"), :collection_select, @artwork_conditions, :id, :name
diff --git a/app/views/admin/artworks/show.rhtml b/app/views/admin/artworks/show.rhtml
index 120a6c5..df20777 100644
--- a/app/views/admin/artworks/show.rhtml
+++ b/app/views/admin/artworks/show.rhtml
@@ -30,6 +30,7 @@ stacking_table do |table|
   cat.content [_("Size:"), @artwork.artwork_size ? @artwork.artwork_size.human_size : ""]
   cat.content [_("Materials:"), display_list(@artwork.artwork_materials.collect{|t| t.name})]
   cat.content [_("Supports:"), display_list(@artwork.artwork_supports.collect{|t| t.name})]
+  cat.content [_("Tags:"), display_list(@artwork.tags.collect{|t| t.name})]
   end
   table.category _("Result") do |cat|
     cat.content [_("Condition:"), @artwork.artwork_condition.name]
diff --git a/app/views/admin/tags/_form.rhtml b/app/views/admin/tags/_form.rhtml
new file mode 100644
index 0000000..b6a0bea
--- /dev/null
+++ b/app/views/admin/tags/_form.rhtml
@@ -0,0 +1,14 @@
+<p>
+<%
+form_for_resource do |f|
+%>
+<%=
+stacking_form(f) do |table|
+  table.field :name, _("Name:"), :text_field
+  table.content display_standard_form_buttons(submit_label)
+end
+%>
+<%
+end
+%>
+</p>
diff --git a/app/views/admin/tags/edit.rhtml b/app/views/admin/tags/edit.rhtml
new file mode 100644
index 0000000..82b3136
--- /dev/null
+++ b/app/views/admin/tags/edit.rhtml
@@ -0,0 +1,5 @@
+<h2><%= _("Modify Tag") %></h2>
+
+<%= error_messages_for_resource %>
+
+<%= render :partial => "form", :locals => {:submit_label => _("Modify")} %>
diff --git a/app/views/admin/tags/index.rhtml b/app/views/admin/tags/index.rhtml
new file mode 100644
index 0000000..c563244
--- /dev/null
+++ b/app/views/admin/tags/index.rhtml
@@ -0,0 +1,13 @@
+<h2><%= _("List of Tags") %></h2>
+
+<p>
+  <table>
+    <tr><th><%= _("Name") %></th><th><%= _("Artworks count") %></th><th><%= _("Actions") %></th></tr>
+    <% @tags = resource_model.paginate(:all, :order => "name ASC", :page => params[:page]) %>
+    <% @tags.each do |tag| %>
+    <tr><td><%= tag.name %></td><td><%= tag.artworks.size %></td><td class="actions"><%= display_standard_item_actions(tag) %></span></td></tr>
+    <% end %>
+  </table>
+  <%= will_paginate @tags %>
+  <%= display_new_action %>
+</p>
diff --git a/app/views/admin/tags/new.rhtml b/app/views/admin/tags/new.rhtml
new file mode 100644
index 0000000..f17cec3
--- /dev/null
+++ b/app/views/admin/tags/new.rhtml
@@ -0,0 +1,5 @@
+<h2><%= _("New Tag") %></h2>
+
+<%= error_messages_for_resource %>
+
+<%= render :partial => "form", :locals => {:submit_label => _("Add")} %>
diff --git a/app/views/admin/tags/show.rhtml b/app/views/admin/tags/show.rhtml
new file mode 100644
index 0000000..7577662
--- /dev/null
+++ b/app/views/admin/tags/show.rhtml
@@ -0,0 +1,11 @@
+<h2><%= sprintf(_("Tag \#%u"), @artwork_set.id) %></h2>
+
+<p>
+<%=
+stacking_table do |table|
+  table.content [_("Name:"), @artwork_set.name]
+end
+%>
+<%= display_standard_item_actions %>
+</p>
+<p><%= link_to_resource_index _("Display all tags") %></p>
diff --git a/app/views/layouts/application.rhtml b/app/views/layouts/application.rhtml
index 231adb1..9514af7 100644
--- a/app/views/layouts/application.rhtml
+++ b/app/views/layouts/application.rhtml
@@ -35,6 +35,8 @@
 						<li><%= link_to _("Manage Artwork Sets & Groups"), admin_artwork_sets_url %></li>
 						<li><%= link_to _("Manage Artwork Sizes"), admin_artwork_sizes_url %></li>
 						<li><%= link_to _("Manage Artwork Supports"), admin_artwork_supports_url %></li>
+						<li>-------</li>
+						<li><%= link_to _("Manage Tags"), admin_tags_url %></li>
 <% if current_user.admin %>
 						<li>-------</li>
 						<li><%= link_to _("Manage Users"), admin_users_url %></li>
diff --git a/config/routes.rb b/config/routes.rb
index 8c02811..11c386e 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -29,7 +29,7 @@ ActionController::Routing::Routes.draw do |map|
 
   # See how all your routes lay out with "rake routes"
   map.namespace :admin do |admin|
-    admin.resources :artwork_sizes, :artwork_materials, :artwork_placement_reasons, :artwork_supports
+    admin.resources :artwork_sizes, :artwork_materials, :artwork_placement_reasons, :artwork_supports, :tags
     admin.resources :artwork_conditions, :member => {:move => :put}
     admin.resources :artwork_sets, :has_many => [ :artwork_groups ]
     admin.resources :artworks, :has_many => [ :artwork_step_images ]
diff --git a/po/MyCyma.pot b/po/MyCyma.pot
index a1e0740..a9f59e7 100644
--- a/po/MyCyma.pot
+++ b/po/MyCyma.pot
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: MyCyma 0.2.0\n"
-"POT-Creation-Date: 2010-04-03 18:07+0200\n"
+"POT-Creation-Date: 2010-06-06 17:09+0200\n"
 "PO-Revision-Date: 2008-07-28 02:17+0200\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -92,6 +92,14 @@ msgstr ""
 msgid "ArtworkSet|Comment"
 msgstr ""
 
+#: app/models/tag.rb:-
+msgid "tag"
+msgstr ""
+
+#: app/models/tag.rb:-
+msgid "Tag|Name"
+msgstr ""
+
 #: app/models/artwork_material.rb:-
 msgid "artwork material"
 msgstr ""
@@ -200,6 +208,10 @@ msgstr ""
 msgid "ArtworkStep|Date"
 msgstr ""
 
+#: app/models/artwork_step.rb:-
+msgid "ArtworkStep|Position"
+msgstr ""
+
 #: app/models/artwork_step.rb:-
 msgid "ArtworkStep|Artwork"
 msgstr ""
@@ -291,6 +303,7 @@ msgstr ""
 #: app/views/admin/artwork_sizes/edit.rhtml:5
 #: app/views/admin/artworks/edit.rhtml:5
 #: app/views/admin/artwork_groups/edit.rhtml:5
+#: app/views/admin/tags/edit.rhtml:5
 msgid "Modify"
 msgstr ""
 
@@ -327,7 +340,7 @@ msgid "Cancel"
 msgstr ""
 
 #: app/helpers/application_helper.rb:148
-msgid "Alert !"
+msgid "Alert!"
 msgstr ""
 
 #: app/helpers/application_helper.rb:183
@@ -356,6 +369,14 @@ msgstr ""
 msgid "Updated at:"
 msgstr ""
 
+#: app/helpers/application_helper.rb:220
+msgid "Missing Image!"
+msgstr ""
+
+#: app/helpers/application_helper.rb:225
+msgid "Missing Thumbnail!"
+msgstr ""
+
 #: app/controllers/application.rb:42
 msgid "Please login to continue"
 msgstr ""
@@ -423,27 +444,31 @@ msgstr ""
 msgid "Manage Artwork Supports"
 msgstr ""
 
-#: app/views/layouts/application.rhtml:40
+#: app/views/layouts/application.rhtml:39
+msgid "Manage Tags"
+msgstr ""
+
+#: app/views/layouts/application.rhtml:42
 msgid "Manage Users"
 msgstr ""
 
-#: app/views/layouts/application.rhtml:45
+#: app/views/layouts/application.rhtml:47
 msgid "About"
 msgstr ""
 
-#: app/views/layouts/application.rhtml:47
+#: app/views/layouts/application.rhtml:49
 msgid "Project page"
 msgstr ""
 
-#: app/views/layouts/application.rhtml:48
+#: app/views/layouts/application.rhtml:50
 msgid "Author site"
 msgstr ""
 
-#: app/views/layouts/application.rhtml:53
+#: app/views/layouts/application.rhtml:55
 msgid "Loggued in as '%s'"
 msgstr ""
 
-#: app/views/layouts/application.rhtml:54
+#: app/views/layouts/application.rhtml:56
 msgid "Not loggued in"
 msgstr ""
 
@@ -460,7 +485,7 @@ msgstr ""
 #: app/views/admin/artwork_sets/new.rhtml:5
 #: app/views/admin/artwork_sizes/new.rhtml:5
 #: app/views/admin/artworks/new.rhtml:5
-#: app/views/admin/artwork_groups/new.rhtml:5
+#: app/views/admin/artwork_groups/new.rhtml:5 app/views/admin/tags/new.rhtml:5
 msgid "Add"
 msgstr ""
 
@@ -469,12 +494,12 @@ msgid "Steps in Artwork '%s'"
 msgstr ""
 
 #: app/views/admin/artwork_step_images/index.rhtml:6
-#: app/views/admin/artwork_step_images/index.rhtml:30
+#: app/views/admin/artwork_step_images/index.rhtml:32
 msgid "Back to artworks list"
 msgstr ""
 
 #: app/views/admin/artwork_step_images/index.rhtml:10
-#: app/views/admin/artwork_step_images/index.rhtml:28
+#: app/views/admin/artwork_step_images/index.rhtml:30
 msgid "New artwork step"
 msgstr ""
 
@@ -483,11 +508,15 @@ msgid "Date"
 msgstr ""
 
 #: app/views/admin/artwork_step_images/index.rhtml:16
+msgid "Position"
+msgstr ""
+
+#: app/views/admin/artwork_step_images/index.rhtml:17
 #: app/views/admin/artworks/index.rhtml:9
 msgid "Preview"
 msgstr ""
 
-#: app/views/admin/artwork_step_images/index.rhtml:17
+#: app/views/admin/artwork_step_images/index.rhtml:18
 #: app/views/admin/users/index.rhtml:9
 #: app/views/admin/artwork_supports/index.rhtml:5
 #: app/views/admin/artwork_placement_reasons/index.rhtml:5
@@ -497,6 +526,7 @@ msgstr ""
 #: app/views/admin/artwork_sizes/index.rhtml:5
 #: app/views/admin/artworks/index.rhtml:11
 #: app/views/admin/artwork_groups/index.rhtml:5
+#: app/views/admin/tags/index.rhtml:5
 msgid "Actions"
 msgstr ""
 
@@ -534,12 +564,12 @@ msgid "Artwork Step Status"
 msgstr ""
 
 #: app/views/admin/artwork_step_images/show.rhtml:31
-#: app/views/admin/artworks/show.rhtml:44
+#: app/views/admin/artworks/show.rhtml:45
 msgid "Entry First Created:"
 msgstr ""
 
 #: app/views/admin/artwork_step_images/show.rhtml:32
-#: app/views/admin/artworks/show.rhtml:45
+#: app/views/admin/artworks/show.rhtml:46
 msgid "Entry Last Updated:"
 msgstr ""
 
@@ -548,12 +578,16 @@ msgid "Display all steps"
 msgstr ""
 
 #: app/views/admin/artwork_step_images/_form.rhtml:7
-#: app/views/admin/artworks/show.rhtml:39
-#: app/views/admin/artworks/_form.rhtml:37
+#: app/views/admin/artworks/show.rhtml:40
+#: app/views/admin/artworks/_form.rhtml:38
 msgid "Date:"
 msgstr ""
 
 #: app/views/admin/artwork_step_images/_form.rhtml:8
+msgid "Position:"
+msgstr ""
+
+#: app/views/admin/artwork_step_images/_form.rhtml:9
 msgid "Image:"
 msgstr ""
 
@@ -651,6 +685,7 @@ msgstr ""
 #: app/views/admin/artwork_conditions/index.rhtml:5
 #: app/views/admin/artwork_sets/index.rhtml:5
 #: app/views/admin/artwork_groups/index.rhtml:5
+#: app/views/admin/tags/index.rhtml:5
 msgid "Name"
 msgstr ""
 
@@ -674,6 +709,7 @@ msgstr ""
 #: app/views/admin/artwork_sets/_form.rhtml:7
 #: app/views/admin/artwork_groups/show.rhtml:6
 #: app/views/admin/artwork_groups/_form.rhtml:7
+#: app/views/admin/tags/show.rhtml:6 app/views/admin/tags/_form.rhtml:7
 msgid "Name:"
 msgstr ""
 
@@ -768,7 +804,7 @@ msgid "Artwork Set #%u"
 msgstr ""
 
 #: app/views/admin/artwork_sets/show.rhtml:13
-#: app/views/admin/artworks/show.rhtml:52
+#: app/views/admin/artworks/show.rhtml:53
 msgid "Display all sets"
 msgstr ""
 
@@ -853,7 +889,7 @@ msgid "Steps"
 msgstr ""
 
 #: app/views/admin/artworks/index.rhtml:24
-#: app/views/admin/artworks/show.rhtml:51
+#: app/views/admin/artworks/show.rhtml:52
 msgid "View Steps"
 msgstr ""
 
@@ -884,36 +920,40 @@ msgstr ""
 msgid "Supports:"
 msgstr ""
 
-#: app/views/admin/artworks/show.rhtml:34
-#: app/views/admin/artworks/_form.rhtml:31
-msgid "Result"
+#: app/views/admin/artworks/show.rhtml:33
+msgid "Tags:"
 msgstr ""
 
 #: app/views/admin/artworks/show.rhtml:35
 #: app/views/admin/artworks/_form.rhtml:32
-msgid "Condition:"
+msgid "Result"
 msgstr ""
 
 #: app/views/admin/artworks/show.rhtml:36
 #: app/views/admin/artworks/_form.rhtml:33
-msgid "Placement"
+msgid "Condition:"
 msgstr ""
 
 #: app/views/admin/artworks/show.rhtml:37
 #: app/views/admin/artworks/_form.rhtml:34
-msgid "Reason:"
+msgid "Placement"
 msgstr ""
 
 #: app/views/admin/artworks/show.rhtml:38
-#: app/views/admin/artworks/_form.rhtml:36
+#: app/views/admin/artworks/_form.rhtml:35
+msgid "Reason:"
+msgstr ""
+
+#: app/views/admin/artworks/show.rhtml:39
+#: app/views/admin/artworks/_form.rhtml:37
 msgid "Location:"
 msgstr ""
 
-#: app/views/admin/artworks/show.rhtml:42
+#: app/views/admin/artworks/show.rhtml:43
 msgid "Artwork Status"
 msgstr ""
 
-#: app/views/admin/artworks/show.rhtml:51
+#: app/views/admin/artworks/show.rhtml:52
 msgid "View all Steps"
 msgstr ""
 
@@ -941,6 +981,10 @@ msgstr ""
 msgid "Supports"
 msgstr ""
 
+#: app/views/admin/artworks/_form.rhtml:30
+msgid "Tags"
+msgstr ""
+
 #: app/views/admin/artworks/edit.rhtml:1
 msgid "Modify Artwork"
 msgstr ""
@@ -969,6 +1013,30 @@ msgstr ""
 msgid "Modify Artwork Group"
 msgstr ""
 
+#: app/views/admin/tags/new.rhtml:1
+msgid "New Tag"
+msgstr ""
+
+#: app/views/admin/tags/index.rhtml:1
+msgid "List of Tags"
+msgstr ""
+
+#: app/views/admin/tags/index.rhtml:5
+msgid "Artworks count"
+msgstr ""
+
+#: app/views/admin/tags/show.rhtml:1
+msgid "Tag #%u"
+msgstr ""
+
+#: app/views/admin/tags/show.rhtml:11
+msgid "Display all tags"
+msgstr ""
+
+#: app/views/admin/tags/edit.rhtml:1
+msgid "Modify Tag"
+msgstr ""
+
 #: app/views/view/group.rhtml:1
 msgid "View of group '%s'"
 msgstr ""
@@ -977,7 +1045,7 @@ msgstr ""
 msgid "This group is part of the '%s' set."
 msgstr ""
 
-#: app/views/view/group.rhtml:7 app/views/view/set.rhtml:11
+#: app/views/view/group.rhtml:7 app/views/view/set.rhtml:3
 msgid "Artworks:"
 msgstr ""
 
@@ -997,7 +1065,7 @@ msgstr ""
 msgid "View of set '%s'"
 msgstr ""
 
-#: app/views/view/set.rhtml:3
+#: app/views/view/set.rhtml:12
 msgid "Groups:"
 msgstr ""
 
diff --git a/po/fr/MyCyma.po b/po/fr/MyCyma.po
index fbef74f..1f7e35d 100644
--- a/po/fr/MyCyma.po
+++ b/po/fr/MyCyma.po
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: MyCyma 0.2.0\n"
-"POT-Creation-Date: 2010-04-03 18:07+0200\n"
+"POT-Creation-Date: 2010-06-06 17:09+0200\n"
 "PO-Revision-Date: 2008-07-28 02:17+0200\n"
 "Last-Translator: Marc Dequènes (Duck) <Duck@DuckCorp.org>\n"
 "MIME-Version: 1.0\n"
@@ -91,6 +91,14 @@ msgstr "Serie|Mise à jour le"
 msgid "ArtworkSet|Comment"
 msgstr "Serie|Comentaire"
 
+#: app/models/tag.rb:-
+msgid "tag"
+msgstr "tag"
+
+#: app/models/tag.rb:-
+msgid "Tag|Name"
+msgstr "Tag|Nom"
+
 #: app/models/artwork_material.rb:-
 msgid "artwork material"
 msgstr "matériau de l'œuvre"
@@ -199,6 +207,10 @@ msgstr "EtapeOeuvre|Nom du fichier"
 msgid "ArtworkStep|Date"
 msgstr "EtapeOeuvre|Date"
 
+#: app/models/artwork_step.rb:-
+msgid "ArtworkStep|Position"
+msgstr "EtapeOeuvre|Position"
+
 #: app/models/artwork_step.rb:-
 msgid "ArtworkStep|Artwork"
 msgstr "EtapeOeuvre|Œuvre"
@@ -290,6 +302,7 @@ msgstr "est invalide, car ce couple (hauteur, largeur) existe déjà"
 #: app/views/admin/artwork_sizes/edit.rhtml:5
 #: app/views/admin/artworks/edit.rhtml:5
 #: app/views/admin/artwork_groups/edit.rhtml:5
+#: app/views/admin/tags/edit.rhtml:5
 msgid "Modify"
 msgstr "Modifier"
 
@@ -326,7 +339,7 @@ msgid "Cancel"
 msgstr "Annuler"
 
 #: app/helpers/application_helper.rb:148
-msgid "Alert !"
+msgid "Alert!"
 msgstr "Alerte !"
 
 #: app/helpers/application_helper.rb:183
@@ -355,6 +368,14 @@ msgstr "Créé(e) le :"
 msgid "Updated at:"
 msgstr "Mis(e) à jour le :"
 
+#: app/helpers/application_helper.rb:220
+msgid "Missing Image!"
+msgstr "Image Manquante!"
+
+#: app/helpers/application_helper.rb:225
+msgid "Missing Thumbnail!"
+msgstr "Vignette manquante !"
+
 #: app/controllers/application.rb:42
 msgid "Please login to continue"
 msgstr "Veuillez vous identifier pour continuer"
@@ -425,27 +446,31 @@ msgstr "Gérer les Dimensions des Œuvres"
 msgid "Manage Artwork Supports"
 msgstr "Gérer les Supports"
 
-#: app/views/layouts/application.rhtml:40
+#: app/views/layouts/application.rhtml:39
+msgid "Manage Tags"
+msgstr "Gérer les Tags"
+
+#: app/views/layouts/application.rhtml:42
 msgid "Manage Users"
 msgstr "Gérer les Utilisateurs"
 
-#: app/views/layouts/application.rhtml:45
+#: app/views/layouts/application.rhtml:47
 msgid "About"
 msgstr "À Propos"
 
-#: app/views/layouts/application.rhtml:47
+#: app/views/layouts/application.rhtml:49
 msgid "Project page"
 msgstr "Page du Projet"
 
-#: app/views/layouts/application.rhtml:48
+#: app/views/layouts/application.rhtml:50
 msgid "Author site"
 msgstr "Site de l'auteur"
 
-#: app/views/layouts/application.rhtml:53
+#: app/views/layouts/application.rhtml:55
 msgid "Loggued in as '%s'"
 msgstr "Identifié en '%s'"
 
-#: app/views/layouts/application.rhtml:54
+#: app/views/layouts/application.rhtml:56
 msgid "Not loggued in"
 msgstr "Non identifié"
 
@@ -462,7 +487,7 @@ msgstr "Nouvelle Étape de l'Œuvre"
 #: app/views/admin/artwork_sets/new.rhtml:5
 #: app/views/admin/artwork_sizes/new.rhtml:5
 #: app/views/admin/artworks/new.rhtml:5
-#: app/views/admin/artwork_groups/new.rhtml:5
+#: app/views/admin/artwork_groups/new.rhtml:5 app/views/admin/tags/new.rhtml:5
 msgid "Add"
 msgstr "Ajouter"
 
@@ -471,12 +496,12 @@ msgid "Steps in Artwork '%s'"
 msgstr "Étapes de l'Œuvre '%s'"
 
 #: app/views/admin/artwork_step_images/index.rhtml:6
-#: app/views/admin/artwork_step_images/index.rhtml:30
+#: app/views/admin/artwork_step_images/index.rhtml:32
 msgid "Back to artworks list"
 msgstr "Retour à la liste des œuvres"
 
 #: app/views/admin/artwork_step_images/index.rhtml:10
-#: app/views/admin/artwork_step_images/index.rhtml:28
+#: app/views/admin/artwork_step_images/index.rhtml:30
 msgid "New artwork step"
 msgstr "Nouvelle étape de l'œuvre"
 
@@ -485,11 +510,15 @@ msgid "Date"
 msgstr "Date"
 
 #: app/views/admin/artwork_step_images/index.rhtml:16
+msgid "Position"
+msgstr "Position"
+
+#: app/views/admin/artwork_step_images/index.rhtml:17
 #: app/views/admin/artworks/index.rhtml:9
 msgid "Preview"
 msgstr "Prévisualisation"
 
-#: app/views/admin/artwork_step_images/index.rhtml:17
+#: app/views/admin/artwork_step_images/index.rhtml:18
 #: app/views/admin/users/index.rhtml:9
 #: app/views/admin/artwork_supports/index.rhtml:5
 #: app/views/admin/artwork_placement_reasons/index.rhtml:5
@@ -499,6 +528,7 @@ msgstr "Prévisualisation"
 #: app/views/admin/artwork_sizes/index.rhtml:5
 #: app/views/admin/artworks/index.rhtml:11
 #: app/views/admin/artwork_groups/index.rhtml:5
+#: app/views/admin/tags/index.rhtml:5
 msgid "Actions"
 msgstr "Actions"
 
@@ -536,12 +566,12 @@ msgid "Artwork Step Status"
 msgstr "État de l'Étape"
 
 #: app/views/admin/artwork_step_images/show.rhtml:31
-#: app/views/admin/artworks/show.rhtml:44
+#: app/views/admin/artworks/show.rhtml:45
 msgid "Entry First Created:"
 msgstr "Entrée Initialement Créée :"
 
 #: app/views/admin/artwork_step_images/show.rhtml:32
-#: app/views/admin/artworks/show.rhtml:45
+#: app/views/admin/artworks/show.rhtml:46
 msgid "Entry Last Updated:"
 msgstr "Entrée Dernièrement Mise à jour :"
 
@@ -550,12 +580,16 @@ msgid "Display all steps"
 msgstr "Afficher toutes les étapes"
 
 #: app/views/admin/artwork_step_images/_form.rhtml:7
-#: app/views/admin/artworks/show.rhtml:39
-#: app/views/admin/artworks/_form.rhtml:37
+#: app/views/admin/artworks/show.rhtml:40
+#: app/views/admin/artworks/_form.rhtml:38
 msgid "Date:"
 msgstr "Date :"
 
 #: app/views/admin/artwork_step_images/_form.rhtml:8
+msgid "Position:"
+msgstr "Position :"
+
+#: app/views/admin/artwork_step_images/_form.rhtml:9
 msgid "Image:"
 msgstr "Image :"
 
@@ -653,6 +687,7 @@ msgstr "Liste des Supports"
 #: app/views/admin/artwork_conditions/index.rhtml:5
 #: app/views/admin/artwork_sets/index.rhtml:5
 #: app/views/admin/artwork_groups/index.rhtml:5
+#: app/views/admin/tags/index.rhtml:5
 msgid "Name"
 msgstr "Nom"
 
@@ -676,6 +711,7 @@ msgstr "Support n°%u"
 #: app/views/admin/artwork_sets/_form.rhtml:7
 #: app/views/admin/artwork_groups/show.rhtml:6
 #: app/views/admin/artwork_groups/_form.rhtml:7
+#: app/views/admin/tags/show.rhtml:6 app/views/admin/tags/_form.rhtml:7
 msgid "Name:"
 msgstr "Nom :"
 
@@ -770,7 +806,7 @@ msgid "Artwork Set #%u"
 msgstr "Série n°%u"
 
 #: app/views/admin/artwork_sets/show.rhtml:13
-#: app/views/admin/artworks/show.rhtml:52
+#: app/views/admin/artworks/show.rhtml:53
 msgid "Display all sets"
 msgstr "Afficher toutes les Séries"
 
@@ -855,7 +891,7 @@ msgid "Steps"
 msgstr "Étapes"
 
 #: app/views/admin/artworks/index.rhtml:24
-#: app/views/admin/artworks/show.rhtml:51
+#: app/views/admin/artworks/show.rhtml:52
 msgid "View Steps"
 msgstr "Voir les Étapes"
 
@@ -886,36 +922,40 @@ msgstr "Matériaux :"
 msgid "Supports:"
 msgstr "Supports :"
 
-#: app/views/admin/artworks/show.rhtml:34
-#: app/views/admin/artworks/_form.rhtml:31
-msgid "Result"
-msgstr "Résultat"
+#: app/views/admin/artworks/show.rhtml:33
+msgid "Tags:"
+msgstr "tags :"
 
 #: app/views/admin/artworks/show.rhtml:35
 #: app/views/admin/artworks/_form.rhtml:32
-msgid "Condition:"
-msgstr "État :"
+msgid "Result"
+msgstr "Résultat"
 
 #: app/views/admin/artworks/show.rhtml:36
 #: app/views/admin/artworks/_form.rhtml:33
-msgid "Placement"
-msgstr "Placement"
+msgid "Condition:"
+msgstr "État :"
 
 #: app/views/admin/artworks/show.rhtml:37
 #: app/views/admin/artworks/_form.rhtml:34
+msgid "Placement"
+msgstr "Placement"
+
+#: app/views/admin/artworks/show.rhtml:38
+#: app/views/admin/artworks/_form.rhtml:35
 msgid "Reason:"
 msgstr "Raison :"
 
-#: app/views/admin/artworks/show.rhtml:38
-#: app/views/admin/artworks/_form.rhtml:36
+#: app/views/admin/artworks/show.rhtml:39
+#: app/views/admin/artworks/_form.rhtml:37
 msgid "Location:"
 msgstr "Lieu :"
 
-#: app/views/admin/artworks/show.rhtml:42
+#: app/views/admin/artworks/show.rhtml:43
 msgid "Artwork Status"
 msgstr "État de l'Œuvre"
 
-#: app/views/admin/artworks/show.rhtml:51
+#: app/views/admin/artworks/show.rhtml:52
 msgid "View all Steps"
 msgstr "Voir toutes les Étapes"
 
@@ -943,6 +983,10 @@ msgstr "Position dans l'Ensemble :"
 msgid "Supports"
 msgstr "Supports"
 
+#: app/views/admin/artworks/_form.rhtml:30
+msgid "Tags"
+msgstr "Tags"
+
 #: app/views/admin/artworks/edit.rhtml:1
 msgid "Modify Artwork"
 msgstr "Modifier l'Œuvre"
@@ -971,6 +1015,30 @@ msgstr "Voir tous les ensembles"
 msgid "Modify Artwork Group"
 msgstr "Modifier l'Ensemble"
 
+#: app/views/admin/tags/new.rhtml:1
+msgid "New Tag"
+msgstr "Nouveau Tag"
+
+#: app/views/admin/tags/index.rhtml:1
+msgid "List of Tags"
+msgstr "Liste des Tags"
+
+#: app/views/admin/tags/index.rhtml:5
+msgid "Artworks count"
+msgstr "Compte des œuvres"
+
+#: app/views/admin/tags/show.rhtml:1
+msgid "Tag #%u"
+msgstr "Tag #%u"
+
+#: app/views/admin/tags/show.rhtml:11
+msgid "Display all tags"
+msgstr "Afficher toutes les tags"
+
+#: app/views/admin/tags/edit.rhtml:1
+msgid "Modify Tag"
+msgstr "Modifier le Tag"
+
 #: app/views/view/group.rhtml:1
 msgid "View of group '%s'"
 msgstr "Vue de l'ensemble '%s'"
@@ -979,7 +1047,7 @@ msgstr "Vue de l'ensemble '%s'"
 msgid "This group is part of the '%s' set."
 msgstr "Cet ensemble fait partie de la série '%s'"
 
-#: app/views/view/group.rhtml:7 app/views/view/set.rhtml:11
+#: app/views/view/group.rhtml:7 app/views/view/set.rhtml:3
 msgid "Artworks:"
 msgstr "Œuvres :"
 
@@ -999,7 +1067,7 @@ msgstr "Cette œuvre fait partie de l'ensemble '%s'"
 msgid "View of set '%s'"
 msgstr "Vue de la série '%s'"
 
-#: app/views/view/set.rhtml:3
+#: app/views/view/set.rhtml:12
 msgid "Groups:"
 msgstr "Ensembles :"
 
