也许我现在还没有完全理解文档,但是有没有办法设置一个唯一标识符,这样我的缓存翻译就不会被覆盖?
每个域都有相同的命名空间。
这是我的 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
)
)
))
)
现在我在同一台机器上运行了两个 Apache VirtualHost,在每个 VirtualHost 中我都有一个名为 Ftp 的模块,每个模块都使用 ftp text_domain 来翻译它们自己的翻译。
假设我有一个名为 translate_this_text 的翻译键,用于两个域。
在 domain1.com 上它会读取,Test1 在 domain2.com 上它会读取,Test2
如果我访问 domain1.com 文本被翻译成 Test1 如果我访问 domain2.com 文本被翻译成 Test1,但这应该是 Test2
如果我清除 APC 缓存并访问 domain2.com,则翻译显示 Test2,但如果我访问 domain1.com,则显示 Test2。
我希望这不会太混乱。
所以最后,有没有办法在每个主机上设置某种类型的唯一标识符,这样它们就不会相互覆盖,因为它们现在存在于同一台机器上?