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
-~----------~----~----~----~------~----~------~--~---

Reply via email to