私は現在、PHP で Web サイトを開発しており、翻訳を管理するためにgettextを使用することにしました。翻訳を簡単に管理できるように、素敵なPootleサーバーをセットアップしました。cronで実行される bash スクリプトは、翻訳対象の PHP ファイルからすべての値を抽出し、.pot
翻訳テンプレート ファイルを作成します。
ここまでは順調ですね。しかし、サイトのテキストの一部がデータベースに保存されていることを思い出しました。簡単にするために「製品」と呼びましょう。製品の説明、名前、およびその他のいくつかのフィールドを翻訳可能にしたいのですが、データベース エントリを翻訳するためだけに別のインターフェイスを作成する必要なく、それらを一元的に翻訳できる方法があれば素晴らしいと思います。Pootle はセットアップ済みなので、それを利用できるといいですね。
私は2つの解決策を考えました:
- データベースの使用を忘れて、PHP 配列のみを使用する
- データベースからすべての値を抽出し、前述の bash スクリプトによってスキャンされて値を
pot
ファイルに追加するファイルを生成するスクリプトと、bash スクリプトの直後に実行して再更新する別のスクリプトを作成します。 DB 内のすべての値。
これらのソリューションはどちらも理想的ではないようです。最初のものはセットアップが簡単で、Pootle で簡単に使用できますが、DBMS の使用に伴う柔軟性がすべて失われ、使用するたびにアレイ全体をインポートする必要があります。私は(現在)行に対して高度な計算を実行しておらず、基本的にはSELECT
s だけであるため、機能の損失はそれほど悪くありません。2 番目のものは機能する可能性がありますが、正しくセットアップするには、かなり多くの計画 (およびコーディング) が必要です。
データベースの柔軟性を与え、Pootle のように、サイトの残りの部分と一緒に集中化された場所で簡単に翻訳できるようにする、私が見逃している他の方法はありますか?