0byt3m1n1
Path:
/
data
/
applications
/
aps.bak
/
tikiwiki
/
1.9.7-31
/
htdocs
/
lib
/
[
Home
]
File: Babelfish.php
<?php // $Header: /cvsroot/tikiwiki/tiki/lib/Babelfish.php,v 1.8.4.4 2006/06/09 09:38:29 mose Exp $ // Tiki is copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al. // All Rights Reserved. See copyright.txt for details and a complete list of authors. // Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details. // This file copyright (c) 2002-2003, Ross Smith II //this script may only be included - so its better to die if called directly. if (strpos($_SERVER["SCRIPT_NAME"],basename(__FILE__)) !== false) { header("location: index.php"); exit; } /*! \static */ class Babelfish { /*! Return the host name of the server \todo move to Tikilib class \static */ function host() { if (isset($_SERVER['HTTP_HOST'])) { // HTTP_HOST already includes a ':port' if it is used return $_SERVER['HTTP_HOST']; } if (!isset($_SERVER['SERVER_NAME'])) { return false; } $rv = $_SERVER['SERVER_NAME']; if (!isset($_SERVER['SERVER_PORT'])) { return $rv; } if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on')) { if ($_SERVER['SERVER_PORT'] != 443) { $rv .= ':' . $_SERVER['SERVER_PORT']; } } else { if ($_SERVER['SERVER_PORT'] != 80) { $rv .= ':' . $_SERVER['SERVER_PORT']; } } return $rv; } /*! Return babelfish URL to translate \c $lang_from to \c $lang_to \static */ function url($lang_from, $lang_to) { $lang_from = substr($lang_from,0,2); $lang_to = substr($lang_to,0,2); static $url_map = array( 'en' => '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() . urlencode($_SERVER['REQUEST_URI']) . (strpos('?', $_SERVER['REQUEST_URI']) ? '&' : '?') . 'babelfish=' . $lang_from . '_' . $lang_to; return $url; } /*! Return HTML of babelfish links \static */ function links($lang_from = 'en') { $lang_from = substr($lang_from,0,2); static $fishes = array( 'en' => array( # 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' => array( # French 'de' => 'Übersetzen Sie diese Seite in Deutschen', 'en' => 'Translate this page into English', ), 'de' => array( # German 'en' => 'Translate this page into English', 'fr' => 'Traduisez cette page en français', ), 'it' => array( # Italian 'en' => 'Translate this page into English', ), 'es' => array( # Spanish 'en' => 'Translate this page into English', ), 'pt' => array( # Portugese 'en' => 'Translate this page into English', ), 'ru' => array( # 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 array(); } $a = array(); foreach ($fishes[$lang_from] as $lang_to => $msg) { $a[] = array('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') { $lang = substr($lang,0,2); static $s = "<script language=\"JavaScript1.2\" src=\"http://www.altavista.com/static/scripts/translate_%s.js\"></script>"; $lang = strtolower($lang); switch ($lang) { case 'en': return sprintf($s, "engl"); case 'de': return sprintf($s, "german"); case 'fr': return sprintf($s, "french"); case 'it': return sprintf($s, "italien"); case 'es': return sprintf($s, 'spanish'); case 'pt': return sprintf($s, 'port'); } return ''; } } ?>