2009-07-18 23 views
1

私はウェブサイトのホームページをクライアントの言語でご希望です。サイトは1か所でホストされているため、n個の国からアクセスできます。だから私は、要求されたクライアントブラウザの言語でホームページを持っていたい。多言語ウェブサイト

重要な点も1つあります。クライアント言語がサーバーでサポートされていない場合は、フォールバック言語でサイトを表示する必要があるとします。

サイト/リンクの例がありますか?

答えて

5

これは、一般的なアドバイスと同じくらい質問に対する答えではありません。GeoIP、ブラウザ言語などに基づいて、あなたに最適な言語でユーザーに出力を送信することを決定した場合あなたが言語を知らなくても、サイト上の言語選択コントロールを見つけることは非常に簡単です。

ハンガリー語でサイトを表示するのではなく、ブラウザの設定にアクセスできないコンピュータを使用してホテルのロビーにいることになります(言語を話さない限り)。

Swedeでスウェーデン語を母語とするにもかかわらず、翻訳されたものの前に英語またはドイツ語の英語またはドイツ語のサイトがほとんどいつも好きです。重要なことはあまりにも頻繁に翻訳の方法で失われ、言語が私を止めない限り、私は何を好むか知っています。私はこれが大部分のユーザにとって「正常な状況」ではないことを認識していますが、私たちの心に留めておいてください。

+1

エクセレントポイント(私は+100ことはできますか?)!これは質問に対する正確な答えではないかもしれませんが、私はそれが答えよりも重要だと思います。 – Hemant

+0

@Hemantありがとう... – Fredrik

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 =アン

<?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 
?>