1

多言語のウェブサイトを作成するにはどうすればよいですか? このURLにはいくつかの情報がありますが、多言語についてはより明確ではありません。

PHPで多言語サイトを構築したいと思います。記事、メニュー、本、その他たくさんのテーブルがあります

すべてのテーブルには多言語の無制限の言語が含まれ、データベースに言語を割り当てます。その後、新しい言語は次のような挿入フォームで表示されます

Insert Article

tab-English / tab-France / tab-Bengali /....etc

私はこのように考えています。

言語

id_language
language_name

記事-テーブル

id_article
date

article_language

id_article_language
id_article
id_language
article_title
article_description

したがって、テーブルの新しい言語を有効にすると、右側にタブが表示され、クエリ文字列がln = Englishのように表示されるため、記事に英語のデータが挿入されます。

この多言語サイトを管理する方法を知っている人はいますか?

4

1 に答える 1

4

データベースの終わりはかなりうまくいったようです。私には良さそうです。

クライアント側では、クエリ文字列に言語を追加する必要はありません。サイトごとに異なるため、すべてのリンクにそのクエリ文字列を動的に追加する必要があるため、これにより多くの作業が発生します。

http://www.example.com/en/一部のサイトではやのようなトップ レベル ディレクトリを使用http://www.example.com/de/していますが、私の意見では、国コード TLD ( ccTLD ) を購入して、サイトのさまざまな言語がさまざまなドメインにあるようにすることをお勧めします: www.google.comwww.google.com.eswww.google.de. 次に、HTTPAccept-Languageヘッダーを使用して、リダイレクトするドメインを決定できます。PHP などの言語を使用して、ユーザーの Accept-Language ヘッダーを解析できます

正気を保つためだけでなく、検索エンジンでの作業を容易にするために、クエリ文字列よりも ccTLD またはトップ レベルのディレクトリを使用することをお勧めします。一部のスパイダーはln=en、クエリ文字列内の と返される言語との相関関係を理解できません。ccTLD を使用すると、コンテンツが特定のロケールの特定の言語で提供されていることが、ユーザーの介入なしにスパイダーに通知されます。

応答で適切なHTTPContent-Languageヘッダーも提供する必要があることを思い出してください。php では、次のようになります。

header('Content-Language: en-US'); //or en-GB, or es-ES

RFC1766に準拠するこれらの国コードのいずれかを使用できます。

編集: @RepWhoringPeeHaa が指摘したように、すべての HTML ファイルのタグで言語を指定する <head>こともできます。

<META HTTP-EQUIV="Content-Language" Content="en" />
于 2012-04-21T18:37:28.047 に答える