Source for file Babelfish.php
Documentation is available at Babelfish.php
* Tiki is copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al.
* All Rights Reserved. See below for details and a complete list of authors.
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See http://www.gnu.org/copyleft/lesser.html for details.
* This file copyright (c) 2002-2003, Ross Smith II
* Return the host name of the server
* @todo move to BitBase class
if (isset ($_SERVER['HTTP_HOST'])) {
// HTTP_HOST already includes a ':port' if it is used
return $_SERVER['HTTP_HOST'];
if (!isset ($_SERVER['SERVER_NAME'])) {
$rv = $_SERVER['SERVER_NAME'];
if (!isset ($_SERVER['SERVER_PORT'])) {
if (isset ($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on')) {
if ($_SERVER['SERVER_PORT'] != 443) {
$rv .= ':' . $_SERVER['SERVER_PORT'];
if ($_SERVER['SERVER_PORT'] != 80) {
$rv .= ':' . $_SERVER['SERVER_PORT'];
* Return babelfish URL to translate \c $lang_from to \c $lang_to
function url($lang_from, $lang_to) {
$lang_from = strtolower($lang_from);
$lang_to = strtolower($lang_to);
if (!isset ($url_map[$lang_from])) {
$url = 'http://jump.altavista.com/translate_' . $url_map[$lang_from] . '.go' .
'?http://babelfish.altavista.com/babelfish/tr?doit=done' .
'&lp=' . $lang_from . '_' . $lang_to .
if (isset ($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
(strpos('?', $_SERVER['REQUEST_URI']) ? '&' : '?') .
'babelfish=' . $lang_from . '_' . $lang_to;
* Return HTML of babelfish links
* @param lang_from Language to translate from
function links($lang_from = 'en') {
'de' => 'Übersetzen Sie diese Seite ins Deutsche',
'es' => 'Traduzca esta paginación a español',
'fr' => 'Traduisez cette page en français',
'it' => 'Tradurre questa pagina in italiano',
'pt' => 'Traduza esta página em portuguêses',
'zh' => '翻译这页成汉语 (CN)',
'ja' => '日本語にこのページを翻訳しなさい (Nihongo)',
'ko' => '한국인으로 이 페이지를 번역하십시요 (Hangul)',
'de' => 'Übersetzen Sie diese Seite in Deutschen',
'en' => 'Translate this page into English',
'en' => 'Translate this page into English',
'fr' => 'Traduisez cette page en français',
'en' => 'Translate this page into English',
'en' => 'Translate this page into English',
'pt' => array( # Portugese
'en' => 'Translate this page into English',
'en' => 'Translate this page into English',
// \todo Use phpsniff or PEAR's Net_UserAgent_Detect to detect the browser type
// as Netscape 4.x and possibly others displays 'ꯍ' literally
// if (preg_match('/(mozilla\/4)/i', $_SERVER['HTTP_USER_AGENT'])) {
// $fishes['en']['zh'] = 'Translate this page into Chinese (CN)';
// $fishes['en']['ja'] = 'Translate this page into Japenese (Nihongo)';
// $fishes['en']['ko'] = 'Translate this page into Korean (Hangul)';
// If we have already translated this page (babelfish=en_fr), then don't display the strings again
if (!isset ($fishes[$lang_from]) || isset ($_GET['babelfish'])) {
foreach ($fishes[$lang_from] as $lang_to => $msg) {
$a[] = array('target' => $lang_to,
* Return javascript code to display babelfish logo
function logo($lang = 'en') {
static $s = "<script language=\"JavaScript1.2\" src=\"http://www.altavista.com/r?%str\"></script>";
$lang = strtolower($lang);
return sprintf($s, $lang);
|