diff -r -u MTOS-4.3-ru/Changelog-ru.txt MTOS-4.31-ru/Changelog-ru.txt
--- MTOS-4.3-ru/Changelog-ru.txt	2009-07-31 15:05:05.000000000 +0400
+++ MTOS-4.31-ru/Changelog-ru.txt	2009-08-22 15:10:01.000000000 +0400
@@ -1,5 +1,9 @@
 = Список изменений в Movable Type RU =
 
+== 22 августа 2009 года — версия 4.31 ==
+ * Core-изменения: http://www.movabletype.org/documentation/appendices/release-notes/431.html
+ * Обновлён языковой файл до версии 4.31
+
 == 31 июля 2009 года — версия 4.3 ==
  * Множество Core-изменений: http://www.movabletype.org/documentation/appendices/release-notes/43.html
  * Обновлён языковой файл до версии 4.3.
diff -r -u MTOS-4.3-ru/lib/MT/App/Search.pm MTOS-4.31-ru/lib/MT/App/Search.pm
--- MTOS-4.3-ru/lib/MT/App/Search.pm	2009-07-31 02:44:42.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/App/Search.pm	2009-08-06 22:58:57.000000000 +0400
@@ -2,7 +2,7 @@
 # This program is distributed under the terms of the
 # GNU General Public License, version 2.
 #
-# $Id: Search.pm 3696 2009-05-12 19:07:31Z jmarcotte $
+# $Id: Search.pm 4135 2009-08-06 18:58:57Z plim $
 
 package MT::App::Search;
 
@@ -65,7 +65,10 @@
                     text_more => 'like'
                 },
                 'sort' => 'authored_on',
-                terms  => { status => 2, class => '*' }, #MT::Entry::RELEASE()
+                terms  => { 
+                    status => 2,  #MT::Entry::RELEASE()
+                    class => $app->param('archive_type') ? 'entry' : '*', 
+                },
                 filter_types => {
                     author   => \&_join_author,
                     category => \&_join_category,
@@ -721,24 +724,47 @@
         $tmpl->text( $app->translate_templatized( $tmpl->text ) );
     }
     else {
-
         my $tmpl_id = $q->param ('template_id');
         if ($tmpl_id && $tmpl_id =~ /^\d+$/) {
             $tmpl = $app->model('template')->lookup ($tmpl_id);
+            return $app->errtrans( 'No such template' )
+                unless ($tmpl);
+            return $app->errtrans( 'template_id cannot be a global template' )
+                if ($tmpl->blog_id == 0);
+            return $app->errtrans( 'Output file cannot be asp or php' )
+                if ($tmpl->outfile && !$app->config->SearchAlwaysAllowTemplateID 
+                    && ($tmpl->outfile =~ /\.asp/i || $tmpl->outfile =~ /\.php/i));
+
+            if ($q->param('archive_type')) {
+                my $at = $q->param('archive_type');
+                my $archiver = MT->publisher->archiver($at);
+                return return $app->errtrans( 'You must pass a valid archive_type with the template_id' )
+                    unless ($archiver || $at eq 'Index');
+
+                if ($at ne 'Index') {
+                    return $app->errtrans( 'Template must have identifier entry_listing for non-Index archive types' )
+                        unless ($app->config->SearchAlwaysAllowTemplateID || $tmpl->identifier eq 'entry_listing');
+                    my $blog = $app->model('blog')->load($tmpl->blog_id);
+                    return $app->errtrans( 'Blog file extension cannot be asp or php for these archives' )
+                        if (!$app->config->SearchAlwaysAllowTemplateID
+                            && ($blog->file_extension =~ /^php$/i || $blog->file_extension =~ /^asp$/i));
+                } else {
+                    return $app->errtrans( 'Template must have identifier main_index for Index archive type' )
+                        unless ($app->config->SearchAlwaysAllowTemplateID || $tmpl->identifier eq 'main_index');
+                }
+            }
+            else {
+                return $app->errtrans( 'You must pass a valid archive_type with the template_id' );
+            }
         }
 
         # load default template
         # first look for appropriate blog_id
         elsif ( my $blog_id = $ctx->stash('blog_id') ) {
             my $tmpl_class = $app->model('template');
-            if ($tmpl_id) {
-                $tmpl = $tmpl_class->load({ blog_id => $blog_id, id => $tmpl_id });
-            } else {
-                $tmpl = $tmpl_class->load({ blog_id => $blog_id, type => 'search_results' });
-            }
+            $tmpl = $tmpl_class->load({ blog_id => $blog_id, type => 'search_results' });
         }
         unless ($tmpl) {
-
             # load template from search_template path
             # template_paths method does the magic
             $tmpl = $app->load_tmpl( $app->config->SearchDefaultTemplate );
diff -r -u MTOS-4.3-ru/lib/MT/Asset/Image.pm MTOS-4.31-ru/lib/MT/Asset/Image.pm
--- MTOS-4.3-ru/lib/MT/Asset/Image.pm	2009-07-31 02:44:42.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/Asset/Image.pm	2009-08-05 18:34:56.000000000 +0400
@@ -260,6 +260,8 @@
     my ($param) = @_;
     my $text    = '';
 
+    my $app = MT->instance;
+    $param->{enclose} = 0 unless ($app->param('edit_field') =~ /^customfield/);
     $param->{enclose} = 1 unless exists $param->{enclose};
 
     if ( $param->{include} ) {
diff -r -u MTOS-4.3-ru/lib/MT/Asset.pm MTOS-4.31-ru/lib/MT/Asset.pm
--- MTOS-4.3-ru/lib/MT/Asset.pm	2009-07-31 02:44:42.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/Asset.pm	2009-08-05 18:34:56.000000000 +0400
@@ -348,7 +348,8 @@
     my $text = sprintf '<a href="%s">%s</a>',
         MT::Util::encode_html($asset->url),
         MT::Util::encode_html($fname);
-    return $asset->enclose($text);
+    my $app = MT->instance;
+    return $app->param('edit_field') =~ /^customfield/ ? $asset->enclose($text) : $text;
 }
 
 sub enclose {
@@ -356,7 +357,7 @@
     my ($html) = @_;
     my $id = $asset->id;
     my $type = $asset->class;
-    return $html;
+    return qq{<form mt:asset-id="$id" class="mt-enclosure mt-enclosure-$type" style="display: inline;">$html</form>};
 }
 
 # Return a HTML snippet of form options for inserting this asset
diff -r -u MTOS-4.3-ru/lib/MT/Blog.pm MTOS-4.31-ru/lib/MT/Blog.pm
--- MTOS-4.3-ru/lib/MT/Blog.pm	2009-07-31 02:44:42.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/Blog.pm	2009-08-17 04:38:39.000000000 +0400
@@ -2,7 +2,7 @@
 # This program is distributed under the terms of the
 # GNU General Public License, version 2.
 #
-# $Id: Blog.pm 3803 2009-06-08 03:20:26Z fumiakiy $
+# $Id: Blog.pm 4145 2009-08-17 00:38:39Z dphillips $
 
 package MT::Blog;
 
@@ -500,7 +500,18 @@
     my $blog = shift;
     my ($type) = @_;
     my %at = map { lc $_ => 1 } split(/,/, $blog->archive_type);
-    return exists $at{lc $type} ? 1 : 0;
+    return 0 unless exists $at{lc $type};
+
+    my $result = 0;
+    require MT::TemplateMap;
+    my @maps = MT::TemplateMap->load({blog_id => $blog->id,
+                                      archive_type => $type});
+    return 0 unless @maps;
+    require MT::PublishOption;
+    foreach my $map (@maps) {  
+        $result++ if $map->build_type != MT::PublishOption::DISABLED();
+    }
+    return $result;
 }
 
 sub accepts_registered_comments {
diff -r -u MTOS-4.3-ru/lib/MT/CMS/Asset.pm MTOS-4.31-ru/lib/MT/CMS/Asset.pm
--- MTOS-4.3-ru/lib/MT/CMS/Asset.pm	2009-07-31 02:44:42.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/CMS/Asset.pm	2009-08-05 20:24:05.000000000 +0400
@@ -1034,6 +1034,7 @@
                     my $target_file = $local_file;
                     $target_file =~ s/$ext_old/$ext_temp/;
                     $relative_path =~ s/$ext_old/$ext_temp/;
+                    $relative_url =~ s/$ext_old/$ext_temp/;
                     $asset_file =~ s/$ext_old/$ext_temp/;
                     $basename =~ s/$ext_old/$ext_temp/;
                     rename($local_file, $target_file);
@@ -1271,6 +1272,7 @@
         $asset->file_name($local_basename);
         $asset->file_ext($ext);
         $asset->blog_id($blog_id);
+        $asset->label($local_basename);
         $asset->created_by( $app->user->id );
     }
     else {
@@ -1368,4 +1370,4 @@
     $bytes;
 }
 
-1;
\ No newline at end of file
+1;
\ No newline at end of file
diff -r -u MTOS-4.3-ru/lib/MT/CMS/Comment.pm MTOS-4.31-ru/lib/MT/CMS/Comment.pm
--- MTOS-4.3-ru/lib/MT/CMS/Comment.pm	2009-07-31 02:44:42.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/CMS/Comment.pm	2009-08-09 01:17:13.000000000 +0400
@@ -315,6 +315,16 @@
     };
 
     my %terms;
