[Resolvido] Múltiplos Arquivos de Tradução Dependendo do Tipo de Cliente

Bom dia,

estou com a seguinte situação:


'i18n' => [

            'translations' => [

                'app*' => [

                    'class' => 'yii\i18n\PhpMessageSource',

                    'basePath' => '@common/messages',

                    'fileMap' => [

                        'app' => 'app.php',

                        'app/custom' => function() {return Configuracoes::getI18NCustom();}

                    ],

                ],

            ],

        ],

Esta é a configuração de tradução no arquivo config.php.

o arquivo app/custom, pode variar de cliente para cliente. Por que? Dependendo do tipo de cliente ele verá uma mensagem, caso contrário pode ver outra… e assim por diante.

O problema:

Não aceita funcções.

Se eu chamo apenas Configuracoes::getI18NCustom()

[b]'app/custom' => Configuracoes::getI18NCustom()[/b]

Ele retorna o seguinte erro:

Fatal error: Call to a member function getDb() on a non-object.

Existe alguma outra forma de fazer o que eu preciso?

Atenciosamente,

Rafael

Resolvido.

Retirei do config.php está parte e no init() dos módulos coloquei o seguinte:


 public function init()

    {

        parent::init();

        Configuracao::registerTranslations();

    }


public static function registerTranslations()

    {

        \Yii::$app->i18n->translations['app*'] = [

            'class' => 'yii\i18n\PhpMessageSource',

            'basePath' => '@common/messages',

            'fileMap' => [

                'app' => 'app.php',

                'app/custom' => self::getI18NCustom()

            ],

        ];

    }