0

翻訳を処理するモジュールがあります。

どのデータベースにもバインドされていません。ファイルは純粋かつ単純に次のようなものです。

$arr["key1"]="text";
...

そのファイルを編集するには、Ajax 呼び出しを行う必要があります。このファイルは、必要なテキスト コンテンツを配信するために、ページにアクセスするたびにインポートされます (これは世界で最も優れたものではないかもしれませんが、十分に機能します。「XML がないため、非常に高速であるはずです。解析」のようなもので、標準の .php ファイルに単純に保存されます)。

追加/編集操作などのアクションを持つこれらの ajax 呼び出しを処理するために、モデルのない TranslationController を作成しました。

class TranslationsController extends AppController {
    public $uses = array(); // Model-less
    public $components = array('RequestHandler');
    public $helpers = array('Session');
    protected $translationFilePath;

    public function setItem() {
    }

    public function backupFile() {
    }
}

私の問題は単純です。ファイルを開く/書き込む/検索するために使用されるカスタム関数をどこに置くのですか?

たとえば、読み取られている行からキーを抽出する関数があります。

モデル内にデータを配置することをお勧めする投稿を見たことがありますが、私の場合、モデルがなく、これらの関数がデータにリンクされていません。だから、それはモデルにあるべきではありませんよね?私はそれをグローバルにしたくありません。

ご協力ありがとうございました。

4

2 に答える 2

1

なぜ、CakePHP に付属していて、多かれ少なかれ標準的な gettext ツールに基づいた組み込みの翻訳機能を使用しないのですか?

あなたがしていることは、車輪を再発明することであり、CakePHP がすでに提供している機能が明らかに欠けている、テストされていないカスタマイズされた翻訳の実装を考え出すことです。たとえば、複数形をどのように処理しますか?

CakePHP は、翻訳用に __()、__d()、__n()、__dn() を提供し、翻訳ファイルはプレーン テキスト ファイルとして APP/Locale/ に保存され、poedit で編集されます。

http://www.gnu.org/software/gettext/およびhttp://book.cakephp.org/2.0/en/core-libraries/internationalization-and-localization.htmlを参照してください。

于 2012-06-19T17:03:56.570 に答える
0

カスタムデータソースのユースケースのように聞こえます:http://book.cakephp.org/2.0/en/models/datasources.html

個人的にはapp/Lib、アプリケーションのフォルダーに通常のPHPクラスを作成するだけです。

于 2012-06-19T07:11:55.657 に答える