указателя index, html , en, французский - index, html, fг, и т. д.
PHPWeather: практический пример
PHP Weather (http://sourceforge.net/projects/phpweat"> http://sourceforge.net/projects/phpweat - это сценарий, который показывает на веб-сайте погоду в данный момент. Поскольку этот сценарий переведен более чем на десять языков, проблемы il8n будут возникать постоянно.
PHP Weather получает сводку погоды в файле, закодированном в специальном формате. Эти файлы данных, METAR, как их называют (http://weat- her.noaa.gov/weather /лгегаг.вЛШОсоздаются один или два раза в час в аэропортах всего мира. РНР Weather может получать METAR из примерно 3000 аэропортов через FTP или HTTP с центрального сервера. В результате раскодирования получается много информации. Мы узнаем, что ветер ду
ет с севера со скоростью, допустим, 5 миль в час. Можно также узнать, что нижняя граница облачности лежит на высоте 5000 футов, и т. д.
После извлечения информации из METAR помещаем ее в примерно такие предложения:
echo("The temperature is $temp_f degrees Fahrenheit ($temp_c degrees Celsius).");
В данном примере в переменных $temp_f и $temp_c уже содержится значение температуры, измеренное в градусах Фаренгейта и Цельсия.
Конечно, некоторые строки в METAR сложнее. Если взять, например, информацию о ветре, то там много необязательных сведений. Там могут быть данные о шквалах или перемене направления ветра, поэтому строки становятся меньше или операторы if могут стать больше. Здесь мы просто построим логику, необходимую для помещения строк на английском языке в сценарий. Код будет выглядеть так:
if(isset($cloud_layer1_altitude_ft)) {
$sky_str = "There were <b>$cloud_layer1_condition</b> at a height of " . "<b>$cloud_layer1_altitude_fTi</b> meters" . "(<b>$cloud_layer1_altitude_ft</b> feet)";
} else {
Jsky_str = "The sky was <b>clear</b>";
}
Этот маленький фрагмент кода создает строку:
There were scattered clouds at a height of 2438 meters (8000 feet)
Слово «scattered» входило в данные, возвращенные функцией, декодировавшей METAR.
Теперь, если пользователь попробует перевести этот код на датский язык, то поскольку на il8n не было обращено никакого внимания, придется просто просмотреть файл и заменить все английские строки эквивалентными датскими. Хотя сценарий создан для того, чтобы генерировать сообщения на английском, он будет также работать с прямой заменой на датский, возможно, благодаря тому, что словарь метеосводок достаточно ограничен.