Helle ZF2 Guru!通常我们从 Appliction module.config 中的一个目录中获取 zf2 翻译文件.php如下所示: 'base_dir' => DIR . '/../language'
.是否可以从 URI 获取它?
Application module.config.php:
'translator' => array(
'locale' => 'en_US',
'translation_file_patterns' => array(
array(
'type' => 'gettext',
'base_dir' => __DIR__ . '/../language',//http://example.com/
'pattern' => '%s.mo',
),
),
),
为什么这很重要?
如果我错了,请纠正我!在多语言应用程序中,语言文件是静态文件,对于实际应用程序,任何静态文件最好像AWS CloudFront or CDON
一样放在云上,以获得更好的应用程序性能和更长的缓存时间。
我认为这种
方式是不可能的,我认为将这个文件放在 App 目录之外并不令人不安,因为它是 PHP 软件的一部分,将在每次 HTTP 请求时由您的 Web 服务器解释和"编译"。
例如,对于导航器使用 AJAX 请求下载的 JSON 文件,它是交错的,因为导航器会将文件存储在缓存中。
我们的解决方案是确定application.config.php
中的当前语言是什么:
define ('SITE_LANG', ...);
在我们的例子中,它只是路径的前两个字母:www.site.com/en/...
然后在module.config.php
:
'translator' => [
'locale' => SITE_LANG,
'translation_file_patterns' => [
[
'type' => 'phparray',
'base_dir' => 'vendor/zendframework/zendframework/resources/languages/',
'pattern' => '%s/Zend_Validate.php',
],
它做到了。