2009-06-05 19 views
3

私は現在英語のウェブサイトを持っています。ユーザーが別の言語をクリックしたときに別の言語に切り替えることができるようにしたい(サイトに国旗のアイコンがほとんどない)。私は現在しようとしている方法は、例えば、配列である:PHP - ウェブサイトを複数の言語に翻訳する方法は?

$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

あなただけのAPIをGoogle翻訳を使用することができます。

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

それは、ドキュメントのトンを持っており、Googleのコードの遊び場にそれを使用する方法の例があります

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

ajax>翻訳

+2

"それに頼ると、自動翻訳が適用されます。すべての言語が文章構造を共有しているわけではありません"(Googleの自動翻訳)。元の意図: "私には非常に楽観的な自動翻訳に頼っています。(...)"ケースが閉じました。 – Piskvor

+0

これは翻訳が非常に貧弱になります。 –

-2

私はWindows LiveやGoogle Translate APIにあなたのサイトをフックすることをお勧めします。 Googleのことはわかりませんが、Windows Live APIは本当に使いやすいようです。ユーザーがクリックしたとき、またはあなたがして、「コンテンツ」のデータベースに異なるテーブルでそれらの両方を格納ロードされているテーブル変更、二つの言語でページ上のすべてのコンテンツを書き出すことができ

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

言語を変更ボタン。今、あなたの大部分は、両方の言語でコンテンツを書き直すことになります。

+1

heh。マイクロソフト – JasonV

+0

google apiとlive apiは、配列の処理方法が同じであるようです。 dbを使用するのではなく、ハードコーディングする時間を節約するためです。私は配列をレイアウトした方法私はどのように私のURLのパラメータに基づいて英語または日本語を呼び出すことができますか?例えば:index.php?l = en – SarmenHB

+0

Google api(ライブについてのidk)は、URLで行うことができます。また、翻訳されたテキストを配列に格納する必要はありません.Googleではすべての作業を行います。あなたはそれにjavascript関数の引数を渡すだけです。より詳しい情報については、Googleのコードの遊び場をご覧ください – JasonV

1
  • コンテンツデータベース(または私は推測ファイル)ページあたり
  • エントリ言語ごとのID
  • によって参照
  • 言語IDは、必要に応じて、後続の訪問のためのクッキーに覚え
  • 変数$ _SESSIONに設定

このシステムではカスタムCMS @www.grandhall.euを使用しました。パンフレット&他のダウンロードを考慮に入れる必要があるとき、それは特に楽しいものになります。

5

最終的にl10nのサポートにつながる完全なi18nサポートを探しているとすれば、これらのことをサポートするPHPフレームワークにあなたのページを書くことをお勧めします。

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

i18nはZend、CakePHP、Code Igniterでサポートされていることも知っています。

+1

私は2番目のSymfonyを使用すると、文字列を簡単に取り出して翻訳用のファイルにすることができます。 –

+0

+1 for symfony。ローカリゼーションと国際化が容易になります! – phidah

関連する問題