Bonjour,
je suis débutant dans le zend framework, j'aimerai développer un site multilingue qui charge les traductions dans une base de donnée.
Mais j'ai quelques erreurs qui me cause problème.

Voici l'erreur affichée:
Catchable fatal error: Argument 1 passed to Zend\I18n\Translator\Loader\TranslateDataBase::__construct() must be an instance of Zend\Db\Adapter\Adapter, none given, called in C:\wamp\www\Zend_CMS\vendor\zendframework\zendframework\library\Zend\ServiceManager\AbstractPluginManager.php on line 170 and defined in C:\wamp\www\Zend_CMS\vendor\zendframework\zendframework\library\Zend\I18n\Translator\Loader\TranslateDataBase.php on line 15

Mon fichier module.config.php dans Application:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
'translator' => array(
        'locale' => 'fr_FR',
        'translation_file_patterns' => array(
            array(
                'type'     => 'Zend\I18n\Translator\Loader\TranslateDataBase',
                'base_dir' => __DIR__ . '/../language',
                'pattern'  => '%s.mo',
            ),
        ),
    ),
Ma class TranslateDatabase
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
 
namespace Zend\I18n\Translator\Loader;
 
use Zend\Db\Adapter\Adapter;
use Zend\Db\Sql\Sql;
use Zend\I18n\Translator\Loader\RemoteLoaderInterface;
use Zend\I18n\Translator\Plural\Rule as PluralRule;
use Zend\I18n\Translator\TextDomain;
use Zend\Db\TableGateway\AbstractTableGateway;
class TranslateDataBase extends AbstractTableGateway
{
    protected $dbAdapter;
 
    public function __construct(Adapter $dbAdapter)
    {
        $this->dbAdapter = $dbAdapter;
    }
 
    public function load($filename, $locale)
    {
        //recupere les données depuis la db et les renvois
 
        return $textDomain;
    }
}
Ma classe module.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
public function getServiceConfig()
     {
         return array(
             'factories' => array(
 
                 'TranslateDataBase' =>  function($sm) {
                     $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
                     return new TranslateDataBase($dbAdapter);
                 },
 
             ),
         );
     }
Merci d'avance pour votre aide.