Forums / Setup & design / Create new translation for an object in pure PHP

"Please Note:
  • At the specific request of Ibexa we are changing this projects name to "Exponential" or "Exponential (CMS)" effective as of August, 11th 2025.
  • This project is not associated with the original eZ Publish software or its original developer, eZ Systems or Ibexa".

Create new translation for an object in pure PHP

Author Message

Guillaume Marty

Wednesday 04 February 2009 8:48:47 am

Hi,

I'm a bit confused about how to create a new translation for an existing object in pure code.

I've not been able to create a new translation in the current version of the object (that is the way how the user interface works). Instead, a new version is created containing the new translation.

Here is my code:

$version = $contentObject->createNewVersionIn( $contentObjectTargetLanguage, $contentObjectSourceLanguage, false, true,  eZContentObjectVersion::STATUS_PUBLISHED );

foreach ( $contentObject->fetchDataMap() as $attribute_identifier => $attribute )
{
	$attribute->fromString( 'New attribute translation' );
	$attribute->store();
}

What am I doing wrong? Maybe it has something to do with createNewVersionIn()...
Please help!

Guillaume Marty

Friday 13 February 2009 8:15:10 am

Any help? Please!

How to create a new language of an object and save attributes the clean way?

nehal shah

Friday 29 April 2011 5:36:39 am

Hi,

I have the same problem.I want to add translation for the current version of the object through php. Here is my code.

$objectID = 6413;
$object = eZContentObject::fetch( $objectID );
$catalanVersion = $englishObject->createNewVersion( $object->CurrentVersion, true, 'hun-HU', 'eng-GB' );

$contentObjectAttributes = $catalanVersion->contentObjectAttributes();
$contentObjectAttributes[0]->setAttribute( 'data_text', 'Urinary System1');
$contentObjectAttributes[0]->store();
$contentObjectAttributes[1]->setAttribute( 'data_text', '202.59.12');
$contentObjectAttributes[1]->store();

but when i run this code it is showing error.

Please anyone has solution for adding translation through php?