#!/usr/local/bin/php -q
<?

$out = '<?
/*
 * languages.php:
 * File mapping language names to language codes.
 * *** Automatically generated by getlangcodes.php ***
 * 
 * Copyright (c) 2005 UK Citizens Online Democracy. All rights reserved.
 * Email: matthew@mysociety.org. WWW: http://www.mysociety.org
 *
 */

/* $languages_name_to_code
 * ISO 639-1 alpha-2 language code and language names, taken from
 * http://www.loc.gov/standards/iso639-2/ISO-639-2_values_8bits.txt */
$languages_name_to_code = array(
';

$file = file('http://www.loc.gov/standards/iso639-2/ISO-639-2_values_8bits.txt');
$seen = array();
foreach ($file as $line) {
    $cols = explode('|', $line);
    if ($cols[2]) {
        $names = explode('; ', $cols[3]);
        foreach ($names as $name) {
            if (strstr($name, 'Greek')) $name = 'Greek';
            $name = utf8_encode($name);
            if (!array_key_exists($name, $seen)) {
                $out .= "'$name' => '$cols[2]',\n";
                $seen[$name] = true;
            }
        }
    }
}

$out .= ');

/* $languages_code_to_name
 * Map from ISO 639-1 code to (possibly only one of) language name. */
$languages_code_to_name = array();
foreach ($languages_name_to_code as $languages_language => $languages_code) {
    if (!array_key_exists($languages_code, $languages_code_to_name)) {
        $languages_code_to_name[$languages_code] = $languages_language;
    }
}

?>';

$fp = fopen('../phplib/languages.php', 'w');
fwrite($fp, $out);
fclose($fp);

?>
