From 66c3db1e8e68ad05d3d3b99b16e972410487bb3b Mon Sep 17 00:00:00 2001 From: Matt Peel Date: Mon, 25 Feb 2008 02:10:37 +0000 Subject: [PATCH] Reverted geoffm's accidental commit to /open git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@50107 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- _config.php | 8 +- code/AssetAdmin.php | 134 +++-- code/AssetTableField.php | 47 +- code/BulkLoader.php | 11 + code/BulkLoaderAdmin.php | 9 +- code/CMSActionOptionsForm.php | 7 + code/CMSHelp.php | 8 - code/CMSMain.php | 133 +++-- code/CommentAdmin.php | 68 ++- code/CommentTableField.php | 22 +- code/Diff.php | 41 +- code/FileList.php | 10 + code/GenericDataAdmin.php | 60 ++- code/ImageEditor.php | 456 +++++++++--------- code/ImprintStats.php | 10 + code/LeftAndMain.php | 47 +- code/MemberList.php | 24 +- code/MemberTableField.php | 147 +++--- code/Newsletter/BatchProcess.php | 19 +- code/Newsletter/BouncedList.php | 11 + code/Newsletter/Newsletter.php | 36 +- code/Newsletter/NewsletterEmailProcess.php | 54 ++- code/Newsletter/NewsletterList.php | 12 +- code/Newsletter/NewsletterType.php | 39 +- code/Newsletter/RecipientImportField.php | 22 +- code/Newsletter/SubscribeForm.php | 52 +- code/Newsletter/TemplateList.php | 12 +- code/Newsletter/Unsubscribe.php | 46 +- code/Newsletter/UnsubscribedList.php | 12 +- code/NewsletterAdmin.php | 62 ++- code/PageTypes/UserDefinedForm.php | 48 +- code/ReportAdmin.php | 10 + code/SecurityAdmin.php | 50 +- code/SideReport.php | 65 ++- code/StaticExporter.php | 13 +- code/StatisticsAdmin.php | 12 +- code/ThumbnailStripField.php | 9 +- code/WidgetAreaEditor.php | 10 + code/sitefeatures/Akismet.php | 10 +- code/sitefeatures/MathSpamProtection.php | 8 + code/sitefeatures/PageComment.php | 15 +- code/sitefeatures/PageCommentInterface.php | 37 +- code/sitefeatures/SSAkismet.php | 10 + css/WidgetAreaEditor.css | 1 + css/cms_left.css | 23 +- javascript/CMSMain_left.js | 6 +- javascript/GenericDataAdmin_right.js | 15 +- javascript/LeftAndMain_left.js | 24 +- javascript/ThumbnailStripField.js | 2 +- javascript/tinymce.template.js | 4 +- lang/bg_BG.php | 6 +- lang/cs_CZ.php | 6 +- lang/de_DE.php | 6 +- lang/en_US.php | 95 ++++ lang/es_ES.php | 6 +- lang/fr_FR.php | 9 +- lang/hr_HR.php | 9 +- lang/hu_HU.php | 6 +- lang/it_IT.php | 6 +- lang/nl_NL.php | 6 +- lang/pl_PL.php | 136 +++--- lang/pt_BR.php | 6 +- lang/pt_PT.php | 323 ++++++++++++- lang/ru_RU.php | 6 +- lang/sk_SK.php | 6 +- lang/sv_SE.php | 6 +- lang/tr_TR.php | 6 +- lang/zh_CN.php | 6 +- lang/zh_TW.php | 6 +- templates/Includes/AssetTableField.ss | 6 +- templates/Includes/CMSMain_left.ss | 12 +- templates/Includes/CommentAdmin_SiteTree.ss | 10 +- templates/Includes/CommentAdmin_left.ss | 4 +- templates/Includes/CommentAdmin_right.ss | 2 +- templates/Includes/CommentTableField.ss | 14 +- templates/Includes/Editor_toolbar.ss | 2 +- templates/Includes/GenericDataAdmin_left.ss | 2 +- templates/Includes/GenericDataAdmin_right.ss | 2 +- templates/Includes/MemberList_PageControls.ss | 18 +- .../Includes/NewsletterAdmin_BouncedList.ss | 14 +- templates/Includes/StatisticsAdmin_left.ss | 10 +- 81 files changed, 1932 insertions(+), 811 deletions(-) delete mode 100755 code/CMSHelp.php diff --git a/_config.php b/_config.php index 5ad8db81..f19c1c9b 100644 --- a/_config.php +++ b/_config.php @@ -1,11 +1,12 @@ 'BatchProcess_Controller', - 'silverstripe/' => '->admin/', - 'cms/' => '->admin/', + 'silverstripe' => '->admin', + 'cms' => '->admin', 'admin/statistics/$Action/$ID' => 'StatisticsAdmin', 'admin/security/$Action/$ID/$OtherID' => 'SecurityAdmin', 'admin/help/$Action/$ID' => 'CMSHelp', @@ -17,8 +18,7 @@ Director::addRules(50, array( 'admin/bulkload/$Action/$ID/$OtherID' => 'BulkLoaderAdmin', 'admin/ImageEditor/$Action' => 'ImageEditor', 'admin/$Action/$ID/$OtherID' => 'CMSMain', - 'unsubscribe/$Email/$MailingList' => 'Unsubscribe_Controller', - 'membercontrolpanel/$Email' => 'MemberControlPanel' + 'unsubscribe/$Email/$MailingList' => 'Unsubscribe_Controller' )); ?> diff --git a/code/AssetAdmin.php b/code/AssetAdmin.php index 9f91b10f..1ec4bada 100755 --- a/code/AssetAdmin.php +++ b/code/AssetAdmin.php @@ -1,11 +1,33 @@ urlParams['ID']}" id="AssetAdmin_upload" border="0" style="border-style: none; width: 100%; height: 200px"> - -HTML; - } function index() { File::sync(); @@ -155,7 +168,7 @@ HTML; foreach($processedFiles as $file) { if($file['error'] == UPLOAD_ERR_NO_TMP_DIR) { $status = 'bad'; - $statusMessage = 'There is no temporary folder for uploads. Please set upload_tmp_dir in php.ini.'; + $statusMessage = _t('AssetAdmin.NOTEMP', 'There is no temporary folder for uploads. Please set upload_tmp_dir in php.ini.'); break; } @@ -204,8 +217,24 @@ HTML; $statusMessage = _t('AssetAdmin.NOTHINGTOUPLOAD','There was nothing to upload'); $status = ""; } + + + $fileIDs = array(); + $fileNames = array(); + foreach($newFiles as $newFile) { + $fileIDs[] = $newFile; + $fileObj = DataObject::get_one('File', "`File`.ID=$newFile"); + $fileNames[] = $fileObj->Name; + } + + $sFileIDs = implode(',', $fileIDs); + $sFileNames = implode(',', $fileNames); + echo << + /* IDs: $sFileIDs */ + /* Names: $sFileNames */ + var form = parent.document.getElementById('Form_EditForm'); form.getPageFromServer(form.elements.ID.value); parent.statusMessage("{$statusMessage}","{$status}"); @@ -230,62 +259,8 @@ HTML; $record = singleton("Folder"); } - $fileList = new AssetTableField( - $this, - "Files", - "File", - array("Title" => _t('AssetAdmin.TITLE', "Title"), "LinkedURL" => _t('AssetAdmin.FILENAME', "Filename")), - "" - ); - $fileList->setFolder($record); - $fileList->setPopupCaption(_t('AssetAdmin.VIEWEDITASSET', "View/Edit Asset")); - - if($record) { - $nameField = ($id != "root") ? new TextField("Name", "Folder Name") : new HiddenField("Name"); - if( $record->userCanEdit() ) { - $deleteButton = new InlineFormAction('deletemarked',_t('AssetAdmin.DELSELECTED','Delete selected files'), 'delete'); - $deleteButton->includeDefaultJS(false); - } else { - $deleteButton = new HiddenField('deletemarked'); - } - - $fields = new FieldSet( - new HiddenField("Title"), - new TabSet("Root", - new Tab(_t('AssetAdmin.FILESTAB', "Files"), - $nameField, - $fileList, - $deleteButton, - new HiddenField("FileIDs"), - new HiddenField("DestFolderID") - ), - new Tab(_t('AssetAdmin.DETAILSTAB', "Details"), - new ReadonlyField("URL"), - new ReadonlyField("ClassName", _t('AssetAdmin.TYPE','Type')), - new ReadonlyField("Created", _t('AssetAdmin.CREATED','First Uploaded')), - new ReadonlyField("LastEdited", _t('AssetAdmin.LASTEDITED','Last Updated')) - ), - new Tab(_t('AssetAdmin.UPLOADTAB', "Upload"), - new LiteralField("UploadIframe", - $this->getUploadIframe() - ) - ), - new Tab(_t('AssetAdmin.UNUSEDFILESTAB', "Unused files"), - new LiteralField("UnusedAssets", - "

"._t('AssetAdmin.UNUSEDFILESTITLE', 'Unused files')."

" - ), - $this->getAssetList(), - new LiteralField("UnusedThumbnails", - "
-
-

"._t('AssetAdmin.UNUSEDTHUMBNAILSTITLE', 'Unused thumbnails')."