+
+    if ( !$app->param('blog_id') && !$app->user->is_superuser ) {
+        require MT::Permission;
+        $terms{blog_id} = [
+            map { $_->blog_id }
+              grep { $_->can_view_feedback }
+              MT::Permission->load( { author_id => $app->user->id } )
+        ];
+    }
+
     my $filter_col = $app->param('filter');
     if ( $filter_col && ( my $val = $app->param('filter_val') ) ) {
         if ( $filter_col eq 'status' ) {
diff -r -u MTOS-4.3-ru/lib/MT/CMS/Entry.pm MTOS-4.31-ru/lib/MT/CMS/Entry.pm
--- MTOS-4.3-ru/lib/MT/CMS/Entry.pm	2009-07-31 02:44:42.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/CMS/Entry.pm	2009-08-13 23:59:24.000000000 +0400
@@ -180,12 +180,28 @@
        require MT::Asset;
        require MT::ObjectAsset;
        my $assets =();
-       if ($q->param('asset_id') && !$id) {
+       if ($q->param('reedit') && $q->param('include_asset_ids')) {
+           my $include_asset_ids = $app->param('include_asset_ids');
+           my @asset_ids = split(',', $include_asset_ids);
+           foreach my $asset_id (@asset_ids) {
+               my $asset = MT::Asset->load($asset_id);
+               if ($asset) {
+                   my $asset_1;
+                   if ($asset->class eq 'image') {
+                       $asset_1 = {asset_id => $asset->id, asset_name => $asset->file_name, asset_thumb => $asset->thumbnail_url(Width=>100)};
+                   } else {
+                       $asset_1 = {asset_id => $asset->id, asset_name => $asset->file_name};
+                   }
+                   push @{$assets}, $asset_1;
+               }
+           }
+       }
+       elsif ($q->param('asset_id') && !$id) {
            my $asset = MT::Asset->load($q->param('asset_id'));
            my $asset_1 = {asset_id => $asset->id, asset_name => $asset->file_name};
            push @{$assets}, $asset_1;
        }
-       if ($id) {
+       elsif ($id) {
            my @assets = MT::Asset->load({ class => '*' },
                                         { join => MT::ObjectAsset->join_on(undef, {asset_id => \'= asset_id', object_ds => 'entry', object_id => $id })});
            foreach my $asset (@assets) {
@@ -200,7 +216,7 @@
        }
        $param->{asset_loop} = $assets;
     }
-
+    
     ## Load categories and process into loop for category pull-down.
     require MT::Placement;
     my $cat_id = $param->{category_id};
@@ -1119,7 +1135,7 @@
           };
     }
     for my $data (
-        qw( authored_on_date authored_on_time basename_manual basename_old category_ids tags )
+        qw( authored_on_date authored_on_time basename_manual basename_old category_ids tags include_asset_ids )
       )
     {
         push @data,
diff -r -u MTOS-4.3-ru/lib/MT/CMS/Tools.pm MTOS-4.31-ru/lib/MT/CMS/Tools.pm
--- MTOS-4.3-ru/lib/MT/CMS/Tools.pm	2009-07-31 02:44:42.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/CMS/Tools.pm	2009-08-17 11:06:26.000000000 +0400
@@ -122,6 +122,7 @@
     if (!$tmpl) {
         $tmpl = $app->load_tmpl( 'cms/dialog/recover.tmpl' );
     }
+    $param->{system_template} = 1;
     $tmpl->param($param);
     return $tmpl;
 }
@@ -318,6 +319,7 @@
     if (!$tmpl) {
         $tmpl = $app->load_tmpl( 'cms/dialog/new_password.tmpl' );
     }
+    $param->{system_template} = 1;
     $tmpl->param($param);
     return $tmpl;
 }
diff -r -u MTOS-4.3-ru/lib/MT/Core.pm MTOS-4.31-ru/lib/MT/Core.pm
--- MTOS-4.3-ru/lib/MT/Core.pm	2009-07-31 02:44:42.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/Core.pm	2009-08-17 05:24:34.000000000 +0400
@@ -2,7 +2,7 @@
 # This program is distributed under the terms of the
 # GNU General Public License, version 2.
 #
-# $Id: Core.pm 3828 2009-06-10 02:28:14Z takayama $
+# $Id: Core.pm 4146 2009-08-17 01:24:34Z dphillips $
 
 package MT::Core;
 
@@ -406,6 +406,7 @@
             },
             'GenerateTrackBackRSS' => { default => 0, },
             'DBIRaiseError'        => { default => 0, },
+            'SearchAlwaysAllowTemplateID' => { default => 0, },
             
             ## Search settings, copied from Jay's mt-search and integrated
             ## into default config.
@@ -583,6 +584,13 @@
 
             'FastCGIMaxTime'  => { default => 60 * 60 }, # 1 hour
             'FastCGIMaxRequests' => { default => 1000 }, # 1000 requests
+
+            'RPTFreeMemoryLimit' => undef,
+            'RPTProcessCap' => undef,
+            'RPTSwapMemoryLimit' => undef,
+            'SchwartzClientDeadline' => undef,
+            'SchwartzFreeMemoryLimit' => undef,
+            'SchwartzSwapMemoryLimit' => undef,
         },
         upgrade_functions => \&load_upgrade_fns,
         applications      => {
diff -r -u MTOS-4.3-ru/lib/MT/Image.pm MTOS-4.31-ru/lib/MT/Image.pm
--- MTOS-4.3-ru/lib/MT/Image.pm	2009-03-19 23:19:22.000000000 +0300
+++ MTOS-4.31-ru/lib/MT/Image.pm	2009-08-08 05:52:07.000000000 +0400
@@ -2,7 +2,7 @@
 # This program is distributed under the terms of the
 # GNU General Public License, version 2.
 #
-# $Id: Image.pm 3455 2009-02-23 02:29:31Z auno $
+# $Id: Image.pm 4137 2009-08-08 01:52:07Z dphillips $
 
 package MT::Image;
 
@@ -411,7 +411,7 @@
     my $image = shift;
     my($w, $h) = $image->get_dimensions(@_);
     my $src = $image->{gd};
-    my $gd = GD::Image->new($w, $h);
+    my $gd = GD::Image->new($w, $h, 1);  # True color image (24 bit)
     $gd->copyResampled($src, 0, 0, 0, 0, $w, $h, $image->{width}, $image->{height});
     ($image->{gd}, $image->{width}, $image->{height}) = ($gd, $w, $h);
     wantarray ? ($image->blob, $w, $h) : $image->blob;
@@ -422,7 +422,7 @@
     my %param = @_;
     my ($size, $x, $y) = @param{qw( Size X Y )};
     my $src = $image->{gd};
-    my $gd = GD::Image->new($size, $size);
+    my $gd = GD::Image->new($size, $size, 1);  # True color image (24 bit)
     $gd->copy($src, 0, 0, $x, $y, $size, $size);
     ($image->{gd}, $image->{width}, $image->{height}) = ($gd, $size, $size);
     wantarray ? ($image->blob, $size, $size) : $image->blob;
diff -r -u MTOS-4.3-ru/lib/MT/L10N/de-iso-8859-1.pm MTOS-4.31-ru/lib/MT/L10N/de-iso-8859-1.pm
--- MTOS-4.3-ru/lib/MT/L10N/de-iso-8859-1.pm	2009-08-01 22:14:09.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/L10N/de-iso-8859-1.pm	2009-08-24 11:50:00.000000000 +0400
@@ -3,7 +3,7 @@
 # GNU General Public License, version 2.
 #
 #
-# $Id: de.pm 3810 2009-06-08 12:32:45Z mschenk $
+# $Id: de.pm 4139 2009-08-10 12:41:52Z mschenk $
 
 package MT::L10N::de;
 use strict;
@@ -301,7 +301,7 @@
 
 ## default_templates/signin.mtml
 	'Sign In' => 'Anmelden',
-	'You are signed in as ' => 'Sie sind angemeldet als',
+	'You are signed in as ' => 'Sie sind angemeldet als ',
 	'sign out' => 'abmelden',
 	'You do not have permission to sign in to this blog.' => 'Sie haben keine Berechtigung zur Anmeldung an diesem Blog.',
 
diff -r -u MTOS-4.3-ru/lib/MT/L10N/de.pm MTOS-4.31-ru/lib/MT/L10N/de.pm
--- MTOS-4.3-ru/lib/MT/L10N/de.pm	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/L10N/de.pm	2009-08-10 16:41:52.000000000 +0400
@@ -3,7 +3,7 @@
 # GNU General Public License, version 2.
 #
 #
-# $Id: de.pm 3810 2009-06-08 12:32:45Z mschenk $
+# $Id: de.pm 4139 2009-08-10 12:41:52Z mschenk $
 
 package MT::L10N::de;
 use strict;
@@ -301,7 +301,7 @@
 
 ## default_templates/signin.mtml
 	'Sign In' => 'Anmelden',
-	'You are signed in as ' => 'Sie sind angemeldet als',
+	'You are signed in as ' => 'Sie sind angemeldet als ',
 	'sign out' => 'abmelden',
 	'You do not have permission to sign in to this blog.' => 'Sie haben keine Berechtigung zur Anmeldung an diesem Blog.',
 
@@ -6017,7 +6017,15 @@
        'The published order of these assets can be changed using [_1]template tag modifiers[_2].' => 'Die Reihenfolge, in der diese Assets veröffentlicht werden, kann mittels [_1]Template Tag Modifiers[_2] beeinflusst werden.', # Translate - New # OK
        'This is set to the same URL as the original blog.' => 'Die URL entspricht der des Ursprungsblogs.', # Translate - New # OK
        'This will overwrite the original blog.' => 'Das Ursprungsblog wird überschrieben.', # Translate - New # OK
-
+       'No such template' => 'Keine solche Vorlage', # Translate - New
+       'template_id cannot be a global template' => 'template_id kann keine globale Vorlage sein.', # Translate - New
+       'Output file cannot be asp or php' => 'Die Ausgabedatei darf weder ASP noch PHP sein.', # Translate - New
+       'You must pass a valid archive_type with the template_id' => 'template_id erfordert ein gültiges archive_type-Parameter.', # Translate - New
+       'Template must have identifier entry_listing for non-Index archive types' => 'Für Nicht-Index-Archive sind in der Vorlage eine entry_listing-Angabe erforderlich.', # Translate - New
+       'Blog file extension cannot be asp or php for these archives' => 'Dateien dieses Archivs dürfen weder auf .asp noch auf .php enden.', # Translate - New
+       'Template must have identifier main_index for Index archive type' => 'Für Index-Archive sind in der Vorlage eine main_index-Angabe erforderlich. ', # Translate - New
+       'Add New' => 'Neues Asset', # Translate - Case
+       'No asset(s) associated with this [_1]' => 'Keine Assets verknüpft ', # Translate - New
 );
 
 ## New words: 379
