public function saveTranslationsAction($packageKey, $fromLang, $toLang, array $translationUnits) {
		$originalMatrix = $this->generateTranslationMatrix($packageKey, $fromLang, $toLang);
		$matrixToSave = array();

		foreach ($translationUnits as $translationUnit => $value) {
			if (isset($value[$toLang]) && $value[$toLang] != '') {
				$matrixToSave[$translationUnit] = $originalMatrix[$translationUnit];
				if (isset($matrixToSave[$translationUnit]['target'])) {
					$matrixToSave[$translationUnit]['oldTarget'] = $matrixToSave[$translationUnit]['target'];
				}
				$matrixToSave[$translationUnit]['target'] = $value[$toLang];
			}
		}

		// Create the Xliff file to be written to disk later on
		$xliffView = new \TYPO3\Fluid\View\TemplateView();
		$path = 'resource://Mrimann.XliffTranslator/Private/Templates/Standard/Xliff.xlf';

		$xliffView->setControllerContext($this->getControllerContext());
		$xliffView->setTemplatePathAndFilename($path);
 		$xliffView->assign('matrixToSave', $matrixToSave);

		// backup the original file before overwriting
		$this->backupXliffFile($packageKey, $toLang);

		// check if the file exists (or create an empty file in case these are the first translations)
		if (!is_dir(dirname($this->getFilePath($packageKey, $toLang)))) {
			mkdir(dirname($this->getFilePath($packageKey, $toLang)));
		}
		if (!is_file($this->getFilePath($packageKey, $toLang))) {
			touch($this->getFilePath($packageKey, $toLang));
		}

		// write the file
		$outputPath = $this->getFilePath($packageKey, $toLang);
		file_put_contents($outputPath, $xliffView->render());

		// redirect the user back to the translation page
		$this->addFlashMessage(
			'Your translations were successfully saved!',
			'Yippie!',
			'OK'
		);

		$this->redirect(
			'translate',
			'Standard',
			'Mrimann.XliffTranslator',
			array(
				'packageKey' => $packageKey,
				'fromLang' => $fromLang,
				'toLang' => $toLang
			)
		);
	}
public function saveTranslationsAction($packageKey, $fromLang, $toLang, array $translationUnits) {
		$originalMatrix = $this->generateTranslationMatrix($packageKey, $fromLang, $toLang);
		$matrixToSave = array();

		foreach ($translationUnits as $translationUnit => $value) {
			if (isset($value[$toLang]) && $value[$toLang] != '') {
				$matrixToSave[$translationUnit] = $originalMatrix[$translationUnit];
				if (isset($matrixToSave[$translationUnit]['target'])) {
					$matrixToSave[$translationUnit]['oldTarget'] = $matrixToSave[$translationUnit]['target'];
				}
				$matrixToSave[$translationUnit]['target'] = $value[$toLang];
			}
		}

		// Create the Xliff file to be written to disk later on
		$xliffView = new \TYPO3\Fluid\View\TemplateView();
		$path = 'resource://Mrimann.XliffTranslator/Private/Templates/Standard/Xliff.xlf';

		$xliffView->setControllerContext($this->getControllerContext());
		$xliffView->setTemplatePathAndFilename($path);
 		$xliffView->assign('matrixToSave', $matrixToSave);

		// backup the original file before overwriting
		$this->backupXliffFile($packageKey, $toLang);

		// check if the file exists (or create an empty file in case these are the first translations)
		if (!is_dir(dirname($this->getFilePath($packageKey, $toLang)))) {
			mkdir(dirname($this->getFilePath($packageKey, $toLang)));
		}
		if (!is_file($this->getFilePath($packageKey, $toLang))) {
			touch($this->getFilePath($packageKey, $toLang));
		}

		// write the file
		$outputPath = $this->getFilePath($packageKey, $toLang);
		file_put_contents($outputPath, $xliffView->render());

		// redirect the user back to the translation page
		$this->addFlashMessage(
			'Your translations were successfully saved!',
			'Yippie!',
			'OK'
		);

		$this->redirect(
			'translate',
			'Standard',
			'Mrimann.XliffTranslator',
			array(
				'packageKey' => $packageKey,
				'fromLang' => $fromLang,
				'toLang' => $toLang
			)
		);
	}
public function saveTranslationsAction ( $ packageKey , $ fromLang , $ toLang , array $ translationUnits ) { $ originalMatrix = $ this -> generateTranslationMatrix ( $ packageKey , $ fromLang , $ toLang ) ; $ matrixToSave = array ( ) ; foreach ( $ translationUnits as $ translationUnit => $ value ) { if ( isset ( $ value [ $ toLang ] ) && $ value [ $ toLang ] != '' ) { $ matrixToSave [ $ translationUnit ] = $ originalMatrix [ $ translationUnit ] ; if ( isset ( $ matrixToSave [ $ translationUnit ] [ 'target' ] ) ) { $ matrixToSave [ $ translationUnit ] [ 'oldTarget' ] = $ matrixToSave [ $ translationUnit ] [ 'target' ] ; } $ matrixToSave [ $ translationUnit ] [ 'target' ] = $ value [ $ toLang ] ; } } // Create the Xliff file to be written to disk later on $ xliffView = new \ TYPO3 \ Fluid \ View \ TemplateView ( ) ; $ path = 'resource://Mrimann.XliffTranslator/Private/Templates/Standard/Xliff.xlf' ; $ xliffView -> setControllerContext ( $ this -> getControllerContext ( ) ) ; $ xliffView -> setTemplatePathAndFilename ( $ path ) ; $ xliffView -> assign ( 'matrixToSave' , $ matrixToSave ) ; // backup the original file before overwriting $ this -> backupXliffFile ( $ packageKey , $ toLang ) ; // check if the file exists (or create an empty file in case these are the first translations) if ( ! is_dir ( dirname ( $ this -> getFilePath ( $ packageKey , $ toLang ) ) ) ) { mkdir ( dirname ( $ this -> getFilePath ( $ packageKey , $ toLang ) ) ) ; } if ( ! is_file ( $ this -> getFilePath ( $ packageKey , $ toLang ) ) ) { touch ( $ this -> getFilePath ( $ packageKey , $ toLang ) ) ; } // write the file $ outputPath = $ this -> getFilePath ( $ packageKey , $ toLang ) ; file_put_contents ( $ outputPath , $ xliffView -> render ( ) ) ; // redirect the user back to the translation page $ this -> addFlashMessage ( 'Your translations were successfully saved!' , 'Yippie!' , 'OK' ) ; $ this -> redirect ( 'translate' , 'Standard' , 'Mrimann.XliffTranslator' , array ( 'packageKey' => $ packageKey , 'fromLang' => $ fromLang , 'toLang' => $ toLang ) ) ; }
Saves the translations from the translation form

@param string $packageKey
@param string $fromLang
@param string $toLang
@param array $translationUnits
Saves the translations from the translation form