ZF-3517: Zend_Translate_Adapter::getMessages() doesn't except the locale param as an instance of Zend_Locale


$translate->getMessages( new Zend_Locale('de') );
// -> Warning: Illegal offset type in /xxx/ on line 333

     * Returns all available translations from this adapter
     * If no locale is given, the actual language will be used
     * If 'all' is given the complete translation dictionary will be returned
     * @param  string|Zend_Locale $locale (optional) Language to return the messages from
     * @return array
    public function getMessages($locale = null)
        if ($locale == 'all') {
            return $this->_translate;
        if (empty($locale) or !$this->isAvailable($locale)) {
            $locale = $this->_options['locale'];
        return $this->_translate[$locale];


Your problem is not that the locale is given as instance. The language you are requesting does not exist.

Fixed with r9816

Fixed within branch 1.5

Updating for the 1.6.0 release.