2011-06-10 4 views
0

サイトを別の言語で利用できるようにする必要があります。 PHP 5.xおよびMySQL 5.xの使用。私はサイト全体で静的なテキストのためにうまくいくと思われるgettextを使用すると思いますが、dbに格納されている動的データはどうですか?物語、イベントのビジネスリスティングなどのことを指しています。私はそれらをどのように別の言語で表示するのですか?私の最初の考えは、彼らがサイトで使用したい言語ごとに1つずつ、ストーリー、イベント、またはリスティングの複数のバージョンを入力できるように、バックエンドにありました。しかし、何千語もの言語が表示されることがあります。誰かが私に指すことができるより良い解決策/アイデアはありますか?PHPローカリゼーションと動的データ

私が考えていた別の問題は、現在、イベント/ストーリー/リスティングを検索することを可能にしています。別の言語ではどのように動作しますか?誰かがスペイン語で表示するサイトを選択したと仮定すると、スペイン語を使用してサイトを検索しますが、dbの情報が英語であれば、そのことが分かりません。それに関する提案はありますか?

答えて

0

すべての言語でストーリーが正しいようにするには、すべての言語でストーリーを保存し、バックエンドで翻訳を実行するか、最初に考えたとおりの言語でストーリーを入力する必要があります。

好きではない場合は、ページにgoogle translate elementを追加して、自動(正しくない)翻訳を提供することができます。

検索の質問については、データベースのフィールド内のキーワードは、ユーザーと同じ言語でのみ検索します。 Joeがあなたのページを英語で訪問している場合は、データベースのtitle_en、content_en、description_enフィールドで検索用語を探します(記事ごとに1つの行があり、データベース内の翻訳が1つの場合はlanguage = 'en' 1つの記事につき1行(すべての翻訳が内部にあります)。明らかに、これはすべての翻訳をデータベースに置いた場合にのみ機能します。

+0

実際、それは私にアイデアを与えました。バックエンドの管理ツールでは、物語のような項目を手動で翻訳したくない場合は、google apiを使用して、必要な言語に自動翻訳します。明らかに翻訳はうまくいかないかもしれませんが、少なくとも両世界のベストを得ると思います。 – John

0

私が見てきた最良の解決策はこれです。

あなたが記述しているように、CMSサイトは一定の状態にあり、いくつかの言語で翻訳された新しい記事が追加されています。

選択した言語の記事がまだ翻訳されていない場合は、デフォルトの言語(英語?)を表示してください。

次に、あなたのケースにアピール任意のアイデアを選ぶ:

a)のページ入力ボックス上に投げると、あなたのためにそれを翻訳するために、あなたの聴衆を招待も英語で既定の記事を示す場合。

b)にもページに変換するだけでなく、

C以上Aを)やってGoogleにコンテンツを送信するためのオファーを置く英語のデフォルトの記事を表示する場合は)、翻訳に報奨金を入れてoptionaly行います)および/または上記のb)。