ホームページ >バックエンド開発 >PHPチュートリアル >多言語サポートの実装
多言語サイトを設定することは、新規顧客をビジネスに引き付ける良い方法かもしれません。いくつかの静的ページを使用して単純なサイトを翻訳することはおそらく複雑ではないでしょうが、複数の言語サポートを起動する際には、より複雑なPHP Webアプリケーションが多くの作業が必要になる場合があります。この記事では、サイトを国際化する際に検討する必要があるさまざまな種類のコンテンツを提示します。それらを異なる言語に翻訳する方法を知るために読んでください。
しかし、実際の翻訳はどのように行うべきですか?複数の言語コンテンツを処理する一般的な方法は、GetTextを使用することです。これは、さまざまなプログラミング言語で記述されたアプリケーションで翻訳を処理するために作成されたソフトウェアソリューションです。また、PHPで別の拡張機能として利用できます。 GetTextを使用すると、アプリの翻訳をソースコードから分離できます。その結果、翻訳を準備する責任者はコードを掘り下げる必要がなく、Web開発者から独立して動作することができます。翻訳の準備ができたら、PHPスクリプトによって読まれている別のファイルに入れられています。アプリケーションは、翻訳とコードに保存されたソーステキスト文字列と一致し、最後にエンドユーザーは適切な言語で表示されているサイトを見ることができます。
開発者として必要なことは、PHPアプリケーションのプレーンテキスト文字列をgetTextで渡すことができる文字列に変換することです。エイリアス_()(関数名はアンダースコアです)を使用して一般的にアクセスされるgetText()関数にテキストを巻く必要があります。これを行うことにより、特定のテキスト文字列を翻訳する必要があり、getTextで処理できることを指定します。
PHPアプリケーションでGetText翻訳を管理する方法の詳細を知りたい場合は、Abdullah Abouzekry:PHPアプリケーションのローカライズ「正しい方法」によって書かれた詳細を説明する完全なチュートリアルがあります。上記で説明したロジックの実用的な例をいくつか見るために、読むことをお勧めします。
また、FrameworkをPHPアプリケーションのベースとして使用している場合、翻訳の管理を担当するコンポーネントがおそらくあることに注意してください。フレームワークのドキュメントを確認して、複数の言語サポートの処理を簡素化するツールがあるかどうかを確認します。
より複雑なアプリケーションでは、サイトのコンテンツの大部分がデータベースに保存される場合があります。サイトが1つの言語のみをサポートしている場合、必要に応じてフェッチされているリソースの1つのバージョンを保存するだけです。ただし、複数の言語サイトを実装するには、データをデータベースに保存する方法を変更する必要があります。言語固有のリソースは、言語コードによって特定され、訪問者が設定した言語バージョンでフェッチする必要があります。開発者としての意味は、翻訳を処理できるようにデータベース構造を変更する必要がある可能性があることです。
複数の言語サイトのデータベース構造を作成する方法に関するベストプラクティスを知るために、異なるフレームワークで使用されているソリューションを調べることができます。一部のフレームワークは、指定されたモデルの翻訳の処理を担当する動作(モデルに追加の機能を提供するモジュール)を提供します。翻訳動作をモデルに添付した後、フレームワークは、複数の言語サポートを処理できるデータベース構造を使用して、さまざまな言語バージョンのデータを書き、読み取ります。 たとえば、
CakePHPフレームワークは、モデルに添付される可能性のある翻訳動作を提供します。そのためには、どのモデルフィールドが言語依存であるかを指定する必要があります。このようなフィールドが2つある記事テーブルがあると想像してみましょう。タイトルとテキスト:
翻訳を保存するには、これらの言語依存のフィールドを別の翻訳テーブルに移動する必要があります。翻訳テーブルの各行は、ベーステーブルを参照する言語バージョン、モデル、フィールド名によって識別されます。したがって、記事のテーブルは次のように見えます:
記事のタイトルとテキストは、翻訳を保持する別のテーブルに移動されました。ご覧のとおり、これらの各フィールドの単一の翻訳は別の行に保存されます。
最も重要なのは、cakePHPフレームワークがデータベースの読み取りと翻訳データの書き込みを自動的に処理することです。翻訳動作を添付した後、前と同じようにモデルメソッドを呼び出すことができ、フレームワークはメインテーブルを翻訳テーブル自体にリンクします。新しい行を保存するときに、選択されたステートメントに参加したり、データを複数のテーブルに挿入したりすることを心配する必要はありません。ドキュメントを閲覧して、この方法で翻訳を処理するコード例を表示してください。
他のフレームワークは、多くの場合、上記のような同様のソリューションを提供します。 Doctrine ORMでSymfony2フレームワークを使用している場合は、Doctrine翻訳可能な動作を確認して例を確認してください。あなたのサイトがどんなフレームワークでも実行されていない場合は、データベースで翻訳を処理する独自の方法を実装するときに上記のソリューションを参照できます。
サイトで訪問者が投稿または製品に接続されたコメントやレビューを書くことができる場合、そのようなコンテンツの翻訳も処理する必要があります。
まず、ユーザーがフォームを提出するときに入力されたコンテンツの言語バージョンを保存する必要があります。おそらく、ユーザーが設定したサイトの言語バージョンに等しいと仮定する必要があります。また、外部API(Google Translate APIなど)を使用して、特定のテキストの言語を検出することもできます。
次に、特定のテキストをサイトでサポートされているすべての言語バージョンに翻訳する必要があります。手動で行う代わりに、サイトの訪問者が提出したコンテンツの機械翻訳を提供する外部APIを使用することができます。プログラム可能なWEBサイトには、Webで利用可能な60を超える翻訳APIがリストされているため、ニーズに合ったソリューションを簡単に見つけることができます。 PHPアプリケーションに翻訳APIを実装する方法に関する特定のチュートリアルをお探しの場合は、Google Translate API:
で私の記事を読むことをお勧めします。
- PHPスクリプトをAPIに統合するための基本を説明するPHPでGoogle翻訳APIを使用するもちろん、ユーザー送信されたコンテンツを翻訳しないように選択して、元の言語バージョンに表示することができます。しかし、私の意見では、マシンの翻訳を表示することは、APIから取得された翻訳が完璧ではない場合でも、コンテンツを異なる言語で表示するよりも優れています。
リソース
要約
記事に関するご質問やコメントがある場合は、以下に投稿してください。 Google Plusから連絡することもできます。
多言語サポートの実装に関するよくある質問
PHPに多言語サポートを実装すると、いくつかの課題があります。主な課題の1つは、翻訳プロセスを管理することです。特に複数の言語をサポートする必要がある場合は、これは時間がかかり、費用がかかる場合があります。もう1つの課題は、ユーザーエクスペリエンスやSEOに悪影響を与えることなく、Webサイト構造が複数の言語をサポートすることを保証することです。さらに、複数の言語バージョンを読み込むとWebサイトが遅くなる可能性があるため、Webサイトのパフォーマンスへの影響を考慮する必要があります。 SEOの多言語Webサイトには、いくつかのステップが含まれます。まず、各言語バージョンが検索エンジンにアクセスできるようにする必要があります。これは、特定のページで使用している言語を検索エンジンに伝えるHreflangタグを使用することで実行できます。第二に、関連するキーワードについては、各言語バージョンを最適化する必要があります。これには、各言語のキーワード調査を実施し、それに応じてコンテンツを最適化することが含まれます。最後に、各言語バージョンが高品質でユニークなコンテンツを持っていることを確認する必要があります。重複したコンテンツはSEOに悪影響を与える可能性があるため、同じコンテンツを異なる言語に単純に翻訳することを避けることが重要です。多言語Webサイトに自動翻訳ツールを使用できます。ただし、これらのツールは基本的な翻訳を提供するのに役立ちますが、常に正確または文化的に適切な翻訳を提供するとは限らないことに留意することが重要です。したがって、自動化された翻訳ツールと人間の翻訳者の組み合わせを使用して、翻訳の品質を確保することをお勧めします。多言語Webサイトの翻訳プロセスを管理するのは困難ですが、使用できるいくつかの戦略があります。 1つのアプローチは、翻訳管理システムを使用することです。これにより、翻訳プロセスの管理と追跡に役立ちます。別のアプローチは、プロの翻訳者または翻訳機関と協力することです。これにより、翻訳の品質が確保されますが、コストがかかる場合もあります。または、コミュニティ翻訳を使用して、ユーザーを招待してWebサイトの翻訳を支援します。これは費用対効果の高いソリューションになる可能性がありますが、翻訳の品質を確保するために慎重な管理が必要です。
多言語Webサイトにはいくつかのステップが含まれます。まず、言語スイッチャーの機能をテストして、ユーザーが異なる言語バージョンを簡単に切り替えることができるようにする必要があります。第二に、翻訳をテストして、それらが正確で文化的に適切であることを確認する必要があります。これには、各言語のネイティブスピーカーとの作業が含まれます。最後に、複数の言語バージョンの読み込みがウェブサイトを遅くしないようにするためにWebサイトのパフォーマンスをテストする必要があります。 Webサイトでは、翻訳を定期的に更新し、Webサイトの機能をテストし、SEOの最適化が含まれます。これには、翻訳者との協力、ユーザーテストの実施、SEO戦略の定期的なレビューが含まれます。また、ユーザーが各言語バージョンとどのように対話しているかを理解し、必要に応じて調整を行うためにウェブサイトの分析を監視することも重要です。 PHPフレームワークは、多言語Webサイトの組み込みサポートを提供します。これにより、多言語サポートの実装と管理が容易になります。ただし、使用するものを決定する前に、各フレームワークの特定の機能と制限を理解することが重要です。多言語のウェブサイトでの経験には、いくつかの戦略が含まれます。まず、ユーザーが異なる言語バージョンを簡単に切り替えることができるようにする必要があります。これは、著名な言語スイッチャーを使用して実行できます。第二に、翻訳が正確で文化的に適切であることを確認する必要があります。これには、各言語のネイティブスピーカーとの作業が含まれます。最後に、各言語バージョンのデザインとレイアウトを考慮する必要があります。異なる言語には、異なる読み取りパターンやデザインの規則がある可能性があるため、それに応じてデザインを適応させることが重要です。
以上が多言語サポートの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。