PHPでのインターフェイスローカリゼーションの実装

現状では、仕事で多言語を実現することがしばしば必要です。 テクニックは十分に説明されており、問題はないはずですが、私は自分の道を進むことにしました。



私はすぐに伝えたい-私は自分自身の下に説明されているオプションに来ました、これはラベル/静的コンテンツにのみ適用されます。 おそらくそのような実装がありますが、私はそれをよく知りません。



現在、私はそのような実装を知っています:

今、私のオプションの説明。

サイトのすべての静的コンテンツを格納するラベルのテーブル(phraze_id、language_id、value)があり、言語のテーブル(language_id、title)もあります。 これらは、一緒に作業するテーブルです。 次に、テンプレートのあるフォルダーを検討します。 フォルダーがあり、ソーステンプレート(テンプレート/ユーザー)が保存されているユーザーと、一時的なシャロンのフォルダー(tmp /ユーザー)があるとします。 今、最も興味深い瞬間。 ソーステンプレートでは、碑文の場所に[phraze {site_title}]のようなものを書きます。 管理パネルまたはクラウンの碑文を変更する場合(これは既にプライベート実装です)、テンプレートを再レンダリングし([phrase {site_title}]を「サイトタイトル」に置き換えます)、変更したテンプレートをtmp / users / ruまたはtmp / users / enフォルダーに保存します舌から。 ここでは、テンプレートの取得元を賢く「言う」必要があります。 この実装により、一定の関数呼び出し/データベースからの取得のコストを回避し、特定のイベントに対してのみこれを行うことができます。



All Articles