如何从 Zend Framework 2 中的 URI 获取翻译器 base_dir?

How to get translator base_dir from a URI in Zend Framework 2?

Helle ZF2 大师!通常我们从 Appliction module.config.php 的目录中获取 zf2 翻译文件,如下所示: 'base_dir' => <strong>DIR</strong> 。 '/../语言'。 是否可以从 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 软件的一部分,将被解释和 "compiled"在每次 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',
            ],

它成功了。