Index: modules/system/system-rtl.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system-rtl.css,v
retrieving revision 1.14
diff -u -r1.14 system-rtl.css
--- modules/system/system-rtl.css	19 Oct 2008 20:55:07 -0000	1.14
+++ modules/system/system-rtl.css	1 Mar 2009 04:25:31 -0000
@@ -95,11 +95,15 @@
   margin-left: 10px;
   margin-right: 0;
 }
-.password-strength-title {
-  float: right;
+#password-strength {
+  float: left;
 }
-.password-parent {
-  float: right;
+#password-strength-text {
+  float: left;
+}
+div.password-confirm {
+  padding-left: 0;
+  padding-right: 1em;
 }
 
 .draggable a.tabledrag-handle {
Index: modules/system/system.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.css,v
retrieving revision 1.53
diff -u -r1.53 system.css
--- modules/system/system.css	5 Dec 2008 12:50:28 -0000	1.53
+++ modules/system/system.css	1 Mar 2009 04:25:31 -0000
@@ -516,15 +516,22 @@
 /*
 ** Password strength indicator
 */
+#password-strength {
+  width: 17em;
+  float: right;  /* LTR */
+  margin-top: 1.4em;
+}
 .password-strength-title {
-  float: left; /* LTR */
+  display: inline;
+}
+#password-strength-text {
+  float: right; /* LTR */
+  font-weight: bold;
 }
 #password-indicator {
-  border: 1px solid #B4B4B4;
-  float: right;
-  height: 0.9em;
-  margin: 0.3em 0.80em 0 0.3em;
-  width: 5em;
+  background-color: #C4C4C4;
+  height: 0.3em;
+  width: 100%;
 }
 #password-indicator div {
   height: 100%;
@@ -535,6 +542,10 @@
   width: 16em;
   margin-bottom: 0.4em;
 }
+div.password-confirm {
+  display: inline;
+  padding-left: 1em;
+}
 div.password-suggestions {
   padding: 0.2em 0.5em;
   margin: 0.7em 0;
@@ -546,8 +557,7 @@
 }
 .password-parent {
   margin: 0;
-  float: left; /* LTR */
-  width: 17.3em;
+  width: 34.3em;
 }
 
 /*
Index: modules/user/user.js
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.js,v
retrieving revision 1.10
diff -u -r1.10 user.js
--- modules/user/user.js	18 Feb 2009 13:46:55 -0000	1.10
+++ modules/user/user.js	1 Mar 2009 04:25:31 -0000
@@ -19,9 +19,9 @@
       innerWrapper.addClass("password-parent");
 
       // Add the description box at the end.
-      var passwordMeter = '<div id="password-strength"><div class="password-strength-title">' + translate.strengthTitle + '</div><div id="password-indicator"><div id="indicator"></div></div></div>';
+      var passwordMeter = '<div id="password-strength"><div id="password-strength-text"></div><div class="password-strength-title">' + translate.strengthTitle + '</div><div id="password-indicator"><div id="indicator"></div></div></div>';
       $("div.description", outerWrapper).prepend('<div class="password-suggestions"></div>');
-      $(innerWrapper).append(passwordMeter);
+      $(innerWrapper).prepend(passwordMeter);
       var passwordDescription = $("div.password-suggestions", outerWrapper).hide();
 
       // Add the password confirmation layer.
@@ -51,6 +51,11 @@
 
         // Adjust the length of the strength indicator.
         $("#indicator").css('width', result.strength + '%');
+        $("#indicator").css('background-color', result.indicatorColor);
+
+        // Update the strength indication text
+        $("#password-strength-text").html(result.indicatorText);
+        $("#password-strength-text").css('color', result.indicatorColor);
 
         passwordCheckMatch();
       };
@@ -155,9 +160,23 @@
     strength = 5;
   }
 
+  // Based on the strength, work out what text/color should be shown by the password strength meter
+  if (strength < 30) {
+    indicatorText = translate.weak;
+    indicatorColor = '#bb5555';
+  }
+  else if (strength < 75) {
+    indicatorText = translate.fair;
+    indicatorColor = '#bbbb55';
+  }
+  else {
+    indicatorText = translate.strong;
+    indicatorColor = '#47C965';
+  }
+
   // Assemble the final message.
   msg = translate.hasWeaknesses + "<ul><li>" + msg.join("</li><li>") + "</li></ul>";
-  return { strength: strength, message: msg };
+  return { strength: strength, message: msg, indicatorText: indicatorText, indicatorColor: indicatorColor };
 };
 
 /**
Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.966
diff -u -r1.966 user.module
--- modules/user/user.module	26 Feb 2009 07:30:29 -0000	1.966
+++ modules/user/user.module	1 Mar 2009 04:25:32 -0000
@@ -2529,6 +2529,9 @@
         'sameAsUsername' => t('Make it different from your username'),
         'confirmSuccess' => t('yes'),
         'confirmFailure' => t('no'),
+        'weak'           => t('Weak'),
+        'fair'           => t('Fair'),
+        'strong'         => t('Strong'),
         'confirmTitle' => t('Passwords match:'),
         'username' => (isset($user->name) ? $user->name : ''))),
       'setting');