diff -r -u MTOS-4.3-ru/lib/MT/L10N/es-iso-8859-1.pm MTOS-4.31-ru/lib/MT/L10N/es-iso-8859-1.pm
--- MTOS-4.3-ru/lib/MT/L10N/es-iso-8859-1.pm	2009-08-01 22:14:09.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/L10N/es-iso-8859-1.pm	2009-08-24 11:50:00.000000000 +0400
@@ -3,7 +3,7 @@
 # GNU General Public License, version 2.
 #
 #
-# $Id: es.pm 3810 2009-06-08 12:32:45Z mschenk $
+# $Id: es.pm 4136 2009-08-07 14:40:22Z mschenk $
 
 package MT::L10N::es;
 use strict;
@@ -6017,7 +6017,15 @@
        'The published order of these assets can be changed using [_1]template tag modifiers[_2].' => 'Se puede modificar el orden publicado de estos elementos utilizando los [_1]modificadores de etiquetas de plantilla[_2]', # Translate - New
        'This is set to the same URL as the original blog.' => 'La URL coincide con la original del blog.', # Translate - New
        'This will overwrite the original blog.' => 'Esto sobreescribir el blog original.', # Translate - New
-
+       'No such template' => 'Esa plantilla no existe', # Translate - New
+        'template_id cannot be a global template' => 'template_id no puede ser una plantilla global', # Translate - New
+        'Output file cannot be asp or php' => 'El fichero de salida no puede ser asp o php', # Translate - New
+        'You must pass a valid archive_type with the template_id' => 'Debe pasar un tipo de archivo (archive_type) vlido con el template_id', # Translate - New
+        'Template must have identifier entry_listing for non-Index archive types' => 'La plantilla debe tener un identificador entry_listing para los tipos de archivos que no sean ndices', # Translate - New
+        'Blog file extension cannot be asp or php for these archives' => 'El fichero del blog no puede ser asp o php para estos archivos', # Translate - New
+        'Template must have identifier main_index for Index archive type' => 'La plantilla debe tener un identificador main_index para el tipo de archivos ndices', # Translate - New
+        'Add New' => 'Aadir nuevo', # Translate - Case
+        'No asset(s) associated with this [_1]' => 'No existe/n elemento/s asociados a [_1]', # Translate - New
 );
 
 ## New words: 379
diff -r -u MTOS-4.3-ru/lib/MT/L10N/es.pm MTOS-4.31-ru/lib/MT/L10N/es.pm
--- MTOS-4.3-ru/lib/MT/L10N/es.pm	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/L10N/es.pm	2009-08-07 18:40:22.000000000 +0400
@@ -3,7 +3,7 @@
 # GNU General Public License, version 2.
 #
 #
-# $Id: es.pm 3810 2009-06-08 12:32:45Z mschenk $
+# $Id: es.pm 4136 2009-08-07 14:40:22Z mschenk $
 
 package MT::L10N::es;
 use strict;
@@ -6017,7 +6017,15 @@
        'The published order of these assets can be changed using [_1]template tag modifiers[_2].' => 'Se puede modificar el orden publicado de estos elementos utilizando los [_1]modificadores de etiquetas de plantilla[_2]', # Translate - New
        'This is set to the same URL as the original blog.' => 'La URL coincide con la original del blog.', # Translate - New
        'This will overwrite the original blog.' => 'Esto sobreescribirá el blog original.', # Translate - New
-
+       'No such template' => 'Esa plantilla no existe', # Translate - New
+        'template_id cannot be a global template' => 'template_id no puede ser una plantilla global', # Translate - New
+        'Output file cannot be asp or php' => 'El fichero de salida no puede ser asp o php', # Translate - New
+        'You must pass a valid archive_type with the template_id' => 'Debe pasar un tipo de archivo (archive_type) válido con el template_id', # Translate - New
+        'Template must have identifier entry_listing for non-Index archive types' => 'La plantilla debe tener un identificador entry_listing para los tipos de archivos que no sean índices', # Translate - New
+        'Blog file extension cannot be asp or php for these archives' => 'El fichero del blog no puede ser asp o php para estos archivos', # Translate - New
+        'Template must have identifier main_index for Index archive type' => 'La plantilla debe tener un identificador main_index para el tipo de archivos índices', # Translate - New
+        'Add New' => 'Añadir nuevo', # Translate - Case
+        'No asset(s) associated with this [_1]' => 'No existe/n elemento/s asociados a [_1]', # Translate - New
 );
 
 ## New words: 379
diff -r -u MTOS-4.3-ru/lib/MT/L10N/fr-iso-8859-1.pm MTOS-4.31-ru/lib/MT/L10N/fr-iso-8859-1.pm
--- MTOS-4.3-ru/lib/MT/L10N/fr-iso-8859-1.pm	2009-08-01 22:14:09.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/L10N/fr-iso-8859-1.pm	2009-08-24 11:50:00.000000000 +0400
@@ -3,7 +3,7 @@
 # GNU General Public License, version 2.
 #
 #
-# $Id: fr.pm 3810 2009-06-08 12:32:45Z mschenk $
+# $Id: fr.pm 4139 2009-08-10 12:41:52Z mschenk $
 
 package MT::L10N::fr;
 use strict;
@@ -1654,7 +1654,6 @@
 	'Select Roles' => 'Slectionnez des rles',
 	'Role Name' => 'Nom du rle',
 	'Roles Selected' => 'Rles slectionns',
-	'' => '', # Translate - New
 	'Grant Permissions' => 'Ajouter des autorisations',
 	'You cannot delete your own association.' => 'Vous ne pouvez pas supprimer votre propre association.',
 	'You cannot delete your own user record.' => 'Vous ne pouvez pas effacer vos propres donnes Utilisateur.',
@@ -2556,7 +2555,7 @@
 	'Log Paths' => 'Chemins des logs', # Translate - New
 	'Paths where logs are placed.' => 'Chemins o les logs seront placs', # Translate - New
 	'Logging Threshold' => 'Limite des logs', # Translate - New
-	'Logging threshold for the App' => 'Limite des logs pour \'application', # Translate - New
+	'Logging threshold for the App' => 'Limite des logs pour l\'application', # Translate - New
 	'Send Email To' => 'Envoyer un email ', # Translate - New
 	'The email address where you want to send test email to.' => 'Adresse email  laquelle vous souhaitez envoyer un email de test.', # Translate - New
 
@@ -6019,7 +6018,15 @@
        'The published order of these assets can be changed using [_1]template tag modifiers[_2].' => 'L\'ordre de publication de ces lments peut tre modifi en utilisant [_1] tags de modification de gabarits [_2]', # Translate - New
        'This is set to the same URL as the original blog.' => 'La valeur est la mme URL que le blog original', # Translate - New
        'This will overwrite the original blog.' => 'Cela recrira le blog original', # Translate - New 
-
+       'No such template' => 'Aucun gabarit', # Translate - New
+       'template_id cannot be a global template' => 'template_id ne peut pas tre un gabarit global', # Translate - New
+       'Output file cannot be asp or php' => 'Le fichier de sortie ne peut pas tre asp ou php', # Translate - New
+       'You must pass a valid archive_type with the template_id' => 'Vous devez communiquer un archive_type valide avec un template_id', # Translate - New
+       'Template must have identifier entry_listing for non-Index archive types' => 'Les gabarits doivent avoir un identifiant entry_listing pour des types d\'archives sans index', # Translate - New
+       'Blog file extension cannot be asp or php for these archives' => 'L\'extention de fichiers d\'un blog ne peut pas tre asp ou php', # Translate - New
+       'Template must have identifier main_index for Index archive type' => 'Les gabarits doivent avoir un identifiant main_undex pour les archives de type Index', # Translate - New
+       'Add New' => 'Nouvel lment', # Translate - Case
+       'No asset(s) associated with this [_1]' => 'Aucun lment associ avec ce [_1]', # Translate - New
 );
 
 ## New words: 379
diff -r -u MTOS-4.3-ru/lib/MT/L10N/fr.pm MTOS-4.31-ru/lib/MT/L10N/fr.pm
--- MTOS-4.3-ru/lib/MT/L10N/fr.pm	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/L10N/fr.pm	2009-08-10 16:41:52.000000000 +0400
@@ -3,7 +3,7 @@
 # GNU General Public License, version 2.
 #
 #
-# $Id: fr.pm 3810 2009-06-08 12:32:45Z mschenk $
+# $Id: fr.pm 4139 2009-08-10 12:41:52Z mschenk $
 
 package MT::L10N::fr;
 use strict;
@@ -1654,7 +1654,6 @@
 	'Select Roles' => 'Sélectionnez des rôles',
 	'Role Name' => 'Nom du rôle',
 	'Roles Selected' => 'Rôles sélectionnés',
-	'' => '', # Translate - New
 	'Grant Permissions' => 'Ajouter des autorisations',
 	'You cannot delete your own association.' => 'Vous ne pouvez pas supprimer votre propre association.',
 	'You cannot delete your own user record.' => 'Vous ne pouvez pas effacer vos propres données Utilisateur.',
@@ -2556,7 +2555,7 @@
 	'Log Paths' => 'Chemins des logs', # Translate - New
 	'Paths where logs are placed.' => 'Chemins où les logs seront placés', # Translate - New
 	'Logging Threshold' => 'Limite des logs', # Translate - New
-	'Logging threshold for the App' => 'Limite des logs pour \'application', # Translate - New
+	'Logging threshold for the App' => 'Limite des logs pour l\'application', # Translate - New
 	'Send Email To' => 'Envoyer un email à', # Translate - New
 	'The email address where you want to send test email to.' => 'Adresse email à laquelle vous souhaitez envoyer un email de test.', # Translate - New
 
