Ok, I'll suppress my 'general why questions compulsive behaviour' ;) About not existing callback - just a mistake. I meant beforeFind of course. But it's not the point. I Talk about ArticleVersion and ArticlePage, because those two models I want to have translatable, but that is not the problem either.
I think my problem is that Translate::beforeFind is running **before** AppModel::beforeFind, so setting an array to $this->locale in it is useless. That's why it was working in constructor, but when it's in constructor - I can't manage the language changes in AppController::beforeFilter. I can do this for "primary model", like that: $this->{$this->modelClass}->locale = Configure::read('App.locales'); But relationship models still get locale from (default) Configure::read ('Config.language'); and it's string not an array. So If my desired model behavior is to have the fallback language, and find translations when not every field has been tranlsated - I need to put that line: $this->ArticleVersion->locale = Configure::read('App.locales'); before every find (or at least before first find in specific method), or make a find method wrapper: function find($conditions = null, $fields = array(), $order = null, $recursive = null) { $this->locale = Configure::read('App.locales'); return parent::find($conditions, $fields, $order, $recursive); } either app-wide (in AppModel::find()) or Model-wide( ie ArticleVersion::find()) On 5 Cze, 15:57, "jitka (poLK)" <slunii...@gmail.com> wrote: > > If so - why it's like that? Is it some backward compatibility? Because > > it's seems a little bit weird. > > I am not The One who rules whole world, my friend. And I don't like > general 'why' questions too :) because I am not mindreader to be sure > why it seems weird to you. > > Names of subfolders in app/locale folder are also not language > shortcuts. If you will read my previous post carefully, you will > notice word localeFallback in there - one of things which will be > adressed by future releases of CakePHP, so stay tuned. > > > > > $pages = $this->ArticleVersion->ArticlePage->find('all', > > > > It sounds to me like you are doing it in ArticleVersion::beforeFind() > > > instead of AppModel::beforeFind(), or your custom > > > ArticlePage::beforeFind() is not calling parent::beforeFind(). Could > > > you confirm that? > > > I definitely have this AppModel::beforeFilter and have no beforeFilter > > in ArticleVersion now (tried with explicit call parent::beforeFilter > > in ArticleVersion::beforeFilter but it was no difference). > > Please, read my answer thoroughly. You are calling find() method of > ArticlePage model, but still talking about changes in ArticleVersion > model. And even worse: about not existing model's callback. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---