Index: /extensions/pLoader/trunk/src/Uploader/GUI/wxApp.pm
===================================================================
--- /extensions/pLoader/trunk/src/Uploader/GUI/wxApp.pm	(revision 4151)
+++ /extensions/pLoader/trunk/src/Uploader/GUI/wxApp.pm	(revision 4152)
@@ -104,4 +104,10 @@
           chunk_size
           layout_clean
+          colors
+          eng_colors
+          positions
+          eng_positions
+          default_photo_names
+          eng_default_photo_names
       / 
 );
@@ -211,4 +217,5 @@
     
     $self->init_locale;
+    $self->_init_localized_properties;
 
     my $not_exit = $self->Login();
@@ -228,4 +235,57 @@
 
     $not_exit;
+}
+
+# some properties are displayed in choice list, with translated strings
+# the translation has to be reverted to store a language independant value
+sub _init_localized_properties {
+    my ( $self ) = @_;
+
+    $self->colors(
+        ['Black', 'White']
+    );
+    # We need to translate back to english when we store properties
+    $self->eng_colors(
+        {
+            map { gettext($_) => $_ } @{$self->colors} 
+        }
+    );
+    $self->positions(
+        [
+            'Top',
+            'Left',
+            'Right',
+            'Bottom',
+            'Top left',
+            'Top right',
+            'Bottom left',
+            'Bottom right',
+            'Center',
+        ]
+    );
+
+    $self->eng_positions(
+        { 
+             map { gettext($_) => $_ } @{$self->positions} 
+        }
+    );
+
+    $self->default_photo_names(
+        [
+             'None',
+             'File name',
+             'File path and name',
+             'Prefix',
+             'Prefix + rank number',
+             'Rank number + prefix',
+             'Prefix + create date chrono',
+             'Create date chrono + prefix',
+        ]
+    );
+    $self->eng_default_photo_names(
+        {
+             map { gettext($_) => $_ } @{$self->default_photo_names} 
+        }
+    );
 }
 
@@ -425,5 +485,5 @@
         storable_file    => $self->storable_file,
         userdata_dir     => $self->userdata_dir,
-        default_photo_name => gettext('File name'),
+        default_photo_name => 'File name',
         default_name_prefix => gettext('Photo '),
         upload_rejects   =>  [],
@@ -436,8 +496,8 @@
         watermark_text => gettext("my watermark"),
         watermark_text_size => 12,
-        watermark_position => gettext("Center"),
+        watermark_position => 'Center',
         watermark_y => 10,
         watermark_x => 10,
-        watermark_color => gettext("White"),
+        watermark_color => 'White',
     };
 
Index: /extensions/pLoader/trunk/src/Uploader/GUI/wxFrameAUI.pm
===================================================================
--- /extensions/pLoader/trunk/src/Uploader/GUI/wxFrameAUI.pm	(revision 4151)
+++ /extensions/pLoader/trunk/src/Uploader/GUI/wxFrameAUI.pm	(revision 4152)
@@ -275,6 +275,7 @@
         [
             {
-                label => gettext("Photo caption :"),
-                value => sub { $self->imagelist->current_image->site_name(@_) },
+                label          => gettext("Photo caption :"),
+                value          => sub { $self->imagelist->current_image->site_name(@_) },
+                frame_callback => sub { $self->imageviewer->Refresh() },
             },
             {
@@ -367,13 +368,7 @@
                 value	=> sub { $self->imagelist->default_photo_name(@_) },
                 choice  => [
-                                  gettext('None'),
-                                  gettext('File name'),
-                                  gettext('File path and name'),
-                                  gettext('Prefix'),
-                                  gettext('Prefix + rank number'),
-                                  gettext('Rank number + prefix'),
-                                  gettext('Prefix + create date chrono'),
-                                  gettext('Create date chrono + prefix'),
-                              ],
+                               map { gettext $_ } @{wxTheApp->default_photo_names}
+                           ],
+                pre_process => sub { my ( $value ) = @_; wxTheApp->eng_default_photo_names->{$value} },
             },
             {
@@ -515,9 +510,9 @@
                 label     => gettext("Color :"),
                 type      => 'Choice',
-                value   => sub { $self->imagelist->watermark_color(@_) },
-                choice  => [
-                                  gettext("White"),
-                                  gettext("Black"),
-                           ],
+                value     => sub { $self->imagelist->watermark_color(@_) },
+                choice    => [
+                               map { gettext $_ } @{wxTheApp->colors}
+                             ],
+                pre_process => sub { my ( $value ) = @_; wxTheApp->eng_colors->{$value} },
             },            
             {
@@ -526,14 +521,7 @@
                 value   => sub { $self->imagelist->watermark_position(@_) },
                 choice  => [
-                                  gettext("Top"),
-                                  gettext("Top left"),
-                                  gettext("Top right"),
-                                  gettext("Bottom"),
-                                  gettext("Bottom left"),
-                                  gettext("Bottom right"),
-                                  gettext("Center"),
-                                  gettext("Left"),
-                                  gettext("Right"),
+                               map { gettext $_ } @{wxTheApp->positions}
                            ],
+                pre_process => sub { my ( $value ) = @_; wxTheApp->eng_positions->{$value} },
             },
             {
@@ -686,9 +674,4 @@
                 parentwnd       => $self,
                 properties      => $self->piwigo_properties,
-                frame_callbacks => [ 
-                                          sub {
-                                              $self->imageviewer->Refresh();
-                                          },
-                	           ],
             }
         )