@@ -6019,7 +6018,15 @@
        'The published order of these assets can be changed using [_1]template tag modifiers[_2].' => 'L\'ordre de publication de ces éléments peut être modifié en utilisant [_1] tags de modification de gabarits [_2]', # Translate - New
        'This is set to the same URL as the original blog.' => 'La valeur est la même URL que le blog original', # Translate - New
        'This will overwrite the original blog.' => 'Cela réecrira le blog original', # Translate - New 
-
+       'No such template' => 'Aucun gabarit', # Translate - New
+       'template_id cannot be a global template' => 'template_id ne peut pas être un gabarit global', # Translate - New
+       'Output file cannot be asp or php' => 'Le fichier de sortie ne peut pas être asp ou php', # Translate - New
+       'You must pass a valid archive_type with the template_id' => 'Vous devez communiquer un archive_type valide avec un template_id', # Translate - New
+       'Template must have identifier entry_listing for non-Index archive types' => 'Les gabarits doivent avoir un identifiant entry_listing pour des types d\'archives sans index', # Translate - New
+       'Blog file extension cannot be asp or php for these archives' => 'L\'extention de fichiers d\'un blog ne peut pas être asp ou php', # Translate - New
+       'Template must have identifier main_index for Index archive type' => 'Les gabarits doivent avoir un identifiant main_undex pour les archives de type Index', # Translate - New
+       'Add New' => 'Nouvel élément', # Translate - Case
+       'No asset(s) associated with this [_1]' => 'Aucun élément associé avec ce [_1]', # Translate - New
 );
 
 ## New words: 379
diff -r -u MTOS-4.3-ru/lib/MT/L10N/ja.pm MTOS-4.31-ru/lib/MT/L10N/ja.pm
--- MTOS-4.3-ru/lib/MT/L10N/ja.pm	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/L10N/ja.pm	2009-08-16 19:11:04.000000000 +0400
@@ -3,7 +3,7 @@
 # GNU General Public License, version 2.
 #
 #
-# $Id: ja.pm 3762 2009-05-29 05:30:56Z fumiakiy $
+# $Id: ja.pm 4144 2009-08-16 15:11:04Z fumiakiy $
 
 package MT::L10N::ja;
 use strict;
@@ -711,6 +711,13 @@
 	'Invalid archive type' => 'アーカイブの種類が不正です。',
 	'Invalid value: [_1]' => '不正な値です: [_1]',
 	'No column was specified to search for [_1].' => '[_1]で検索するカラムが指定されていません。',
+	'No such template' => 'テンプレートがありません。', # Translate - New
+	'template_id cannot be a global template' => 'template_id にグローバルテンプレートは指定できません。', # Translate - New
+	'Output file cannot be asp or php' => '出力ファイル名にaspやphpは指定できません。', # Translate - New
+	'You must pass a valid archive_type with the template_id' => 'template_idとarchive_typeを指定してください。', # Translate - New
+	'Template must have identifier entry_listing for non-Index archive types' => 'インデックス以外のテンプレートでは、entry_listingのテンプレートしか指定できません。', # Translate - New
+	'Blog file extension cannot be asp or php for these archives' => 'このアーカイブでaspやphpを出力ファイル名に指定することはできません。', # Translate - New
+	'Template must have identifier main_index for Index archive type' => 'main_indexのテンプレートしか指定できません。', # Translate - New
 	'The search you conducted has timed out.  Please simplify your query and try again.' => 'タイムアウトしました。お手数ですが検索をやり直してください。',
 
 ## lib/MT/App/Trackback.pm
@@ -1061,6 +1068,7 @@
 
 ## lib/MT/CMS/Asset.pm
 	'Files' => 'ファイル',
+	'Extension changed from [_1] to [_2]' => '拡張子を[_1]から[_2]に変更しました。', # Translate - New
 	'Can\'t load file #[_1].' => 'ID:[_1]のファイルをロードできません。',
 	'No permissions' => '権限がありません。',
 	'File \'[_1]\' uploaded by \'[_2]\'' => '\'[_2]\'がファイル\'[_1]\'をアップロードしました。',
@@ -1110,6 +1118,7 @@
 	'Selected Blog' => '選択されたブログ',
 	'Type a blog name to filter the choices below.' => 'ブログ名を入力して絞り込み',
 	'Blog Name' => 'ブログ名',
+	'[_1] changed from [_2] to [_3]' => '[_1]を[_2]から[_3]へ変更しました。', # Translate - New
 	'Saved Blog Changes' => 'ブログへの変更内容',
 	'Saving permissions failed: [_1]' => '権限を保存できませんでした: [_1]',
 	'Blog \'[_1]\' (ID:[_2]) created by \'[_3]\'' => '\'[_3]\'がブログ\'[_1]\'(ID:[_2])を作成しました。',
@@ -1167,6 +1176,8 @@
 	'Invalid ID [_1]' => 'ID [_1]は不正です。',
 	'Save failed: [_1]' => '保存できませんでした: [_1]',
 	'Saving object failed: [_1]' => 'オブジェクトを保存できませんでした: [_1]',
+	'\'[_1]\' edited the template \'[_2]\' in the blog \'[_3]\'' => '[_1] が ブログ [_3] のテンプレート「[_2]」を編集しました。', # Translate - New
+	'\'[_1]\' edited the global template \'[_2]\'' => '[_1] がグローバルテンプレート [_2] を編集しました。', # Translate - New
 	'Invalid parameter' => '不正なパラメータです。',
 	'Load failed: [_1]' => 'ロードできませんでした: [_1]',
 	'(no reason given)' => '(原因は不明)',
@@ -1184,7 +1195,7 @@
 	'You need to specify a Site URL' => 'サイトURLを指定してください。',
 	'The Site Path matches the original blog' => '元のブログと同じサイトパスです。',
 	'You need to specify a Site Path' => 'サイトパスを指定してください。',
-	'Entries must be cloned if trackbacks or comments are cloned' => 'コメントまたはトラックバックを複製するときはブログ記事も複製しなければなりません。',
+	'Entries must be cloned if comments and trackbacks are cloned' => 'コメントまたはトラックバックを複製するときはブログ記事も複製しなければなりません。',
 	'Entries must be cloned if comments are cloned' => 'コメントを複製するときはブログ記事も複製しなければなりません。',
 	'Entries must be cloned if trackbacks are cloned' => 'トラックバックを複製するときはブログ記事も複製しなければなりません。',
 
@@ -1348,7 +1359,16 @@
 	'Please enter a valid email address' => '正しいメールアドレスを入力してください。',
 	'Test email from Movable Type' => 'Movable Type からのテストメールです',
 	'This is the test email sent by your installation of Movable Type.' => 'Movable Type から送信されたテストメールです。',
-	'Mail was not properly sent' => 'メールを送信しました',
+	'Mail was not properly sent' => 'メールを送信できませんでした',
+	'Test e-mail was successfully sent to [_1]' => 'テストメールを [_1] に送信しました。', # Translate - New
+	'These setting(s) are overridden by a value in the MT configuration file: [_1]. Remove the value from the configuration file in order to control the value on this page.' => 'この設定よりも[_1]に指定されている値の方が優先されます。このページで設定を行う場合はファイルから値を削除してください。', # Translate - New
+	'Email address is [_1]' => 'メールアドレス: [_1]', # Translate - New
+	'Debug mode is [_1]' => 'デバッグモード: [_1]', # Translate - New
+	'Performance logging is on' => 'パフォーマンスログ: ON', # Translate - New
+	'Performance logging is off' => 'パフォーマンスログ: OFF', # Translate - New
+	'Performance log path is [_1]' => 'パフォーマンスログのパス: [_1]', # Translate - New
+	'Performance log threshold is [_1]' => 'パフォーマンスログのしきい値: [_1]', # Translate - New
+	'System Settings Changes Took Place' => 'システム設定への更新', # Translate - New
 	'Invalid password recovery attempt; can\'t recover password in this configuration' => 'パスワードの再設定に失敗しました。この構成では再設定はできません。',
 	'Invalid author_id' => 'ユーザーのIDが不正です。',
 	'Backup & Restore' => 'バックアップ/復元',
@@ -2641,6 +2661,8 @@
 
 ## tmpl/cms/dialog/clone_blog.tmpl
 	'Verify Blog Settings' => 'ブログの設定を確認する',
+	'This is set to the same URL as the original blog.' => '元のブログと同じURLが設定されています。', # Translate - New
+	'This will overwrite the original blog.' => 'このままにしておくと元のブログを上書きしてしまいます。', # Translate - New
 	'This is set to the same URL as the original blog. Would you like to <a href="javascript:history.back()" id="site-url-back-link">go back</a> and change it?' => '元のブログと同じURLが設定されています。<a href="javascript:history.back()" id="site-url-back-link">戻って設定を変更</a>しますか?',
 	'This will overwrite the original blog. Would you like to <a href="javascript:history.back()" id="site-path-back-link">go back</a> and change it?' => 'このままにしておくと元のブログを上書きしてしまいます。<a href="javascript:history.back()" id="site-path-back-link">戻って設定を変更</a>しますか?',
 	'Exclusions' => '除外',
@@ -3004,7 +3026,8 @@
 	'Accept' => '受信設定',
 	'View Previously Sent TrackBacks' => '送信済みのトラックバックを見る',
 	'Outbound TrackBack URLs' => 'トラックバック送信先URL',
-	'The published order of these assets can be changed using template tag modifiers.' => '公開するときの並び順はテンプレートタグのモディファイアで変更できます。',
+	'No asset(s) associated with this [_1]' => '[_1] 二関連づけられたアイテムはありません。', # Translate - New
+	'The published order of these assets can be changed using [_1]template tag modifiers[_2].' => '公開するときの並び順は[_1]テンプレートタグのモディファイア[_2]で変更できます。',
 	'You have unsaved changes to this entry that will be lost.' => '保存されていないブログ記事への変更は失われます。',
 	'You have unsaved changes to this page that will be lost.' => '保存されていないウェブページへの変更は失われます。',
 	'Enter the link address:' => 'リンクするURLを入力:',
