Copy() function storing translation values

Hi,
When you fill a translatable field, for fisrt time, lets say I create a product and name it as “Product A”, then if I go to the field translations, I will see that this exact name is the value for all available languages, but in the ir_translation there is only 1 record stored, with the language of the user, all the other fields for all the available languages are just showing a default value, so if I just change the name of the product to “Product B”, and then I open the translations, I will see “Product B” everywhere:
Quick example of “Product A”:


Renamed to “Product B”:

The problem comes when I duplicate this product, all the values for the available languages are actually stored on the database for the new record, so if I go to the duplicated record, which is also named “Product B”, and I rename it to “Product C”, all the translations becomes fuzzy:


And of course the ir_translation table is filled with all of this records.

I would like to get some feedback about this because it doesn’t look intentional at all for me.

Thanks in advance!

This is the expected behavior.

Why?
I understand that if a translation is actually defined by the user, it should be also set on the new record when copying, but if the translation is just the default value that the program gives, why should it be stored?
Another thing is if you tell me there is no way to check if the translation is defined by user in here

Because of the abstraction of the translation API, it is not possible to know if a translated value is actually a translation or not.

Well, this goes out of my knowledge.
Thanks for the quick replies.

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.