@@ -699,5 +682,4 @@
             { 
                 parentwnd       => $self,
-                frame_callbacks => [],
                 properties      => $self->exif_properties,
             }
@@ -711,5 +693,4 @@
                 parentwnd       => $self,
                 properties      => $self->general_settings,
-                frame_callbacks => [], 
             }
         )
@@ -721,5 +702,4 @@
                 parentwnd       => $self,
                 properties      => $self->resized_settings,
-                frame_callbacks => [],
 
             }
@@ -732,5 +712,4 @@
                 parentwnd       => $self,
                 properties      => $self->thumbnail_settings,
-                frame_callbacks => [],
 
             }
@@ -742,5 +721,4 @@
                 parentwnd       => $self,
                 properties      => $self->preview_settings,
-                frame_callbacks => [],
 
             }
@@ -753,5 +731,4 @@
                 parentwnd       => $self,
                 properties      => $self->advanced_settings,
-                frame_callbacks => [],
 
             }
@@ -764,5 +741,4 @@
                 parentwnd   => $self,
                 properties  => $self->watermark_settings,
-                frame_callbacks => [],
             }
         )
Index: /extensions/pLoader/trunk/src/Uploader/GUI/wxImageListCtrl.pm
===================================================================
--- /extensions/pLoader/trunk/src/Uploader/GUI/wxImageListCtrl.pm	(revision 4151)
+++ /extensions/pLoader/trunk/src/Uploader/GUI/wxImageListCtrl.pm	(revision 4152)
@@ -29,4 +29,5 @@
              wxLC_EDIT_LABELS
              wxLC_ICON
+             wxLC_SMALL_ICON
              wxIMAGE_LIST_NORMAL
              wxBITMAP_TYPE_JPEG
Index: /extensions/pLoader/trunk/src/Uploader/GUI/wxPropertyGridPanel.pm
===================================================================
--- /extensions/pLoader/trunk/src/Uploader/GUI/wxPropertyGridPanel.pm	(revision 4151)
+++ /extensions/pLoader/trunk/src/Uploader/GUI/wxPropertyGridPanel.pm	(revision 4152)
@@ -24,5 +24,5 @@
              wxDefaultPosition
          /;
-
+use Wx::Locale qw/:default/;
 use base qw/Wx::Grid Uploader::Object2/;
 
@@ -31,8 +31,6 @@
 /;
 use Data::Dumper;
-
 __PACKAGE__->mk_accessors(     
     qw/
-        frame_callbacks
         renderer
         editor
@@ -75,9 +73,4 @@
     );
     
-    # a frame callback for each property
-    $self->frame_callbacks(
-        $params->{frame_callbacks}
-    );
-    
     $self->Initialize;
       
@@ -121,5 +114,5 @@
     	        $row,
     	        1,
