我目前正致力於翻譯圍繞多個模塊傳播的現有Zend Framework 2項目。Zend Framework 2 - 視圖中的翻譯和文本域
我對ZF2的翻譯功能的理解是,您可以擁有儘可能多的翻譯文件,並將每個翻譯文件都命名爲不同的text_domain
。這在實踐中工作得很好,用在他們的module.config.php
文件中的以下各模塊:
...
'translator' => array (
'locale' => 'en_US',
'translation_file_patterns' => array (
array (
'type' => 'phparray',
'base_dir' => __DIR__ . '/../language',
'pattern' => '%s_default.php',
'text_domain' => 'ExampleModule'
),
),
),
...
增加了一個../language/*_default.php
文件翻譯列表與ExampleModule
一個text_domain
。迄今爲止都很好。
現在,翻譯者本身需要知道哪個text_domain
選擇翻譯,並且如果沒有提供翻譯,將使用default
。
因此,內部和所有的我的觀點*.phtml
文件的頂部,我有:
$this->plugin('translate')->setTranslatorTextDomain('ExampleModule');
$this->formLabel()->setTranslatorTextDomain('ExampleModule');
$this->formText()->setTranslatorTextDomain('ExampleModule');
它告訴所有的出發$this->translate()
塊和使用哪個text_domain
表單元素。
這很棒,而且工作正常,但是它不能很好地滿足DRY原則,因爲我在每個視圖的頂部都有類似的代碼。我試圖擴展ViewModel
類,以便我可以在控制器中選擇一個不同的ViewModel
類,並且已經將上面的代碼插入,但插件在該階段不可用。
我如何將上述代碼包含在每個/大多數視圖中,而不必每次都輸入它?