$old_translations = loadPOT($pot_file);
 $sources = array_keys($old_translations);
 foreach ($sources as $i => $source) {
     if (strlen(trim($source)) == 0) {
         unset($sources[$i]);
         continue;
     }
 }
 $old_src = chooseMenuValue("Which string would you like to change?", $sources);
 do {
     $new_src = trim(ask("What is the new source?"));
 } while (!simple_prompt("Replace:\n\t{$old_src}\nto:\n\t{$new_src}"));
 if (simple_prompt("Would you like to preserve the existing translations in the .po files for the locales " . implode(",", array_keys($avail_locales)) . "?")) {
     foreach ($avail_locales as $avail_locale => $avail_locale_file) {
         I2CE::raiseError("Updateing {$lp_module}'s {$avail_locale}.po");
         $loc_translations = loadPot($avail_locale_file);
         $top_module = $found_modules[$module];
         $new_loc_translations = array();
         foreach ($loc_translations as $key => $vals) {
             if ($key == $old_src) {
                 $key = $new_src;
             }
             $new_loc_translations[$key] = $vals;
         }
         writeOutPOT($avail_locale_file, $top_module, $module, $module_vers, $new_loc_translations);
     }
 }
 $new_translations = array();
 foreach ($old_translations as $key => $vals) {
     if ($key == $old_src) {
         $new_translations[$key] = $new_src;
$changed_pos = array();
foreach ($found_modules as $module => $top_module) {
    $launch_module = launchpad($module);
    $pot_dir = $templates_dir . DIRECTORY_SEPARATOR . $launch_module;
    if (!is_dir($pot_dir)) {
        if (!mkdir($pot_dir, 0775, true)) {
            usage("Could not make {$pot_dir}");
        }
    }
    $pot_file = $pot_dir . DIRECTORY_SEPARATOR . $launch_module . '.pot';
    if (!is_array($current_template = loadPOT($pot_file))) {
        continue;
    }
    $po_files = glob(dirname($pot_file) . DIRECTORY_SEPARATOR . "*.po");
    foreach ($po_files as $po_file) {
        if (!is_array($new_trans = loadPot($po_file))) {
            continue;
        }
        $old_content = array();
        exec("bzr cat -r " . $args['rev'] . " " . $po_file, $old_content);
        $old_content = $old_content;
        if (!is_array($old_trans = loadPotByContent($old_content))) {
            continue;
        }
        $changed = 0;
        foreach ($current_template as $english_source => $data) {
            if (!array_key_exists($english_source, $old_trans) || !is_array($old_trans[$english_source]) || !array_key_exists('msgstr', $old_trans[$english_source]) || !trim($old_trans[$english_source]['msgstr'])) {
                continue;
            }
            if (!array_key_exists($english_source, $new_trans) || !is_array($new_trans[$english_source]) || !array_key_exists('msgstr', $new_trans[$english_source]) || !trim($new_trans[$english_source]['msgstr'])) {
                echo "{$po_file}: " . $old_trans[$english_source]['msgstr'] . " missing ({$english_source})\n";