0

如何在我的模塊/模型中翻譯我的自定義異常?最好的辦法是什麼?在php中翻譯模型異常 - Zf2 - Zend i18n - Poedit

1)直接進入MyModelTableGetaway.php。例如:

public function getAlbum($id) 
{ 
    $id = (int) $id; 
    $rowset = $this->tableGateway->select(array('id' => $id)); 
    $row = $rowset->current(); 
    if (!$row) { 
     throw new \Exception(__("Could not find row $id")); 
    } 
    return $row; 
} 

我會告訴poEdit的考慮到所有內部__()

2)創建一個文件夾爲MyModel /語言/ language_than_i_want進入這個文件夾,我可以把一個文件.PHP與一系列例外

什麼是更好,更快?還有其他方法嗎?

非常感謝

回答

1

我會跟製作Zend\I18n\Translator\Translator類的依賴和使用該走了。您可以設置您的模型/服務工廠(或任何方式,您提供該對象),例如:

$translator = new Translator(); 
$translator->addTranslationFile('array', 'path/to/your/translation/array.php, '', 'de); 

而在你的類使用它:

if (!$row) { 
    throw new \Exception($translator->translate("Could not find row $id")); 
} 

您也可以覆蓋異常模板並使用translator幫手。但是,這可能無法一直工作。

除此之外,您需要一些東西來提供翻譯服務。我推薦翻譯數組,因爲它比gettext更容易處理。

相關的文檔或相關博客文章: