OK, that explain the issue. Maybe that behavior should be more clear in the 
docs.

I think that I "broked" the behavior with my DRY logic because I run this 
code for all languages:

$entity->translation($lang)->set($translated_fields, ['guard' => false]);

And probably should be only executed for the other languages that the main 
app language.

El miércoles, 13 de mayo de 2015, 9:41:42 (UTC+1), José Lorenzo escribió:
>
> The behavior is thought so that the main application language is store in 
> the real table and all the translations in the i18n table
>
> On Tuesday, May 12, 2015 at 10:40:25 AM UTC+2, Aday Talavera wrote:
>>
>> While following the guide 
>> http://book.cakephp.org/3.0/en/orm/behaviors/translate.html 
>> <http://www.google.com/url?q=http%3A%2F%2Fbook.cakephp.org%2F3.0%2Fen%2Form%2Fbehaviors%2Ftranslate.html&sa=D&sntz=1&usg=AFQjCNHcUyb-1nQRlT_UOEaznW39nRHF_Q>
>>   
>> to apply translate behaviour to my models I detected some problems, but I 
>> don't know if I'm following bad the guide or if the guide needs to be 
>> improved.
>>
>> Let me explain using an example.
>>
>> I had this table in my system and wanted to apply translate behavior.
>>
>> CREATE TABLE `boards` (
>>   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
>>   `name` varchar(100) NOT NULL,
>>   `description` text,
>>   PRIMARY KEY (`id`)
>> ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
>>
>> So I added this to BoardsTable initialize method:
>>
>> $this->addBehavior('Translate', [
>>             'fields' => ['name', 'description'],
>>         ]);
>>
>> And added TranslateTrait to BoardEntity
>>
>> In that scenario I detected the next things:
>>
>>    1. If I create a new board providing english and spanish texts, they 
>>    are stored correctly in i18n table.
>>    2. If I edit an existing board before applying Translate behavior, 
>>    current locale language (spanish) is stored in boards.name and 
>>    boards.description while english locale is stored in i18n table.
>>    3. If I nullify name and description fields before editing the row in 
>>    point 2, everything is stored in i18n table.
>>
>> How can we avoid point 2 issue? Is a bug or I missed something?
>>
>> Cheers.
>>
>

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

Reply via email to