@@ -16,8 +16,10 @@ public function createTranslation($submissionId, $translationLocale)
1616 $ newSubmissionId = $ submissionDao ->insertObject ($ newSubmission );
1717 $ newSubmission ->setData ('id ' , $ newSubmissionId );
1818
19+ $ originalLocale = $ submission ->getData ('locale ' );
20+
1921 foreach ($ submission ->getData ('publications ' ) as $ publication ) {
20- $ newPublicationId = $ this ->createTranslationPublication ($ publication , $ newSubmissionId , $ translationLocale );
22+ $ newPublicationId = $ this ->createTranslationPublication ($ publication , $ newSubmissionId , $ translationLocale, $ originalLocale );
2123
2224 if ($ publication ->getId () == $ submission ->getData ('currentPublicationId ' )) {
2325 $ newSubmission ->setData ('currentPublicationId ' , $ newPublicationId );
@@ -28,7 +30,7 @@ public function createTranslation($submissionId, $translationLocale)
2830 return $ newSubmissionId ;
2931 }
3032
31- private function createTranslationPublication ($ publication , $ newSubmissionId , $ translationLocale )
33+ private function createTranslationPublication ($ publication , $ newSubmissionId , $ translationLocale, $ originalLocale )
3234 {
3335 $ newPublication = clone $ publication ;
3436 $ newPublication ->setData ('id ' , null );
@@ -39,18 +41,26 @@ private function createTranslationPublication($publication, $newSubmissionId, $t
3941 $ newPublicationId = $ publicationDao ->insertObject ($ newPublication );
4042
4143 foreach ($ publication ->getData ('authors ' ) as $ author ) {
42- $ this ->createTranslationAuthor ($ author , $ newPublicationId , $ translationLocale );
44+ $ this ->createTranslationAuthor ($ author , $ newPublicationId , $ translationLocale, $ originalLocale );
4345 }
4446
4547 return $ newPublicationId ;
4648 }
4749
48- private function createTranslationAuthor ($ author , $ newPublicationId , $ translationLocale )
50+ private function createTranslationAuthor ($ author , $ newPublicationId , $ translationLocale, $ originalLocale )
4951 {
5052 $ newAuthor = clone $ author ;
5153 $ newAuthor ->setData ('id ' , null );
5254 $ newAuthor ->setData ('publicationId ' , $ newPublicationId );
5355 $ newAuthor ->setData ('submissionLocale ' , $ translationLocale );
56+ if (empty ($ newAuthor ->getData ('givenName ' , $ translationLocale ))) {
57+ $ authorName = $ newAuthor ->getData ('givenName ' , $ originalLocale );
58+ $ newAuthor ->setData ('givenName ' , $ authorName , $ translationLocale );
59+ }
60+ if (empty ($ newAuthor ->getData ('familyName ' , $ translationLocale ))) {
61+ $ authorName = $ newAuthor ->getData ('familyName ' , $ originalLocale );
62+ $ newAuthor ->setData ('familyName ' , $ authorName , $ translationLocale );
63+ }
5464
5565 $ authorDao = DAORegistry::getDAO ('AuthorDAO ' );
5666 return $ authorDao ->insertObject ($ newAuthor );
0 commit comments