-    	        $_->{value}->(),
+    	        exists $_->{choice} ? gettext($_->{value}->()) : $_->{value}->(),
     	    );	
 
@@ -173,5 +166,5 @@
     	        $row,
     	        1,
-    	        $_->{value}->(),
+    	        exists $_->{choice} ? gettext($_->{value}->()) : $_->{value}->(),
     	    );	
 
@@ -201,10 +194,15 @@
     );
 
+    # if we need to preprocess the value
+    $value = $self->properties->[$row]->{pre_process}->($value) if exists
+        $self->properties->[$row]->{pre_process}; 
+
     # set property
     $self->properties->[$row]->{value}->($value);
-
+printf("property value %s\n",     $self->properties->[$row]->{value}->());
     
     # execute the corresponding frame callback
-    $self->frame_callbacks->[$row]->() if defined $self->frame_callbacks->[$row];
+    $self->properties->[$row]->{frame_callback}->() if exists
+        $self->properties->[$row]->{frame_callback}; 
 }
 
Index: /extensions/pLoader/trunk/src/Uploader/ImageList.pm
===================================================================
--- /extensions/pLoader/trunk/src/Uploader/ImageList.pm	(revision 4151)
+++ /extensions/pLoader/trunk/src/Uploader/ImageList.pm	(revision 4152)
@@ -112,13 +112,13 @@
     $self->gravity(
         { 
-            gettext("Top") => 'North',
-            gettext("Left") => 'West',
-            gettext("Right") => 'East',
-            gettext("Bottom") => 'South',
-            gettext("Top left") => 'NorthWest',
-            gettext("Top right") => 'NorthEast',
-            gettext("Bottom left") => 'SouthWest',
-            gettext("Bottom right") => 'SouthEast',
-            gettext("Center") => 'Center',
+            'Top'          => 'North',
+            'Left'         => 'West',
+            'Right'        => 'East',
+            'Bottom'       => 'South',
+            'Top left'     => 'NorthWest',
+            'Top right'    => 'NorthEast',
+            'Bottom left'  => 'SouthWest',
+            'Bottom right' => 'SouthEast',
+            'Center'       => 'Center',
        }   
     );    
@@ -126,6 +126,6 @@
     $self->rgbcolor(
         {
-            gettext("White") => '#FFFFFF',
-            gettext("Black") => '#000000',
+            "White" => '#FFFFFF',
+            "Black" => '#000000',
         }    
     );
@@ -344,11 +344,11 @@
   
     my $chrono = join('', $yyyy, $mm, $dd);
-    if(gettext('Prefix') eq $self->default_photo_name){
+    if('Prefix' eq $self->default_photo_name){
     	$name = $self->default_name_prefix
     }
-    elsif(gettext('File name') eq $self->default_photo_name){
+    elsif('File name' eq $self->default_photo_name){
     	$name = $filename
     }
-    elsif(gettext('File path and name') eq $self->default_photo_name){
+    elsif('File path and name' eq $self->default_photo_name){
         $name = sprintf(
             "%s", 
@@ -356,5 +356,5 @@
         )    	
     }	
-    elsif(gettext('Prefix + rank number') eq $self->default_photo_name){
+    elsif('Prefix + rank number' eq $self->default_photo_name){
         $name = sprintf(
             "%s%s", 
@@ -363,5 +363,5 @@
         )    	
     }	
-    elsif(gettext('Rank number + prefix') eq $self->default_photo_name){
+    elsif('Rank number + prefix' eq $self->default_photo_name){
         $name = sprintf(
             "%s%s", 
@@ -370,5 +370,5 @@
         )    	
     }	
-    elsif(gettext('Prefix + create date chrono') eq $self->default_photo_name){
+    elsif('Prefix + create date chrono' eq $self->default_photo_name){
         $name = sprintf(
             "%s%s", 
@@ -377,5 +377,5 @@
         )    	
     }	
-    elsif(gettext('Create date chrono + prefix') eq $self->default_photo_name){
+    elsif('Create date chrono + prefix' eq $self->default_photo_name){
         $name = sprintf(
             "%s%s", 
