diff -ur ojs-3.1.0/classes/issue/Issue.inc.php ojs/classes/issue/Issue.inc.php --- ojs-3.1.0/classes/issue/Issue.inc.php 2017-10-24 06:04:36.000000000 +0300 +++ ojs/classes/issue/Issue.inc.php 2017-11-30 19:53:00.397668823 +0200 @@ -439,13 +439,13 @@ return $this->setData('coverImageAltText', $coverImageAltText, $locale); } + /** * Return the string of the issue identification based label format * @param $force array force show/hide of data components * @return string */ - function getIssueIdentification($force = array()) { - + function getIssueIdentification($force = array(), $locale = null) { $displayOptions = array( 'showVolume' => $this->getData('showVolume'), 'showNumber' => $this->getData('showNumber'), @@ -454,15 +454,18 @@ ); $displayOptions = array_merge($displayOptions, $force); + if(is_null($locale)){ + $locale = AppLocale::getLocale(); + } - AppLocale::requireComponents(array(LOCALE_COMPONENT_APP_COMMON)); - $volLabel = __('issue.vol'); - $numLabel = __('issue.no'); + AppLocale::requireComponents(array(LOCALE_COMPONENT_APP_COMMON), $locale); + $volLabel = PKPLocale::translate('issue.vol', array(), $locale); + $numLabel = PKPLocale::translate('issue.no', array(), $locale); $vol = $this->getData('volume'); $num = $this->getData('number'); $year = $this->getData('year'); - $title = $this->getLocalizedTitle(); + $title = $this->getTitle($locale); $identification = array(); foreach($displayOptions as $opt => $val) { @@ -497,7 +500,8 @@ 'showNumber' => true, 'showYear' => true, 'showTitle' => false, - ) + ), + $locale ); } diff -ur ojs-3.1.0/classes/search/ArticleSearchIndex.inc.php ojs/classes/search/ArticleSearchIndex.inc.php --- ojs-3.1.0/classes/search/ArticleSearchIndex.inc.php 2017-10-24 06:04:36.000000000 +0300 +++ ojs/classes/search/ArticleSearchIndex.inc.php 2017-12-01 13:54:41.794235362 +0200 @@ -46,9 +46,21 @@ $authors = $article->getAuthors(); for ($i=0, $count=count($authors); $i < $count; $i++) { $author = $authors[$i]; - array_push($authorText, $author->getFirstName()); - array_push($authorText, $author->getMiddleName()); - array_push($authorText, $author->getLastName()); + $firstName = $author->getFirstName(null); + array_push($authorText, $firstName); + if (is_array($firstName)) foreach ($firstName as $first) { // Localized + array_push($authorText, strip_tags($first)); + } + $middleName = $author->getMiddleName(null); + array_push($authorText, $middleName); + if (is_array($middleName)) foreach ($middleName as $middle) { // Localized + array_push($authorText, strip_tags($middle)); + } + $lastName = $author->getLastName(null); + array_push($authorText, $lastName); + if (is_array($lastName)) foreach ($lastName as $last) { // Localized + array_push($authorText, strip_tags($last)); + } $affiliations = $author->getAffiliation(null); if (is_array($affiliations)) foreach ($affiliations as $affiliation) { // Localized array_push($authorText, $affiliation); diff -ur ojs-3.1.0/lib/pkp/classes/controllers/grid/DataObjectGridCellProvider.inc.php ojs/lib/pkp/classes/controllers/grid/DataObjectGridCellProvider.inc.php --- ojs-3.1.0/lib/pkp/classes/controllers/grid/DataObjectGridCellProvider.inc.php 2017-10-24 06:05:28.000000000 +0300 +++ ojs/lib/pkp/classes/controllers/grid/DataObjectGridCellProvider.inc.php 2017-11-30 19:38:31.985733417 +0200 @@ -62,6 +62,10 @@ assert(is_a($element, 'DataObject') && !empty($columnId)); $data = $element->getData($columnId); + if (is_null($this->getLocale())){ + $locale = AppLocale::getLocale(); + $this->setLocale($locale); + } // For localized fields, $data will be an array; otherwise, // it will be a value suitable for conversion to string. // If it's localized, fetch the value in the current locale. diff -ur ojs-3.1.0/lib/pkp/classes/identity/Identity.inc.php ojs/lib/pkp/classes/identity/Identity.inc.php --- ojs-3.1.0/lib/pkp/classes/identity/Identity.inc.php 2017-10-24 06:05:28.000000000 +0300 +++ ojs/lib/pkp/classes/identity/Identity.inc.php 2017-11-24 18:20:33.318285165 +0200 @@ -28,11 +28,11 @@ * @return string */ function getFullName($lastFirst = false) { - $salutation = $this->getData('salutation'); - $firstName = $this->getData('firstName'); - $middleName = $this->getData('middleName'); - $lastName = $this->getData('lastName'); - $suffix = $this->getData('suffix'); + $salutation = $this->getLocalizedData('salutation'); + $firstName = $this->getLocalizedData('firstName'); + $middleName = $this->getLocalizedData('middleName'); + $lastName = $this->getLocalizedData('lastName'); + $suffix = $this->getLocalizedData('suffix'); if ($lastFirst) { return "$lastName, " . ($salutation != ''?"$salutation ":'') . $firstName . ($middleName != ''?" $middleName":''); } else { @@ -45,16 +45,24 @@ * Get first name. * @return string */ - function getFirstName() { - return $this->getData('firstName'); + function getFirstName($locale) { + return $this->getData('firstName', $locale); } /** * Set first name. * @param $firstName string */ - function setFirstName($firstName) { - $this->setData('firstName', $firstName); + function setFirstName($firstName, $locale) { + $this->setData('firstName', $firstName, $locale); + } + + /** + * Get the localized first name + * @return string + */ + function getLocalizedFirstName() { + return $this->getLocalizedData('firstName'); } @@ -62,42 +70,58 @@ * Get middle name. * @return string */ - function getMiddleName() { - return $this->getData('middleName'); + function getMiddleName($locale) { + return $this->getData('middleName', $locale); } /** * Set middle name. * @param $middleName string */ - function setMiddleName($middleName) { - $this->setData('middleName', $middleName); + function setMiddleName($middleName, $locale) { + $this->setData('middleName', $middleName, $locale); + } + + /** + * Get the localized middle name + * @return string + */ + function getLocalizedMiddleName() { + return $this->getLocalizedData('middleName'); } /** * Get last name. * @return string */ - function getLastName() { - return $this->getData('lastName'); + function getLastName($locale) { + return $this->getData('lastName', $locale); } /** * Set last name. * @param $lastName string */ - function setLastName($lastName) { - $this->setData('lastName', $lastName); + function setLastName($lastName, $locale) { + $this->setData('lastName', $lastName, $locale); + } + + /** + * Get the localized last name + * @return string + */ + function getLocalizedLastName() { + return $this->getLocalizedData('lastName'); } /** * Get initials. * @return string */ - function getInitials() { - $initials = $this->getData('initials'); + function getInitials($locale) { + $initials = $this->getData('initials', $locale); if (!$initials) { - $initials = PKPString::substr($this->getFirstName(), 0, 1) . PKPString::substr($this->getLastName(), 0, 1); + $initials = PKPString::substr($this->getFirstName($locale), 0, 1) . PKPString::substr($this->getLastName($locale), 0, 1); } return $initials; } @@ -106,24 +130,40 @@ * Set initials. * @param $initials string */ - function setInitials($initials) { - $this->setData('initials', $initials); + function setInitials($initials, $locale) { + $this->setData('initials', $initials, $locale); + } + + /** + * Get the localized initials + * @return string + */ + function getLocalizedInitials() { + return $this->getLocalizedData('initials'); } /** * Get user salutation. * @return string */ - function getSalutation() { - return $this->getData('salutation'); + function getSalutation($locale) { + return $this->getData('salutation', $locale); } /** * Set user salutation. * @param $salutation string */ - function setSalutation($salutation) { - $this->setData('salutation', $salutation); + function setSalutation($salutation, $locale) { + $this->setData('salutation', $salutation, $locale); + } + + /** + * Get the localized salutation + * @return string + */ + function getLocalizedSalutation() { + return $this->getLocalizedData('salutation'); } /** @@ -187,16 +227,24 @@ * Get name suffix. * @return string */ - function getSuffix() { - return $this->getData('suffix'); + function getSuffix($locale) { + return $this->getData('suffix', $locale); } /** * Set suffix. * @param $suffix string */ - function setSuffix($suffix) { - $this->setData('suffix', $suffix); + function setSuffix($suffix, $locale) { + $this->setData('suffix', $suffix, $locale); + } + + /** + * Get the localized suffix + * @return string + */ + function getLocalizedSuffix() { + return $this->getLocalizedData('suffix'); } /** diff -ur ojs-3.1.0/lib/pkp/classes/install/PKPInstall.inc.php ojs/lib/pkp/classes/install/PKPInstall.inc.php --- ojs-3.1.0/lib/pkp/classes/install/PKPInstall.inc.php 2017-10-24 06:05:28.000000000 +0300 +++ ojs/lib/pkp/classes/install/PKPInstall.inc.php 2017-11-24 18:20:33.322285203 +0200 @@ -246,8 +246,8 @@ $user = $userDao->newDataObject(); $user->setUsername($this->getParam('adminUsername')); $user->setPassword(Validation::encryptCredentials($this->getParam('adminUsername'), $this->getParam('adminPassword'), $this->getParam('encryption'))); - $user->setFirstName($user->getUsername()); - $user->setLastName(''); + $user->setFirstName($user->getUsername(), null); + $user->setLastName('', null); $user->setEmail($this->getParam('adminEmail')); $user->setInlineHelp(1); if (!$userDao->insertObject($user)) { diff -ur ojs-3.1.0/lib/pkp/classes/submission/form/PKPSubmissionSubmitStep1Form.inc.php ojs/lib/pkp/classes/submission/form/PKPSubmissionSubmitStep1Form.inc.php --- ojs-3.1.0/lib/pkp/classes/submission/form/PKPSubmissionSubmitStep1Form.inc.php 2017-10-24 06:05:28.000000000 +0300 +++ ojs/lib/pkp/classes/submission/form/PKPSubmissionSubmitStep1Form.inc.php 2017-11-24 18:20:33.322285203 +0200 @@ -262,9 +262,9 @@ // Set user to initial author $authorDao = DAORegistry::getDAO('AuthorDAO'); $author = $authorDao->newDataObject(); - $author->setFirstName($user->getFirstName()); - $author->setMiddleName($user->getMiddleName()); - $author->setLastName($user->getLastName()); + $author->setFirstName($user->getFirstName(null), null); + $author->setMiddleName($user->getMiddleName(null), null); + $author->setLastName($user->getLastName(null), null); $author->setAffiliation($user->getAffiliation(null), null); $author->setCountry($user->getCountry()); $author->setEmail($user->getEmail()); diff -ur ojs-3.1.0/lib/pkp/classes/submission/PKPAuthorDAO.inc.php ojs/lib/pkp/classes/submission/PKPAuthorDAO.inc.php --- ojs-3.1.0/lib/pkp/classes/submission/PKPAuthorDAO.inc.php 2017-10-24 06:05:28.000000000 +0300 +++ ojs/lib/pkp/classes/submission/PKPAuthorDAO.inc.php 2017-11-24 18:20:33.322285203 +0200 @@ -124,10 +124,10 @@ $author = $this->newDataObject(); $author->setId($row['author_id']); $author->setSubmissionId($row['submission_id']); - $author->setFirstName($row['first_name']); - $author->setMiddleName($row['middle_name']); - $author->setLastName($row['last_name']); - $author->setSuffix($row['suffix']); +// $author->setFirstName($row['first_name']); +// $author->setMiddleName($row['middle_name']); +// $author->setLastName($row['last_name']); +// $author->setSuffix($row['suffix']); $author->setCountry($row['country']); $author->setEmail($row['email']); $author->setUrl($row['url']); @@ -153,10 +153,10 @@ $author = $this->newDataObject(); $author->setId($row['author_id']); $author->setSubmissionId($row['submission_id']); - $author->setFirstName($row['first_name']); - $author->setMiddleName($row['middle_name']); - $author->setLastName($row['last_name']); - $author->setSuffix($row['suffix']); + $author->setFirstName($row['first_name'], $row['locale']); + $author->setMiddleName($row['middle_name'], $row['locale']); + $author->setLastName($row['last_name'], $row['locale']); + $author->setSuffix($row['suffix'], $row['locale']); $author->setCountry($row['country']); $author->setEmail($row['email']); $author->setUrl($row['url']); @@ -183,7 +183,7 @@ * @return array */ function getLocaleFieldNames() { - return array('biography', 'competingInterests', 'affiliation'); + return array('biography', 'competingInterests', 'affiliation', 'lastName', 'middleName', 'firstName', 'suffix'); } /** @@ -200,6 +200,7 @@ * @param $author Author */ function insertObject($author) { + $primaryLocale = AppLocale::getPrimaryLocale(); // Set author sequence to end of author list if(!$author->getSequence()) { $authorCount = $this->getAuthorCountBySubmissionId($author->getSubmissionId()); @@ -220,10 +221,10 @@ )', array( (int) $author->getSubmissionId(), - $author->getFirstName(), - $author->getMiddleName() . '', // make non-null - $author->getLastName(), - $author->getSuffix() . '', + $author->getFirstName($primaryLocale), + $author->getMiddleName($primaryLocale) . '', // make non-null + $author->getLastName($primaryLocale), + $author->getSuffix($primaryLocale) . '', $author->getCountry(), $author->getEmail(), $author->getUrl(), @@ -245,6 +246,7 @@ * @param $author Author */ function updateObject($author) { + $primaryLocale = AppLocale::getPrimaryLocale(); // Reset primary contact for submission to this author if applicable if ($author->getPrimaryContact()) { $this->resetPrimaryContact($author->getId(), $author->getSubmissionId()); @@ -264,10 +266,10 @@ include_in_browse = ? WHERE author_id = ?', array( - $author->getFirstName(), - $author->getMiddleName() . '', // make non-null - $author->getLastName(), - $author->getSuffix() . '', + $author->getFirstName($primaryLocale), + $author->getMiddleName($primaryLocale) . '', // make non-null + $author->getLastName($primaryLocale), + $author->getSuffix($primaryLocale) . '', $author->getCountry(), $author->getEmail(), $author->getUrl(), diff -ur ojs-3.1.0/lib/pkp/classes/user/form/IdentityForm.inc.php ojs/lib/pkp/classes/user/form/IdentityForm.inc.php --- ojs-3.1.0/lib/pkp/classes/user/form/IdentityForm.inc.php 2017-10-24 06:05:28.000000000 +0300 +++ ojs/lib/pkp/classes/user/form/IdentityForm.inc.php 2017-11-24 18:20:33.322285203 +0200 @@ -55,13 +55,13 @@ $user = $this->getUser(); $this->_data = array( - 'salutation' => $user->getSalutation(), - 'firstName' => $user->getFirstName(), - 'middleName' => $user->getMiddleName(), - 'initials' => $user->getInitials(), - 'lastName' => $user->getLastName(), - 'suffix' => $user->getSuffix(), - 'gender' => $user->getGender(), + 'salutation' => $user->getSalutation(null), + 'firstName' => $user->getFirstName(null), + 'middleName' => $user->getMiddleName(null), + 'initials' => $user->getInitials(null), + 'lastName' => $user->getLastName(null), + 'suffix' => $user->getSuffix(null), + 'gender' => $user->getGender(null), ); } @@ -82,12 +82,12 @@ function execute($request) { $user = $request->getUser(); - $user->setSalutation($this->getData('salutation')); - $user->setFirstName($this->getData('firstName')); - $user->setMiddleName($this->getData('middleName')); - $user->setInitials($this->getData('initials')); - $user->setLastName($this->getData('lastName')); - $user->setSuffix($this->getData('suffix')); + $user->setSalutation($this->getData('salutation', null), null); + $user->setFirstName($this->getData('firstName', null), null); + $user->setMiddleName($this->getData('middleName', null), null); + $user->setInitials($this->getData('initials', null), null); + $user->setLastName($this->getData('lastName', null), null); + $user->setSuffix($this->getData('suffix', null), null); $user->setGender($this->getData('gender')); parent::execute($request, $user); diff -ur ojs-3.1.0/lib/pkp/classes/user/form/RegistrationForm.inc.php ojs/lib/pkp/classes/user/form/RegistrationForm.inc.php --- ojs-3.1.0/lib/pkp/classes/user/form/RegistrationForm.inc.php 2017-10-24 06:05:28.000000000 +0300 +++ ojs/lib/pkp/classes/user/form/RegistrationForm.inc.php 2017-11-24 18:20:33.322285203 +0200 @@ -199,10 +199,10 @@ $user->setUsername($this->getData('username')); // Set the base user fields (name, etc.) - $user->setFirstName($this->getData('firstName')); - $user->setMiddleName($this->getData('middleName')); - $user->setLastName($this->getData('lastName')); - $user->setInitials($this->getData('initials')); + $user->setFirstName($this->getData('firstName'), null); + $user->setMiddleName($this->getData('middleName'), null); + $user->setLastName($this->getData('lastName'), null); + $user->setInitials($this->getData('initials'), null); $user->setEmail($this->getData('email')); $user->setCountry($this->getData('country')); $user->setAffiliation($this->getData('affiliation'), null); // Localized diff -ur ojs-3.1.0/lib/pkp/classes/user/PKPUserDAO.inc.php ojs/lib/pkp/classes/user/PKPUserDAO.inc.php --- ojs-3.1.0/lib/pkp/classes/user/PKPUserDAO.inc.php 2017-10-24 06:05:28.000000000 +0300 +++ ojs/lib/pkp/classes/user/PKPUserDAO.inc.php 2017-12-14 13:01:54.458766874 +0200 @@ -373,12 +373,6 @@ $user->setId($row['user_id']); $user->setUsername($row['username']); $user->setPassword($row['password']); - $user->setSalutation($row['salutation']); - $user->setFirstName($row['first_name']); - $user->setMiddleName($row['middle_name']); - $user->setInitials($row['initials']); - $user->setLastName($row['last_name']); - $user->setSuffix($row['suffix']); $user->setGender($row['gender']); $user->setEmail($row['email']); $user->setUrl($row['url']); @@ -408,6 +402,7 @@ * @param $user User */ function insertObject($user) { + $primaryLocale = AppLocale::getPrimaryLocale(); if ($user->getDateRegistered() == null) { $user->setDateRegistered(Core::getCurrentDate()); } @@ -423,12 +418,12 @@ array( $user->getUsername(), $user->getPassword(), - $user->getSalutation(), - $user->getFirstName(), - $user->getMiddleName(), - $user->getInitials(), - $user->getLastName(), - $user->getSuffix(), + $user->getSalutation($primaryLocale), + $user->getFirstName($primaryLocale) . '', + $user->getMiddleName($primaryLocale), + $user->getInitials($primaryLocale), + $user->getLastName($primaryLocale) . '', + $user->getSuffix($primaryLocale), $user->getGender(), $user->getEmail(), $user->getUrl(), @@ -455,7 +450,7 @@ * @copydoc DAO::getLocaleFieldNames */ function getLocaleFieldNames() { - return array('biography', 'signature', 'gossip', 'affiliation'); + return array('biography', 'signature', 'gossip', 'affiliation', 'salutation', 'firstName', 'middleName', 'lastName', 'initials', 'suffix'); } /** @@ -483,6 +478,7 @@ * @param $user PKPUser */ function updateObject($user) { + $primaryLocale = AppLocale::getPrimaryLocale(); if ($user->getDateLastLogin() == null) { $user->setDateLastLogin(Core::getCurrentDate()); } @@ -493,12 +489,6 @@ sprintf('UPDATE users SET username = ?, password = ?, - salutation = ?, - first_name = ?, - middle_name = ?, - initials = ?, - last_name = ?, - suffix = ?, gender = ?, email = ?, url = ?, @@ -521,12 +511,6 @@ array( $user->getUsername(), $user->getPassword(), - $user->getSalutation(), - $user->getFirstName(), - $user->getMiddleName(), - $user->getInitials(), - $user->getLastName(), - $user->getSuffix(), $user->getGender(), $user->getEmail(), $user->getUrl(), diff -ur ojs-3.1.0/lib/pkp/controllers/grid/settings/user/form/UserDetailsForm.inc.php ojs/lib/pkp/controllers/grid/settings/user/form/UserDetailsForm.inc.php --- ojs-3.1.0/lib/pkp/controllers/grid/settings/user/form/UserDetailsForm.inc.php 2017-10-24 06:05:28.000000000 +0300 +++ ojs/lib/pkp/controllers/grid/settings/user/form/UserDetailsForm.inc.php 2017-11-24 18:20:33.322285203 +0200 @@ -81,13 +81,13 @@ $data = array( 'authId' => $user->getAuthId(), 'username' => $user->getUsername(), - 'salutation' => $user->getSalutation(), - 'firstName' => $user->getFirstName(), - 'middleName' => $user->getMiddleName(), - 'lastName' => $user->getLastName(), - 'suffix' => $user->getSuffix(), + 'salutation' => $user->getSalutation(null), + 'firstName' => $user->getFirstName(null), + 'middleName' => $user->getMiddleName(null), + 'lastName' => $user->getLastName(null), + 'suffix' => $user->getSuffix(null), 'signature' => $user->getSignature(null), // Localized - 'initials' => $user->getInitials(), + 'initials' => $user->getInitials(null), 'gender' => $user->getGender(), 'affiliation' => $user->getAffiliation(null), // Localized 'email' => $user->getEmail(), @@ -103,10 +103,10 @@ } else if (isset($this->author)) { $author = $this->author; $data = array( - 'salutation' => $author->getSalutation(), - 'firstName' => $author->getFirstName(), - 'middleName' => $author->getMiddleName(), - 'lastName' => $author->getLastName(), + 'salutation' => $author->getSalutation(null), + 'firstName' => $author->getFirstName(null), + 'middleName' => $author->getMiddleName(null), + 'lastName' => $author->getLastName(null), 'affiliation' => $author->getAffiliation(null), // Localized 'email' => $author->getEmail(), 'userUrl' => $author->getUrl(), @@ -236,12 +236,12 @@ $user->setInlineHelp(1); // default new users to having inline help visible } - $user->setSalutation($this->getData('salutation')); - $user->setFirstName($this->getData('firstName')); - $user->setMiddleName($this->getData('middleName')); - $user->setLastName($this->getData('lastName')); - $user->setSuffix($this->getData('suffix')); - $user->setInitials($this->getData('initials')); + $user->setSalutation($this->getData('salutation'), null); + $user->setFirstName($this->getData('firstName'), null); + $user->setMiddleName($this->getData('middleName'), null); + $user->setLastName($this->getData('lastName'), null); + $user->setSuffix($this->getData('suffix'), null); + $user->setInitials($this->getData('initials'), null); $user->setGender($this->getData('gender')); $user->setAffiliation($this->getData('affiliation'), null); // Localized $user->setSignature($this->getData('signature'), null); // Localized diff -ur ojs-3.1.0/lib/pkp/controllers/grid/users/author/form/AuthorForm.inc.php ojs/lib/pkp/controllers/grid/users/author/form/AuthorForm.inc.php --- ojs-3.1.0/lib/pkp/controllers/grid/users/author/form/AuthorForm.inc.php 2017-10-24 06:05:28.000000000 +0300 +++ ojs/lib/pkp/controllers/grid/users/author/form/AuthorForm.inc.php 2017-11-24 18:20:33.322285203 +0200 @@ -110,10 +110,10 @@ if ($author) { $this->_data = array( 'authorId' => $author->getId(), - 'firstName' => $author->getFirstName(), - 'middleName' => $author->getMiddleName(), - 'lastName' => $author->getLastName(), - 'suffix' => $author->getSuffix(), + 'firstName' => $author->getFirstName(null), + 'middleName' => $author->getMiddleName(null), + 'lastName' => $author->getLastName(null), + 'suffix' => $author->getSuffix(null), 'affiliation' => $author->getAffiliation(null), // Localized 'country' => $author->getCountry(), 'email' => $author->getEmail(), @@ -201,10 +201,10 @@ if ($submission->getId() !== $author->getSubmissionId()) fatalError('Invalid author!'); } - $author->setFirstName($this->getData('firstName')); - $author->setMiddleName($this->getData('middleName')); - $author->setLastName($this->getData('lastName')); - $author->setSuffix($this->getData('suffix')); + $author->setFirstName($this->getData('firstName'), null); + $author->setMiddleName($this->getData('middleName'), null); + $author->setLastName($this->getData('lastName'), null); + $author->setSuffix($this->getData('suffix'), null); $author->setAffiliation($this->getData('affiliation'), null); // localized $author->setCountry($this->getData('country')); $author->setEmail($this->getData('email')); diff -ur ojs-3.1.0/lib/pkp/controllers/grid/users/reviewer/form/CreateReviewerForm.inc.php ojs/lib/pkp/controllers/grid/users/reviewer/form/CreateReviewerForm.inc.php --- ojs-3.1.0/lib/pkp/controllers/grid/users/reviewer/form/CreateReviewerForm.inc.php 2017-10-24 06:05:28.000000000 +0300 +++ ojs/lib/pkp/controllers/grid/users/reviewer/form/CreateReviewerForm.inc.php 2017-11-24 18:20:33.322285203 +0200 @@ -75,9 +75,9 @@ $userDao = DAORegistry::getDAO('UserDAO'); $user = $userDao->newDataObject(); - $user->setFirstName($this->getData('firstName')); - $user->setMiddleName($this->getData('middleName')); - $user->setLastName($this->getData('lastName')); + $user->setFirstName($this->getData('firstName'), null); + $user->setMiddleName($this->getData('middleName'), null); + $user->setLastName($this->getData('lastName'), null); $user->setEmail($this->getData('email')); $user->setAffiliation($this->getData('affiliation'), null); // Localized diff -ur ojs-3.1.0/lib/pkp/plugins/metadata/dc11/schema/PKPDc11Schema.inc.php ojs/lib/pkp/plugins/metadata/dc11/schema/PKPDc11Schema.inc.php --- ojs-3.1.0/lib/pkp/plugins/metadata/dc11/schema/PKPDc11Schema.inc.php 2017-10-24 06:05:28.000000000 +0300 +++ ojs/lib/pkp/plugins/metadata/dc11/schema/PKPDc11Schema.inc.php 2017-11-27 16:44:02.096654888 +0200 @@ -37,7 +37,7 @@ ); $this->addProperty('dc:title', METADATA_PROPERTY_TYPE_STRING, true, METADATA_PROPERTY_CARDINALITY_MANY); - $this->addProperty('dc:creator', METADATA_PROPERTY_TYPE_STRING, false, METADATA_PROPERTY_CARDINALITY_MANY); + $this->addProperty('dc:creator', METADATA_PROPERTY_TYPE_STRING, true, METADATA_PROPERTY_CARDINALITY_MANY); $this->addProperty('dc:subject', METADATA_PROPERTY_TYPE_STRING, true, METADATA_PROPERTY_CARDINALITY_MANY); $this->addProperty('dc:description', METADATA_PROPERTY_TYPE_STRING, true, METADATA_PROPERTY_CARDINALITY_MANY); $this->addProperty('dc:publisher', METADATA_PROPERTY_TYPE_STRING, true, METADATA_PROPERTY_CARDINALITY_MANY); diff -ur ojs-3.1.0/lib/pkp/templates/common/userDetails.tpl ojs/lib/pkp/templates/common/userDetails.tpl --- ojs-3.1.0/lib/pkp/templates/common/userDetails.tpl 2017-10-24 06:05:28.000000000 +0300 +++ ojs/lib/pkp/templates/common/userDetails.tpl 2017-11-24 18:20:33.326285241 +0200 @@ -28,9 +28,9 @@ {fbvFormArea id="userDetails"} {fbvFormSection title="user.name"} - {fbvElement type="text" label="user.firstName" required="true" id="firstName" value=$firstName maxlength="40" inline=true size=$fbvStyles.size.SMALL} - {fbvElement type="text" label="user.middleName" id="middleName" value=$middleName maxlength="40" inline=true size=$fbvStyles.size.SMALL} - {fbvElement type="text" label="user.lastName" required="true" id="lastName" value=$lastName maxlength="40" inline=true size=$fbvStyles.size.SMALL} + {fbvElement type="text" label="user.firstName" required="true" id="firstName" multilingual="true" value=$firstName maxlength="40" inline=true size=$fbvStyles.size.SMALL} + {fbvElement type="text" label="user.middleName" id="middleName" multilingual="true" value=$middleName maxlength="40" inline=true size=$fbvStyles.size.SMALL} + {fbvElement type="text" label="user.lastName" required="true" id="lastName" multilingual="true" value=$lastName maxlength="40" inline=true size=$fbvStyles.size.SMALL} {/fbvFormSection} {if !$disableUserNameSection} @@ -116,11 +116,11 @@ {fbvElement type="select" label="user.gender" name="gender" id="gender" defaultLabel="" defaultValue="" from=$genderOptions translate="true" selected=$gender inline=true size=$fbvStyles.size.SMALL} {/if} {if !$disableSalutationSection} - {fbvElement type="text" label="user.salutation" name="salutation" id="salutation" value=$salutation maxlength="40" inline=true size=$fbvStyles.size.SMALL} + {fbvElement type="text" label="user.salutation" name="salutation" id="salutation" multilingual="true" value=$salutation maxlength="40" inline=true size=$fbvStyles.size.SMALL} {/if} - {fbvElement type="text" label="user.suffix" id="suffix" value=$suffix size=$fbvStyles.size.SMALL inline=true} + {fbvElement type="text" label="user.suffix" id="suffix" multilingual="true" value=$suffix size=$fbvStyles.size.SMALL inline=true} {if !$disableInitialsSection} - {fbvElement type="text" label="user.initials" name="initials" id="initials" value=$initials maxlength="5" inline=true size=$fbvStyles.size.SMALL} + {fbvElement type="text" label="user.initials" name="initials" id="initials" multilingual="true" value=$initials maxlength="5" inline=true size=$fbvStyles.size.SMALL} {/if} {/fbvFormSection} diff -ur ojs-3.1.0/lib/pkp/templates/frontend/components/registrationForm.tpl ojs/lib/pkp/templates/frontend/components/registrationForm.tpl --- ojs-3.1.0/lib/pkp/templates/frontend/components/registrationForm.tpl 2017-10-24 06:05:28.000000000 +0300 +++ ojs/lib/pkp/templates/frontend/components/registrationForm.tpl 2017-11-24 18:20:33.326285241 +0200 @@ -30,7 +30,7 @@ {translate key="common.required"} - +
@@ -38,7 +38,7 @@ {translate key="user.middleName"} - +
@@ -50,7 +50,7 @@ {translate key="common.required"} - +
diff -ur ojs-3.1.0/lib/pkp/templates/user/identityForm.tpl ojs/lib/pkp/templates/user/identityForm.tpl --- ojs-3.1.0/lib/pkp/templates/user/identityForm.tpl 2017-10-24 06:05:28.000000000 +0300 +++ ojs/lib/pkp/templates/user/identityForm.tpl 2017-11-30 14:02:32.023567169 +0200 @@ -31,14 +31,14 @@ {fbvFormArea id="userFormCompactLeft"} {fbvFormSection title="user.name"} - {fbvElement type="text" label="user.firstName" required="true" id="firstName" value=$firstName maxlength="40" inline=true size=$fbvStyles.size.SMALL} - {fbvElement type="text" label="user.middleName" id="middleName" value=$middleName maxlength="40" inline=true size=$fbvStyles.size.SMALL} - {fbvElement type="text" label="user.lastName" required="true" id="lastName" value=$lastName maxlength="40" inline=true size=$fbvStyles.size.SMALL} + {fbvElement type="text" label="user.firstName" required="true" id="firstName" multilingual="true" value=$firstName maxlength="40" inline=true size=$fbvStyles.size.SMALL} + {fbvElement type="text" label="user.middleName" id="middleName" multilingual="true" value=$middleName maxlength="40" inline=true size=$fbvStyles.size.SMALL} + {fbvElement type="text" label="user.lastName" required="true" id="lastName" multilingual="true" value=$lastName maxlength="40" inline=true size=$fbvStyles.size.SMALL} {/fbvFormSection} {fbvFormSection} - {fbvElement type="text" label="user.salutation" name="salutation" id="salutation" value=$salutation maxlength="40" inline=true size=$fbvStyles.size.SMALL} - {fbvElement type="text" label="user.initials" name="initials" id="initials" value=$initials maxlength="5" inline=true size=$fbvStyles.size.SMALL} - {fbvElement type="text" label="user.suffix" id="suffix" value=$suffix inline=true size=$fbvStyles.size.SMALL} + {fbvElement type="text" label="user.salutation" name="salutation" id="salutation" multilingual="true" value=$salutation maxlength="40" inline=true size=$fbvStyles.size.SMALL} + {fbvElement type="text" label="user.initials" name="initials" id="initials" multilingual="true" value=$initials maxlength="5" inline=true size=$fbvStyles.size.SMALL} + {fbvElement type="text" label="user.suffix" id="suffix" multilingual="true" value=$suffix inline=true size=$fbvStyles.size.SMALL} {/fbvFormSection} {fbvFormSection} {fbvElement type="select" label="user.gender" name="gender" id="gender" from=$genderOptions translate="true" selected=$gender size=$fbvStyles.size.SMALL} diff -ur ojs-3.1.0/lib/pkp/templates/workflow/workflow.tpl ojs/lib/pkp/templates/workflow/workflow.tpl --- ojs-3.1.0/lib/pkp/templates/workflow/workflow.tpl 2017-10-24 06:05:28.000000000 +0300 +++ ojs/lib/pkp/templates/workflow/workflow.tpl 2017-12-01 12:10:44.025352862 +0200 @@ -15,7 +15,7 @@ {/if} {assign var=submissionTitleSafe value=$submission->getLocalizedTitle()|strip_unsafe_html} {if $primaryAuthor} - {assign var="pageTitleTranslated" value=$primaryAuthor->getLastName()|concat:", ":$submissionTitleSafe} + {assign var="pageTitleTranslated" value=$primaryAuthor->getLocalizedLastName()|concat:", ":$submissionTitleSafe} {else} {assign var="pageTitleTranslated" value=$submissionTitleSafe} {/if} diff -ur ojs-3.1.0/plugins/generic/citationStyleLanguage/CitationStyleLanguagePlugin.inc.php ojs/plugins/generic/citationStyleLanguage/CitationStyleLanguagePlugin.inc.php --- ojs-3.1.0/plugins/generic/citationStyleLanguage/CitationStyleLanguagePlugin.inc.php 2017-10-24 06:06:06.000000000 +0300 +++ ojs/plugins/generic/citationStyleLanguage/CitationStyleLanguagePlugin.inc.php 2017-12-01 16:22:00.123709372 +0200 @@ -314,7 +314,7 @@ $citationData = new stdClass(); $citationData->type = 'article-journal'; $citationData->id = $article->getId(); - $citationData->title = htmlspecialchars($article->getLocalizedTitle()); + $citationData->title = $article->getLocalizedTitle(); $citationData->{'container-title'} = htmlspecialchars($journal->getLocalizedName()); $citationData->{'container-title-short'} = htmlspecialchars($journal->getLocalizedAcronym()); $citationData->volume = htmlspecialchars($issue->getData('volume')); @@ -337,8 +337,8 @@ $citationData->author = array(); foreach ($authors as $author) { $currentAuthor = new stdClass(); - $currentAuthor->family = htmlspecialchars($author->getLastName()); - $currentAuthor->given = htmlspecialchars($author->getFirstName()); + $currentAuthor->family = htmlspecialchars($author->getLocalizedLastName()); + $currentAuthor->given = htmlspecialchars($author->getLocalizedFirstName()); $citationData->author[] = $currentAuthor; } } diff -ur ojs-3.1.0/plugins/generic/googleScholar/GoogleScholarPlugin.inc.php ojs/plugins/generic/googleScholar/GoogleScholarPlugin.inc.php --- ojs-3.1.0/plugins/generic/googleScholar/GoogleScholarPlugin.inc.php 2017-10-24 06:04:36.000000000 +0300 +++ ojs/plugins/generic/googleScholar/GoogleScholarPlugin.inc.php 2017-12-01 16:43:38.195989661 +0200 @@ -66,7 +66,7 @@ } foreach ($article->getAuthors() as $i => $author) { - $templateMgr->addHeader('googleScholarAuthor' . $i, 'getLastName()) . '"/>'); + $templateMgr->addHeader('googleScholarAuthor' . $i, 'getLastName($article->getLocale())) . '"/>'); if ($affiliation = htmlspecialchars($author->getAffiliation($article->getLocale()))) { $templateMgr->addHeader('googleScholarAuthor' . $i . 'Affiliation', ''); } diff -ur ojs-3.1.0/plugins/metadata/dc11/filter/Dc11SchemaArticleAdapter.inc.php ojs/plugins/metadata/dc11/filter/Dc11SchemaArticleAdapter.inc.php --- ojs-3.1.0/plugins/metadata/dc11/filter/Dc11SchemaArticleAdapter.inc.php 2017-10-24 06:04:36.000000000 +0300 +++ ojs/plugins/metadata/dc11/filter/Dc11SchemaArticleAdapter.inc.php 2017-11-30 19:45:55.347949952 +0200 @@ -85,7 +85,16 @@ // Creator $authors = $article->getAuthors(); foreach($authors as $author) { - $dc11Description->addStatement('dc:creator', $author->getFullName(true)); + $lastNames = $author->getLastName(null); + $middleNames = $author->getMiddleName(null); + $firstNames = $author->getFirstName(null); + $creator=array(); + foreach ($lastNames as $locale => $lastName) { + if (!($lastName == '')){ + $creator[$locale] = "$lastName, " . $firstNames[$locale] . ($middleNames[$locale] != ''?" $middleNames[$locale]":''); + } + } + $this->_addLocalizedElements($dc11Description, 'dc:creator', $creator); } // Subject @@ -155,7 +164,8 @@ if (!empty($pages)) $pages = '; ' . $pages; foreach ($sources as $locale => $source) { if (is_a($article, 'PublishedArticle')) { - $sources[$locale] .= '; ' . $issue->getIssueIdentification(); +// $sources[$locale] .= '; ' . $issue->getIssueIdentificationWithLocale(array(), $locale); + $sources[$locale] .= '; ' . $issue->getIssueIdentification(array(), $locale); } $sources[$locale] .= $pages; } @@ -222,6 +232,7 @@ // Rights: Add both copyright statement and license $copyrightHolder = $article->getLocalizedCopyrightHolder(); + $copyrightYear = $article->getCopyrightYear(); if (!empty($copyrightHolder) && !empty($copyrightYear)) { $dc11Description->addStatement('dc:rights', __('submission.copyrightStatement', array('copyrightHolder' => $copyrightHolder, 'copyrightYear' => $copyrightYear)));