- -
" - ) - ) - ), - new HiddenField("ID") - ); + if($record) { + $fields = $record->getCMSFields(); $actions = new FieldSet(); @@ -368,7 +343,7 @@ HTML; $brokenPageList = ''; if($fileList != "''") { - $files = DataObject::get("File", "ID IN ($fileList)"); + $files = DataObject::get("File", "`File`.ID IN ($fileList)"); if($files) { foreach($files as $file) { if($file instanceof Image) { @@ -446,8 +421,7 @@ JS; /** * Return the entire site tree as a nested set of ULs - -*/ + */ public function SiteTreeAsUL() { $obj = singleton('Folder'); $obj->setMarkingFilter("ClassName", "Folder"); @@ -461,7 +435,7 @@ JS; ' "
  • ID\" class=\"$child->class" . $child->markingClasses() . ($extraArg->isCurrentPage($child) ? " current" : "") . "\">" . ' . - ' "Link(),0,-1), "show", $child->ID) . "\" class=\"" . ($child->hasChildren() ? " contents" : "") . "\" >" . $child->Title . "" ', + ' "Link(),0,-1), "show", $child->ID) . "\" class=\"" . ($child->hasChildren() ? " contents" : "") . "\" >" . $child->TreeTitle() . "" ', $this, true); @@ -491,7 +465,7 @@ JS; ' "
  • ID\" class=\"$child->class" . $child->markingClasses() . ($extraArg->isCurrentPage($child) ? " current" : "") . "\">" . ' . - ' "Link(),0,-1), "show", $child->ID) . "\" >" . $child->Title . "" ', + ' "Link(),0,-1), "show", $child->ID) . "\" >" . $child->TreeTitle() . "" ', $this, true); @@ -519,7 +493,7 @@ JS; $p->ParentID = $parent; $p->Title = _t('AssetAdmin.NEWFOLDER',"NewFolder"); - $p->Name = "NewFolder"; + $p->Name = _t('AssetAdmin.NEWFOLDER', 'NewFolder'); // Get the folder to be created if(isset($parentObj->ID)) $filename = $parentObj->FullPath . $p->Name; @@ -645,12 +619,24 @@ if(!$record) }*/ - + /* $s = (sizeof($ids) > 1) ? "s" :""; $message = sizeof($ids) . " folder$s deleted."; // if(isset($brokenPageList)) $message .= " The following pages now have broken links:Their owners have been emailed and they will fix up those pages."; + */ + + $size = sizeof($ids); + if($size > 1) + $message = $size.' '._t('AssetAdmin.FOLDERSDELETED', 'folders deleted.'); + else + $message = $size.' '._t('AssetAdmin.FOLDERDELETED', 'folder deleted.'); + + if(isset($brokenPageList)) + $message .= ' '._t('AssetAdmin.NOWBROKEN', 'The following pages now have broken links:').''. + _t('AssetAdmin.NOWBROKEN2', 'Their owners have been emailed and they will fix up those pages.'); + $script .= "statusMessage('$message');"; echo $script; } @@ -707,7 +693,7 @@ JS; foreach($this->getUnusedThumbnailsArray() as $file) { unlink("../assets/" . $file); } - echo "statusMessage('All unused thumbnails have been deleted','good')"; + echo "statusMessage('"._t('AssetAdmin.THUMBSDELETED', 'All unused thumbnails have been deleted')."','good')"; } /** diff --git a/code/AssetTableField.php b/code/AssetTableField.php index 790b45c0..d20aec58 100755 --- a/code/AssetTableField.php +++ b/code/AssetTableField.php @@ -1,4 +1,14 @@ "; - $urlLink .= ""; + $urlLink .= ""; $urlLink .= "{$childData->RelativeLink()}"; $urlLink .= ""; $detailFormFields = new FieldSet( new TabSet("BottomRoot", - new Tab("Main", + new Tab(_t('AssetTableField.MAIN', 'Main'), new TextField("Title", _t('AssetTableField.TITLE','Title')), new TextField("Name", _t('AssetTableField.FILENAME','Filename')), new LiteralField("AbsoluteURL", $urlLink), @@ -83,15 +93,16 @@ class AssetTableField extends ComplexTableField { $big = $childData->URL; $thumbnail = $childData->getFormattedImage('AssetLibraryPreview')->URL; - $detailFormFields->addFieldToTab("BottomRoot.Main", + // Hmm this required the translated string to be appended to BottomRoot to add this to the Main tab + $detailFormFields->addFieldToTab("BottomRoot."._t('AssetTableField.MAIN','Main'), new ReadonlyField("Dimensions", _t('AssetTableField.DIM','Dimensions')), "Created" ); $detailFormFields->addFieldToTab("BottomRoot", - new Tab("Image", + new Tab(_t('AssetTableField.IMAGE', 'Image'), new LiteralField("ImageFull", - '' . "{$childData->Name}

    Edit this image

    " . '
    ' . + '' . "{$childData->Name}

    "._t('AssetTableField.EDITIMAGE', 'Edit this image')."

    " . '
    ' . '' ) ), @@ -100,8 +111,8 @@ class AssetTableField extends ComplexTableField { if(class_exists('GalleryFile')) { $detailFormFields->addFieldToTab("BottomRoot", - new Tab("Gallery Options", - new TextField( "Content", "Caption" ) + new Tab(_t('AssetTableField.GALLERYOPTIONS', 'Gallery Options'), + new TextField( "Content", _t('AssetTableField.CAPTION', 'Caption') ) ) ); } @@ -109,22 +120,22 @@ class AssetTableField extends ComplexTableField { else if (class_exists('GalleryFile')) { if( $childData->Extension == 'swf' ) { $detailFormFields->addFieldToTab("BottomRoot", - new Tab("Gallery Options", - new TextField( "Content", "Caption" ), - new TextField( 'PopupWidth', 'Popup Width' ), - new TextField( 'PopupHeight', 'Popup Height' ), - new HeaderField( 'SWF File Options' ), - new CheckboxField( 'Embed', 'Is A Flash Document' ), - new CheckboxField( 'LimitDimensions', 'Limit The Dimensions In The Popup Window' ) + new Tab(_t('AssetTableField.GALLERYOPTIONS', 'Gallery Options'), + new TextField( "Content", _t('AssetTableField.CAPTION', 'Caption') ), + new TextField( 'PopupWidth', _t('AssetTableField.POPUPWIDTH', 'Popup Width') ), + new TextField( 'PopupHeight', _t('AssetTableField.POPUPHEIGHT', 'Popup Height') ), + new HeaderField( _t('AssetTableField.SWFFILEOPTIONS', 'SWF File Options') ), + new CheckboxField( 'Embed', _t('AssetTableField.ISFLASH', 'Is A Flash Document') ), + new CheckboxField( 'LimitDimensions', _t('AssetTableField.DIMLIMT', 'Limit The Dimensions In The Popup Window') ) ) ); } else { $detailFormFields->addFieldToTab("BottomRoot", - new Tab("Gallery Options", - new TextField( "Content", "Caption" ), - new TextField( 'PopupWidth', 'Popup Width' ), - new TextField( 'PopupHeight', 'Popup Height' ) + new Tab(_t('AssetTableField.GALLERYOPTIONS', 'Gallery Options'), + new TextField( "Content", _t('AssetTableField.CAPTION', 'Caption') ), + new TextField( 'PopupWidth', _t('AssetTableField.POPUPWIDTH', 'Popup Width') ), + new TextField( 'PopupHeight', _t('AssetTableField.POPUPHEIGHT', 'Popup Height') ) ) ); } diff --git a/code/BulkLoader.php b/code/BulkLoader.php index f90e359c..9da995a4 100755 --- a/code/BulkLoader.php +++ b/code/BulkLoader.php @@ -1,5 +1,16 @@ \ No newline at end of file diff --git a/code/CMSMain.php b/code/CMSMain.php index e91afaf8..ba0f0186 100644 --- a/code/CMSMain.php +++ b/code/CMSMain.php @@ -1,8 +1,15 @@ stat('need_permission') && !$this->can( singleton($class)->stat('need_permission') ) ) continue; + /* + * Since i18n_singular_name() this is not necessary $addAction = $instance->uninherited('add_action', true); if($addAction) { // backwards compatibility for actions like "a page" (instead of "page") $addAction = preg_replace('/^a /','',$addAction); $addAction = ucfirst($addAction); } else { - $addAction = $class; + $addAction = $instance->i18n_singular_name(); } + */ + $addAction = $instance->i18n_singular_name(); $result->push(new ArrayData(array( "ClassName" => $class, "AddAction" => $addAction, ))); } + $result->sort('AddAction'); + return $result; } @@ -427,7 +471,9 @@ JS; $newItem->ClassName = $className; $newItem->ParentID = $parentID; - if($newItem->fieldExists('Sort')) { + // DataObject::fieldExists only checks the current class, not the hierarchy + // This allows the CMS to set the correct sort value + if($newItem->castingHelperPair('Sort')) { $newItem->Sort = DB::query("SELECT MAX(Sort) FROM SiteTree WHERE ParentID = '" . Convert::raw2sql($parentID) . "'")->value() + 1; } @@ -436,6 +482,9 @@ JS; if($setID) $newItem->ID = $id; + # Some modules like subsites add extra fields that need to be set when the new item is created + $this->extend('augmentNewSiteTreeItem', $newItem); + return $newItem; } @@ -470,13 +519,13 @@ JS; if(isset($descendantsRemoved)) { $descRemoved = " and $descendantsRemoved descendants"; + $descRemoved = sprintf(' '._t('CMSMain.DESCREMOVED', 'and %s descendants'), $descendantsRemoved); } else { $descRemoved = ''; } - $title = Convert::raw2js($record->Title); FormResponse::add($this->deleteTreeNodeJS($record)); - FormResponse::status_message("Deleted '$title'$descRemoved from live site", 'good'); + FormResponse::status_message(sprintf(_t('CMSMain.REMOVED', 'Deleted \'%s\'%s from live site'), $record->Title, $descRemoved), 'good'); return FormResponse::respond(); } @@ -491,7 +540,7 @@ JS; //$record->PublishedByID = Member::currentUser()->ID; $record->write(); $record->publish("Stage", "Live"); - + GoogleSitemap::ping(); // Fix the sort order for this page's siblings @@ -668,7 +717,7 @@ HTML; foreach($reports as $report) { if($report != 'SideReport') $options[$report] = singleton($report)->title(); } - return new DropdownField("ReportSelector","Report",$options); + return new DropdownField("ReportSelector", _t('CMSMain.REPORT', 'Report'),$options); } /** * Get the content for a side report @@ -834,7 +883,7 @@ HTML; $form->loadDataFrom($record); $form->loadDataFrom(array( "ID" => $id, - "Version" => $version, + "Version" => $fromVersion, )); $form->makeReadonly(); foreach($form->Fields()->dataFields() as $field) { @@ -1123,14 +1172,23 @@ HTML; ini_set('max_execution_time', 300); if(isset($_POST['confirm'])) { - $pages = DataObject::get("SiteTree"); + $start = 0; + $pages = DataObject::get("SiteTree", "", "", "", "$start,30"); $count = 0; - foreach($pages as $page) { - $this->performPublish($page); - $page->destroy(); - unset($page); - $count++; - echo "
  • $count"; + while(true) { + foreach($pages as $page) { + $this->performPublish($page); + $page->destroy(); + unset($page); + $count++; + echo "
  • $count
  • "; + } + if($pages->Count() > 29) { + $start += 30; + $pages = DataObject::get("SiteTree", "", "", "", "$start,30"); + } else { + break; + } } echo sprintf(_t('CMSMain.PUBPAGES',"Done: Published %d pages"), $count); @@ -1167,6 +1225,24 @@ HTML; $page = DataObject::get_by_id("SiteTree", $id); $newPage = $page->duplicate(); + + // ParentID can be hard-set in the URL. This is useful for pages with multiple parents + if($_GET['parentID'] && is_numeric($_GET['parentID'])) { + $newPage->ParentID = $_GET['parentID']; + $newPage->write(); + } + + return $this->returnItemToUser($newPage); + } else { + user_error("CMSMain::duplicate() Bad ID: '$id'", E_USER_WARNING); + } + } + + function duplicatewithchildren() { + if(($id = $this->urlParams['ID']) && is_numeric($id)) { + $page = DataObject::get_by_id("SiteTree", $id); + + $newPage = $page->duplicateWithChildren(); return $this->returnItemToUser($newPage); } else { @@ -1278,29 +1354,6 @@ JS return $this->returnItemToUser($newrecord); } - // HACK HACK HACK - Dont remove without telling simon ;-) - - /** - * This is only used by parents inc. - * TODO Work out a better way of handling control to the individual page objects. - */ - function sethottip($data,$form) { - $page = DataObject::get_by_id("SiteTree", $_REQUEST['ID']); - return $page->sethottip($data,$form); - } - /** - * This is only used by parents inc. - * TODO Work out a better way of handling control to the individual page objects. - */ - function notifyInvitation($data,$form) { - $page = DataObject::get_by_id("SiteTree", $_REQUEST['ID']); - return $page->notifyInvitation($data,$form); - } - function testInvitation($data,$form) { - $page = DataObject::get_by_id("SiteTree", $_REQUEST['ID']); - return $page->testInvitation($data,$form); - } - /** * Provide the permission codes used by LeftAndMain. * Can't put it on LeftAndMain since that's an abstract base class. @@ -1309,7 +1362,7 @@ JS $classes = ClassInfo::subclassesFor('LeftAndMain'); foreach($classes as $class) { - $perms["CMS_ACCESS_" . $class] = "Access to $class in CMS"; + $perms["CMS_ACCESS_" . $class] = sprintf(_t('CMSMain.ACCESS', "Access to %s in CMS"), $class); } return $perms; } diff --git a/code/CommentAdmin.php b/code/CommentAdmin.php index 54535a47..1a2a551c 100644 --- a/code/CommentAdmin.php +++ b/code/CommentAdmin.php @@ -1,12 +1,30 @@ Approved Comments"; + $title = "

    ". _t('CommentAdmin.APPROVEDCOMMENTS', 'Approved Comments')."

    "; } else if($section == 'unmoderated') { $filter = 'NeedsModeration=1'; - $title = "

    Comments Awaiting Moderation

    "; + $title = "

    "._t('CommentAdmin.COMMENTSAWAITINGMODERATION', 'Comments Awaiting Moderation')."

    "; } else { $filter = 'IsSpam=1'; - $title = "

    Spam

    "; + $title = "

    "._t('CommentAdmin.SPAM', 'Spam')."

    "; } $filter .= ' AND ParentID>0'; $tableFields = array( - "Name" => "Author", - "Comment" => "Comment", - "PageTitle" => "Page", - "Created" => "Date Posted" + "Name" => _t('CommentAdmin.AUTHOR', 'Author'), + "Comment" => _t('CommentAdmin.COMMENT', 'Comment'), + "PageTitle" => _t('CommentAdmin.PAGE', 'Page'), + "Created" => _t('CommentAdmin.DATEPOSTED', 'Date Posted') ); $popupFields = new FieldSet( - new TextField("Name"), - new TextareaField("Comment", "Comment") + new TextField('Name', _t('CommentAdmin.NAME', 'Name')), + new TextareaField('Comment', _t('CommentAdmin.COMMENT', 'Comment')) ); $idField = new HiddenField('ID', '', $section); @@ -65,7 +83,7 @@ class CommentAdmin extends LeftAndMain { $fields = new FieldSet( new TabSet( 'Root', - new Tab('Comments', + new Tab(_t('CommentAdmin.COMMENTS', 'Comments'), new LiteralField("Title", $title), $idField, $table @@ -76,21 +94,21 @@ class CommentAdmin extends LeftAndMain { $actions = new FieldSet(); if($section == 'unmoderated') { - $actions->push(new FormAction('acceptmarked', 'Accept')); + $actions->push(new FormAction('acceptmarked', _t('CommentAdmin.ACCEPT', 'Accept'))); } if($section == 'approved' || $section == 'unmoderated') { - $actions->push(new FormAction('spammarked', 'Mark as spam')); + $actions->push(new FormAction('spammarked', _t('CommentAdmin.SPAMMARKED', 'Mark as spam'))); } if($section == 'spam') { - $actions->push(new FormAction('hammarked', 'Mark as not spam')); + $actions->push(new FormAction('hammarked', _t('CommentAdmin.MARKASNOTSPAM', 'Mark as not spam'))); } - $actions->push(new FormAction('deletemarked', 'Delete')); + $actions->push(new FormAction('deletemarked', _t('CommentAdmin.DELETE', 'Delete'))); if($section == 'spam') { - $actions->push(new FormAction('deleteall', 'Delete All')); + $actions->push(new FormAction('deleteall', _t('CommentAdmin.DELETEALL', 'Delete All'))); } $form = new Form($this, "EditForm", $fields, $actions); @@ -124,7 +142,7 @@ JS; function deleteall() { $numComments = 0; - $spam = DataObject::get('PageComment', "PageComment.IsSpam=1"); + $spam = DataObject::get('PageComment', 'PageComment.IsSpam=1'); if($spam) { $numComments = $spam->Count(); @@ -133,10 +151,11 @@ JS; $comment->delete(); } } - + + $msg = sprintf(_t('CommentAdmin.DELETED', 'Deleted %s comments.'), $numComments); echo <<mode), new HiddenField('CommentFieldName','',$this->name) ); - $actionFields = new LiteralField('CommentFilterButton',''); + $actionFields = new LiteralField('CommentFilterButton',''); $fieldContainer = new FieldGroup( $searchFields, @@ -149,7 +159,11 @@ class CommentTableField extends ComplexTableField { } } - +/** + * Single row of a {@link CommentTableField} + * @package cms + * @subpackage comments + */ class CommentTableField_Item extends ComplexTableField_Item { function HasSpamButton() { return $this->parent()->HasSpamButton(); @@ -176,4 +190,4 @@ class CommentTableField_Item extends ComplexTableField_Item { } } -?> \ No newline at end of file +?> diff --git a/code/Diff.php b/code/Diff.php index 1abc4f4a..2f0131c9 100755 --- a/code/Diff.php +++ b/code/Diff.php @@ -1,5 +1,11 @@ result_actions = new FieldSet( - new FormAction("export","Export as CSV") + new FormAction('export', _t('GenericDataAdmin.EXPORTCSV', 'Export as CSV')) ); parent::__construct(); @@ -116,9 +128,10 @@ abstract class GenericDataAdmin extends LeftAndMain { * @return Form */ function CreationForm() { - $plural_name = singleton($this->stat('data_type'))->plural_name(); - $singular_name = singleton($this->stat('data_type'))->singular_name(); - return new Form($this, 'CreationForm', new FieldSet(), new FieldSet(new FormAction("createRecord", "Create {$singular_name}"))); + // is this plural name used ?? + $plural_name = singleton($this->stat('data_type'))->i18n_plural_name(); + $singular_name = singleton($this->stat('data_type'))->i18_nsingular_name(); + return new Form($this, 'CreationForm', new FieldSet(), new FieldSet(new FormAction("createRecord", _t('GenericDataAdmin.CREATE', 'Create').' '.$singular_name))); } /** @@ -133,7 +146,14 @@ abstract class GenericDataAdmin extends LeftAndMain { // legacy function ExportForm() { - return $this->EditForm(); + return $form = new Form( + $this, + "ExportForm", + new FieldSet( + new HiddenField("csvIDs","csvIDs",$_REQUEST[csvIDs]) + ), + $this->result_actions + ); } /** @@ -142,7 +162,7 @@ abstract class GenericDataAdmin extends LeftAndMain { function SearchForm() { $fields = $this->getSearchFields(); - $actions = new FieldSet($action = new FormAction("getResults", "Go")); + $actions = new FieldSet($action = new FormAction("getResults", _t('GenericDataAdmin.GO', 'Go'))); $searchForm = new Form($this, "SearchForm", $fields, $actions); $searchForm->loadDataFrom($_REQUEST); @@ -182,10 +202,10 @@ abstract class GenericDataAdmin extends LeftAndMain { $actions = (method_exists($genericData, 'getCMSActions')) ? $genericData->getCMSActions() : new FieldSet(); if(!$actions->fieldByName('action_save')) { - $actions->push(new FormAction('save', 'Save','ajaxAction-save')); + $actions->push(new FormAction('save', _t('GenericDataAdmin.SAVE', 'Save'),'ajaxAction-save')); } if(!$actions->fieldByName('action_delete')) { - $actions->push(new FormAction('delete', 'Delete','ajaxAction-delete')); + $actions->push(new FormAction('delete', _t('GenericDataAdmin.DELETE', 'Delete'),'ajaxAction-delete')); } $required = (method_exists($genericData, 'getCMSRequiredField')) ? $genericData->getCMSRequiredField() : new RequiredFields(); @@ -220,8 +240,8 @@ abstract class GenericDataAdmin extends LeftAndMain { function Results() { $ret = ""; - $singular_name = singleton($this->stat('data_type'))->singular_name(); - $plural_name = singleton($this->stat('data_type'))->plural_name(); + $singular_name = singleton($this->stat('data_type'))->i18n_singular_name(); + $plural_name = singleton($this->stat('data_type'))->i18n_plural_name(); if (!$this->filter) { $this->filter = array( "ClassName" => $this->stat('data_type') @@ -233,7 +253,7 @@ abstract class GenericDataAdmin extends LeftAndMain { $results = $this->performSearch(); if($results) { $name = ($results->Count() > 1) ? $plural_name : $singular_name; - $ret .= "

    {$results->Count()} {$name} found:

    "; + $ret .= "

    {$results->Count()} {$name} "._t('GenericDataAdmin.FOUND', 'found:')."

    "; switch($this->stat('result_format')) { case 'table': @@ -246,9 +266,9 @@ abstract class GenericDataAdmin extends LeftAndMain { $ret .= $this->getResultActionsForm($results); } else { if($this->hasMethod('isEmptySearch') && $this->isEmptySearch()) { - $ret .="

    Please choose some search criteria and press 'Go'.

    "; + $ret .='

    '._t('GenericDataAdmin.CHOOSECRIT', 'Please choose some search criteria and press \'Go\'.').'

    '; } else { - $ret .="

    Sorry, no {$plural_name} found by this search.

    "; + $ret .='

    '.sprintf(_t('GenericDataAdmin.NORESULTS', 'Sorry, no %s found by this search.'), $plural_name).'

    '; } } return $ret; @@ -439,7 +459,7 @@ HTML; $fileData .= implode(",",$columnData); $fileData .= "\n"; } - + HTTP::sendFileToBrowser($fileData, $fileName); } else { user_error("No records found", E_USER_ERROR); @@ -481,8 +501,8 @@ HTML; } } } - - FormResponse::status_message('Saved', 'good'); + $this->getActionUpdateJS($generic); + FormResponse::status_message(_t('GenericDataAdmin.SAVED', 'Saved'), 'good'); FormResponse::update_status($generic->Status); if (method_exists($this, "saveAfterCall")) { @@ -544,7 +564,7 @@ HTML; // clear session data Session::clear('currentPage'); - FormResponse::status_message('Successfully deleted', 'good'); + FormResponse::status_message(_t('GenericDataAdmin.DELETEDSUCCESS', 'Successfully deleted'), 'good'); FormResponse::add("$('Form_EditForm').deleteEffect();"); return FormResponse::respond(); diff --git a/code/ImageEditor.php b/code/ImageEditor.php index 41bc5fc5..4bb53e60 100644 --- a/code/ImageEditor.php +++ b/code/ImageEditor.php @@ -1,239 +1,245 @@ requestParams['fileToEdit'])) $this->raiseError(); - $fileWithPath = $this->requestParams['fileToEdit']; - $this->fileToEdit = $this->file2Origin($fileWithPath); - $this->fileToEditOnlyName = $this->urlToFilename($this->fileToEdit); - return $this->renderWith(__CLASS__); + if(!isset($this->requestParams['fileToEdit'])) $this->raiseError(); + $fileWithPath = $this->requestParams['fileToEdit']; + $this->fileToEdit = $this->file2Origin($fileWithPath); + $this->fileToEditOnlyName = $this->urlToFilename($this->fileToEdit); + return $this->renderWith(__CLASS__); + } + + /** + * Method is used for manipulating photos. + * Method requires two params set in POST + * file - file on which operation will be performed + * command - name of operation(crop|rotate|resize) + * + * Each operation requires additional parameters. + * + * @return String - JSON array with image properties (width,height,url). + */ + public function manipulate() { + $fileName = $this->requestParams['file']; + if(strpos($fileName,'?') !== false) $fileName = substr($fileName,0,strpos($fileName,'?')); + $command = $this->requestParams['command']; + $this->checkFileExists($fileName); + $fileInfo = pathinfo($fileName); + $gd = new GD($this->url2File($fileName)); + switch($command) { + case 'rotate': + $angle = $_POST['angle']; + $gd = $gd->rotate($angle); + break; + case 'resize': + $imageNewWidth = $_POST['newImageWidth']; + $imageNewHeight = $_POST['newImageHeight']; + $gd = $gd->resize($imageNewWidth,$imageNewHeight); + break; + case 'crop': + $top = $_POST['top']; + $left = $_POST['left']; + $width = $_POST['width']; + $height = $_POST['height']; + $gd = $gd->crop($top,$left,$width,$height); + break; } - - /** - * Method is used for manipulating photos. - * Method requires two params set in POST - * file - file on which operation will be performed - * command - name of operation(crop|rotate|resize) - * - * Each operation requires additional parameters. - * - * @return String - JSON array with image properties (width,height,url). - */ - public function manipulate() { - $fileName = $this->requestParams['file']; - if(strpos($fileName,'?') !== false) $fileName = substr($fileName,0,strpos($fileName,'?')); - $command = $this->requestParams['command']; - $this->checkFileExists($fileName); - $fileInfo = pathinfo($fileName); - $gd = new GD($this->url2File($fileName)); - switch($command) { - case 'rotate': - $angle = $_POST['angle']; - $gd = $gd->rotate($angle); - break; - case 'resize': - $imageNewWidth = $_POST['newImageWidth']; - $imageNewHeight = $_POST['newImageHeight']; - $gd = $gd->resize($imageNewWidth,$imageNewHeight); - break; - case 'crop': - $top = $_POST['top']; - $left = $_POST['left']; - $width = $_POST['width']; - $height = $_POST['height']; - $gd = $gd->crop($top,$left,$width,$height); - break; - } - $rand = md5(rand(1,100000)); - $gd->writeTo('../assets/_tmp/' . $rand . '.' . $fileInfo['extension']); - return $this->getImageInfoInJSON($gd,'assets/_tmp/' . $rand . '.' . $fileInfo['extension']); - } - - /** - * Method is used for saving photos. - * Method requires two params set in POST - * originalFile - this file will be replaced by second file - * editedFile - this file will replace first file. - * - * After replacing original file all thumbnails created from it are removed. - * - * @return String - Message that everything went ok. - */ - - public function save() { - if(isset($this->requestParams['originalFile']) && isset($this->requestParams['editedFile'])) { - $originalFile = $this->requestParams['originalFile']; - $editedFile = $this->requestParams['editedFile']; - if(strpos($originalFile,'?') !== false) $originalFile = substr($originalFile,0,strpos($originalFile,'?')); - if($this->checkFileExists($originalFile) && $this->checkFileExists($editedFile)) { - if($editedFile != $originalFile && copy($this->url2File($editedFile),$this->url2File($originalFile))) { - $image = DataObject::get_one('File','Filename = \'' . substr($this->url2File($originalFile),3) . '\''); - $image->deleteFormattedImages(); - $image->generateFormattedImage('AssetLibraryPreview'); - } else { - $this->raiseError(); - } + $rand = md5(rand(1,100000)); + $gd->writeTo('../assets/_tmp/' . $rand . '.' . $fileInfo['extension']); + return $this->getImageInfoInJSON($gd,'assets/_tmp/' . $rand . '.' . $fileInfo['extension']); + } + + /** + * Method is used for saving photos. + * Method requires two params set in POST + * originalFile - this file will be replaced by second file + * editedFile - this file will replace first file. + * + * After replacing original file all thumbnails created from it are removed. + * + * @return String - Message that everything went ok. + */ + + public function save() { + if(isset($this->requestParams['originalFile']) && isset($this->requestParams['editedFile'])) { + $originalFile = $this->requestParams['originalFile']; + $editedFile = $this->requestParams['editedFile']; + if(strpos($originalFile,'?') !== false) $originalFile = substr($originalFile,0,strpos($originalFile,'?')); + if($this->checkFileExists($originalFile) && $this->checkFileExists($editedFile)) { + if($editedFile != $originalFile && copy($this->url2File($editedFile),$this->url2File($originalFile))) { + $image = DataObject::get_one('File','Filename = \'' . substr($this->url2File($originalFile),3) . '\''); + $image->deleteFormattedImages(); + $image->generateFormattedImage('AssetLibraryPreview'); } else { $this->raiseError(); - } + } } else { $this->raiseError(); } - return 'parent.parent.parent.statusMessage(\'Image saved\',\'good\',false);'; + } else { + $this->raiseError(); } - - /** - * Method is invoked when ImageEditor is closed whether image is saved or not. - * - * /assets/tmp is folder where we store temporary images created during editing so - * after closing they are no necessity to keep them. - * - * @return null - */ - - public function close() { - $tmpDir = '../assets/_tmp'; - if(file_exists($tmpDir)) { - Filesystem::removeFolder($tmpDir); - mkdir($tmpDir, Filesystem::$folder_create_mask); - } - } - - /** - * Method return JSON array containing info about image. - * - * @param gd - GD object used for retrieving info about image - * @param file - * - * @return string JSON array explained in manipulate method comment - */ - - private function getImageInfoInJSON(GD $gd,$file) { - return '{"fileName":"' . $file . '","width":' . $gd->getWidth() . ',"height":' . $gd->getHeight() . '}'; - } - - /** - * Method converts thumbnail file name to file name of it's "parent" - * - * @param file - name of thumbnail file - * - * @return string name of parent file. - */ - - private function file2Origin($file) { - $file = str_replace('_resampled/','',$file); - $file = str_replace('_resampled/','',$file); - $file = str_replace('AssetLibraryPreview-','',$file); - $this->checkFileExists($file); - return $file; - } - /** - * Method converts URL of file to file path in file system. - * - * @param url - url of file - * - * @return string path of file in file system - */ - - private function url2File($url) { - return '..' . substr($url,strpos($url,'/assets')); - } - - /** - * Method checks if file exists and have proper name and extension. - * - * If any of constraints aren't fulfilled method will generate error. - * - * @param url - url of file - * - * @return boolean - */ - - private function checkFileExists($url) { - if(strpos($url,'?') !== false) $url = substr($url,0,strpos($url,'?')); - $pathInfo = pathinfo($url); - if(count($pathInfo) < 3) $this->raiseError(); - if(!in_array($pathInfo['extension'],array('jpeg','jpg','jpe','png','gif','JPEG','JPG','JPE','PNG','GIF'))) $this->raiseError(); - $path = explode('/',$pathInfo['dirname']); - if(count($path) > 1) { - $assetId = array_search('assets',$path); - if($assetId > 0) { - $realPath = '../' . implode('/',array_slice($path,$assetId,count($path) - $assetId)); - if(strpos($pathInfo['basename'],'AssetLibraryPreview') !== false) { - $realPath .= '/' . substr($pathInfo['basename'],strpos($pathInfo['basename'],'-')); - } else { - $realPath .= '/' . $pathInfo['basename']; - } - } else { - $this->raiseError(); - } - if(file_exists($realPath)) { - return true; - } else { - $this->raiseError(); - } - } else { - $this->raiseError(); - } - } - - /** - * Method raiser error. Error is showed using statusMessage function. - * - * @param message - error message - * - */ - - private function raiseError($message = "") { - echo "parent.parent.parent.statusMessage('Error: " . $message . "','bad',false);"; - exit(); - } - - /** - * Method converts retrieves filename from url - * - * @param url - * - */ - - private function urlToFilename($url) { - $path = pathinfo($url); - return $path['filename'] . "." . substr($path['extension'],0,strpos($path['extension'],'?')); + return 'parent.parent.parent.statusMessage(\'Image saved\',\'good\',false);'; + } + + /** + * Method is invoked when ImageEditor is closed whether image is saved or not. + * + * /assets/tmp is folder where we store temporary images created during editing so + * after closing they are no necessity to keep them. + * + * @return null + */ + + public function close() { + $tmpDir = '../assets/_tmp'; + if(file_exists($tmpDir)) { + Filesystem::removeFolder($tmpDir); + mkdir($tmpDir, Filesystem::$folder_create_mask); } } + + /** + * Method return JSON array containing info about image. + * + * @param gd - GD object used for retrieving info about image + * @param file + * + * @return string JSON array explained in manipulate method comment + */ + + private function getImageInfoInJSON(GD $gd,$file) { + return '{"fileName":"' . $file . '","width":' . $gd->getWidth() . ',"height":' . $gd->getHeight() . '}'; + } + + /** + * Method converts thumbnail file name to file name of it's "parent" + * + * @param file - name of thumbnail file + * + * @return string name of parent file. + */ + + private function file2Origin($file) { + $file = str_replace('_resampled/','',$file); + $file = str_replace('_resampled/','',$file); + $file = str_replace('AssetLibraryPreview-','',$file); + $this->checkFileExists($file); + return $file; + } + /** + * Method converts URL of file to file path in file system. + * + * @param url - url of file + * + * @return string path of file in file system + */ + + private function url2File($url) { + return '..' . substr($url,strpos($url,'/assets')); + } + + /** + * Method checks if file exists and have proper name and extension. + * + * If any of constraints aren't fulfilled method will generate error. + * + * @param url - url of file + * + * @return boolean + */ + + private function checkFileExists($url) { + if(strpos($url,'?') !== false) $url = substr($url,0,strpos($url,'?')); + $pathInfo = pathinfo($url); + if(count($pathInfo) < 3) $this->raiseError(); + if(!in_array($pathInfo['extension'],array('jpeg','jpg','jpe','png','gif','JPEG','JPG','JPE','PNG','GIF'))) $this->raiseError(); + $path = explode('/',$pathInfo['dirname']); + if(count($path) > 1) { + $assetId = array_search('assets',$path); + if($assetId > 0) { + $realPath = '../' . implode('/',array_slice($path,$assetId,count($path) - $assetId)); + if(strpos($pathInfo['basename'],'AssetLibraryPreview') !== false) { + $realPath .= '/' . substr($pathInfo['basename'],strpos($pathInfo['basename'],'-')); + } else { + $realPath .= '/' . $pathInfo['basename']; + } + } else { + $this->raiseError(); + } + if(file_exists($realPath)) { + return true; + } else { + $this->raiseError(); + } + } else { + $this->raiseError(); + } + } + + /** + * Method raiser error. Error is showed using statusMessage function. + * + * @param message - error message + * + */ + + private function raiseError($message = "") { + echo "parent.parent.parent.statusMessage('Error: " . $message . "','bad',false);"; + exit(); + } + + /** + * Method converts retrieves filename from url + * + * @param url + * + */ + + private function urlToFilename($url) { + $path = pathinfo($url); + return $path['filename'] . "." . substr($path['extension'],0,strpos($path['extension'],'?')); + } +} diff --git a/code/ImprintStats.php b/code/ImprintStats.php index 2213982c..97182b3c 100755 --- a/code/ImprintStats.php +++ b/code/ImprintStats.php @@ -1,5 +1,15 @@ getChildrenAsUL("", ' "
  • ID\" class=\"" . $child->CMSTreeClasses($extraArg) . "\">" . - "Link(),0,-1), "show", $child->ID) . "\" " . (($child->canEdit() || $child->canAddChildren()) ? "" : "class=\"disabled\"") . " title=\"' . _t('LeftAndMain.PAGETYPE','Page type: ') . '".$child->class."\" >" . - ($child->TreeTitle()) . + "Link(),0,-1), "show", $child->ID) . "\" class=\"" . $child->CMSTreeClasses($extraArg) . "\" title=\"' . _t('LeftAndMain.PAGETYPE','Page type: ') . '".$child->class."\" >" . + ($child->TreeTitle()) . "" ' ,$this, true); @@ -531,12 +554,6 @@ JS; FormResponse::add("$('Form_EditForm').getPageFromServer($record->ID);"); } - if( ($record->class != 'VirtualPage') && $originalURLSegment != $record->URLSegment) { - $message .= sprintf(_t('LeftAndMain.CHANGEDURL'," Changed URL to '%s'"),$record->URLSegment); - FormResponse::add("\$('Form_EditForm').elements.URLSegment.value = \"$record->URLSegment\";"); - FormResponse::add("\$('Form_EditForm_StageURLSegment').value = \"{$record->URLSegment}\";"); - } - // After reloading action if($originalStatus != $record->Status) { $message .= sprintf(_t('LeftAndMain.STATUSTO'," Status changed to '%s'"),$record->Status); @@ -544,6 +561,12 @@ JS; $record->write(); + if( ($record->class != 'VirtualPage') && $originalURLSegment != $record->URLSegment) { + $message .= sprintf(_t('LeftAndMain.CHANGEDURL'," Changed URL to '%s'"),$record->URLSegment); + FormResponse::add("\$('Form_EditForm').elements.URLSegment.value = \"$record->URLSegment\";"); + FormResponse::add("\$('Form_EditForm_StageURLSegment').value = \"{$record->URLSegment}\";"); + } + // If the 'Save & Publish' button was clicked, also publish the page if (isset($urlParams['publish']) && $urlParams['publish'] == 1) { $this->performPublish($record); @@ -848,7 +871,7 @@ JS; self::$application_logo_text = ""; } function LogoStyle() { - return "background-image: url(" . self::$application_logo . ") no-repeat; " . self::$application_logo_style; + return "background: url(" . self::$application_logo . ") no-repeat; " . self::$application_logo_style; } /** diff --git a/code/MemberList.php b/code/MemberList.php index 3b072ee1..3a18be9c 100755 --- a/code/MemberList.php +++ b/code/MemberList.php @@ -1,5 +1,15 @@ 'FirstName', - 'Surname' => 'Surname', - 'Email' => 'Email' + 'FirstName' => _t('MemberList.FN', 'FirstName'), + 'Surname' => _t('MemberList.SN', 'Surname'), + 'Email' => _t('MemberList.EMAIL', 'Email') )), new DropdownField('MemberListOrderByOrder','',array( - 'ASC' => 'Ascending', - 'DESC' => 'Descending' + 'ASC' => _t('MemberList.ASC', 'Ascending'), + 'DESC' => _t('MemberList.DESC', 'Descending') ))); - $field = new FieldGroup( new LabelField( 'Order by' ), $fields ); + $field = new FieldGroup( new LabelField(_t('MemberList.ORDERBY', 'Order by')), $fields ); return $field->FieldHolder(); } @@ -258,7 +268,7 @@ class MemberList extends FormField { $groups = DataObject::get('Group'); - $groupArray = array( '' => 'Any group' ); + $groupArray = array( '' => _t('MemberList.ANYGROUP', 'Any group')); foreach( $groups as $group ) $groupArray[$group->ID] = $group->Title; diff --git a/code/MemberTableField.php b/code/MemberTableField.php index 27007b8b..fd57f941 100755 --- a/code/MemberTableField.php +++ b/code/MemberTableField.php @@ -1,4 +1,10 @@ permissions, $permission ); $fieldList = array( - "FirstName" => "Firstname", - "Surname" => "Surname", - "Email" => "Email" + "FirstName" => _t('MemberTableField.FIRSTNAME', 'Firstname'), + "Surname" => _t('MemberTableField.SURNAME', 'Surname'), + "Email" => _t('MemberTableField.EMAIL', 'Email') ); $csvFieldList = $fieldList; @@ -78,9 +93,11 @@ class MemberTableField extends ComplexTableField { } if(!$hidePassword) { - $fieldList["Password"] = "Password"; + $fieldList["SetPassword"] = "Password"; } +// $detailFormFields = singleton(Object::getCustomClass($this->stat("data_class")))->getCMSFields(); + if(isset($_REQUEST['ctf']['childID']) && $memberID = $_REQUEST['ctf']['childID']) { $SNG_member = DataObject::get_by_id($this->stat("data_class"),$_REQUEST['ctf']['childID']); } else { @@ -98,23 +115,23 @@ class MemberTableField extends ComplexTableField { $this->hidePassword = $hidePassword; - parent::__construct($controller, $name, $sourceClass, $fieldList, $detailFormFields); + parent::__construct($controller, $name, $sourceClass, $fieldList); - Requirements::javascript("cms/javascript/MemberTableField.js"); + Requirements::javascript('cms/javascript/MemberTableField.js'); // construct the filter and sort if(isset($_REQUEST['MemberOrderByField'])) { - $this->sourceSort = "`" . Convert::raw2sql($_REQUEST['MemberOrderByField']) . "`" . Convert::raw2sql( $_REQUEST['MemberOrderByOrder'] ); + $this->sourceSort = '`' . Convert::raw2sql($_REQUEST['MemberOrderByField']) . '`' . Convert::raw2sql( $_REQUEST['MemberOrderByOrder'] ); } // search $search = isset($_REQUEST['MemberSearch']) ? Convert::raw2sql($_REQUEST['MemberSearch']) : null; if(!empty($_REQUEST['MemberSearch'])) { //$this->sourceFilter[] = "( `Email` LIKE '%$search%' OR `FirstName` LIKE '%$search%' OR `Surname` LIKE '%$search%' )"; - $sourceF = "( "; + $sourceF = '( '; foreach( $fieldList as $k => $v ) - $sourceF .= "`$k` LIKE '%$search%' OR "; - $this->sourceFilter[] = substr( $sourceF, 0, -3 ) . ")"; + $sourceF .= '`$k` LIKE '%$search%' OR '; + $this->sourceFilter[] = substr( $sourceF, 0, -3 ) . ')'; } // filter by groups @@ -128,7 +145,6 @@ class MemberTableField extends ComplexTableField { } $this->sourceJoin = " INNER JOIN `Group_Members` ON `MemberID`=`Member`.`ID`"; - $this->setFieldListCsv( $csvFieldList ); } @@ -145,78 +161,37 @@ class MemberTableField extends ComplexTableField { return "{$this->PopupBaseLink()}&methodName=add"; } - function DetailForm() { - $ID = Convert::raw2xml(isset($_REQUEST['ctf']['ID']) - ? $_REQUEST['ctf']['ID'] - : ''); - $childID = isset($_REQUEST['ctf']['childID']) ? Convert::raw2xml($_REQUEST['ctf']['childID']) : 0; - $childClass = Convert::raw2xml($_REQUEST['fieldName']); - $methodName = isset($_REQUEST['methodName']) ? $_REQUEST['methodName'] : ''; - - if($methodName == "add") { - $parentIdName = $this->getParentIdName($childClass,$this->getParentClass()); - if(!$parentIdName) { - user_error("ComplexTableField::DetailForm() Dataobject does not seem to have an 'has-one'-relationship", E_USER_WARNING); - return; - } - $this->detailFormFields->push(new HiddenField('parentClass'," ",$this->getParentClass())); - } - - // the ID field confuses the Controller-logic in finding the right view for ReferencedField - $this->detailFormFields->removeByName('ID'); - - $this->detailFormFields->push(new HiddenField("ctf[ID]"," ",$ID)); - // add a namespaced ID instead thats "converted" by saveComplexTableField() - $this->detailFormFields->push(new HiddenField("ctf[childID]","",$childID)); - $this->detailFormFields->push(new HiddenField("ClassName","",$this->sourceClass)); - - $form = new MemberTableField_Popup($this, "DetailForm", $this->detailFormFields, $this->sourceClass, $methodName == "show", $this->detailFormValidator); - - if (is_numeric($childID)) { - if ($methodName == "show" || $methodName == "edit") { - $childData = DataObject::get_by_id($this->sourceClass, $childID); - $form->loadDataFrom($childData); - } - } - - if ($methodName == "show") { - $form->makeReadonly(); - } - - return $form; - } - function SearchForm() { $searchFields = new FieldGroup( - new TextField('MemberSearch', 'Search'), + new TextField('MemberSearch', _t('MemberTableField.SEARCH', 'Search')), new HiddenField("ctf[ID]",'',$this->group->ID), new HiddenField('MemberFieldName','',$this->name), new HiddenField('MemberDontShowPassword','',$this->hidePassword) ); $orderByFields = new FieldGroup( - new LabelField('Order by'), + new LabelField(_t('MemberTableField.ORDERBY', 'Order by')), new FieldSet( new DropdownField('MemberOrderByField','', array( - 'FirstName' => 'FirstName', - 'Surname' => 'Surname', - 'Email' => 'Email' + 'FirstName' => _t('MemberTableField.FIRSTNAME', 'FirstName'), + 'Surname' => _t('MemberTableField.SURNAME', 'Surname'), + 'Email' => _t('MemberTableField.EMAIL', 'Email') )), new DropdownField('MemberOrderByOrder','',array( - 'ASC' => 'Ascending', - 'DESC' => 'Descending' + 'ASC' => _t('MemberTableField.ASC', 'Ascending'), + 'DESC' => _t('MemberTableField.DESC', 'Descending') )) ) ); $groups = DataObject::get('Group'); - $groupArray = array('' => 'Any group'); + $groupArray = array('' => _t('MemberTableField.ANYGROUP', 'Any group')); foreach( $groups as $group ) { $groupArray[$group->ID] = $group->Title; } - $groupFields = new DropdownField('MemberGroup','Filter by group',$groupArray ); + $groupFields = new DropdownField('MemberGroup', _t('MemberTableField.FILTERBYGROUP', 'Filter by group'),$groupArray ); - $actionFields = new LiteralField('MemberFilterButton',''); + $actionFields = new LiteralField('MemberFilterButton',''); $fieldContainer = new FieldGroup( $searchFields, @@ -237,7 +212,7 @@ class MemberTableField extends ComplexTableField { unset($data['ID']); if(!is_numeric($data['ctf']['ID'])) { - FormResponse::status_messsage('Adding failed', 'bad'); + FormResponse::status_messsage(_t('MemberTableField.ADDINGFIELD', 'Adding failed'), 'bad'); } $className = $this->stat('data_class'); @@ -265,8 +240,8 @@ class MemberTableField extends ComplexTableField { * Remove member from group rather than from the database */ function delete() { - $groupID = Convert::raw2sql($_REQUEST["ctf"]["ID"]); - $memberID = Convert::raw2sql($_REQUEST["ctf"]["childID"]); + $groupID = Convert::raw2sql($_REQUEST['ctf']['ID']); + $memberID = Convert::raw2sql($_REQUEST['ctf']['childID']); if(is_numeric($groupID) && is_numeric($memberID)) { $member = DataObject::get_by_id('Member', $memberID); $member->Groups()->remove($groupID); @@ -286,11 +261,11 @@ class MemberTableField extends ComplexTableField { * ################################# */ function getParentClass() { - return "Group"; + return 'Group'; } function getParentIdName($childClass,$parentClass){ - return "GroupID"; + return 'GroupID'; } @@ -302,7 +277,7 @@ class MemberTableField extends ComplexTableField { function memberListWithGroupID($members, $group) { $newMembers = new DataObjectSet(); foreach($members as $member) { - $newMembers->push($member->customise(array("GroupID" => $group->ID))); + $newMembers->push($member->customise(array('GroupID' => $group->ID))); } return $newMembers; } @@ -326,12 +301,12 @@ class MemberTableField extends ComplexTableField { foreach($this->FieldList() as $fieldName=>$fieldTitle) { $fields->push(new TextField($fieldName)); } - $fields->push(new HiddenField("ctf[ID]", null, $this->group->ID)); + $fields->push(new HiddenField('ctf[ID]', null, $this->group->ID)); return new TabularStyle(new Form($this->controller,'AddRecordForm', $fields, new FieldSet( - new FormAction("addtogroup", _t('MemberTableField.ADD','Add')) + new FormAction('addtogroup', _t('MemberTableField.ADD','Add')) ) )); } @@ -348,7 +323,7 @@ class MemberTableField extends ComplexTableField { } // Setup limits - $limitClause = ""; + $limitClause = ''; if(isset($_REQUEST['ctf'][$this->Name()]['start']) && is_numeric($_REQUEST['ctf'][$this->Name()]['start'])) { $limitClause = ($_REQUEST['ctf'][$this->Name()]['start']) . ", {$this->pageSize}"; } else { @@ -364,7 +339,7 @@ class MemberTableField extends ComplexTableField { $this->sourceFilter, $this->sourceSort ); - $this->unpagedSourceItems = $this->group->Members( "", "", $this->sourceFilter, $this->sourceSort ); + $this->unpagedSourceItems = $this->group->Members( '', '', $this->sourceFilter, $this->sourceSort ); $this->totalCount = ($this->sourceItems) ? $this->sourceItems->TotalItems() : 0; return $this->sourceItems; } @@ -375,40 +350,42 @@ class MemberTableField extends ComplexTableField { } } - - - - +/** + * Popup window for {@link MemberTableField}. + * @package cms + * @subpackage security + */ class MemberTableField_Popup extends ComplexTableField_Popup { + function __construct($controller, $name, $fields, $sourceClass, $readonly=false, $validator = null) { - - // DO NOT CHANGE THE ORDER OF THESE JS FILES. THESE ARE ONLY REQUIRED FOR THIS INSTANCE !!!11onetwo - parent::__construct($controller, $name, $fields, $sourceClass, $readonly, $validator); - Requirements::javascript("cms/javascript/MemberTableField.js"); - Requirements::javascript("cms/javascript/MemberTableField_popup.js"); + Requirements::javascript('cms/javascript/MemberTableField.js'); + Requirements::javascript('cms/javascript/MemberTableField_popup.js'); } function saveComplexTableField() { - $id = Convert::raw2sql($_REQUEST['ctf']['childID']); + $id = (isset($_REQUEST['ctf']['childID'])) ? Convert::raw2sql($_REQUEST['ctf']['childID']) : false; if (is_numeric($id)) { $childObject = DataObject::get_by_id($this->sourceClass, $id); } else { $childObject = new $this->sourceClass(); + $this->fields->removeByName('ID'); } + $this->saveInto($childObject); $childObject->write(); - $childObject->Groups()->add($_REQUEST['ctf']['ID']); + // add member to current group + $childObject->Groups()->add($_REQUEST['GroupID']); // if ajax-call in an iframe, close window by javascript, else redirect to referrer if(!Director::is_ajax()) { - Director::redirect(substr($_SERVER['REQUEST_URI'],0,strpos($_SERVER['REQUEST_URI'],"?"))); + Director::redirect(substr($_SERVER['REQUEST_URI'],0,strpos($_SERVER['REQUEST_URI'],'?'))); } } } -?> \ No newline at end of file +?> diff --git a/code/Newsletter/BatchProcess.php b/code/Newsletter/BatchProcess.php index dab62a97..e360c0e7 100755 --- a/code/Newsletter/BatchProcess.php +++ b/code/Newsletter/BatchProcess.php @@ -1,6 +1,14 @@ id = self::generateID(); if( !$this->objects || count( $this->objects ) === 0 ) - return $this->complete(); + return $this->complete(); return $this->next(); } @@ -68,6 +76,11 @@ class BatchProcess extends Object { } } +/** + * Controller for calling the batch processes via Ajax. + * @package cms + * @subpackage newsletter + */ class BatchProcess_Controller extends Controller { function next() { @@ -75,13 +88,13 @@ class BatchProcess_Controller extends Controller { $processID = $this->urlParams['ID']; if( !$processID ) { - return "ERROR: Could not continue process"; + return _t('BatchProcess_Controller.ERROR', 'ERROR: Could not continue process'); } $process = unserialize(Session::get('BatchProcesses.' . ($this->urlParams['ID'] - 1))); if( !$process ) { - return "ERROR:Could not continue process"; + return _t('BatchProcess_Controller.ERROR', 'ERROR:Could not continue process'); } if( $this->urlParams['Batch'] ) diff --git a/code/Newsletter/BouncedList.php b/code/Newsletter/BouncedList.php index d49f6ec7..cc38a168 100755 --- a/code/Newsletter/BouncedList.php +++ b/code/Newsletter/BouncedList.php @@ -1,4 +1,15 @@ renderWith("Newsletter_SentStatusReport"); $ret = new FieldSet( new TabSet("Root", - $mailTab = new Tab("Newsletter", - new TextField("Subject", "Subject", $this->Subject), - new HtmlEditorField("Content", "Content") + $mailTab = new Tab(_t('Newsletter.NEWSLETTER', 'Newsletter'), + new TextField("Subject", _t('Newsletter.SUBJECT', 'Subject'), $this->Subject), + new HtmlEditorField("Content", _t('Newsletter.CONTENT', 'Content')) ), - $sentToTab = new Tab("Sent Status Report", + $sentToTab = new Tab(_t('Newsletter.SENTREPORT', 'Sent Status Report'), new LiteralField("Sent Status Report", $sent_status_report) ) ) ); if( $this->Status != 'Draft' ) { - $mailTab->push( new ReadonlyField("SendDate", "Sent at", $this->SendDate) ); + $mailTab->push( new ReadonlyField("SendDate", _t('Newsletter.SENTAT', 'Sent at'), $this->SendDate) ); } @@ -118,6 +128,11 @@ class Newsletter extends DataObject { } } +/** + * Database record for recipients that have had the newsletter sent to them. + * @package cms + * @subpackage newsletter + */ class Newsletter_SentRecipient extends DataObject { /** * The DB schema for Newsletter_SentRecipient. @@ -136,6 +151,12 @@ class Newsletter_SentRecipient extends DataObject { "Member" => "Member", ); } + +/** + * Single recipient of the newsletter + * @package cms + * @subpackage newsletter + */ class Newsletter_Recipient extends DataObject { static $db = array( "ParentID" => "Int", @@ -145,6 +166,11 @@ class Newsletter_Recipient extends DataObject { ); } +/** + * Email object for sending newsletters. + * @package cms + * @subpackage newsletter + */ class Newsletter_Email extends Email_Template { protected $nlType; diff --git a/code/Newsletter/NewsletterEmailProcess.php b/code/Newsletter/NewsletterEmailProcess.php index 3a05efb4..0fb9e4c8 100755 --- a/code/Newsletter/NewsletterEmailProcess.php +++ b/code/Newsletter/NewsletterEmailProcess.php @@ -1,4 +1,15 @@ BlacklistedEmail && Email_BlackList::isBlocked($address)){ - $bounceRecord = new Email_BounceRecord(); - $bounceRecord->BounceEmail = $member->Email; - $bounceRecord->BounceTime = date("Y-m-d H:i:s",time()); - $bounceRecord->BounceMessage = "BlackListed Email"; - $bounceRecord->MemberID = $member->ID; - $bounceRecord->write(); + if($member->BlacklistedEmail && Email_BlackList::isBlocked($address)){ + $bounceRecord = new Email_BounceRecord(); + $bounceRecord->BounceEmail = $member->Email; + $bounceRecord->BounceTime = date("Y-m-d H:i:s",time()); + $bounceRecord->BounceMessage = "BlackListed Email"; + $bounceRecord->MemberID = $member->ID; + $bounceRecord->write(); - // Log the blacklist for this specific Newsletter - $newsletter = new Newsletter_SentRecipient(); - $newsletter->Email = $address; - $newsletter->MemberID = $member->ID; - $newsletter->Result = 'BlackListed'; - $newsletter->ParentID = $this->newsletter->ID; - $newsletter->write(); - } else { - $e = new Newsletter_Email($this->nlType); + // Log the blacklist for this specific Newsletter + $newsletter = new Newsletter_SentRecipient(); + $newsletter->Email = $address; + $newsletter->MemberID = $member->ID; + $newsletter->Result = 'BlackListed'; + $newsletter->ParentID = $this->newsletter->ID; + $newsletter->write(); + + } else { + $e = new Newsletter_Email($this->nlType); $e->setBody( $this->body ); $e->setSubject( $this->subject ); $e->setFrom( $this->from ); $e->setTemplate( $this->nlType->Template ); + if(method_exists($member, "getNameForEmail")) + $nameForEmail = $member->getNameForEmail(); - $e->populateTemplate( array( 'Member' => $member, 'FirstName' => $member->FirstName ) ); - $this->sendToAddress( $e, $address, $this->messageID, $member); - } + $e->populateTemplate( array( 'Member' => $member, 'FirstName' => $member->FirstName, 'NameForEmail'=>$nameForEmail ) ); + $this->sendToAddress( $e, $address, $this->messageID, $member); + } } } diff --git a/code/Newsletter/NewsletterList.php b/code/Newsletter/NewsletterList.php index 0d69b97a..cd06e8e2 100755 --- a/code/Newsletter/NewsletterList.php +++ b/code/Newsletter/NewsletterList.php @@ -1,5 +1,15 @@ mailType = $mailtype; @@ -42,4 +52,4 @@ class NewsletterList extends FormField { } } -?> +?> \ No newline at end of file diff --git a/code/Newsletter/NewsletterType.php b/code/Newsletter/NewsletterType.php index be323b79..03120d84 100755 --- a/code/Newsletter/NewsletterType.php +++ b/code/Newsletter/NewsletterType.php @@ -1,5 +1,16 @@ ID){ $group = $this->Group(); if($group->Title != "$this->Title"){ - $group->Title = "Mailing List: " . $this->Title; + $group->Title = _t('NewsletterType.MAILINGLIST', 'Mailing List:').' '. $this->Title; // Otherwise the code would have mailing list in it too :-( $group->Code = SiteTree::generateURLSegment($this->Title); $group->write(); @@ -62,20 +73,20 @@ class NewsletterType extends DataObject { } $fields = new FieldSet( - new TextField("Title", "Newsletter Type"), - new TextField("FromEmail", "Send newsletters from"), + new TextField("Title", _t('NewsletterType.NEWSLETTERTYPE', 'Newsletter Type')), + new TextField("FromEmail", _t('NewsletterType.SENDFROM', 'Send newsletters from')), new TabSet("Root", - new Tab("Drafts", - $draftList = new NewsletterList("Draft", $this, "Draft") + new Tab(_t('NewsletterType.DRAFTS', 'Drafts'), + $draftList = new NewsletterList("Draft", $this, _t('NewsletterType.DRAFT', 'Draft')) ), - new TabSet("Sent", - new Tab("Sent", - $sendList = new NewsletterList("Send", $this, "Send") + new TabSet('Sent', + new Tab(_t('NewsletterType.SENT', 'Sent'), + $sendList = new NewsletterList("Send", $this, _t('NewsletterType.SEND', 'Send')) ), - new Tab("Unsubscribed", + new Tab(_t('NewsletterType.UNSUBSCRIBED', 'Unsubscribed'), $unsubscribedList = new UnsubscribedList("Unsubscribed", $this) ), - new Tab("Bounced", + new Tab(_t('NewsletterType.BOUNCED', 'Bounced'), $bouncedList = new BouncedList("Bounced", $this ) ) ) @@ -85,15 +96,15 @@ class NewsletterType extends DataObject { if($this->GroupID) { $fields->addFieldToTab('Root', new TabSet("Recipients", - new Tab( "Recipients", + new Tab( _t('NewsletterType.RECIPIENTS', 'Recipients'), $recipients = new MemberTableField( $this, "Recipients", $group ) ), - new Tab( "Import", - $importField = new RecipientImportField("ImportFile","Import from file", $group ) + new Tab( _t('NewsletterType.IMPORT', 'Import'), + $importField = new RecipientImportField("ImportFile", _t('NewsletterType.IMPORTFROM', 'Import from file'), $group ) ) ) ); @@ -104,7 +115,7 @@ class NewsletterType extends DataObject { } $fields->addFieldToTab('Root', - new Tab("Template", + new Tab(_t('NewsletterType.TEMPLATE', 'Template'), $templates = new TemplateList("Template","Template", $this->Template, NewsletterAdmin::template_path()) ) ); diff --git a/code/Newsletter/RecipientImportField.php b/code/Newsletter/RecipientImportField.php index 125d2e0e..3b43ba56 100755 --- a/code/Newsletter/RecipientImportField.php +++ b/code/Newsletter/RecipientImportField.php @@ -1,6 +1,14 @@ 0; + return preg_match( '/.*\.csv$/i', $file['name'] ) > 0; } function confirm( $data, $form ) { diff --git a/code/Newsletter/SubscribeForm.php b/code/Newsletter/SubscribeForm.php index e61d2284..4f22f885 100755 --- a/code/Newsletter/SubscribeForm.php +++ b/code/Newsletter/SubscribeForm.php @@ -1,4 +1,15 @@ 'Varchar' ); - static $defaults = array( - "OnCompleteMessage" => "

    Thanks, you have been added to our mailing list.

    ", - ); + static $defaults = array( + "OnCompleteMessage" => "

    Thanks, you have been added to our mailing list.

    ", + ); static $has_many = array( 'Newsletters' => 'NewsletterType' @@ -53,14 +64,19 @@ class SubscribeForm extends UserDefinedForm { if( !empty( $typeValue ) ) { $newField->prepopulate( $typeValue ); } - - $newField->setField('ID', "new-" . $count); - + + $newField->ParentID = $this->ID; $newField->Sort = $count; - $f->addWithoutWrite($newField); + $newField->write(); $count++; } } + + public function write($showDebug = false, $forceInsert = false, $forceWrite = false) { + $isNew = (!$this->ID); + parent::write($showDebug, $forceInsert, $forceWrite); + if($isNew) $this->addDefaultFields(); + } public function Newsletters() { $components = $this->getComponents('Newsletters'); @@ -148,6 +164,11 @@ class SubscribeForm extends UserDefinedForm { } } +/** + * Email for sending subscribe form submissions. + * @package cms + * @subpackage newsletter + */ class SubscribeForm_SubscribeEmail extends Email_Template { protected $to = '$Email'; protected $subject = '$Subject'; @@ -155,10 +176,14 @@ class SubscribeForm_SubscribeEmail extends Email_Template { protected $from = ''; } +/** + * Controller for the SubscribeForm page + * @package cms + * @subpackage newsletter + */ class SubscribeForm_Controller extends UserDefinedForm_Controller { function process( $data, $form ) { - // Add the user to the mailing list $member = Object::create("Member"); @@ -167,7 +192,6 @@ class SubscribeForm_Controller extends UserDefinedForm_Controller { // map the editables to the data foreach( $this->Fields() as $editable ) { - $field = $editable->CustomParameter; if( !$field ) continue; @@ -177,14 +201,14 @@ class SubscribeForm_Controller extends UserDefinedForm_Controller { // if( $member->hasField( $field ) ) $member->$field = $data[$editable->Name]; } - + // need to write the member record before adding the user to groups $member->write(); $newsletters = array(); // Add member to the selected newsletters - if( $data['Newsletters'] ) foreach( $data['Newsletters'] as $listID ) { + if( isset($data['Newsletters'])) foreach( $data['Newsletters'] as $listID ) { if( !is_numeric( $listID ) ) continue; @@ -238,13 +262,9 @@ class SubscribeForm_Controller extends UserDefinedForm_Controller { $newsletters = array(); - // Debug::show($newsletterList); - // get the newsletter types to display on the form foreach( $newsletterList as $newsletter ) - $newsletters[] = $newsletter; - - // Debug::show( $newsletters ); + $newsletters[$newsletter->ID] = $newsletter->Title; $form->Fields()->push( new CheckboxSetField( 'Newsletters', 'Subscribe to lists', $newsletters ) ); diff --git a/code/Newsletter/TemplateList.php b/code/Newsletter/TemplateList.php index d4169f0e..c5c598d5 100755 --- a/code/Newsletter/TemplateList.php +++ b/code/Newsletter/TemplateList.php @@ -1,6 +1,14 @@ "None" ); + $templates = array( "" => _t('TemplateList.NONE', 'None') ); $absPath = Director::baseFolder(); if( $absPath{strlen($absPath)-1} != "/" ) diff --git a/code/Newsletter/Unsubscribe.php b/code/Newsletter/Unsubscribe.php index 4ff1aab8..6dc542f0 100755 --- a/code/Newsletter/Unsubscribe.php +++ b/code/Newsletter/Unsubscribe.php @@ -1,7 +1,15 @@ urlParams['Email'] == "done") - $listForm->sessionMessage("Thank you. You have been removed from the selected groups", "good"); + $listForm->sessionMessage(_t('Unsubscribe.SUCCESS', 'Thank you. You have been removed from the selected groups'), "good"); return $this->customise( array( 'Content' => $listForm->forTemplate() ) )->renderWith('Page'); } @@ -93,7 +101,7 @@ class Unsubscribe_Controller extends Page_Controller { $url = "unsubscribe/done/".$member->Email."/".$nlTypeTitles; Director::redirect($url); } else { - $form->addErrorMessage('MailingLists', 'You need to select at least one mailing list to unsubscribe from.', 'bad'); + $form->addErrorMessage('MailingLists', _t('Unsubscribe.NOMLSELECTED', 'You need to select at least one mailing list to unsubscribe from.'), 'bad'); Director::redirectBack(); } } @@ -106,6 +114,12 @@ class Unsubscribe_Controller extends Page_Controller { } } +/** + * 2nd step form for the Unsubcribe page. + * The form will list all the mailing lists that the user is subscribed to. + * @package cms + * @subpackage newsletter + */ class Unsubscribe_MailingListForm extends Form { protected $memberEmail; @@ -121,15 +135,15 @@ class Unsubscribe_MailingListForm extends Form { $lists = $this->getMailingLists( $member ); if( $lists ) { - $fields->push( new LabelField( 'You are subscribed to the following lists:' ) ); + $fields->push( new LabelField( _t('Unsubcribe.SUBSCRIBEDTO', 'You are subscribed to the following lists:')) ); foreach( $lists as $list ) { $fields->push( new CheckboxField( "MailingLists[{$list->ID}]", $list->Title ) ); } - $actions->push( new FormAction('unsubscribe', 'Unsubscribe' ) ); + $actions->push( new FormAction('unsubscribe', _t('Unsubscribe.UNSUBSCRIBE', 'Unsubscribe') ) ); } else { - $fields->push( new LabelField( "I'm sorry, but $email doesn't appear to be in any of our mailing lists." ) ); + $fields->push( new LabelField(sprintf(_t('Unsubscribe.NOTSUBSCRIBED', 'I\'m sorry, but %s doesn\'t appear to be in any of our mailing lists.'), $email) ) ); } parent::__construct( $controller, $name, $fields, $actions ); @@ -145,16 +159,22 @@ class Unsubscribe_MailingListForm extends Form { } } +/** + * 1st step form for the Unsubcribe page. + * The form will let people enter an email address and press a button to continue. + * @package cms + * @subpackage newsletter + */ class Unsubscribe_EmailAddressForm extends Form { function __construct( $controller, $name ) { $fields = new FieldSet( - new EmailField( 'Email', 'Email address' ) + new EmailField( 'Email', _t('Unsubscribe.EMAILADDR', 'Email address') ) ); $actions = new FieldSet( - new FormAction( 'showlists', 'Show lists' ) + new FormAction( 'showlists', _t('Unsubscribe.SHOWLISTS', 'Show lists') ) ); parent::__construct( $controller, $name, $fields, $actions ); @@ -165,6 +185,12 @@ class Unsubscribe_EmailAddressForm extends Form { } } +/** + * Final stage form for the Unsubcribe page. + * The form just gives you a success message. + * @package cms + * @subpackage newsletter + */ class Unsubscribe_Successful extends Form { function __construct($controller, $name){ $fields = new FieldSet(); @@ -173,7 +199,7 @@ class Unsubscribe_Successful extends Form { } function setSuccessfulMessage($email, $newsletterTypes) { Requirements::themedCSS("form"); - $this->setMessage("Thank you. $email will no longer receive the $newsletterTypes.", "good"); + $this->setMessage(sprintf(_t('Unsubscribe.REMOVESUCCESS', 'Thank you. %s will no longer receive the %s.'), $email, $newsletterTypes), "good"); } } diff --git a/code/Newsletter/UnsubscribedList.php b/code/Newsletter/UnsubscribedList.php index 43bd06d8..9d96f8d2 100755 --- a/code/Newsletter/UnsubscribedList.php +++ b/code/Newsletter/UnsubscribedList.php @@ -1,7 +1,15 @@ GroupID) { $group = DataObject::get_one("Group", "ID = $mailType->GroupID"); } - - if(isset($mailType)) { + if(isset($mailType)&&$mailType) { $fields = new FieldSet( new TabSet("Root", - new Tab("Newsletter Settings", + new Tab(_t('NewsletterAdmin.NLSETTINGS', 'Newsletter Settings'), new TextField("Title", _t('NewsletterAdmin.NEWSLTYPE','Newsletter Type')), new TextField("FromEmail", _t('NewsletterAdmin.FROMEM','From email address')), - $templates = new TemplateList("Template","Template", $mailType->Template, self::template_path()) + $templates = new TemplateList("Template", _t('NewsletterAdmin.TEMPLATE', 'Template'), $mailType->Template, self::template_path()) ) ) ); @@ -241,7 +275,7 @@ class NewsletterAdmin extends LeftAndMain { $fields->push( new HiddenField( "executeForm", "", "TypeEditForm" ) ); $idField->setValue($id); - $actions = new FieldSet(new FormAction('save','Save')); + $actions = new FieldSet(new FormAction('save', _t('NewsletterAdmin.SAVE', 'Save'))); $form = new Form($this, "EditForm", $fields, $actions); $form->loadDataFrom(array( @@ -275,20 +309,20 @@ class NewsletterAdmin extends LeftAndMain { if(isset($mailType) && is_object($mailType)) { $fields = new FieldSet( new TabSet("Root", - new Tab( "Recipients", + new Tab(_t('NewsletterAdmin.RECIPIENTS', 'Recipients'), $recipients = new MemberTableField( $this, "Recipients", $group ) ), - new Tab( "Import", - $importField = new RecipientImportField("ImportFile","Import from file", $group ) + new Tab(_t('NewsletterAdmin.IMPORT', 'Import'), + $importField = new RecipientImportField("ImportFile",_t('NewsletterAdmin.IMPORTFROM', 'Import from file'), $group ) ), - new Tab("Unsubscribers", + new Tab(_t('NewsletterAdmin.UNSUBSCRIBERS', 'Unsubscribers'), $unsubscribedList = new UnsubscribedList("Unsubscribed", $mailType) ), - new Tab("Bounced", $bouncedList = new BouncedList("Bounced", $mailType ) + new Tab(_t('NewsletterAdmin.BOUNCED','Bounced'), $bouncedList = new BouncedList("Bounced", $mailType ) ) ) ); @@ -341,7 +375,7 @@ class NewsletterAdmin extends LeftAndMain { } else { user_error("NewsletterAdmin::removebouncedmember: Bad parameters: Group=$groupID, Member=".$bounceObject->MemberID, E_USER_ERROR); } - FormResponse::status_message($memberObject->Email.' was removed from the mailing list', 'good'); + FormResponse::status_message($memberObject->Email.' '._t('NewsletterAdmin.REMOVEDSUCCESS', 'was removed from the mailing list'), 'good'); FormResponse::add("$('Form_EditForm').getPageFromServer($('Form_EditForm_ID').value, 'recipients');"); return FormResponse::respond(); } @@ -420,7 +454,7 @@ class NewsletterAdmin extends LeftAndMain { $id = isset($_REQUEST['ID']) ? $_REQUEST['ID'] : $_REQUEST['NewsletterID']; if( !$id ) { - FormResponse::status_message('No newsletter specified','bad'); + FormResponse::status_message(_t('NewsletterAdmin.NONLSPECIFIED', 'No newsletter specified'),'bad'); return FormResponse::respond(); } @@ -543,11 +577,11 @@ class NewsletterAdmin extends LeftAndMain { // If the email is currently not blocked, block it if (FALSE == $memberObject->BlacklistedEmail) { $memberObject->setBlacklistedEmail(TRUE); - FormResponse::status_message($memberObject->Email.' was added to blacklist', 'good'); + FormResponse::status_message($memberObject->Email.' '._t('NewsletterAdmin.ADDEDTOBL', 'was added to blacklist'), 'good'); } else { // Unblock the email $memberObject->setBlacklistedEmail(FALSE); - FormResponse::status_message($memberObject->Email.' was removed from blacklist', 'good'); + FormResponse::status_message($memberObject->Email.' '._t('NewsletterAdmin.REMOVEDFROMBL','was removed from blacklist'), 'good'); } return FormResponse::respond(); } diff --git a/code/PageTypes/UserDefinedForm.php b/code/PageTypes/UserDefinedForm.php index ca6aa78b..fe7e926f 100755 --- a/code/PageTypes/UserDefinedForm.php +++ b/code/PageTypes/UserDefinedForm.php @@ -1,5 +1,15 @@ addFieldToTab("Root.Form", new FieldEditor("Fields", "Fields", "", $this )); - $fields->addFieldToTab("Root.Submissions", new SubmittedFormReportField( "Reports", "Received Submissions", "", $this ) ); - $fields->addFieldToTab("Root.Content.On complete", new HtmlEditorField( "OnCompleteMessage", "Show on completion",3,"",$this->OnCompleteMessage, $this ) ); + $fields->addFieldToTab("Root."._t('UserDefinedForm.FORM', 'Form'), new FieldEditor("Fields", 'Fields', "", $this )); + $fields->addFieldToTab("Root."._t('UserDefinedForm.SUBMISSIONS','Submissions'), new SubmittedFormReportField( "Reports", _t('UserDefinedForm.RECEIVED', 'Received Submissions'), "", $this ) ); + $fields->addFieldToTab("Root.Content."._t('UserDefinedForm.ONCOMPLETE','On complete'), new HtmlEditorField( "OnCompleteMessage", _t('UserDefinedForm.ONCOMPLETELABEL', 'Show on completion'),3,"",_t('UserDefinedForm.ONCOMPLETEMESSAGE', $this->OnCompleteMessage), $this ) ); return $fields; } @@ -51,7 +61,7 @@ class UserDefinedForm extends Page { // Build actions $actions = new FieldSet( - new FormAction( "filter", "Submit" ) + new FormAction( "filter", _t('UserDefinedForm.SUBMIT', 'Submit') ) ); // set the name of the form @@ -106,12 +116,12 @@ class UserDefinedForm extends Page { $submittedValues = DataObject::get( 'SubmittedFormField', implode( ' AND ', $filterClause ), "", "INNER JOIN `SubmittedForm` ON `SubmittedFormField`.`ParentID`=`SubmittedForm`.`ID`" ); if( !$submittedValues || $submittedValues->Count() == 0 ) - return "No matching results found"; + return _t('UserDefinedForm.NORESULTS', 'No matching results found'); $submissions = $submittedValues->groupWithParents( 'ParentID', 'SubmittedForm' ); if( !$submissions || $submissions->Count() == 0 ) - return "No matching results found"; + return _t('UserDefinedForm.NORESULTS', 'No matching results found'); return $submissions->customise( array( 'Submissions' => $submissions ) @@ -131,7 +141,7 @@ class UserDefinedForm extends Page { } public function customFormActions( $isReadonly = false ) { - return new FieldSet( new TextField( "SubmitButtonText", "Text on submit button:", $this->SubmitButtonText ) ); + return new FieldSet( new TextField( "SubmitButtonText", _t('UserDefinedForm.TEXTONSUBMIT', 'Text on submit button:'), $this->SubmitButtonText ) ); } /** @@ -149,6 +159,11 @@ class UserDefinedForm extends Page { } } +/** + * Controller for the {@link UserDefinedForm} page type. + * @package cms + * @subpackage pagetypes + */ class UserDefinedForm_Controller extends Page_Controller { function init() { @@ -173,8 +188,13 @@ class UserDefinedForm_Controller extends Page_Controller { $required[] = $field->Name; } - $fields->push( new HiddenField( "Referrer", "", $_SERVER['HTTP_REFERER'] ) ); + if(!isset($_SERVER['HTTP_REFERER'])) { + $_SERVER['HTTP_REFERER'] = ""; + } + $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; + $fields->push( new HiddenField( "Referrer", "", $referer ) ); + // Build actions $actions = new FieldSet( new FormAction( "process", $this->SubmitButtonText ) @@ -213,7 +233,7 @@ class UserDefinedForm_Controller extends Page_Controller { if( $field->hasMethod( 'getValueFromData' ) ) $submittedField->Value = $field->getValueFromData( $data ); else - $submittedField->Value = $data[$field->Name]; + if(isset($data[$field->Name])) $submittedField->Value = $data[$field->Name]; $submittedField->write(); $submittedFields->push($submittedField); @@ -259,7 +279,7 @@ class UserDefinedForm_Controller extends Page_Controller { $values[$field->Title] = Convert::linkIfMatch($field->getValueFromData( $data )); } else { - $values[$field->Title] = Convert::linkIfMatch($data[$field->Name]); + if(isset($data[$field->Name])) $values[$field->Title] = Convert::linkIfMatch($data[$field->Name]); } } @@ -301,14 +321,20 @@ class UserDefinedForm_Controller extends Page_Controller { } } +/** + * Email that gets sent when a submission is made. + * @package cms + * @subpackage pagetypes + */ class UserDefinedForm_SubmittedFormEmail extends Email_Template { protected $ss_template = "SubmittedFormEmail"; protected $from = '$Sender.Email'; protected $to = '$Recipient.Email'; - protected $subject = "Submission of form"; + protected $subject = 'Submission of form'; protected $data; function __construct($values) { + $this->subject = _t('UserDefinedForm_SubmittedFormEmail.EMAILSUBJECT', 'Submission of form'); parent::__construct(); $this->data = $values; diff --git a/code/ReportAdmin.php b/code/ReportAdmin.php index 7059b2f4..17cdba8e 100755 --- a/code/ReportAdmin.php +++ b/code/ReportAdmin.php @@ -1,5 +1,15 @@ "._t('SecurityAdmin.ADVANCEDONLY',"This section is for advanced users only. See this page for more information.")."

    "), new TableField( "Permissions", "Permission", - array("Code" => "Code", "Arg" => "Optional ID"), - array("Code" => "PermissionDropdownField", "Arg" => "TextField"), + array( + "Code" => _t('SecurityAdmin.CODE', 'Code'), + "Arg" => _t('SecurityAdmin.OPTIONALID', 'Optional ID'), + ), + array( + "Code" => "PermissionDropdownField", + "Arg" => "TextField", + ), "GroupID", $id ) ) @@ -62,11 +91,13 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider { $memberList->setController($this); $memberList->setPermissions(array('show', 'edit', 'delete', 'export', 'add')); - + $memberList->setParentClass('Group'); + $memberList->setPopupCaption(_t('SecurityAdmin.VIEWUSER', 'View User')); + $fields->push($idField = new HiddenField("ID")); $idField->setValue($id); $actions = new FieldSet( - new FormAction('addmember',_t('SecurityAdmin.ADDMEMBER','Add Member')) + //new FormAction('addmember',_t('SecurityAdmin.ADDMEMBER','Add Member')) ); $actions->push(new FormAction('save',_t('SecurityAdmin.SAVE','Save'))); @@ -93,6 +124,7 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider { public function autocomplete() { $fieldName = $this->urlParams['ID']; $fieldVal = $_REQUEST[$fieldName]; + $result = ''; $matches = DataObject::get("Member","$fieldName LIKE '" . addslashes($fieldVal) . "%'"); if($matches) { @@ -335,7 +367,7 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider { function providePermissions() { return array( - 'EDIT_PERMISSIONS' => 'Edit Permissions on each Group', + 'EDIT_PERMISSIONS' => _t('SecurityAdmin.EDITPERMISSIONS', 'Edit Permissions on each Group'), ); } } diff --git a/code/SideReport.php b/code/SideReport.php index cec6980a..1d1ef964 100755 --- a/code/SideReport.php +++ b/code/SideReport.php @@ -1,5 +1,16 @@ \n"; - foreach($fieldsToShow as $fieldTitle => $fieldSource) { + foreach($fieldsToShow as $fieldTitle => $fieldInfo) { + if(isset($fieldInfo['source'])) { + $fieldSource = $fieldInfo['source']; + + // Legacy format for the input data + } else { + $fieldSource = $fieldInfo; + $fieldInfo = array( + 'link' => true, + 'newline' => false, + ); + } + $fieldName = ereg_replace('[^A-Za-z0-9]+','',$fieldTitle); if(is_string($fieldSource)) { $val = $record->$fieldSource; @@ -22,7 +45,14 @@ abstract class SideReport extends Object { $val = $record->val($fieldSource[0], $fieldSource[1]); } - $result .= "ID\">$val"; + if(isset($fieldInfo['newline']) && $fieldInfo['newline']) $result .= "
    "; + + if(isset($fieldInfo['link']) && $fieldInfo['link']) { + $link = ($fieldInfo['link'] === true) ? "admin/show/$record->ID" : $fieldInfo['link']; + $result .= "$val"; + } else { + $result .= "$val"; + } } $result .= "\n
  • \n"; } @@ -34,6 +64,11 @@ abstract class SideReport extends Object { } } +/** + * Content side-report listing empty pages + * @package cms + * @subpackage content + */ class SideReport_EmptyPages extends SideReport { function title() { return _t('SideReport.EMPTYPAGES',"Empty pages"); @@ -48,6 +83,11 @@ class SideReport_EmptyPages extends SideReport { } } +/** + * Content side-report listing recently editing pages. + * @package cms + * @subpackage content + */ class SideReport_RecentlyEdited extends SideReport { function title() { return _t('SideReport.LAST2WEEKS',"Pages edited in the last 2 weeks"); @@ -61,4 +101,25 @@ class SideReport_RecentlyEdited extends SideReport { ); } } + +class SideReport_ToDo extends SideReport { + function title() { + return _t('SideReport.TODO',"To do"); + } + function records() { + return DataObject::get("SiteTree", "`SiteTree`.ToDo IS NOT NULL AND `SiteTree`.ToDo <> ''", "`SiteTree`.`LastEdited` DESC"); + } + function fieldsToShow() { + return array( + "Title" => array( + "source" => array("NestedTitle", array("2")), + "link" => true, + ), + "ToDo" => array( + "source" => "ToDo", + "newline" => true, + ), + ); + } +} ?> \ No newline at end of file diff --git a/code/StaticExporter.php b/code/StaticExporter.php index 00941af7..3b8971fb 100755 --- a/code/StaticExporter.php +++ b/code/StaticExporter.php @@ -1,18 +1,25 @@ "Enter your email address and password to access the CMS.", - 'alreadyLoggedIn' => "I'm sorry, but you can't access that part of the CMS. If you want to log in as someone else, do so below", - 'logInAgain' => "You have been logged out of the CMS. If you would like to log in again, enter a username and password below.", + 'default' => _t('LeftAndMain.PERMDEFAULT', 'Enter your email address and password to access the CMS.'), + 'alreadyLoggedIn' => _t('LeftAndMain.PERMALREADY', 'I\'m sorry, but you can\'t access that part of the CMS. If you want to log in as someone else, do so below'), + 'logInAgain' => _t('LeftAndMain.PERMAGAIN', 'You have been logged out of the CMS. If you would like to log in again, enter a username and password below.'), ); Security::permissionFailure($this, $messageSet); diff --git a/code/StatisticsAdmin.php b/code/StatisticsAdmin.php index 2c401731..59a83e0a 100644 --- a/code/StatisticsAdmin.php +++ b/code/StatisticsAdmin.php @@ -1,5 +1,15 @@ \n -

    Select a report type from the left for a detailed look at site statistics

    \n\n" . +

    "._t('StatisticsAdmin.WELCOME','Select a report type from the left for a detailed look at site statistics')."

    \n\n" . $this->RecentViews() . "\n\n\n\n" . $this->showAll(); diff --git a/code/ThumbnailStripField.php b/code/ThumbnailStripField.php index 50f7eff5..d5f46683 100755 --- a/code/ThumbnailStripField.php +++ b/code/ThumbnailStripField.php @@ -1,9 +1,16 @@ '; }else{ - $result = "

    No images found in ". $folder->Title. "

    "; + $result = '

    '._t('ThumbnailStripField.NOIMAGESFOUND', 'No images found in').' '. $folder->Title. '

    '; } return $result; diff --git a/code/WidgetAreaEditor.php b/code/WidgetAreaEditor.php index 79aaa13b..ac09279d 100644 --- a/code/WidgetAreaEditor.php +++ b/code/WidgetAreaEditor.php @@ -1,5 +1,15 @@ renderWith("WidgetAreaEditor"); diff --git a/code/sitefeatures/Akismet.php b/code/sitefeatures/Akismet.php index b5582414..5c68fce5 100644 --- a/code/sitefeatures/Akismet.php +++ b/code/sitefeatures/Akismet.php @@ -15,7 +15,8 @@ * * See the Akismet class documentation page linked to below for usage information. * - * @package Akismet + * @package cms + * @subpackage comments * @author Alex Potsides, {@link http://www.achingbrain.net http://www.achingbrain.net} * @version 0.1 * @copyright Alex Potsides, {@link http://www.achingbrain.net http://www.achingbrain.net} @@ -43,11 +44,11 @@ * // store the comment normally * * - * @package akismet - * @name Akismet * @version 0.2 * @author Alex Potsides * @link http://www.achingbrain.net/ + * @package cms + * @subpackage comments */ class Akismet { @@ -298,11 +299,12 @@ class Akismet * * N.B. It is not necessary to call this class directly to use the Akismet class. This is included here mainly out of a sense of completeness. * - * @package akismet * @name SocketWriteRead * @version 0.1 * @author Alex Potsides * @link http://www.achingbrain.net/ + * @package cms + * @subpackage comments */ class SocketWriteRead { diff --git a/code/sitefeatures/MathSpamProtection.php b/code/sitefeatures/MathSpamProtection.php index d60b53c6..c5258e3e 100644 --- a/code/sitefeatures/MathSpamProtection.php +++ b/code/sitefeatures/MathSpamProtection.php @@ -1,7 +1,15 @@ "Varchar", @@ -172,8 +182,9 @@ class PageComment extends DataObject { $this->Parent()->Title ); } + function rss() { - $parentcheck = isset($_REQUEST['pageid']) ? "ParentID = {$_REQUEST['pageid']}" : "ParentID > 0"; + $parentcheck = isset($_REQUEST['pageid']) ? "ParentID = " . (int) $_REQUEST['pageid'] : "ParentID > 0"; $comments = DataObject::get("PageComment", "$parentcheck AND IsSpam=0", "Created DESC", "", 10); if(!isset($comments)) { $comments = new DataObjectSet(); @@ -206,4 +217,4 @@ class PageComment extends DataObject { } -?> \ No newline at end of file +?> diff --git a/code/sitefeatures/PageCommentInterface.php b/code/sitefeatures/PageCommentInterface.php index a6d339bf..f7e22c9b 100755 --- a/code/sitefeatures/PageCommentInterface.php +++ b/code/sitefeatures/PageCommentInterface.php @@ -1,9 +1,16 @@ page->ID), - new TextField("Name", "Your name") - ); + new TextField("Name", _t('PageCommentInterface.YOURNAME', 'Your name'))); if(MathSpamProtection::isEnabled()){ - $fields->push(new TextField("Math","Spam protection question: ".MathSpamProtection::getMathQuestion())); + $fields->push(new TextField("Math", sprintf(_t('PageCommentInterface.SPAMQUESTION', "Spam protection question: %s"), MathSpamProtection::getMathQuestion()))); } - $fields->push(new TextareaField("Comment", "Comments")); + $fields->push(new TextareaField("Comment", _t('PageCommentInterface.YOURCOMMENT', "Comments"))); $form = new PageCommentInterface_Form($this->controller, $this->methodName . ".PostCommentForm",$fields, new FieldSet( - new FormAction("postcomment", "Post") + new FormAction("postcomment", _t('PageCommentInterface.POST', 'Post')) )); $form->loadDataFrom(array( @@ -81,6 +87,10 @@ class PageCommentInterface extends ViewableData { } +/** + * @package cms + * @subpackage comments + */ class PageCommentInterface_Form extends Form { function postcomment($data) { // Spam filtering @@ -98,10 +108,9 @@ class PageCommentInterface_Form extends Form { $comment->setField("IsSpam", true); $comment->write(); } - echo "Spam detected!!

    "; - echo "If you believe this was in error, please email "; - echo ereg_replace("@", " _(at)_", Email::getAdminEmail()); - echo ".

    The message you posted was:

    "; + echo ""._t('PageCommentInterface_Form.SPAMDETECTED', 'Spam detected!!') . "

    "; + printf("If you believe this was in error, please email %s.", ereg_replace("@", " _(at)_", Email::getAdminEmail())); + echo "

    "._t('PageCommentInterface_Form.MSGYOUPOSTED', 'The message you posted was:'). "

    "; echo $data['Comment']; return; @@ -131,7 +140,7 @@ class PageCommentInterface_Form extends Form { if(Director::is_ajax()) { if($comment->NeedsModeration){ - echo "Your comment has been submitted and is now awating moderation."; + echo _t('PageCommentInterface_Form.AWAITINGMODERATION', "Your comment has been submitted and is now awating moderation."); } else{ echo $comment->renderWith('PageCommentInterface_singlecomment'); } @@ -141,6 +150,10 @@ class PageCommentInterface_Form extends Form { } } +/** + * @package cms + * @subpackage comments + */ class PageCommentInterface_Controller extends ContentController { function __construct() { parent::__construct(null); @@ -148,9 +161,9 @@ class PageCommentInterface_Controller extends ContentController { function newspamquestion() { if(Director::is_ajax()) { - echo Convert::raw2xml("Spam protection question: ".MathSpamProtection::getMathQuestion()); + echo Convert::raw2xml(sprintf(_t('PageCommentInterface_Controller.SPAMQUESTION', "Spam protection question: %s"),MathSpamProtection::getMathQuestion())); } } } -?> \ No newline at end of file +?> diff --git a/code/sitefeatures/SSAkismet.php b/code/sitefeatures/SSAkismet.php index 4c3b1f7c..7fc61fa9 100644 --- a/code/sitefeatures/SSAkismet.php +++ b/code/sitefeatures/SSAkismet.php @@ -1,4 +1,14 @@ SilverStripe CMS

    Welcome to SilverStripe CMS! Please choose click on one of the items on the left pane.

    ", initialize : function() { - Behaviour.register({ - '#Form_EditForm_action_delete' : { - onclick: this.remove.bind(this) - } - }); }, updateCMSContent: function(el, currentTab, link, customCallBack) { if(!customCallBack) customCallBack = function(){}; if(el || link){ - var reqLink = (el.href) ? el.href : link; + var reqLink = (el && el.href) ? el.href : link; if(typeof(currentTab) != 'undefined') $('Form_EditForm').openTab = currentTab; @@ -59,7 +54,7 @@ RightContent.prototype = { remove: function(e) { if(window.confirm('Are you sure you want to delete?')){ var el = Event.element(e); - Ajax.SubmitForm(el.ownerForm, el.name, { + Ajax.SubmitForm($('Form_EditForm'), el.name, { postBody : 'ajax=1', onSuccess: Ajax.Evaluator, onFailure: ajaxErrorHandler @@ -113,4 +108,8 @@ RightContent.prototype = { titleHolder[0].innerHTML = title; } } -} \ No newline at end of file +} + +var action_delete_right = function(e) { + $('Form_EditForm').remove(e); +} \ No newline at end of file diff --git a/javascript/LeftAndMain_left.js b/javascript/LeftAndMain_left.js index e62b1adb..2d5707de 100755 --- a/javascript/LeftAndMain_left.js +++ b/javascript/LeftAndMain_left.js @@ -190,7 +190,22 @@ TreeNodeAPI.prototype = { } }, duplicatePage: function() { - new Ajax.Request(baseHref() + 'admin/duplicate/' + this.getIdx() + '?ajax=1', { + // Pass the parent ID to the duplicator, which helps ensure that multi-parent pages are duplicated into the node that the user clicked + var parentClause = ""; + if(this.parentTreeNode && this.parentTreeNode.getIdx) { + parentClause = "&parentID=" + this.parentTreeNode.getIdx(); + } + + new Ajax.Request(baseHref() + 'admin/duplicate/' + this.getIdx() + '?ajax=1' + parentClause, { + method : 'get', + onSuccess : Ajax.Evaluator, + onFailure : function(response) { + errorMessage('Error: ', response); + } + }); + }, + duplicatePageWithChildren: function() { + new Ajax.Request(baseHref() + 'admin/duplicatewithchildren/' + this.getIdx() + '?ajax=1', { method : 'get', onSuccess : Ajax.Evaluator, onFailure : function(response) { @@ -443,16 +458,13 @@ ReorganiseAction = Class.create(); ReorganiseAction.applyTo('#sortitems'); ReorganiseAction.prototype = { initialize: function () { - this.isDraggable = false; }, onclick : function() { - if (this.isDraggable == false) { + if ($('sitetree').isDraggable == false) { $('sitetree').makeDraggable(); - this.isDraggable = true; } else { $('sitetree').stopBeingDraggable(); - this.isDraggable = false; } } } @@ -480,4 +492,4 @@ SiteTreeFilterForm.prototype = { return false; } -} \ No newline at end of file +} diff --git a/javascript/ThumbnailStripField.js b/javascript/ThumbnailStripField.js index 401c6536..5662ab3c 100755 --- a/javascript/ThumbnailStripField.js +++ b/javascript/ThumbnailStripField.js @@ -30,7 +30,7 @@ ThumbnailStripField.prototype = { ajaxGetFiles: function(folderID,callback) { if(!callback) callback = this.reapplyBehaviour.bind(this); this.innerHTML = 'Loading...' - var ajaxURL = this.helperURLBase() + '&methodName='+this.updateMethod+'&folderID=' + folderID + ($('SecurityID') ? '&SecurityID=' + $('SecurityID').value : ''); + var ajaxURL = this.helperURLBase() + '&methodName='+this.updateMethod+'&folderID=' + folderID + ($('SecurityID') ? '&SecurityID=' + $('SecurityID').value : '') + '&cacheKillerDate=' + parseInt((new Date()).getTime()) + '&cacheKillerRand=' + parseInt(10000*Math.random()); new Ajax.Updater(this, ajaxURL, { method : 'get', onComplete : callback, diff --git a/javascript/tinymce.template.js b/javascript/tinymce.template.js index 8aaa3bb1..02d68fa7 100755 --- a/javascript/tinymce.template.js +++ b/javascript/tinymce.template.js @@ -27,7 +27,7 @@ if((typeof tinyMCE != 'undefined')) { theme_advanced_toolbar_location : "manually_placed", theme_advanced_toolbar_align : "left", theme_advanced_toolbar_parent : "right", - plugins : "contextmenu,table,emotions,flash", + plugins : "contextmenu,table,emotions,flash,paste", table_inline_editing : true, theme_advanced_buttons1 : "italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,separator,bullist,numlist,outdent,indent,hr,charmap", theme_advanced_buttons2 : "undo,redo,separator,cut,copy,paste,separator,search,replace,separator,flash", @@ -43,4 +43,4 @@ if((typeof tinyMCE != 'undefined')) { valid_elements : "+a[id|rel|rev|dir|tabindex|accesskey|type|name|href|target|title|class],-strong/-b[class],-em/-i[class],-strike[class],-u[class],#p[id|dir|class|align],-ol[class],-ul[class],-li[class],br,img[id|dir|longdesc|usemap|class|src|border|alt=|title|width|height|align],-sub[class],-sup[class],-blockquote[dir|class],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|dir|id|style],-tr[id|dir|class|rowspan|width|height|align|valign|bgcolor|background|bordercolor|style],tbody[id|class|style],thead[id|class|style],tfoot[id|class|style],-td[id|dir|class|colspan|rowspan|width|height|align|valign|scope|style],-th[id|dir|class|colspan|rowspan|width|height|align|valign|scope|style],caption[id|dir|class],-div[id|dir|class|align],-span[class|align],-pre[class|align],address[class|align],-h1[id|dir|class|align],-h2[id|dir|class|align],-h3[id|dir|class|align],-h4[id|dir|class|align],-h5[id|dir|class|align],-h6[id|dir|class|align],hr[class],dd[id|class|title|dir],dl[id|class|title|dir],dt[id|class|title|dir]", extended_valid_elements : "img[class|src|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name]" }); -} \ No newline at end of file +} diff --git a/lang/bg_BG.php b/lang/bg_BG.php index 085efc10..8c0b138f 100644 --- a/lang/bg_BG.php +++ b/lang/bg_BG.php @@ -4,7 +4,11 @@ i18n::include_locale_file('cms', 'en_US'); global $lang; -$lang['bg_BG'] = $lang['en_US']; +if(array_key_exists('bg_BG', $lang) && is_array($lang['bg_BG'])) { + $lang['bg_BG'] = array_merge($lang['en_US'], $lang['bg_BG']); +} else { + $lang['bg_BG'] = $lang['en_US']; +} $lang['bg_BG']['AssetAdmin']['CHOOSEFILE'] = 'Избери файл'; $lang['bg_BG']['AssetAdmin']['CONTENTMODBY'] = 'Съдържанието достъпно за промяна от'; diff --git a/lang/cs_CZ.php b/lang/cs_CZ.php index e67eb11c..25e1a048 100644 --- a/lang/cs_CZ.php +++ b/lang/cs_CZ.php @@ -4,7 +4,11 @@ i18n::include_locale_file('cms', 'en_US'); global $lang; -$lang['cs_CZ'] = $lang['en_US']; +if(array_key_exists('cs_CZ', $lang) && is_array($lang['cs_CZ'])) { + $lang['cs_CZ'] = array_merge($lang['en_US'], $lang['cs_CZ']); +} else { + $lang['cs_CZ'] = $lang['en_US']; +} $lang['cs_CZ']['AssetAdmin']['CHOOSEFILE'] = 'Vybrat soubor'; $lang['cs_CZ']['AssetAdmin']['CONTENTMODBY'] = 'Obsah upravitelný'; diff --git a/lang/de_DE.php b/lang/de_DE.php index dac1233a..35d15f60 100644 --- a/lang/de_DE.php +++ b/lang/de_DE.php @@ -4,7 +4,11 @@ i18n::include_locale_file('cms', 'en_US'); global $lang; -$lang['de_DE'] = $lang['en_US']; +if(array_key_exists('de_DE', $lang) && is_array($lang['de_DE'])) { + $lang['de_DE'] = array_merge($lang['en_US'], $lang['de_DE']); +} else { + $lang['de_DE'] = $lang['en_US']; +} $lang['de_DE']['AssetAdmin']['CHOOSEFILE'] = 'Datei auswählen'; $lang['de_DE']['AssetAdmin']['CONTENTMODBY'] = 'Inhalt veränderbar durch'; diff --git a/lang/en_US.php b/lang/en_US.php index b02b1441..2da7e8a7 100755 --- a/lang/en_US.php +++ b/lang/en_US.php @@ -137,6 +137,20 @@ $lang['en_US']['CMSMain']['VISITRESTORE'] = array( PR_LOW, 'restorepage/(ID) should not be translated (is an URL)' ); +$lang['en_US']['CommentAdmin']['APPROVEDCOMMENTS'] = 'Approved Comments'; +$lang['en_US']['CommentAdmin']['COMMENTSAWAITINGMODERATION'] = 'Comments Awaiting Moderation'; +$lang['en_US']['CommentAdmin']['SPAM'] = 'Spam'; +$lang['en_US']['CommentAdmin']['AUTHOR'] = 'Author'; +$lang['en_US']['CommentAdmin']['COMMENT'] = 'Comment'; +$lang['en_US']['CommentAdmin']['PAGE'] = 'Page'; +$lang['en_US']['CommentAdmin']['DATEPOSTED'] = 'Date Posted'; +$lang['en_US']['CommentAdmin']['ACCEPT'] = 'Accept'; +$lang['en_US']['CommentAdmin']['SPAMMARKED'] = 'Mark as spam'; +$lang['en_US']['CommentAdmin']['MARKASNOTSPAM'] = 'Mark as not spam'; +$lang['en_US']['CommentAdmin']['DELETE'] = 'Delete'; +$lang['en_US']['CommentAdmin']['DELETEALL'] = 'Delete All'; +$lang['en_US']['CommentTableField']['SEARCH'] = 'Search'; +$lang['en_US']['CommentTableField']['FILTER'] = 'Filter'; $lang['en_US']['LeftAndMain']['PERMDEFAULT'] = 'Please choose an authentication method and enter your credentials to access the CMS.'; $lang['en_US']['LeftAndMain']['PERMALREADY'] = 'I\'m sorry, but you can\'t access that part of the CMS. If you want to log in as someone else, do so below'; $lang['en_US']['LeftAndMain']['PERMAGAIN'] = 'You have been logged out of the CMS. If you would like to log in again, enter a username and password below.'; @@ -244,6 +258,11 @@ $lang['en_US']['CMSMain_versions.ss']['NOTPUB'] = 'Not published'; $lang['en_US']['CommentList.ss']['NOCOM'] = 'There are no comments on this page.'; $lang['en_US']['CommentList.ss']['CREATEDW'] = 'Comments are created whenever one of the \'workflow actions\' are undertaken - Publish, Reject, Submit.'; +$lang['en_US']['CommentTableField.ss']['APPROVECOMMENT'] = 'Approve this comment'; +$lang['en_US']['CommentTableField.ss']['MARKASSPAM'] = 'Mark this comment as spam' ; +$lang['en_US']['CommentTableField.ss']['MARKNOSPAM'] = 'Mark this comment as not spam'; +$lang['en_US']['CommentTableField.ss']['DELETEROW'] = 'Delete this row'; +$lang['en_US']['CommentTableField.ss']['NOITEMSFOUND'] = 'No items found'; $lang['en_US']['ImageEditor.ss']['UNTITLED'] = 'Untitled Document'; $lang['en_US']['ImageEditor.ss']['SAVE'] = 'save image'; $lang['en_US']['ImageEditor.ss']['UNDO'] = 'undo'; @@ -328,6 +347,10 @@ $lang['en_US']['CMSMain_right.ss']['CHOOSEPAGE'] = 'Please choose a page from th $lang['en_US']['CMSRight.ss']['ECONTENT'] = 'Edit Content'; $lang['en_US']['CMSRight.ss']['WELCOMETO'] = 'Welcome to'; $lang['en_US']['CMSRight.ss']['CHOOSEPAGE'] = 'Please choose a page from the left.'; +$lang['en_US']['CommentAdmin_left.ss']['COMMENTS'] = 'Comments'; +$lang['en_US']['CommentAdmin_left.ss']['APPROVED'] = 'Approved'; +$lang['en_US']['CommentAdmin_left.ss']['AWAITMODERATION'] = 'Awaiting Moderation'; +$lang['en_US']['CommentAdmin_left.ss']['SPAM'] = 'Spam'; $lang['en_US']['GenericDataAdmin_left.ss']['ADDLISTING'] = 'Add Listing'; $lang['en_US']['GenericDataAdmin_left.ss']['SEARCHLISTINGS'] = 'Search Listings'; $lang['en_US']['GenericDataAdmin_left.ss']['SEARCHRESULTS'] = 'Search Results'; @@ -454,6 +477,7 @@ $lang['en_US']['PageCommentInterface.ss']['COMMENTS'] = 'Comments'; $lang['en_US']['PageCommentInterface.ss']['PREV'] = 'previous'; $lang['en_US']['PageCommentInterface.ss']['NEXT'] = 'next'; $lang['en_US']['PageCommentInterface.ss']['NOCOMMENTSYET'] = 'No one has commented on this page yet.'; +$lang['en_US']['PageCommentInterface.ss']['RSSFEEDCOMMENTS'] = 'RSS feed for comments on this page'; $lang['en_US']['PageCommentInterface_singlecomment.ss']['PBY'] = 'Posted by'; $lang['en_US']['PageCommentInterface_singlecomment.ss']['ISSPAM'] = 'this comment is spam'; $lang['en_US']['PageCommentInterface_singlecomment.ss']['ISNTSPAM'] = 'this comment is not spam'; @@ -469,4 +493,75 @@ $lang['en_US']['ViewArchivedEmail.ss']['HAVEASKED'] = array( ); $lang['en_US']['ViewArchivedEmail.ss']['CANACCESS'] = 'You can access the archived site at this link:'; +// New2 + +$lang['en_US']['MemberTableField.ss']['DISPLAYING'] = 'Displaying'; +$lang['en_US']['MemberTableField.ss']['TO'] = 'to'; +$lang['en_US']['MemberTableField.ss']['OF'] = 'of'; +$lang['en_US']['MemberTableField.ss']['EDITASSET'] = 'Edit file'; +$lang['en_US']['MemberTableField']['FIRSTNAME'] = 'Firstname'; +$lang['en_US']['MemberTableField']['SURNAME'] = 'Surname'; +$lang['en_US']['MemberTableField']['EMAIL'] = 'Email'; + +$lang['en_US']['GenericDataAdmin']['CSVEXPORT'] = 'Export to CSV'; + +$lang['en_US']['SecurityAdmin']['VIEWUSER'] = 'View User'; +$lang['en_US']['CMSMain']['ACCESSTO'] = array('Access to %s in CMS', + PR_MEDIUM, + '%s is a class name'); + +$lang['en_US']['CMSMain']['ASSETADMINNAME'] = 'Assets'; +$lang['en_US']['CMSMain']['BULKLOADERADMINNAME'] = 'Bulk Loader'; +$lang['en_US']['CMSMain']['CMSMAINNAME'] = 'Main CMS'; +$lang['en_US']['CMSMain']['COMMENTADMINNAME'] = 'Comments'; +$lang['en_US']['CMSMain']['GENERICDATAADMINNAME'] = 'Generic Data'; +$lang['en_US']['CMSMain']['LEFTANDMAINNAME'] = 'Left And Main'; +$lang['en_US']['CMSMain']['NEWSLETTERADMINNAME'] = 'Newsletter'; +$lang['en_US']['CMSMain']['REPORTADMINNAME'] = 'Reports'; +$lang['en_US']['CMSMain']['SECURITYADMINNAME'] = 'Security'; +$lang['en_US']['CMSMain']['STATISTICSADMINNAME'] = 'Statistics'; + +$lang['en_US']['CommentAdmin']['APPROVEDCOMMENTS'] = 'Approved Comments'; +$lang['en_US']['CommentAdmin']['WAITINGMODERATION'] = 'Comments Awaiting Moderation'; +$lang['en_US']['CommentAdmin']['SPAM'] = 'Spam'; +$lang['en_US']['CommentAdmin']['AUTHOR'] = 'Author'; +$lang['en_US']['CommentAdmin']['COMMENT'] = 'Comment'; +$lang['en_US']['CommentAdmin']['COMMENTS'] = 'Comments'; +$lang['en_US']['CommentAdmin']['PAGE'] = 'Page'; +$lang['en_US']['CommentAdmin']['CREATED'] = 'Date Posted'; +$lang['en_US']['CommentAdmin']['ACCEPT'] = 'Accept'; +$lang['en_US']['CommentAdmin']['MARKSPAM'] = 'Mark as spam'; +$lang['en_US']['CommentAdmin']['MARKNOTSPAM'] = 'Mark as not spam'; +$lang['en_US']['CommentAdmin']['DELETE'] = 'Delete'; +$lang['en_US']['CommentAdmin']['DELETEALL'] = 'Delete All'; +$lang['en_US']['CommentAdmin']['NAME'] = 'Name'; +$lang['en_US']['CommentAdmin']['EDIT'] = 'Edit'; + +$lang['en_US']['CommentTableField']['SEARCH'] = 'Search'; +$lang['en_US']['CommentTableField']['FILTER'] = 'Filter'; + +$lang['en_US']['CommentTableField.ss']['DISPLAYING'] = 'Displaying'; +$lang['en_US']['CommentTableField.ss']['TO'] = 'to'; +$lang['en_US']['CommentTableField.ss']['OF'] = 'of'; +$lang['en_US']['CommentTableField.ss']['NOITEMSFOUND'] = 'No items found'; +$lang['en_US']['CommentTableField.ss']['EDIT'] = 'Edit'; + +$lang['en_US']['CommentTableField.ss']['APPROVE'] = 'Approve this comment'; +$lang['en_US']['CommentTableField.ss']['MARKASSPAM'] = 'Mark this comment as spam'; +$lang['en_US']['CommentTableField.ss']['MARKASNOTSPAM'] = 'Mark this comment as not spam'; +$lang['en_US']['CommentTableField.ss']['DELETEROW'] = 'Delete this row'; + +$lang['en_US']['CommentAdmin_left.ss']['COMMENTS'] = 'Comments'; +$lang['en_US']['CommentAdmin_left.ss']['APPROVED'] = 'Approved'; +$lang['en_US']['CommentAdmin_left.ss']['WAITINGMODERATION'] = 'Awaiting Moderation'; +$lang['en_US']['CommentAdmin_left.ss']['SPAM'] = 'Spam'; + +$lang['en_US']['StatisticsAdmin']['SELECTREPORT'] = 'Select a report type from the left for a detailed look at site statistics'; + +$lang['en_US']['StatisticsAdmin_left.ss']['STATISTICS'] = 'Statistics'; +$lang['en_US']['StatisticsAdmin_left.ss']['VIEWS'] = 'Views'; +$lang['en_US']['StatisticsAdmin_left.ss']['TRENDS'] = 'Trends'; +$lang['en_US']['StatisticsAdmin_left.ss']['OS'] = 'Operating Systems'; +$lang['en_US']['StatisticsAdmin_left.ss']['BROWSERS'] = 'Browsers'; + ?> diff --git a/lang/es_ES.php b/lang/es_ES.php index dc71e137..f4b94578 100644 --- a/lang/es_ES.php +++ b/lang/es_ES.php @@ -4,7 +4,11 @@ i18n::include_locale_file('cms', 'en_US'); global $lang; -$lang['es_ES'] = $lang['en_US']; +if(array_key_exists('es_ES', $lang) && is_array($lang['es_ES'])) { + $lang['es_ES'] = array_merge($lang['en_US'], $lang['es_ES']); +} else { + $lang['es_ES'] = $lang['en_US']; +} $lang['es_ES']['AssetAdmin']['CHOOSEFILE'] = 'Seleccione archivo'; $lang['es_ES']['AssetAdmin']['CONTENTMODBY'] = 'Contenido modificable por'; diff --git a/lang/fr_FR.php b/lang/fr_FR.php index 7e43e1ea..b157bec9 100644 --- a/lang/fr_FR.php +++ b/lang/fr_FR.php @@ -4,7 +4,11 @@ i18n::include_locale_file('cms', 'en_US'); global $lang; -$lang['fr_FR'] = $lang['en_US']; +if(array_key_exists('fr_FR', $lang) && is_array($lang['fr_FR'])) { + $lang['fr_FR'] = array_merge($lang['en_US'], $lang['fr_FR']); +} else { + $lang['fr_FR'] = $lang['en_US']; +} $lang['fr_FR']['AssetAdmin']['CHOOSEFILE'] = 'Choisir un fichier'; $lang['fr_FR']['AssetAdmin']['CONTENTMODBY'] = 'Contenu modifiable par'; @@ -180,7 +184,7 @@ $lang['fr_FR']['LeftAndMain']['CHANGEDURL'] = 'URL modifiée en \'%s\''; $lang['fr_FR']['LeftAndMain']['COMMENTS'] = 'Commentaires'; $lang['fr_FR']['LeftAndMain']['FILESIMAGES'] = 'Fichiers & Images'; $lang['fr_FR']['LeftAndMain']['HELP'] = 'Aide'; -$lang['fr_FR']['LeftAndMain']['NEWSLETTERS'] = 'News-Lettres'; +$lang['fr_FR']['LeftAndMain']['NEWSLETTERS'] = 'Newsletters'; $lang['fr_FR']['LeftAndMain']['PAGETYPE'] = 'Type de page :'; $lang['fr_FR']['LeftAndMain']['PERMAGAIN'] = 'Vous avez été déconnecté du CMS. Si vous voulez vous reconnecter, entrez un nom d\'utilisateur et un mot de passe ci-dessous.'; $lang['fr_FR']['LeftAndMain']['PERMALREADY'] = 'Désolé, mais vous ne pouvez pas accéder cette partie du CMS. Si vous voulez changer d\'identification, faites le ci-dessous'; @@ -288,6 +292,7 @@ $lang['fr_FR']['Newsletter_SentStatusReport.ss']['SENDBOUNCED'] = 'Envois aux De $lang['fr_FR']['Newsletter_SentStatusReport.ss']['SENDFAIL'] = 'Envois aux Destinataires Suivants Echoué'; $lang['fr_FR']['Newsletter_SentStatusReport.ss']['SENTOK'] = 'L\'Envoi aux Destinataires Suivants a été Réussi'; $lang['fr_FR']['Newsletter_SentStatusReport.ss']['SN'] = 'Nom de famille'; +$lang['fr_FR']['PageComment']['COMMENTBY'] = 'Commentaire de \'%s\' sur %s'; $lang['fr_FR']['PageCommentInterface.ss']['COMMENTS'] = 'Commentaires'; $lang['fr_FR']['PageCommentInterface.ss']['NEXT'] = 'suivant'; $lang['fr_FR']['PageCommentInterface.ss']['NOCOMMENTSYET'] = 'Personne n\'a encore commenté cette page.'; diff --git a/lang/hr_HR.php b/lang/hr_HR.php index b4f41119..c8415d10 100644 --- a/lang/hr_HR.php +++ b/lang/hr_HR.php @@ -4,7 +4,11 @@ i18n::include_locale_file('cms', 'en_US'); global $lang; -$lang['hr_HR'] = $lang['en_US']; +if(array_key_exists('hr_HR', $lang) && is_array($lang['hr_HR'])) { + $lang['hr_HR'] = array_merge($lang['en_US'], $lang['hr_HR']); +} else { + $lang['hr_HR'] = $lang['en_US']; +} $lang['hr_HR']['AssetAdmin']['CHOOSEFILE'] = 'Odaberite datoteku'; $lang['hr_HR']['AssetAdmin']['CONTENTMODBY'] = 'Sadržaj može mijenjati'; @@ -259,7 +263,7 @@ $lang['hr_HR']['NewsletterAdmin_right.ss']['ONLYNOT'] = 'Pošalji samo korisnici $lang['hr_HR']['NewsletterAdmin_right.ss']['SEND'] = 'Pošalji newsletter'; $lang['hr_HR']['NewsletterAdmin_right.ss']['SENDTEST'] = 'Pošalji test na'; $lang['hr_HR']['NewsletterAdmin_right.ss']['WELCOME1'] = 'Dobrodošli na'; -$lang['hr_HR']['NewsletterAdmin_right.ss']['WELCOME2'] = 'administraciju newslettera. Odaberite direktorij s lijeve strane. +$lang['hr_HR']['NewsletterAdmin_right.ss']['WELCOME2'] = 'administraciju newslettera. Odaberite direktorij s lijeve strane. '; $lang['hr_HR']['NewsletterAdmin_SiteTree.ss']['DRAFTS'] = 'Privremeni'; $lang['hr_HR']['NewsletterAdmin_SiteTree.ss']['MAILLIST'] = 'Mailing liste'; @@ -290,6 +294,7 @@ $lang['hr_HR']['Newsletter_SentStatusReport.ss']['SENDBOUNCED'] = 'Slanje slijed $lang['hr_HR']['Newsletter_SentStatusReport.ss']['SENDFAIL'] = 'Slanje slijedećim primateljima nije uspjelo'; $lang['hr_HR']['Newsletter_SentStatusReport.ss']['SENTOK'] = 'Slanje slijedećim primateljima je uspješno'; $lang['hr_HR']['Newsletter_SentStatusReport.ss']['SN'] = 'Prezime'; +$lang['hr_HR']['PageComment']['COMMENTBY'] = 'Komentar od \'%s\' na %s'; $lang['hr_HR']['PageCommentInterface.ss']['COMMENTS'] = 'Komentari'; $lang['hr_HR']['PageCommentInterface.ss']['NEXT'] = 'slijedeći'; $lang['hr_HR']['PageCommentInterface.ss']['NOCOMMENTSYET'] = 'Na ovoj stranici nema komentara'; diff --git a/lang/hu_HU.php b/lang/hu_HU.php index c28af92b..7009c6e9 100644 --- a/lang/hu_HU.php +++ b/lang/hu_HU.php @@ -4,7 +4,11 @@ i18n::include_locale_file('cms', 'en_US'); global $lang; -$lang['hu_HU'] = $lang['en_US']; +if(array_key_exists('hu_HU', $lang) && is_array($lang['hu_HU'])) { + $lang['hu_HU'] = array_merge($lang['en_US'], $lang['hu_HU']); +} else { + $lang['hu_HU'] = $lang['en_US']; +} $lang['hu_HU']['AssetAdmin']['CHOOSEFILE'] = 'Válassz fájlt'; $lang['hu_HU']['AssetAdmin']['CONTENTMODBY'] = 'A tartalmat módosíthatja'; diff --git a/lang/it_IT.php b/lang/it_IT.php index 1cc588b3..b2900b5c 100644 --- a/lang/it_IT.php +++ b/lang/it_IT.php @@ -4,7 +4,11 @@ i18n::include_locale_file('cms', 'en_US'); global $lang; -$lang['it_IT'] = $lang['en_US']; +if(array_key_exists('it_IT', $lang) && is_array($lang['it_IT'])) { + $lang['it_IT'] = array_merge($lang['en_US'], $lang['it_IT']); +} else { + $lang['it_IT'] = $lang['en_US']; +} $lang['it_IT']['AssetAdmin']['CHOOSEFILE'] = 'Scegli file'; $lang['it_IT']['AssetAdmin']['CONTENTMODBY'] = 'Contenuto modificabile da'; diff --git a/lang/nl_NL.php b/lang/nl_NL.php index 1b745b9a..90427b9a 100644 --- a/lang/nl_NL.php +++ b/lang/nl_NL.php @@ -4,7 +4,11 @@ i18n::include_locale_file('cms', 'en_US'); global $lang; -$lang['nl_NL'] = $lang['en_US']; +if(array_key_exists('nl_NL', $lang) && is_array($lang['nl_NL'])) { + $lang['nl_NL'] = array_merge($lang['en_US'], $lang['nl_NL']); +} else { + $lang['nl_NL'] = $lang['en_US']; +} $lang['nl_NL']['AssetAdmin']['CHOOSEFILE'] = 'Kies een bestand '; $lang['nl_NL']['AssetAdmin']['CONTENTMODBY'] = 'Inhoud bewerkbaar door'; diff --git a/lang/pl_PL.php b/lang/pl_PL.php index 12527d7d..02fd9fa8 100644 --- a/lang/pl_PL.php +++ b/lang/pl_PL.php @@ -4,13 +4,17 @@ i18n::include_locale_file('cms', 'en_US'); global $lang; -$lang['pl_PL'] = $lang['en_US']; +if(array_key_exists('pl_PL', $lang) && is_array($lang['pl_PL'])) { + $lang['pl_PL'] = array_merge($lang['en_US'], $lang['pl_PL']); +} else { + $lang['pl_PL'] = $lang['en_US']; +} $lang['pl_PL']['AssetAdmin']['CHOOSEFILE'] = 'Wybierz plik'; -$lang['pl_PL']['AssetAdmin']['CONTENTMODBY'] = 'Zawartość modyfikowana przez'; -$lang['pl_PL']['AssetAdmin']['CONTENTUSABLEBY'] = 'Zawartość używana przez '; -$lang['pl_PL']['AssetAdmin']['CREATED'] = 'Pierwsze wgrany'; -$lang['pl_PL']['AssetAdmin']['DELETEDX'] = 'Usunięto %s pliki. %s'; +$lang['pl_PL']['AssetAdmin']['CONTENTMODBY'] = 'Zawartość modyfikowalna przez'; +$lang['pl_PL']['AssetAdmin']['CONTENTUSABLEBY'] = 'Zawartość używalna przez '; +$lang['pl_PL']['AssetAdmin']['CREATED'] = 'Wgrany jako pierwszy'; +$lang['pl_PL']['AssetAdmin']['DELETEDX'] = 'Usunięto %s plików. %s'; $lang['pl_PL']['AssetAdmin']['DELETEUNUSEDTHUMBNAILS'] = 'Usuń nieużywane miniatury'; $lang['pl_PL']['AssetAdmin']['DELSELECTED'] = 'Usuń zaznaczone pliki'; $lang['pl_PL']['AssetAdmin']['DETAILSTAB'] = 'Detale'; @@ -18,31 +22,32 @@ $lang['pl_PL']['AssetAdmin']['FILENAME'] = 'Nazwa pliku'; $lang['pl_PL']['AssetAdmin']['FILESREADY'] = 'Pliki gotowe do wgrania'; $lang['pl_PL']['AssetAdmin']['FILESTAB'] = 'Pliki'; $lang['pl_PL']['AssetAdmin']['LASTEDITED'] = 'Ostatni nadpisany '; -$lang['pl_PL']['AssetAdmin']['MOVEDX'] = 'Przenieś %s pliki'; +$lang['pl_PL']['AssetAdmin']['MOVEDX'] = 'Przeniesiono %s plików'; $lang['pl_PL']['AssetAdmin']['NEWFOLDER'] = 'Nowy Folder'; $lang['pl_PL']['AssetAdmin']['NOTHINGTOUPLOAD'] = 'Nie ma nic do wgrania'; -$lang['pl_PL']['AssetAdmin']['NOWBROKEN'] = 'Te strony mają przerwane linki'; +$lang['pl_PL']['AssetAdmin']['NOWBROKEN'] = 'Te strony mają zepsute linki'; $lang['pl_PL']['AssetAdmin']['ONLYADMINS'] = 'Tylko administrator może wgrać %s pliki.'; $lang['pl_PL']['AssetAdmin']['OWNER'] = 'Właściciel'; $lang['pl_PL']['AssetAdmin']['SAVEDFILE'] = 'Zapisano plik %s'; $lang['pl_PL']['AssetAdmin']['SAVEFOLDERNAME'] = 'Zapisz nazwę folderu'; -$lang['pl_PL']['AssetAdmin']['TITLE'] = 'Tytul'; +$lang['pl_PL']['AssetAdmin']['TITLE'] = 'Tytuł'; $lang['pl_PL']['AssetAdmin']['TOOLARGE'] = '5S jest za duży (%s). Pliki tego typu nie mogą być większe niż %s.'; $lang['pl_PL']['AssetAdmin']['TYPE'] = 'Rodzaj'; $lang['pl_PL']['AssetAdmin']['UNUSEDFILESTAB'] = 'Nieużywane pliki'; $lang['pl_PL']['AssetAdmin']['UNUSEDFILESTITLE'] = 'Nieużywane pliki'; $lang['pl_PL']['AssetAdmin']['UNUSEDTHUMBNAILSTITLE'] = 'Nieużywane miniatury'; $lang['pl_PL']['AssetAdmin']['UPLOAD'] = 'Wgraj pliki z listy poniżej'; -$lang['pl_PL']['AssetAdmin']['UPLOADEDX'] = 'Wgrano %s pliki'; +$lang['pl_PL']['AssetAdmin']['UPLOADEDX'] = 'Wgrano pliki (%s)'; $lang['pl_PL']['AssetAdmin']['UPLOADTAB'] = 'Wgraj'; -$lang['pl_PL']['AssetAdmin']['VIEWEDITASSET'] = 'Zobacz/Edytuj stronę'; +$lang['pl_PL']['AssetAdmin']['VIEWASSET'] = 'Zobacz zawartość'; +$lang['pl_PL']['AssetAdmin']['VIEWEDITASSET'] = 'Zobacz/Edytuj zawartość'; $lang['pl_PL']['AssetAdmin_left.ss']['CREATE'] = 'Stwórz'; $lang['pl_PL']['AssetAdmin_left.ss']['DELETE'] = 'Usuń ...'; $lang['pl_PL']['AssetAdmin_left.ss']['DELFOLDERS'] = 'Usuń zaznaczone foldery'; $lang['pl_PL']['AssetAdmin_left.ss']['FOLDERS'] = 'Foldery'; $lang['pl_PL']['AssetAdmin_left.ss']['GO'] = 'Idź'; $lang['pl_PL']['AssetAdmin_left.ss']['SELECTTODEL'] = 'Wybierz foldery, które chcesz usunąć i kliknij przycisk poniżej'; -$lang['pl_PL']['AssetAdmin_left.ss']['TOREORG'] = 'Aby zreorganizować twoje foldery, przenieś na zewnątrz wybrane'; +$lang['pl_PL']['AssetAdmin_left.ss']['TOREORG'] = 'Aby zreorganizować twoje foldery, przenieś je w wybrane miejsca'; $lang['pl_PL']['AssetAdmin_right.ss']['CHOOSEPAGE'] = 'Proszę wybrać stronę po lewej'; $lang['pl_PL']['AssetAdmin_right.ss']['WELCOME'] = 'Witamy w '; $lang['pl_PL']['AssetAdmin_uploadiframe.ss']['PERMFAILED'] = 'Nie masz uprawnień do wgrania plików do tego folderu '; @@ -50,22 +55,22 @@ $lang['pl_PL']['AssetTableField']['CREATED'] = 'Pierwszy wgrany'; $lang['pl_PL']['AssetTableField']['DIM'] = 'Rozmiar'; $lang['pl_PL']['AssetTableField']['FILENAME'] = 'Nazwa pliku'; $lang['pl_PL']['AssetTableField']['LASTEDIT'] = 'Ostatnia zmiana'; -$lang['pl_PL']['AssetTableField']['NOLINKS'] = 'Ten plik jest zlinkowany do innej strony'; +$lang['pl_PL']['AssetTableField']['NOLINKS'] = 'Do tego pliku nie prowadzą żadne odnośniki.'; $lang['pl_PL']['AssetTableField']['OWNER'] = 'Właściciel'; -$lang['pl_PL']['AssetTableField']['PAGESLINKING'] = 'Link kolejnej strony do tego pliku:'; +$lang['pl_PL']['AssetTableField']['PAGESLINKING'] = 'Następujące strony zawierają linki do tej strony:'; $lang['pl_PL']['AssetTableField']['SIZE'] = 'Rozmiar'; $lang['pl_PL']['AssetTableField.ss']['DELFILE'] = 'Usuń ten plik'; $lang['pl_PL']['AssetTableField.ss']['DRAGTOFOLDER'] = 'Przenieś folder do pliku po lewej'; $lang['pl_PL']['AssetTableField']['TITLE'] = 'Tytuł'; $lang['pl_PL']['AssetTableField']['TYPE'] = 'Rodzaj'; $lang['pl_PL']['BulkLoaderAdmin']['CONFIRMBULK'] = 'Potwierdź dużą ilość załadowanych'; -$lang['pl_PL']['BulkLoaderAdmin']['CSVFILE'] = 'CSV plik'; -$lang['pl_PL']['BulkLoaderAdmin']['DATALOADED'] = 'Te dane zostaną załadowane w'; +$lang['pl_PL']['BulkLoaderAdmin']['CSVFILE'] = 'Plik CSV'; +$lang['pl_PL']['BulkLoaderAdmin']['DATALOADED'] = 'Te dane zostały załadowane w'; $lang['pl_PL']['BulkLoaderAdmin']['PRESSCNT'] = 'Naciśnij kontynuuj aby wgrać dane do'; $lang['pl_PL']['BulkLoaderAdmin']['PREVIEW'] = 'Podgląd'; $lang['pl_PL']['BulkLoaderAdmin_left.ss']['BATCHEF'] = 'Otwórz plik funkcji'; $lang['pl_PL']['BulkLoaderAdmin_left.ss']['FUNCTIONS'] = 'Funkcje'; -$lang['pl_PL']['BulkLoaderAdmin_preview.ss']['RES'] = 'Rezultaty'; +$lang['pl_PL']['BulkLoaderAdmin_preview.ss']['RES'] = 'Wyniki'; $lang['pl_PL']['CMSLeft.ss']['DELPAGE'] = 'Usuń strony ...'; $lang['pl_PL']['CMSLeft.ss']['DELPAGES'] = 'Usuń zaznaczone strony'; $lang['pl_PL']['CMSLeft.ss']['GO'] = 'Idż'; @@ -76,15 +81,15 @@ $lang['pl_PL']['CMSMain']['CANCEL'] = 'Anuluj'; $lang['pl_PL']['CMSMain']['CHOOSEREPORT'] = '(Wybierz raport)'; $lang['pl_PL']['CMSMain']['COMPARINGV'] = 'Porównaj wersję #%d i #%d'; $lang['pl_PL']['CMSMain']['COPYPUBTOSTAGE'] = 'Naprawdę chcesz skopiować publikowaną treść tej strony?'; -$lang['pl_PL']['CMSMain']['DELETEFP'] = 'usuń z opublikowanych stron'; +$lang['pl_PL']['CMSMain']['DELETEFP'] = 'usuń z opublikowanej strony'; $lang['pl_PL']['CMSMain']['EMAIL'] = 'E-mail'; $lang['pl_PL']['CMSMain']['GO'] = 'Idź'; $lang['pl_PL']['CMSMain']['METADESCOPT'] = 'Opis'; -$lang['pl_PL']['CMSMain']['METAKEYWORDSOPT'] = 'Klucz'; +$lang['pl_PL']['CMSMain']['METAKEYWORDSOPT'] = 'Słowa kluczowe'; $lang['pl_PL']['CMSMain']['NEW'] = 'Nowy'; $lang['pl_PL']['CMSMain']['NOCONTENT'] = 'brak zawartości'; $lang['pl_PL']['CMSMain']['NOTHINGASSIGNED'] = 'Nie masz nic przydzielonego'; -$lang['pl_PL']['CMSMain']['NOWAITINGON'] = 'Nie czekaj na nikogo'; +$lang['pl_PL']['CMSMain']['NOWAITINGON'] = 'Obecnie nie oczekujesz na nikogo.'; $lang['pl_PL']['CMSMain']['NOWBROKEN'] = 'Poniższe strony mają nieprawidłowe linki:'; $lang['pl_PL']['CMSMain']['NOWBROKEN2'] = 'Właściciele zostaną powiadomieni mailem i naprawią strony'; $lang['pl_PL']['CMSMain']['OK'] = 'OK'; @@ -95,32 +100,33 @@ $lang['pl_PL']['CMSMain']['PAGESDEL'] = 'Usunięto strony %d'; $lang['pl_PL']['CMSMain']['PAGESPUB'] = '%d opublikowane strony'; $lang['pl_PL']['CMSMain']['PAGETYPEOPT'] = 'Typ strony'; $lang['pl_PL']['CMSMain']['PRINT'] = 'Drukuj'; +$lang['pl_PL']['CMSMain']['PUBALLCONFIRM'] = 'Opublikuj każdą stronę witryny, kopiując zawartość z brudnopisu'; $lang['pl_PL']['CMSMain']['PUBALLFUN'] = 'Funkcja "Opublikuj wszystkie"'; -$lang['pl_PL']['CMSMain']['PUBALLFUN2'] = 'Naciśnięcie przycisku jest równoznaczne z naciśnięciem "publikuj" każdej strony. Używaj tego gdy zamierzasz edytować całą zawartość, np. kiedy strona jest budowana po raz pierwszy'; -$lang['pl_PL']['CMSMain']['PUBPAGES'] = 'Gotowe: Opublikowane %d strony'; +$lang['pl_PL']['CMSMain']['PUBALLFUN2'] = 'Naciśnięcie przycisku jest równoznaczne z naciśnięciem "publikuj" każdej strony. Używaj tego gdy zamierzasz edytować całą zawartość, np. kiedy strona jest tworzona po raz pierwszy'; +$lang['pl_PL']['CMSMain']['PUBPAGES'] = 'Gotowe: Opublikowano %d strony'; $lang['pl_PL']['CMSMain']['REMOVEDFD'] = 'Usuń ze strony roboczej'; -$lang['pl_PL']['CMSMain']['REMOVEDPAGE'] = 'Zmień \'%s\' z publikowanej wersji'; +$lang['pl_PL']['CMSMain']['REMOVEDPAGE'] = 'Usunięto \'%s\' z opublikowanej strony'; $lang['pl_PL']['CMSMain']['RESTORE'] = 'Odzyskaj'; $lang['pl_PL']['CMSMain']['RESTORED'] = 'Odzyskiwanie\'%s\' udane'; -$lang['pl_PL']['CMSMain']['ROLLBACK'] = 'Wróć do wersji.'; +$lang['pl_PL']['CMSMain']['ROLLBACK'] = 'Wróć do tej wersji.'; $lang['pl_PL']['CMSMain']['ROLLEDBACKPUB'] = 'Poprzednia opublikowana wersja. Nowy numer wersji to #%d'; $lang['pl_PL']['CMSMain']['ROLLEDBACKVERSION'] = 'Poprzednia wersja to #%d. Nowy numer wersji to #%d'; $lang['pl_PL']['CMSMain']['SAVE'] = 'Zapisz'; -$lang['pl_PL']['CMSMain']['SENTTO'] = 'Wyślij do %s %s po akceptację'; -$lang['pl_PL']['CMSMain']['STATUSOPT'] = 'Stauts'; +$lang['pl_PL']['CMSMain']['SENTTO'] = 'Wysłano do %s %s po akceptację'; +$lang['pl_PL']['CMSMain']['STATUSOPT'] = 'Status'; $lang['pl_PL']['CMSMain']['TOTALPAGES'] = 'W sumie stron:'; $lang['pl_PL']['CMSMain']['VERSIONSNOPAGE'] = 'Nie można znaleźć strony #%d'; -$lang['pl_PL']['CMSMain']['VIEWING'] = 'Widzisz wersję #%d, stworzoną %s'; -$lang['pl_PL']['CMSMain']['VISITRESTORE'] = 'zobacz zrekonstruowane/(ID)'; +$lang['pl_PL']['CMSMain']['VIEWING'] = 'Oglądasz wersję #%d, stworzoną %s'; +$lang['pl_PL']['CMSMain']['VISITRESTORE'] = 'zobacz restorepage/(ID)'; $lang['pl_PL']['CMSMain']['WAITINGON'] = 'Poczekaj na innych ludzi pracujących nad tymi % stronami'; $lang['pl_PL']['CMSMain']['WORKTODO'] = 'Pracujesz na tych % stronach'; -$lang['pl_PL']['CMSMain_left.ss']['ADDEDNOTPUB'] = 'Dodałeś do oczekujących stron i nie opublikowałeś jeszcze'; +$lang['pl_PL']['CMSMain_left.ss']['ADDEDNOTPUB'] = 'Dodałeś do oczekujących i jeszcze nie opublikowanych stron'; $lang['pl_PL']['CMSMain_left.ss']['ADDSEARCHCRITERIA'] = 'Dodaj kryterium ...'; $lang['pl_PL']['CMSMain_left.ss']['BATCHACTIONS'] = 'Akcja pliku'; $lang['pl_PL']['CMSMain_left.ss']['CHANGED'] = 'zmienione'; $lang['pl_PL']['CMSMain_left.ss']['CLOSEBOX'] = 'kliknij aby zamknąć'; $lang['pl_PL']['CMSMain_left.ss']['COMMENTS'] = 'Komentarze'; -$lang['pl_PL']['CMSMain_left.ss']['COMPAREMODE'] = 'Porównaj tryb (kliknij 2 razy poniżej)'; +$lang['pl_PL']['CMSMain_left.ss']['COMPAREMODE'] = 'Tryb porównania (wybierz 2 poniżej)'; $lang['pl_PL']['CMSMain_left.ss']['CREATE'] = 'Stwórz'; $lang['pl_PL']['CMSMain_left.ss']['DEL'] = 'usunięte'; $lang['pl_PL']['CMSMain_left.ss']['DELETECONFIRM'] = 'Usuń zaznaczone strony'; @@ -132,11 +138,12 @@ $lang['pl_PL']['CMSMain_left.ss']['GO'] = 'idź'; $lang['pl_PL']['CMSMain_left.ss']['KEY'] = 'Klucz:'; $lang['pl_PL']['CMSMain_left.ss']['NEW'] = 'nowy'; $lang['pl_PL']['CMSMain_left.ss']['OPENBOX'] = 'kliknij aby otworzyć'; -$lang['pl_PL']['CMSMain_left.ss']['PAGEVERSIONH'] = 'Wersja historyczna strony'; +$lang['pl_PL']['CMSMain_left.ss']['PAGEVERSIONH'] = 'Wersja archiwalna strony'; $lang['pl_PL']['CMSMain_left.ss']['PUBLISHCONFIRM'] = 'Publikuj zaznaczone strony'; $lang['pl_PL']['CMSMain_left.ss']['SEARCH'] = 'Szukaj'; $lang['pl_PL']['CMSMain_left.ss']['SEARCHTITLE'] = 'Szukaj przez URL, Tytuł, Tytuł Menu i Zawartość'; $lang['pl_PL']['CMSMain_left.ss']['SELECTPAGESACTIONS'] = 'Zaznacz strony które chcesz zmienić i kliknij polecenie: '; +$lang['pl_PL']['CMSMain_left.ss']['SELECTPAGESDUP'] = 'Wybierz strony, które chcesz zduplikować, to, czy ich podstrony powinny zostać uwzględnione oraz gdzie chcesz umieścić duplikaty'; $lang['pl_PL']['CMSMain_left.ss']['SHOWONLYCHANGED'] = 'Pokaż tylko zmienione strony'; $lang['pl_PL']['CMSMain_left.ss']['SHOWUNPUB'] = 'pokaż nieopublikowane wersje'; $lang['pl_PL']['CMSMain_left.ss']['SITECONTENT TITLE'] = 'Zawartość i struktura strony'; @@ -153,13 +160,13 @@ $lang['pl_PL']['CMSMain_right.ss']['SUBMIT'] = 'przedstaw do akceptacji'; $lang['pl_PL']['CMSMain_right.ss']['WELCOMETO'] = 'Witamy w '; $lang['pl_PL']['CMSMain_versions.ss']['AUTHOR'] = 'Autor'; $lang['pl_PL']['CMSMain_versions.ss']['NOTPUB'] = 'Nie opublikowany'; -$lang['pl_PL']['CMSMain_versions.ss']['PUBR'] = 'Opublikowany'; +$lang['pl_PL']['CMSMain_versions.ss']['PUBR'] = 'Publikujący'; $lang['pl_PL']['CMSMain_versions.ss']['UNKNOWN'] = 'Nieznany'; $lang['pl_PL']['CMSMain_versions.ss']['WHEN'] = 'Kiedy'; $lang['pl_PL']['CMSRight.ss']['CHOOSEPAGE'] = 'Proszę wybrać stronę po lewej'; $lang['pl_PL']['CMSRight.ss']['ECONTENT'] = 'Edytuj zawartość'; $lang['pl_PL']['CMSRight.ss']['WELCOMETO'] = 'Witamy w'; -$lang['pl_PL']['CommentList.ss']['CREATEDW'] = 'Komentarze są tworzone każdorazowo gdy \'przepływ zadań\' jest przedsiębrane - Opublikuj, Odrzuć, Zatwierdź'; +$lang['pl_PL']['CommentList.ss']['CREATEDW'] = 'Komentarze są tworzone za każdym razem, gdy jest wykonywane jedno z poleceń - Opublikuj, Odrzuć, Zatwierdź'; $lang['pl_PL']['CommentList.ss']['NOCOM'] = 'Nie ma komentarzy na tej stronie'; $lang['pl_PL']['GenericDataAdmin_left.ss']['ADDLISTING'] = 'Dodaj listę'; $lang['pl_PL']['GenericDataAdmin_left.ss']['SEARCHLISTINGS'] = 'Szukaj listy'; @@ -177,30 +184,30 @@ $lang['pl_PL']['LeftAndMain']['CHANGEDURL'] = 'Zmieniony URL to \'%s\''; $lang['pl_PL']['LeftAndMain']['COMMENTS'] = 'Komentarze'; $lang['pl_PL']['LeftAndMain']['FILESIMAGES'] = 'Pliki i Obrazy'; $lang['pl_PL']['LeftAndMain']['HELP'] = 'Pomoc'; -$lang['pl_PL']['LeftAndMain']['NEWSLETTERS'] = 'Newsletter'; +$lang['pl_PL']['LeftAndMain']['NEWSLETTERS'] = 'Newslettery'; $lang['pl_PL']['LeftAndMain']['PAGETYPE'] = 'Rodzaj strony:'; -$lang['pl_PL']['LeftAndMain']['PERMAGAIN'] = 'Zostałeś zalogowany do CMS. Jeśli chcesz zalogować się ponownie, wpisz username i hasło poniżej'; -$lang['pl_PL']['LeftAndMain']['PERMALREADY'] = 'Przepraszam, ale nie masz dostępu do tej części CMS. Jeśli chcesz zaloguj się jako inny użytkownik poniżej.'; -$lang['pl_PL']['LeftAndMain']['PERMDEFAULT'] = 'Proszę wybrać metodę potwierdzenia autentyczności i uruchomić referencje dostępu do CMS.'; -$lang['pl_PL']['LeftAndMain']['PLEASESAVE'] = 'Proszę zapisać stronę: Ta strona nie może być nadpisana ponieważ została już zapisana.'; +$lang['pl_PL']['LeftAndMain']['PERMAGAIN'] = 'Zostałeś wylogowany z CMSa. Jeśli chcesz zalogować się ponownie, wpisz username i hasło poniżej'; +$lang['pl_PL']['LeftAndMain']['PERMALREADY'] = 'Niestety nie masz dostępu do tej części CMS. Jeśli chcesz zaloguj się jako inny użytkownik poniżej.'; +$lang['pl_PL']['LeftAndMain']['PERMDEFAULT'] = 'Proszę wybrać metodę identyfikacji i wpisać swoje dane, aby uruchomić CMSa.'; +$lang['pl_PL']['LeftAndMain']['PLEASESAVE'] = 'Proszę zapisać stronę: Ta strona nie może być nadpisana ponieważ nie została jeszcze zapisana.'; $lang['pl_PL']['LeftAndMain']['REPORTS'] = 'Raporty'; -$lang['pl_PL']['LeftAndMain']['REQUESTERROR'] = 'Błąd żądania'; +$lang['pl_PL']['LeftAndMain']['REQUESTERROR'] = 'Błąd zapytania'; $lang['pl_PL']['LeftAndMain']['SAVED'] = 'zapisane'; $lang['pl_PL']['LeftAndMain']['SAVEDUP'] = 'Zapisane'; $lang['pl_PL']['LeftAndMain']['SECURITY'] = 'Bezpieczeństwo'; $lang['pl_PL']['LeftAndMain']['SITECONTENT'] = 'Zawartość strony'; $lang['pl_PL']['LeftAndMain']['SITECONTENTLEFT'] = 'Zawartość strony'; $lang['pl_PL']['LeftAndMain.ss']['APPVERSIONTEXT1'] = 'To jest'; -$lang['pl_PL']['LeftAndMain.ss']['APPVERSIONTEXT2'] = 'wersja, której aktualnie używasz, technicznie jest gałęzią CVS'; +$lang['pl_PL']['LeftAndMain.ss']['APPVERSIONTEXT2'] = 'wersja, której aktualnie używasz, jest gałęzią CVS'; $lang['pl_PL']['LeftAndMain.ss']['ARCHS'] = 'Archiwalne strony'; $lang['pl_PL']['LeftAndMain.ss']['DRAFTS'] = 'Wersje robocze'; $lang['pl_PL']['LeftAndMain.ss']['EDIT'] = 'Edytuj'; $lang['pl_PL']['LeftAndMain.ss']['EDITPROFILE'] = 'Profil'; -$lang['pl_PL']['LeftAndMain.ss']['LOADING'] = 'Wczytuję ...'; +$lang['pl_PL']['LeftAndMain.ss']['LOADING'] = 'Wczytywanie...'; $lang['pl_PL']['LeftAndMain.ss']['LOGGEDINAS'] = 'Zalogowany jako'; $lang['pl_PL']['LeftAndMain.ss']['LOGOUT'] = 'Wyloguj'; $lang['pl_PL']['LeftAndMain.ss']['PUBLIS'] = 'Opublikowane strony'; -$lang['pl_PL']['LeftAndMain.ss']['SSWEB'] = 'Silverstripe Website'; +$lang['pl_PL']['LeftAndMain.ss']['SSWEB'] = 'Strona Silverstripe'; $lang['pl_PL']['LeftAndMain.ss']['SWITCHTO'] = 'Przełącz na:'; $lang['pl_PL']['LeftAndMain.ss']['VIEWPAGEIN'] = 'Widok strony:'; $lang['pl_PL']['LeftAndMain']['STATISTICS'] = 'Statystyki'; @@ -208,16 +215,16 @@ $lang['pl_PL']['LeftAndMain']['STATUSTO'] = 'Status zmieniony na \'%s\''; $lang['pl_PL']['LeftAndMain']['TREESITECONTENT'] = 'Zawartość strony'; $lang['pl_PL']['MemberList']['ADD'] = 'Dodaj'; $lang['pl_PL']['MemberList']['EMAIL'] = 'Email'; -$lang['pl_PL']['MemberList']['FILTERBYG'] = 'Szukaj w grupach'; -$lang['pl_PL']['MemberList']['FN'] = 'Pierwsza kategoria'; +$lang['pl_PL']['MemberList']['FILTERBYG'] = 'Szukaj według grup'; +$lang['pl_PL']['MemberList']['FN'] = 'Imię'; $lang['pl_PL']['MemberList']['PASSWD'] = 'Hasło'; $lang['pl_PL']['MemberList']['SEARCH'] = 'Szukaj'; -$lang['pl_PL']['MemberList']['SN'] = 'Podkategoria'; +$lang['pl_PL']['MemberList']['SN'] = 'Nazwisko'; $lang['pl_PL']['MemberList.ss']['FILTER'] = 'Filtr'; -$lang['pl_PL']['MemberList_Table.ss']['EMAIL'] = 'Email adres'; -$lang['pl_PL']['MemberList_Table.ss']['FN'] = 'Pierwsza kategoria'; +$lang['pl_PL']['MemberList_Table.ss']['EMAIL'] = 'Adres e-mail'; +$lang['pl_PL']['MemberList_Table.ss']['FN'] = 'Imię'; $lang['pl_PL']['MemberList_Table.ss']['PASSWD'] = 'Hasło'; -$lang['pl_PL']['MemberList_Table.ss']['SN'] = 'Podkategoria'; +$lang['pl_PL']['MemberList_Table.ss']['SN'] = 'Nazwisko'; $lang['pl_PL']['MemberTableField']['ADD'] = 'Dodaj'; $lang['pl_PL']['MemberTableField']['ADDEDTOGROUP'] = 'Dodaj użytkownika do grupy'; $lang['pl_PL']['MemberTableField.ss']['ADDNEW'] = 'Dodaj nowość'; @@ -229,7 +236,7 @@ $lang['pl_PL']['NewsletterAdmin']['MEWDRAFTMEWSL'] = 'Nowe oczekujące newslette $lang['pl_PL']['NewsletterAdmin']['NEWLIST'] = 'Nowa lista mailingowa'; $lang['pl_PL']['NewsletterAdmin']['NEWNEWSLTYPE'] = 'Nowy rodzaj newslettera'; $lang['pl_PL']['NewsletterAdmin']['NEWSLTYPE'] = 'Rodzaj newslettera'; -$lang['pl_PL']['NewsletterAdmin']['PLEASEENTERMAIL'] = 'Proszę wprowadź email adres'; +$lang['pl_PL']['NewsletterAdmin']['PLEASEENTERMAIL'] = 'Proszę wprowadź adres e-mail'; $lang['pl_PL']['NewsletterAdmin']['RESEND'] = 'Prześlij ponownie'; $lang['pl_PL']['NewsletterAdmin']['SAVE'] = 'Zapisz'; $lang['pl_PL']['NewsletterAdmin']['SAVED'] = 'Zapisane'; @@ -237,7 +244,7 @@ $lang['pl_PL']['NewsletterAdmin']['SEND'] = 'Wyślij ...'; $lang['pl_PL']['NewsletterAdmin']['SENDING'] = 'Wysyłanie emaili ...'; $lang['pl_PL']['NewsletterAdmin']['SENTTESTTO'] = 'Wysłano test do'; $lang['pl_PL']['NewsletterAdmin']['SHOWCONTENTS'] = 'Pokaż zawartość'; -$lang['pl_PL']['NewsletterAdmin_BouncedList.ss']['EMADD'] = 'Adres email'; +$lang['pl_PL']['NewsletterAdmin_BouncedList.ss']['EMADD'] = 'Adres e-mail'; $lang['pl_PL']['NewsletterAdmin_BouncedList.ss']['HAVEBOUNCED'] = 'Email został odrzucony'; $lang['pl_PL']['NewsletterAdmin_BouncedList.ss']['NOBOUNCED'] = 'Brak odrzuconych maili'; $lang['pl_PL']['NewsletterAdmin_BouncedList.ss']['UNAME'] = 'Nazwa użytkownika'; @@ -247,7 +254,7 @@ $lang['pl_PL']['NewsletterAdmin_left.ss']['CREATE'] = 'Stwórz ...'; $lang['pl_PL']['NewsletterAdmin_left.ss']['DEL'] = 'Usuń ...'; $lang['pl_PL']['NewsletterAdmin_left.ss']['DELETEDRAFTS'] = 'Usuń zaznaczone wersje robocze'; $lang['pl_PL']['NewsletterAdmin_left.ss']['GO'] = 'Idź'; -$lang['pl_PL']['NewsletterAdmin_left.ss']['NEWSLETTERS'] = 'Newsletter'; +$lang['pl_PL']['NewsletterAdmin_left.ss']['NEWSLETTERS'] = 'Newslettery'; $lang['pl_PL']['NewsletterAdmin_left.ss']['SELECTDRAFTS'] = 'Wybierz wersje robocze które chcesz usunąć i kliknij przycisk poniżej'; $lang['pl_PL']['NewsletterAdmin_right.ss']['CANCEL'] = 'Anuluj'; $lang['pl_PL']['NewsletterAdmin_right.ss']['ENTIRE'] = 'Wyślij do całej listy mailingowej'; @@ -259,18 +266,18 @@ $lang['pl_PL']['NewsletterAdmin_right.ss']['WELCOME2'] = 'Administracja newslett $lang['pl_PL']['NewsletterAdmin_SiteTree.ss']['DRAFTS'] = 'Oczekujące'; $lang['pl_PL']['NewsletterAdmin_SiteTree.ss']['MAILLIST'] = 'Lista mailingowa'; $lang['pl_PL']['NewsletterAdmin_SiteTree.ss']['SENT'] = 'Wyślij pozycję'; -$lang['pl_PL']['NewsletterAdmin_UnsubscribedList.ss']['NOUNSUB'] = 'Nie ma użytkowników nieprenumerujących tego newslettera'; +$lang['pl_PL']['NewsletterAdmin_UnsubscribedList.ss']['NOUNSUB'] = 'Nie ma użytkowników nie zapisanych do tego newslettera'; $lang['pl_PL']['NewsletterAdmin_UnsubscribedList.ss']['UNAME'] = 'Nazwa użytkownika'; -$lang['pl_PL']['NewsletterAdmin_UnsubscribedList.ss']['UNSUBON'] = 'Niezaprenumerowany'; +$lang['pl_PL']['NewsletterAdmin_UnsubscribedList.ss']['UNSUBON'] = 'Nie zapisany'; $lang['pl_PL']['NewsletterList.ss']['CHOOSEDRAFT1'] = 'Proszę wybrać wersje robocze po lewej lub'; $lang['pl_PL']['NewsletterList.ss']['CHOOSEDRAFT2'] = 'dodaj jeden'; $lang['pl_PL']['NewsletterList.ss']['CHOOSESENT'] = 'Proszę wybrać pozycję wyślij po lewej'; -$lang['pl_PL']['Newsletter_RecipientImportField.ss']['CHANGED'] = 'Numer zmienionych detali:'; +$lang['pl_PL']['Newsletter_RecipientImportField.ss']['CHANGED'] = 'Ilość zmienionych detali:'; $lang['pl_PL']['Newsletter_RecipientImportField.ss']['IMPORTED'] = 'Nowi użytkownicy zaimportowani:'; $lang['pl_PL']['Newsletter_RecipientImportField.ss']['IMPORTNEW'] = 'zaimportowani nowi użytkownicy'; -$lang['pl_PL']['Newsletter_RecipientImportField.ss']['SEC'] = 'drudzy'; +$lang['pl_PL']['Newsletter_RecipientImportField.ss']['SEC'] = 'sekundy'; $lang['pl_PL']['Newsletter_RecipientImportField.ss']['SKIPPED'] = 'Archiwalne dokumenty:'; -$lang['pl_PL']['Newsletter_RecipientImportField.ss']['TIME'] = 'Lista pobranych: '; +$lang['pl_PL']['Newsletter_RecipientImportField.ss']['TIME'] = 'Czas zużyty:'; $lang['pl_PL']['Newsletter_RecipientImportField.ss']['UPDATED'] = 'Uaktualnieni użytkownicy:'; $lang['pl_PL']['Newsletter_RecipientImportField_Table.ss']['CONTENTSOF'] = 'Zawartość'; $lang['pl_PL']['Newsletter_RecipientImportField_Table.ss']['NO'] = 'Anuluj'; @@ -278,10 +285,14 @@ $lang['pl_PL']['Newsletter_RecipientImportField_Table.ss']['RECIMPORTED'] = 'Odb $lang['pl_PL']['Newsletter_RecipientImportField_Table.ss']['YES'] = 'Potwierdź'; $lang['pl_PL']['Newsletter_SentStatusReport.ss']['DATE'] = 'Data'; $lang['pl_PL']['Newsletter_SentStatusReport.ss']['EMAIL'] = 'Email'; -$lang['pl_PL']['Newsletter_SentStatusReport.ss']['FN'] = 'Pierwsza kategoria'; -$lang['pl_PL']['Newsletter_SentStatusReport.ss']['NEWSNEVERSENT'] = 'Newsletter nigdy nie będzie wysłany do następujących użytkowników'; +$lang['pl_PL']['Newsletter_SentStatusReport.ss']['FN'] = 'Imię'; +$lang['pl_PL']['Newsletter_SentStatusReport.ss']['NEWSNEVERSENT'] = 'Newsletter nigdy nie był wysłany do następujących użytkowników'; $lang['pl_PL']['Newsletter_SentStatusReport.ss']['RES'] = 'Rezultat'; -$lang['pl_PL']['Newsletter_SentStatusReport.ss']['SN'] = 'Podkategoria'; +$lang['pl_PL']['Newsletter_SentStatusReport.ss']['SENDBOUNCED'] = 'Wysłanie do następujących odbiorców zostało odrzucone'; +$lang['pl_PL']['Newsletter_SentStatusReport.ss']['SENDFAIL'] = 'Wysyłanie do następujących odbiorców nie powiodło się'; +$lang['pl_PL']['Newsletter_SentStatusReport.ss']['SENTOK'] = 'Wysyłanie do następujących odbiorców powiodło się'; +$lang['pl_PL']['Newsletter_SentStatusReport.ss']['SN'] = 'Nazwisko'; +$lang['pl_PL']['PageComment']['COMMENTBY'] = 'Komentarz \'%s\' do %s'; $lang['pl_PL']['PageCommentInterface.ss']['COMMENTS'] = 'Komentarze'; $lang['pl_PL']['PageCommentInterface.ss']['NEXT'] = 'następny'; $lang['pl_PL']['PageCommentInterface.ss']['NOCOMMENTSYET'] = 'Nikt nie skomentował jeszcze tej strony'; @@ -293,7 +304,7 @@ $lang['pl_PL']['PageCommentInterface_singlecomment.ss']['PBY'] = 'Dodane przez'; $lang['pl_PL']['PageCommentInterface_singlecomment.ss']['REMCOM'] = 'zmień ten komentarz'; $lang['pl_PL']['ReportAdmin_left.ss']['REPORTS'] = 'Raporty'; $lang['pl_PL']['ReportAdmin_right.ss']['WELCOME1'] = 'Witamy w'; -$lang['pl_PL']['ReportAdmin_right.ss']['WELCOME2'] = 'Raport sesji. Proszę wybrać określony raport po lewej'; +$lang['pl_PL']['ReportAdmin_right.ss']['WELCOME2'] = 'Sekcja raportów. Proszę wybrać jeden z raportów po lewej'; $lang['pl_PL']['ReportAdmin_SiteTree.ss']['REPORTS'] = 'Raporty'; $lang['pl_PL']['SecurityAdmin']['ADDMEMBER'] = 'Dodaj użytkownika'; $lang['pl_PL']['SecurityAdmin']['ADVANCEDONLY'] = 'Ta sekcja przeznaczona jest tylko dla zaawansowanych użytkowników. Zobacz tę stronę aby uzyskać więcej informacji.'; @@ -306,13 +317,14 @@ $lang['pl_PL']['SecurityAdmin_left.ss']['DELGROUPS'] = 'Usuń zaznaczone grupy'; $lang['pl_PL']['SecurityAdmin_left.ss']['GO'] = 'Idź'; $lang['pl_PL']['SecurityAdmin_left.ss']['SECGROUPS'] = 'Grupa bezpieczeństwa'; $lang['pl_PL']['SecurityAdmin_left.ss']['SELECT'] = 'Zaznacz strony które chcesz usunąć i kliknij przycisk poniżej'; +$lang['pl_PL']['SecurityAdmin_left.ss']['TOREORG'] = 'Aby zmienić układ witryny, przeciągnij strony w odpowiadające Ci miejsca.'; $lang['pl_PL']['SecurityAdmin_right.ss']['WELCOME1'] = 'Witamy w'; -$lang['pl_PL']['SecurityAdmin_right.ss']['WELCOME2'] = 'Administracja sekcją bezpieczeństwa. Proszę wybrać grupę po lewej'; +$lang['pl_PL']['SecurityAdmin_right.ss']['WELCOME2'] = 'Sekcja administracji bezpieczeństwem. Proszę wybrać jedną z grup po lewej'; $lang['pl_PL']['SideReport']['EMPTYPAGES'] = 'Puste strony'; $lang['pl_PL']['SideReport']['LAST2WEEKS'] = 'Strony zmienione w ostatnich 2 tygodniach'; $lang['pl_PL']['SideReport']['REPEMPTY'] = '%s raport jest pusty'; $lang['pl_PL']['StaticExporter']['BASEURL'] = 'Podstawowy URL'; -$lang['pl_PL']['StaticExporter']['EXPORTTO'] = 'Eksportuj ten folder'; +$lang['pl_PL']['StaticExporter']['EXPORTTO'] = 'Eksportuj do tego folderu'; $lang['pl_PL']['StaticExporter']['FOLDEREXPORT'] = 'Folder przeniesiony do'; $lang['pl_PL']['StaticExporter']['NAME'] = 'Statyczny eksport'; $lang['pl_PL']['StaticExporter']['ONETHATEXISTS'] = 'Proszę wybierz dostępny folder'; @@ -326,6 +338,6 @@ $lang['pl_PL']['ThumbnailStripField.ss']['CHOOSEFOLDER'] = '(Wybierz powyższy f '; $lang['pl_PL']['ViewArchivedEmail.ss']['CANACCESS'] = 'Masz dostęp do archiwalnej strony pod adresem:'; $lang['pl_PL']['ViewArchivedEmail.ss']['HAVEASKED'] = 'Zobacz zawartość naszej strony na'; -$lang['pl_PL']['WaitingOn.ss']['ATO'] = 'wyznaczone do'; +$lang['pl_PL']['WaitingOn.ss']['ATO'] = 'przypisane do'; ?> \ No newline at end of file diff --git a/lang/pt_BR.php b/lang/pt_BR.php index 01d334a8..0305755d 100644 --- a/lang/pt_BR.php +++ b/lang/pt_BR.php @@ -4,7 +4,11 @@ i18n::include_locale_file('cms', 'en_US'); global $lang; -$lang['pt_BR'] = $lang['en_US']; +if(array_key_exists('pt_BR', $lang) && is_array($lang['pt_BR'])) { + $lang['pt_BR'] = array_merge($lang['en_US'], $lang['pt_BR']); +} else { + $lang['pt_BR'] = $lang['en_US']; +} $lang['pt_BR']['AssetAdmin']['CHOOSEFILE'] = 'Selecione Arquivo'; $lang['pt_BR']['AssetAdmin']['CONTENTMODBY'] = 'Conteúdos modificáveis por'; diff --git a/lang/pt_PT.php b/lang/pt_PT.php index 900bbe42..c22f0006 100644 --- a/lang/pt_PT.php +++ b/lang/pt_PT.php @@ -4,7 +4,11 @@ i18n::include_locale_file('cms', 'en_US'); global $lang; -$lang['pt_PT'] = $lang['en_US']; +if(array_key_exists('pt_PT', $lang) && is_array($lang['pt_PT'])) { + $lang['pt_PT'] = array_merge($lang['en_US'], $lang['pt_PT']); +} else { + $lang['pt_PT'] = $lang['en_US']; +} $lang['pt_PT']['AssetAdmin']['CHOOSEFILE'] = 'Escolha ficheiro '; $lang['pt_PT']['AssetAdmin']['CONTENTMODBY'] = 'Conteúdo modificável por'; @@ -345,4 +349,321 @@ $lang['pt_PT']['ViewArchivedEmail.ss']['CANACCESS'] = 'Pode aceder ao site arqui $lang['pt_PT']['ViewArchivedEmail.ss']['HAVEASKED'] = 'Pediu para ver o conteúdo do seu site em'; $lang['pt_PT']['WaitingOn.ss']['ATO'] = 'atribuído a'; +// --- New New New + +$lang['pt_PT']['Page']['SINGULARNAME'] = 'Página'; +$lang['pt_PT']['Page']['PLURALNAME'] = 'Páginas'; +$lang['pt_PT']['ErrorPage']['SINGULARNAME'] = 'Página de Erro'; +$lang['pt_PT']['ErrorPage']['PLURALNAME'] = 'Páginas de Erro'; +$lang['pt_PT']['UserDefinedForm']['SINGULARNAME'] = 'Formulário Definido pelo Utilizador'; +$lang['pt_PT']['UserDefinedForm']['PLURALNAME'] = 'Formulários Definidos pelo Utilizador'; +$lang['pt_PT']['RedirectorPage']['SINGULARNAME'] = 'Página de Redireccionamento'; +$lang['pt_PT']['RedirectorPage']['PLURALNAME'] = 'Páginas de Redireccionamento'; +$lang['pt_PT']['VirtualPage']['SINGULARNAME'] = 'Página Virtual'; +$lang['pt_PT']['VirtualPage']['PLURALNAME'] = 'Páginas Virtuais'; +$lang['pt_PT']['SubscribeForm']['SINGULARNAME'] = 'Página de Subscrição'; +$lang['pt_PT']['SubscribeForm']['PLURALNAME'] = 'Páginas de Subscrição'; + +// ThumbnailStripField.php +$lang['pt_PT']['ThumbnailStripField']['NOIMAGESFOUND'] = 'Nenhuma imagem encontrada em'; + +// StatisticsAdmin.php +$lang['pt_PT']['StatisticsAdmin']['WELCOME'] = 'Seleccione um tipo de relatório na esquerda para ver as estatísticas do site mais detalhadamente'; + +// SecurityAdmin.php +$lang['pt_PT']['SecurityAdmin']['MEMBERS'] = 'Membros'; +$lang['pt_PT']['SecurityAdmin']['GROUPNAME'] = 'Nome do Grupo'; +$lang['pt_PT']['SecurityAdmin']['PERMISSIONS'] = 'Permissões'; +$lang['pt_PT']['SecurityAdmin']['CODE'] = 'Código'; +$lang['pt_PT']['SecurityAdmin']['OPTIONALID'] = 'ID Opcional'; +$lang['pt_PT']['SecurityAdmin']['EDITPERMISSIONS'] = 'Editar permissões em cada grupo'; + +// NewsletterAdmin.php +$lang['pt_PT']['NewsletterAdmin']['NLSETTINGS'] = 'Definições da Newsletter'; +$lang['pt_PT']['NewsletterAdmin']['TEMPLATE'] = 'Modelo'; +$lang['pt_PT']['NewsletterAdmin']['SAVE'] = 'Gravar'; +$lang['pt_PT']['NewsletterAdmin']['RECIPIENTS'] = 'Recipientes'; +$lang['pt_PT']['NewsletterAdmin']['IMPORT'] = 'Importar'; +$lang['pt_PT']['NewsletterAdmin']['UNSUBSCRIBERS'] = 'Subscrições Removidas'; +$lang['pt_PT']['NewsletterAdmin']['BOUNCED'] = 'Devolvidos'; +$lang['pt_PT']['NewsletterAdmin']['REMOVEDSUCCESS'] = 'foi removido da lista de email'; +$lang['pt_PT']['NewsletterAdmin']['NONLSPECIFIED'] = 'Nenhuma lista de email especificada'; +$lang['pt_PT']['NewsletterAdmin']['ADDEDTOBL'] = 'foi adicionado á lista negra'; +$lang['pt_PT']['NewsletterAdmin']['REMOVEDFROMBL'] = 'foi removido da lista negra'; +$lang['pt_PT']['NewsletterAdmin']['IMPORTFROM'] = 'Importar do ficheiro'; + +// MemberTableField.php +$lang['pt_PT']['MemberTableField']['FIRSTNAME'] = 'Primeiro Nome'; +$lang['pt_PT']['MemberTableField']['SURNAME'] = 'Último Nome'; +$lang['pt_PT']['MemberTableField']['EMAIL'] = 'Email'; +$lang['pt_PT']['MemberTableField']['SEARCH'] = 'Pesquisa'; +$lang['pt_PT']['MemberTableField']['ORDERBY'] = 'Ordenar por'; +$lang['pt_PT']['MemberTableField']['ASC'] = 'Ascendente'; +$lang['pt_PT']['MemberTableField']['DESC'] = 'Descendente'; +$lang['pt_PT']['MemberTableField']['ANYGROUP'] = 'Qualquer Grupo'; +$lang['pt_PT']['MemberTableField']['FILTERBYGROUP'] = 'Filtrar por Grupo'; +$lang['pt_PT']['MemberTableField']['FILTER'] = 'Filtrar'; +$lang['pt_PT']['MemberTableField']['ADDINGFIELD'] = 'A adicionar campo'; + +// MemberTableField.php +$lang['pt_PT']['MemberList']['ASC'] = 'Ascendente'; +$lang['pt_PT']['MemberList']['DESC'] = 'Descendente'; +$lang['pt_PT']['MemberList']['ORDERBY'] = 'Ordenar por'; +$lang['pt_PT']['MemberList']['ANYGROUP'] = 'Qualquer Grupo'; + +// ImageEditor.php +$lang['pt_PT']['ImageEditor']['ERROR'] = 'Erro:'; + +// GenericDataAdmin.php +$lang['pt_PT']['GenericDataAdmin']['EXPORTCSV'] = 'Exportar em CSV'; +$lang['pt_PT']['GenericDataAdmin']['CREATE'] = 'Criar'; +$lang['pt_PT']['GenericDataAdmin']['GO'] = 'Ir'; +$lang['pt_PT']['GenericDataAdmin']['SAVE'] = 'Gravar'; +$lang['pt_PT']['GenericDataAdmin']['DELETE'] = 'Apagar'; +$lang['pt_PT']['GenericDataAdmin']['FOUND'] = 'encontrados:'; +$lang['pt_PT']['GenericDataAdmin']['CHOOSECRIT'] = 'Por favor escolha um critério para a pesquisa e clique em \'Ir\'.'; +$lang['pt_PT']['GenericDataAdmin']['CHOOSECRIT'] = 'Nenhuma ocorrência de %s encontrada.'; +$lang['pt_PT']['GenericDataAdmin']['SAVED'] = 'Gravado'; +$lang['pt_PT']['GenericDataAdmin']['DELETEDSUCCESS'] = 'Apagado com sucesso'; + +// GenericDataAdmin.php +$lang['pt_PT']['CommentAdmin']['NAME'] = 'Nome'; +$lang['pt_PT']['CommentAdmin']['COMMENT'] = 'Comentário'; +$lang['pt_PT']['CommentAdmin']['COMMENTS'] = 'Comentários'; +$lang['pt_PT']['CommentAdmin']['DELETED'] = '% comentário(s) apagado(s).'; +$lang['pt_PT']['CommentAdmin']['MARKEDSPAM'] = '% comentário(s) marcados como spam.'; +$lang['pt_PT']['CommentAdmin']['MARKEDNOTSPAM'] = '% comentário(s) marcados como não sendo spam.'; +$lang['pt_PT']['CommentAdmin']['APPROVED'] = '% comentário(s) aprovado(s).'; + +// CMSMain.php +$lang['pt_PT']['CMSMain']['REMOVED'] = '\'%s\' Removido%s do site publicado'; +$lang['pt_PT']['CMSMain']['DESCREMOVED'] = 'e %s descendentes'; +$lang['pt_PT']['CMSMain']['REPORT'] = 'Relatório'; +$lang['pt_PT']['CMSMain']['ACCESS'] = 'Acesso a %s no CMS'; + +// AssetTableField.php +$lang['pt_PT']['AssetTableField']['URL'] = 'URL'; +$lang['pt_PT']['AssetTableField']['MAIN'] = 'Principal'; +$lang['pt_PT']['AssetTableField']['IMAGE'] = 'Imagem'; +$lang['pt_PT']['AssetTableField']['EDITIMAGE'] = 'Editar esta Imagem'; +$lang['pt_PT']['AssetTableField']['GALLERYOPTIONS'] = 'Opções da Galeria'; +$lang['pt_PT']['AssetTableField']['CAPTION'] = 'Texto Alternativo'; +$lang['pt_PT']['AssetTableField']['POPUPWIDTH'] = 'Largura da Janela Popup'; +$lang['pt_PT']['AssetTableField']['POPUPHEIGHT'] = 'Altura da Janela Popup'; +$lang['pt_PT']['AssetTableField']['SWFFILEOPTIONS'] = 'Opções de Ficheiro Flash'; +$lang['pt_PT']['AssetTableField']['ISFLASH'] = 'É um documento Flash'; +$lang['pt_PT']['AssetTableField']['DIMLIMIT'] = 'Limitar as dimensões na Janela de Popup'; + +// AssetAdmin.php +$lang['pt_PT']['AssetAdmin']['NOTEMP'] = 'Não existe uma pasta temporária para envio de ficheiros. Por favor adicione um valor em upload_tmp_dir no php.ini.'; +$lang['pt_PT']['AssetAdmin']['URL'] = 'URL'; +$lang['pt_PT']['AssetAdmin']['NOWBROKEN'] = ' As seguintes páginas contêm agora links quebrados:'; +$lang['pt_PT']['AssetAdmin']['NOWBROKEN2'] = 'Os respectivos proprietários receberam um email e brevemente as páginas serão corrigidas.'; +$lang['pt_PT']['AssetAdmin']['FOLDERSDELETED'] = 'pastas apagadas.'; +$lang['pt_PT']['AssetAdmin']['FOLDERDELETED'] = 'pasta apagada.'; +$lang['pt_PT']['AssetAdmin']['THUMBSDELETED'] = 'Todas as miniaturas não usadas foram apagadas.'; + +// UserDefinedForm.php +$lang['pt_PT']['UserDefinedForm']['ONCOMPLETE'] = 'Ao Submeter'; +$lang['pt_PT']['UserDefinedForm']['ONCOMPLETEMESSAGE'] = '

    Obrigado, recebemos a sua submissão.

    '; +$lang['pt_PT']['UserDefinedForm']['ONCOMPLETELABEL'] = 'Mostrar após inserção'; +$lang['pt_PT']['UserDefinedForm']['SUBMISSIONS'] = 'Submissões'; +$lang['pt_PT']['UserDefinedForm']['FORM'] = 'Formulário'; +$lang['pt_PT']['UserDefinedForm']['RECEIVED'] = 'Submissões recebidas'; +$lang['pt_PT']['UserDefinedForm']['SUBMIT'] = 'Submeter'; +$lang['pt_PT']['UserDefinedForm']['NORESULTS'] = 'Nenhum resultado encontrado.'; +$lang['pt_PT']['UserDefinedForm']['TEXTONSUBMIT'] = 'Texto no botão de inserir formulário'; +$lang['pt_PT']['UserDefinedForm_SubmittedFormEmail']['EMAILSUBJECT'] = 'Inserção de formulário'; + +// BatchProcess.php +$lang['pt_PT']['BatchProcess_Controller']['ERROR'] = 'Erro: devido a um erro é impossivel continuar com o processo.'; + +// Newsletter.php +$lang['pt_PT']['Newsletter']['NEWSLETTER'] = 'Email'; +$lang['pt_PT']['Newsletter']['SUBJECT'] = 'Assunto'; +$lang['pt_PT']['Newsletter']['CONTENT'] = 'Conteúdo'; +$lang['pt_PT']['Newsletter']['SENTREPORT'] = 'Relatório de Estado de envio'; +$lang['pt_PT']['Newsletter']['SENTAT'] = 'Enviado Em'; + +// NewsletterType.php +$lang['pt_PT']['NewsletterType']['MAILINGLIST'] = 'Lista de Email:'; +$lang['pt_PT']['NewsletterType']['NEWSLETTERTYPE'] = 'Tipo de Lista de email'; +$lang['pt_PT']['NewsletterType']['SENDFROM'] = 'Enviar newsletter de'; +$lang['pt_PT']['NewsletterType']['DRAFTS'] = 'Rascunhos'; +$lang['pt_PT']['NewsletterType']['DRAFT'] = 'Rascunho'; +$lang['pt_PT']['NewsletterType']['SENT'] = 'Enviado'; +$lang['pt_PT']['NewsletterType']['SEND'] = 'Enviar'; +$lang['pt_PT']['NewsletterType']['UNSUBSCRIBED'] = 'Assinaturas Removidas'; +$lang['pt_PT']['NewsletterType']['BOUNCED'] = 'Devolvidos'; +$lang['pt_PT']['NewsletterType']['RECIPIENTS'] = 'Recipientes'; +$lang['pt_PT']['NewsletterType']['IMPORT'] = 'Importar'; +$lang['pt_PT']['NewsletterType']['IMPORTFROM'] = 'Importar do ficheiro'; +$lang['pt_PT']['NewsletterType']['TEMPLATE'] = 'Modelos'; + +// Unsubscribe.php +$lang['pt_PT']['Unsubscribe']['SUCCESS'] = 'Obrigado. Foi removido dos grupos seleccionados'; +$lang['pt_PT']['Unsubscribe']['NOMLSELECTED'] = 'Tem de seleccionar pelo menos uma lista de email para remover a subscrição'; +$lang['pt_PT']['Unsubscribe']['SUBSCRIBEDTO'] = 'Tem as seguintes lista de email assinadas'; +$lang['pt_PT']['Unsubscribe']['UNSUBSCRIBE'] = 'Remover a Assinatura'; +$lang['pt_PT']['Unsubscribe']['NOTSUBSCRIBED'] = 'Desculpe mas o email %s não se encontra em nenhuma das nossas listas de email.'; +$lang['pt_PT']['Unsubscribe']['EMAILADDR'] = 'Endereço de Email'; +$lang['pt_PT']['Unsubscribe']['SHOWLISTS'] = 'Mostrar Listas'; +$lang['pt_PT']['Unsubscribe']['REMOVESUCCESS'] = 'Obrigado. O email %s não irá receber mais mensagens da lista de email %s'; + +// Unsubscribe.php +$lang['pt_PT']['TemplateList']['NONE'] = 'Nenhum'; + +// NEW NEW NEW NEW + +// WidgetEditor.ss +$lang['pt_PT']['WidgetEditor.ss']['DELETE'] = 'Apagar'; + +// WidgetAreaEditor.ss +$lang['pt_PT']['WidgetAreaEditor.ss']['AVAILABLE'] = 'Widgets Disponíveis'; +$lang['pt_PT']['WidgetAreaEditor.ss']['NOAVAIL'] = 'Não existem widgets disponóveis de momento.'; +$lang['pt_PT']['WidgetAreaEditor.ss']['INUSE'] = 'Widgets Actualmente em uso.'; +$lang['pt_PT']['WidgetAreaEditor.ss']['TOADD'] = 'Para adicionar Widgets arraste-as da esquerda para aqui.'; + +// PageCommentInterface_singlecomment.ss +$lang['pt_PT']['PageCommentInterface_singlecomment.ss']['APPROVE'] = 'Aprovar este comentário'; + +// Newsletter_SentStatusReport.ss +$lang['pt_PT']['Newsletter_SentStatusReport.ss']['FAILEDBL'] = 'Não houve envio para os seguintes recipientes porque estão na lista negra'; + +// Newsletter_RecipientReportField.ss +$lang['pt_PT']['Newsletter_RecipientReportField.ss']['MLRELOAD1'] = 'Para ver os novos membros na lista de recipientes, tem que'; +$lang['pt_PT']['Newsletter_RecipientReportField.ss']['MLRELOAD2'] = 'refrescar a lista'; + +// LeftAndMain.ss +$lang['pt_PT']['LeftAndMain.ss']['EDITINCMS'] = 'Editar esta página no editor de conteúdos'; +$lang['pt_PT']['LeftAndMain.ss']['VIEWINDRAFT'] = 'Vêr esta página no site de rascunho'; +$lang['pt_PT']['LeftAndMain.ss']['VIEWINPUBLISHED'] = 'Vêr esta página no site publicado'; + +// ImageEditor.ss +$lang['pt_PT']['ImageEditor.ss']['EXIT'] = 'sair'; +$lang['pt_PT']['ImageEditor.ss']['ACTIONS'] = 'acções'; +$lang['pt_PT']['ImageEditor.ss']['EDITFUNCTIONS'] = 'funções de edição'; +$lang['pt_PT']['ImageEditor.ss']['APPLY'] = 'aplicar'; +$lang['pt_PT']['ImageEditor.ss']['CURRENTACTION'] = 'acções actual'; + +// CMSMain_dialog.ss +$lang['pt_PT']['CMSMain_dialog.ss']['BUTTONNOTFOUND'] = 'Nome do botão não encontrado'; +$lang['pt_PT']['CMSMain_dialog.ss']['NOLINKED'] = 'windo.linkedObject não encontrado para o click do botão voltar à janela principal'; + +// StatisticsAdmin_left.ss +$lang['pt_PT']['StatisticsAdmin_left.ss']['VIEWS'] = 'Visualizações'; +$lang['pt_PT']['StatisticsAdmin_left.ss']['OS'] = 'Sistemas Operativos'; +$lang['pt_PT']['StatisticsAdmin_left.ss']['BROWSERS'] = 'Navegadores'; +$lang['pt_PT']['StatisticsAdmin_left.ss']['TRENDS'] = 'Tendências'; +$lang['pt_PT']['StatisticsAdmin_left.ss']['STATISTICS'] = 'Estatísticas'; + +// NewsletterAdmin_BouncedList.ss +$lang['pt_PT']['NewsletterAdmin_BouncedList.ss']['INSTRUCTIONS'] = 'Instrucções'; +$lang['pt_PT']['NewsletterAdmin_BouncedList.ss']['INSTRUCTIONS1'] = 'Retire o tick da caixa do email na lista negra para enviar email para o mesmo.'; +$lang['pt_PT']['NewsletterAdmin_BouncedList.ss']['INSTRUCTIONS2'] = 'Para removêr o email da lista de email click no icon'; +$lang['pt_PT']['NewsletterAdmin_BouncedList.ss']['BLACKLISTED'] = 'Na Lista Negra'; +$lang['pt_PT']['NewsletterAdmin_BouncedList.ss']['REASON'] = 'Razão:'; +$lang['pt_PT']['NewsletterAdmin_BouncedList.ss']['DATE'] = 'Data:'; + +// MemberList_PageControls.ss +$lang['pt_PT']['MemberList_PageControls.ss']['VIEWLAST'] = 'Vêr os últimos'; +$lang['pt_PT']['MemberList_PageControls.ss']['LASTMEMBERS'] = 'membros'; +$lang['pt_PT']['MemberList_PageControls.ss']['VIEWFIRST'] = 'Vêr os primeiros'; +$lang['pt_PT']['MemberList_PageControls.ss']['FIRSTMEMBERS'] = 'membros'; +$lang['pt_PT']['MemberList_PageControls.ss']['VIEWPREVIOUS'] = 'Vêr os membros'; +$lang['pt_PT']['MemberList_PageControls.ss']['PREVIOUSMEMBERS'] = 'anteriores'; +$lang['pt_PT']['MemberList_PageControls.ss']['DISPLAYING'] = 'A mostrar'; +$lang['pt_PT']['MemberList_PageControls.ss']['TO'] = 'até'; +$lang['pt_PT']['MemberList_PageControls.ss']['OF'] = 'de'; +$lang['pt_PT']['MemberList_PageControls.ss']['VIEWPREVIOUS'] = 'Vêr os próximos'; +$lang['pt_PT']['MemberList_PageControls.ss']['PREVIOUSMEMBERS'] = 'membros'; + +// GenericDataAdmin_right.ss +$lang['pt_PT']['GenericDataAdmin_right.ss']['WELCOME1'] = 'Bem-vindo a'; +$lang['pt_PT']['genericDataAdmin_right.ss']['WELCOME2'] = 'Por favor, escolha uma opção no painel da esquerda.'; + +// CommentTableField.ss +$lang['pt_PT']['CommentTableField.ss']['EDIT'] = 'editar'; +$lang['pt_PT']['CommentTableField.ss']['APPROVE'] = 'aprovar'; +$lang['pt_PT']['CommentTableField.ss']['SPAM'] = 'spam'; +$lang['pt_PT']['CommentTableField.ss']['HAM'] = 'não spam'; +$lang['pt_PT']['CommentTableField.ss']['DELETE'] = 'apagar'; + +// CommentAdmin_right.ss +$lang['pt_PT']['CommentAdmin_right.ss']['WELCOME1'] = 'Bem-vindo a'; +$lang['pt_PT']['CommentAdmin_right.ss']['WELCOME2'] = 'gestão de comentários. Por favor escolha uma pasta na esquerda.'; + + + + +// New2 + +$lang['pt_PT']['MemberTableField.ss']['DISPLAYING'] = 'A mostrar'; +$lang['pt_PT']['MemberTableField.ss']['TO'] = 'até'; +$lang['pt_PT']['MemberTableField.ss']['OF'] = 'de'; +$lang['pt_PT']['MemberTableField.ss']['EDITASSET'] = 'Editar ficheiro'; +$lang['pt_PT']['MemberTableField']['FIRSTNAME'] = 'Primeiro Nome'; +$lang['pt_PT']['MemberTableField']['SURNAME'] = 'Sobrenome'; +$lang['pt_PT']['MemberTableField']['EMAIL'] = 'Email'; + +$lang['pt_PT']['GenericDataAdmin']['CSVEXPORT'] = 'Exportar para CSV'; + +$lang['pt_PT']['SecurityAdmin']['VIEWUSER'] = 'Ver Utilizador'; + +$lang['pt_PT']['CMSMain']['ACCESSTO'] = array('Accesso a %s no CMS'); +$lang['pt_PT']['CMSMain']['ASSETADMINNAME'] = 'Ficheiros e Imagens'; +$lang['pt_PT']['CMSMain']['BULKLOADERADMINNAME'] = 'Acções em Volume'; +$lang['pt_PT']['CMSMain']['CMSMAINNAME'] = 'CMS Principal'; +$lang['pt_PT']['CMSMain']['COMMENTADMINNAME'] = 'Comentários'; +$lang['pt_PT']['CMSMain']['GENERICDATAADMINNAME'] = 'Dados Genéricos'; +$lang['pt_PT']['CMSMain']['LEFTANDMAINNAME'] = 'Esquerda e Principal'; +$lang['pt_PT']['CMSMain']['NEWSLETTERADMINNAME'] = 'Listas de Email'; +$lang['pt_PT']['CMSMain']['REPORTADMINNAME'] = 'Relatórios'; +$lang['pt_PT']['CMSMain']['SECURITYADMINNAME'] = 'Segurança'; +$lang['pt_PT']['CMSMain']['STATISTICSADMINNAME'] = 'Estatísticas'; + +$lang['pt_PT']['CommentAdmin']['APPROVEDCOMMENTS'] = 'Comentários Aprovados'; +$lang['pt_PT']['CommentAdmin']['WAITINGMODERATION'] = 'Comentários por Aprovar'; +$lang['pt_PT']['CommentAdmin']['SPAM'] = 'Spam'; +$lang['pt_PT']['CommentAdmin']['AUTHOR'] = 'Autor'; +$lang['pt_PT']['CommentAdmin']['COMMENT'] = 'Comentário'; +$lang['pt_PT']['CommentAdmin']['COMMENTS'] = 'Comentários'; +$lang['pt_PT']['CommentAdmin']['PAGE'] = 'Página'; +$lang['pt_PT']['CommentAdmin']['CREATED'] = 'Criado em'; +$lang['pt_PT']['CommentAdmin']['ACCEPT'] = 'Aceitar'; +$lang['pt_PT']['CommentAdmin']['MARKSPAM'] = 'Marcar como spam'; +$lang['pt_PT']['CommentAdmin']['MARKNOTSPAM'] = 'Marcar como não sendo spam'; +$lang['pt_PT']['CommentAdmin']['DELETE'] = 'Apagar'; +$lang['pt_PT']['CommentAdmin']['DELETEALL'] = 'Apagar Todos'; +$lang['pt_PT']['CommentAdmin']['NAME'] = 'Nome'; +$lang['pt_PT']['CommentAdmin']['EDIT'] = 'Editar'; + +$lang['pt_PT']['CommentTableField']['SEARCH'] = 'Procurar'; +$lang['pt_PT']['CommentTableField']['FILTER'] = 'Filtro'; + +$lang['pt_PT']['CommentTableField.ss']['DISPLAYING'] = 'A mostrar'; +$lang['pt_PT']['CommentTableField.ss']['TO'] = 'até'; +$lang['pt_PT']['CommentTableField.ss']['OF'] = 'de'; +$lang['pt_PT']['CommentTableField.ss']['NOITEMSFOUND'] = 'Nenhum item encontrado'; +$lang['pt_PT']['CommentTableField.ss']['EDIT'] = 'Editar'; +$lang['pt_PT']['CommentTableField.ss']['APPROVE'] = 'Aprovar este comentário'; +$lang['pt_PT']['CommentTableField.ss']['MARKASSPAM'] = 'Marcar como spam'; +$lang['pt_PT']['CommentTableField.ss']['MARKASNOTSPAM'] = 'Marcar como não sendo spam'; +$lang['pt_PT']['CommentTableField.ss']['DELETEROW'] = 'Apagar esta linha'; + +$lang['pt_PT']['CommentAdmin_left.ss']['COMMENTS'] = 'Comentários'; +$lang['pt_PT']['CommentAdmin_left.ss']['APPROVED'] = 'Aprovados'; +$lang['pt_PT']['CommentAdmin_left.ss']['WAITINGMODERATION'] = 'Por Aprovar'; +$lang['pt_PT']['CommentAdmin_left.ss']['SPAM'] = 'Spam'; + +$lang['pt_PT']['StatisticsAdmin']['SELECTREPORT'] = 'Seleccione um relatório da esquerda para ver as estatísticas do site mais detalhadamente'; + +$lang['pt_PT']['StatisticsAdmin_left.ss']['STATISTICS'] = 'Estatísticas'; +$lang['pt_PT']['StatisticsAdmin_left.ss']['VIEWS'] = 'Visualizações'; +$lang['pt_PT']['StatisticsAdmin_left.ss']['TRENDS'] = 'Tendências'; +$lang['pt_PT']['StatisticsAdmin_left.ss']['OS'] = 'Sistemas Operativos'; +$lang['pt_PT']['StatisticsAdmin_left.ss']['BROWSERS'] = 'Browsers'; + + + ?> \ No newline at end of file diff --git a/lang/ru_RU.php b/lang/ru_RU.php index 13eff8aa..2747b22f 100644 --- a/lang/ru_RU.php +++ b/lang/ru_RU.php @@ -4,7 +4,11 @@ i18n::include_locale_file('cms', 'en_US'); global $lang; -$lang['ru_RU'] = $lang['en_US']; +if(array_key_exists('ru_RU', $lang) && is_array($lang['ru_RU'])) { + $lang['ru_RU'] = array_merge($lang['en_US'], $lang['ru_RU']); +} else { + $lang['ru_RU'] = $lang['en_US']; +} $lang['ru_RU']['AssetAdmin']['CHOOSEFILE'] = 'Выберите файл'; $lang['ru_RU']['AssetAdmin']['CONTENTMODBY'] = 'Редакторы содержимого:'; diff --git a/lang/sk_SK.php b/lang/sk_SK.php index f5ea2d63..2f9fa064 100644 --- a/lang/sk_SK.php +++ b/lang/sk_SK.php @@ -4,7 +4,11 @@ i18n::include_locale_file('cms', 'en_US'); global $lang; -$lang['sk_SK'] = $lang['en_US']; +if(array_key_exists('sk_SK', $lang) && is_array($lang['sk_SK'])) { + $lang['sk_SK'] = array_merge($lang['en_US'], $lang['sk_SK']); +} else { + $lang['sk_SK'] = $lang['en_US']; +} $lang['sk_SK']['AssetAdmin']['CHOOSEFILE'] = 'Vybrať súbor'; $lang['sk_SK']['AssetAdmin']['CONTENTMODBY'] = 'Obsah upraviteľný pre'; diff --git a/lang/sv_SE.php b/lang/sv_SE.php index df7e39a3..65f8428b 100644 --- a/lang/sv_SE.php +++ b/lang/sv_SE.php @@ -4,7 +4,11 @@ i18n::include_locale_file('cms', 'en_US'); global $lang; -$lang['sv_SE'] = $lang['en_US']; +if(array_key_exists('sv_SE', $lang) && is_array($lang['sv_SE'])) { + $lang['sv_SE'] = array_merge($lang['en_US'], $lang['sv_SE']); +} else { + $lang['sv_SE'] = $lang['en_US']; +} $lang['sv_SE']['AssetAdmin']['CHOOSEFILE'] = 'Välj fil'; $lang['sv_SE']['AssetAdmin']['CONTENTMODBY'] = 'Följande kan redigera innehållet'; diff --git a/lang/tr_TR.php b/lang/tr_TR.php index 1ef56d71..62e5ce39 100644 --- a/lang/tr_TR.php +++ b/lang/tr_TR.php @@ -4,7 +4,11 @@ i18n::include_locale_file('cms', 'en_US'); global $lang; -$lang['tr_TR'] = $lang['en_US']; +if(array_key_exists('tr_TR', $lang) && is_array($lang['tr_TR'])) { + $lang['tr_TR'] = array_merge($lang['en_US'], $lang['tr_TR']); +} else { + $lang['tr_TR'] = $lang['en_US']; +} $lang['tr_TR']['AssetAdmin']['CHOOSEFILE'] = 'Yükleyeceğiniz Dosyayı seçiniz'; $lang['tr_TR']['AssetAdmin']['CONTENTMODBY'] = 'İçeriği değiştirebilme yetkisi olan(lar)'; diff --git a/lang/zh_CN.php b/lang/zh_CN.php index 70d54343..f5632956 100644 --- a/lang/zh_CN.php +++ b/lang/zh_CN.php @@ -4,7 +4,11 @@ i18n::include_locale_file('cms', 'en_US'); global $lang; -$lang['zh_CN'] = $lang['en_US']; +if(array_key_exists('zh_CN', $lang) && is_array($lang['zh_CN'])) { + $lang['zh_CN'] = array_merge($lang['en_US'], $lang['zh_CN']); +} else { + $lang['zh_CN'] = $lang['en_US']; +} $lang['zh_CN']['AssetAdmin']['CHOOSEFILE'] = '选择文件'; $lang['zh_CN']['AssetAdmin']['CONTENTMODBY'] = '内容可被修改'; diff --git a/lang/zh_TW.php b/lang/zh_TW.php index 4f3287be..2c0c7ab2 100644 --- a/lang/zh_TW.php +++ b/lang/zh_TW.php @@ -4,7 +4,11 @@ i18n::include_locale_file('cms', 'en_US'); global $lang; -$lang['zh_TW'] = $lang['en_US']; +if(array_key_exists('zh_TW', $lang) && is_array($lang['zh_TW'])) { + $lang['zh_TW'] = array_merge($lang['en_US'], $lang['zh_TW']); +} else { + $lang['zh_TW'] = $lang['en_US']; +} $lang['zh_TW']['AssetAdmin']['CHOOSEFILE'] = '選擇檔案'; $lang['zh_TW']['AssetAdmin']['CONTENTMODBY'] = '可以更改內容的人:'; diff --git a/templates/Includes/AssetTableField.ss b/templates/Includes/AssetTableField.ss index 91af35a2..b5bd0878 100755 --- a/templates/Includes/AssetTableField.ss +++ b/templates/Includes/AssetTableField.ss @@ -20,17 +20,17 @@ <% end_control %> <% if Can(show) %> - show + <% _t('SHOW', 'Show asset') %> <% end_if %> <% if Can(edit) %> - edit + <% _t('EDIT', 'Edit asset') %> <% end_if %> <% if Can(delete) %> - delete + <% _t('DELFILE', 'Delete this file') %> <% end_if %> diff --git a/templates/Includes/CMSMain_left.ss b/templates/Includes/CMSMain_left.ss index 01cc1a1b..8ca1aa9c 100755 --- a/templates/Includes/CMSMain_left.ss +++ b/templates/Includes/CMSMain_left.ss @@ -34,12 +34,6 @@
    - - <% end_control %> <% end_control %> - +
    + +
    $SiteTreeAsUL
    @@ -167,4 +163,4 @@
    - \ No newline at end of file + diff --git a/templates/Includes/CommentAdmin_SiteTree.ss b/templates/Includes/CommentAdmin_SiteTree.ss index c0bdb55f..66ff19fc 100644 --- a/templates/Includes/CommentAdmin_SiteTree.ss +++ b/templates/Includes/CommentAdmin_SiteTree.ss @@ -1,15 +1,15 @@ \ No newline at end of file + diff --git a/templates/Includes/CommentAdmin_left.ss b/templates/Includes/CommentAdmin_left.ss index 46168f67..bfed4ed5 100644 --- a/templates/Includes/CommentAdmin_left.ss +++ b/templates/Includes/CommentAdmin_left.ss @@ -1,7 +1,7 @@ -

    Comments

    +

    <% _t('COMMENTS', 'Comments') %>

    <% include CommentAdmin_SiteTree %>
    -
    \ No newline at end of file + diff --git a/templates/Includes/CommentAdmin_right.ss b/templates/Includes/CommentAdmin_right.ss index ae4436cd..8b345eb7 100644 --- a/templates/Includes/CommentAdmin_right.ss +++ b/templates/Includes/CommentAdmin_right.ss @@ -5,7 +5,7 @@ $EditForm <% else %>
    -

    Welcome to the $ApplicationName comment management. Please select a folder in the tree on the left.

    +

    <% _t('WELCOME1', 'Welcome to the') %> $ApplicationName <% _t('WELCOME2', 'comment management. Please select a folder in the tree on the left.') %>

    <% end_if %> diff --git a/templates/Includes/CommentTableField.ss b/templates/Includes/CommentTableField.ss index f1d3f1a9..ce40c52a 100644 --- a/templates/Includes/CommentTableField.ss +++ b/templates/Includes/CommentTableField.ss @@ -44,26 +44,26 @@ $Value <% end_control %> <% if Can(edit) %> - edit + <% _t('EDIT', 'edit') %> <% end_if %> <% if HasApproveButton %> - approve + <% _t('APPROVE', 'approve') %> <% end_if %> <% if HasSpamButton %> - spam + <% _t('SPAM', 'spam') %> <% end_if %> <% if HasHamButton %> - ham + <% _t('HAM', 'ham') %> <% end_if %> <% if Can(delete) %> - delete + <% _t('DELETE', 'delete') %> <% end_if %> <% end_control %> <% else %> <% if Markable %> <% end_if %> - No items found + <% _t('NOITEMSFOUND', 'No items found') %> <% if Can(edit) %> <% end_if %> <% if HasApproveButton %> <% end_if %> <% if HasSpamButton %> <% end_if %> @@ -73,4 +73,4 @@ <% end_if %> - \ No newline at end of file + diff --git a/templates/Includes/Editor_toolbar.ss b/templates/Includes/Editor_toolbar.ss index 94829294..71f97afb 100755 --- a/templates/Includes/Editor_toolbar.ss +++ b/templates/Includes/Editor_toolbar.ss @@ -17,7 +17,7 @@ <% else_if Type = dropdown %> <% else_if Type = separator %> - | + | <% else_if Type = break %>
    <% end_if %> diff --git a/templates/Includes/GenericDataAdmin_left.ss b/templates/Includes/GenericDataAdmin_left.ss index 85e47600..63f33f0a 100755 --- a/templates/Includes/GenericDataAdmin_left.ss +++ b/templates/Includes/GenericDataAdmin_left.ss @@ -22,7 +22,7 @@  

    <% _t('SEARCHRESULTS','Search Results') %>

    -
    +
    $Results
    \ No newline at end of file diff --git a/templates/Includes/GenericDataAdmin_right.ss b/templates/Includes/GenericDataAdmin_right.ss index f1d56002..850d259b 100755 --- a/templates/Includes/GenericDataAdmin_right.ss +++ b/templates/Includes/GenericDataAdmin_right.ss @@ -6,7 +6,7 @@

    $ApplicationName

    -

    Welcome to $ApplicationName! Please choose click on one of the entries on the left pane.

    +

    <% _t('WELCOME1', 'Welcome to') %> $ApplicationName! <% _t('WELCOME2', 'Please choose click on one of the entries on the left pane.') %>

    <% end_if %> diff --git a/templates/Includes/MemberList_PageControls.ss b/templates/Includes/MemberList_PageControls.ss index c880ffdf..75bae1fd 100755 --- a/templates/Includes/MemberList_PageControls.ss +++ b/templates/Includes/MemberList_PageControls.ss @@ -1,15 +1,15 @@
    - <% if LastLink %>View last $PageSize members - <% else %>View last $PageSize members<% end_if %> - <% if FirstLink %>View first $PageSize members - <% else %>View first $PageSize members<% end_if %> - <% if PrevLink %> - <% else %>View previous $PageSize members<% end_if %> + <% if LastLink %>View last $PageSize members + <% else %><% _t('VIEWLAST', 'View last') %> $PageSize <% _t('LASTMEMBERS', 'members') %><% end_if %> + <% if FirstLink %>View first $PageSize members + <% else %><% _t('VIEWFIRST', 'View first') %> $PageSize <% _t('FIRSTMEMBERS', 'members') %><% end_if %> + <% if PrevLink %> + <% else %><% _t('VIEWPREVIOUS', 'View previous') %> $PageSize <% _t('PREVIOUSMEMBERS', 'members') %><% end_if %> - Displaying $FirstMember to $LastMember of $TotalMembers + <% _t('DISPLAYING', 'Displaying') %> $FirstMember <% _t('TO', 'to') %> $LastMember <% _t('OF', 'of') %> $TotalMembers - <% if NextLink %> - <% else %>View next $PageSize members<% end_if %> + <% if NextLink %> + <% else %><% _t('VIEWNEXT', 'View next') %> $PageSize <% _t('NEXTMEMBERS', 'members') %><% end_if %>
    diff --git a/templates/Includes/NewsletterAdmin_BouncedList.ss b/templates/Includes/NewsletterAdmin_BouncedList.ss index 5e11321a..83ca53e7 100755 --- a/templates/Includes/NewsletterAdmin_BouncedList.ss +++ b/templates/Includes/NewsletterAdmin_BouncedList.ss @@ -1,17 +1,17 @@ <% if Entries %> -

    Instructions:

    +

    <% _t('INSTRUCTIONS', 'Instructions:') %>

    - + - - + + @@ -36,4 +36,4 @@
    Blacklisted<% _t('BLACKLISTED', 'Blacklisted') %> <% _t('UNAME','User name') %> <% _t('EMADD','Email address') %>Reason:Date<% _t('RESON', 'Reason:') %><% _t('DATE', 'Date') %>  
    <% else %>

    <% _t('NOBOUNCED','No emails sent have bounced.') %>

    -<% end_if %> \ No newline at end of file +<% end_if %> diff --git a/templates/Includes/StatisticsAdmin_left.ss b/templates/Includes/StatisticsAdmin_left.ss index a05f0b41..307cf587 100644 --- a/templates/Includes/StatisticsAdmin_left.ss +++ b/templates/Includes/StatisticsAdmin_left.ss @@ -1,4 +1,4 @@ -

    Statistics

    +

    <% _t('STATISTICS', 'Statistics') %>