2009-07-18 167 views
1

我想用我的客户的语言有我的网站的主页。由于网站托管在一个位置,但可以通过任意n个国家/地区访问。所以我想用所请求的客户端浏览器的语言来设置主页。多种语言的网站

还有一个很重要的一点,即如果客户端语言不是在服务器支持那么网站应该在后备语言可见的假设。

你有任何示例网站/良好的链接?

回答

5

这是不是一个真正的答案,不亚于一般的咨询问题...如果你决定将输出发送到该语言的用户,你认为最适合他/她基于GeoIP的,浏览器语言等。确保在任何时候都能够非常简单地在网站上查找语言选择控件,即使您不知道该语言。

没有什么比在匈牙利展示网站更让人讨厌的了,因为您恰好在酒店大堂使用电脑,而您无法访问浏览器设置(除非您使用该语言)。

而且,尽管是一个瑞典人和瑞典有作为我的第一语言,我几乎总是喜欢英语或德语的英语或德语网站的翻译之一的前面。重要的事情经常会以翻译的方式迷失,只要语言不会阻止我,我知道我更喜欢什么。我知道这不是大多数用户的“正常情况”,但请记住:)

+1

优秀点(我能+100?)!这可能不是问题的确切答案,但我认为它比答案更重要。 – Hemant 2009-07-18 09:27:07

0

这是我如何创建多语种网站。它也有备用语言选项。

代码语言:PHP

目录结构:

/ 
|- core 
| |- init.php 
| `- lang 
|  |- en_US.UTF-8.ini 
|  `- hi_IN.UTF-8.ini 
| 
`- dashboard.php 

语言文件名:的en_US.UTF-8.ini

[Headers] 
HEADER_DASHBOARD = "Dashboard"; 
HEADER_USERS  = "Users"; 
HEADER_GROUPS = "Groups"; 
HEADER_HELP  = "Help"; 

[MainMenu] 
MENU_DASHBOARD = "Dashboard"; 
MENU_USERS  = "Users"; 
MENU_GROUPS = "Groups"; 
MENU_HELP  = "Help"; 

文件名:的init.php

<?php 
$available_lang = [ 
     'en' => 'en_US.UTF-8', 
     'hi' => 'hi_US.UTF-8', 
     ]; 

//check if requested language is available or fallback to default. 
$language = (isset($available_lang[$_GET['ln']])) ? $available_lang[$_GET['ln']]:'en_US.UTF-8'; 

$_SESSION['language'] = $_GET['ln']; 

$ini = parse_ini_file("/core/lang/" . $language . ".ini"); 
?> 

文件名:dashboard.php LN = EN

<?php 
require_once 'core/init.php'; 

if ($_SESSION['language']) == 'en') { 
    echo '<a href="?ln=hi">Hindi</a>'; 
} else { 
    echo '<a href="?ln=en">English</span></a>'; 
} 

// example uses 
echo $ini['HEADER_GROUPS']; // Dashboard 
?>