diff -r -u MTOS-4.3-ru/lib/MT/L10N/nl.pm MTOS-4.31-ru/lib/MT/L10N/nl.pm
--- MTOS-4.3-ru/lib/MT/L10N/nl.pm	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/L10N/nl.pm	2009-08-07 18:40:22.000000000 +0400
@@ -3,7 +3,7 @@
 # GNU General Public License, version 2.
 #
 #
-# $Id: nl.pm 3810 2009-06-08 12:32:45Z mschenk $
+# $Id: nl.pm 4136 2009-08-07 14:40:22Z mschenk $
 
 package MT::L10N::nl;
 use strict;
@@ -6018,8 +6018,16 @@
         'The published order of these assets can be changed using [_1]template tag modifiers[_2].' => 'De publicatievolgorde van deze mediabestanden kan gewijzigd worden via [_1]argumenten in de sjabloontags[_2].', # Translate - New
         'This is set to the same URL as the original blog.' => 'Dit staat ingesteld op dezelfde URL als de oorspronkelijke blog.', # Translate - New
         'This will overwrite the original blog.' => 'Dit zal de oorspronkelijke blog overschrijven.', # Translate - New
-
-
+        'No such template' => 'Sjabloon bestaat niet', # Translate - New
+       'template_id cannot be a global template' => 'template_id mag geen systeemsjabloon zijn', # Translate - New
+       'Output file cannot be asp or php' => 'Uitvoerbestand mag geen asp of php zijn', # Translate - New
+       'You must pass a valid archive_type with the template_id' => 'U moet een geldig archieftype doorgeven met het template_id', # Translate - New
+       'Template must have identifier entry_listing for non-Index archive types' => 'Sjabloon moet de identifier \'entry_listing\' hebben voor niet-index archieftypes', # Translate - New
+       'Blog file extension cannot be asp or php for these archives' => 'Blogextensie kan niet asp of php zijn voor deze archieven', # Translate - New
+       'Template must have identifier main_index for Index archive type' => 'Sjabloon moet de identifier \'main_index\' hebben voor het index archieftype', # Translate - New
+       'Add New' => 'Nieuw toevogen', # Translate - Case
+       'No asset(s) associated with this [_1]' => 'Geen mediabestan(en) geassociëerd met [_1]', # Translate - New
+	
 );
 
 ## New words: 379
diff -r -u MTOS-4.3-ru/lib/MT/L10N/ru.pm MTOS-4.31-ru/lib/MT/L10N/ru.pm
--- MTOS-4.3-ru/lib/MT/L10N/ru.pm	2009-08-01 21:31:16.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/L10N/ru.pm	2009-08-22 16:14:50.000000000 +0400
@@ -1,4 +1,4 @@
-#	Русский локализационный файл для Movable Type 4.3
+#	Русский локализационный файл для Movable Type 4.31
 #	
 #	Автор перевода: Андрей Серебряков <http://saahov.ru/>
 #
@@ -10,7 +10,7 @@
 #	за автоматизацию процесса перевода
 #	и доработку функции, отвечающей за множественное число.
 #	 
-#	Дата публикации файла: 31 июля 2009 года.
+#	Дата публикации файла: 22 августа 2009 года.
 #	Последнее изменение: см. последнюю строку комментариев.
 #
 #	Перевод распространяется по лицензии GNU General Public License v2
@@ -552,6 +552,13 @@
 	'Invalid archive type' => 'Неверный тип архива',
 	'Invalid value: [_1]' => 'Неверное значение: [_1]',
 	'No column was specified to search for [_1].' => 'Нет колонки, указанной для поиска по [_1]',
+	'No such template' => 'Нет такого шаблона',
+	'template_id cannot be a global template' => 'template_id не может быть глобальным шаблоном',
+	'Output file cannot be asp or php' => 'Конечный файл не может быть PHP или ASP',
+	'You must pass a valid archive_type with the template_id' => 'Необходимо передать действительный archive_type с template_id',
+	'Template must have identifier entry_listing for non-Index archive types' => 'У шаблона должен быть идентификатор для неиндексных типов архивов',
+	'Blog file extension cannot be asp or php for these archives' => 'Для этих архивов расширение публикуемых файлов блога не может быть php или asp',
+	'Template must have identifier main_index for Index archive type' => 'У шаблона должен быть индентификатор main_index для индексного типа архива',
 	'The search you conducted has timed out.  Please simplify your query and try again.' => 'Поиск по вашему запросу занимает слишком продолжительное время. Пожалуйста, упростите ваш запрос и повторите попытку.',
 
 ## lib/MT/App/Wizard.pm
@@ -1304,8 +1311,8 @@
 	'Permisison denied.' => 'В доступе отказано.',
 	'The Template Name and Output File fields are required.' => 'Необходимо указать имя шаблона и имя публикуемого файла.',
 	'Invalid type [_1]' => 'Недопустимый тип [_1]',
-	'\'[_1]\' edited the template \'[_2]\' in the blog \'[_3]\'' => '«[_1]» отредактировал шаблон «[_2]» в блоге «[_3]»', # проверить
-	'\'[_1]\' edited the global template \'[_2]\'' => '«[_1]» отредактировал глобальный шаблон «[_2]»', # проверить
+	'\'[_1]\' edited the template \'[_2]\' in the blog \'[_3]\'' => '«[_1]» отредактировал шаблон «[_2]» в блоге «[_3]»',
+	'\'[_1]\' edited the global template \'[_2]\'' => '«[_1]» отредактировал глобальный шаблон «[_2]»',
 	'Notification List' => 'Список подписчиков',
 	'Removing tag failed: [_1]' => 'Не удалось удалить тег: [_1]',
 	'Loading MT::LDAP failed: [_1].' => 'Загрузка MT::LDAP не удалась: [_1]',
@@ -1424,8 +1431,8 @@
 	'Performance logging is on' => 'Журналирование производительности включено',
 	'Performance logging is off' => 'Журналирование производительности отключено',
 	'Performance log path is [_1]' => 'Журнал производительности сохраняется в [_1]',
-	'Performance log threshold is [_1]' => 'Журналирование ведётся для событий, продолжительностью от [_1] сек.', # проверить
-	'System Settings Changes Took Place' => 'Изменены системные параметры', # проверить
+	'Performance log threshold is [_1]' => 'Журналирование ведётся для событий, продолжительностью от [_1] сек.',
+	'System Settings Changes Took Place' => 'Изменены системные параметры',
 	'Invalid password recovery attempt; can\'t recover password in this configuration' => 'Попытка восстановления пароля не удалась; невозможно восстановить пароль при текущей настройке',
 	'Invalid author_id' => 'Неверный author_id',
 	'Backup & Restore' => 'Бэкап и восстановление',
@@ -1565,7 +1572,7 @@
 	'Selected Blog' => 'Выбранный блог',
 	'Type a blog name to filter the choices below.' => 'Напечатайте имя блога, чтобы отфильтровать представленные ниже.',
 	'[_1] changed from [_2] to [_3]' => '[_1] изменено с [_2] на [_3]',
-	'Saved Blog Changes' => 'Сохранённые изменения блога', # проверить
+	'Saved Blog Changes' => 'Сохранённые изменения блога',
 	'Blog \'[_1]\' (ID:[_2]) created by \'[_3]\'' => 'Блог «[_1]» (ID:[_2]) создан пользователем «[_3]»',
 	'You did not specify a blog name.' => 'Вы не указали имя блога.',
 	'Site URL must be an absolute URL.' => 'Необходимо указать абсолютный URL.',
@@ -1768,8 +1775,8 @@
 	'Classic Blog' => 'Классический блог',
 	'Publishes content.' => 'Публикация контента.',
 	'Synchronizes content to other server(s).' => 'Синхронизация контента с другим сервером.',
-#	'Refreshes object summaries.' => '', # Translate - Empty
-#	'Adds Summarize workers to queue.' => '', # Translate - Empty
+	'Refreshes object summaries.' => 'Обновление объекта с суммарной информацией.',
+	'Adds Summarize workers to queue.' => 'Добавление в очередь процессов по суммированию информации.',
 	'zip' => 'zip', # Translate - Not translated
 	'tar.gz' => 'tar.gz', # Translate - Not translated
 	'Entries List' => 'Список записей',
@@ -1788,7 +1795,7 @@
 	'Set Variable Block' => 'Установить блок переменной',
 	'Widget Set' => 'Связка виджетов',
 	'Publish Scheduled Entries' => 'Публикация запланированных записей',
-#	'Add Summary Watcher to queue' => '', # Translate - Empty
+	'Add Summary Watcher to queue' => 'Добавление в очередь Summary Watcher',
 	'Junk Folder Expiration' => 'Срок хранения спама',
 	'Remove Temporary Files' => 'Удалить временные файлы',
 	'Remove Expired User Sessions' => 'Удалить истёкшие сессии пользователей',
@@ -2585,7 +2592,7 @@
 	'Create Blog (s)' => 'Создать блог (s)',
 
 ## tmpl/cms/view_rpt_log.tmpl
-	'Schwartz Error Log' => 'Журнал ошибок Schwartz', # проверить
+	'Schwartz Error Log' => 'Журнал ошибок Schwartz',
 	'The activity log has been reset.' => 'Журнал активности очищен.',
 	'All times are displayed in GMT[_1].' => 'Всё время отображено в GMT[_1].',
 	'All times are displayed in GMT.' => 'Всё время отображено в GMT.',
@@ -2939,7 +2946,7 @@
 	'IP: [_1]' => 'IP: [_1]', # Translate - Not translated
 
 ## tmpl/cms/include/rpt_log_table.tmpl
-	'Schwartz Message' => 'Сообщение Schwartz', # проверить
+	'Schwartz Message' => 'Сообщение Schwartz',
 
 ## tmpl/cms/include/display_options.tmpl
 	'Display Options' => 'Опции отображения',
