get rid of smart getlocale, folders for languages

git-svn-id: https://webim.svn.sourceforge.net/svnroot/webim/trunk@706 c66351dc-e62f-0410-b875-e3a5c0b9693f
This commit is contained in:
Evgeny Gryaznov 2009-12-19 23:35:54 +00:00
parent 23e6e1edb5
commit fa7330b365
4 changed files with 12 additions and 45 deletions

6
site/.htaccess Normal file
View File

@ -0,0 +1,6 @@
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?mibew\.org [NC]
RewriteBase /
RewriteRule ^(ru|en|sp)/(.*) $2?intlocale=$1 [L]
RewriteRule ^(ru|en|sp)$ $1/ [R,L]

View File

@ -16,7 +16,7 @@
if($k == $current_locale) {
echo "<a href=\"#\" class=\"inactive\">".$v."</a>";
} else {
echo "<a href=\"?locale=$k\">".$v."</a>";
echo "<a href=\"".($k != "en" ? "/$k" : "")."/\">".$v."</a>";
}
}
?>

View File

@ -6,9 +6,9 @@
</div>
<div id="menu">
<ul>
<li<?php echo $page == 'home' ? ' class="active"' : '' ?>><a href="/index.php"><?php echo getlocal("menu.home") ?></a></li>
<li<?php echo $page == 'demo' ? ' class="active"' : '' ?>><a href="/demo.php"><?php echo getlocal("menu.demo") ?></a></li>
<li<?php echo $page == 'downl' ? ' class="active"' : '' ?>><a href="/download.php"><?php echo getlocal("menu.download") ?></a></li>
<li<?php echo $page == 'home' ? ' class="active"' : '' ?>><a href="index.php"><?php echo getlocal("menu.home") ?></a></li>
<li<?php echo $page == 'demo' ? ' class="active"' : '' ?>><a href="demo.php"><?php echo getlocal("menu.demo") ?></a></li>
<li<?php echo $page == 'downl' ? ' class="active"' : '' ?>><a href="download.php"><?php echo getlocal("menu.download") ?></a></li>
<li><a href="http://support.openwebim.org"><?php echo getlocal("menu.ticket") ?></a></li>
<li><a href="/forums/"><?php echo getlocal("menu.support") ?></a></li>
</ul>

View File

@ -42,52 +42,13 @@ function verifyparam( $name, $regexp, $default = null ) {
exit;
}
function get_user_locale() {
global $available_locales, $default_locale;
if( isset($_COOKIE['webim_locale']) ) {
$requested_lang = $_COOKIE['webim_locale'];
if( in_array($requested_lang,$available_locales) )
return $requested_lang;
}
if( isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ) {
$requested_langs = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
foreach( $requested_langs as $requested_lang) {
if( strlen($requested_lang) > 2 )
$requested_lang = substr($requested_lang,0,2);
if( in_array($requested_lang,$available_locales) && $requested_lang != 'ru' /* do not detect RU */ )
return $requested_lang;
}
}
if( in_array($default_locale,$available_locales) )
return $default_locale;
return 'en';
}
function get_locale() {
global $available_locales, $siteroot;
$locale = verifyparam("locale", "/^[\w-]{2,5}$/", "");
if( $locale && in_array($locale,$available_locales) ) {
$_SESSION['locale'] = $locale;
setcookie('webim_locale', $locale, time()+60*60*24*1000, "$siteroot/");
} else if( isset($_SESSION['locale']) ){
$locale = $_SESSION['locale'];
}
$locale = verifyparam("intlocale", "/^[\w-]{2,5}$/", "");
if( !$locale || !in_array($locale,$available_locales) )
$locale = get_user_locale();
$useragent = isset($_SERVER['HTTP_USER_AGENT']) ? strtolower($_SERVER['HTTP_USER_AGENT']) : "";
if( $locale == 'ru' && preg_match( "/googlebot[\\s\/]?(\\d+(\\.\\d+)?)/", $useragent) ) {
$locale = "en";
}
return $locale;
}