'english', 'fr' => 'french', 'de' => 'german', 'it' => 'italian', 'es' => 'spanish', 'pt' => 'portugese', ]; $lang_from = strtolower($lang_from); $lang_to = strtolower($lang_to); if (!isset($url_map[$lang_from])) { return ''; } $url = 'http://jump.altavista.com/translate_' . $url_map[$lang_from] . '.go' . '?http://babelfish.altavista.com/babelfish/tr?doit=done' . '&lp=' . $lang_from . '_' . $lang_to . '&urltext=http'; if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') { $url .= 's'; } $url .= '://' . Babelfish::host() . $_SERVER['REQUEST_URI'] . (strpos('?', $_SERVER['REQUEST_URI']) ? '&' : '?') . 'babelfish=' . $lang_from . '_' . $lang_to; return $url; } /** * Return HTML of babelfish links * * @param lang_from Language to translate from */ function links($lang_from = 'en') { static $fishes = [ 'en' => [ # English '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)', ], 'fr' => [ # French 'de' => 'Übersetzen Sie diese Seite in Deutschen', 'en' => 'Translate this page into English', ], 'de' => [ # German 'en' => 'Translate this page into English', 'fr' => 'Traduisez cette page en français', ], 'it' => [ # Italian 'en' => 'Translate this page into English', ], 'es' => [ # Spanish 'en' => 'Translate this page into English', ], 'pt' => [ # Portugese 'en' => 'Translate this page into English', ], 'ru' => [ # Russian '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'])) { return []; } $a = []; foreach ($fishes[$lang_from] as $lang_to => $msg) { $a[] = ['target' => $lang_to, 'href' => Babelfish::url($lang_from, $lang_to), 'msg' => $msg, ]; } return $a; } /** * Return javascript code to display babelfish logo * * \static */ function logo($lang = 'en') { static $s = ""; $lang = strtolower($lang); switch ($lang) { case 'en': case 'de': case 'fr': case 'it': return sprintf($s, $lang); case 'es': return sprintf($s, 'esp'); case 'pt': return sprintf($s, 'port'); } return ''; } } ?>