@@ -3269,16 +3276,16 @@
 ## tmpl/cms/dialog/clone_blog.tmpl
 	'Verify Blog Settings' => 'Проверить параметры блога',
 	'This is set to the same URL as the original blog.' => 'Это значение взято из первоначального блога',
-	'This will overwrite the original blog.' => 'Это перезапишет оригинальный блог', # проверить
+	'This will overwrite the original blog.' => 'Это перезапишет оригинальный блог',
 	'Exclusions' => 'Исключения',
 	'Exclude Entries/Pages' => 'Исключить записи/страницы',
 	'Exclude Comments' => 'Исключить комментарии',
 	'Exclude Trackbacks' => 'Исключить трекбэки',
 	'Exclude Categories' => 'Исключить категории',
-	'Clone' => 'Клонировать', # проверить
+	'Clone' => 'Клонировать',
 	'Enter the new URL of your public website. Example: http://www.example.com/weblog/' => 'Введите новый адрес вашего сайта. Пример: http://www.example.com/weblog/',
 	'Enter a new path where your main index file will be located. Example: /home/melody/public_html/weblog' => 'Введите новый путь, где будут располагаться файлы сайта. Пример: /home/username/public_html/weblog',
-	'Clone Settings' => 'Параметры клонирования', # проверить
+	'Clone Settings' => 'Параметры клонирования',
 	'Mark the settings that you want cloning to skip' => 'Выберите элементы, которые вы хотите исключить из клонирования',
 	'Entries/Pages' => 'Записи/Страницы',
 
@@ -3691,9 +3698,9 @@
 	'Log Paths' => 'Путь журнала',
 	'Paths where logs are placed.' => 'Путь, где будет размещён журнал',
 	'Logging Threshold' => 'Лимит журнала',
-	'Logging threshold for the App' => 'Лимит в секундах и долях секунд для событий, которые будут отображены в журнале', # проверить
+	'Logging threshold for the App' => 'Лимит в секундах и долях секунд для событий, которые будут отображены в журнале',
 	'Send Email To' => 'Отправить сообщение на',
-	'The email address where you want to send test email to.' => 'Адрес электронной почты, куда будет отправлено тестовое письмо.', 
+	'The email address where you want to send test email to.' => 'Адрес электронной почты, куда будет отправлено тестовое письмо.',
 	'Send Test Email' => 'Отправить тестовое письмо',
 
 ## tmpl/cms/list_folder.tmpl
@@ -4440,12 +4447,8 @@
 	'Selected Design' => 'Выбранный дизайн',
 	'Layout' => 'Расположение',
 
-## plugins/Cloner/cloner.pl
-	'Clones a blog and all of its contents.' => 'Клонирование блога и всего его содержимого',
-	'This action can only be run for a single blog at a time.' => 'Одновременно это действие может выполнено только для одного блога.',
-
 );
 
-## New words: 445
+## New words: 74
 
 1;
diff -r -u MTOS-4.3-ru/lib/MT/Meta/Proxy.pm MTOS-4.31-ru/lib/MT/Meta/Proxy.pm
--- MTOS-4.3-ru/lib/MT/Meta/Proxy.pm	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/Meta/Proxy.pm	2009-08-10 20:15:26.000000000 +0400
@@ -2,7 +2,7 @@
 # This program is distributed under the terms of the
 # GNU General Public License, version 2.
 #
-# $Id: Proxy.pm 71506 2008-01-18 23:13:43Z ykerherve $
+# $Id: Proxy.pm 4142 2009-08-10 16:15:26Z kshay $
 
 package MT::Meta::Proxy;
 use strict;
diff -r -u MTOS-4.3-ru/lib/MT/Meta.pm MTOS-4.31-ru/lib/MT/Meta.pm
--- MTOS-4.3-ru/lib/MT/Meta.pm	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/Meta.pm	2009-08-10 20:15:26.000000000 +0400
@@ -2,7 +2,7 @@
 # This program is distributed under the terms of the
 # GNU General Public License, version 2.
 #
-# $Id: Meta.pm 71460 2008-01-18 18:01:06Z ykerherve $
+# $Id: Meta.pm 4142 2009-08-10 16:15:26Z kshay $
 
 package MT::Meta;
 
diff -r -u MTOS-4.3-ru/lib/MT/ObjectDriverFactory.pm MTOS-4.31-ru/lib/MT/ObjectDriverFactory.pm
--- MTOS-4.3-ru/lib/MT/ObjectDriverFactory.pm	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/ObjectDriverFactory.pm	2009-08-19 11:39:07.000000000 +0400
@@ -2,7 +2,7 @@
 # This program is distributed under the terms of the
 # GNU General Public License, version 2.
 #
-# $Id: ObjectDriverFactory.pm 3466 2009-02-27 19:55:09Z bchoate $
+# $Id: ObjectDriverFactory.pm 4148 2009-08-19 07:39:07Z dphillips $
 
 package MT::ObjectDriverFactory;
 
@@ -112,6 +112,7 @@
     if ( my $driver = $MT::Object::DRIVER ) {
         if ( my $dbh = $driver->dbh ) {
             $dbh->disconnect;
+            $driver->dbh(undef);
         }
         $MT::Object::DRIVER = undef;
         $MT::Object::DBI_DRIVER = undef;
@@ -119,6 +120,7 @@
     foreach my $driver (@drivers) {
         if ( my $dbh = $driver->dbh ) {
             $dbh->disconnect;
+            $driver->dbh(undef);
         }
     }
     @drivers = ();
diff -r -u MTOS-4.3-ru/lib/MT/Serialize.pm MTOS-4.31-ru/lib/MT/Serialize.pm
--- MTOS-4.3-ru/lib/MT/Serialize.pm	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/Serialize.pm	2009-08-04 21:50:33.000000000 +0400
@@ -2,7 +2,7 @@
 # This program is distributed under the terms of the
 # GNU General Public License, version 2.
 #
-# $Id: Serialize.pm 3455 2009-02-23 02:29:31Z auno $
+# $Id: Serialize.pm 4128 2009-08-04 17:50:33Z plim $
 
 package MT::Serialize;
 
@@ -109,10 +109,12 @@
                   push(@stack, ['REF' => $$value]);
                 } elsif ($ref eq 'ARRAY') {
                   $frozen .= 'A' . pack('N', scalar(@$value));
-                  push(@stack, ['ARRAY' => @$value]);
+                  push(@stack, ['ARRAY' => @$value])
+                    if scalar @$value;                  
                 } elsif ($ref eq 'HASH') {
-                  $frozen .= 'H' . pack('N', scalar(keys %$value)); 
-                  push(@stack, ['HASH' => %$value]);
+                  $frozen .= 'H' . pack('N', scalar(keys %$value));
+                  push(@stack, ['HASH' => %$value])
+                    if scalar keys %$value;
                 } else {
                   die "Unexpected type '$ref' in _macrofreeze\n";
                 }
diff -r -u MTOS-4.3-ru/lib/MT/Summary/Author.pm MTOS-4.31-ru/lib/MT/Summary/Author.pm
--- MTOS-4.3-ru/lib/MT/Summary/Author.pm	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/Summary/Author.pm	2009-08-10 20:15:26.000000000 +0400
@@ -1,3 +1,8 @@
+# Movable Type (r) Open Source (C) 2001-2009 Six Apart, Ltd.
+# This program is distributed under the terms of the
+# GNU General Public License, version 2.
+#
+# $Id: Author.pm 4142 2009-08-10 16:15:26Z kshay $
 
 # Core Summary Object Framework functions for MT::Author
 
diff -r -u MTOS-4.3-ru/lib/MT/Summary/Entry.pm MTOS-4.31-ru/lib/MT/Summary/Entry.pm
--- MTOS-4.3-ru/lib/MT/Summary/Entry.pm	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/Summary/Entry.pm	2009-08-10 20:15:26.000000000 +0400
@@ -1,3 +1,8 @@
+# Movable Type (r) Open Source (C) 2001-2009 Six Apart, Ltd.
+# This program is distributed under the terms of the
+# GNU General Public License, version 2.
+#
+# $Id: Entry.pm 4142 2009-08-10 16:15:26Z kshay $
 
 # Core Summary Object Framework functions for MT::Entry
 
diff -r -u MTOS-4.3-ru/lib/MT/Summary/Proxy.pm MTOS-4.31-ru/lib/MT/Summary/Proxy.pm
--- MTOS-4.3-ru/lib/MT/Summary/Proxy.pm	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/Summary/Proxy.pm	2009-08-10 20:15:26.000000000 +0400
@@ -1,8 +1,8 @@
-# Movable Type (r) (C) 2001-2009 Six Apart, Ltd. All Rights Reserved.
-# This code cannot be redistributed without permission from www.sixapart.com.
-# For more information, consult your Movable Type license.
+# Movable Type (r) Open Source (C) 2001-2009 Six Apart, Ltd.
+# This program is distributed under the terms of the
+# GNU General Public License, version 2.
 #
-# $Id: Proxy.pm 71506 2008-01-18 23:13:43Z ykerherve $
+# $Id: Proxy.pm 4142 2009-08-10 16:15:26Z kshay $
 
 package MT::Summary::Proxy;
 use strict;
diff -r -u MTOS-4.3-ru/lib/MT/Summary/Triggers.pm MTOS-4.31-ru/lib/MT/Summary/Triggers.pm
--- MTOS-4.3-ru/lib/MT/Summary/Triggers.pm	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/Summary/Triggers.pm	2009-08-10 20:15:26.000000000 +0400
@@ -1,8 +1,8 @@
-# Movable Type (r) (C) 2001-2009 Six Apart, Ltd. All Rights Reserved.
-# This code cannot be redistributed without permission from www.sixapart.com.
-# For more information, consult your Movable Type license.
+# Movable Type (r) Open Source (C) 2001-2009 Six Apart, Ltd.
+# This program is distributed under the terms of the
+# GNU General Public License, version 2.
 #
-# $Id: Proxy.pm 71506 2008-01-18 23:13:43Z ykerherve $
+# $Id: Triggers.pm 4142 2009-08-10 16:15:26Z kshay $
 
 package MT::Summary::Triggers;
 use strict;
