1

おそらく私はドキュメントを完全に理解していないだけかもしれませんが、キャッシュされた翻訳が上書きされないように一意の識別子を設定する方法はありますか?

各ドメインには同じ名前空間があります。

これが私のmodule.config.phpでこれまでに持っているものです

'translator' => array(
    'locale'                    => 'en',
    'translation_file_patterns' => array(
        array(
            'type'        => 'gettext',
            'base_dir'    => __DIR__ . '/../language',
            'pattern'     => '%s.mo',
            'text_domain' => 'ftp'
        )
    ),
    'cache' => \Zend\Cache\StorageFactory::factory(array(
        'adapter' => 'apc',
        'plugins' => array(
            'exception_handler' => array(
                'throw_exceptions' => false
            )
        )
    ))
)

現在、同じマシンで 2 つの Apache VirtualHost を実行しており、各 VirtualHost には Ftp という名前のモジュールがあり、これらの各モジュールは ftp text_domain を使用して独自の翻訳を翻訳しています。

両方のドメインで使用される translate_this_text という名前の翻訳キーがあるとします。

domain1.com では読み取り、domain2.com では Test1、Test2 と読み取ります。

domain1.com にアクセスすると、テキストは Test1 に変換されます domain2.com にアクセスすると、テキストは Test1 に変換されますが、これは Test2 のはずです

APC キャッシュをクリアして domain2.com にアクセスすると、翻訳には Test2 が表示されますが、domain1.com にアクセスすると Test2 が表示されます。

あまり混乱していないことを願っています。

最後に、現在同じマシンに存在するため、各ホストにある種の一意の識別子を設定して、互いに上書きしないようにする方法はありますか?

4

1 に答える 1

2

値を配列に置き換えてadapter、APC アダプターにオプションを挿入できるようにします。

'translator' => array(
    'cache' => \Zend\Cache\StorageFactory::factory(array(
        'adapter' => array(
            'name'    => 'apc',
            'options' => array(
                'namespace' => 'foo_bar',
            ),
        ),
        'plugins' => array(
            'exception_handler' => array(
                'throw_exceptions' => false
            )
        )
    ))
)

グローバルファイルにキーなし で上記の構成を記述し、次にこのルールを追加します。namespaceconfig.local.php

$cache_namespace = 'foo_bar';

'translator' => array(
    'cache' => \Zend\Cache\StorageFactory::factory(array(
        'adapter' => array(
            'options' => array(
                'namespace' => $cache_namespace,
            ),
        ),
    ))
)

すべてのアプリケーションについて、ローカル構成ファイルを編集するだけで、グローバル キャッシュ オプションを共有できます。

于 2013-01-20T20:09:40.563 に答える