--- includes/locale.inc	2009-12-09 09:35:48.000000000 -0600
+++ includes/locale.inc.new	2009-12-28 16:50:33.000000000 -0600
@@ -1376,14 +1376,7 @@ function locale_translate_export_po_form
 /**
  * User interface for string editing.
  */
-function locale_translate_edit_form($form, &$form_state, $lid) {
-  // Fetch source string, if possible.
-  $source = db_query('SELECT source, context, textgroup, location FROM {locales_source} WHERE lid = :lid', array(':lid' => $lid))->fetchObject();
-  if (!$source) {
-    drupal_set_message(t('String not found.'), 'error');
-    drupal_goto('admin/config/regional/translate/translate');
-  }
-
+function locale_translate_edit_form($form, &$form_state, $source) {
   // Add original text to the top and some values for form altering.
   $form['original'] = array(
     '#type'  => 'item',
@@ -3298,3 +3291,35 @@ function locale_get_localized_date_forma
   return $formats;
 }
 
+/**
+ * Auto load language from url wildcard.
+ *
+ * @param $langcode
+ *   A Language code, e.g. 'en'.
+ *
+ * @return
+ *   A verified language code or false if the code is not found.
+ */
+function language_load($langcode) {
+  $result = db_query("SELECT language FROM {languages} WHERE language = :language", array(':language' => $langcode))->fetchObject();
+  return $result->language;
+}
+
+/**
+ * Auto load a translation from url wildcard.
+ *
+ * @param $lid
+ *   Unique identifier of this string.
+ *
+ * @return
+ *   A fully populated translation source object.
+ */
+function translation_load($lid) {
+  if ($source = db_query('SELECT source, context, textgroup, location, lid FROM {locales_source} WHERE lid = :lid', array(':lid' => $lid))->fetchObject()) {
+      return $source;
+  }
+  else {
+      drupal_set_message(t('String not found.'), 'error');
+      drupal_goto('admin/config/regional/translate/translate');
+  }
+}
--- modules/locale/locale.module	2009-12-23 07:28:45.000000000 -0600
+++ modules/locale/locale.module.new	2009-12-28 16:37:06.000000000 -0600
@@ -151,7 +151,7 @@ function locale_menu() {
     'file' => 'locale.inc',
     'file path' => 'includes',
   );
-  $items['admin/config/regional/language/edit/%'] = array(
+  $items['admin/config/regional/language/edit/%language'] = array(
     'title' => 'Edit language',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('locale_languages_edit_form', 5),
@@ -160,7 +160,7 @@ function locale_menu() {
     'file path' => 'includes',
     'type' => MENU_CALLBACK,
   );
-  $items['admin/config/regional/language/delete/%'] = array(
+  $items['admin/config/regional/language/delete/%language'] = array(
     'title' => 'Confirm',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('locale_languages_delete_form', 5),
@@ -213,7 +213,7 @@ function locale_menu() {
     'file' => 'locale.inc',
     'file path' => 'includes',
   );
-  $items['admin/config/regional/translate/edit/%'] = array(
+  $items['admin/config/regional/translate/edit/%translation'] = array(
     'title' => 'Edit string',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('locale_translate_edit_form', 5),
@@ -222,10 +222,10 @@ function locale_menu() {
     'file' => 'locale.inc',
     'file path' => 'includes',
   );
-  $items['admin/config/regional/translate/delete/%'] = array(
+  $items['admin/config/regional/translate/delete/%translation'] = array(
     'title' => 'Delete string',
-    'page callback' => 'locale_translate_delete_page',
-    'page arguments' => array(5),
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('locale_translate_delete_form', 5),
     'access arguments' => array('translate interface'),
     'type' => MENU_CALLBACK,
     'file' => 'locale.inc',
@@ -243,7 +243,7 @@ function locale_menu() {
     'file' => 'locale.inc',
     'file path' => 'includes',
   );
-  $items['admin/config/regional/date-time/locale/%/edit'] = array(
+  $items['admin/config/regional/date-time/locale/%language/edit'] = array(
     'title' => 'Localize date formats',
     'description' => 'Configure date formats for each locale',
     'page callback' => 'drupal_get_form',
@@ -253,7 +253,7 @@ function locale_menu() {
     'file' => 'locale.inc',
     'file path' => 'includes',
   );
-  $items['admin/config/regional/date-time/locale/%/reset'] = array(
+  $items['admin/config/regional/date-time/locale/%language/reset'] = array(
     'title' => 'Reset date formats',
     'description' => 'Reset localized date formats to global defaults',
     'page callback' => 'drupal_get_form',