diff -r -u MTOS-4.3-ru/lib/MT/Summary.pm MTOS-4.31-ru/lib/MT/Summary.pm
--- MTOS-4.3-ru/lib/MT/Summary.pm	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/Summary.pm	2009-08-10 20:15:26.000000000 +0400
@@ -1,6 +1,8 @@
-# Movable Type (r) (C) 2001-2009 Six Apart, Ltd. All Rights Reserved.
-# This code cannot be redistributed without permission from www.sixapart.com.
-# For more information, consult your Movable Type license.
+# Movable Type (r) Open Source (C) 2001-2009 Six Apart, Ltd.
+# This program is distributed under the terms of the
+# GNU General Public License, version 2.
+#
+# $Id: Summary.pm 4142 2009-08-10 16:15:26Z kshay $
 
 package MT::Summary;
 
diff -r -u MTOS-4.3-ru/lib/MT/Template/ContextHandlers.pm MTOS-4.31-ru/lib/MT/Template/ContextHandlers.pm
--- MTOS-4.3-ru/lib/MT/Template/ContextHandlers.pm	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/Template/ContextHandlers.pm	2009-08-22 15:05:16.000000000 +0400
@@ -2,7 +2,7 @@
 # This code cannot be redistributed without permission from www.sixapart.com.
 # For more information, consult your Movable Type license.
 #
-# $Id: ContextHandlers.pm 3779 2009-06-02 20:28:57Z bsmith $
+# $Id: ContextHandlers.pm 4125 2009-08-04 16:07:00Z plim $
 
 package MT::Template::Context;
 
@@ -7902,9 +7902,10 @@
 
     # for the case that we want to use mt:Entries with mt-search
     # send to MT::Template::Search if searh results are found
-    my $results_iter = $ctx->stash('results');
-    require MT::Template::Context::Search;
-    return MT::Template::Context::Search::_hdlr_results($ctx, $args, $cond) if ($results_iter);
+    if ($ctx->stash('results') && $args->{search_results} == 1) {
+        require MT::Template::Context::Search;
+        return MT::Template::Context::Search::_hdlr_results($ctx, $args, $cond);
+    }
 
     $ctx->set_blog_load_context($args, \%blog_terms, \%blog_args)
         or return $ctx->error($ctx->errstr);
diff -r -u MTOS-4.3-ru/lib/MT/Worker/Summarize.pm MTOS-4.31-ru/lib/MT/Worker/Summarize.pm
--- MTOS-4.3-ru/lib/MT/Worker/Summarize.pm	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/Worker/Summarize.pm	2009-08-10 20:15:26.000000000 +0400
@@ -1,6 +1,8 @@
-# Movable Type (r) (C) 2001-2009 Six Apart, Ltd. All Rights Reserved.
-# This code cannot be redistributed without permission from www.sixapart.com.
-# For more information, consult your Movable Type license.
+# Movable Type (r) Open Source (C) 2001-2009 Six Apart, Ltd.
+# This program is distributed under the terms of the
+# GNU General Public License, version 2.
+#
+# $Id: Summarize.pm 4142 2009-08-10 16:15:26Z kshay $
 
 package MT::Worker::Summarize;
 
diff -r -u MTOS-4.3-ru/lib/MT/Worker/SummaryWatcher.pm MTOS-4.31-ru/lib/MT/Worker/SummaryWatcher.pm
--- MTOS-4.3-ru/lib/MT/Worker/SummaryWatcher.pm	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/lib/MT/Worker/SummaryWatcher.pm	2009-08-10 20:15:26.000000000 +0400
@@ -1,6 +1,8 @@
-# Movable Type (r) (C) 2001-2009 Six Apart, Ltd. All Rights Reserved.
-# This code cannot be redistributed without permission from www.sixapart.com.
-# For more information, consult your Movable Type license.
+# Movable Type (r) Open Source (C) 2001-2009 Six Apart, Ltd.
+# This program is distributed under the terms of the
+# GNU General Public License, version 2.
+#
+# $Id: SummaryWatcher.pm 4142 2009-08-10 16:15:26Z kshay $
 
 package MT::Worker::SummaryWatcher;
 
