0

私は電子商取引ソリューションの計画を進めていますが、最後の質問は言語システムをどのように実装するかです。

以前は、Magento、eCommerce、OpenCart などの e コマース ソリューションを使用していましたが、それらのアプローチは恐ろしく、最終的にアプリケーション全体の速度が低下したため、避けたいと思います。

たとえば、Magento では、言語ファイルが別のフォルダーに保持され、コードがそのフォルダー内のファイルから言語を読み込みます。言語ファイルには 10,000 行を超える行があり、多くの単語と文章がさまざまなモジュールで繰り返され、ロードのたびにファイルを読み取る必要があります。

私は HMVC アーキテクチャを持っており、ソリューションの一部である各モジュールが独自の言語ファイルを持つ場所を拡張することを考えていましたが、これは Magentos のアプローチであり、最善のソリューションではありません。

私は自分の言語ファイル システムをできるだけシンプルにし、ボタン名とラベル名を短くして、翻訳したい人が簡単に翻訳できるようにしたいと考えています。私はHMVCアーキテクチャを持っているので、それを拡張して、各モジュールが独自の言語ファイル/クラスを持つようにしたかったのです。このようにして、アプリケーションの代わりに実際に使用しているモジュールを翻訳するだけで、すべての翻訳を一度にロードできます表示されていないモジュールの場合。

しかし、このように翻訳を維持すると、パフォーマンスとシンプルさに問題が生じる可能性があると感じています。私はGoogleTranslateプラグインオプションを調べましたが、それはかなりまともですが、まだ準備ができておらず、適切な解決策でもありません.

ここで最善のアプローチは何でしょうか。

4

1 に答える 1

1

HMVC アーキテクチャが何らかの PHP フレームワークを使用している場合、翻訳の問題を処理するための API が含まれている可能性があります。たとえば、CodeIgniter ではLanguage クラスを使用でき、CakePHP ではi18n クラスを使用できます。

CodeIgniter は現在、プレーンな PHP ファイルを使用して言語をロードするため、(.po/.mo ファイルまたはデータベースからファイルをロードできる) CakePHP ほど効率的ではないことに注意してください。

現在使用していない場合は、Zend Framework の翻訳モジュールを試すことができます。すべての Zend Framework を使用する必要はないことに注意してください (高度にモジュール化されているため)。それでもプロジェクトのスペースを乱雑にしたくない場合は、プレーンなgettext()を使用できます。

于 2013-01-25T22:44:20.183 に答える