これに取り組むにはいくつかの方法があります。それらのどれも「最良の方法」ではなく、短期的または長期的に問題を抱えています。最初に言うことは、多言語サイトは簡単ではなく、翻訳者や素敵な人々ですが、一緒に仕事をするのは難しく、ほとんどのプログラマーはこの問題を技術的なものとしてのみ見ています。翻訳するのかローカライズするのかについては、この回答の範囲外の別の側面もあります。これには、対象となる聴衆の文化的慣習を見てから、その文化に合わせて言語、スタイル、レイアウト、色、書体などを調整することが含まれます。最後に、MT、機械翻訳は、深刻な場合や正確である必要がある場合は使用しないでください。翻訳者を取得するときは、外国語から母国語に翻訳していることを確認してください。つまり、ターゲット言語のすべてのニュアンスを理解していることを意味します。
右。ソリューション。サイトを書き直したくないということに基づいて、所有しているサイトのクローンを作成し、コピーをターゲット言語に翻訳するだけです。コードベースが安定していると仮定すると、VCSを使用してコードの変更を管理できます。サイトの個々の部分をターゲット言語に合わせて微調整できます。たとえば、フランス語のテキストは同等の英語のテキストよりも平均30%大きいため、1つのサイトを使用して配信すると、フォーマットの問題が発生し、言語に応じて異なるcssファイルを出し入れします。それを行うには不格好な方法に思えるかもしれませんが、サイトはどのくらいの期間存在するのでしょうか。この方法で行うことによる管理オーバーヘッドは、他のオプションよりも少ない可能性があります。
再構築せずに2番目の方法。現在のサイトのすべてのコンテンツをタグに置き換えてから、ファイルまたはデータベーステーブルに別の言語を配置し、ユーザーの希望する言語をスニッフィングします(設定できる登録ユーザーがいますか、ブラウザーの言語タグを取得しますか?選択を行うのはURLdot-comdot-fr、dot-deになります)、タグをターゲット言語に置き換えます。次に、サイズの問題と画像の問題に別々に対処する必要があります。このソリューションは、SymfonyやZendなどのフレームワークがl10nを実装するときに有効になります。
次に、フレームワークまたはgettextを使用して再構築し、よりクリーンなソリューションを使用できますが、フレームワークは翻訳ではなく他の問題を解決するように設計されており、翻訳コンポーネントは完全なソリューションではなく部分的なソリューションとしてフレームワークに組み込まれています。
すべてのソリューションの大きな問題は、継続的なメンテナンスです。コードベースだけでなく、維持する複数の言語ベースもあるからです。すべてを1つのソリューションにまとめることが本当に賢く効果的でない限り、進行中のタスクを実行することは困難です。