@@ -13,9 +15,11 @@
 sub work {
     my $class                = shift;
     my TheSchwartz::Job $job = shift;
-    my $registry             = MT->registry;
+    #my $registry            = MT->registry;
+    my $registry            = MT->registry("summaries");
     use Data::Dumper;
-    for my $summarizable ( keys %{ $registry->{summaries} } ) {
+    #for my $summarizable ( keys %{ $registry->{summaries} } ) {
+    for my $summarizable ( keys %{ $registry } ) {
         my $meta_pkg = MT->model($summarizable)->meta_pkg('summary');
         my $summ_iter
             = $meta_pkg->search( { expired => MT::Summary::NEEDS_JOB(), } );
@@ -23,10 +27,11 @@
         my $id_field = ( $class->class_type || $class->datasource ) . '_id';
         while ( my $summary = $summ_iter->() ) {
             my $priority
-                = $registry->{summaries}->{$summarizable}->{ $summary->class }
+#                = $registry->{summaries}->{$summarizable}->{ $summary->class }
+                = $registry->{$summarizable}->{ $summary->class }
                 ->{priority};
             $priority ||= undef;
-            my $id         = $summary->$id_field;
+            my $id        = $summary->$id_field;
             my $class_type = MT->model($summarizable)->class_type
                 || MT->model($summarizable)->datasource;
             MT::Summarizable->insert_summarize_worker( $class_type, $id,
diff -r -u MTOS-4.3-ru/lib/MT.pm MTOS-4.31-ru/lib/MT.pm
--- MTOS-4.3-ru/lib/MT.pm	2009-08-01 22:14:02.000000000 +0400
+++ MTOS-4.31-ru/lib/MT.pm	2009-08-24 11:49:51.000000000 +0400
@@ -29,10 +29,10 @@
 BEGIN {
     $plugins_installed = 0;
 
-    ( $VERSION, $SCHEMA_VERSION ) = ( '4.3', '4.0075' );
+    ( $VERSION, $SCHEMA_VERSION ) = ( '4.31', '4.0076' );
     ( $PRODUCT_NAME, $PRODUCT_CODE, $PRODUCT_VERSION, $VERSION_ID ) = (
         'Movable Type',    'MT',
-        '4.3', '4.3'
+        '4.31', '4.31'
     );
 
     $DebugMode = 0;
diff -r -u MTOS-4.3-ru/mt-check.cgi MTOS-4.31-ru/mt-check.cgi
--- MTOS-4.3-ru/mt-check.cgi	2009-08-01 22:14:02.000000000 +0400
+++ MTOS-4.31-ru/mt-check.cgi	2009-08-24 11:49:51.000000000 +0400
@@ -54,7 +54,7 @@
 my $cgi = new CGI;
 my $view = $cgi->param("view");
 my $version = $cgi->param("version");
-$version ||= '4.3';
+$version ||= '4.31';
 
 my ($mt, $LH);
 my $lang = 'ru';
diff -r -u MTOS-4.3-ru/php/lib/block.mtifarchivetypeenabled.php MTOS-4.31-ru/php/lib/block.mtifarchivetypeenabled.php
--- MTOS-4.3-ru/php/lib/block.mtifarchivetypeenabled.php	2009-06-17 18:24:16.000000000 +0400
+++ MTOS-4.31-ru/php/lib/block.mtifarchivetypeenabled.php	2009-08-17 04:38:39.000000000 +0400
@@ -13,11 +13,18 @@
         $at or $at = $args['archive_type'];
         $at = preg_quote($at);
         $blog_at = ',' . $blog['blog_archive_type'] . ',';
-        $enabled = preg_match("/,$at,/", $blog_at);
-        $map = $ctx->mt->db->fetch_templatemap(
-            array('type' => $at, 'blog_id' => $blog['blog_id']));
-        if (empty($map))
-            $enabled = 0;
+        $enabled = 0;
+        $at_exists = preg_match("/,$at,/", $blog_at);
+        if ($at_exists) {
+            $maps = $ctx->mt->db->fetch_templatemap(
+                array('type' => $at, 'blog_id' => $blog['blog_id']));
+            if (!empty($maps)) {
+                foreach ($maps as $map) {
+                    if ($map['templatemap_build_type'])
+                        $enabled++;
+                }
+            }
+        }
         return $ctx->_hdlr_if($args, $content, $ctx, $repeat, $enabled);
     } else {
         return $ctx->_hdlr_if($args, $content, $ctx, $repeat);
diff -r -u MTOS-4.3-ru/php/mt.php MTOS-4.31-ru/php/mt.php
--- MTOS-4.3-ru/php/mt.php	2009-08-01 22:14:02.000000000 +0400
+++ MTOS-4.31-ru/php/mt.php	2009-08-24 11:49:51.000000000 +0400
@@ -5,9 +5,9 @@
 #
 # $Id: mt.php.pre 3536 2009-03-12 12:57:34Z fumiakiy $
 
-define('VERSION', '4.3');
-define('VERSION_ID', '4.3');
-define('PRODUCT_VERSION', '4.3');
+define('VERSION', '4.31');
+define('VERSION_ID', '4.31');
+define('PRODUCT_VERSION', '4.31');
 define('PRODUCT_NAME', 'Movable Type');
 
 global $Lexicon;
diff -r -u MTOS-4.3-ru/tmpl/cms/dialog/asset_insert.tmpl MTOS-4.31-ru/tmpl/cms/dialog/asset_insert.tmpl
--- MTOS-4.3-ru/tmpl/cms/dialog/asset_insert.tmpl	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/tmpl/cms/dialog/asset_insert.tmpl	2009-08-05 18:34:56.000000000 +0400
@@ -2,78 +2,88 @@
 <mt:setvarblock name="insert_script" id="insert_script">
 window.parent.app.insertHTML( '<mt:var name="upload_html" escape="js">', '<mt:var name="edit_field" escape="js">' );
 </mt:setvarblock>
+
+
 <script type="text/javascript">
 /* <![CDATA[ */
 
+// do the following first... asset manager stuff is ONLY for edit entry
+<mt:if name="upload_html">
+    <mt:var name="insert_script">
+</mt:if>
+
+<mt:unless name="extension_message">
+    closeDialog();
+</mt:unless>
+
 // remove the no assets text if it's there
 var Node = window.parent.document.getElementById("empty-asset-list");
 if (Node) {
     Node.parentNode.removeChild(Node);
 } 
 
-// make sure the asset isn't there already
-var Asset = window.parent.document.getElementById("list-asset-<mt:AssetID>");
-if (Asset) {
-    // do nothing
-}
-else {
-    // add the asset's id to the include_asset_ids hidden input
-    var asset_ids = window.parent.document.getElementById("include_asset_ids").value;
-    window.parent.document.getElementById("include_asset_ids").value = asset_ids + ",<mt:AssetID>";
-
-    // create the link to the asset page with asset name as label
-    var myAssetLink = window.document.createElement('a');
-    myAssetLink.setAttribute('href', '<mt:CGIPath><mt:AdminScript>?__mode=view&_type=asset&blog_id=<mt:var name="blog_id">&id=<mt:AssetID>');
-    myAssetLink.appendChild(document.createTextNode('<mt:AssetFileName encode_js="1">'));
-
-    // create the remove link icon
-    var myRemoveIcon = window.document.createElement('img');
-    myRemoveIcon.setAttribute('src', '<mt:StaticWebPath>images/status_icons/close.gif');
-    myRemoveIcon.setAttribute('alt', 'Remove asset');
-
-    // create the remove link for this asset
-    var myRemoveLink = window.document.createElement('a');
-    myRemoveLink.setAttribute('href', 'javascript:removeAssetFromList(<mt:AssetID>)');
-	myRemoveLink.setAttribute('class', 'remove-asset');
-    myRemoveLink.appendChild(myRemoveIcon);
-
-    // create the asset list item
-    var myElement = window.document.createElement('li');
-    myElement.setAttribute('id', 'list-asset-<mt:AssetID>');
-    <mt:If tag="AssetType" eq="image">
-        myElement.setAttribute('onmouseover', 'show(\'list-image-<mt:AssetID>\', window.parent.document)');
-        myElement.setAttribute('onmouseout','hide(\'list-image-<mt:AssetID>\', window.parent.document)');
-    </mt:If>
-    myElement.appendChild(myAssetLink);
-    myElement.appendChild(myRemoveLink);
-
-    // I HATE IE!
-    if (document.attachEvent) {
-        var oldLis = window.parent.document.getElementById("asset-list").innerHTML;
-        var newLi  = '<li id="list-asset-<mt:AssetID>" onmouseover="show(\'list-image-<mt:AssetID>\', window.parent.document)" onmouseout="hide(\'list-image-<mt:AssetID>\', window.parent.document)">' 
-                     + myElement.innerHTML + '</li>';
-        window.parent.document.getElementById("asset-list").innerHTML = oldLis + newLi;
-    } 
+// make sure asset list is present in an entry edit page
+var AssetList = window.parent.document.getElementById("asset-list");
+
+if (AssetList) {
+    // make sure the asset isn't there already and that we're in the edit entry page
+    var Asset = window.parent.document.getElementById("list-asset-<mt:AssetID>");
+
+    if (Asset) {
+        // do nothing
+    }
     else {
-        window.parent.document.getElementById("asset-list").appendChild(myElement);
+        // add the asset's id to the include_asset_ids hidden input
+        var asset_ids = window.parent.document.getElementById("include_asset_ids").value;
+        window.parent.document.getElementById("include_asset_ids").value = asset_ids + ",<mt:AssetID>";
+
+        // create the link to the asset page with asset name as label
+        var myAssetLink = window.document.createElement('a');
+        myAssetLink.setAttribute('href', '<mt:CGIPath><mt:AdminScript>?__mode=view&_type=asset&blog_id=<mt:var name="blog_id">&id=<mt:AssetID>');
+        myAssetLink.appendChild(document.createTextNode('<mt:AssetFileName encode_js="1">'));
+
+        // create the remove link icon
+        var myRemoveIcon = window.document.createElement('img');
+        myRemoveIcon.setAttribute('src', '<mt:StaticWebPath>images/status_icons/close.gif');
+        myRemoveIcon.setAttribute('alt', 'Remove asset');
+
+        // create the remove link for this asset
+        var myRemoveLink = window.document.createElement('a');
+        myRemoveLink.setAttribute('href', 'javascript:removeAssetFromList(<mt:AssetID>)');
+        myRemoveLink.setAttribute('class', 'remove-asset');
+        myRemoveLink.appendChild(myRemoveIcon);
+
+        // create the asset list item
+        var myElement = window.document.createElement('li');
+        myElement.setAttribute('id', 'list-asset-<mt:AssetID>');
+        <mt:If tag="AssetType" eq="image">
+            myElement.setAttribute('onmouseover', 'show(\'list-image-<mt:AssetID>\', window.parent.document)');
+            myElement.setAttribute('onmouseout','hide(\'list-image-<mt:AssetID>\', window.parent.document)');
+        </mt:If>
+        myElement.appendChild(myAssetLink);
+        myElement.appendChild(myRemoveLink);
+
+        // I HATE IE!
+        if (document.attachEvent) {
+            var oldLis = window.parent.document.getElementById("asset-list").innerHTML;
+            var newLi  = '<li id="list-asset-<mt:AssetID>" onmouseover="show(\'list-image-<mt:AssetID>\', window.parent.document)" onmouseout="hide(\'list-image-<mt:AssetID>\', window.parent.document)">' 
+                         + myElement.innerHTML + '</li>';
+            window.parent.document.getElementById("asset-list").innerHTML = oldLis + newLi;
+        } 
+        else {
+            window.parent.document.getElementById("asset-list").appendChild(myElement);
+        }
+
+        // create the image thumbnail if it exists
+        <mt:If tag="AssetType" eq="image">
+            var myImageElement = window.document.createElement('img');
+            myImageElement.setAttribute('id', 'list-image-<mt:AssetID>');
+            myImageElement.setAttribute('src', '<mt:AssetThumbnailURL width="100" encode_js="1">');
+            myImageElement.setAttribute('class', 'list-image hidden');
+            myElement.appendChild(myImageElement);
+        </mt:If>
     }
-
-    // create the image thumbnail if it exists
-    <mt:If tag="AssetType" eq="image">
-        var myImageElement = window.document.createElement('img');
-        myImageElement.setAttribute('id', 'list-image-<mt:AssetID>');
-        myImageElement.setAttribute('src', '<mt:AssetThumbnailURL width="100" encode_js="1">');
-        myImageElement.setAttribute('class', 'list-image hidden');
-        myElement.appendChild(myImageElement);
-    </mt:If>
 }
-<mt:if name="upload_html">
-    <mt:var name="insert_script">
-</mt:if>
-
-<mt:unless name="extension_message">
-    closeDialog();
-</mt:unless>
 
 /* ]]> */
 </script>
@@ -84,9 +94,7 @@
         class="success">
         <mt:var name="extension_message">
     </mtapp:statusmsg>
-</mt:if>
 
-<div class="actions-bar">
     <div class="actions-bar-inner pkg actions">
         <form action="" method="get" onsubmit="return false">
             <button
@@ -98,6 +106,7 @@
                 ><__trans phrase="Close"></button>
         </form>
     </div>
-</div>
+</mt:if>
+
 
-<mt:include name="dialog/footer.tmpl">
+<mt:include name="dialog/footer.tmpl">
\ No newline at end of file
diff -r -u MTOS-4.3-ru/tmpl/cms/edit_entry.tmpl MTOS-4.31-ru/tmpl/cms/edit_entry.tmpl
--- MTOS-4.3-ru/tmpl/cms/edit_entry.tmpl	2009-07-31 02:44:43.000000000 +0400
+++ MTOS-4.31-ru/tmpl/cms/edit_entry.tmpl	2009-08-06 18:58:49.000000000 +0400
@@ -474,11 +474,11 @@
 <div id="assets-field"<mt:unless name="disp_prefs_show_assets"> class="hidden"</mt:unless>>
     <mtapp:widget
         id="asset_container"
-        label="Assets">
+        label="<__trans phrase="Assets">">
 		<div class="asset-list-header">
         	<a href="javascript:void(0)" class="add-new-asset-link" 
            onclick="openDialog(null,'list_assets','_type=asset&edit_field=&blog_id=<mt:var name="blog_id">&dialog_view=1&no_insert=1');return false;">
-            	Add New
+            	<__trans phrase="Add New">
         	</a>
 		</div>
         <ul id="asset-list" name="asset-list">
@@ -499,7 +499,7 @@
                     </li>
                 </mt:loop>
             <mt:else>
-                <li id="empty-asset-list">No asset(s) associated with this <mt:var name="object_type"></li>
+                <li id="empty-asset-list"><__trans phrase="No asset(s) associated with this [_1]" params="<mt:var name="object_type">"></li>
             </mt:if>
         </ul>
         <input type="hidden" id="include_asset_ids" name="include_asset_ids" 
@@ -531,7 +531,7 @@
         Editor.strings.enterLinkAddress = '<__trans phrase="Enter the link address:" escape="js">';
         Editor.strings.enterTextToLinkTo = '<__trans phrase="Enter the text to link to:" escape="js">';
         function restoreBarPosition() {
-            var current_bar_position = '<mt:if name="position_actions_top">top<mt:elseif name="position_actions_bottom">bottom<mt:elseif name="position_actions_both">both<mt:else>top</mt:if>';
+            var current_bar_position = '<mt:if name="position_actions_both">both<mt:elseif name="position_actions_top">top<mt:elseif name="position_actions_bottom">bottom<mt:else>top</mt:if>';
             setBarPosition( current_bar_position );
             getByID( 'bar_position_' + current_bar_position ).checked = 'checked';
         }

