3

現在英語のウェブサイトを持っています。ユーザーが別の言語をクリックしたときに、別の言語に切り替えられるようにしたいと考えています (サイトには国旗のアイコンがほとんどありません)。私が現在試みている方法は、配列を使用することです。

$english = array('index',
           array('h1' => 'this is some h1 text', 
                 'h2' => 'this is some h2 text'));

$japanese = array('index',
            array('h1' => '世界交換への歓迎',
                  'h2' => 世界交換への'));


print $english[index][h1];
print $japanese[index][h2];

ご覧のとおり、これをすべてのページに対して個別の言語で行うと、非常に大量のコードになります。他にどのような方法を試すことができますか?

4

4 に答える 4

6

最終的にl10nサポートにつながる完全なi18nサポートを探していることを考えると、これらをすぐにサポートするPHPフレームワークでページを作成することをお勧めします。

個人的には、Symfonyフレームワークでのみ翻訳を行っています。これらは、コンテンツ用のDBのi18nテーブル拡張と、インターフェイスの変換用のXLIFFファイルの組み合わせを使用します。セットアップ後はかなり透過的であり、フレームワークを使用すると、このサポートをすべて手作業で作成する必要がなくなります。

また、i18nがZend、CakePHP、およびCodeIgniterでサポートされていることも知っています。

于 2009-06-05T04:17:29.160 に答える
1
  • コンテンツデータベース(または私が推測するファイル)
  • 各言語のページあたりのエントリ
  • IDによって参照される言語
  • $_SESSION変数に設定されたID
  • オプションで、その後の訪問のためにCookieに記憶されます

私はこのシステムをカスタムCMS@www.grandhall.euで使用しました。パンフレットやその他のダウンロードなどを考慮する必要がある場合は、特に楽しくなります。

于 2009-06-05T04:01:52.483 に答える
-2

サイトを Windows Live または Google Translate API に接続することをお勧めします。Google については知りませんが、Windows Live API は非常に使いやすいようです。

http://msdn.microsoft.com/en-us/magazine/dd569750.aspx

または、ページ上のすべてのコンテンツを 2 つの言語で書き出し、両方を「コンテンツ」データベースの異なるテーブルに保存し、ユーザーが言語の変更ボタンをクリックしたときに読み込まれるテーブルを変更することもできます。さて、骨の折れる仕事の大半は、両方の言語でコンテンツを書き直すことです。

于 2009-06-05T03:52:35.747 に答える
-4

Google 翻訳 API を使用できます。

http://code.google.com/apis/ajaxlanguage/

大量のドキュメントがあり、Google コード プレイグラウンドで使用する方法の例があります。

http://code.google.com/apis/ajax/playground/

ajax > translation をブラウズするだけです

于 2009-06-05T03:45:01.470 に答える