I tried a similar approach and most likely will end up using it due to
time constraints for the project. Still, i18n support is a great step
in Cake's maturity road, and I'd love to make it work even if it was
in a not-so-elegant way. In fact, maybe Cake Foundation may study
donation-promoted development. I'd be more than happy to donate to see
this functionallity working!
On 25 jul, 01:56, oleonav <[EMAIL PROTECTED]> wrote:
> On Jul 24, 12:09 am, Gorka <[EMAIL PROTECTED]> wrote:
>
> > Actually, $form->input('TransName.eng.content') renders something like
> > this for me:
>
> > <input name="data[TransName][content]" type="text" value=""
> > id="TransNameContent" />
>
> > This is obviously not very useful when editing multiple languages at
> > the same time (mostly in the admin area for defining name,
> > description, etc... of an item). Has anyone found a method for editing
> > multiple languages at the sameview?
>
> Yes, I did find this out to. Not very useful.
>
> > Oleonav, did you manage to get any closer to a satisfying solution?
>
> No, I did not. Not in the cake 1.2 way for that matter. Maybe some of
> the core developers would be so nice to contribute on this subject.
>
> Anyway, I'm working on a different approach to i18n. It does not use a
> 'global' i18n & i18n_content table. It stores translations in the same
> table as the main, default language.
>
> For example a article table:
> id
> article_id
> locale
> ...
> title
> content
>
> For the main article, in the default language, the field id & article
> id have the same value. Locale is set to the default locale string.
> Translations have their own id. The article_id is the same as the id
> of the main default record. Each translation has it's own locale
> string. The combination of article_id & locale is defined as unique in
> the database.
>
> Model assoc's:
> var $belongsTo = array(
> 'MotherArticle' => array('className' => 'Article',
> 'foreignKey' => 'article_id',
> );
>
> var $hasMany = array(
> 'ChildArticle' => array('className' => 'Article',
> 'foreignKey' => 'article_id'
> );
>
> I have added a function to the main AppModel to fetch the article in
> the preferred translation if available.
>
> function readTranslated($fields=null,$id,$lang=null){
> $res = $this->read($fields,$id);
> $childs = 'Child' . $this->name;
> if($res && $lang && is_array($res[$childs])){
> foreach($res[$childs] as $trans){
> if($trans['locale'] == $lang){
> $resTrans = $trans;
> $resTrans['translated'] = 'yes';
> }
> }
> }
> if(isset($resTrans)){
> $res[$this->name] = $resTrans;
> }
> elseif($res != null){
> $res[$this->name]['translated'] = 'no';
> }
>
> return $res;
>
> }
>
> In the view action of the article controller I use the following
> function $this->Article->readTranslated(null,$id,'eng') for example to
> fetch the article in the prefered language, if available.
>
> I'm now busy coding the add & edit actions. Having some trouble with
> validation....
>
> This is work in progress. I will share my thoughts / solution when I'm
> satisfied
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake
PHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---